/* =========================================================
   德赢指南 · 共享样式 /assets/site.css
   档案轨道外壳 · 纵向叙事 · 版本对照手册
   ========================================================= */

/* ---------- 01. Tokens ---------- */
:root{
  --ink:#0B1E2D;
  --ink-2:#122B3F;
  --ink-3:#16344B;
  --paper:#F2EDE4;
  --paper-2:#FBFAF6;
  --text:#101820;
  --cyan:#38E1C6;
  --cyan-deep:#0E8F7E;
  --amber:#E4A13A;
  --ember:#D96245;
  --mist:#8FA6B2;
  --cyan-soft:#DDF7F1;

  --line:rgba(143,166,178,.26);
  --line-soft:rgba(143,166,178,.14);
  --line-dark:rgba(16,24,32,.14);

  --rail-w:268px;
  --topbar-h:62px;
  --maxw:1180px;
  --gutter:clamp(18px,4vw,48px);

  --radius-lg:18px;
  --radius:12px;
  --radius-sm:8px;

  --font-display:"HarmonyOS Sans SC","Source Han Sans SC","Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-body:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Source Han Sans SC","Noto Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"IBM Plex Mono","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,"Courier New",monospace;

  --ease:cubic-bezier(.22,.61,.36,1);
  --read-progress:0;
}

/* ---------- 02. Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
*{margin:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
html.nav-open{overflow:hidden;}
img,svg,picture,video{max-width:100%;}
button,input,select,textarea{font:inherit;color:inherit;}
a{color:inherit;}

:where(a,button,summary,[tabindex]):focus-visible{
  outline:2px solid var(--cyan);
  outline-offset:3px;
  border-radius:4px;
}
.zone--paper :where(a,button,summary,[tabindex]):focus-visible,
.zone--paper-2 :where(a,button,summary,[tabindex]):focus-visible{
  outline-color:var(--ink);
}

/* ---------- 03. Base typography ---------- */
html{background:var(--ink);}
body{
  min-height:100vh;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--font-body);
  font-size:clamp(15.5px,.35vw + 14.6px,17px);
  line-height:1.78;
  letter-spacing:.012em;
  word-break:break-word;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5{
  font-family:var(--font-display);
  font-weight:900;
  letter-spacing:-.02em;
  line-height:1.14;
  text-wrap:balance;
}
h1{font-size:clamp(40px,7vw,96px);}
h2{font-size:clamp(28px,4vw,48px);}
h3{font-size:clamp(19px,1.6vw,24px);letter-spacing:-.01em;line-height:1.3;}
h4{font-size:clamp(16px,1.2vw,18px);line-height:1.4;}
p{text-wrap:pretty;max-width:68ch;}
strong{font-weight:700;}
h1 + p,h2 + p,h3 + p{margin-top:.7em;}

#main-content{display:block;scroll-margin-top:calc(var(--topbar-h) + 18px);}

