/* ==========================================================================
   AgentRig Harness · 站点样式 v3（深色科技 · 液态玻璃）
   全站共享：产品总览 / 文档 / 更新日志
   --------------------------------------------------------------------------
   性能约束（改样式前先读）：
   · backdrop-filter 只给「浮在内容之上」的少数元素：导航、模式切换、云端入口带。
     卡片类玻璃只用半透明渐变 + 边缘高光 + 指针高光，不做背景模糊——
     几十张卡同时模糊是滚动掉帧的主因。
   · 动画只改 transform / opacity / CSS 变量；极光在首屏离开视口或页面隐藏时暂停。
   · 手机端（≤767px）关闭全部模糊，改为不透明底；实底按钮在任何断点都不改底色，
     避免浅底浅字（v3.1.0 曾出现手机端「云端使用」按钮看不见的问题）。
   ========================================================================== */

:root{
  color-scheme:dark;

  --bg:#05070c;
  --bg-1:#080b12;
  --bg-2:#0c111b;

  --fg:#f3f6fb;
  --fg-1:#d4dbe7;
  --fg-2:#a3adbd;
  --fg-3:#6f7a8e;

  --line:rgb(255 255 255 / .08);
  --line-2:rgb(255 255 255 / .14);
  --fill-1:rgb(255 255 255 / .03);
  --fill-2:rgb(255 255 255 / .055);
  --fill-3:rgb(255 255 255 / .09);

  --jade:#33e0a0;
  --cyan:#3fc8ff;
  --blue:#5b8cff;
  --violet:#8b6cff;
  --amber:#ffb547;

  --grad-brand:linear-gradient(120deg,#5ff2bd 0%,#3fc8ff 46%,#9a82ff 100%);

  /* 兼容页面内联样式里仍在使用的旧变量名 */
  --blue-600:#6fb3ff;
  --gray-100:var(--line);

  --r-sm:8px;
  --r-md:12px;
  --r-lg:16px;
  --r-xl:22px;
  --r-2xl:28px;

  --ease:cubic-bezier(.2,.8,.2,1);

  --font:system-ui,-apple-system,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;
  --mono:ui-monospace,SFMono-Regular,"Cascadia Code",Consolas,"Liberation Mono",monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:6rem; background:var(--bg)}
[hidden]{display:none !important}
body{
  margin:0; background:var(--bg); color:var(--fg-2); font-family:var(--font);
  font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  /* 中文排版：中西文自动留白、标点禁则、末行不留孤字 */
  text-autospace:normal; line-break:strict; letter-spacing:0; overflow-x:hidden;
}
p,li,dd,figcaption{text-wrap:pretty}
img,svg{max-width:100%}
a{color:inherit; text-decoration:none}
h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd{margin:0}
ul,ol{padding:0; list-style:none}
button{font:inherit; color:inherit; background:none; border:0; cursor:pointer}
table{border-collapse:collapse; width:100%}
summary{cursor:pointer}
::selection{background:rgb(51 224 160 / .32); color:#fff}
:focus-visible{outline:2px solid var(--cyan); outline-offset:3px; border-radius:6px}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0}

/* ---------- 布局 ---------- */
.container{width:100%; max-width:76rem; margin-inline:auto; padding-inline:1.25rem}
@media (min-width:768px){ .container{padding-inline:2rem} }

.section{position:relative; padding-block:5rem}
@media (min-width:1024px){ .section{padding-block:7rem} }
.section--tight{padding-block:3rem}
.section--white{background:var(--bg-1); border-block:1px solid var(--line)}

.grid{display:grid; gap:1rem}
@media (min-width:768px){ .grid{gap:1.25rem} }
.cols-2,.cols-3,.cols-4{grid-template-columns:1fr}
@media (min-width:640px){ .cols-2,.cols-4{grid-template-columns:repeat(2,1fr)} }
@media (min-width:1024px){ .cols-3{grid-template-columns:repeat(3,1fr)} .cols-4{grid-template-columns:repeat(4,1fr)} }
.grid > *{min-width:0}

/* ---------- 排版 ---------- */
.h1{font-size:clamp(2.25rem,1.5rem + 3vw,4rem); font-weight:700; line-height:1.1; color:var(--fg); text-wrap:balance}
.h2{font-size:clamp(1.75rem,1.25rem + 2vw,3rem); font-weight:700; line-height:1.16; color:var(--fg); text-wrap:balance}
.h3{font-size:1.125rem; font-weight:600; line-height:1.42; color:var(--fg); text-wrap:pretty}
.h4{font-size:1rem; font-weight:600; line-height:1.5; color:var(--fg); text-wrap:pretty}
.lead{margin-top:1.25rem; max-width:62ch; font-size:clamp(1rem,.95rem + .3vw,1.1875rem); line-height:1.78; color:var(--fg-2)}
.muted{font-size:.9375rem; line-height:1.72; color:var(--fg-2)}
.tiny{font-size:.8125rem; line-height:1.6; color:var(--fg-3)}
.mono{font-family:var(--mono); font-variant-numeric:tabular-nums}
.text-strong{color:var(--fg); font-weight:600}
.text-grad{background:var(--grad-brand); -webkit-background-clip:text; background-clip:text; color:transparent}

.eyebrow{display:inline-flex; align-items:center; gap:.625rem; font-family:var(--mono); font-size:.75rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--jade)}
.eyebrow::before{content:""; width:1.5rem; height:1px; background:currentColor; opacity:.7}
.sec-head{max-width:50rem}
.sec-head .h2{margin-top:1rem}
.sec-head--center{margin-inline:auto; text-align:center}
.sec-head--center .lead{margin-inline:auto}
.sec-head--center .eyebrow::after{content:""; width:1.5rem; height:1px; background:currentColor; opacity:.7}

