/* ===== 01 reset ===== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body,h1,h2,h3,h4,h5,p,ul,ol,li,figure,blockquote,dl,dd,fieldset{margin:0;padding:0}
ul,ol{list-style:none}
img,svg,video{display:block;max-width:100%;height:auto}
button{font:inherit;color:inherit;background:none;border:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--coral);outline-offset:3px}

/* ===== 02 tokens ===== */
:root{
  --deep:#061726;--console:#0C2942;--cyan:#2FE6C8;--mist:#8FF2E5;
  --coral:#FF6B4A;--indigo:#2A2350;--teal:#0B3B3C;--wine:#6E1F3A;
  --paper:#F4F1EA;--ink:#101820;--fog:#8A97A8;--line:#0A1B2C;

  --bg:var(--deep);
  --surface:var(--console);
  --surface-2:#082034;
  --fg:#C2E4E0;
  --fg-strong:#EFFBF9;
  --muted:#8A97A8;
  --edge:rgba(143,242,229,.24);
  --edge-soft:rgba(138,151,168,.22);
  --shadow-c:#030E19;
  --shadow-hard:8px 8px 0 var(--shadow-c);
  --shadow-soft:4px 4px 0 var(--shadow-c);

  --wrap:1280px;
  --gutter:clamp(20px,4vw,64px);
  --fs-display:clamp(2.6rem,7vw,7.5rem);
  --fs-h2:clamp(1.8rem,3.4vw,3rem);
  --fs-h3:clamp(1.15rem,1.7vw,1.5rem);
  --fs-body:clamp(16.5px,1.05vw,18px);
  --font:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei","Noto Sans SC","Hiragino Sans GB",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ease:160ms cubic-bezier(.2,.7,.3,1);
}
:root.is-paper{
  --bg:var(--paper);
  --surface:#FFFFFF;
  --surface-2:#E9E3D8;
  --fg:#2B333B;
  --fg-strong:var(--ink);
  --muted:#5C6874;
  --edge:#0A1B2C;
  --edge-soft:rgba(10,27,44,.2);
  --shadow-c:#0A1B2C;
}

