/* ============================================================
   IM钱包 · 共享样式表 /assets/site.css
   深色控制台基底 · 靛紫/深蓝绿/酒红分区 · 青蓝→电紫渐变信号
   ============================================================ */

/* ---------- 1. 变量 ---------- */
:root{
  --void-950:#06080D;
  --panel-900:#0E1219;
  --indigo-zone:#131A2E;
  --teal-zone:#0A1A1D;
  --wine-zone:#1E1116;
  --hairline-700:#2B3342;
  --line-soft:#4C5668;
  --silver-050:#E6EBF2;
  --silver-300:#A7B0BF;
  --cyan-400:#24D6E8;
  --violet-500:#7B5CFF;
  --amber-400:#FFB020;
  --mint-400:#2FD6A0;

  --grad-signal:linear-gradient(90deg,var(--cyan-400) 0%,var(--violet-500) 100%);

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

  --fs-1:.78rem;
  --fs-2:.9rem;
  --fs-3:1rem;
  --fs-4:1.25rem;
  --fs-5:1.6rem;
  --fs-6:2.2rem;
  --fs-7:3.2rem;
  --fs-8:5.4rem;

  --page-max:1280px;
  --gutter:clamp(20px,4vw,48px);
  --nav-h:84px;
  --dur-hover:160ms;
  --rule:3px;
  --rule-thick:6px;
}

/* ---------- 2. Reset ---------- */
*,
*::before,
*::after{box-sizing:border-box}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--nav-h) + 20px);
}

body{
  margin:0;
  background:var(--void-950);
  color:var(--silver-300);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.75;
  letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

h1,h2,h3,h4,h5,h6{
  margin:0;
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.15;
  color:var(--silver-050);
}

p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit;text-decoration:none}
img,svg,video{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;margin:0;padding:0;cursor:pointer}
table{border-collapse:collapse}
hr{border:0}

::selection{background:var(--violet-500);color:var(--silver-050)}

:focus-visible{
  outline:2px solid var(--cyan-400);
  outline-offset:2px;
}

/* ---------- 3. 排版工具 ---------- */
.display{
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(2.6rem,6vw,5.4rem);
  line-height:.95;
  letter-spacing:-.015em;
  color:var(--silver-050);
}

.lede{
  font-size:var(--fs-4);
  line-height:1.65;
  color:var(--silver-050);
  font-weight:400;
}

.mono{
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:.02em;
}

.prose{max-width:64ch}
.prose > * + *{margin-top:1.1em}
.prose p{max-width:64ch}

.side-note{
  writing-mode:vertical-rl;
  text-orientation:mixed;
  font-family:var(--font-mono);
  font-size:var(--fs-1);
  letter-spacing:.22em;
  color:var(--line-soft);
  text-transform:uppercase;
}
.side-note--flip{transform:rotate(180deg)}

.status-line{
  display:block;
  height:4px;
  width:100%;
  background:var(--grad-signal);
}
.status-line--amber{background:var(--amber-400)}

.visually-hidden{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
  border:0;
}

/* ---------- 4. 布局容器 ---------- */
.container{
  width:100%;
  max-width:var(--page-max);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.section{padding-block:clamp(56px,7vw,104px)}
.section--tight{padding-block:clamp(32px,4vw,56px)}
.section--flush-top{padding-top:0}

.section__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px 40px;
  flex-wrap:wrap;
  padding-bottom:18px;
  border-bottom:var(--rule) solid var(--hairline-700);
  margin-bottom:clamp(28px,3.5vw,48px);
}

.section__kicker{
  display:block;
  font-family:var(--font-mono);
  font-size:var(--fs-1);
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--cyan-400);
  margin-bottom:12px;
}

.section__title{
  font-family:var(--font-display);
  font-size:clamp(1.6rem,3vw,2.2rem);
  font-weight:700;
  line-height:1.08;
  color:var(--silver-050);
  letter-spacing:.005em;
}

.section__note{
  font-family:var(--font-mono);
  font-size:var(--fs-1);
  color:var(--silver-300);
  letter-spacing:.04em;
}

