/* ============================================================
   云开赛场 · 共享样式 /assets/site.css
   轨道导航 + 框景窗口 + 仪表板式数据组件
   ============================================================ */

:root{
  --cloud-blue:#0B6E99;
  --rail-deep:#07435C;
  --night-green:#0F3D2E;
  --night-lift:#17563F;
  --data-yellow:#E8FF3A;
  --final-orange:#FF5A36;
  --cloud-white:#F4F8FA;
  --mist:#C7D6DD;
  --ink:#0A1419;
  --sky:#7ED3E8;

  --rail-w:264px;
  --edge:clamp(18px,4vw,56px);
  --shadow:6px 6px 0 rgba(10,20,25,.88);
  --shadow-lg:10px 10px 0 rgba(10,20,25,.9);
  --shadow-dark:6px 6px 0 rgba(0,0,0,.45);

  --font-display:"Smiley Sans","Source Han Sans Narrow","Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --font-body:"Source Han Sans SC","Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --font-mono:"JetBrains Mono","Roboto Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box }
html{ -webkit-text-size-adjust:100% }
body{
  margin:0;
  font-family:var(--font-body);
  font-size:16.5px;
  line-height:1.75;
  color:var(--ink);
  background:var(--cloud-white);
  overflow-x:clip;
}
img,svg,video{ display:block; max-width:100%; height:auto }
a{ color:inherit }
button{ font:inherit; color:inherit }
h1,h2,h3,h4{ margin:0; font-weight:700; line-height:1.25 }
p{ margin:0 }
ul,ol{ margin:0 }
::selection{ background:var(--data-yellow); color:var(--ink) }
:focus-visible{ outline:3px solid var(--final-orange); outline-offset:3px }

@media (prefers-reduced-motion:no-preference){ html{ scroll-behavior:smooth } }

/* ---------- 头部外壳：侧边轨道 ---------- */
.rail{
  position:sticky;
  top:0;
  z-index:120;
  color:var(--cloud-white);
}
.rail::before{ content:none }

.rail-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 16px;
  background:linear-gradient(140deg,var(--rail-deep),var(--night-green));
  border-bottom:3px solid var(--ink);
}

.rail-inner{
  position:fixed;
  top:0;
  left:0;
  bottom:0;
  width:min(322px,86vw);
  z-index:130;
  display:flex;
  flex-direction:column;
  gap:22px;
  padding:24px 18px 30px;
  overflow-y:auto;
  background:linear-gradient(168deg,var(--rail-deep) 0%,var(--cloud-blue) 46%,var(--night-green) 100%);
  border-right:3px solid var(--ink);
  visibility:hidden;
  transform:translateX(-102%);
  transition:transform .22s ease, visibility .22s ease;
}
.rail[data-open="true"] .rail-inner{ transform:none; visibility:visible }

.rail-scrim{ display:none; border:0; padding:0; cursor:pointer }
.rail[data-open="true"] .rail-scrim{
  display:block;
  position:fixed;
  inset:0;
  z-index:125;
  background:rgba(10,20,25,.62);
}

@media (max-width:1079px){
  html.nav-open{ overflow:hidden }
}

@media (min-width:1080px){
  body{ padding-left:var(--rail-w) }
  .rail{
    position:fixed;
    inset:0 auto 0 0;
    width:var(--rail-w);
    z-index:100;
    display:flex;
    flex-direction:column;
    background:linear-gradient(168deg,var(--rail-deep) 0%,var(--cloud-blue) 40%,var(--night-green) 100%);
    border-right:3px solid var(--ink);
  }
  .rail::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
      repeating-linear-gradient(0deg, rgba(126,211,232,.07) 0 1px, transparent 1px 46px),
      radial-gradient(120% 58% at 112% -8%, rgba(126,211,232,.30), transparent 62%),
      radial-gradient(90% 46% at -20% 102%, rgba(232,255,58,.10), transparent 66%);
  }
  .rail-bar{ display:none }
  .rail-inner{
    position:static;
    inset:auto;
    width:auto;
    flex:1;
    z-index:1;
    visibility:visible;
    transform:none;
    background:none;
    border-right:0;
    padding:30px 22px 26px;
    gap:clamp(20px,3vh,30px);
  }
  .rail-scrim,
  .rail[data-open="true"] .rail-scrim{ display:none !important }
}