::selection{background:var(--cyan);color:#06232C;}

/* ---------- 04. Layout helpers ---------- */
.wrap{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.zone{padding-block:clamp(2.6rem,6vw,5.2rem);}
.zone--paper{background:var(--paper);color:var(--text);}
.zone--paper-2{background:var(--paper-2);color:var(--text);}
.zone--ink-2{background:var(--ink-2);}

.chapter-head{
  display:flex;
  flex-direction:column;
  gap:.65rem;
  margin-bottom:clamp(1.4rem,3vw,2.2rem);
}
.chapter-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--amber);
}
.chapter-eyebrow::before{
  content:"";
  width:34px;
  height:2px;
  background:var(--amber);
  opacity:.75;
  flex:none;
}
.chapter-index{
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.16em;
  color:var(--mist);
}
.zone--paper .chapter-index,.zone--paper-2 .chapter-index{color:#6a7883;}

/* ---------- 05. Data tags ---------- */
.mono-tag{
  display:inline-flex;
  align-items:center;
  gap:.45em;
  padding:.26em .62em;
  border-radius:6px;
  background:var(--cyan-soft);
  color:#0B1E2D;
  font-family:var(--font-mono);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.06em;
  line-height:1.5;
}
.mono-tag--amber{
  background:rgba(228,161,58,.14);
  color:var(--amber);
  box-shadow:inset 0 0 0 1px rgba(228,161,58,.42);
}
.mono-tag--ember{
  background:rgba(217,98,69,.14);
  color:var(--ember);
  box-shadow:inset 0 0 0 1px rgba(217,98,69,.4);
}
.zone--paper .mono-tag,.zone--paper-2 .mono-tag{
  background:#fff;
  color:var(--ink);
  box-shadow:inset 0 0 0 1px var(--line-dark);
}
.zone--paper .mono-tag--amber,.zone--paper-2 .mono-tag--amber{
  background:rgba(228,161,58,.16);
  color:#8a5a10;
  box-shadow:inset 0 0 0 1px rgba(228,161,58,.5);
}
.zone--paper .mono-tag--ember,.zone--paper-2 .mono-tag--ember{
  background:rgba(217,98,69,.12);
  color:#a83c22;
  box-shadow:inset 0 0 0 1px rgba(217,98,69,.4);
}

/* ---------- 06. Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5em;
  padding:.72em 1.25em;
  border:1px solid transparent;
  border-radius:999px;
  font-family:var(--font-body);
  font-size:.92rem;
  font-weight:700;
  letter-spacing:.02em;
  line-height:1.4;
  text-decoration:none;
  cursor:pointer;
  transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease),transform .18s var(--ease);
}
.btn:active{transform:translateY(1px);}
.btn--primary{
  background:var(--cyan);
  color:#06232C;
  box-shadow:0 14px 30px -20px rgba(56,225,198,.95);
}
.btn--primary:hover{background:#5BF0DA;}
.btn--ghost{
  background:transparent;
  color:var(--paper);
  border-color:var(--line);
}
.btn--ghost:hover{border-color:var(--cyan);color:var(--cyan);}
.zone--paper .btn--ghost,.zone--paper-2 .btn--ghost{color:var(--ink);border-color:var(--line-dark);}
.zone--paper .btn--ghost:hover,.zone--paper-2 .btn--ghost:hover{border-color:var(--cyan-deep);color:var(--cyan-deep);}
.btn--sm{padding:.5em .95em;font-size:.82rem;}
.btn--block{width:100%;}

/* ---------- 07. Breadcrumb ---------- */
.breadcrumb{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.08em;
  color:var(--mist);
}
.breadcrumb a{
  color:inherit;
  text-decoration:none;
  border-bottom:1px dashed rgba(143,166,178,.45);
  transition:color .18s var(--ease),border-color .18s var(--ease);
}
.breadcrumb a:hover{color:var(--cyan);border-bottom-color:var(--cyan);}
.breadcrumb-sep{color:rgba(143,166,178,.6);}
.breadcrumb [aria-current="page"]{color:var(--paper-2);}
.zone--paper .breadcrumb,.zone--paper-2 .breadcrumb{color:#5f6d78;}
.zone--paper .breadcrumb [aria-current="page"],.zone--paper-2 .breadcrumb [aria-current="page"]{color:var(--text);}

/* ---------- 08. Media frame ---------- */
.media-frame{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16 / 9;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:
    linear-gradient(135deg,rgba(56,225,198,.12),rgba(18,43,63,.92) 58%),
    var(--ink-2);
}
.media-frame > img,
.media-frame > picture,
.media-frame > picture > img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.media-frame--wide{aspect-ratio:21 / 9;}
.media-frame--portrait{aspect-ratio:4 / 5;}
.media-frame--square{aspect-ratio:1 / 1;}
.media-frame--grid{
  background-color:var(--ink-2);
  background-image:
    linear-gradient(rgba(143,166,178,.16) 1px,transparent 1px),
    linear-gradient(90deg,rgba(143,166,178,.16) 1px,transparent 1px);
  background-size:28px 28px;
}
.media-frame--grid::after{
  content:"";
  position:absolute;
  right:14px;
  bottom:14px;
  width:42px;
  height:42px;
  border-right:2px solid var(--cyan);
  border-bottom:2px solid var(--cyan);
  opacity:.65;
  pointer-events:none;
}
.zone--paper .media-frame,.zone--paper-2 .media-frame{border-color:var(--line-dark);}

/* ---------- 09. Header / rail ---------- */
.skip-link{
  position:fixed;
  left:50%;
  top:10px;
  z-index:200;
  transform:translate(-50%,-180%);
  padding:10px 18px;
  border-radius:999px;
  background:var(--cyan);
  color:#06232C;
  font-size:.9rem;
  font-weight:700;
  text-decoration:none;
  transition:transform .2s var(--ease);
}
.skip-link:focus{transform:translate(-50%,0);}

.site-header{
  background:var(--ink);
  color:var(--paper);
  z-index:60;
}

/* brand */
.brand{
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:4px;
  border-radius:var(--radius-sm);
  color:inherit;
  text-decoration:none;
}
.brand-mark{
  flex:none;
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:11px;
  background:var(--cyan);
  color:#06232C;
  font-family:var(--font-display);
  font-weight:900;
  font-size:21px;
  line-height:1;
  letter-spacing:0;
  box-shadow:0 0 0 1px rgba(56,225,198,.4),0 12px 26px -16px rgba(56,225,198,.95);
}
.brand-lines{display:flex;flex-direction:column;line-height:1.24;}
.brand-name{
  font-family:var(--font-display);
  font-weight:900;
  font-size:1.05rem;
  letter-spacing:.05em;
}
.brand-sub{
  font-family:var(--font-mono);
  font-size:.66rem;
  letter-spacing:.14em;
  color:var(--mist);
}
.brand--footer .brand-mark{width:36px;height:36px;font-size:19px;border-radius:10px;}
.brand--footer .brand-name{font-size:1rem;}

/* toggle */
.nav-toggle{
  display:none;
  align-items:center;
  gap:9px;
  padding:9px 14px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(18,43,63,.9);
  color:var(--paper);
  font-size:.82rem;
  cursor:pointer;
}
.nav-toggle-bars{display:grid;gap:4px;width:16px;}
.nav-toggle-bars span{
  display:block;
  height:2px;
  border-radius:2px;
  background:var(--cyan);
  transition:transform .22s var(--ease),opacity .18s var(--ease);
}
.nav-toggle-text{letter-spacing:.1em;font-size:.78rem;color:var(--mist);}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
.nav-toggle[aria-expanded="true"] .nav-toggle-text{color:var(--cyan);}

/* nav */
.site-nav{
  display:flex;
  flex-direction:column;
  margin-top:26px;
}
.nav-caption{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
  font-family:var(--font-mono);
  font-size:.66rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--mist);
}
.nav-caption::after{content:"";flex:1 1 auto;height:1px;background:var(--line);}
.nav-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.nav-item{display:block;}
.nav-link{
  position:relative;
  display:flex;
  align-items:baseline;
  gap:12px;
  padding:9px 12px 9px 14px;
  border-radius:9px;
  color:rgba(242,237,228,.82);
  font-size:.95rem;
  text-decoration:none;
  transition:background .18s var(--ease),color .18s var(--ease);
}
.nav-link::before{
  content:"";
  position:absolute;
  left:0;
  top:9px;
  bottom:9px;
  width:2px;
  border-radius:2px;
  background:var(--cyan);
  opacity:0;
  transform:scaleY(.3);
  transition:opacity .18s var(--ease),transform .18s var(--ease);
}
.nav-index{
  font-family:var(--font-mono);
  font-size:.7rem;
  letter-spacing:.04em;
  color:var(--mist);
  transition:color .18s var(--ease);
}
.nav-label{flex:1 1 auto;}
.nav-link:hover{background:rgba(56,225,198,.08);color:var(--paper-2);}
.nav-link:hover .nav-index{color:var(--cyan);}
.nav-link[aria-current="page"]{
  background:rgba(56,225,198,.12);
  color:#fff;
}
.nav-link[aria-current="page"]::before{opacity:1;transform:scaleY(1);}
.nav-link[aria-current="page"] .nav-index{color:var(--cyan);}

/* rail foot */
.rail-foot{
  margin-top:auto;
  padding-top:22px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.rail-utils{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:6px 18px;
}
.rail-util{
  font-size:.84rem;
  color:var(--mist);
  text-decoration:none;
  padding-bottom:1px;
  border-bottom:1px dashed rgba(143,166,178,.42);
  transition:color .18s var(--ease),border-color .18s var(--ease);
}
.rail-util:hover{color:var(--paper-2);border-bottom-color:var(--cyan);}
.rail-hint{
  margin:0;
  padding-left:10px;
  border-left:2px solid rgba(228,161,58,.55);
  font-size:.76rem;
  line-height:1.62;
  color:rgba(143,166,178,.92);
}

/* progress */
.rail-progress{
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  width:3px;
  overflow:hidden;
  background:rgba(143,166,178,.16);
  pointer-events:none;
}
.rail-progress-fill{
  display:block;
  width:100%;
  height:100%;
  background:linear-gradient(180deg,var(--cyan),var(--amber));
  transform:scaleY(var(--read-progress,0));
  transform-origin:top center;
  transition:transform .12s linear;
}

/* ---------- 10. Desktop rail ---------- */
@media (min-width:1024px){
  body{padding-left:var(--rail-w);}
  .site-header{
    position:fixed;
    top:0;
    left:0;
    bottom:0;
    width:var(--rail-w);
    display:flex;
    flex-direction:column;
    padding:26px 22px 20px;
    border-right:1px solid var(--line);
    box-shadow:18px 0 46px -34px rgba(0,0,0,.9);
  }
  .rail-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
  }
  .site-nav{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding-right:4px;
    margin-right:-4px;
  }
  .site-nav::-webkit-scrollbar{width:4px;}
  .site-nav::-webkit-scrollbar-thumb{background:rgba(143,166,178,.3);border-radius:4px;}
}

/* ---------- 11. Mobile drawer ---------- */
@media (max-width:1023.98px){
  .site-header{
    position:sticky;
    top:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:var(--topbar-h);
    padding:8px var(--gutter);
    border-bottom:1px solid var(--line);
    background:var(--ink);
  }
  .rail-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    width:100%;
  }
  .nav-toggle{display:inline-flex;}
  .brand-mark{width:34px;height:34px;font-size:18px;border-radius:9px;}
  .brand-sub{font-size:.6rem;letter-spacing:.1em;}

  .site-nav{
    position:fixed;
    inset:0;
    z-index:50;
    margin-top:0;
    padding:calc(var(--topbar-h) + 26px) var(--gutter) 32px;
    overflow-y:auto;
    overscroll-behavior:contain;
    background:var(--ink);
    background-image:radial-gradient(circle at 100% 0,rgba(56,225,198,.1),transparent 58%);
    opacity:0;
    visibility:hidden;
    transform:translateX(100%);
    transition:transform .32s var(--ease),opacity .24s var(--ease),visibility .32s linear;
  }
  .site-header[data-open="true"] .site-nav{
    opacity:1;
    visibility:visible;
    transform:none;
  }
  .nav-caption{margin-bottom:14px;}
  .nav-link{
    padding:13px 14px;
    font-size:1.06rem;
    border-bottom:1px solid var(--line-soft);
    border-radius:0;
  }
  .nav-link::before{top:13px;bottom:13px;}
  .nav-link[aria-current="page"]{border-radius:9px;}
  .nav-index{font-size:.76rem;}
  .rail-foot{
    margin-top:auto;
    padding-top:26px;
    border-top:1px solid var(--line);
  }
  .rail-progress{
    position:fixed;
    top:var(--topbar-h);
    left:0;
    right:0;
    bottom:auto;
    width:auto;
    height:3px;
    z-index:40;
  }
  .rail-progress-fill{
    transform:scaleX(var(--read-progress,0));
    transform-origin:left center;
    background:linear-gradient(90deg,var(--cyan),var(--amber));
  }
}