.grid-12{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:24px;
}
.col-main{grid-column:1 / span 7}
.col-aside{grid-column:9 / span 4}

.stack > * + *{margin-top:20px}
.stack-lg > * + *{margin-top:36px}

/* ---------- 5. 跳转链接 ---------- */
.skip-link{
  position:absolute;
  left:var(--gutter);
  top:-80px;
  z-index:140;
  padding:12px 20px;
  background:var(--cyan-400);
  color:var(--void-950);
  font-family:var(--font-mono);
  font-size:var(--fs-1);
  font-weight:700;
  letter-spacing:.1em;
  transition:top var(--dur-hover);
}
.skip-link:focus{top:14px}

/* ---------- 6. 页头 ---------- */
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  background:var(--void-950);
  border-bottom:var(--rule) solid var(--hairline-700);
}

.site-header__inner{
  max-width:var(--page-max);
  margin-inline:auto;
  padding:14px var(--gutter);
  min-height:var(--nav-h);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
}

.brand{
  display:flex;
  align-items:center;
  gap:14px;
  flex:0 0 auto;
  min-width:0;
}

.brand__mark{
  position:relative;
  flex:0 0 auto;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  font-family:var(--font-mono);
  font-size:var(--fs-2);
  font-weight:700;
  letter-spacing:.04em;
  color:var(--silver-050);
  background:var(--panel-900);
  border:var(--rule) solid var(--hairline-700);
  transition:border-color var(--dur-hover),color var(--dur-hover);
}
.brand__mark::after{
  content:"";
  position:absolute;
  left:-3px;right:-3px;bottom:-3px;
  height:3px;
  background:var(--grad-signal);
}
.brand:hover .brand__mark,
.brand:focus-visible .brand__mark{border-color:var(--cyan-400)}