/* 品牌 */
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  color:var(--cloud-white);
}
.brand__mark{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  background:var(--data-yellow);
  color:var(--ink);
  border:3px solid var(--ink);
  box-shadow:4px 4px 0 rgba(10,20,25,.6);
  font-family:var(--font-mono);
  font-size:12px;
  font-weight:700;
  letter-spacing:.04em;
}
.brand__text{ display:flex; flex-direction:column; gap:2px }
.brand__name{
  font-family:var(--font-display);
  font-size:19px;
  font-weight:700;
  letter-spacing:.02em;
  line-height:1.2;
}
.brand__line{
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:.16em;
  color:var(--sky);
}
.brand--compact .brand__mark{ width:38px; height:38px; font-size:11px; box-shadow:3px 3px 0 rgba(10,20,25,.6) }
.brand--compact .brand__name{ font-size:16px }
.brand:focus-visible{ outline:3px solid var(--data-yellow); outline-offset:3px }

/* 抽屉开关 */
.nav-toggle{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:9px 12px;
  background:transparent;
  border:3px solid var(--mist);
  color:var(--cloud-white);
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.12em;
  cursor:pointer;
  transition:color .18s ease, border-color .18s ease;
}
.nav-toggle:hover{ color:var(--data-yellow); border-color:var(--data-yellow) }
.nav-toggle__bars{
  position:relative;
  display:block;
  width:18px;
  height:2px;
  background:var(--data-yellow);
  box-shadow:0 -6px 0 var(--data-yellow), 0 6px 0 var(--data-yellow);
  transition:background-color .2s ease, box-shadow .2s ease;
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars{ background:transparent; box-shadow:none }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before,
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:2px;
  background:var(--data-yellow);
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before{ transform:rotate(45deg) }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after{ transform:rotate(-45deg) }

/* 轨道导航 */
.rail-nav{ display:flex; flex-direction:column; gap:10px }
.rail-nav__label{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.18em;
  color:rgba(199,214,221,.72);
}
.rail-nav__list{
  list-style:none;
  padding:0;
  border-top:1px solid rgba(199,214,221,.22);
}
.rail-nav__item{ border-bottom:1px solid rgba(199,214,221,.16) }
.rail-nav__link{
  position:relative;
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  align-items:center;
  gap:8px;
  padding:13px 10px 13px 14px;
  color:rgba(244,248,250,.84);
  text-decoration:none;
  font-size:15px;
  letter-spacing:.01em;
  transition:color .18s ease, background-color .18s ease, padding-left .18s ease;
}
.rail-nav__link::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--data-yellow);
  transform:scaleY(0);
  transform-origin:top center;
  transition:transform .2s ease;
}
.rail-nav__link:hover{ color:#fff; background:rgba(126,211,232,.10); padding-left:18px }
.rail-nav__link:hover::before{ transform:scaleY(1) }
.rail-nav__link[aria-current="page"]{ color:var(--data-yellow); background:rgba(232,255,58,.09) }
.rail-nav__link[aria-current="page"]::before{ transform:scaleY(1) }
.rail-nav__link:focus-visible{ outline:3px solid var(--data-yellow); outline-offset:-3px }
.rail-nav__num{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.1em;
  color:rgba(126,211,232,.9);
}
.rail-nav__link[aria-current="page"] .rail-nav__num{ color:var(--data-yellow) }
.rail-nav__text{ display:block }

/* 轨道动作区与状态区 */
.rail-actions{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:auto;
}
.rail-meta{
  display:grid;
  gap:4px;
  padding-top:14px;
  border-top:3px solid rgba(232,255,58,.75);
}
.rail-meta__label{
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:.18em;
  color:var(--sky);
}
.rail-meta__round{ font-size:14px; color:var(--cloud-white) }
.rail-meta__num{ font-family:var(--font-mono); font-weight:700; color:var(--data-yellow) }
.rail-meta__stamp{
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.03em;
  color:rgba(199,214,221,.8);
}
.rail-meta__time{ color:var(--cloud-white) }

/* ---------- 滚动进度 & 回到赛事总览 ---------- */
.scroll-progress{
  position:fixed;
  top:0;
  left:0;
  right:0;
  height:3px;
  z-index:210;
  background:rgba(199,214,221,.22);
  pointer-events:none;
}
.scroll-progress__bar{
  display:block;
  width:100%;
  height:100%;
  background:linear-gradient(90deg,var(--data-yellow),var(--final-orange));
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .12s linear;
}
@media (min-width:1080px){ .scroll-progress{ left:var(--rail-w) } }

.overview-anchor{
  position:fixed;
  right:clamp(14px,2.4vw,30px);
  bottom:clamp(14px,2.4vw,30px);
  z-index:150;
  padding:10px 14px;
  background:var(--ink);
  color:var(--data-yellow);
  border:3px solid var(--data-yellow);
  box-shadow:5px 5px 0 rgba(10,20,25,.5);
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.1em;
  text-decoration:none;
  opacity:0;
  visibility:hidden;
  transform:translateY(12px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease, background-color .18s ease;
}
.overview-anchor[data-visible="true"]{ opacity:1; visibility:visible; transform:none }
.overview-anchor:hover{ background:var(--data-yellow); color:var(--ink) }

.skip-link{
  position:fixed;
  top:0;
  left:0;
  z-index:300;
  padding:10px 16px;
  background:var(--data-yellow);
  color:var(--ink);
  border:3px solid var(--ink);
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.12em;
  text-decoration:none;
  transform:translateY(-130%);
}
.skip-link:focus{ transform:none }

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 18px;
  background:var(--cloud-white);
  color:var(--ink);
  border:3px solid var(--ink);
  box-shadow:var(--shadow);
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:.1em;
  text-decoration:none;
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, background-color .16s ease, color .16s ease;
}
.btn:hover{ transform:translate(-2px,-2px); box-shadow:8px 8px 0 rgba(10,20,25,.88) }
.btn:active{ transform:translate(1px,1px); box-shadow:3px 3px 0 rgba(10,20,25,.88) }
.btn--solid{ background:var(--data-yellow); color:var(--ink) }
.btn--ghost{
  background:transparent;
  color:var(--cloud-white);
  border-color:var(--mist);
  box-shadow:var(--shadow-dark);
}
.btn--ghost:hover{ background:rgba(244,248,250,.09); box-shadow:8px 8px 0 rgba(0,0,0,.5) }
.btn--outline{ background:transparent; color:var(--cloud-blue) }
.btn--alert{ background:var(--final-orange); color:var(--ink) }

/* ---------- 容器与分区 ---------- */
.container{
  width:min(calc(100% - 2 * var(--edge)),1240px);
  margin-inline:auto;
}
.container--wide{ width:min(calc(100% - 2 * var(--edge)),1560px) }

.section{
  position:relative;
  padding-block:clamp(48px,7vw,104px);
  scroll-margin-top:96px;
}
.section--light{ background:var(--cloud-white); color:var(--ink) }
.section--dark{
  background:linear-gradient(165deg,var(--night-green),var(--rail-deep) 88%);
  color:var(--cloud-white);
  border-block:3px solid var(--ink);
}
.section--flush{ padding-block:0 }

/* ---------- 排版 ---------- */
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.14em;
  color:var(--cloud-blue);
}
.section--dark .eyebrow{ color:var(--sky) }