/* ---------- 12. Footer ---------- */
.site-footer{
  margin-top:clamp(3rem,8vw,7rem);
  padding:clamp(2.4rem,5vw,4rem) var(--gutter) 0;
  background:var(--ink-2);
  color:var(--paper);
  border-top:1px solid var(--line);
}
.footer-shell{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(1.8rem,4vw,2.6rem);
}
.footer-brand{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.footer-note{
  max-width:46ch;
  margin:0;
  font-size:.9rem;
  color:rgba(242,237,228,.72);
}
.footer-col{
  display:flex;
  flex-direction:column;
  gap:14px;
  min-width:0;
}
.footer-col--entry{min-width:0;}
.footer-col--contact{min-width:0;}
.footer-title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0;
  font-family:var(--font-mono);
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.2em;
  line-height:1.6;
  text-transform:uppercase;
  color:var(--mist);
}
.footer-title::after{content:"";flex:1 1 auto;height:1px;background:var(--line-soft);}
.footer-title--legacy{color:var(--amber);}
.footer-title--legacy::after{background:rgba(228,161,58,.34);}
.footer-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:9px;
}
.footer-link{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  font-size:.9rem;
  color:rgba(242,237,228,.84);
  text-decoration:none;
  transition:color .18s var(--ease);
}
.footer-link:hover{color:var(--cyan);}
.footer-col--legacy{position:relative;}
.legacy-trace{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-left:3px;
  padding-left:16px;
  border-left:2px solid rgba(228,161,58,.45);
  background:linear-gradient(90deg,rgba(228,161,58,.08),transparent 72%);
}
.legacy-tag{
  margin:0;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--font-mono);
  font-size:.66rem;
  letter-spacing:.16em;
  color:var(--ember);
}
.legacy-tag::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--ember);
  box-shadow:0 0 0 3px rgba(217,98,69,.18);
  flex:none;
}
.footer-list--legacy .footer-link{padding-left:2px;}
.footer-list--legacy .footer-link::before{
  content:"—";
  font-family:var(--font-mono);
  color:rgba(228,161,58,.72);
  transition:color .18s var(--ease);
}
.footer-list--legacy .footer-link:hover::before{color:var(--amber);}
.legacy-note{
  margin:0;
  max-width:32ch;
  font-size:.78rem;
  line-height:1.65;
  color:rgba(143,166,178,.95);
}
.contact-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
  font-size:.88rem;
}
.contact-item{
  display:flex;
  align-items:baseline;
  gap:10px;
  color:rgba(242,237,228,.82);
}
.contact-key{
  flex:none;
  min-width:2.8em;
  font-family:var(--font-mono);
  font-size:.68rem;
  letter-spacing:.12em;
  color:var(--mist);
}
.contact-value{word-break:break-all;}
.contact-note{
  margin:0;
  font-size:.78rem;
  line-height:1.68;
  color:rgba(143,166,178,.95);
  max-width:34ch;
}
.contact-icp{
  margin:0;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.06em;
  color:var(--amber);
}
.footer-base{
  width:100%;
  max-width:var(--maxw);
  margin:clamp(2rem,4vw,3rem) auto 0;
  padding:18px 0 26px;
  border-top:1px solid var(--line);
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 24px;
  font-family:var(--font-mono);
  font-size:.73rem;
  letter-spacing:.06em;
  color:var(--mist);
}
.footer-copy,.footer-icp,.footer-meta{margin:0;}
.footer-meta{margin-left:auto;color:rgba(143,166,178,.78);}