.brand__text{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.brand__name{
  font-family:var(--font-display);
  font-size:var(--fs-4);
  font-weight:800;
  line-height:1.15;
  letter-spacing:.02em;
  color:var(--silver-050);
}
.brand__line{
  font-family:var(--font-mono);
  font-size:var(--fs-1);
  line-height:1.2;
  letter-spacing:.08em;
  color:var(--silver-300);
  white-space:nowrap;
}

.site-header__rail{
  display:flex;
  align-items:center;
  gap:16px;
  min-width:0;
  flex:0 1 auto;
}

.site-nav{min-width:0}

.site-nav__list{
  display:flex;
  align-items:center;
  gap:2px;
}

.site-nav__item{flex:0 0 auto}

.site-nav__link{
  display:flex;
  align-items:baseline;
  gap:8px;
  padding:10px 13px;
  font-size:var(--fs-2);
  line-height:1.3;
  color:var(--silver-300);
  white-space:nowrap;
  border-bottom:var(--rule) solid transparent;
  transition:color var(--dur-hover),border-color var(--dur-hover);
}
.site-nav__link:hover{
  color:var(--silver-050);
  border-bottom-color:var(--cyan-400);
}
.site-nav__link[aria-current="page"]{
  color:var(--silver-050);
  border-bottom-color:var(--violet-500);
}

.site-nav__index{
  font-family:var(--font-mono);
  font-size:.66rem;
  letter-spacing:.06em;
  color:var(--line-soft);
  transition:color var(--dur-hover);
}
.site-nav__link:hover .site-nav__index{color:var(--cyan-400)}
.site-nav__link[aria-current="page"] .site-nav__index{color:var(--violet-500)}

.header-cta{
  flex:0 0 auto;
  display:inline-block;
  padding:11px 20px;
  font-size:var(--fs-2);
  font-weight:600;
  letter-spacing:.02em;
  color:var(--silver-050);
  background:transparent;
  border:var(--rule) solid var(--hairline-700);
  transition:border-color var(--dur-hover),color var(--dur-hover),background-color var(--dur-hover);
}
.header-cta:hover,
.header-cta:focus-visible{
  border-color:var(--cyan-400);
  color:var(--cyan-400);
  background-color:rgba(36,214,232,.06);
}

.nav-toggle{
  display:none;
  flex:0 0 auto;
  width:48px;
  height:48px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  border:var(--rule) solid var(--hairline-700);
  transition:border-color var(--dur-hover);
}
.nav-toggle:hover{border-color:var(--cyan-400)}

.nav-toggle__bar{
  display:block;
  width:20px;
  height:2px;
  background:var(--silver-050);
  transition:transform var(--dur-hover),opacity var(--dur-hover);
}

.site-header[data-open="true"] .nav-toggle{border-color:var(--violet-500)}
.site-header[data-open="true"] .nav-toggle__bar:first-child{transform:translateY(4px) rotate(45deg)}
.site-header[data-open="true"] .nav-toggle__bar:last-child{transform:translateY(-4px) rotate(-45deg)}

/* ---------- 7. 面包屑与章节索引 ---------- */
.breadcrumb{padding-top:clamp(20px,3vw,36px)}

.breadcrumb__list{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  font-family:var(--font-mono);
  font-size:var(--fs-1);
  letter-spacing:.06em;
  color:var(--silver-300);
}
.breadcrumb__item{display:flex;align-items:center;gap:10px}
.breadcrumb__link{
  color:var(--silver-300);
  border-bottom:1px solid transparent;
  transition:color var(--dur-hover),border-color var(--dur-hover);
}
.breadcrumb__link:hover{color:var(--cyan-400);border-bottom-color:var(--cyan-400)}
.breadcrumb__sep{color:var(--line-soft)}
.breadcrumb__current{color:var(--silver-050)}

.section-index{
  border-top:var(--rule) solid var(--hairline-700);
  background:var(--indigo-zone);
  padding:22px clamp(20px,3vw,32px);
}
.section-index__title{
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--cyan-400);
  margin-bottom:12px;
}
.section-index__list{
  display:flex;
  flex-wrap:wrap;
  gap:8px 24px;
}
.section-index__link{
  font-size:var(--fs-2);
  color:var(--silver-300);
  border-bottom:2px solid transparent;
  transition:color var(--dur-hover),border-color var(--dur-hover);
}
.section-index__link:hover{color:var(--silver-050);border-bottom-color:var(--cyan-400)}

/* ---------- 8. 分区色块 ---------- */
.zone{
  position:relative;
  background:var(--panel-900);
  border:var(--rule) solid var(--hairline-700);
  padding:clamp(22px,3vw,40px);
}
.zone--indigo{background:var(--indigo-zone)}
.zone--teal{background:var(--teal-zone)}
.zone--wine{background:var(--wine-zone);border-color:#42232C}

.zone--wine .zone__label,
.zone__label--risk{color:var(--amber-400)}

.zone__label{
  display:block;
  font-family:var(--font-mono);
  font-size:var(--fs-1);
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--cyan-400);
  margin-bottom:14px;
}

/* ---------- 9. 按钮 ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 24px;
  font-size:var(--fs-2);
  font-weight:600;
  line-height:1.3;
  letter-spacing:.02em;
  color:var(--silver-050);
  background:var(--panel-900);
  border:var(--rule) solid var(--hairline-700);
  transition:border-color var(--dur-hover),color var(--dur-hover),background-color var(--dur-hover);
}
.btn:hover,
.btn:focus-visible{
  border-color:var(--cyan-400);
  color:var(--void-950);
  background-color:var(--cyan-400);
}

.btn--primary{
  background:var(--grad-signal);
  border-color:transparent;
  color:var(--void-950);
}
.btn--primary:hover,
.btn--primary:focus-visible{
  border-color:var(--silver-050);
  background:var(--grad-signal);
  color:var(--void-950);
}

.btn--ghost{
  background:transparent;
}
.btn--ghost:hover,
.btn--ghost:focus-visible{
  background-color:rgba(36,214,232,.1);
  color:var(--cyan-400);
  border-color:var(--cyan-400);
}

.btn--amber{
  background:transparent;
  border-color:var(--amber-400);
  color:var(--amber-400);
}
.btn--amber:hover,
.btn--amber:focus-visible{
  background-color:var(--amber-400);
  color:var(--void-950);
  border-color:var(--amber-400);
}

.copy-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.06em;
  color:var(--silver-300);
  border:1px solid var(--hairline-700);
  transition:border-color var(--dur-hover),color var(--dur-hover);
}
.copy-btn:hover{border-color:var(--cyan-400);color:var(--cyan-400)}
.copy-btn[data-copied="true"]{
  border-color:var(--mint-400);
  color:var(--mint-400);
}

/* ---------- 10. 横向主题带 ---------- */
.rail{
  position:relative;
  margin-block:clamp(36px,5vw,72px);
}