.display{
  margin-bottom:18px;
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(2rem,8vw,2.8rem);
  line-height:1.04;
  letter-spacing:-.01em;
}
.display--tight{ font-size:clamp(1.8rem,5vw,3rem); line-height:1.12 }
@media (min-width:900px){
  .display{ font-size:clamp(3.4rem,7vw,7rem) }
}

.lede{
  max-width:60ch;
  font-size:clamp(1rem,1.5vw,1.18rem);
  line-height:1.72;
  opacity:.92;
}

.prose{ max-width:70ch; font-size:16.5px; line-height:1.78 }
.prose p{ margin-bottom:1.15em }
.prose h2{
  margin:1.6em 0 .6em;
  font-family:var(--font-display);
  font-size:clamp(1.4rem,2.6vw,2rem);
  line-height:1.2;
}
.prose h3{ margin:1.4em 0 .5em; font-size:1.12rem }
.prose ul,.prose ol{ padding-left:1.2em; margin-bottom:1.15em }
.prose li{ margin-bottom:.4em }
.prose a{
  color:var(--cloud-blue);
  text-decoration:none;
  border-bottom:2px solid currentColor;
  transition:color .18s ease, border-color .18s ease;
}
.prose a:hover{ color:var(--ink); border-color:var(--data-yellow) }
.prose strong{ font-weight:700 }
.prose blockquote{
  margin:1.5em 0;
  padding:14px 18px;
  border-left:6px solid var(--data-yellow);
  background:rgba(11,110,153,.06);
}
.section--dark .prose a{ color:var(--sky) }