/* ===== 03 base ===== */
body{
  min-height:100vh;
  background-color:var(--bg);
  background-image:
    linear-gradient(rgba(143,242,229,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(143,242,229,.05) 1px,transparent 1px);
  background-size:48px 48px,48px 48px;
  color:var(--fg);
  font-family:var(--font);
  font-size:var(--fs-body);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  transition:background-color var(--ease),color var(--ease);
}
:root.is-paper body{
  background-image:
    linear-gradient(rgba(10,27,44,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(10,27,44,.05) 1px,transparent 1px);
}
::selection{background:var(--coral);color:#101820}

/* ===== 04 skip link ===== */
.skip-link{
  position:absolute;left:12px;top:-80px;z-index:200;
  background:var(--cyan);color:#04131F;border:2px solid var(--line);
  padding:10px 16px;font-size:14px;letter-spacing:.08em;text-decoration:none;
  transition:top var(--ease);
}
.skip-link:focus{top:12px}

/* ===== 05 layout ===== */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(56px,8vw,120px)}
.section--tight{padding-block:clamp(32px,4vw,64px)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2vw,24px)}
.col-3{grid-column:span 3}
.col-4{grid-column:span 4}
.col-5{grid-column:span 5}
.col-6{grid-column:span 6}
.col-7{grid-column:span 7}
.col-8{grid-column:span 8}
.col-9{grid-column:span 9}
.col-12{grid-column:span 12}
@media (max-width:900px){
  .col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9{grid-column:span 12}
}
.divider{height:1px;border:0;background:var(--edge-soft);margin:0}

/* ===== 06 zones ===== */
.zone--indigo{background:var(--indigo)}
.zone--teal{background:var(--teal)}
.zone--wine{background:var(--wine)}
.zone--console{background:var(--surface)}
.zone--paper{background:var(--paper);color:var(--ink)}
.zone--paper .idx{color:#6B6355}
.zone--paper .lede,.zone--paper .board-card__body{color:#2B333B}
:root.is-paper .zone--indigo{background:#E7E3F4}
:root.is-paper .zone--teal{background:#DFEDEB}
:root.is-paper .zone--wine{background:#F2E2E7}
:root.is-paper .zone--paper{background:#EDE8DE}

/* ===== 07 type ===== */
.display{
  font-size:var(--fs-display);
  font-weight:300;
  line-height:.98;
  letter-spacing:.02em;
  font-stretch:condensed;
  color:var(--fg-strong);
  text-wrap:balance;
}
.idx{
  font-size:12px;
  letter-spacing:.16em;
  line-height:1.6;
  color:var(--muted);
  text-transform:uppercase;
}
.lede{font-size:clamp(17px,1.4vw,20px);line-height:1.8;color:var(--fg)}
.prose{max-width:68ch}
.prose p{margin:0 0 1.2em}
.prose h2{font-size:var(--fs-h2);font-weight:300;line-height:1.12;letter-spacing:.02em;color:var(--fg-strong);margin:1.6em 0 .6em}
.prose h3{font-size:var(--fs-h3);font-weight:500;line-height:1.4;color:var(--fg-strong);margin:1.4em 0 .5em}
.prose ul,.prose ol{list-style:revert;padding-left:1.4em;margin:0 0 1.2em}
.prose li{margin:.35em 0}
.prose a{color:var(--cyan);text-decoration:none;border-bottom:1px solid rgba(47,230,200,.45)}
.prose a:hover{border-bottom-color:var(--cyan)}
.prose strong{color:var(--fg-strong);font-weight:600}
.prose blockquote{
  margin:1.4em 0;padding:14px 20px;
  border-left:4px solid var(--coral);
  background:rgba(255,107,74,.08);
}
:root.is-paper .prose a{color:#0B6B5C;border-bottom-color:rgba(11,107,92,.4)}

/* ===== 08 buttons ===== */
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  padding:.8em 1.35em;border:2px solid var(--cyan);border-radius:2px;
  background:var(--cyan);color:#04131F;
  font-size:15px;font-weight:600;letter-spacing:.06em;text-decoration:none;
  transition:transform var(--ease),box-shadow var(--ease),background var(--ease),color var(--ease);
}
.btn:hover,.btn:focus-visible{transform:translate(-2px,-2px);box-shadow:var(--shadow-soft)}
.btn--ghost{background:transparent;color:var(--cyan)}
.btn--ghost:hover,.btn--ghost:focus-visible{background:rgba(47,230,200,.12)}
.btn--accent{background:var(--coral);border-color:var(--coral);color:#1A0A05}
.btn--quiet{background:transparent;border-color:var(--edge);color:var(--fg)}
.btn--quiet:hover,.btn--quiet:focus-visible{border-color:var(--cyan);color:var(--cyan)}

/* ===== 09 tags & badges ===== */
.tag-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tag{
  display:inline-block;padding:7px 12px;
  border:2px solid var(--edge);border-radius:2px;
  color:var(--fg);font-size:13px;letter-spacing:.08em;text-decoration:none;
  transition:border-color var(--ease),color var(--ease),transform var(--ease),box-shadow var(--ease);
}
.tag:hover,.tag:focus-visible{
  border-color:var(--cyan);color:var(--cyan);
  transform:translate(-2px,-2px);box-shadow:var(--shadow-soft);
}
.badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:3px 9px;border:1px solid var(--edge);border-radius:2px;
  font-size:12px;letter-spacing:.12em;color:var(--mist);
}
.badge--hot{border-color:var(--coral);color:var(--coral)}
.badge--live{border-color:var(--cyan);color:var(--cyan)}

/* ===== 10 cards ===== */
.board-card{
  position:relative;
  background:var(--surface);
  border:2px solid var(--edge);
  border-radius:2px;
  box-shadow:var(--shadow-hard);
  padding:clamp(20px,2.4vw,32px);
  transition:transform var(--ease),box-shadow var(--ease),border-color var(--ease);
}
.board-card:hover{
  transform:translate(-4px,-4px);
  box-shadow:12px 12px 0 var(--shadow-c);
  border-color:var(--cyan);
}
.board-card__label{font-size:12px;letter-spacing:.16em;color:var(--mist);text-transform:uppercase}
.board-card__title{font-size:var(--fs-h3);font-weight:400;line-height:1.35;color:var(--fg-strong);margin:.45em 0 .5em}
.board-card__body{font-size:16px;color:var(--fg)}
.board-card__foot{
  margin-top:1.2em;padding-top:.9em;border-top:1px solid var(--edge-soft);
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-size:13px;
}

/* ===== 11 folds ===== */
.fold{border:2px solid var(--edge);border-radius:2px;background:var(--surface)}
.fold + .fold{margin-top:10px}
.fold > summary{
  cursor:pointer;list-style:none;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 18px;font-size:16px;color:var(--fg-strong);
}
.fold > summary::-webkit-details-marker{display:none}
.fold > summary::after{content:"+";color:var(--cyan);font-size:18px;line-height:1}
.fold[open] > summary::after{content:"–";color:var(--coral)}
.fold[open] > summary{border-bottom:1px solid var(--edge-soft)}
.fold__body{padding:16px 18px;font-size:16px}

/* ===== 12 data table ===== */
.data-table{width:100%;border-collapse:collapse;font-size:15px}
.data-table caption{text-align:left;font-size:12px;letter-spacing:.16em;color:var(--muted);padding-bottom:10px}
.data-table th,.data-table td{border:1px solid var(--edge-soft);padding:10px 12px;text-align:left;vertical-align:top}
.data-table thead th{
  background:rgba(47,230,200,.08);color:var(--mist);
  font-size:12px;letter-spacing:.12em;font-weight:500;
}
.data-table tbody tr:nth-child(even){background:rgba(12,41,66,.45)}
.data-table tbody tr:hover{background:rgba(47,230,200,.07)}
.data-table--sticky thead th{position:sticky;top:0;z-index:2}
:root.is-paper .data-table thead th{background:rgba(10,27,44,.06);color:#101820}
:root.is-paper .data-table tbody tr:nth-child(even){background:rgba(10,27,44,.04)}

/* ===== 13 crumbs ===== */
.crumbs{font-size:12px;letter-spacing:.14em;color:var(--muted)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.crumbs li{display:flex;align-items:center;gap:8px}
.crumbs li::after{content:"/";color:var(--edge-soft)}
.crumbs li:last-child::after{display:none}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover,.crumbs a:focus-visible{color:var(--cyan)}
.crumbs [aria-current="page"]{color:var(--mist)}

/* ===== 14 media frame ===== */
.media-frame{
  position:relative;display:block;overflow:hidden;border-radius:2px;
  border:2px solid var(--edge);background:var(--surface);
  box-shadow:var(--shadow-hard);
}
.media-frame img,.media-frame svg{width:100%;height:100%;object-fit:cover}
.media-frame--16x9{aspect-ratio:16/9}
.media-frame--4x3{aspect-ratio:4/3}
.media-frame--1x1{aspect-ratio:1/1}
.media-frame--3x4{aspect-ratio:3/4}
.media-frame--wide{grid-column:span 12}
.media-frame--empty::before{
  content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(45deg,rgba(143,242,229,.08) 0 8px,transparent 8px 16px);
}
.media-frame__cap{
  position:absolute;left:0;bottom:0;padding:8px 12px;
  background:rgba(6,23,38,.85);color:var(--mist);
  font-size:12px;letter-spacing:.12em;border-top:2px solid var(--cyan);
}

/* ===== 15 header ===== */
.site-header{
  position:sticky;top:0;z-index:80;
  background:rgba(6,23,38,.94);
  border-bottom:2px solid var(--edge);
  transition:background var(--ease),border-color var(--ease),box-shadow var(--ease);
}
:root.is-paper .site-header{background:rgba(244,241,234,.95)}
.site-header__inner{position:relative;width:100%}
.site-header__bar{
  display:flex;align-items:center;gap:clamp(12px,2.4vw,36px);
  min-height:78px;padding-block:12px;
  transition:min-height var(--ease),padding var(--ease);
}
.site-header.is-compact{border-bottom-color:var(--cyan);box-shadow:0 6px 0 rgba(47,230,200,.07)}
.site-header.is-compact .site-header__bar{min-height:52px;padding-block:6px}
.site-header.is-compact .brand__tag{display:none}

.brand{display:inline-flex;align-items:center;gap:12px;flex:0 0 auto;text-decoration:none;color:var(--fg-strong)}
.brand__mark{
  width:34px;height:34px;flex:0 0 auto;
  display:grid;place-items:center;
  border:2px solid var(--cyan);border-radius:2px;color:var(--cyan);
  box-shadow:4px 4px 0 var(--shadow-c);
  transition:transform var(--ease),box-shadow var(--ease);
}
.brand:hover .brand__mark,.brand:focus-visible .brand__mark{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--shadow-c)}
.brand__text{display:block}
.brand__name{display:block;font-size:18px;font-weight:500;letter-spacing:.14em;line-height:1.3}
.brand__tag{display:block;font-size:11px;letter-spacing:.2em;color:var(--muted);line-height:1.5}

.site-nav{margin-inline-start:auto}
.site-nav__list{display:flex;align-items:center;gap:clamp(10px,1.6vw,26px)}
.site-nav__item{display:block}
.site-nav__link{
  position:relative;display:block;
  padding:8px 2px;font-size:15px;letter-spacing:.08em;
  color:var(--fg);text-decoration:none;white-space:nowrap;
  transition:color var(--ease);
}
.site-nav__link::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:var(--cyan);transform:scaleX(0);transform-origin:left;
  transition:transform var(--ease),background var(--ease);
}
.site-nav__link:hover,.site-nav__link:focus-visible{color:var(--cyan)}
.site-nav__link:hover::after,.site-nav__link:focus-visible::after{transform:scaleX(1)}
.site-nav__link[aria-current="page"]{color:var(--mist)}
.site-nav__link[aria-current="page"]::after{transform:scaleX(1);background:var(--coral)}
.site-nav__link[aria-current="page"]::before{
  content:"";position:absolute;left:-12px;top:50%;width:5px;height:5px;
  background:var(--coral);transform:translateY(-50%);
}

.site-header__tools{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.tool-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 12px;border:2px solid var(--edge);border-radius:2px;
  color:var(--mist);font-size:12px;letter-spacing:.14em;cursor:pointer;
  transition:border-color var(--ease),color var(--ease),background var(--ease);
}
.tool-btn:hover,.tool-btn:focus-visible{border-color:var(--cyan);color:var(--cyan)}
.tool-btn[aria-expanded="true"]{background:var(--cyan);border-color:var(--cyan);color:#04131F}
.tool-btn__mark{width:10px;height:10px;border:2px solid currentColor;border-radius:50%;position:relative}
.tool-btn__mark::after{content:"";position:absolute;right:-5px;bottom:-4px;width:6px;height:2px;background:currentColor;transform:rotate(45deg)}
.tool-btn__dot{width:9px;height:9px;border:2px solid currentColor;background:transparent}
.tool-btn[aria-pressed="true"] .tool-btn__dot{background:var(--coral);border-color:var(--coral)}

.nav-toggle{
  display:none;align-items:center;gap:8px;
  padding:8px 12px;border:2px solid var(--edge);border-radius:2px;
  color:var(--mist);font-size:12px;letter-spacing:.14em;cursor:pointer;
  transition:border-color var(--ease),color var(--ease);
}
.nav-toggle:hover,.nav-toggle:focus-visible{border-color:var(--cyan);color:var(--cyan)}
.nav-toggle__bars{position:relative;display:block;width:16px;height:10px}
.nav-toggle__bars::before,.nav-toggle__bars::after{
  content:"";position:absolute;left:0;right:0;height:2px;background:currentColor;
  transition:transform var(--ease);
}
.nav-toggle__bars::before{top:0}
.nav-toggle__bars::after{bottom:0}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before{transform:translateY(4px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after{transform:translateY(-4px) rotate(-45deg)}

.search-drawer{
  background:var(--surface);
  border-top:1px solid var(--edge-soft);
  border-bottom:2px solid var(--cyan);
  animation:drawer-in 180ms ease;
}
.search-drawer[hidden]{display:none}
.search-drawer .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding-block:18px}
.search-drawer__hint{color:var(--mist);margin:0}
@keyframes drawer-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

@media (max-width:1079px){
  .nav-toggle{display:inline-flex}
  .site-nav{
    display:none;
    position:absolute;left:0;right:0;top:100%;
    margin-inline-start:0;
    background:var(--surface);
    border-bottom:2px solid var(--cyan);
    box-shadow:0 12px 0 rgba(3,14,25,.5);
    padding:6px var(--gutter) 20px;
  }
  .site-nav[data-open="true"]{display:block;animation:nav-in 180ms ease}
  .site-nav__list{flex-direction:column;align-items:stretch;gap:0}
  .site-nav__link{
    padding:15px 0;font-size:17px;
    border-bottom:1px solid var(--edge-soft);
  }
  .site-nav__link::after{display:none}
  .site-nav__link[aria-current="page"]{color:var(--cyan)}
  .site-nav__link[aria-current="page"]::before{left:auto;right:0}
  @keyframes nav-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
}
@media (max-width:560px){
  .tool-btn__label{display:none}
  .tool-btn{padding:8px 10px}
  .brand__tag{display:none}
  .site-header__bar{min-height:64px;gap:10px}
}

/* ===== 16 frame rail ===== */
.frame-rail{display:none}
@media (min-width:1380px){
  .frame-rail{
    display:block;position:fixed;left:0;top:0;bottom:0;width:40px;
    z-index:50;pointer-events:none;
    border-right:1px solid rgba(143,242,229,.14);
    background-image:repeating-linear-gradient(to bottom,rgba(143,242,229,.2) 0 1px,transparent 1px 96px);
    background-size:12px 100%;
    background-repeat:no-repeat;
  }
  .frame-rail__label{
    position:absolute;bottom:40px;left:50%;white-space:nowrap;
    writing-mode:vertical-rl;text-orientation:mixed;
    transform:translateX(-50%) rotate(180deg);
    font-size:11px;letter-spacing:.34em;color:rgba(143,242,229,.45);
  }
}
:root.is-paper .frame-rail{border-right-color:rgba(10,27,44,.14);background-image:repeating-linear-gradient(to bottom,rgba(10,27,44,.2) 0 1px,transparent 1px 96px)}
:root.is-paper .frame-rail__label{color:rgba(10,27,44,.45)}

/* ===== 17 quick bar ===== */
.quick-bar{position:fixed;z-index:70;display:flex}
.quick-bar__link{
  display:flex;align-items:center;gap:8px;
  color:var(--fg);text-decoration:none;
  transition:background var(--ease),color var(--ease);
}
.quick-bar__label{display:block}
.quick-bar__dot{
  width:7px;height:7px;flex:0 0 auto;border-radius:50%;
  border:1px solid currentColor;background:transparent;
  transition:background var(--ease),border-color var(--ease),box-shadow var(--ease);
}
.quick-bar__link:hover,.quick-bar__link:focus-visible{color:var(--cyan);background:rgba(47,230,200,.1)}
.quick-bar__link:hover .quick-bar__dot{background:var(--cyan);border-color:var(--cyan)}
.quick-bar__link--live{color:var(--coral)}
.quick-bar__link--live .quick-bar__dot{background:var(--coral);border-color:var(--coral);box-shadow:0 0 8px var(--coral)}
@media (min-width:1024px){
  .quick-bar{
    right:0;top:50%;transform:translateY(-50%);
    width:122px;flex-direction:column;
    background:var(--surface);
    border:2px solid var(--edge);border-right:0;
    box-shadow:-6px 6px 0 var(--shadow-c);
  }
  .quick-bar__link{
    padding:13px 14px;font-size:13px;letter-spacing:.1em;
    border-bottom:1px solid var(--edge-soft);
  }
  .quick-bar__link:last-child{border-bottom:0}
}
@media (max-width:1023px){
  body{padding-bottom:64px}
  .quick-bar{
    left:0;right:0;bottom:0;
    background:rgba(6,23,38,.96);
    border-top:2px solid var(--cyan);
  }
  .quick-bar__link{
    flex:1 1 0;flex-direction:column;justify-content:center;gap:5px;
    padding:10px 4px;font-size:12px;letter-spacing:.06em;text-align:center;
    border-right:1px solid var(--edge-soft);
  }
  .quick-bar__link:last-child{border-right:0}
  :root.is-paper .quick-bar{background:rgba(244,241,234,.97)}
}

/* ===== 18 scroll progress ===== */
.scroll-progress{
  position:fixed;left:0;top:0;z-index:100;
  height:2px;width:0;pointer-events:none;
  background:linear-gradient(90deg,var(--cyan),var(--coral));
  transition:width 80ms linear;
}

/* ===== 19 footer ===== */
.site-footer{
  position:relative;
  margin-top:clamp(48px,7vw,96px);
  background:var(--deep);
  border-top:2px solid var(--cyan);
  color:var(--fg);
}
.site-footer::before{
  content:"";position:absolute;left:0;right:0;top:0;height:6px;
  background:linear-gradient(90deg,rgba(47,230,200,.5),transparent 62%);
  pointer-events:none;
}
:root.is-paper .site-footer{background:#EFEAE0;color:var(--fg)}
.site-footer__top{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1.2fr;
  gap:clamp(24px,3vw,48px);
  padding-block:clamp(48px,6vw,84px);
}
.footer-col{min-width:0}
.footer-brand{font-size:20px;font-weight:500;letter-spacing:.16em;color:var(--fg-strong)}
.footer-claim{margin-top:6px;font-size:14px;line-height:1.7;color:var(--muted)}
.footer-search{margin-top:22px;display:flex;flex-direction:column;gap:10px}
.footer-col__title{margin:0 0 14px;color:var(--mist)}
:root.is-paper .footer-col__title{color:#5C6874}
.footer-list{display:flex;flex-direction:column;gap:6px}
.footer-link{
  position:relative;display:inline-block;
  padding-block:3px;font-size:14px;color:var(--fg);text-decoration:none;
  transition:color var(--ease);
}
.footer-link::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--cyan);transform:scaleX(0);transform-origin:left;
  transition:transform var(--ease);
}
.footer-link:hover,.footer-link:focus-visible{color:var(--cyan)}
.footer-link:hover::after,.footer-link:focus-visible::after{transform:scaleX(1)}
.footer-line{font-size:14px;line-height:1.9;color:var(--fg)}
.footer-line--muted{font-size:13px;color:var(--muted)}
.copy-btn{
  margin-left:8px;padding:2px 9px;
  border:1px solid var(--edge);border-radius:2px;
  color:var(--muted);font-size:12px;letter-spacing:.1em;cursor:pointer;
  transition:border-color var(--ease),color var(--ease),background var(--ease);
}
.copy-btn:hover,.copy-btn:focus-visible{border-color:var(--cyan);color:var(--cyan)}
.copy-btn[data-copy-state="ok"]{border-color:var(--cyan);color:var(--cyan);background:rgba(47,230,200,.12)}
.copy-btn[data-copy-state="fail"]{border-color:var(--coral);color:var(--coral)}
.site-footer__bottom{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;
  padding-block:20px;
  border-top:1px solid var(--edge-soft);
  font-size:13px;color:var(--muted);
}
.footer-legal{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.footer-legal span{color:var(--muted);letter-spacing:.06em}
.footer-meta{color:var(--muted)}
@media (max-width:960px){
  .site-footer__top{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .site-footer__top{grid-template-columns:1fr}
}

/* ===== 20 reduced motion ===== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
}