.rail__track{
  display:flex;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x proximity;
  border-top:var(--rule) solid var(--hairline-700);
  border-bottom:var(--rule) solid var(--hairline-700);
  scrollbar-width:thin;
  scrollbar-color:var(--hairline-700) transparent;
  -webkit-overflow-scrolling:touch;
}
.rail__track::-webkit-scrollbar{height:6px}
.rail__track::-webkit-scrollbar-track{background:transparent}
.rail__track::-webkit-scrollbar-thumb{background:var(--hairline-700)}
.rail__track:focus-visible{outline:2px solid var(--cyan-400);outline-offset:-3px}

.rail__item{
  flex:0 0 min(360px,78vw);
  scroll-snap-align:start;
  padding:clamp(20px,2.4vw,32px);
  background:var(--panel-900);
  border-right:var(--rule) solid var(--hairline-700);
  transition:background-color var(--dur-hover);
}
.rail__item:last-child{border-right:0}
.rail__item:hover{background:var(--indigo-zone)}

.rail::after{
  content:"";
  position:absolute;
  top:0;right:0;bottom:0;
  width:64px;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(6,8,13,0) 0%,rgba(6,8,13,.92) 100%);
}

/* ---------- 11. 图像容器 ---------- */
.media-frame{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16 / 10;
  background:var(--panel-900);
  border:var(--rule) solid var(--hairline-700);
  overflow:hidden;
}
.media-frame--wide{aspect-ratio:21 / 9}
.media-frame--tall{aspect-ratio:3 / 4}
.media-frame--square{aspect-ratio:1 / 1}

.media-frame img,
.media-frame__img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.85) contrast(1.06) brightness(.8);
}

.media-frame::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(120% 90% at 78% 10%,rgba(36,214,232,.18),rgba(6,8,13,0) 58%),
    radial-gradient(90% 80% at 12% 96%,rgba(123,92,255,.2),rgba(6,8,13,0) 62%),
    linear-gradient(180deg,rgba(6,8,13,0) 44%,rgba(6,8,13,.86) 100%);
}

.media-frame__tag{
  position:absolute;
  top:12px;left:12px;
  z-index:2;
  padding:5px 10px;
  font-family:var(--font-mono);
  font-size:.68rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--cyan-400);
  background:var(--void-950);
  border:1px solid var(--hairline-700);
}

.media-frame__caption{
  position:absolute;
  left:0;right:0;bottom:0;
  z-index:2;
  padding:14px 16px;
  font-family:var(--font-mono);
  font-size:var(--fs-1);
  line-height:1.5;
  letter-spacing:.04em;
  color:var(--silver-050);
}

/* ---------- 12. 数据表 ---------- */
.table-wrap{
  overflow-x:auto;
  border:var(--rule) solid var(--hairline-700);
  background:var(--teal-zone);
  -webkit-overflow-scrolling:touch;
}