/* ---------- 网格与堆叠 ---------- */
.grid{ display:grid; gap:clamp(18px,2.6vw,32px) }
.grid--halves{ grid-template-columns:minmax(0,1fr) }
.grid--thirds{ grid-template-columns:minmax(0,1fr) }
.grid--main-aside{ grid-template-columns:minmax(0,1fr) }
@media (min-width:760px){
  .grid--halves{ grid-template-columns:repeat(2,minmax(0,1fr)) }
  .grid--thirds{ grid-template-columns:repeat(auto-fit,minmax(230px,1fr)) }
}
@media (min-width:1000px){
  .grid--main-aside{ grid-template-columns:minmax(0,2.1fr) minmax(0,1fr) }
}

.stack{ display:flex; flex-direction:column; gap:clamp(14px,2vw,22px) }
.stack--loose{ gap:clamp(24px,4vw,44px) }

.rule{ height:3px; border:0; background:var(--ink); margin:clamp(24px,4vw,44px) 0 }
.rule--soft{ height:1px; background:var(--mist) }
.section--dark .rule--soft{ background:rgba(199,214,221,.3) }

/* ---------- 呼吸区 ---------- */
.breath{ padding-block:clamp(56px,9vw,130px) }
.breath__mark{
  display:block;
  margin-bottom:14px;
  font-family:var(--font-mono);
  font-weight:900;
  font-size:clamp(2.6rem,10vw,6rem);
  line-height:.9;
  letter-spacing:-.04em;
  color:var(--data-yellow);
}
.breath__line{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(1.6rem,4.4vw,3.4rem);
  line-height:1.14;
  letter-spacing:-.01em;
}

/* ---------- 卡片 ---------- */
.card{
  position:relative;
  padding:clamp(18px,2.4vw,26px);
  background:var(--cloud-white);
  color:var(--ink);
  border:3px solid var(--ink);
  box-shadow:var(--shadow);
  transition:border-width .16s ease, margin .16s ease, box-shadow .16s ease;
}
.card:hover{ border-width:5px; margin:-2px; box-shadow:8px 8px 0 rgba(10,20,25,.88) }
.card--night{ background:var(--night-lift); color:var(--cloud-white) }
.card--flat{ box-shadow:none }
.card--flat:hover{ box-shadow:4px 4px 0 rgba(10,20,25,.24) }
.card__label{
  margin-bottom:10px;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.14em;
  color:var(--cloud-blue);
}
.card--night .card__label{ color:var(--data-yellow) }
.card__title{
  margin-bottom:10px;
  font-family:var(--font-display);
  font-size:clamp(1.1rem,1.9vw,1.45rem);
  line-height:1.28;
}
.card__meta{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.04em;
  color:rgba(10,20,25,.62);
}
.card--night .card__meta{ color:rgba(244,248,250,.78) }
.card__text{ font-size:15px; line-height:1.7; color:rgba(10,20,25,.78) }
.card--night .card__text{ color:rgba(244,248,250,.84) }