/* ---------- 液态玻璃材质 ---------- */
/* 所有玻璃表面：半透明渐变 + 顶部内高光 + 深投影（不模糊背景） */
.glass,.card,.block,.rel,.toc,.tablewrap,.pager a,.faq details,.note{
  position:relative;
  background:linear-gradient(180deg,rgb(255 255 255 / .06),rgb(255 255 255 / .018));
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .07),0 24px 60px -34px rgb(0 0 0 / .75);
}
/* 边缘折射高光：渐变描边，左上偏亮、右下带一点青色色散 */
.glass::before,.card::before{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:1px; pointer-events:none;
  background:linear-gradient(140deg,rgb(255 255 255 / .34),rgb(255 255 255 / .06) 26%,transparent 54%,rgb(63 200 255 / .2) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;
}
/* 指针镜面高光：位置由脚本写入 --mx / --my，只在悬停时显示 */
.glass::after,.card::after{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:0;
  background:radial-gradient(480px circle at var(--mx,50%) var(--my,0%),rgb(255 255 255 / .085),transparent 44%);
  transition:opacity .35s var(--ease);
}
.glass:hover::after,.card:hover::after{opacity:1}
.glass > *,.card > *{position:relative; z-index:1}
/* 需要真实背景模糊的少数元素才加这个修饰 */
.glass--blur{
  background:linear-gradient(180deg,rgb(20 27 40 / .62),rgb(12 16 26 / .5));
  -webkit-backdrop-filter:blur(20px) saturate(1.7);
  backdrop-filter:blur(20px) saturate(1.7);
}

.card{padding:1.5rem}
.card--hover{transition:transform .4s var(--ease),border-color .4s var(--ease)}
.card--hover:hover{transform:translateY(-3px); border-color:var(--line-2)}
.card--flat{box-shadow:none}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  height:2.5rem; padding:0 1.125rem; border-radius:999px; border:1px solid transparent;
  font-size:.9063rem; font-weight:600; white-space:nowrap;
  transition:transform .25s var(--ease),background-color .25s,border-color .25s,box-shadow .25s,color .25s;
}
.btn svg{width:1rem; height:1rem; flex:none}
.btn:active{transform:scale(.97)}
.btn--lg{height:3rem; padding:0 1.5rem; font-size:1rem}
.btn--sm{height:2.125rem; padding:0 .875rem; font-size:.8125rem}
.btn--primary{background:#f3f6fb; color:#06080d; box-shadow:0 0 0 1px rgb(255 255 255 / .2),0 10px 30px -12px rgb(255 255 255 / .4)}
.btn--primary:hover{background:#fff; box-shadow:0 0 0 1px rgb(255 255 255 / .4),0 14px 40px -12px rgb(255 255 255 / .5)}
/* 云端入口：翠绿实底 + 深色字，任何断点都不改底色 */
.btn--cloud{background:linear-gradient(135deg,#3ff0ad,#1fc9a3); color:#03140e; box-shadow:0 10px 30px -10px rgb(51 224 160 / .6),inset 0 1px 0 rgb(255 255 255 / .45)}
.btn--cloud:hover{box-shadow:0 14px 40px -10px rgb(51 224 160 / .78),inset 0 1px 0 rgb(255 255 255 / .55)}
.btn--secondary{background:rgb(255 255 255 / .06); color:var(--fg); border-color:rgb(255 255 255 / .14); box-shadow:inset 0 1px 0 rgb(255 255 255 / .12)}
.btn--secondary:hover{background:rgb(255 255 255 / .1); border-color:rgb(255 255 255 / .26)}
.btns{display:flex; flex-wrap:wrap; gap:.75rem}

.live-dot{width:.5rem; height:.5rem; border-radius:50%; flex:none; background:currentColor; position:relative}
.live-dot::after{content:""; position:absolute; inset:0; border-radius:50%; background:inherit; animation:livePulse 2.4s var(--ease) infinite}
@keyframes livePulse{0%{transform:scale(1); opacity:.7}80%,100%{transform:scale(2.8); opacity:0}}

/* ---------- 徽标 / 标签 ---------- */
.badge{display:inline-flex; align-items:center; gap:.375rem; height:1.5rem; padding:0 .625rem; border-radius:999px; border:1px solid; font-size:.75rem; font-weight:600; white-space:nowrap}
.badge svg{width:.8125rem; height:.8125rem; flex:none}
.badge--ok{color:#62f0bb; background:rgb(51 224 160 / .1); border-color:rgb(51 224 160 / .28)}
.badge--info{color:#8cc8ff; background:rgb(63 150 255 / .1); border-color:rgb(63 150 255 / .3)}
.badge--warn{color:#ffca7a; background:rgb(255 181 71 / .1); border-color:rgb(255 181 71 / .3)}
.badge--neutral{color:var(--fg-2); background:var(--fill-2); border-color:var(--line-2)}
.badge--num{min-width:1.75rem; justify-content:center}

.chips{display:flex; flex-wrap:wrap; gap:.375rem; margin-top:1rem}
.chip{display:inline-flex; align-items:center; height:1.5rem; padding:0 .625rem; border-radius:999px; font-family:var(--mono); font-size:.7188rem; color:var(--fg-2); background:var(--fill-2); border:1px solid var(--line)}
.urlchip{display:inline-flex; align-items:center; gap:.375rem; padding:.25rem .75rem; border-radius:999px; font-family:var(--mono); font-size:.875rem; color:#86f2c9; background:rgb(51 224 160 / .08); border:1px solid rgb(51 224 160 / .26); word-break:break-all; transition:border-color .2s,background-color .2s}
.urlchip:hover{border-color:rgb(51 224 160 / .56); background:rgb(51 224 160 / .14)}

.icon-box{
  width:2.5rem; height:2.5rem; border-radius:12px; flex:none; display:grid; place-items:center; color:var(--fg);
  background:linear-gradient(180deg,rgb(255 255 255 / .12),rgb(255 255 255 / .03)); border:1px solid var(--line-2);
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .2);
  transition:transform .4s var(--ease),color .4s,border-color .4s;
}
.icon-box svg{width:1.25rem; height:1.25rem}
.is-group:hover .icon-box{transform:translateY(-2px) scale(1.06); color:var(--jade); border-color:rgb(51 224 160 / .42)}

/* ---------- 导航 ---------- */
.nav{
  position:sticky; top:0; z-index:60;
  background:rgb(5 7 12 / .52); border-bottom:1px solid transparent;
  -webkit-backdrop-filter:blur(18px) saturate(1.6); backdrop-filter:blur(18px) saturate(1.6);
  transition:background-color .3s,border-color .3s;
}
.nav.is-stuck{background:rgb(5 7 12 / .74); border-bottom-color:var(--line)}
.nav__inner{display:flex; align-items:center; gap:1.5rem; min-height:4rem}
.brand{display:flex; align-items:center; gap:.625rem; flex:none}
.brand__mark{width:2rem; height:2rem; border-radius:10px; flex:none; display:grid; place-items:center; background:linear-gradient(135deg,#5ff2bd,#3fc8ff 55%,#9a82ff); box-shadow:0 6px 20px -6px rgb(51 224 160 / .6),inset 0 1px 0 rgb(255 255 255 / .55)}
.brand__mark svg{width:1.125rem; height:1.125rem; stroke:#04120c}
.brand__text b{display:block; font-size:.9688rem; font-weight:700; line-height:1.2; color:var(--fg)}
.brand__text span{display:block; font-size:.7188rem; line-height:1.3; color:var(--fg-3)}
.nav__links{display:flex; align-items:center; gap:.125rem; margin-inline:auto; padding:.25rem; border-radius:999px; background:var(--fill-1); border:1px solid var(--line)}
.nav__links a{position:relative; padding:.375rem .875rem; border-radius:999px; font-size:.875rem; color:var(--fg-2); white-space:nowrap; transition:color .2s,background-color .2s}
.nav__links a:hover{color:var(--fg)}
.nav__links a[aria-current="page"],.nav__links a[aria-current="true"]{color:var(--fg); background:rgb(255 255 255 / .09); box-shadow:inset 0 1px 0 rgb(255 255 255 / .12)}
.nav__side{flex:none; display:flex; align-items:center; gap:.5rem}
.nav__progress{position:absolute; left:0; bottom:-1px; width:100%; height:1px; transform-origin:0 50%; transform:scaleX(0); background:var(--grad-brand)}
/* 窄屏不隐藏主导航：换到第二行、横向可滚 */
@media (max-width:1023px){
  .nav__inner{flex-wrap:wrap; gap:.25rem .75rem; padding-block:.5rem}
  .nav__links{order:3; width:100%; margin:0; padding:0; overflow-x:auto; background:none; border:0; scrollbar-width:none}
  .nav__links::-webkit-scrollbar{display:none}
  .nav__side{margin-left:auto}
}
@media (max-width:420px){ .nav__side{gap:.375rem} .nav__side .btn{height:2.125rem; padding:0 .75rem; font-size:.8125rem} }
@media (max-width:380px){ .brand__text span{display:none} }

/* ---------- 页头（文档 / 更新日志通用） ---------- */
.hero{position:relative; isolation:isolate; overflow:hidden; padding-block:4.5rem 3rem}
.hero::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(60rem 26rem at 12% -12%,rgb(51 224 160 / .13),transparent 62%),
    radial-gradient(52rem 24rem at 92% -22%,rgb(91 140 255 / .15),transparent 62%);
}
.hero__meta{display:flex; flex-wrap:wrap; align-items:center; gap:.5rem 1rem; margin-bottom:1.25rem}
.hero__actions{margin-top:2.25rem}

/* ---------- 首页发布会首屏 ---------- */
.hero--launch{padding-block:6.5rem 0; text-align:center}
@media (min-width:1024px){ .hero--launch{padding-top:8.5rem} }
.hero--launch::before{display:none}
/* 极细网格，中心可见、四周淡出 */
.hero--launch::after{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:linear-gradient(rgb(255 255 255 / .045) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / .045) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask:radial-gradient(ellipse 72% 50% at 50% 26%,#000 25%,transparent 74%);
  mask:radial-gradient(ellipse 72% 50% at 50% 26%,#000 25%,transparent 74%);
}
/* 极光：三块预渲染的径向渐变，只做 transform 漂移（不用 filter:blur） */
.aurora{position:absolute; inset:-18rem -12rem auto; height:72rem; z-index:-2; pointer-events:none; overflow:hidden}
.aurora i{position:absolute; display:block; border-radius:50%; opacity:.6; will-change:transform; animation:drift 22s ease-in-out infinite alternate}
.aurora i:nth-child(1){width:54rem; height:54rem; left:-6rem; top:-4rem; background:radial-gradient(circle,rgb(51 224 160 / .42),transparent 62%)}
.aurora i:nth-child(2){width:50rem; height:50rem; right:-8rem; top:-2rem; background:radial-gradient(circle,rgb(91 140 255 / .4),transparent 62%); animation-duration:27s; animation-delay:-7s}
.aurora i:nth-child(3){width:42rem; height:42rem; left:32%; top:14rem; background:radial-gradient(circle,rgb(139 108 255 / .3),transparent 62%); animation-duration:31s; animation-delay:-13s}
@keyframes drift{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(6%,4%,0) scale(1.08)}100%{transform:translate3d(-4%,8%,0) scale(.95)}}
.is-calm .aurora i,.is-hidden .aurora i{animation-play-state:paused}

.display{font-size:clamp(2.6rem,1.3rem + 5.2vw,5.5rem); font-weight:700; line-height:1.06; color:var(--fg)}
.hero--launch .lead{margin-inline:auto; max-width:46rem}
.hero--launch .btns{justify-content:center}
.pill{
  display:inline-flex; align-items:center; gap:.625rem; height:2rem; padding:0 .875rem 0 .3125rem; margin-bottom:1.75rem;
  border-radius:999px; font-size:.8125rem; color:var(--fg-1); background:rgb(255 255 255 / .05); border:1px solid var(--line-2);
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .1); transition:border-color .25s,background-color .25s;
}
.pill:hover{border-color:rgb(255 255 255 / .26); background:rgb(255 255 255 / .08)}
.pill b{display:inline-flex; align-items:center; height:1.375rem; padding:0 .5rem; border-radius:999px; font-size:.7188rem; font-weight:700; color:#03140e; background:var(--jade)}
.pill svg{width:.875rem; height:.875rem; color:var(--fg-3)}
.platforms{display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem 1.75rem; margin-top:1.75rem; font-size:.8438rem; color:var(--fg-3)}
.platforms span{display:inline-flex; align-items:center; gap:.45rem}
.platforms svg{width:1rem; height:1rem; color:var(--fg-2)}

/* 首屏入场：纯 CSS，只播一次 */
.intro{animation:rise .9s var(--ease) both; animation-delay:var(--d,0s)}
@keyframes rise{from{opacity:0; transform:translate3d(0,16px,0)}to{opacity:1; transform:none}}

/* 产品舞台：滚动时由脚本写入 --tilt（1 → 0），从倾斜过渡到正视 */
.stage{position:relative; margin-top:3.5rem; perspective:1700px}
.stage::before{
  content:""; position:absolute; left:6%; right:6%; top:8%; height:76%; z-index:-1; pointer-events:none;
  background:radial-gradient(ellipse at 50% 40%,rgb(51 224 160 / .2),rgb(91 140 255 / .14) 42%,transparent 70%);
}
.stage__frame{position:relative; text-align:left; transform-origin:50% 0; transform:rotateX(calc(var(--tilt,0) * 14deg)) scale(calc(1 - var(--tilt,0) * .06)); will-change:transform}
.stage__notes{margin-top:1.5rem; text-align:left}

/* ---------- 模式切换 ---------- */
.mockbar{display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:.75rem 1.25rem; margin-top:4rem}
.mockbar__hint{font-family:var(--mono); font-size:.75rem; color:var(--fg-3)}
.seg{display:inline-flex; gap:.25rem; padding:.25rem; border-radius:999px; background:rgb(255 255 255 / .05); border:1px solid var(--line-2); -webkit-backdrop-filter:blur(14px) saturate(1.5); backdrop-filter:blur(14px) saturate(1.5)}
.seg button{height:2.125rem; padding:0 1rem; border-radius:999px; font-size:.8125rem; font-weight:600; color:var(--fg-2); transition:color .2s,background-color .25s,box-shadow .25s,transform .2s}
.seg button:hover{color:var(--fg)}
.seg button:active{transform:scale(.97)}
.seg button[aria-selected="true"]{color:#04120c; background:linear-gradient(135deg,#eafff6,#b8f2da); box-shadow:0 6px 18px -6px rgb(51 224 160 / .6)}

/* ---------- 产品结构示意（模拟界面，非截图） ---------- */
.app{
  overflow:hidden; border-radius:var(--r-xl);
  background:linear-gradient(180deg,rgb(17 22 33 / .97),rgb(10 13 21 / .97));
  border:1px solid var(--line-2);
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .1),0 60px 120px -48px rgb(0 0 0 / .95),0 0 0 1px rgb(0 0 0 / .45);
}
.app__bar{display:flex; align-items:center; gap:.75rem; height:2.75rem; padding:0 1rem; border-bottom:1px solid var(--line); background:rgb(255 255 255 / .02)}
.app__dots{display:flex; gap:.4rem}
.app__dots i{display:block; width:.625rem; height:.625rem; border-radius:50%; background:rgb(255 255 255 / .16)}
.app__dots i:nth-child(1){background:#ff6159}
.app__dots i:nth-child(2){background:#ffbd2e}
.app__dots i:nth-child(3){background:#28c840}
.app__name{font-size:.8125rem; color:var(--fg-2)}
.app__mode{margin-left:auto; padding:.125rem .5rem; border-radius:6px; font-family:var(--mono); font-size:.6875rem; font-weight:700; letter-spacing:.08em; color:#86f2c9; background:rgb(51 224 160 / .08); border:1px solid rgb(51 224 160 / .3)}
.app__body{display:grid; grid-template-columns:1fr}
@media (min-width:900px){ .app__body{grid-template-columns:14rem 1fr} }

.rail{padding:.875rem; border-right:1px solid var(--line); background:rgb(255 255 255 / .015)}
@media (max-width:899px){ .rail{border-right:0; border-bottom:1px solid var(--line)} }
.rail__label{display:block; padding:.375rem .5rem; font-size:.6875rem; font-weight:600; letter-spacing:.06em; color:var(--fg-3)}
.rail__item{display:flex; align-items:center; gap:.625rem; padding:.5rem .625rem; border-radius:10px; border:1px solid transparent; font-size:.8125rem; color:var(--fg-2); cursor:pointer; transition:background-color .2s,color .2s,border-color .2s}
.rail__item svg{width:.9375rem; height:.9375rem; flex:none; color:var(--fg-3)}
.rail__item:hover,.rail__item:focus-visible{background:var(--fill-2); color:var(--fg)}
.rail__item--on{background:rgb(255 255 255 / .07); border-color:var(--line-2); color:var(--fg); font-weight:600}
.rail__item--on svg{color:var(--jade)}
.rail__rule{height:1px; margin:.5rem; background:var(--line)}
.rail__foot{margin-top:1rem; padding:.75rem; border-radius:10px; font-size:.7188rem; line-height:1.65; color:var(--fg-3); background:var(--fill-1); border:1px solid var(--line)}
.rail__foot b{color:var(--fg-1); font-weight:600}

.chat{display:flex; flex-direction:column; gap:1rem; min-width:0; padding:1.125rem}
.chat__head{display:flex; align-items:center; gap:.625rem; padding-bottom:.875rem; border-bottom:1px solid var(--line)}
.chat__head h4{font-size:.9063rem; font-weight:600; color:var(--fg)}
.chat__tabs{margin-left:auto; display:flex; gap:.375rem}
.chat__tabs span{padding:.125rem .5rem; border-radius:999px; border:1px solid var(--line); font-size:.6875rem; color:var(--fg-3); cursor:pointer; transition:color .2s,background-color .2s,border-color .2s}
.chat__tabs span:hover,.chat__tabs span:focus-visible,.chat__tabs span[aria-selected="true"]{color:var(--fg); border-color:var(--line-2); background:var(--fill-2)}

.msg{display:grid; grid-template-columns:1.875rem 1fr; gap:.75rem}
.msg > div{min-width:0}
.msg__av{width:1.875rem; height:1.875rem; border-radius:10px; display:grid; place-items:center; font-size:.6875rem; font-weight:700; color:var(--fg-1); background:var(--fill-3)}
.msg--ai .msg__av{color:#03140e; background:linear-gradient(135deg,var(--jade),var(--cyan))}
.msg__name{display:flex; gap:.5rem; align-items:baseline; margin-bottom:.375rem; font-size:.75rem; font-weight:600; color:var(--fg-1)}
.msg__name em{font-style:normal; font-family:var(--mono); font-size:.6875rem; font-weight:400; color:var(--fg-3)}
.msg__body{padding:.75rem .875rem; border-radius:12px; font-size:.8438rem; line-height:1.72; color:var(--fg-1); background:var(--fill-2); border:1px solid var(--line)}
.msg__body b{color:var(--fg); font-weight:600}
.msg__body code{padding:0 .3rem; border-radius:5px; font-family:var(--mono); font-size:.75rem; color:#8cc8ff; background:rgb(63 150 255 / .1); border:1px solid rgb(63 150 255 / .22)}

.activity{overflow:hidden; border-radius:12px; border:1px solid var(--line); background:rgb(0 0 0 / .22)}
.activity__head{display:flex; align-items:center; gap:.5rem; padding:.5rem .75rem; font-size:.75rem; color:var(--fg-2); background:var(--fill-1); border-bottom:1px solid var(--line)}
.activity__head svg{width:.875rem; height:.875rem; flex:none; color:var(--cyan)}
.activity__counts{margin-left:auto; display:flex; gap:.75rem; font-family:var(--mono); font-size:.6875rem; color:var(--fg-3)}
.activity__row{display:flex; align-items:center; gap:.5rem; padding:.4375rem .75rem; font-family:var(--mono); font-size:.75rem; color:var(--fg-2); border-top:1px solid var(--line)}
.activity__head + .activity__row{border-top:0}
.activity__row svg{width:.75rem; height:.75rem; flex:none; color:var(--jade)}
.activity__row .st{margin-left:auto; font-size:.6875rem; color:#86f2c9}

/* 交付物折叠：折叠 38px / 展开 192px */
.deliver{display:block; width:100%; overflow:hidden; text-align:left; border-radius:12px; border:1px solid var(--line); background:var(--fill-1); transition:border-color .2s}
.deliver:hover{border-color:var(--line-2)}
.deliver__bar{display:flex; align-items:center; gap:.625rem; height:2.375rem; padding:0 .75rem}
.deliver__bar svg.caret{width:.875rem; height:.875rem; flex:none; color:var(--fg-3); transition:transform .25s var(--ease)}
.deliver[aria-expanded="true"] .deliver__bar svg.caret{transform:rotate(90deg)}
.deliver__bar svg.doc{width:.9375rem; height:.9375rem; flex:none; color:var(--cyan)}
.deliver__name{overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:.8125rem; font-weight:600; color:var(--fg-1)}
.deliver__tail{margin-left:auto; flex:none; display:flex; align-items:center; gap:.5rem; font-family:var(--mono); font-size:.6875rem; color:var(--fg-3)}
.deliver__panel{display:block; max-height:0; overflow:hidden; transition:max-height .3s var(--ease)}
.deliver[aria-expanded="true"] .deliver__panel{max-height:12rem; border-top:1px solid var(--line)}
.deliver__inner{display:block; height:12rem; overflow:auto}
.drow{display:flex; align-items:center; gap:.625rem; padding:.4375rem .75rem; font-size:.75rem; color:var(--fg-2); border-top:1px solid var(--line)}
.drow:first-child{border-top:0}
.drow .n{width:1.25rem; flex:none; font-family:var(--mono); color:var(--fg-3)}
.drow .sz{margin-left:auto; font-family:var(--mono); color:var(--fg-3)}

.composer{padding:.75rem; border-radius:14px; border:1px solid var(--line-2); background:rgb(255 255 255 / .03); box-shadow:inset 0 1px 0 rgb(255 255 255 / .06)}
.composer__ph{padding-bottom:.625rem; font-size:.8125rem; color:var(--fg-3)}
.composer__row{display:flex; align-items:center; flex-wrap:wrap; gap:.5rem}
.ctool{display:inline-flex; align-items:center; gap:.375rem; height:1.75rem; padding:0 .625rem; border-radius:999px; font-size:.75rem; color:var(--fg-2); background:var(--fill-1); border:1px solid var(--line-2)}
.ctool svg{width:.75rem; height:.75rem}
.ctool--send{margin-left:auto; font-weight:600; color:#03140e; border-color:transparent; background:linear-gradient(135deg,var(--jade),var(--cyan))}
.composer__queue{margin-top:.625rem; font-family:var(--mono); font-size:.6875rem; color:var(--fg-3)}
.composer__queue b{color:var(--fg-1)}

/* ---------- 数据带 ---------- */
.stats{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; overflow:hidden; border-radius:var(--r-xl); border:1px solid var(--line); background:var(--line)}
@media (min-width:768px){ .stats{grid-template-columns:repeat(3,1fr)} }
@media (min-width:1200px){ .stats{grid-template-columns:repeat(6,1fr)} }
.stat{padding:1.75rem 1.5rem; background:var(--bg-1)}
.stat__value{white-space:nowrap; font-size:clamp(2rem,1.45rem + 1.6vw,2.75rem); font-weight:700; line-height:1; color:var(--fg); font-variant-numeric:tabular-nums}
.stat__value small{margin-left:.25rem; font-size:.42em; font-weight:600; color:var(--fg-3)}
.stat__label{margin-top:.875rem; font-size:.875rem; font-weight:600; color:var(--fg-1)}
.stat__sub{margin-top:.25rem; font-family:var(--mono); font-size:.6875rem; line-height:1.55; color:var(--fg-3)}

/* ---------- 运行链路 ---------- */
.chain{position:relative; display:grid; grid-template-columns:1fr; gap:.75rem; margin-top:3.5rem}
@media (min-width:640px){ .chain{grid-template-columns:repeat(2,1fr)} }
@media (min-width:1100px){ .chain{grid-template-columns:repeat(7,1fr)} }
.chain__rail{display:none}
@media (min-width:1100px){
  .chain__rail{display:block; position:absolute; left:3%; right:3%; top:2.6rem; height:1px; overflow:hidden; background:linear-gradient(90deg,transparent,var(--line-2) 8%,var(--line-2) 92%,transparent)}
  .chain__rail::after{content:""; position:absolute; top:-1px; left:0; width:18%; height:3px; border-radius:3px; background:linear-gradient(90deg,transparent,var(--jade),var(--cyan),transparent); will-change:transform; animation:comet 5s linear infinite}
}
@keyframes comet{from{transform:translateX(-100%)}to{transform:translateX(560%)}}
.is-hidden .chain__rail::after{animation-play-state:paused}
.node{display:grid; align-content:start; gap:.625rem; padding:1.25rem 1.125rem}
.node__dot{width:2.5rem; height:2.5rem; border-radius:50%; display:grid; place-items:center; font-family:var(--mono); font-size:.75rem; font-weight:700; color:#03140e; background:linear-gradient(135deg,var(--jade),var(--cyan)); box-shadow:0 0 0 6px var(--bg-1),0 0 26px rgb(51 224 160 / .42)}
.node h3{margin-top:.25rem; font-size:1rem; font-weight:600; color:var(--fg)}
.node p{font-size:.8125rem; line-height:1.65; color:var(--fg-2)}

/* ---------- 三种形态 ---------- */
.card__head{display:flex; align-items:flex-start; gap:.875rem}
.form-card{display:flex; flex-direction:column; padding:1.75rem}
.form-card .chips{margin-top:auto; padding-top:1.25rem}
.factlist{display:grid; gap:.75rem; margin-top:1.25rem}
.factlist li{display:grid; grid-template-columns:auto 1fr; gap:.625rem; align-items:start; font-size:.9063rem; line-height:1.68; color:var(--fg-2)}
.factlist svg{width:1rem; height:1rem; margin-top:.22rem; color:var(--jade)}

.callout{margin-top:1.25rem; padding:.875rem 1rem; border-radius:12px; font-size:.875rem; line-height:1.72; color:#bcdcff; background:rgb(63 150 255 / .08); border:1px solid rgb(63 150 255 / .22)}
.callout b{color:#e6f1ff; font-weight:600}
.callout--ok{color:#a9f3d4; background:rgb(51 224 160 / .08); border-color:rgb(51 224 160 / .25)}
.callout--ok b{color:#e8fff5}
.callout--warn{color:#ffd9a0; background:rgb(255 181 71 / .08); border-color:rgb(255 181 71 / .26)}
.callout--warn b{color:#fff1db}
.callout--tight{margin-top:1rem}
.note{margin-top:1.5rem; padding:1rem 1.25rem; border-radius:var(--r-md); font-size:.9063rem; line-height:1.72; color:var(--fg-2)}
.note b{color:var(--fg); font-weight:600}

/* ---------- 能力矩阵（便当格） ---------- */
.bento{display:grid; grid-template-columns:1fr; gap:1rem; margin-top:3.5rem}
@media (min-width:768px){ .bento{grid-template-columns:repeat(2,1fr)} }
@media (min-width:1100px){
  .bento{grid-template-columns:repeat(6,1fr); gap:1.25rem}
  .span-2{grid-column:span 2}
  .span-3{grid-column:span 3}
  .span-4{grid-column:span 4}
}
.bento .card{display:flex; flex-direction:column; padding:1.75rem}
.bento .card .h3{margin-top:1.25rem}
.bento .card .muted{margin-top:.5rem}
.bento .chips{margin-top:auto; padding-top:1.25rem}
.card--feature{background:linear-gradient(160deg,rgb(51 224 160 / .1),rgb(255 255 255 / .02) 46%,rgb(91 140 255 / .06))}
.card--feature .h3{font-size:1.375rem}

/* ---------- 需求交付 ---------- */
.reqs{display:grid; grid-template-columns:1fr; gap:1rem; margin-top:3.5rem}
@media (min-width:768px){ .reqs{grid-template-columns:repeat(2,1fr)} }
@media (min-width:1100px){ .reqs{grid-template-columns:repeat(3,1fr)} }
.req{padding:1.375rem 1.5rem}
.req__top{display:flex; align-items:center; gap:.625rem}
.req__id{font-family:var(--mono); font-size:.75rem; font-weight:700; letter-spacing:.06em; color:var(--fg-3)}
.req__top .badge{margin-left:auto}
.req .h4{margin-top:.75rem}
.req p{margin-top:.5rem; font-size:.8438rem; line-height:1.72; color:var(--fg-2)}

/* ---------- 指标条 ---------- */
.bars{display:grid; gap:1.125rem; margin-top:1.5rem}
.bar__top{display:flex; align-items:baseline; gap:.75rem; margin-bottom:.5rem; font-size:.8438rem; color:var(--fg-1)}
.bar__top .v{margin-left:auto; white-space:nowrap; font-family:var(--mono); font-weight:600; color:var(--fg)}
.bar__top .v em{font-style:normal; font-weight:400; font-size:.75rem; color:var(--fg-3)}
.track{height:.375rem; overflow:hidden; border-radius:999px; background:var(--fill-2)}
.fill{height:100%; border-radius:inherit; transform-origin:0 50%; background:linear-gradient(90deg,var(--jade),var(--cyan)); transition:transform 1.1s var(--ease)}
.fill--soft{background:linear-gradient(90deg,var(--blue),var(--violet))}
html.js .bars:not(.is-in) .fill{transform:scaleX(0)}

/* ---------- 安全边界 ---------- */
.guards{display:grid; grid-template-columns:1fr; gap:1rem; margin-top:3.5rem}
@media (min-width:768px){ .guards{grid-template-columns:repeat(2,1fr)} }
@media (min-width:1100px){ .guards{grid-template-columns:repeat(3,1fr)} }
.guard .h4{margin-top:1.125rem}
.guard p{margin-top:.5rem}

/* ---------- 云端入口带 ---------- */
.band{display:grid; gap:1.5rem; align-items:center; overflow:hidden; padding:2rem; border-radius:var(--r-2xl)}
@media (min-width:900px){ .band{grid-template-columns:1fr auto; padding:2.75rem 3rem} }
.band .h2{margin-top:.75rem; font-size:clamp(1.5rem,1.2rem + 1.2vw,2.25rem)}
.band .muted{margin-top:.75rem; max-width:52ch}
.band__glow{position:absolute; z-index:0; top:-12rem; right:-6rem; width:30rem; height:30rem; border-radius:50%; pointer-events:none; background:radial-gradient(circle,rgb(51 224 160 / .26),transparent 64%)}

/* ---------- 下载 ---------- */
.dl{display:grid; grid-template-columns:1fr; gap:1.25rem; max-width:62rem; margin:1.5rem auto 0}
@media (min-width:800px){ .dl{grid-template-columns:repeat(2,1fr)} }
.dl .card{display:flex; flex-direction:column; padding:2rem}
.dl__meta{margin-top:.375rem; font-family:var(--mono); font-size:.75rem; color:var(--fg-3)}
.dl .btns{margin-top:auto; padding-top:1.5rem}
.dl .tiny a{color:#86f2c9}

/* ==========================================================================
   文档页 / 更新日志
   ========================================================================== */
.doc{display:grid; gap:1.5rem; align-items:start}
@media (min-width:1024px){
  .doc{grid-template-columns:15.5rem 1fr; gap:3rem}
  .doc__aside{position:sticky; top:5.75rem}
}
.toc{padding:1.125rem; border-radius:var(--r-lg)}
.toc__title{margin:.875rem 0 .5rem; font-family:var(--mono); font-size:.6875rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--fg-3)}
.toc__title:first-child{margin-top:0}
.toc ol{display:grid; gap:.125rem; counter-reset:toc}
.toc a{display:block; padding:.375rem .625rem; border-radius:8px; font-size:.8438rem; color:var(--fg-2); transition:background-color .2s,color .2s}
.toc a:hover{color:var(--fg); background:var(--fill-2)}
.toc a[aria-current="true"]{color:var(--fg); background:rgb(51 224 160 / .1); box-shadow:inset 2px 0 0 var(--jade)}
.toc__sub{padding-left:1rem}
.toc__sub a{font-size:.8125rem; color:var(--fg-3)}

.doc__body{display:grid; gap:1.5rem; min-width:0}
.block{padding:1.5rem; border-radius:var(--r-lg)}
@media (min-width:768px){ .block{padding:2.25rem} }
.block__head{display:flex; align-items:flex-start; gap:.875rem; padding-bottom:1.25rem; margin-bottom:1.5rem; border-bottom:1px solid var(--line)}
.block__num{min-width:2rem; height:2rem; flex:none; display:grid; place-items:center; border-radius:10px; font-family:var(--mono); font-size:.8125rem; font-weight:700; color:#03140e; background:linear-gradient(135deg,var(--jade),var(--cyan))}
.block__head h2{font-size:1.25rem; font-weight:600; line-height:1.4; color:var(--fg)}
.block__head p{margin-top:.25rem; font-size:.875rem; color:var(--fg-3)}

.prose{display:grid; gap:1rem; font-size:.9688rem; line-height:1.85; color:var(--fg-2)}
.prose > *{max-width:70ch}
.prose h3{margin-top:.75rem; font-size:1.0625rem; font-weight:600; color:var(--fg)}
.prose h4{font-size:.9688rem; font-weight:600; color:var(--fg)}
.prose strong{color:var(--fg); font-weight:600}
.prose a{color:#86f2c9; font-weight:600; text-decoration:underline; text-decoration-color:rgb(51 224 160 / .35); text-underline-offset:3px; transition:text-decoration-color .2s}
.prose a:hover{text-decoration-color:var(--jade)}
.prose ul,.prose ol{display:grid; gap:.5rem}
/* 列表标记用绝对定位，避免 grid 把内联元素拆成独立网格项 */
.prose ul > li{position:relative; padding-left:1.5rem}
.prose ul > li::before{content:""; position:absolute; left:.25rem; top:.75em; width:.375rem; height:.375rem; border-radius:50%; background:var(--jade); opacity:.75}
.prose ol{counter-reset:step}
.prose ol > li{position:relative; padding-left:2rem}
.prose ol > li::before{
  counter-increment:step; content:counter(step); position:absolute; left:0; top:.28rem;
  width:1.375rem; height:1.375rem; display:grid; place-items:center; border-radius:6px;
  font-family:var(--mono); font-size:.7188rem; font-weight:700; color:#86f2c9;
  background:rgb(51 224 160 / .1); border:1px solid rgb(51 224 160 / .24);
}
.prose code,.step__body code,.rel__group li code{padding:.05rem .35rem; border-radius:5px; font-family:var(--mono); font-size:.8438em; color:#dbe6f5; background:var(--fill-3); border:1px solid var(--line); overflow-wrap:anywhere}
.prose pre{max-width:100%; overflow-x:auto; padding:1rem 1.125rem; border-radius:12px; font-family:var(--mono); font-size:.8125rem; line-height:1.75; color:#dbe6f5; background:#03050a; border:1px solid var(--line-2); box-shadow:inset 0 1px 0 rgb(255 255 255 / .04)}
.prose pre code{padding:0; border:0; background:none; font-size:inherit; overflow-wrap:normal}
.prose hr{width:100%; max-width:100%; border:0; border-top:1px solid var(--line)}

.steps{display:grid; gap:1.125rem}
.step{display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:start}
.step__num{width:2rem; height:2rem; display:grid; place-items:center; border-radius:10px; font-family:var(--mono); font-size:.8125rem; font-weight:700; color:#03140e; background:linear-gradient(135deg,var(--jade),var(--cyan))}
.step__title{font-size:.9688rem; font-weight:600; color:var(--fg)}
.step__body{margin-top:.25rem; font-size:.9375rem; line-height:1.78; color:var(--fg-2)}

.deflist{display:grid; gap:.75rem}
.deflist > div{display:grid; grid-template-columns:auto 1fr; gap:.875rem; align-items:baseline; font-size:.9063rem}
.deflist dt{white-space:nowrap; font-family:var(--mono); font-size:.8125rem; font-weight:600; color:#8cc8ff}
.deflist dd{line-height:1.72; color:var(--fg-2)}

.faq{display:grid; gap:.75rem}
.faq details{border-radius:var(--r-md); transition:border-color .2s}
.faq details[open]{border-color:var(--line-2)}
.faq summary{display:flex; align-items:center; gap:.75rem; padding:1rem 1.25rem; list-style:none; font-size:.9375rem; font-weight:600; color:var(--fg)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:""; flex:none; margin-left:auto; width:.5rem; height:.5rem; border-right:1.5px solid var(--fg-3); border-bottom:1.5px solid var(--fg-3); transform:rotate(45deg) translateY(-2px); transition:transform .25s var(--ease)}
.faq details[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
.faq .faq__body{max-width:70ch; padding:0 1.25rem 1.125rem; font-size:.9063rem; line-height:1.82; color:var(--fg-2)}

/* 更新日志 */
.rel{padding:1.5rem; border-radius:var(--r-lg)}
@media (min-width:768px){ .rel{padding:2.25rem} }
.rel--current{border-color:rgb(51 224 160 / .3); background:linear-gradient(170deg,rgb(51 224 160 / .08),rgb(255 255 255 / .02) 42%)}
.rel__head{display:flex; flex-wrap:wrap; align-items:center; gap:.625rem; padding-bottom:1rem; margin-bottom:1.25rem; border-bottom:1px solid var(--line)}
.rel__ver{font-family:var(--mono); font-size:1.25rem; font-weight:700; color:var(--fg)}
.rel__date{font-family:var(--mono); font-size:.8125rem; color:var(--fg-3)}
.rel__body{display:grid; gap:1.25rem}
.rel__group h4{margin-bottom:.625rem; font-family:var(--mono); font-size:.75rem; font-weight:600; letter-spacing:.08em; color:var(--fg-3)}
.rel__group ul{display:grid; gap:.5rem}
.rel__group li{position:relative; max-width:72ch; padding-left:1.375rem; font-size:.9375rem; line-height:1.78; color:var(--fg-2)}
.rel__group li::before{content:""; position:absolute; left:.2rem; top:.75em; width:.375rem; height:.375rem; border-radius:50%; background:var(--cyan)}
.rel__group--note li::before{background:var(--fg-3)}
.rel__group li strong{color:var(--fg); font-weight:600}

/* ---------- 表格 ---------- */
.tablewrap{overflow:hidden; border-radius:var(--r-lg)}
.table{font-size:.875rem}
.table thead th{padding:.875rem 1.25rem; text-align:left; white-space:nowrap; font-size:.75rem; font-weight:600; letter-spacing:.04em; color:var(--fg-3); background:var(--fill-1); border-bottom:1px solid var(--line)}
.table tbody td{padding:1rem 1.25rem; vertical-align:top; line-height:1.72; color:var(--fg-2); border-bottom:1px solid var(--line)}
.table tbody tr:last-child td{border-bottom:0}
.table tbody tr{transition:background-color .2s}
.table tbody tr:hover{background:var(--fill-1)}
.table .id{white-space:nowrap; font-family:var(--mono); font-size:.75rem; color:var(--fg-3)}
.table .name{font-weight:600; color:var(--fg)}
.table .fname{word-break:break-all; font-family:var(--mono); font-size:.8125rem; color:var(--fg)}
.table .num{white-space:nowrap; text-align:right; font-family:var(--mono); font-size:.8125rem; color:var(--fg-1)}
.table .hash{display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin-top:.375rem}
.table .hash code{padding:.0625rem .375rem; border-radius:4px; font-family:var(--mono); font-size:.6875rem; color:var(--fg-2); background:var(--fill-2)}
.table__caption{caption-side:top; padding:.875rem 1.25rem 0; text-align:left; font-size:.75rem; color:var(--fg-3)}
.scrollx{overflow-x:auto}
/* 窄屏：表格改为堆叠，避免横向滚动影响阅读 */
@media (max-width:767px){
  .scrollx{overflow-x:visible}
  .table,.table caption,.table tbody,.table tr,.table td{display:block; width:auto}
  .table thead{display:none}
  .table tr{padding:1rem 1.25rem; border-bottom:1px solid var(--line)}
  .table tbody tr:last-child{border-bottom:0}
  .table td{padding:0; border-bottom:0 !important}
  .table td + td{margin-top:.75rem}
  .table td::before{display:block; margin-bottom:.125rem; font-size:.75rem; font-weight:600; color:var(--fg-3)}
  .table--cols4 td:nth-child(1)::before{content:"编号"}
  .table--cols4 td:nth-child(2)::before{content:"要求"}
  .table--cols4 td:nth-child(3)::before{content:"状态"}
  .table--cols4 td:nth-child(4)::before{content:"说明与边界"}
  .table--cols2 td:nth-child(1)::before{content:"看到的提示"}
  .table--cols2 td:nth-child(2)::before{content:"先做什么"}
  .table--cols3 td:nth-child(1)::before{content:"文件"}
  .table--cols3 td:nth-child(2)::before{content:"说明"}
  .table--cols3 td:nth-child(3)::before{content:"字节数"}
  .table--versions td:nth-child(1)::before{content:"版本"}
  .table--versions td:nth-child(2)::before{content:"日期"}
  .table--versions td:nth-child(3)::before{content:"主线"}
  .table--versions td:nth-child(4)::before{content:"验证与边界"}
  .table .num{text-align:left; white-space:normal}
}

/* 页内前进 / 后退 */
.pager{display:grid; gap:1rem; margin-top:.5rem}
@media (min-width:640px){ .pager{grid-template-columns:repeat(2,1fr)} }
.pager a{display:grid; gap:.25rem; padding:1.125rem 1.375rem; border-radius:var(--r-md); transition:transform .3s var(--ease),border-color .3s}
.pager a:hover{transform:translateY(-2px); border-color:var(--line-2)}
.pager a:active{transform:scale(.98)}
.pager span{font-size:.75rem; color:var(--fg-3)}
.pager b{font-size:.9688rem; font-weight:600; color:var(--fg)}
.pager .next{text-align:right}

/* ---------- 页脚 ---------- */
footer{padding-block:4rem 2rem; background:var(--bg); border-top:1px solid var(--line)}
.foot__grid{display:grid; gap:2.5rem; padding-bottom:2.5rem; border-bottom:1px solid var(--line)}
@media (min-width:640px){ .foot__grid{grid-template-columns:1.8fr 1fr 1fr} }
.foot h4{margin-bottom:1rem; font-size:.8125rem; font-weight:600; letter-spacing:.06em; color:var(--fg-1)}
.foot ul{display:grid; gap:.625rem}
.foot li{font-size:.8438rem; color:var(--fg-3)}
.foot a{transition:color .2s}
.foot a:hover{color:var(--fg)}
.foot__about{max-width:44ch; margin-top:1rem; font-size:.8438rem; line-height:1.78; color:var(--fg-3)}
.foot__bottom{display:flex; flex-wrap:wrap; justify-content:space-between; gap:.5rem 1.5rem; padding-top:1.5rem; font-size:.75rem; color:var(--fg-3)}

/* ---------- 滚动入场 ---------- */
/* 仅在 <html class="js"> 且脚本确认可用时启用；动画结束后脚本会移除 .reveal，恢复卡片自身的悬停动效 */
html.js .reveal{opacity:0; transform:translate3d(0,18px,0); transition:opacity .7s var(--ease),transform .7s var(--ease); transition-delay:var(--d,0s)}
html.js .reveal.is-in{opacity:1; transform:none}

/* ---------- 手机端 ---------- */
@media (max-width:767px){
  .section{padding-block:4rem}
  .hero--launch{padding-top:4.5rem}
  .mockbar{margin-top:2.75rem}
  .stage{margin-top:2.5rem}
  /* 手机端关闭模糊：只关模糊、改不透明底，实底按钮的底色一律不动 */
  .nav,.nav.is-stuck{background:rgb(5 7 12 / .95); -webkit-backdrop-filter:none; backdrop-filter:none}
  .seg{background:#0f1520; -webkit-backdrop-filter:none; backdrop-filter:none}
  .glass--blur{background:#0d121c; -webkit-backdrop-filter:none; backdrop-filter:none}
  .aurora i{animation:none}
  .chat__head,.activity__head{flex-wrap:wrap}
  .activity__counts{flex-wrap:wrap; margin-left:0}
  .activity__row,.drow{flex-wrap:wrap; overflow-wrap:anywhere}
  .deliver__tail > span:last-child{display:none}
  .bar__top{flex-wrap:wrap}
  .stat{padding:1.375rem 1.125rem}
}
/* 触屏设备没有悬停，不渲染指针高光层 */
@media (hover:none){ .glass::after,.card::after{display:none} }

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important}
  html.js .reveal{opacity:1; transform:none}
  .aurora i,.chain__rail::after,.live-dot::after{animation:none}
  .stage__frame{transform:none !important}
  html.js .bars:not(.is-in) .fill{transform:none}
}

@media print{
  :root{--fg:#111; --fg-1:#222; --fg-2:#333; --fg-3:#555; --line:#ddd}
  body,html,footer,.section--white{background:#fff}
  .nav,.seg,.toc,.pager,.aurora,.mockbar{display:none}
  .glass,.card,.block,.rel,.tablewrap{box-shadow:none; background:#fff}
  html.js .reveal{opacity:1; transform:none}
}