.data-table{
  width:100%;
  min-width:560px;
  font-size:var(--fs-2);
}
.data-table th,
.data-table td{
  padding:14px 16px;
  text-align:left;
  vertical-align:top;
  border-bottom:1px solid var(--hairline-700);
}
.data-table thead th{
  position:sticky;
  top:0;
  z-index:1;
  font-family:var(--font-mono);
  font-size:var(--fs-1);
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--cyan-400);
  background:#0B171A;
  white-space:nowrap;
}
.data-table tbody tr{transition:background-color var(--dur-hover)}
.data-table tbody tr:hover{background:rgba(123,92,255,.1)}
.data-table tbody tr:last-child th,
.data-table tbody tr:last-child td{border-bottom:0}
.data-table .cell-num{
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:.02em;
  color:var(--silver-050);
  white-space:nowrap;
}
.data-table .cell-ok{color:var(--mint-400)}
.data-table .cell-risk{color:var(--amber-400)}

/* ---------- 13. 折叠块 ---------- */
.fold{
  border:var(--rule) solid var(--hairline-700);
  background:var(--panel-900);
  margin-bottom:14px;
}
.fold:last-child{margin-bottom:0}

.fold > summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 22px;
  cursor:pointer;
  font-weight:600;
  color:var(--silver-050);
  list-style:none;
  transition:color var(--dur-hover);
}
.fold > summary::-webkit-details-marker{display:none}
.fold > summary::after{
  content:"＋";
  font-family:var(--font-mono);
  font-size:var(--fs-3);
  color:var(--cyan-400);
  flex:0 0 auto;
}
.fold[open] > summary::after{content:"－"}
.fold > summary:hover{color:var(--cyan-400)}

.fold__body{
  padding:0 22px 22px;
  border-top:1px solid var(--hairline-700);
  padding-top:18px;
  max-width:66ch;
  color:var(--silver-300);
}

/* ---------- 14. 滚动进度与返回顶部 ---------- */
.scroll-progress{
  position:fixed;
  top:0;left:0;
  width:100%;
  height:3px;
  transform:scaleX(0);
  transform-origin:0 50%;
  background:var(--grad-signal);
  z-index:120;
  pointer-events:none;
  will-change:transform;
}

.to-top{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:105;
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  font-family:var(--font-mono);
  font-size:.7rem;
  letter-spacing:.14em;
  color:var(--silver-050);
  background:var(--panel-900);
  border:var(--rule) solid var(--hairline-700);
  opacity:0;
  visibility:hidden;
  transition:opacity var(--dur-hover),visibility var(--dur-hover),border-color var(--dur-hover),color var(--dur-hover);
}
.to-top[data-visible="true"]{opacity:1;visibility:visible}
.to-top:hover,
.to-top:focus-visible{border-color:var(--cyan-400);color:var(--cyan-400)}

/* ---------- 15. 页脚 ---------- */
.site-footer{
  position:relative;
  margin-top:clamp(72px,9vw,140px);
  background:var(--panel-900);
  border-top:var(--rule-thick) solid var(--hairline-700);
}
.site-footer::before{
  content:"";
  position:absolute;
  top:calc(-1 * var(--rule-thick));
  left:0;
  width:min(300px,46%);
  height:var(--rule-thick);
  background:var(--grad-signal);
}

.site-footer__top{
  max-width:var(--page-max);
  margin-inline:auto;
  padding:clamp(40px,5vw,72px) var(--gutter) clamp(28px,3.4vw,44px);
  display:grid;
  grid-template-columns:minmax(250px,1.5fr) repeat(2,minmax(130px,.85fr)) minmax(230px,1.35fr);
  gap:clamp(28px,4vw,52px);
}

.footer-brand__name{
  display:inline-block;
  font-family:var(--font-display);
  font-size:var(--fs-5);
  font-weight:800;
  line-height:1.15;
  color:var(--silver-050);
  border-bottom:var(--rule) solid transparent;
  transition:border-color var(--dur-hover),color var(--dur-hover);
}
.footer-brand__name:hover{border-bottom-color:var(--cyan-400);color:var(--cyan-400)}

.footer-brand__line{
  margin-top:8px;
  font-family:var(--font-mono);
  font-size:var(--fs-1);
  letter-spacing:.1em;
  color:var(--cyan-400);
}

.footer-brand__note{
  margin-top:16px;
  max-width:34ch;
  font-size:var(--fs-2);
  line-height:1.7;
  color:var(--silver-300);
}