/* ---------- 标签 ---------- */
.tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 9px;
  background:var(--cloud-white);
  color:var(--ink);
  border:2px solid var(--ink);
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.12em;
  white-space:nowrap;
}
.tag--live{ background:var(--data-yellow) }
.tag--alert{ background:var(--final-orange) }
.tag--quiet{
  background:transparent;
  border-color:var(--mist);
  color:rgba(244,248,250,.86);
}

/* ---------- 比分与数字 ---------- */
.stat{ display:grid; gap:6px }
.stat__value{
  font-family:var(--font-mono);
  font-weight:900;
  font-variant-numeric:tabular-nums;
  font-size:clamp(2.8rem,11vw,6.5rem);
  line-height:.86;
  letter-spacing:-.04em;
  color:var(--ink);
}
.section--dark .stat__value{ color:var(--cloud-white) }
.stat__unit{ margin-left:.24em; font-size:.34em; font-weight:700; letter-spacing:.02em }
.stat__label{
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.14em;
  color:var(--cloud-blue);
}
.section--dark .stat__label{ color:var(--sky) }
.stat--pulse:hover .stat__value{ color:var(--data-yellow); animation:scorePulse .5s ease 1 }
@keyframes scorePulse{
  0%{ transform:scale(1) }
  45%{ transform:scale(1.05) }
  100%{ transform:scale(1) }
}

/* ---------- 框景窗口 ---------- */
.frame{
  position:relative;
  padding:clamp(18px,2.6vw,34px);
  background:var(--cloud-white);
  border:3px solid var(--ink);
  box-shadow:var(--shadow-lg);
}
.frame--dark{
  background:linear-gradient(160deg,var(--night-green),var(--rail-deep));
  color:var(--cloud-white);
}
.frame__head{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:10px 18px;
  padding-bottom:14px;
  margin-bottom:18px;
  border-bottom:3px solid var(--ink);
}
.frame--dark .frame__head{ border-color:rgba(199,214,221,.35) }
.frame__code{
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.18em;
  color:var(--cloud-blue);
}
.frame--dark .frame__code{ color:var(--data-yellow) }
.frame__title{
  font-family:var(--font-display);
  font-size:clamp(1.2rem,2.2vw,1.7rem);
}
.frame__scale{
  height:10px;
  margin-bottom:16px;
  background:repeating-linear-gradient(90deg, currentColor 0 1px, transparent 1px 24px);
  opacity:.35;
}

/* ---------- 时间轴 ---------- */
.track{ position:relative; padding-left:28px; list-style:none }
.track::before{
  content:"";
  position:absolute;
  left:9px;
  top:6px;
  bottom:14px;
  width:2px;
  background:linear-gradient(180deg,var(--cloud-blue),rgba(11,110,153,.12));
}
.section--dark .track::before{
  background:linear-gradient(180deg,var(--data-yellow),rgba(232,255,58,.14));
}
.track__item{ position:relative; padding-bottom:clamp(18px,2.6vw,28px) }
.track__node{
  position:absolute;
  left:-28px;
  top:6px;
  width:20px;
  height:20px;
  background:var(--data-yellow);
  border:3px solid var(--ink);
}
.track__round{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.1em;
  color:var(--cloud-blue);
}
.track__time{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.03em;
  color:rgba(10,20,25,.58);
}
.track__title{
  margin:4px 0 6px;
  font-family:var(--font-display);
  font-size:clamp(1.05rem,1.8vw,1.35rem);
}
.track__text{ font-size:15px; line-height:1.7; color:rgba(10,20,25,.76) }
.section--dark .track__round,
.section--dark .track__title{ color:var(--cloud-white) }
.section--dark .track__text,
.section--dark .track__time{ color:rgba(244,248,250,.8) }