@media (min-width:760px){
  .footer-shell{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:1024px){
  .footer-shell{grid-template-columns:repeat(4,minmax(0,1fr));}
  .footer-brand{
    grid-column:1 / -1;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:clamp(1.4rem,3vw,3rem);
    padding-bottom:1.5rem;
    border-bottom:1px solid var(--line-soft);
  }
  .footer-note{max-width:52ch;text-align:right;}
}

/* ---------- 13. Reveal & utilities ---------- */
[data-reveal]{opacity:1;transform:none;}
html.js [data-reveal]{
  opacity:0;
  transform:translateY(12px);
  transition:opacity .5s var(--ease),transform .5s var(--ease);
  transition-delay:var(--reveal-delay,0ms);
  will-change:opacity,transform;
}
html.js [data-reveal].is-revealed{opacity:1;transform:none;}

[data-copy]{
  cursor:pointer;
  transition:border-color .18s var(--ease),color .18s var(--ease),background .18s var(--ease);
}
[data-copy][data-state="copied"]{
  background:var(--cyan);
  color:#06232C;
  border-color:transparent;
}

.copy-toast{
  position:fixed;
  left:50%;
  bottom:24px;
  z-index:120;
  margin:0;
  max-width:min(92vw,480px);
  padding:10px 18px;
  border-radius:999px;
  background:var(--cyan);
  color:#06232C;
  font-family:var(--font-mono);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.04em;
  text-align:center;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,12px);
  transition:opacity .2s var(--ease),transform .2s var(--ease);
}
.copy-toast:not(:empty){opacity:1;transform:translate(-50%,0);}

/* ---------- 14. 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;
  }
  html.js [data-reveal]{
    opacity:0;
    transform:none;
    transition:opacity .3s linear;
    transition-delay:0ms !important;
  }
  html.js [data-reveal].is-revealed{opacity:1;}
  .site-nav{transition:none;}
  .rail-progress-fill{transition:none;}
}