.footer-col__title{
  font-family:var(--font-mono);
  font-size:var(--fs-1);
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--silver-050);
  padding-bottom:12px;
  margin-bottom:14px;
  border-bottom:1px solid var(--hairline-700);
}

.footer-col__list{display:flex;flex-direction:column;gap:10px}

.footer-link{
  display:inline-block;
  font-size:var(--fs-2);
  color:var(--silver-300);
  border-bottom:1px solid transparent;
  transition:color var(--dur-hover),border-color var(--dur-hover);
}
.footer-link:hover{color:var(--cyan-400);border-bottom-color:var(--cyan-400)}

.footer-contact__list{display:flex;flex-direction:column;gap:14px}
.footer-contact__row{display:flex;flex-direction:column;gap:4px}
.footer-contact__row dt{
  font-family:var(--font-mono);
  font-size:var(--fs-1);
  letter-spacing:.1em;
  color:var(--line-soft);
}
.footer-contact__row dd{
  font-size:var(--fs-2);
  line-height:1.6;
  color:var(--silver-050);
  word-break:break-word;
}
.footer-contact__row dd.mono{color:var(--silver-050)}

.footer-legal{
  border-top:var(--rule) solid var(--hairline-700);
  background:var(--void-950);
}
.footer-legal__line,
.footer-legal__meta{
  max-width:var(--page-max);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.footer-legal__line{
  padding-top:22px;
  font-size:var(--fs-2);
  line-height:1.7;
  color:var(--silver-300);
  max-width:calc(var(--page-max) + 0px);
}
.footer-legal__meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 28px;
  padding-top:12px;
  padding-bottom:26px;
  font-family:var(--font-mono);
  font-size:var(--fs-1);
  letter-spacing:.05em;
  color:var(--line-soft);
}
.footer-legal__meta li{color:var(--line-soft)}

/* ---------- 16. 响应式 ---------- */
@media (max-width:1240px){
  .brand__line{display:none}
}

@media (max-width:1080px){
  :root{--nav-h:68px}

  .nav-toggle{display:flex}

  .site-header__inner{padding:10px var(--gutter);gap:16px}

  .site-nav{
    position:absolute;
    left:0;
    right:0;
    top:100%;
    display:none;
    background:var(--void-950);
    border-bottom:var(--rule-thick) solid var(--hairline-700);
    padding:8px var(--gutter) 26px;
    max-height:calc(100vh - var(--nav-h));
    overflow-y:auto;
  }
  .site-header[data-open="true"] .site-nav{display:block}

  .site-nav__list{flex-direction:column;align-items:stretch;gap:0}
  .site-nav__item{flex:1 1 auto}
  .site-nav__link{
    padding:16px 4px;
    font-size:var(--fs-3);
    border-bottom:1px solid var(--hairline-700);
    justify-content:flex-start;
  }
  .site-nav__link:hover{border-bottom-color:var(--cyan-400)}
  .site-nav__link[aria-current="page"]{border-bottom-color:var(--violet-500)}
  .site-nav__index{font-size:.72rem}

  .header-cta{display:none}

  .grid-12{grid-template-columns:repeat(6,minmax(0,1fr))}
  .col-main{grid-column:1 / -1}
  .col-aside{grid-column:1 / -1}

  .site-footer__top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-brand{grid-column:1 / -1}
}

@media (max-width:640px){
  body{font-size:16px}
  .brand__mark{width:38px;height:38px;font-size:.8rem}
  .brand__name{font-size:var(--fs-3)}
  .grid-12{gap:16px}
  .rail__item{flex:0 0 86vw}
  .site-footer__top{grid-template-columns:1fr}
  .to-top{right:14px;bottom:14px;width:48px;height:48px}
  .data-table{min-width:480px}
}

@media (max-width:380px){
  .brand__name{font-size:.95rem}
}

/* ---------- 17. 无障碍动效降级 ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,
  *::before,
  *::after{
    transition-duration:.01ms !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
  }
  .rail__track{scroll-snap-type:none}
}