@media (max-width:720px){
  .track--rail{
    display:flex;
    gap:16px;
    padding:0 0 14px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
  }
  .track--rail::before{ content:none }
  .track--rail .track__item{
    flex:0 0 78vw;
    padding:18px 16px;
    background:var(--cloud-white);
    border:3px solid var(--ink);
    box-shadow:4px 4px 0 rgba(10,20,25,.85);
    scroll-snap-align:start;
  }
  .track--rail .track__node{ position:static; display:block; margin-bottom:10px }
  .track--rail .track__title{ color:var(--ink) }
  .track--rail .track__round{ color:var(--cloud-blue) }
  .track--rail .track__text,
  .track--rail .track__time{ color:rgba(10,20,25,.72) }
}

/* ---------- 图片容器 ---------- */
.media{
  position:relative;
  display:block;
  overflow:hidden;
  background:linear-gradient(150deg,var(--rail-deep),var(--night-green));
  border:3px solid var(--ink);
  box-shadow:var(--shadow);
}
.media img,.media__img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.86) contrast(1.08) brightness(.95);
}
.media::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(11,110,153,.24), rgba(15,61,46,.42));
}
.media--plain::after{ content:none }
.media--16x9{ aspect-ratio:16/9 }
.media--4x3{ aspect-ratio:4/3 }
.media--1x1{ aspect-ratio:1/1 }
.media--tall{ aspect-ratio:3/4 }
.media__tag{
  position:absolute;
  z-index:2;
  left:12px;
  top:12px;
  padding:4px 9px;
  background:var(--data-yellow);
  color:var(--ink);
  border:2px solid var(--ink);
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.12em;
}
.media__caption{
  position:absolute;
  z-index:2;
  left:0;
  right:0;
  bottom:0;
  padding:12px 14px;
  background:linear-gradient(0deg, rgba(10,20,25,.86), rgba(10,20,25,0));
  color:var(--cloud-white);
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:.04em;
}
.figure{ display:grid; gap:10px }
.figure__caption{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.04em;
  color:rgba(10,20,25,.6);
}
.section--dark .figure__caption{ color:rgba(199,214,221,.8) }

/* ---------- 折叠记录 ---------- */
.acc{
  background:var(--cloud-white);
  border:3px solid var(--ink);
  box-shadow:var(--shadow);
}
.acc + .acc{ margin-top:14px }
.acc__summary{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:14px;
  padding:14px 18px;
  cursor:pointer;
  list-style:none;
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:.06em;
}
.acc__summary::-webkit-details-marker{ display:none }
.acc__summary::after{ content:"+"; font-size:16px; color:var(--cloud-blue) }
.acc[open] .acc__summary::after{ content:"–"; color:var(--final-orange) }
.acc__body{ padding:0 18px 18px; border-top:1px solid var(--mist) }
.acc__ver{ color:var(--cloud-blue); font-weight:700 }
.section--dark .acc{ background:var(--night-lift); color:var(--cloud-white) }
.section--dark .acc__body{ border-color:rgba(199,214,221,.3) }
.section--dark .acc__summary::after{ color:var(--data-yellow) }
.section--dark .acc__ver{ color:var(--data-yellow) }

/* ---------- 面包屑 ---------- */
.breadcrumb{ margin-bottom:clamp(16px,2.4vw,26px) }
.breadcrumb__list{
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
  padding:0;
  list-style:none;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.08em;
}
.breadcrumb__item{ display:inline-flex; align-items:center; color:rgba(10,20,25,.6) }
.breadcrumb__item + .breadcrumb__item::before{ content:"/"; margin-right:10px; color:var(--mist) }
.breadcrumb__link{
  color:var(--cloud-blue);
  text-decoration:none;
  border-bottom:2px solid transparent;
  transition:color .18s ease, border-color .18s ease;
}
.breadcrumb__link:hover{ color:var(--ink); border-color:var(--data-yellow) }
.breadcrumb__current{ color:var(--ink); font-weight:700 }
.section--dark .breadcrumb__current{ color:var(--cloud-white) }
.section--dark .breadcrumb__item{ color:rgba(199,214,221,.7) }
.section--dark .breadcrumb__link{ color:var(--sky) }
.section--dark .breadcrumb__link:hover{ color:var(--data-yellow) }

/* ---------- 页脚 ---------- */
.site-footer{
  position:relative;
  overflow:hidden;
  background:linear-gradient(170deg,var(--night-green) 0%, #0A2E22 46%, var(--rail-deep) 100%);
  color:var(--cloud-white);
  border-top:3px solid var(--ink);
}
.site-footer::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    repeating-linear-gradient(90deg, rgba(126,211,232,.06) 0 1px, transparent 1px 120px),
    radial-gradient(78% 58% at 100% 0%, rgba(126,211,232,.22), transparent 62%),
    radial-gradient(58% 48% at 0% 100%, rgba(232,255,58,.09), transparent 62%);
}
.site-footer__inner{
  position:relative;
  width:min(calc(100% - 2 * var(--edge)),1240px);
  margin-inline:auto;
  padding:clamp(44px,6vw,84px) 0 clamp(24px,3vw,36px);
}
.footer-top{ display:grid; gap:clamp(28px,4vw,56px); grid-template-columns:minmax(0,1fr) }
@media (min-width:900px){
  .footer-top{ grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) }
}
.footer-brand{ padding-top:18px; border-top:3px solid var(--data-yellow) }
.footer-brand__mark{
  margin-bottom:12px;
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.2em;
  color:var(--sky);
}
.footer-brand__mood{
  margin-bottom:16px;
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(1.6rem,3.4vw,2.4rem);
  line-height:1.16;
  color:var(--cloud-white);
}
.footer-note{
  max-width:46ch;
  font-size:13.5px;
  line-height:1.7;
  color:rgba(199,214,221,.86);
}
.footer-cols{ display:grid; gap:24px; grid-template-columns:minmax(0,1fr) }
@media (min-width:560px){
  .footer-cols{ grid-template-columns:repeat(3,minmax(0,1fr)) }
}
.footer-col__title{
  margin-bottom:12px;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.18em;
  color:var(--sky);
}
.footer-col__list{ padding:0; list-style:none; display:grid; gap:6px }
.footer-link{
  position:relative;
  display:inline-block;
  padding:4px 0;
  color:rgba(244,248,250,.82);
  font-size:14.5px;
  text-decoration:none;
  transition:color .18s ease;
}
.footer-link::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:2px;
  background:var(--data-yellow);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .2s ease;
}
.footer-link:hover{ color:#fff }
.footer-link:hover::after{ transform:scaleX(1) }
.footer-link:focus-visible{ outline:3px solid var(--data-yellow); outline-offset:3px }

.footer-contact{
  display:grid;
  gap:8px;
  margin-top:clamp(28px,4vw,44px);
  padding:clamp(16px,2.4vw,22px);
  background:rgba(10,20,25,.26);
  border:3px solid var(--ink);
  border-left:8px solid var(--data-yellow);
}
.footer-contact__line{ font-size:14px; color:rgba(244,248,250,.92) }
.footer-contact__value{ font-family:var(--font-mono); color:var(--data-yellow) }
.footer-contact__sep{ margin:0 10px; color:rgba(199,214,221,.5) }
.footer-contact__address{ font-size:13.5px; color:rgba(199,214,221,.85) }

.footer-bottom{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px 24px;
  margin-top:clamp(24px,3vw,36px);
  padding-top:18px;
  border-top:1px solid rgba(199,214,221,.25);
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.06em;
  color:rgba(199,214,221,.78);
}
.footer-legal{ font-family:var(--font-mono) }
.footer-icp{ font-family:var(--font-mono); color:var(--cloud-white) }

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