:root{
  --page:#FFFFFF;
  --wash:#F7FAFC;
  --wash-2:#EDF1F5;
  --ink:#1A1A1A;
  --ink-2:#4C4F6B;
  --ink-3:#7A8194;
  --line:#E2E8F0;
  --line-2:#EBF0F4;
  --accent:#A22027;
  --accent-2:#E01017;
  --accent-wash:#FBF6F6;
  --amber:#9A6412;
  --blue:#2A5591;
  --red:#A03A2D;
  --grad-a:#A22027;
  --grad-b:#EF161B;
  --grad-c:#E01017;
  --grad:linear-gradient(115deg,var(--grad-a),var(--grad-b) 48%,var(--grad-c));
  --r-lg:12px;
  --r-md:10px;
  --r-sm:6px;
  --sans:"PingFang SC","HarmonyOS Sans SC","MiSans","Microsoft YaHei UI","Microsoft YaHei",-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono","Cascadia Mono","Cascadia Code",Consolas,"SF Mono",monospace;
  --ease:cubic-bezier(.22,1,.36,1);
  --nav-h:72px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 20px);-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--page);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.75;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p{margin:0}
code{font-family:var(--mono)}
::selection{background:var(--accent);color:#fff}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.wrap{width:min(1180px,calc(100% - 48px));margin:0 auto}
@media (max-width:600px){.wrap{width:calc(100% - 32px)}}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:40;height:var(--nav-h);
  display:flex;align-items:center;background:#fff;
  border-bottom:1px solid transparent;
  transition:border-color .25s,box-shadow .25s,height .25s;
}
.site-header.is-stuck{border-bottom-color:var(--line);height:64px}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.brand .mark{width:28px;height:28px;flex:none}
.brand-txt{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.brand-txt b{font-size:15px;font-weight:700;white-space:nowrap;letter-spacing:.01em}
.brand-txt span{font-family:var(--mono);font-size:9.5px;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.nav-links{display:flex;align-items:center;gap:2px}
.nav-links a{
  position:relative;display:inline-flex;align-items:center;height:32px;padding:0 12px;
  font-size:13.5px;color:var(--ink-2);border-radius:4px;transition:color .2s,background .2s;
}
.nav-links a:hover{color:var(--ink);background:var(--wash)}
.nav-links a.active{color:var(--accent);font-weight:600}
.header-actions{display:flex;align-items:center;gap:10px}
.ver-chip{
  display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 9px;
  border:1px solid var(--line);border-radius:4px;
  font-family:var(--mono);font-size:10px;color:var(--ink-3);
}
.ver-chip i{width:5px;height:5px;border-radius:50%;background:var(--accent)}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:42px;padding:0 19px;border-radius:6px;font-size:14px;font-weight:600;
  border:1px solid transparent;transition:background .2s,border-color .2s,color .2s;
  white-space:nowrap;
}
.btn svg{width:15px;height:15px;flex:none}
.btn-solid{background:var(--accent);color:#fff}
.btn-solid:hover{background:var(--accent-2)}
.btn-ghost{border-color:var(--line);color:var(--ink);background:#fff}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-sm{height:34px;padding:0 14px;font-size:13px;border-radius:5px}
.burger{display:none;width:38px;height:38px;border:1px solid var(--line);border-radius:5px;align-items:center;justify-content:center}
.burger span{display:block;width:15px;height:1.5px;background:var(--ink);position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:15px;height:1.5px;background:var(--ink);transition:transform .25s,opacity .25s}
.burger span::before{top:-4.5px}
.burger span::after{top:4.5px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.burger[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}
.mobile-menu{
  position:fixed;top:var(--nav-h);left:0;right:0;z-index:39;
  background:#fff;border-bottom:1px solid var(--line);
  padding:8px 24px 20px;display:none;
}
.mobile-menu.open{display:block}
.site-header.is-stuck ~ .mobile-menu{top:64px}
.mobile-menu a{display:flex;align-items:center;padding:13px 0;border-bottom:1px solid var(--line-2);font-size:15px}
.mobile-menu .btn{margin-top:16px;width:100%}
.scroll-line{position:absolute;left:0;bottom:-1px;height:2px;width:100%;transform-origin:0 50%;background:var(--accent);opacity:.85;transform:scaleX(0)}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;padding:calc(var(--nav-h) + 78px) 0 0;text-align:center;background:var(--page)}
.hero-inner{position:relative}
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:11px;color:var(--ink-3)
}
.eyebrow i{width:1px;height:10px;background:#F1E3E5;display:block}
.hero h1{
  margin:24px auto 0;max-width:17em;
  font-size:clamp(2.1rem,4.9vw,3.95rem);
  line-height:1.14;font-weight:800;letter-spacing:-.025em;
  text-wrap:balance;
}
.hero h1 .line{display:block}
.hero h1 .thin{font-weight:400;color:var(--ink-2)}
.hero-lead{
  margin:26px auto 0;max-width:56ch;
  font-size:clamp(15px,1.1vw,16.5px);line-height:1.95;color:var(--ink-2);
}
.hero-lead b{color:var(--ink);font-weight:600}
.hero-meta{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  margin-top:46px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.hero-meta div{padding:17px 12px 15px;border-right:1px solid var(--line-2)}
.hero-meta div:last-child{border-right:0}
.hero-meta b{display:block;font-family:var(--mono);font-size:19px;font-weight:600;letter-spacing:-.02em;color:var(--ink);font-feature-settings:"tnum"}
.hero-meta b em{font-style:normal;font-size:.72em;color:var(--ink-3);margin-left:2px}
.hero-meta span{display:block;margin-top:2px;font-size:12px;color:var(--ink-3)}

/* ---------- product window ---------- */
.mock-stage{position:relative;margin-top:56px;padding-bottom:clamp(64px,7vw,96px)}
.mock-cap{margin-top:16px;text-align:center;font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.mock{
  position:relative;width:100%;max-width:1120px;margin:0 auto;
  background:#fff;border:1px solid #E0E6EB;border-radius:10px;overflow:hidden;
  box-shadow:0 1px 2px rgba(16,22,26,.04),0 28px 56px -32px rgba(16,22,26,.22);
  font-size:11px;color:#1A1A1A;font-family:var(--sans);text-align:left;
}
.mock-bar{display:flex;align-items:center;justify-content:space-between;gap:1em;height:3.3em;padding:0 1.4em;background:#F5F8FA;border-bottom:1px solid #EDF1F5;font-size:.95em}
.dots{display:flex;gap:.55em}
.dots i{width:.7em;height:.7em;border-radius:50%;background:#D8E0E6}
.mock-title{font-size:.95em;color:#4C4F6B}
.mock-bar-r{display:inline-flex;align-items:center;gap:.5em;color:#1A1A1A;font-size:.9em}
.mock-bar-r .dot-live{width:.45em;height:.45em;border-radius:50%;background:#C61117}
.mock-body{display:grid;grid-template-columns:17.5em minmax(0,1fr) 15em;min-height:36em}
.mock-side{background:#F7FAFC;border-right:1px solid #E5EAF0;padding:1.15em .9em;display:flex;flex-direction:column;gap:.65em}
.ms-brand{display:flex;align-items:center;gap:.55em;padding:.1em .3em .4em;font-size:1em;color:#1A1A1A}
.ms-mark{width:1.45em;height:1.45em;border-radius:.3em;background:var(--accent-wash);border:1px solid #F1E3E5;display:grid;place-items:center;flex:none}
.ms-mark svg{width:1em;height:1em}
.ms-seg{display:grid;grid-template-columns:1fr 1fr;background:#E7ECF1;border-radius:.4em;padding:.2em;font-size:.94em;text-align:center;color:#4C4F6B}
.ms-seg .on{background:#fff;color:#1A1A1A;font-weight:600;border-radius:.3em}
.ms-search{margin-top:.15em;border:1px solid #EDF1F5;background:#fff;border-radius:.35em;padding:.45em .6em;color:#7A8194;font-size:.9em}
.ms-head{display:flex;justify-content:space-between;padding:.65em .3em .1em;font-size:.84em;color:#7A8194}
.ms-list{display:flex;flex-direction:column;gap:.12em;flex:1}
.ms-list li{display:block;padding:.5em .55em;border-radius:.35em;font-size:.92em;color:#4C4F6B}
.ms-list li b{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-list li em{display:block;font-style:normal;font-size:.8em;color:#7A8194;margin-top:.05em}
.ms-list li.on{background:var(--accent-wash);color:#E01017}
.ms-list li.on b{font-weight:600}
.ms-foot{display:flex;justify-content:space-between;padding:.6em .35em 0;border-top:1px solid #E5EAF0;font-size:.84em;color:#7A8194}
.mock-main{display:flex;flex-direction:column;background:#fff;min-width:0}
.mm-head{display:flex;align-items:center;justify-content:space-between;gap:1em;padding:.9em 1.35em;border-bottom:1px solid #F7FAFC;font-size:.94em;color:#4C4F6B}
.mm-title b{color:#1A1A1A;font-weight:600}
.mm-tools{display:inline-flex;align-items:center;gap:.45em}
.mm-tools i{font-style:normal;font-size:.86em;padding:.16em .55em;border-radius:.3em;background:#F7FAFC;color:#7A8194}
.mm-tools i.going{background:var(--accent-wash);color:#E01017}
.mm-scroll{flex:1;padding:1.35em 1.4em;display:flex;flex-direction:column;gap:1em;overflow:visible}
.msg-user{
  align-self:flex-end;max-width:76%;background:#F7FAFC;color:#1A1A1A;
  padding:.75em .95em;border-radius:.6em .6em .2em .6em;font-size:.96em;line-height:1.7;
}
.msg-ai{max-width:94%;display:flex;flex-direction:column;gap:.5em}
.ai-name{font-size:.84em;color:#7A8194}
.ai-name b{color:#1A1A1A}
.step{
  display:flex;align-items:center;gap:.5em;flex-wrap:wrap;
  padding:.45em .65em;background:#F7FAFC;border:1px solid #EDF1F5;border-radius:.3em;
  font-size:.9em;color:#4C4F6B;
  opacity:0;transform:translateY(3px);transition:opacity .45s var(--ease),transform .45s var(--ease);
}
.step b{font-weight:600;color:#1A1A1A}
.step code{font-size:.92em;background:#fff;border:1px solid #EDF1F5;border-radius:.2em;padding:.02em .3em;color:#1A1A1A;max-width:26em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-ok{margin-left:auto;font-size:.84em;color:#E01017;font-family:var(--mono)}
.step.show{opacity:1;transform:none}
.ai-text{font-size:.97em;line-height:1.85;color:#1A1A1A;opacity:0;transition:opacity .5s var(--ease)}
.ai-text.show{opacity:1}
.ai-text mark{background:#FBF0D4;color:#6B4A0B;padding:0 .2em;border-radius:.1em}
.ai-text code{background:#F7FAFC;padding:.02em .28em;border-radius:.15em;font-size:.92em;color:#1A1A1A}
.ai-caret{display:inline-block;width:.5em;height:1em;background:var(--accent);vertical-align:-.15em;animation:blink 1.1s steps(1) infinite;opacity:0}
.ai-caret.show{opacity:1}
@keyframes blink{50%{opacity:0}}
.composer{margin:0 1.4em 1.2em;border:1px solid #EDF1F5;border-radius:.45em;padding:.7em .85em;font-size:.9em;color:#7A8194;background:#fff}
.cmp-bar{display:flex;align-items:center;gap:.5em;margin-top:.65em;padding-top:.55em;border-top:1px solid #F7FAFC;font-size:.85em;color:#7A8194}
.cmp-bar span{background:#F7FAFC;border-radius:.25em;padding:.12em .45em}
.cmp-bar b{margin-left:auto;background:var(--accent);color:#fff;font-weight:500;border-radius:.25em;padding:.28em .85em}
.mock-aside{background:#F7FAFC;border-left:1px solid #E5EAF0;padding:1.05em .85em;display:flex;flex-direction:column;gap:.6em}
.ma-tabs{display:flex;gap:.12em;flex-wrap:wrap;font-size:.8em;color:#7A8194}
.ma-tabs span{padding:.22em .4em;border-radius:.25em}
.ma-tabs .on{background:var(--accent);color:#fff}
.ma-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4em}
.ma-grid div{background:#fff;border:1px solid #EDF1F5;border-radius:.35em;padding:.5em .45em}
.ma-grid b{display:block;font-family:var(--mono);font-size:1.02em;color:#1A1A1A;letter-spacing:-.02em}
.ma-grid em{font-style:normal;font-size:.76em;color:#7A8194}
.ma-head{font-size:.83em;color:#7A8194;padding-top:.2em}
.ma-item{background:#fff;border:1px solid #EDF1F5;border-radius:.35em;padding:.5em .55em;font-size:.85em}
.ma-item b{display:block;color:#1A1A1A;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ma-item em{font-style:normal;font-family:var(--mono);font-size:.86em;color:#7A8194}

/* ============================================================
   SHARED SECTION
   ============================================================ */
.section{position:relative;padding:clamp(72px,7vw,108px) 0}
.sec-label{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--accent);font-weight:600}
.sec-label .sq{width:14px;height:1px;background:var(--accent);flex:none}
.sec-title{margin-top:16px;font-size:clamp(1.7rem,3.1vw,2.5rem);line-height:1.24;font-weight:700;letter-spacing:-.02em;text-wrap:balance}
.sec-title .dim{color:var(--ink-3);font-weight:400}
.sec-lead{margin-top:18px;max-width:62ch;font-size:15px;line-height:1.95;color:var(--ink-2)}
.sec-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:48px;align-items:end}
.sec-head .side{display:flex;flex-direction:column;gap:12px;align-items:flex-start;padding-bottom:4px}
.side-note{font-size:12.5px;line-height:1.85;color:var(--ink-3);max-width:30ch}
@media (max-width:900px){.sec-head{grid-template-columns:1fr;gap:22px}.sec-head .side{display:none}}

/* ============================================================
   MODELS
   ============================================================ */
.models{border-top:1px solid var(--line);background:var(--page)}
.logo-grid{
  display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-top:46px;
}
.brand-tile{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;
  padding:20px 8px 18px;background:#fff;border:1px solid var(--line);border-radius:8px;
  text-align:center;transition:border-color .2s,background .2s;
}
.brand-tile:hover{border-color:#F1E3E5;background:#FBFDFC}
.brand-logo{width:34px;height:34px;display:grid;place-items:center;color:#1A1A1A;flex:none}
.brand-logo img{width:26px;height:26px;object-fit:contain;transition:transform .25s var(--ease)}
.brand-tile:hover .brand-logo img{transform:scale(1.07)}
.brand-tile .bt{min-width:0;width:100%}
.brand-tile b{display:block;font-size:12.5px;font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-tile span{display:block;margin-top:2px;font-size:10.5px;color:var(--ink-3);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.protocols{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px;align-items:center}
.protocols .p-chip{
  font-family:var(--mono);font-size:11px;color:var(--ink-2);
  border:1px solid var(--line);border-radius:4px;padding:4px 8px;background:#fff;
}
.protocols .p-note{font-size:12px;color:var(--ink-3);margin-left:2px}
@media (max-width:1080px){.logo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:700px){.logo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ============================================================
   CAPABILITIES (bento)
   ============================================================ */
.caps{background:var(--wash)}
.bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;margin-top:48px}
.card{
  position:relative;grid-column:span 4;
  background:#fff;border:1px solid var(--line);border-radius:10px;
  padding:26px 24px;display:flex;flex-direction:column;gap:13px;
  transition:border-color .25s,background .25s;
}
.card:hover{border-color:#F1E3E5;background:#FBFDFC}
.card.wide{grid-column:span 7}
.card.mid{grid-column:span 5}
.card.full{grid-column:span 12;flex-direction:row;align-items:center;justify-content:space-between;gap:32px}
.card-ico{width:32px;height:32px;border:1px solid var(--line);border-radius:6px;display:grid;place-items:center;color:var(--accent)}
.card-ico svg{width:17px;height:17px}
.card h3{font-size:16.5px;font-weight:700;letter-spacing:-.01em}
.card p{font-size:13.5px;line-height:1.85;color:var(--ink-2)}
.card .kicker{font-size:11.5px;color:var(--ink-3);margin-top:auto}
.mini-term{
  margin-top:2px;background:#F7FAFC;border:1px solid var(--line-2);border-radius:6px;
  padding:11px 13px;font-family:var(--mono);font-size:11px;line-height:2;overflow:hidden;
}
.mini-term .ln{display:flex;gap:7px;color:#4C4F6B;white-space:nowrap}
.mini-term .ln em{color:var(--accent);font-style:normal}
.mini-term .ln i{margin-left:auto;color:#7A8194;font-style:normal}
.mini-term .ln.ok{color:#1A1A1A}
.agent-map{position:relative;height:100px;margin-top:2px}
.agent-map svg{width:100%;height:100%}
.agent-map .node{fill:#fff;stroke:#F1E3E5;stroke-width:1.2}
.agent-map .node.c{fill:var(--accent-wash);stroke:var(--accent)}
.agent-map .ln{stroke:#F0EAE9;stroke-width:1;stroke-dasharray:3 4}
.agent-map .flow{stroke:var(--accent);stroke-width:1;stroke-dasharray:10 190;animation:dash 3.6s linear infinite}
@keyframes dash{to{stroke-dashoffset:-202}}
.pill-row{display:flex;flex-wrap:wrap;gap:6px}
.pill-row span{font-size:11.5px;color:var(--ink-2);border:1px solid var(--line);border-radius:4px;padding:3px 8px;background:#fff}
@media (max-width:1000px){
  .bento{grid-template-columns:repeat(6,minmax(0,1fr))}
  .card,.card.wide,.card.mid{grid-column:span 3}
  .card.full{grid-column:span 6;flex-direction:column;align-items:flex-start}
  .card:nth-child(5){grid-column:span 6}
}
@media (max-width:640px){
  .bento{grid-template-columns:1fr}
  .card,.card.wide,.card.mid,.card.full{grid-column:span 1}
  .card.full{padding:24px 22px}
  .card.full .pill-row{max-width:100% !important}
}

/* ============================================================
   NATIVE PROGRAMS
   ============================================================ */
.prog{border-top:1px solid var(--line);background:var(--page)}
.prog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:34px}
.prog-card{
  display:flex;flex-direction:column;padding:19px 22px 20px;
  background:var(--wash);border:1px solid var(--line);border-radius:8px;
  transition:border-color .22s var(--ease),background .22s var(--ease);
}
.prog-card:hover{border-color:#F1E3E5;background:#FBFDFC}
.prog-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:11px;border-bottom:1px solid var(--line);margin-bottom:15px}
.prog-kind{font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.prog-native{
  font-style:normal;font-family:var(--mono);font-size:9.5px;line-height:1;letter-spacing:.02em;
  color:var(--accent);background:var(--accent-wash);border:1px solid #F1E3E5;border-radius:3px;padding:3px 5px;
}
.prog-card h3{font-size:19px;font-weight:700;letter-spacing:-.015em;color:var(--ink)}
.prog-cn{margin-top:3px;font-size:12px;color:var(--ink-3)}
.prog-card p{margin-top:11px;font-size:12.8px;line-height:1.86;color:var(--ink-2)}
.prog-meta{margin:15px 0 0;border-top:1px solid var(--line-2)}
.prog-meta>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line-2)}
.prog-meta>div:last-child{border-bottom:0;padding-bottom:0}
.prog-meta dt{font-size:11.5px;color:var(--ink-3)}
.prog-meta dd{margin:0;font-family:var(--mono);font-size:11px;color:#1A1A1A;text-align:right}
@media (max-width:900px){.prog-grid{grid-template-columns:1fr;gap:10px}}

/* ============================================================
   SCENES
   ============================================================ */
.scenes{border-top:1px solid var(--line);background:var(--page)}
.tabs{display:flex;flex-wrap:wrap;gap:0;margin-top:38px;border-bottom:1px solid var(--line)}
.tab{
  position:relative;padding:11px 15px;font-size:13.5px;color:var(--ink-3);
  transition:color .2s,background .2s;
}
.tab:hover{color:var(--ink-2);background:var(--wash)}
.tab.on{color:var(--ink);font-weight:600;background:#fff}
.tab.on::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--accent)}
.panel{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,4vw,54px);padding-top:38px}
.panel[hidden]{display:none}
.panel h3{font-size:19.5px;font-weight:700;letter-spacing:-.01em;line-height:1.45}
.panel p{font-size:14px;line-height:1.9;color:var(--ink-2);margin-top:11px;max-width:46ch}
.spec{display:grid;grid-template-columns:52px minmax(0,1fr);gap:13px 18px;margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
.spec dt{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);padding-top:3px}
.spec dd{margin:0;font-size:13.5px;color:var(--ink-2);line-height:1.7}
.spec dd code{color:var(--accent);font-size:12.5px}
.console{background:#FBFDFC;border:1px solid var(--line);border-radius:7px;overflow:hidden;align-self:start}
.console-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#F7FAFC;border-bottom:1px solid var(--line-2);font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.console-head .live{display:inline-flex;align-items:center;gap:6px;color:var(--accent)}
.console-head .live i{width:5px;height:5px;border-radius:50%;background:var(--accent)}
.console-body{padding:17px 15px 20px;font-family:var(--mono);font-size:12px;line-height:2.05;color:#4C4F6B;min-height:290px}
.console-body .cl{display:block}
.console-body.play .cl{opacity:0;animation:cline .5s var(--ease) forwards;animation-delay:calc(var(--i) * 85ms)}
@keyframes cline{to{opacity:1}}
.console-body .ck{color:var(--accent)}
.console-body .warn{color:var(--amber)}
.console-body .bad{color:var(--red)}
.console-body .dim{color:#7A8194}
.console-body .ok{color:#1A1A1A}

/* ============================================================
   ARCHITECTURE
   ============================================================ */
.arch{
  border-top:1px solid var(--line);
  background:var(--wash);
}
.arch-grid{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:clamp(32px,5vw,64px);margin-top:48px;align-items:start}
.layers{display:flex;flex-direction:column;counter-reset:lay}
.layer{position:relative;padding:17px 0 19px;border-top:1px solid var(--line)}
.layer::before{
  counter-increment:lay;content:"0" counter(lay);
  position:absolute;left:0;top:20px;
  font-family:var(--mono);font-size:10px;color:var(--ink-3);letter-spacing:.04em;
}
.layer-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:9px;padding-left:36px}
.layer-head .lt{font-size:14px;font-weight:700}
.layer-head .ls{font-family:var(--mono);font-size:10px;color:var(--ink-3);text-align:right}
.layer-items{display:flex;flex-wrap:wrap;gap:5px;padding-left:36px}
.layer-items span{font-size:11.5px;color:var(--ink-2);background:#fff;border:1px solid var(--line);border-radius:4px;padding:3px 8px}
.layer.core{
  background:var(--accent-wash);border-top-color:transparent;border-radius:8px;
  padding:17px 14px 19px;margin:8px 0;
}
.layer.core::before{left:14px;top:20px}
.layer.core .layer-head,.layer.core .layer-items{padding-left:22px}
.layer.core .lt{color:var(--accent-2)}
.layer.core .layer-items span{border-color:#F1E3E5}
.conn{height:26px;display:flex;align-items:center;justify-content:center;position:relative}
.conn i{position:absolute;left:50%;margin-left:-2.5px;top:-3px;width:5px;height:5px;border-radius:50%;background:var(--accent);animation:flowdown 2.6s linear infinite;opacity:0}
.conn i:nth-child(2){animation-delay:1.3s}
@keyframes flowdown{0%{top:-2px;opacity:0}15%{opacity:1}85%{opacity:1}100%{top:100%;opacity:0}}
.principles{border-top:1px solid var(--line)}
.p-item{display:grid;grid-template-columns:30px minmax(0,1fr);gap:14px;padding:16px 0;border-bottom:1px solid var(--line-2)}
.p-item .pi{width:30px;height:30px;border:1px solid var(--line);border-radius:5px;display:grid;place-items:center;color:var(--accent);background:#fff}
.p-item .pi svg{width:16px;height:16px}
.p-item b{font-size:14px;font-weight:700;display:block}
.p-item p{margin-top:3px;font-size:12.8px;line-height:1.8;color:var(--ink-3)}
.arch-proto{display:flex;flex-wrap:wrap;gap:6px;margin-top:24px}
.arch-proto span{font-family:var(--mono);font-size:10.5px;color:var(--ink-2);border:1px solid var(--line);border-radius:4px;padding:4px 8px;background:#fff}
@media (max-width:980px){.arch-grid{grid-template-columns:1fr}}

/* ============================================================
   TRUST
   ============================================================ */
.trust{background:var(--page);border-top:1px solid var(--line);padding:clamp(72px,7vw,108px) 0}
.trust-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:clamp(32px,5vw,60px);margin-top:48px}
.t-item{border-top:1px solid var(--line);padding:18px 0}
.t-item:last-child{padding-bottom:0}
.t-item b{display:flex;align-items:baseline;gap:10px;font-size:15px;font-weight:700}
.t-item b i{font-family:var(--mono);font-style:normal;font-size:10px;color:var(--accent);letter-spacing:.05em}
.t-item p{margin-top:6px;font-size:13.5px;line-height:1.85;color:var(--ink-2)}
.policy{
  background:var(--wash);border:1px solid var(--line);border-radius:8px;
  padding:24px 24px 22px;display:flex;flex-direction:column;
}
.policy-top{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding-bottom:13px}
.doc-label{font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.stamp{
  border:1.5px solid #A03A2D;color:#A03A2D;font-family:var(--mono);font-size:10px;
  letter-spacing:.1em;padding:3px 8px;transform:rotate(-6deg);opacity:.85;white-space:nowrap;
}
.prow{display:grid;grid-template-columns:54px minmax(0,1fr);gap:5px 14px;padding:13px 0;border-bottom:1px dashed var(--line)}
.prow .tag{font-size:11.5px;font-weight:700;text-align:center;border-radius:3px;padding:3px 0;align-self:start}
.tag.allow{background:#FBF6F6;color:#E01017}
.tag.ask{background:#F3E8D2;color:#7C5310}
.tag.deny{background:#F2DEDA;color:#8E3327}
.prow b{display:block;font-size:12.5px;font-weight:600;color:#1A1A1A}
.prow code{display:inline-block;margin-top:5px;font-size:10.5px;color:#4C4F6B;background:#fff;border:1px solid var(--line-2);padding:2px 6px;border-radius:3px}
.try{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}
.try-h{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-bottom:9px}
.try-chips{display:flex;flex-wrap:wrap;gap:5px}
.try-chip{
  font-family:var(--mono);font-size:11px;color:var(--ink-2);background:#fff;
  border:1px solid var(--line);border-radius:3px;padding:7px 10px;line-height:1.2;
  transition:border-color .18s,background .18s,color .18s;
}
.try-chip:hover{border-color:#F1E3E5;color:var(--accent)}
.try-chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.try-out{display:flex;align-items:flex-start;gap:10px;margin-top:12px;min-height:22px}
.try-badge{font-size:11px;font-weight:700;border-radius:3px;padding:2px 8px;flex:none}
.try-why{font-size:11.5px;line-height:1.75;color:var(--ink-2);padding-top:1px}
.try-badge.allow{background:#FBF6F6;color:#E01017}
.try-badge.ask{background:#F3E8D2;color:#7C5310}
.try-badge.deny{background:#F2DEDA;color:#8E3327}
.tree-wrap{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.tree{
  background:#FBFDFC;border:1px solid var(--line-2);border-radius:4px;
  padding:13px 15px;font-family:var(--mono);font-size:11px;line-height:1.95;color:#4C4F6B;
  white-space:pre;overflow-x:auto;
}
.policy-note{margin-top:auto;padding-top:14px;font-size:11.5px;color:var(--ink-3);line-height:1.8;border-top:1px dotted var(--line)}
@media (max-width:960px){.trust-grid{grid-template-columns:1fr}.policy{margin-top:8px}.policy-note{margin-top:14px}}

/* ============================================================
   USAGE
   ============================================================ */
.usage{border-top:1px solid var(--line);background:var(--wash)}
.dash{margin-top:44px;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}
.dash-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 20px;border-bottom:1px solid var(--line-2);background:#FBFDFC;font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.dash-head .tag-demo{border:1px solid var(--line);border-radius:3px;padding:2px 6px;color:var(--ink-3)}
.dash-body{padding:20px}
.metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:var(--line-2);border:1px solid var(--line-2);border-radius:5px;overflow:hidden}
.metric{background:#fff;padding:14px 13px}
.metric b{display:block;font-family:var(--mono);font-size:17px;font-weight:600;letter-spacing:-.03em;font-feature-settings:"tnum";white-space:nowrap;color:#1A1A1A}
.metric b em{font-style:normal;font-size:.7em;color:var(--ink-3)}
.metric span{display:block;margin-top:3px;font-size:11px;color:var(--ink-3);white-space:nowrap}
.dash-mid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:26px;margin-top:22px;align-items:start}
.block-title{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-bottom:12px}
.bar{display:flex;height:7px;border-radius:3px;overflow:hidden;background:#F7FAFC}
.bar i{display:block;height:100%}
.bar .b1{width:89%;background:var(--accent)}
.bar .b2{width:11%;background:#F1E3E5}
.legend{margin-top:14px;display:flex;flex-direction:column;gap:9px}
.legend div{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--ink-2)}
.legend span{display:inline-flex;align-items:center;gap:7px}
.legend span::before{content:"";width:7px;height:7px;border-radius:1px;background:var(--accent)}
.legend div:nth-child(2) span::before{background:#F1E3E5}
.legend b{font-family:var(--mono);font-weight:500;font-feature-settings:"tnum";color:#1A1A1A}
.tbl{width:100%;border-collapse:collapse;table-layout:fixed}
.tbl th{text-align:left;font-family:var(--mono);font-size:10px;font-weight:500;color:var(--ink-3);padding:0 6px 8px;border-bottom:1px solid var(--line)}
.tbl td{font-family:var(--mono);font-size:11.5px;color:var(--ink-2);padding:8px 6px;border-bottom:1px solid var(--line-2);font-feature-settings:"tnum"}
.tbl td:first-child{font-family:var(--sans);font-size:12px;color:#1A1A1A}
.tbl tr:last-child td{border-bottom:0}
.tbl .tr-total td{border-top:1px solid var(--line);color:#1A1A1A;font-weight:600}
.out-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;margin-top:44px;padding-top:26px;border-top:1px solid var(--line)}
.out-head .block-title{margin-bottom:0}
.out-head p{font-size:12.8px;line-height:1.7;color:var(--ink-3);max-width:56ch}
.out{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(22px,3.2vw,44px);margin-top:22px;align-items:start}
.out-item{padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line-2)}
.out-item:last-child{border-bottom:0;padding-bottom:0;margin-bottom:0}
.out-item b{font-family:var(--mono);font-size:12px;font-weight:600;color:#1A1A1A;word-break:break-all}
.out-item p{margin-top:5px;font-size:12.8px;line-height:1.8;color:var(--ink-3)}
.doc{background:#FBFDFC;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.doc-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 13px;border-bottom:1px solid var(--line-2);font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.doc-tag{border:1px solid var(--line);border-radius:3px;padding:1px 6px;background:#fff}
.doc-body{padding:13px 15px 15px;font-family:var(--mono);font-size:11.5px;line-height:2;color:#4C4F6B;white-space:pre;overflow-x:auto}
@media (max-width:900px){.out{grid-template-columns:1fr;gap:26px}}
@media (max-width:1000px){
  .metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dash-mid{grid-template-columns:1fr;gap:26px}
}

/* ============================================================
   DEPLOY
   ============================================================ */
.deploy-wrap{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:clamp(26px,3.6vw,48px);margin-top:50px;align-items:start}
.deploy-inner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 26px}
.d-item{border-top:1px solid var(--line);padding-top:16px}
.d-item h3{font-size:14.5px;font-weight:700}
.d-item p{margin-top:6px;font-size:12.8px;line-height:1.8;color:var(--ink-3)}
.req{background:var(--wash);border:1px solid var(--line);border-radius:8px;padding:20px 22px 22px}
.req-h{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);padding-bottom:10px;margin-bottom:2px;border-bottom:1px solid var(--line)}
.req-list{margin:0}
.req-list>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line-2)}
.req-list>div:last-child{border-bottom:0;padding-bottom:0}
.req-list dt{font-size:12px;color:var(--ink-3);flex:none}
.req-list dd{margin:0;font-family:var(--mono);font-size:11.5px;color:#1A1A1A;text-align:right;word-break:break-word}
@media (max-width:900px){.deploy-wrap{grid-template-columns:1fr}.req{margin-top:4px}}
@media (max-width:560px){.deploy-inner{grid-template-columns:1fr}}

/* ============================================================
   QUICKSTART
   ============================================================ */
.start{border-top:1px solid var(--line);background:var(--page)}
.start-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,36px);margin-top:44px}
.s-step{display:grid;grid-template-columns:36px minmax(0,1fr);gap:14px;border-top:1px solid var(--line);padding-top:16px;align-items:start}
.s-step .num{font-family:var(--mono);font-size:25px;font-weight:500;line-height:1;color:var(--accent);letter-spacing:-.04em}
.s-step h3{font-size:14.5px;font-weight:700}
.s-step p{margin-top:5px;font-size:12.8px;line-height:1.8;color:var(--ink-3)}
@media (max-width:820px){.start-grid{grid-template-columns:1fr;gap:18px}}

/* ============================================================
   FAQ
   ============================================================ */
.faq-sec{background:var(--wash);border-top:1px solid var(--line)}
.faq-list{margin-top:40px;border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line-2)}
.faq-q{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  width:100%;padding:19px 0;text-align:left;
  font-size:15px;font-weight:600;letter-spacing:-.01em;
}
.faq-q:hover{color:var(--accent)}
.faq-q i{position:relative;width:18px;height:18px;flex:none;border:1px solid var(--line);border-radius:50%;transition:transform .3s var(--ease),border-color .3s}
.faq-q i::before,.faq-q i::after{content:"";position:absolute;top:50%;left:50%;background:var(--ink-3);transform:translate(-50%,-50%)}
.faq-q i::before{width:7px;height:1px}
.faq-q i::after{width:1px;height:7px}
.faq-item.open .faq-q i{transform:rotate(45deg);border-color:var(--accent)}
.faq-item.open .faq-q i::before,.faq-item.open .faq-q i::after{background:var(--accent)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--ease)}
.faq-item.open .faq-a{grid-template-rows:1fr}
.faq-a>div{overflow:hidden}
.faq-a p{padding:0 0 20px;font-size:13.5px;line-height:1.95;color:var(--ink-2);max-width:74ch}

/* ============================================================
   CTA + FOOTER
   ============================================================ */
.cta{padding:clamp(56px,7vw,88px) 0}
.cta-box{
  position:relative;border:1px solid #F1E3E5;border-radius:10px;
  padding:clamp(36px,5.4vw,64px) clamp(24px,5vw,54px);text-align:center;
  background:var(--accent-wash);
}
.cta-box h2{font-size:clamp(1.7rem,3.3vw,2.5rem);line-height:1.28;font-weight:700;letter-spacing:-.02em}
.cta-box p{margin:14px auto 0;max-width:50ch;font-size:14px;line-height:1.9;color:var(--ink-2)}
.cta-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:28px}
.cta-note{margin-top:20px;display:flex;align-items:center;justify-content:center;gap:10px;font-family:var(--mono);font-size:10.5px;color:#1A1A1A}
.cta-note i{width:1px;height:9px;background:#F1E3E5}
.cta-box .btn-ghost{background:#fff;border-color:#F1E3E5;color:var(--accent-2)}
.cta-box .btn-ghost:hover{background:#fff;border-color:var(--accent)}
.dl-hero{margin-top:34px}
.dl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:548px;margin:0 auto}
.dl-card{
  position:relative;display:flex;flex-direction:column;align-items:center;
  background:#fff;border:1px solid #EDF1F5;border-radius:8px;padding:19px 10px 17px;
  color:inherit;text-decoration:none;
  transition:border-color .22s var(--ease),transform .22s var(--ease),box-shadow .22s var(--ease);
}
.dl-card:hover,.dl-card:focus-visible{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 10px 22px rgba(205,76,83,.08)}
.dl-ico{height:34px;display:flex;align-items:center;justify-content:center;margin-bottom:11px;transition:transform .22s var(--ease)}
.dl-ico svg,.dl-ico img{width:32px;height:32px;display:block}
.dl-card:hover .dl-ico{transform:scale(1.07)}
.dl-card b{font-size:13.5px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}
.dl-card span{margin-top:3px;font-size:11.5px;color:var(--ink-3);text-align:center;line-height:1.45}
.dl-card .dl-tag{
  position:absolute;top:8px;right:8px;font-style:normal;
  font-family:var(--mono);font-size:9px;line-height:1;letter-spacing:.02em;
  color:var(--accent);background:var(--accent-wash);border:1px solid #F1E3E5;
  border-radius:3px;padding:3px 4px;
}
.dl-arrow{position:absolute;right:9px;bottom:9px;width:12px;height:12px;color:var(--accent);opacity:0;transform:translate(-2px,2px);transition:opacity .22s var(--ease),transform .22s var(--ease)}
.dl-card:hover .dl-arrow{opacity:1;transform:none}
.dl-note{margin-top:15px;font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.hero-more{
  margin-top:18px;display:inline-flex;align-items:center;gap:6px;
  font-size:12.5px;color:var(--accent);text-decoration:none;
  border-bottom:1px solid transparent;transition:border-color .2s;
}
.hero-more:hover{border-bottom-color:var(--accent)}
.hero-more svg{width:13px;height:13px}
@media (max-width:700px){
  .dl-hero{margin-top:26px}
  .dl-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-width:100%}
  .dl-card{padding:14px 8px 14px}
  .dl-ico{height:28px;margin-bottom:9px}
  .dl-ico svg,.dl-ico img{width:26px;height:26px}
  .dl-card b{font-size:12px}
  .dl-card span{font-size:10.5px}
  .dl-card .dl-tag{display:none}
  .dl-arrow{display:none}
}

.site-footer{border-top:1px solid var(--line);background:var(--page);padding:56px 0 26px}
.foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:clamp(28px,4vw,52px)}
.foot-brand .brand{margin-bottom:13px}
.foot-brand p{font-size:12.5px;line-height:1.9;color:var(--ink-3);max-width:36ch}
.foot-links{display:flex;flex-wrap:wrap;gap:5px 20px;margin-top:16px}
.foot-links a{font-size:12px;color:var(--ink-2);border-bottom:1px solid transparent;transition:.2s}
.foot-links a:hover{color:var(--accent);border-color:#F1E3E5}
.foot-col h4{font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:9px}
.foot-col a{display:block;font-size:13px;color:var(--ink-2);padding:4px 0;transition:color .2s}
.foot-col a:hover{color:var(--accent)}
.foot-bot{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;margin-top:40px;padding-top:16px;border-top:1px solid var(--line-2);font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
@media (max-width:900px){.foot-top{grid-template-columns:1fr 1fr}.foot-brand{grid-column:span 2}}
@media (max-width:560px){.foot-top{grid-template-columns:1fr}.foot-brand{grid-column:span 1}}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px){
  .nav-links{display:none}
  .burger{display:inline-flex}
  .ver-chip{display:none}
  .panel{grid-template-columns:1fr;gap:26px}
}
@media (max-width:560px){
  .header-actions .btn{display:none}
}
@media (max-width:1000px){
  .mock-body{grid-template-columns:15.5em minmax(0,1fr)}
  .mock-aside{display:none}
}
@media (max-width:760px){
  .mock{font-size:11.6px}
  .panel p,.card p,.t-item p,.d-item p,.s-step p,.faq-a p,.out-item p{font-size:14px}
  .sec-lead{font-size:14.5px}
  .req-list dt,.req-list dd{font-size:12.5px}
  .mock-body{grid-template-columns:1fr}
  .mock-side{display:none}
  .mock-bar-r{display:none}
  .mock-bar{height:3.1em}
  .mm-scroll{padding:1.1em}
  .msg-user{max-width:94%}
  .mock code{white-space:normal;word-break:break-word}
  .step code{max-width:100%}
  .composer{margin:0 1.1em 1.1em}
  .hero{padding-top:calc(var(--nav-h) + 56px)}
  .hero-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-meta div{padding:14px 8px 12px;border-bottom:0}
  .hero-meta div:nth-child(2n){border-right:0}
  .hero-meta div:nth-child(-n+2){border-bottom:1px solid var(--line-2)}
  .panel{padding-top:28px}
  .tabs{border-bottom:0;gap:6px}
  .tab{padding:8px 12px;font-size:12.5px;border:1px solid var(--line);border-radius:4px;background:#fff}
  .tab.on{background:var(--accent-wash);border-color:#F1E3E5;color:var(--accent)}
  .tab.on::after{display:none}
  .console-body{font-size:11px;min-height:auto}
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .metric b{font-size:15px}
  .tbl th{font-size:9px}
  .tbl td{font-size:10.5px;padding:7px 4px}
  .foot-bot{flex-direction:column}
  .cta-note{flex-wrap:wrap}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}

/* ============================================================
   V4 · 站点骨架（多页共享 / 内页 / 模块总览）
   ============================================================ */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:99;
  background:var(--accent);color:#fff;padding:10px 16px;border-radius:0 0 6px 0;font-size:13px;
}
.skip-link:focus{left:0}
.nav-links a.on-page{color:var(--accent);font-weight:600}
.mobile-menu a.on-page{color:var(--accent);font-weight:600}
@media (max-width:1080px){
  .nav-links a{padding:0 8px;font-size:13px}
  .header-inner{gap:14px}
}

/* ---------- 内页页头 ---------- */
.page-hero{
  position:relative;padding:calc(var(--nav-h) + 58px) 0 0;
  border-bottom:1px solid var(--line);background:var(--page);
}
.crumb{
  display:flex;align-items:center;flex-wrap:wrap;gap:9px;
  font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-bottom:24px;
}
.crumb a{color:var(--ink-2);border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.crumb a:hover{color:var(--accent);border-bottom-color:#F1E3E5}
.crumb em{font-style:normal;color:var(--ink-3)}
.crumb i{width:11px;height:1px;background:#F1E3E5;display:block;flex:none}
.page-hero h1{
  font-size:clamp(1.95rem,4.1vw,3.05rem);line-height:1.18;
  font-weight:800;letter-spacing:-.026em;max-width:24em;text-wrap:balance;
}
.page-hero h1 .thin{font-weight:400;color:var(--ink-2)}
.page-hero .lead{
  margin-top:20px;max-width:62ch;
  font-size:15.5px;line-height:1.95;color:var(--ink-2);
}
.page-hero .lead b{color:var(--ink);font-weight:600}
.page-meta{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  margin-top:40px;border-top:1px solid var(--line);
}
.page-meta>div{padding:16px 14px 18px 0;border-right:1px solid var(--line-2)}
.page-meta>div:last-child{border-right:0}
.page-meta b{display:block;font-family:var(--mono);font-size:18px;font-weight:600;letter-spacing:-.02em;color:var(--ink);font-feature-settings:"tnum"}
.page-meta b em{font-style:normal;font-size:.72em;color:var(--ink-3);margin-left:2px}
.page-meta span{display:block;margin-top:2px;font-size:12px;color:var(--ink-3)}
@media (max-width:760px){
  .page-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-meta>div{padding-right:10px}
  .page-meta>div:nth-child(2n){border-right:0}
  .page-meta>div:nth-child(-n+2){border-bottom:1px solid var(--line-2)}
}

/* ---------- 界面结构示意（三栏骨架） ---------- */
.shell-map{
  margin-top:40px;border:1px solid #E0E6EB;border-radius:10px;overflow:hidden;background:#fff;
  box-shadow:0 1px 2px rgba(16,22,26,.04),0 20px 40px -30px rgba(16,22,26,.18);
}
.sm-bar{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:10px 16px;background:#F5F8FA;border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:10.5px;color:var(--ink-3);
}
.sm-bar .live{display:inline-flex;align-items:center;gap:7px;color:var(--accent)}
.sm-bar .live i{width:5px;height:5px;border-radius:50%;background:var(--accent)}
.sm-body{display:grid;grid-template-columns:.86fr 1.3fr .84fr;gap:1px;background:var(--line-2)}
.sm-col{background:#fff;padding:18px 18px 20px;min-width:0}
.sm-col.dim{background:#FBFDFC}
.sm-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  font-size:12px;font-weight:700;color:var(--ink);padding-bottom:10px;border-bottom:1px solid var(--line-2);
}
.sm-head i{font-family:var(--mono);font-size:9px;font-style:normal;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}
.sm-list{margin-top:11px;display:flex;flex-direction:column;gap:7px}
.sm-list li{
  display:flex;align-items:flex-start;gap:8px;
  font-size:12px;line-height:1.6;color:var(--ink-2);
}
.sm-list li::before{
  content:"";width:4px;height:4px;border-radius:50%;background:#F1E3E5;
  margin-top:7px;flex:none;
}
.sm-list li.hot::before{background:var(--accent)}
.sm-list li b{color:var(--ink);font-weight:600}
.sm-foot{
  margin-top:14px;padding-top:11px;border-top:1px dashed var(--line);
  font-family:var(--mono);font-size:10px;color:var(--ink-3);line-height:1.8;
}
@media (max-width:860px){
  .sm-body{grid-template-columns:1fr}
  .sm-col.dim{background:#fff}
}

/* ---------- 模块网格（14 个面板 / 设置分类） ---------- */
.mod-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:30px}
.mod{
  position:relative;background:#fff;border:1px solid var(--line);border-radius:8px;
  padding:15px 15px 14px;transition:border-color .2s,background .2s;
}
.mod:hover{border-color:#F1E3E5;background:#FBFDFC}
.mod .mi{font-family:var(--mono);font-size:9.5px;color:var(--ink-3);letter-spacing:.05em}
.mod b{display:block;margin-top:5px;font-size:13.5px;font-weight:700;letter-spacing:-.01em}
.mod p{margin-top:5px;font-size:12px;line-height:1.72;color:var(--ink-3)}
.mod .mtag{
  display:inline-block;margin-top:9px;font-family:var(--mono);font-size:9.5px;
  color:var(--accent);background:var(--accent-wash);border:1px solid #F1E3E5;border-radius:3px;padding:2px 5px;
}
@media (max-width:1040px){.mod-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:780px){.mod-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.mod-grid{grid-template-columns:1fr}}

/* ---------- 对比表 ---------- */
.cmp-wrap{margin-top:32px;border:1px solid var(--line);border-radius:8px;background:#fff;overflow-x:auto}
.cmp{width:100%;min-width:760px;border-collapse:collapse;table-layout:fixed}
.cmp th,.cmp td{text-align:left;vertical-align:top;padding:14px 16px;border-bottom:1px solid var(--line-2)}
.cmp thead th{
  background:#FBFDFC;font-size:12.5px;font-weight:700;color:var(--ink);
  border-bottom:1px solid var(--line);white-space:nowrap;
}
.cmp thead th span{display:block;margin-top:3px;font-family:var(--mono);font-size:9.5px;font-weight:400;color:var(--ink-3);letter-spacing:.04em}
.cmp tbody th{
  font-size:11.5px;font-weight:600;color:var(--ink-3);background:#FBFDFC;
  font-family:var(--mono);white-space:nowrap;width:104px;
}
.cmp td{font-size:12.5px;line-height:1.75;color:var(--ink-2)}
.cmp td b{color:var(--ink);font-weight:600}
.cmp tr:last-child th,.cmp tr:last-child td{border-bottom:0}

/* ---------- 自动化三段 ---------- */
.auto-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:34px}
.auto-card{
  display:flex;flex-direction:column;gap:12px;
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px 22px 20px;
}
.auto-card .ac-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.auto-card .ac-num{font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.06em}
.auto-card .ac-flag{
  font-family:var(--mono);font-size:9px;color:var(--ink-3);
  border:1px solid var(--line);border-radius:3px;padding:2px 5px;
}
.auto-card h3{font-size:16.5px;font-weight:700;letter-spacing:-.015em}
.auto-card>.desc{font-size:12.8px;line-height:1.85;color:var(--ink-2)}
.ac-list{display:flex;flex-direction:column;gap:0;margin-top:auto;border-top:1px solid var(--line-2)}
.ac-list div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line-2)}
.ac-list div:last-child{border-bottom:0;padding-bottom:0}
.ac-list dt{font-size:11.5px;color:var(--ink-3);flex:none}
.ac-list dd{margin:0;font-family:var(--mono);font-size:10.5px;color:#1A1A1A;text-align:right;line-height:1.6}
@media (max-width:960px){.auto-grid{grid-template-columns:1fr;gap:10px}}
.auto-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:860px){.auto-grid.two{grid-template-columns:1fr}}

/* ---------- 记忆四件套 ---------- */
.pillar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:34px}
.pillar{
  background:#fff;border:1px solid var(--line);border-radius:8px;padding:20px 20px 18px;
}
.pillar .p-top{display:flex;align-items:center;gap:10px}
.pillar .p-ico{
  width:28px;height:28px;flex:none;border:1px solid var(--line);border-radius:5px;
  display:grid;place-items:center;color:var(--accent);
}
.pillar .p-ico svg{width:15px;height:15px}
.pillar b{font-size:14px;font-weight:700}
.pillar p{margin-top:8px;font-size:12.8px;line-height:1.82;color:var(--ink-2)}
.pillar code{font-size:11px;background:var(--wash);border:1px solid var(--line-2);border-radius:3px;padding:1px 4px;color:var(--accent-2)}
@media (max-width:760px){.pillar-grid{grid-template-columns:1fr}}

/* ---------- 深入阅读 ---------- */
.read-band{border-top:1px solid var(--line);background:var(--wash);padding:clamp(56px,6vw,80px) 0}
.read-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap}
.read-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:28px}
.read-card{
  position:relative;display:flex;flex-direction:column;gap:9px;
  background:#fff;border:1px solid var(--line);border-radius:9px;padding:22px 22px 20px;
  transition:border-color .22s var(--ease),transform .22s var(--ease),box-shadow .22s var(--ease);
}
.read-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 12px 24px -18px rgba(205,76,83,.5)}
.read-card .rc-label{font-family:var(--mono);font-size:9.5px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}
.read-card b{font-size:16px;font-weight:700;letter-spacing:-.015em}
.read-card p{font-size:12.5px;line-height:1.8;color:var(--ink-3)}
.read-card .rc-go{
  margin-top:8px;display:inline-flex;align-items:center;gap:6px;
  font-size:12px;color:var(--accent);font-weight:600;
}
.read-card .rc-go svg{width:13px;height:13px;transition:transform .2s var(--ease)}
.read-card:hover .rc-go svg{transform:translateX(3px)}
@media (max-width:860px){.read-grid{grid-template-columns:1fr}}

/* ---------- 内页文档布局 ---------- */
.doc-wrap{display:grid;grid-template-columns:212px minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:start}
.toc{position:sticky;top:calc(var(--nav-h) + 24px);padding-top:4px}
.toc-label{font-family:var(--mono);font-size:9.5px;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;padding-bottom:10px;border-bottom:1px solid var(--line)}
.toc nav{display:flex;flex-direction:column;margin-top:10px}
.toc a{
  display:block;padding:6px 0 6px 12px;border-left:1px solid var(--line);
  font-size:12.5px;color:var(--ink-3);line-height:1.5;transition:color .2s,border-color .2s;
}
.toc a:hover{color:var(--ink)}
.toc a.on{color:var(--accent);font-weight:600;border-left-color:var(--accent)}
.doc-sec{padding:38px 0;border-top:1px solid var(--line);scroll-margin-top:calc(var(--nav-h) + 24px)}
.doc-sec:first-child{border-top:0;padding-top:8px}
.doc-sec h2{font-size:clamp(1.3rem,2.1vw,1.62rem);font-weight:700;letter-spacing:-.02em;line-height:1.35}
.doc-sec h2 .num{
  display:inline-block;margin-right:10px;font-family:var(--mono);font-size:11px;
  color:var(--accent);vertical-align:2px;
}
.doc-sec .sub{margin-top:11px;max-width:66ch;font-size:14px;line-height:1.95;color:var(--ink-2)}
.doc-sec h3{margin-top:26px;font-size:15px;font-weight:700;letter-spacing:-.01em}
.doc-sec p{margin-top:10px;font-size:13.5px;line-height:1.9;color:var(--ink-2);max-width:70ch}
.doc-sec p b{color:var(--ink);font-weight:600}
.doc-sec p code{font-size:12px;background:var(--wash);border:1px solid var(--line-2);border-radius:3px;padding:1px 5px;color:var(--accent-2)}
.doc-sec ul.plain{margin-top:12px;display:flex;flex-direction:column;gap:7px}
.doc-sec ul.plain li{position:relative;padding-left:16px;font-size:13px;line-height:1.85;color:var(--ink-2)}
.doc-sec ul.plain li::before{content:"";position:absolute;left:0;top:9px;width:5px;height:1px;background:var(--accent)}

/* ---------- 键值列表 ---------- */
.kv{margin-top:16px;border-top:1px solid var(--line)}
.kv>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line-2)}
.kv>div:last-child{border-bottom:0}
.kv dt{font-size:12.5px;color:var(--ink-3);flex:none}
.kv dd{margin:0;font-family:var(--mono);font-size:11.5px;color:#1A1A1A;text-align:right;line-height:1.65;word-break:break-word}

/* ---------- 提示条 ---------- */
.callout{
  margin-top:20px;border:1px solid #EDF1F5;background:var(--accent-wash);
  border-radius:6px;padding:14px 16px;font-size:12.5px;line-height:1.85;color:#1A1A1A;
}
.callout b{font-weight:700;color:var(--accent-2)}
.callout.warn{border-color:#E6DAC0;background:#FBF5E8;color:#6B5017}
.callout.warn b{color:#7C5310}

/* ---------- 内页翻页 ---------- */
.pager{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:28px 0 0;border-top:1px solid var(--line)}
.pager a{
  display:flex;flex-direction:column;gap:4px;min-width:200px;
  border:1px solid var(--line);border-radius:7px;padding:13px 16px;background:#fff;
  transition:border-color .2s,background .2s;
}
.pager a:hover{border-color:var(--accent);background:#FBFDFC}
.pager a span{font-family:var(--mono);font-size:9.5px;color:var(--ink-3);letter-spacing:.06em}
.pager a b{font-size:13.5px;font-weight:600}
.pager a.next{margin-left:auto;text-align:right;align-items:flex-end}

/* ---------- 页脚站点地图 ---------- */
.foot-col .f-note{margin-top:10px;font-size:11px;line-height:1.7;color:var(--ink-3);max-width:24ch}
.foot-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.foot-badges span{
  font-family:var(--mono);font-size:9.5px;color:var(--ink-3);
  border:1px solid var(--line);border-radius:3px;padding:2px 6px;background:#fff;
}
@media (max-width:620px){
  .doc-sec{padding:30px 0}
  .pager a{min-width:100%}
}

/* ============================================================
   V5 · 视觉打磨（层次 / 质感 / 节奏 / 微交互）
   ============================================================ */
:root{
  --ink-4:#DEBFC2;
  --shadow-1:0 1px 2px rgba(16,22,26,.05);
  --shadow-2:0 20px 44px -32px rgba(16,22,26,.5);
  --shadow-3:0 30px 64px -40px rgba(205,76,83,.55);
}

/* ---------- 全局质感 ---------- */
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:#fff}
::-webkit-scrollbar-thumb{background:#E2E8F0;border:3px solid #fff;border-radius:10px}
::-webkit-scrollbar-thumb:hover{background:#DEBFC2}
@supports (scrollbar-width:thin){
  html{scrollbar-width:thin;scrollbar-color:#E2E8F0 #fff}
}

/* ---------- 页头 ---------- */
.site-header{
  background:rgba(255,255,255,.88);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  backdrop-filter:blur(14px) saturate(1.2);
}
.site-header.is-stuck{
  background:rgba(255,255,255,.95);
  box-shadow:0 14px 30px -28px rgba(16,22,26,.7);
}
.nav-links a.active::after{
  content:"";position:absolute;left:12px;right:12px;bottom:6px;height:1px;
  background:currentColor;opacity:.55;
}
@media (max-width:1080px){.nav-links a.active::after{left:8px;right:8px}}

/* 按钮：加一层极轻的立体感与位移反馈 */
.btn{
  transition:background .22s,color .22s,border-color .22s,
             transform .22s var(--ease),box-shadow .22s var(--ease);
}
.btn-solid{
  background:linear-gradient(180deg,#E01017,#C61117);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 10px 22px -16px rgba(205,76,83,.85);
}
.btn-solid:hover{
  background:linear-gradient(180deg,#A22027,#B31015);
  transform:translateY(-1px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 16px 28px -16px rgba(205,76,83,.9);
}
.btn-ghost{background:linear-gradient(180deg,#fff,#FBFDFC)}
.btn-ghost:hover{background:#fff;box-shadow:0 8px 18px -16px rgba(205,76,83,.6)}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  background-color:#fff;
  background-image:
    radial-gradient(118% 64% at 50% -14%,rgba(205,76,83,.075),rgba(205,76,83,0) 62%),
    linear-gradient(180deg,#FBFDFC 0%,#fff 40%);
  background-repeat:no-repeat;
  background-size:100% 100%,100% 100%;
}
.hero::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(16,22,26,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(16,22,26,.05) 1px,transparent 1px);
  background-size:80px 80px;
  -webkit-mask-image:radial-gradient(88% 58% at 50% 4%,#000 0%,rgba(0,0,0,.5) 46%,transparent 86%);
  mask-image:radial-gradient(88% 58% at 50% 4%,#000 0%,rgba(0,0,0,.5) 46%,transparent 86%);
}
.hero-inner{position:relative;z-index:1}
.eyebrow{
  padding:7px 16px 7px 14px;
  border:1px solid var(--line);border-radius:999px;
  background:rgba(255,255,255,.82);
  box-shadow:var(--shadow-1);
  color:var(--ink-2);
  letter-spacing:.02em;
}
.eyebrow::before{
  content:"";width:5px;height:5px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 0 3px rgba(205,76,83,.12);
}
.eyebrow i{height:9px;background:#E2E8F0}
.hero h1{letter-spacing:-.032em}
.hero-lead{
  max-width:58ch;font-size:clamp(15px,1.12vw,16.5px);
  color:#4C4F6B;
}
.hero-meta{
  margin-top:52px;
  background:linear-gradient(180deg,rgba(247,250,252,.72),rgba(255,255,255,.2));
  border-color:var(--line);
}
.hero-meta div{padding:20px 12px 18px;transition:background .25s var(--ease)}
.hero-meta div:hover{background:rgba(255,255,255,.85)}
.hero-meta b{font-size:22px;letter-spacing:-.03em}
.hero-meta span{font-size:11.5px;letter-spacing:.02em}

/* 下载卡 */
.dl-card{
  background:linear-gradient(180deg,#fff,#FBFDFC);
  border-radius:10px;box-shadow:var(--shadow-1);
}
.dl-card:hover,.dl-card:focus-visible{
  box-shadow:0 22px 42px -28px rgba(205,76,83,.6);
  background:#fff;
}
.mock{
  border-color:#E2E8F0;
  box-shadow:
    var(--shadow-1),
    0 40px 80px -46px rgba(16,22,26,.4),
    0 0 0 1px rgba(205,76,83,.02);
}
.mock::after{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(205,76,83,.45),transparent);
}

/* ---------- 章节节奏与标签 ---------- */
main{counter-reset:sec}
.section{padding:clamp(76px,7.2vw,112px) 0}
.start{
  padding:clamp(72px,7vw,104px) 0;
  background:linear-gradient(180deg,#fff 0%,#FBFDFC 100%);
}
.read-band{padding:clamp(58px,6.2vw,86px) 0}
.cta{padding:clamp(48px,6vw,76px) 0 clamp(56px,7vw,88px)}

.sec-label{
  counter-increment:sec;
  gap:11px;font-size:11.5px;font-weight:600;
  letter-spacing:.16em;color:var(--accent);
}
.sec-label::before{
  content:counter(sec,decimal-leading-zero);
  font-family:var(--mono);font-size:10.5px;font-weight:500;
  letter-spacing:.1em;color:var(--ink-4);
}
.sec-label .sq{
  width:18px;
  background:linear-gradient(90deg,var(--accent),rgba(205,76,83,.18));
}
.sec-title{
  margin-top:15px;
  font-size:clamp(1.76rem,3.2vw,2.6rem);
  line-height:1.22;letter-spacing:-.03em;font-weight:800;
}
.sec-title .dim{color:#7A8194;font-weight:400}
.sec-lead{margin-top:16px;max-width:64ch;font-size:15.5px;color:#4C4F6B}
.sec-head{gap:clamp(32px,4vw,56px)}
.side-note{
  border-left:1px solid var(--line);
  padding-left:14px;font-size:12.5px;line-height:1.9;color:var(--ink-3);
}

/* ---------- 能力矩阵卡片 ---------- */
.card{
  border-radius:12px;
  background:linear-gradient(180deg,#fff 0%,#FBFDFC 100%);
  box-shadow:var(--shadow-1);
  transition:border-color .25s,background .25s,box-shadow .28s var(--ease),transform .28s var(--ease);
}
.card:hover{
  background:#fff;border-color:#F1E3E5;
  box-shadow:var(--shadow-2);transform:translateY(-2px);
}
.card::after{
  content:"";position:absolute;left:22px;right:22px;top:-1px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,transparent,rgba(205,76,83,.6),transparent);
  opacity:0;transition:opacity .25s var(--ease);pointer-events:none;
}
.card:hover::after{opacity:1}
.card-ico{
  border-color:#F1E3E5;
  background:linear-gradient(180deg,#FBFDFC,#F7FAFC);
  box-shadow:inset 0 1px 0 #fff;
}
.mini-term{
  background:linear-gradient(180deg,#FBFDFC,#F7FAFC);
  border-color:#EDF1F5;
  box-shadow:inset 0 1px 2px rgba(16,22,26,.045);
}
.pill-row span{background:linear-gradient(180deg,#fff,#FBFDFC)}
.layer-items span,.arch-proto span{background:linear-gradient(180deg,#fff,#FBFDFC)}

/* 模型生态 */
.brand-tile{
  position:relative;
  background:linear-gradient(180deg,#fff,#FBFDFC);
  box-shadow:var(--shadow-1);
  transition:border-color .22s,background .22s,transform .22s var(--ease),box-shadow .22s var(--ease);
}
.brand-tile:hover{
  background:#fff;border-color:#F1E3E5;
  transform:translateY(-2px);
  box-shadow:0 18px 34px -26px rgba(16,22,26,.55);
}
.brand-logo{
  border-radius:6px;
  transition:background .22s var(--ease);
}
.brand-tile:hover .brand-logo{background:rgba(205,76,83,.04)}
.protocols .p-chip{background:linear-gradient(180deg,#fff,#FBFDFC)}

/* 自研程序 */
.prog-card{
  border-radius:10px;
  background:linear-gradient(160deg,#FBFDFC 0%,#F7FAFC 58%,#FBFDFC 100%);
  transition:border-color .24s,background .24s,box-shadow .26s var(--ease),transform .26s var(--ease);
}
.prog-card:hover{
  border-color:#F1E3E5;
  background:linear-gradient(160deg,#fff 0%,#FBFDFC 100%);
  box-shadow:var(--shadow-2);transform:translateY(-2px);
}

/* 自动化 / 记忆 / 面板 / 阅读卡：统一轻悬浮语言 */
.auto-card,.pillar,.mod,.read-card{
  box-shadow:var(--shadow-1);
  transition:border-color .24s,background .24s,box-shadow .26s var(--ease),transform .26s var(--ease);
}
.auto-card:hover,.pillar:hover,.mod:hover,.read-card:hover{
  background:#fff;border-color:#F1E3E5;
  box-shadow:var(--shadow-2);transform:translateY(-2px);
}
.read-card:hover{box-shadow:0 22px 44px -30px rgba(205,76,83,.6)}
.pillar{border-radius:10px}
.pillar .p-ico{background:linear-gradient(180deg,#FBFDFC,#F7FAFC);border-color:#F1E3E5}
.mod{border-radius:9px}
.pager a{box-shadow:var(--shadow-1)}
.pager a:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}
.pager a{transition:border-color .2s,background .2s,box-shadow .22s var(--ease),transform .22s var(--ease)}

/* ---------- 对比表 ---------- */
.cmp thead th{
  background:linear-gradient(180deg,#FBFDFC,#FBFDFC);
  font-size:13px;
}
.cmp td{font-size:12.8px;line-height:1.8}
.cmp tbody tr td,.cmp tbody tr th{transition:background .2s}
.cmp tbody tr:hover td{background:#FBFDFC}
.cmp tbody tr:hover th{background:#FBFDFC;color:var(--ink-2)}
.cmp td b{position:relative}

/* ---------- 场景标签 + 终端 ---------- */
.tabs{border-bottom-color:var(--line);gap:2px}
.tab{
  padding:12px 16px;border-radius:7px 7px 0 0;
  font-size:13.5px;
}
.tab:hover{background:rgba(247,250,252,.9)}
.tab.on{background:#fff;color:var(--accent-2)}
.tab.on::after{
  left:12px;right:12px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--accent),#C61117);
}
.console{
  display:flex;flex-direction:column;
  align-self:stretch;
  border-radius:9px;
  background:linear-gradient(180deg,#FBFDFC,#FBFDFC);
  box-shadow:var(--shadow-1),0 24px 44px -38px rgba(16,22,26,.6);
}
.console-head{
  justify-content:flex-start;
  padding-left:15px;
  background:linear-gradient(180deg,#FBFDFC,#F7FAFC);
}
.console-head::before{
  content:"";flex:none;
  width:6px;height:6px;border-radius:50%;
  background:#E2E8F0;
  box-shadow:10px 0 0 #E2E8F0,20px 0 0 #E2E8F0;
  margin-right:28px;
}
.console-head .live{margin-left:auto}
.console-body{
  flex:1;display:flex;flex-direction:column;
  min-height:288px;
  font-size:12px;line-height:2.05;
}
.console-body::after{
  content:"$ ▍";
  margin-top:auto;display:block;
  color:#A22027;
  animation:blink 1.25s steps(1) infinite;
}
@media (max-width:760px){
  .console-body{min-height:0}
  .console-head::before{margin-right:16px}
}

/* ---------- 架构 ---------- */
.layer{transition:background .22s var(--ease)}
.layer:hover{background:rgba(255,255,255,.55)}
.layer.core:hover{background:#F7FAFC}
.layer::before{
  font-size:10.5px;font-weight:500;color:#E01017;letter-spacing:.06em;
}
.layer-items span{
  transition:border-color .2s,color .2s,background .2s;
}
.layer-items span:hover{border-color:#F1E3E5;color:var(--accent)}
.p-item .pi{background:linear-gradient(180deg,#FBFDFC,#F7FAFC);border-color:#F1E3E5}

/* ---------- 安全机制 ---------- */
.trust-grid{align-items:start}
.policy{
  position:relative;
  align-self:start;
  border-radius:10px;
  background-color:var(--wash);
  background-image:
    radial-gradient(rgba(16,22,26,.028) 1px,transparent 1px);
  background-size:8px 8px;
  box-shadow:var(--shadow-1),0 26px 50px -44px rgba(16,22,26,.6);
}
.prow code{background:rgba(255,255,255,.92)}
.try-chip{background:rgba(255,255,255,.95)}
.try-chip:hover{background:#fff;box-shadow:0 6px 14px -12px rgba(205,76,83,.7)}
.tree{background:rgba(255,255,255,.86);border-color:#EDF1F5}
.t-item{padding:19px 0}

/* ---------- 用量看板 ---------- */
.dash{
  border-radius:10px;
  box-shadow:var(--shadow-1),0 24px 48px -42px rgba(16,22,26,.6);
}
.dash-head{background:linear-gradient(180deg,#FBFDFC,#FBFDFC)}
.metric{transition:background .2s var(--ease)}
.metric:hover{background:#FBFDFC}
.metric b{font-size:18px}
.bar{height:8px;border-radius:4px;background:#F7FAFC}
.bar .b1{background:linear-gradient(90deg,#C61117,#C61117)}
.bar .b2{background:linear-gradient(90deg,#F1E3E5,#F1E3E5)}
.legend b{font-size:12px}
.tbl td:first-child{font-weight:500}

/* ---------- 部署 / 三步 / FAQ ---------- */
.req{
  border-radius:10px;
  background:linear-gradient(180deg,#FBFDFC,#F7FAFC);
  box-shadow:var(--shadow-1);
}
.d-item{border-top-color:#E2E8F0;padding-top:18px}
.s-step{
  padding-top:20px;
  transition:border-color .2s var(--ease);
}
.s-step .num{
  width:34px;height:34px;
  display:grid;place-items:center;
  border:1px solid #F1E3E5;border-radius:9px;
  background:linear-gradient(180deg,#FBFDFC,#F7FAFC);
  font-size:15px;font-weight:600;color:var(--accent-2);
  letter-spacing:0;box-shadow:inset 0 1px 0 #fff;
}
.s-step h3{font-size:15px}
.s-step p{max-width:30ch}
.start-grid{margin-top:46px;gap:clamp(20px,3vw,34px)}

.faq-q{padding:20px 4px;transition:color .2s,background .2s}
.faq-item{border-bottom:1px solid var(--line-2);transition:background .2s}
.faq-item:hover .faq-q{color:var(--ink)}
.faq-item.open .faq-q{color:var(--accent-2)}
.faq-q i{border-color:#E2E8F0;background:#fff}
.faq-item.open .faq-q i{background:#fff}
.faq-a p{padding:0 0 22px 0;color:#4C4F6B}

/* ---------- CTA ---------- */
.cta-box{
  overflow:hidden;
  border-radius:12px;
  border-color:#F1E3E5;
  background-color:#F7FAFC;
  background-image:
    radial-gradient(115% 120% at 50% -20%,#F6F9FB 0%,#F7FAFC 55%,#FBF6F6 100%);
  box-shadow:var(--shadow-3);
}
.cta-box::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(205,76,83,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(205,76,83,.05) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(90% 120% at 50% 0%,#000 10%,transparent 78%);
  mask-image:radial-gradient(90% 120% at 50% 0%,#000 10%,transparent 78%);
}
.cta-box::after{
  content:"";position:absolute;right:-36px;bottom:-72px;width:300px;height:300px;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 4.6l9.4 3.5v8c0 5.9-4 10.3-9.4 12.6-5.4-2.3-9.4-6.7-9.4-12.6V8.1L16 4.6z' fill='none' stroke='%2328B894' stroke-width='1.2'/%3E%3Cpath d='M13.6 11.2h7.2l-7.2 4h7.2' fill='none' stroke='%2328B894' stroke-width='1.1'/%3E%3Cpath d='M13.6 11.2v11' stroke='%2328B894' stroke-width='1.1'/%3E%3C/svg%3E") center/contain no-repeat;
  opacity:.09;
}
.cta-box h2,.cta-box p,.cta-actions,.cta-note{position:relative;z-index:1}
.cta-box h2{letter-spacing:-.028em}
.cta-box p{color:#4C4F6B;font-size:14.5px}
.cta-note{color:#7A8194}
.cta-note i{background:#DEBFC2}
.cta-box .btn-ghost{background:rgba(255,255,255,.9);border-color:#F1E3E5}
.cta-box .btn-ghost:hover{background:#fff;border-color:var(--accent)}

/* ---------- 页脚 ---------- */
.site-footer{
  background:linear-gradient(180deg,#fff 0%,#FBFDFC 100%);
  padding:64px 0 28px;
}
.site-footer .brand-txt b{font-size:16px}
.foot-brand p{color:#7A8194}
.foot-col h4{font-size:12.5px;letter-spacing:.02em;margin-bottom:12px}
.foot-col a{position:relative;width:fit-content}
.foot-col a::after{
  content:"";position:absolute;left:0;right:0;bottom:1px;height:1px;
  background:var(--accent);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .22s var(--ease);
}
.foot-col a:hover::after{transform:scaleX(1)}
.foot-badges span{background:rgba(255,255,255,.6)}
.foot-bot{border-top-color:#F7FAFC}

/* ---------- 内页 ---------- */
.page-hero{
  background-color:#fff;
  background-image:
    radial-gradient(100% 58% at 18% -10%,rgba(205,76,83,.055),rgba(205,76,83,0) 60%),
    linear-gradient(180deg,#FBFDFC,#fff 55%);
  background-repeat:no-repeat;
}
.toc a{transition:color .2s,border-color .2s,padding-left .2s}
.toc a:hover{padding-left:16px}
.toc a.on{padding-left:16px}
.doc-sec h2{letter-spacing:-.025em}
.callout{box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.mod .mtag{background:linear-gradient(180deg,#FBFDFC,#F7FAFC)}
.pager a b{letter-spacing:-.01em}

@media (prefers-reduced-motion: reduce){
  .card:hover,.brand-tile:hover,.prog-card:hover,.auto-card:hover,.pillar:hover,
  .mod:hover,.read-card:hover,.btn-solid:hover{transform:none}
}

/* ============================================================
   V6 · 修复与打磨
   1) 窄屏最小宽度溢出（bento / 终端行 / 对比表）
   2) 内页目录在移动端折行
   3) 移动端菜单：可滚动、锁背景、Esc 关闭
   4) 排版与无障碍细节
   ============================================================ */

/* ---------- 1. 不再让内容把页面撑宽 ---------- */
.bento > *,
.doc-wrap > *,
.doc-body,
.mod-grid > *,
.prog-grid > *,
.pillars > *,
.read-grid > *,
.s-steps > *{min-width:0}
.card,
.mod,
.prog-card,
.pillar,
.read-card{min-width:0}
.card p,
.kicker,
.s-step p,
.prog-card p{overflow-wrap:break-word}

.mini-term .ln{min-width:0}
.mini-term .ln i{margin-left:auto;flex:none}

/* ---------- 2. 对比表：窄屏改为可换行的等宽列 ---------- */
@media (max-width:820px){
  .cmp{min-width:0!important;table-layout:fixed;width:100%}
  .cmp th,.cmp td{padding:11px 9px;vertical-align:top}
  .cmp thead th{font-size:11px;white-space:normal;letter-spacing:-.01em}
  .cmp thead th span{display:none}
  .cmp tbody th{
    width:30%;white-space:normal;font-size:10.5px;letter-spacing:0;
    background:#FBFDFC;
  }
  .cmp td{font-size:11.5px;line-height:1.65}
  .cmp td b{font-weight:600}
  .cmp-wrap{overflow-x:visible;border-radius:8px}
}

@media (max-width:760px){
  .mini-term .ln{white-space:normal;flex-wrap:wrap;row-gap:1px}
  .mini-term .ln{font-size:10.5px}
  .mini-term{padding:10px 11px}
}

/* ---------- 3. 内页：目录折成标签条 ---------- */
@media (max-width:900px){
  .doc-wrap{grid-template-columns:1fr;gap:26px}
  .toc{position:static;padding:0 0 4px}
  .toc-label{
    padding-bottom:8px;border-bottom:1px solid var(--line);
  }
  .toc nav{
    flex-direction:row;flex-wrap:wrap;gap:7px;margin-top:12px;
  }
  .toc a{
    padding:6px 12px;border:1px solid var(--line);border-radius:99px;
    font-size:12px;line-height:1.4;color:var(--ink-2);background:#fff;
    transition:background .2s,border-color .2s,color .2s;
  }
  .toc a:hover{padding-left:12px;border-color:#F1E3E5;color:var(--ink)}
  .toc a.on{
    padding-left:12px;background:#F7FAFC;border-color:#F1E3E5;
    color:var(--accent);font-weight:600;
  }
}

/* ---------- 4. 移动端菜单 ---------- */
@media (max-width:900px){
  .mobile-menu{
    max-height:calc(100dvh - var(--nav-h));
    overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
    padding:10px 22px calc(22px + env(safe-area-inset-bottom));
    box-shadow:0 30px 50px -30px rgba(16,22,26,.35);
  }
  .site-header.is-stuck ~ .mobile-menu{max-height:calc(100dvh - 64px)}
  .mobile-menu.open{animation:menuIn .24s cubic-bezier(.2,.75,.25,1)}
  .mobile-menu a{
    padding:12px 0;font-size:14.5px;gap:10px;
    border-bottom:1px solid #F7FAFC;
  }
  .mobile-menu a:active{background:#FBFDFC}
  .mobile-menu a[href$=".html"]{font-size:13px;color:var(--ink-2)}
  .mobile-menu a[href$=".html"]::after{
    content:"↗";margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--ink-3);
  }
  .mobile-menu .btn{
    margin-top:18px;width:100%;justify-content:center;
    border-bottom:0;font-size:14px;
  }
  .menu-open{overscroll-behavior:none}
}
@keyframes menuIn{
  from{opacity:0;transform:translateY(-6px)}
  to{opacity:1;transform:none}
}

/* ---------- 5. 排版与无障碍 ---------- */
h1,h2,.sec-title,.page-hero h1{text-wrap:balance}
.sec-lead,p{text-wrap:pretty}
.metric b,.dash-head b,.hero-meta b,.page-meta b,.usage-num,.cmp td b{font-variant-numeric:tabular-nums}
::selection{background:#F1E3E5;color:#1A1A1A}

:focus-visible{
  outline:2px solid #A22027;outline-offset:3px;border-radius:4px;
}
.btn:focus-visible,.tab:focus-visible,.try-chip:focus-visible{
  outline-offset:2px;
}
.nav-links a[aria-current="true"]{color:var(--accent)}

@media (prefers-reduced-motion: reduce){
  .mobile-menu.open{animation:none}
  .toc a{transition:none}
}

/* ---------- 6. 640 及以下：能力矩阵单列 ----------
   根因：1000 段的 .card:nth-child(5){grid-column:span 6} 特异性高于
   640 段的 .card{span 1}，未被重置，导致 1fr 单列下又生成 5 条隐式列，
   卡片被压成 50px/83px 的竖条。这里用 .bento > .card… 提高特异性修正。 */
@media (max-width:640px){
  .bento{grid-template-columns:1fr}
  .bento > .card,
  .bento > .card.wide,
  .bento > .card.mid,
  .bento > .card.full,
  .bento > .card:nth-child(5){grid-column:1 / -1}
  .card{padding:22px 20px}
  .card.full{flex-direction:column;align-items:flex-start}
  .card.full .pill-row{max-width:100%}
}

/* ---------- 7. 首屏 eyebrow：小屏整段换行而不是逐字断行 ---------- */
.eyebrow span{white-space:nowrap}
@media (max-width:600px){
  .eyebrow{
    flex-wrap:wrap;justify-content:center;gap:5px 12px;
    padding:8px 14px;border-radius:14px;
    font-size:10.5px;line-height:1.5;letter-spacing:0;
  }
  .eyebrow i{display:none}
}

/* ---------- 8. 小屏竖向节奏 ---------- */
@media (max-width:600px){
  .section{padding:60px 0}
  .start{padding:56px 0}
  .cta{padding:44px 0 52px}
  .cta-note{flex-wrap:wrap;gap:4px 12px;font-size:10px}
  .cta-note i{display:none}
  .cta-note span{white-space:nowrap}
  .dl-card{padding:13px 8px;gap:5px}
  .dl-card b{font-size:12px}
  .dl-card span{font-size:9.5px;line-height:1.55}
  .bento{margin-top:32px}
  .sec-head{gap:20px}
}

/* ============================================================
   FX · 特效层（黑客 × 安全 · 白底）
   ============================================================ */

/* ---------- 英雄区：网格底纹 + 扫描光 ---------- */
.hero{overflow:hidden}
.hero::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(to right,rgba(205,76,83,.06) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(205,76,83,.06) 1px,transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(ellipse 85% 62% at 50% 0%,#000 25%,transparent 74%);
  mask-image:radial-gradient(ellipse 85% 62% at 50% 0%,#000 25%,transparent 74%);
}
.hero::after{
  content:"";position:absolute;left:0;right:0;top:0;height:24%;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(205,76,83,.055) 55%,transparent);
  animation:fx-sweep 8.5s var(--ease) infinite;
}
@keyframes fx-sweep{0%{transform:translateY(-30vh)}60%,100%{transform:translateY(120vh)}}
.hero>.wrap{position:relative;z-index:1}

/* ---------- 产品窗口：横向扫描线 ---------- */
.mock::after{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;z-index:3;pointer-events:none;
  background:linear-gradient(90deg,transparent 6%,rgba(205,76,83,.4) 50%,transparent 94%);
  animation:fx-mock-scan 6s linear infinite;
}
@keyframes fx-mock-scan{
  0%{top:0;opacity:0}
  10%{opacity:1}
  90%{opacity:1}
  100%{top:calc(100% - 2px);opacity:0}
}

/* ---------- 状态点：脉冲扩散环 ---------- */
.mock-bar-r .dot-live{position:relative}
.mock-bar-r .dot-live::after{
  content:"";position:absolute;inset:-3px;border-radius:50%;
  border:1px solid rgba(205,76,83,.5);
  animation:fx-ring 2.4s ease-out infinite;
}
@keyframes fx-ring{0%{transform:scale(.6);opacity:1}80%,100%{transform:scale(1.9);opacity:0}}

/* ---------- 解码文字 ---------- */
.fx-decode{
  margin:20px auto 0;max-width:52em;padding:0 12px;
  font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;color:var(--accent);
  text-transform:uppercase;white-space:nowrap;overflow:hidden;
}
.fx-decode.decoding::after{content:"▌";margin-left:3px;animation:fx-caret 1s steps(1) infinite}
@keyframes fx-caret{50%{opacity:0}}
@media (max-width:640px){.fx-decode{letter-spacing:.07em;font-size:10.5px}}

/* ---------- 威胁情报滚动条 ---------- */
.fx-ticker{
  display:flex;align-items:center;gap:14px;
  margin:26px auto 0;max-width:1120px;padding:10px 16px;
  border:1px solid var(--line);border-radius:8px;background:#fff;
}
.fx-ticker .t-label{
  flex:none;font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;
  color:var(--accent);background:var(--accent-wash);border-radius:3px;padding:3px 8px;
}
.fx-ticker .t-track{
  flex:1;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
}
.fx-ticker .t-move{
  display:flex;width:max-content;align-items:center;
  animation:fx-marquee 42s linear infinite;will-change:transform;
}
.fx-ticker:hover .t-move{animation-play-state:paused}
.fx-ticker .t-group{display:flex;align-items:center;gap:38px;padding-right:38px;white-space:nowrap}
.fx-ticker .t-group span{font-family:var(--mono);font-size:11px;color:var(--ink-3)}
.fx-ticker .t-group b{color:#E01017;font-weight:600}
.fx-ticker .t-group b.w{color:var(--amber)}
@keyframes fx-marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@media (max-width:640px){.fx-ticker .t-label{display:none}}

/* ---------- 滚动浮现 ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---------- 卡片悬浮 ---------- */
.auto-card,.pillar,.dl-card{
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s;
}
.auto-card:hover,.pillar:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 34px -14px rgba(205,76,83,.2);
  border-color:rgba(205,76,83,.32);
}
.dl-card:hover{transform:translateY(-3px);box-shadow:0 14px 34px -14px rgba(205,76,83,.18)}
.pill-row span{transition:color .2s,border-color .2s,background .2s}
.pill-row span:hover{color:var(--accent);border-color:rgba(205,76,83,.45);background:var(--accent-wash)}

/* ---------- 启动日志 ---------- */
.fx-boot{
  margin-top:34px;border:1px solid var(--line);border-radius:10px;
  background:#fff;overflow:hidden;text-align:left;
  box-shadow:0 1px 2px rgba(16,22,26,.04),0 20px 44px -30px rgba(16,22,26,.18);
}
.fx-boot .fb-bar{
  display:flex;align-items:center;justify-content:space-between;gap:1em;
  height:38px;padding:0 16px;background:#F5F8FA;border-bottom:1px solid #EDF1F5;
  font-family:var(--mono);font-size:10.5px;color:#4C4F6B;
}
.fx-boot .fb-bar b{font-weight:600;color:#1A1A1A}
.fx-boot .fb-replay{
  font-family:var(--mono);font-size:10px;color:var(--accent);
  border:1px solid #F1E3E5;border-radius:3px;padding:3px 8px;background:#fff;
  transition:background .2s,color .2s;
}
.fx-boot .fb-replay:hover{background:var(--accent-wash)}
.fx-boot .fb-body{padding:16px 20px;font-family:var(--mono);font-size:11.5px;line-height:2.05;color:var(--ink-2);min-height:158px}
.fx-boot .cl{display:block;opacity:0;transform:translateY(5px);transition:opacity .35s var(--ease),transform .35s var(--ease)}
.fx-boot .cl.on{opacity:1;transform:none}
.fx-boot .cl em{font-style:normal;color:var(--accent)}
.fx-boot .cl b{font-weight:600;color:#1A1A1A}
.fx-boot .cl .ok{color:#1A1A1A}
.fx-boot .cl .warn{color:var(--amber)}
@media (max-width:640px){.fx-boot .fb-body{font-size:10px;line-height:1.9;min-height:0}}

/* ---------- 数字滚动 ---------- */
.hero-meta b span,.metric b span{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

/* ============================================================
   FX2 · 配色升级层（翡翠 → 青碧 → 天青 · 白底）
   ============================================================ */

/* ---------- 渐变文字 ---------- */
.fx-grad{
  background:var(--grad);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

/* ---------- Hero 极光光斑 ---------- */
.fx-aurora{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.fx-aurora i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55}
.fx-aurora i:nth-child(1){
  width:480px;height:480px;left:5%;top:-170px;
  background:radial-gradient(circle,rgba(205,76,83,.22),transparent 65%);
  animation:fx-drift-a 22s ease-in-out infinite alternate;
}
.fx-aurora i:nth-child(2){
  width:560px;height:560px;right:1%;top:-90px;
  background:radial-gradient(circle,rgba(224,16,23,.15),transparent 65%);
  animation:fx-drift-b 26s ease-in-out infinite alternate;
}
.fx-aurora i:nth-child(3){
  width:430px;height:430px;left:38%;top:36%;
  background:radial-gradient(circle,rgba(224,16,23,.13),transparent 65%);
  animation:fx-drift-c 30s ease-in-out infinite alternate;
}
@keyframes fx-drift-a{to{transform:translate(64px,44px) scale(1.12)}}
@keyframes fx-drift-b{to{transform:translate(-72px,54px) scale(.94)}}
@keyframes fx-drift-c{to{transform:translate(44px,-52px) scale(1.08)}}

/* ---------- Hero 大标题关键词 + 数字渐变 ---------- */
.hero h1 .fx-grad{font-weight:inherit}
.hero-meta b>span{
  background:var(--grad);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

/* ---------- 按钮：渐变 + 流光扫过 ---------- */
.btn-solid{
  position:relative;overflow:hidden;
  background:linear-gradient(120deg,#D15B62,#A22027 55%,#E01017);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 10px 24px -14px rgba(224,16,23,.75);
}
.btn-solid:hover{
  background:linear-gradient(120deg,#D56E74,#CD545A 55%,#EF161B);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 16px 30px -14px rgba(224,16,23,.85);
}
.btn-solid::after{
  content:"";position:absolute;top:0;bottom:0;left:-80%;width:46%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);
  transform:skewX(-18deg);transition:left .55s var(--ease);
}
.btn-solid:hover::after{left:135%}

/* ---------- 滚动进度条：渐变 ---------- */
.scroll-line{background:var(--grad);opacity:.95}

/* ---------- 置顶导航：渐变发丝线 ---------- */
.site-header.is-stuck::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;
  background:var(--grad);opacity:.45;
}

/* ---------- 章节标签：渐变文字 ---------- */
.sec-label{
  background:var(--grad);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.sec-label::before{-webkit-text-fill-color:var(--ink-3)}
.sec-label .sq{background:var(--grad)}

/* ---------- 卡片：hover 顶部渐变发丝线 ---------- */
.auto-card,.pillar,.dl-card{position:relative;overflow:hidden}
.auto-card::before,.pillar::before,.dl-card::after{
  content:"";position:absolute;left:0;right:0;height:2px;
  background:var(--grad);opacity:0;transition:opacity .3s var(--ease);
}
.auto-card::before,.pillar::before{top:0}
.dl-card::after{bottom:0}
.auto-card:hover::before,.pillar:hover::before,.dl-card:hover::after{opacity:1}

/* ---------- CTA 横幅：渐变洗色 + 顶部渐变条 ---------- */
.cta-box{
  background:linear-gradient(135deg,#FAF7F7,#FAF7F7);
  border-color:#F1E3E5;
}
.cta-box::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad)}

/* ---------- 上手区：自上而下渐变洗色 ---------- */
.start{background:linear-gradient(180deg,#FFFFFF 0%,#F5F8FA 100%)}

/* ---------- 威胁情报条：标签渐变 ---------- */
.fx-ticker .t-label{
  background:linear-gradient(120deg,rgba(205,76,83,.16),rgba(224,16,23,.12));
  color:#E01017;
}

/* ---------- hero 下滑箭头：轻浮动 ---------- */
.hero-more svg{animation:fx-bob 2.6s ease-in-out infinite}
@keyframes fx-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}

/* ---------- 扫描线换成渐变青绿 ---------- */
.mock::after{background:linear-gradient(90deg,transparent 6%,rgba(224,16,23,.5) 50%,rgba(205,76,83,.4) 70%,transparent 94%)}

/* ---------- 分隔与洗色微调（全局一致性） ---------- */
.logo-grid>div,.mod,.read-card{transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s}
.logo-grid>div:hover,.mod:hover,.read-card:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 34px -14px rgba(224,16,23,.18);
  border-color:rgba(224,16,23,.3);
}

/* ---------- CTA 背景：缓慢流动 ---------- */
.cta-box{background-size:200% 200%;animation:fx-cta-flow 14s ease-in-out infinite alternate}
@keyframes fx-cta-flow{0%{background-position:0% 0%}100%{background-position:100% 100%}}

/* ---------- 用量数字：渐变文字 ---------- */
.metric b>span{
  background:var(--grad);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

/* ---------- 产品窗口：青绿投影 ---------- */
.mock{box-shadow:0 1px 2px rgba(16,22,26,.04),0 28px 60px -30px rgba(224,16,23,.3)}

/* ============================================================
   FX3 · 能力矩阵展开（五工作面 + 统一调度）
   ============================================================ */

/* bento 卡片内的规格列表（ac-list 复用，去掉自动推底） */
.card .ac-list{margin-top:2px}
.card .ac-list dt{flex:none}
.card .ac-list dd{text-align:right}

/* ---------- 统一调度块 ---------- */
.sched{
  position:relative;margin-top:56px;
  border:1px solid var(--line);border-radius:12px;background:#fff;
  padding:clamp(24px,3.4vw,42px);overflow:hidden;
}
.sched::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--grad);opacity:.75}
.sched-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px 22px;flex-wrap:wrap}
.sched-head .block-title{margin-top:0}
.sched-head p{max-width:60ch;font-size:13px;line-height:1.9;color:var(--ink-2)}
.sched-grid{
  display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(26px,4vw,52px);margin-top:30px;align-items:center;
}
.sched-fig svg{width:100%;height:auto;display:block}
.sched-fig .n{fill:#fff;stroke:#F1E3E5;stroke-width:1.2}
.sched-fig .n.c{fill:var(--accent-wash);stroke:var(--accent);stroke-width:1.4}
.sched-fig text{font-size:11px;fill:#4C4F6B;font-family:var(--sans)}
.sched-fig text.core{font-size:12px;font-weight:700;fill:#E01017}
.sched-fig .ln{stroke:#EEE7E6;stroke-width:1;stroke-dasharray:3 4}
.sched-fig .flow{stroke:var(--accent);stroke-width:1.1;fill:none;stroke-dasharray:10 190;animation:dash 3.6s linear infinite;opacity:.8}
.sched-list{margin:0;display:flex;flex-direction:column}
.sched-list div{
  display:grid;grid-template-columns:minmax(0,.36fr) minmax(0,1fr);
  gap:3px 14px;align-items:baseline;
  padding:12px 0;border-bottom:1px solid var(--line-2);
}
.sched-list div:last-child{border-bottom:0;padding-bottom:0}
.sched-list dt{font-size:13.5px;font-weight:700;color:var(--ink);display:flex;align-items:baseline;gap:8px}
.sched-list dt b{font-family:var(--mono);font-size:10px;font-weight:600;color:var(--accent);letter-spacing:.05em}
.sched-list dd{margin:0;font-size:12.6px;line-height:1.8;color:var(--ink-2)}
@media (max-width:900px){
  .sched-grid{grid-template-columns:1fr}
  .sched-list div{grid-template-columns:1fr}
  .sched-list dd{grid-column:1}
}

/* ============================================================
   FX4 · 排版统一层（节奏 / 圆角 / 层级）
   ============================================================ */

/* Hero 收尾留白（产品窗口移除后） */
.hero{padding-bottom:clamp(60px,6vw,88px)}
.hero h1{max-width:19em}
.hero-lead{margin-top:28px}

/* 卡片圆角与呼吸感统一 */
.card,.auto-card,.pillar,.dl-card{border-radius:12px}
.bento{gap:14px}
.auto-grid{gap:14px}
.pillar-grid{gap:14px}

/* 章节小标题升级：mono 微标签 → 渐变横线 + 大字 */
.block-title{
  display:flex;align-items:center;gap:12px;
  font-family:var(--sans);font-size:16.5px;font-weight:700;
  letter-spacing:-.01em;color:var(--ink);margin-bottom:16px;
}
.block-title::before{
  content:"";width:18px;height:2px;border-radius:1px;
  background:var(--grad);flex:none;
}

/* 章节标签（编号 + 名称）字号微调 */
.sec-label{font-size:12px}
.sec-title{letter-spacing:-.028em}
.sec-lead{line-height:1.95;color:#4C4F6B}

/* 规格行（ac-list）节奏统一 */
.ac-list div{padding:9px 0}
.sched-list div{padding:14px 0}

/* 工具胶囊统一等宽字体（工具名语义） */
.auto-card .pill-row span,.card .pill-row span{font-family:var(--mono);font-size:10.5px}

/* 页脚品牌行间距 */
.foot-brand{gap:14px}

/* ============================================================
   FX5 · WorkBuddy 风格适配（青绿单色 / 大留白 / 极轻阴影）
   参考 workbuddy.cn：#CD4C53 主色、近黑标题、蓝灰正文、
   #F7FAFC 浅灰分区、细边框、圆润控件、克制的动效强度
   ============================================================ */

/* ---------- 墨色层级 ---------- */
:root{
  --ink:#1A1A1A;
  --ink-2:#4C4F6B;
  --ink-3:#7A8194;
}

/* ---------- 留白节奏：更舒展的章节与首屏 ---------- */
.section{padding:clamp(88px,8.4vw,132px) 0}
.hero{
  padding-top:calc(var(--nav-h) + clamp(84px,8.5vw,128px));
  padding-bottom:clamp(78px,7.5vw,116px);
}
.hero-lead{margin-top:30px;max-width:60ch}
.hero-meta{margin-top:52px}
.sec-title{margin-top:18px;font-size:clamp(1.8rem,3.2vw,2.6rem);font-weight:750;letter-spacing:-.032em;line-height:1.26}
.sec-lead{margin-top:20px;max-width:66ch;color:#565C74}
.sched{margin-top:64px}

/* ---------- 圆润控件 ---------- */
.btn{border-radius:10px;height:44px;padding:0 21px;font-size:14.5px}
.btn-sm{border-radius:8px;height:36px;font-size:13px}
.btn-solid{border-radius:10px}
.btn-ghost{border-radius:10px}
.card,.auto-card,.pillar,.dl-card,.sched,.fx-boot,.fx-ticker,.req,.callout{border-radius:14px}
.pill-row span{border-radius:999px;padding:4px 11px;background:#fff}
.pill-row span:hover{background:var(--accent-wash)}
.tab,.ver-chip,.ac-flag{border-radius:8px}

/* ---------- 极轻阴影：白卡在浅灰分区上轻轻浮起 ---------- */
.card,.auto-card,.pillar,.sched,.fx-boot,.fx-ticker{
  box-shadow:0 1px 2px rgba(26,32,44,.025),0 8px 24px -20px rgba(26,32,44,.14);
}
.card:hover,.auto-card:hover,.pillar:hover,.dl-card:hover,.logo-grid>div:hover,.mod:hover,.read-card:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px -18px rgba(205,76,83,.32);
  border-color:rgba(205,76,83,.42);
}
.card:hover{background:#fff}
.dl-card:hover{box-shadow:0 14px 30px -18px rgba(205,76,83,.3)}

/* ---------- 动效强度收敛：更干净，但仍保留黑客气质 ---------- */
.fx-aurora i{opacity:.3}
.hero::before{opacity:.68}
.hero::after{background:linear-gradient(180deg,transparent,rgba(205,76,83,.035) 55%,transparent)}
.mock{box-shadow:0 1px 2px rgba(26,32,44,.035),0 24px 52px -34px rgba(205,76,83,.28)}
.mock::after{opacity:.65}
.site-header.is-stuck::after{opacity:.3}
.cta-box::before{opacity:.7}

/* ---------- 主按钮：青绿单色系 + 柔和投影（保留流光） ---------- */
.btn-solid{
  background:linear-gradient(135deg,#D15B62,#A22027 52%,#D3292F);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 10px 22px -13px rgba(205,76,83,.62);
}
.btn-solid:hover{
  background:linear-gradient(135deg,#D46C71,#CD545A 52%,#D73138);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.26),0 16px 30px -14px rgba(205,76,83,.7);
}

/* ---------- 标题字重与渐变文字收敛 ---------- */
.hero h1{font-weight:750;letter-spacing:-.032em;line-height:1.18}
.sec-label{letter-spacing:.02em}
.block-title{font-size:17px}

/* ---------- 顶部导航：半透明毛玻璃 ---------- */
.site-header{background:rgba(255,255,255,.88);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px)}

@media (max-width:900px){
  .section{padding:76px 0}
  .hero{padding-top:calc(var(--nav-h) + 68px);padding-bottom:76px}
}
@media (max-width:640px){
  .section{padding:64px 0}
  .hero{padding-top:calc(var(--nav-h) + 52px);padding-bottom:64px}
}

/* ============================================================
   FX6 · 布局重排（统一宽度 / 收紧节奏 / 合并证据带）
   ============================================================ */

/* ---------- 纵向节奏：把过大的留白收回来 ---------- */
.section{padding:clamp(60px,5.8vw,92px) 0}
.hero{
  padding-top:calc(var(--nav-h) + clamp(56px,6vw,88px));
  padding-bottom:clamp(56px,6vw,88px);
}
.hero h1{margin-top:18px}
.hero-lead{margin-top:22px}
.dl-hero{margin-top:26px}
.dl-note{margin-top:12px}
.sec-title{margin-top:14px}
.sec-lead{margin-top:16px}
.bento{margin-top:36px}
.auto-grid,.pillar-grid{margin-top:28px}
.start-grid{margin-top:36px}
.sched{margin-top:44px}
.fx-boot{margin-top:26px}
.block-title{margin-bottom:14px}

/* ---------- 首屏宽度统一：消除「上窄下宽」的漏斗感 ---------- */
.hero-inner{max-width:1080px;margin:0 auto}
.dl-grid{max-width:760px;gap:12px}
.dl-card{padding:20px 14px 18px}
.hero-proof{
  width:100%;margin:34px 0 0;
  border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;
  box-shadow:0 1px 2px rgba(26,32,44,.025),0 10px 28px -22px rgba(26,32,44,.16);
}
.hero-proof .hero-meta{margin:0;border:0;border-bottom:1px solid var(--line-2)}
.hero-proof .hero-meta div{padding:18px 14px 16px}
.hero-proof .fx-ticker{
  margin:0;max-width:none;border:0;border-radius:0;
  padding:11px 16px;background:var(--wash);
}
.hero-more{display:flex;width:max-content;margin:20px auto 0}

/* ---------- 渐变数字：inline-block 保证 background-clip 生效 ---------- */
.hero-meta b>span,.metric b>span{display:inline-block}

/* ---------- 章节标题区：右栏收窄成侧注，消除大片空白 ---------- */
.sec-head{grid-template-columns:minmax(0,1fr) 268px;gap:clamp(24px,3vw,44px)}
.sec-head .side{align-items:flex-end;text-align:right;padding:0 0 4px 18px;border-left:1px solid var(--line)}
.side-note{max-width:34ch}

@media (max-width:900px){
  .sec-head{grid-template-columns:1fr}
  .sec-head .side{display:none}
  .dl-grid{max-width:100%}
}
@media (max-width:640px){
  .section{padding:52px 0}
  .hero{padding-top:calc(var(--nav-h) + 44px);padding-bottom:52px}
  .hero-proof{margin-top:26px}
  .hero-proof .hero-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-proof .hero-meta div:nth-child(2){border-right:0}
  .hero-proof .hero-meta div:nth-child(-n+2){border-bottom:1px solid var(--line-2)}
  .dl-card{padding:16px 8px 14px}
}

/* ---------- 微调：进一步压缩章节间叠加留白、强化证据带数字 ---------- */
.section{padding:clamp(54px,5.2vw,82px) 0}
.hero{padding-bottom:clamp(48px,5vw,76px)}
.hero-proof .hero-meta b{font-size:24px;letter-spacing:-.03em}
.hero-proof .hero-meta div{padding:16px 14px 14px}
.hero-lead{max-width:64ch}
@media (max-width:640px){
  .section{padding:48px 0}
  .hero{padding-bottom:48px}
  .hero-proof .hero-meta b{font-size:20px}
}

/* ---------- 窄屏兜底：防止长文本 / 滚动轨道撑开布局 ---------- */
.hero-inner,.hero-proof,.fx-ticker,.dl-hero,.dl-grid,.hero-meta{min-width:0}
.fx-ticker .t-track{min-width:0}
.fx-decode{width:100%;max-width:52em}
@media (max-width:640px){
  .fx-decode{max-width:100%}
  .eyebrow{flex-wrap:wrap;justify-content:center;row-gap:4px}
}

/* ============================================================
   FX7 · 背景层统一（修正色块压在内容之上）
   ============================================================ */

/* 1) 所有装饰性背景层明确压到内容之下 */
.hero::before,.hero::after,.fx-aurora{z-index:0}
.hero>.wrap{z-index:1}
.section>.wrap,.trust>.wrap,.start>.wrap,.read-band>.wrap,.cta>.wrap,
.hero-proof,.sec-head,.deploy-wrap,.sched-grid{position:relative;z-index:1}
.cta-box{overflow:hidden}
.cta-box::before,.cta-box::after{z-index:0}
.cta-box>*{position:relative;z-index:1}
.sched::before,.auto-card::before,.pillar::before,.dl-card::after{z-index:0}
.sec-title,.sec-lead,.side-note,.d-item,.s-step,.faq-item,
.req-list,.ac-list,.sched-list{position:relative;z-index:1}

/* 2) 卡片上的双层渐变统一为纯色，去掉「贴上去的色块」 */
.card,.auto-card,.pillar,.req,.callout,.dash-head,.dl-card,.btn-ghost,
.pill-row span,.layer-items span,.arch-proto span,.tab,.p-chip,
.pillar .p-ico,.p-item .pi,.mod .mtag{
  background:#fff;
  background-image:none;
}
.hero-proof .hero-meta{background:none;background-image:none}
.hero-proof .fx-ticker{background:var(--wash);background-image:none}

/* 3) 章节背景收归 CSS 一处定义，不再由内联样式覆盖 */
.section{background-color:var(--page)}
.caps,.usage,.faq-sec,.arch,.read-band,#automation:not([class*="nx-"]),#craft:not([class*="nx-"]){background-color:var(--wash)}
.start{background-image:linear-gradient(180deg,#FFFFFF 0%,#F7FAFC 100%)}

/* ============================================================
   FX8 · 悬浮胶囊导航
   形态移植自 doubao.com/download/desktop：
   居中胶囊 / 细描边 / 毛玻璃 / 紧凑小字菜单 / 圆角徽标 /
   右端胶囊按钮 / 滚动收缩。配色沿用本站青绿浅色主题。
   ============================================================ */

/* 1) 外层只负责悬浮定位，不再铺满整条白底 */
.site-header{
  height:auto;padding:16px 24px 0;
  display:flex;align-items:flex-start;justify-content:center;
  background:transparent;background-image:none;border-bottom:0;box-shadow:none;
  -webkit-backdrop-filter:none;backdrop-filter:none;
  transition:padding .32s var(--ease);
}
.site-header.is-stuck{
  height:auto;padding:10px 24px 0;
  background:transparent;background-image:none;border-bottom:0;box-shadow:none;
}
.site-header.is-stuck::after{display:none}   /* 旧的整宽渐变发丝线停用 */

/* 2) 胶囊本体 */
.header-inner{
  position:relative;overflow:hidden;
  width:max-content;max-width:min(1180px,100%);margin:0 auto;min-width:0;
  height:60px;padding:0 10px 0 16px;gap:28px;
  display:flex;align-items:center;justify-content:space-between;
  border:1px solid rgba(203,213,225,.9);border-radius:999px;
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:saturate(180%) blur(18px);
  backdrop-filter:saturate(180%) blur(18px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.92),
             0 2px 6px rgba(16,24,40,.035),
             0 20px 44px -28px rgba(16,24,40,.42);
  transition:height .32s var(--ease),background .32s,box-shadow .32s,border-color .32s;
}
.header-inner:hover{border-color:rgba(205,76,83,.38)}
.site-header.is-stuck .header-inner{
  height:54px;
  background:rgba(255,255,255,.94);
  border-color:rgba(203,213,225,.95);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),
             0 4px 10px rgba(16,24,40,.05),
             0 24px 50px -26px rgba(16,24,40,.5);
}

/* 3) 胶囊内底部的阅读进度发丝线 */
.scroll-line{
  position:absolute;left:10%;bottom:3px;height:2px;width:80%;
  transform-origin:0 50%;border-radius:999px;
  background:linear-gradient(90deg,#A22027,#F02C31 55%,#E8AEB0);
  opacity:.72;z-index:2;
}

/* 4) 品牌：圆角方形徽标块（对应豆包的白色圆角头像块） */
.brand{gap:9px;flex:none}
.brand .mark{
  width:34px;height:34px;padding:5px;
  border:1px solid #F1E3E5;border-radius:10px;background:var(--accent-wash);
  box-shadow:0 1px 3px rgba(205,76,83,.1);
}
.brand-txt b{font-size:14.5px;letter-spacing:-.01em}
.brand-txt span{font-size:9px;letter-spacing:.1em}

/* 5) 菜单：紧凑小字 + hover/激活小胶囊 */
.nav-links{gap:2px;min-width:0}
.nav-links a{
  height:34px;padding:0 11px;font-size:13px;border-radius:999px;
  color:var(--ink-2);white-space:nowrap;transition:color .2s,background .2s;
}
.nav-links a:hover{color:var(--ink);background:var(--wash)}
.nav-links a.active,
.nav-links a[aria-current="true"],
.nav-links a.on-page{
  color:var(--accent-2);font-weight:600;background:var(--accent-wash);
}
.nav-links a.active::after{display:none}   /* 旧的下划线停用 */
/* 首项前的圆形小标记，呼应豆包导航的图标项 */
.nav-links a:first-child::before{
  content:"";width:11px;height:11px;margin-right:6px;flex:none;
  border-radius:50%;background:currentColor;
  box-shadow:inset 0 0 0 2.5px #fff,0 0 0 1px currentColor;
}

/* 6) 右侧：版本 chip 与下载按钮统一为胶囊 */
.header-actions{gap:9px;flex:none}
.ver-chip{border-radius:999px;height:26px;padding:0 10px;background:#fff}
.ver-chip i{width:5px;height:5px}
.header-actions .btn-solid{
  height:36px;padding:0 16px;font-size:13px;border-radius:999px;
}
.burger{border-radius:999px;width:38px;height:38px;background:#fff}

/* 7) 中等宽度：收紧间距，保证 900–1120px 不挤压 */
@media (max-width:1120px){
  .site-header{padding:14px 16px 0}
  .site-header.is-stuck{padding:9px 16px 0}
  .header-inner{gap:10px;padding:0 8px 0 12px}
  .nav-links{gap:0}
  .nav-links a{padding:0 7px;font-size:12.5px}
  .brand-txt span{display:none}
  .ver-chip{display:none}
  .header-actions{gap:8px}
  .header-actions .btn-solid{padding:0 12px;font-size:12.5px}
}

/* 8) 移动端：胶囊收窄，菜单改为悬浮卡片 */
@media (max-width:900px){
  .site-header{padding:12px 14px 0}
  .site-header.is-stuck{padding:8px 14px 0}
  .header-inner{width:100%;height:56px;padding:0 8px 0 14px}
  .site-header.is-stuck .header-inner{height:52px}
  .brand .mark{width:32px;height:32px;padding:5px}
  .nav-links{display:none}
  .header-actions .btn-solid{display:inline-flex;height:36px;padding:0 14px;font-size:12.5px}
  .burger{display:inline-flex}
  .mobile-menu{
    top:76px;left:14px;right:14px;
    border:1px solid var(--line);border-radius:18px;
    box-shadow:0 24px 50px -26px rgba(16,24,40,.45);
    padding:12px 20px calc(20px + env(safe-area-inset-bottom));
    max-height:calc(100dvh - 88px);
  }
  .site-header.is-stuck ~ .mobile-menu{top:64px;max-height:calc(100dvh - 76px)}
}
@media (max-width:420px){
  .brand-txt span{display:none}
  .header-actions .btn-solid{padding:0 11px}
}

/* 9) 移动菜单内的键盘焦点：贴合圆角卡片，避免生硬的外扩方框 */
.mobile-menu a:focus-visible{
  outline:2px solid rgba(205,76,83,.5);outline-offset:-2px;border-radius:10px;
}

/* ============================================================
   FX9 · 编辑式克制设计（去模板感 / 提高质感）
   原则：做减法。降饱和、去渐变、去装饰动效、去拟物卡片；
   改为黑白灰 + 少量深墨绿、左对齐编辑式排版、细线网格、
   不对称首屏、自动章节编号、大留白。
   ============================================================ */

/* ---------- 1. 色板：亮青绿 → 深墨绿，渐变一律退化为纯色 ---------- */
:root{
  --page:#FFFFFF;
  --wash:#FAFBFC;
  --wash-2:#F3F5F7;
  --ink:#121417;
  --ink-2:#525A64;
  --ink-3:#8B929B;
  --line:#E4E7EA;
  --line-2:#EFF1F3;
  --accent:#A22027;
  --accent-2:#89181E;
  --accent-wash:#FAF7F8;
  --amber:#8A6416;
  --grad-a:#A22027;--grad-b:#A22027;--grad-c:#A22027;
  --grad:#A22027;
}
body{font-size:15.5px;letter-spacing:.002em;background:#fff}
::selection{background:#EEE5E6;color:#121417}

/* ---------- 2. 移除装饰特效（保留内容与交互，只去掉"炫技"） ---------- */
.fx-aurora,.fx-decode,.fx-ticker,.fx-boot .fb-replay,.ai-caret,.conn i,
.hero::before,.hero::after,.mock::after,.card::after,.btn-solid::after,
.auto-card::before,.pillar::before,.dl-card::after{display:none !important}
.agent-map .flow,.sched-fig .flow{animation:none;stroke-dasharray:none;stroke:var(--line);opacity:.9}
.mock-bar-r .dot-live::after{display:none}
.hero-more svg{animation:none}
.cta-box{animation:none;background:#FAFBFC !important;background-image:none !important}
.fx-boot .cl,.console-body .cl,.step{opacity:1 !important;transform:none !important;animation:none !important}
.reveal{opacity:1 !important;transform:none !important}

/* ---------- 3. 材质统一：去渐变 / 去阴影 / 去圆角 / 去上浮 ---------- */
main .card,main .auto-card,main .pillar,main .req,main .callout,main .dash-head,
main .dl-card,main .prog-card,main .sched,main .fx-boot,main .brand-tile,
main .read-card,main .mod,main .p-item,main .tab,main .p-chip,
main .pill-row span,main .layer-items span,main .arch-proto span,
main .ac-flag,main .try-chip,main .mini-term,main .mock,main .hero-proof,
main .cta-box,main .pillar .p-ico,main .p-item .pi,main .mod .mtag,
main .faq-item,main .out-item,main .d-item,main .bar{
  background-image:none !important;box-shadow:none !important;text-shadow:none !important;
}
main .card,main .auto-card,main .pillar,main .req,main .callout,main .dash-head,
main .prog-card,main .sched,main .fx-boot,main .brand-tile,main .read-card,
main .mod,main .p-item,main .faq-item,main .mini-term,main .hero-proof,
main .cta-box,main .mock,main .tab,main .p-chip,main .pill-row span,
main .layer-items span,main .arch-proto span,main .ac-flag,main .try-chip{
  border-radius:2px !important;
}
main .card:hover,main .auto-card:hover,main .pillar:hover,main .dl-card:hover,
main .brand-tile:hover,main .mod:hover,main .read-card:hover,main .prog-card:hover,
main .btn:hover,main .pager a:hover,main .try-chip:hover,main .pill-row span:hover{
  transform:none !important;box-shadow:none !important;border-color:#BFC7CD !important;
}
main .dl-card:hover .dl-ico,main .brand-tile:hover .brand-logo img{transform:none !important}

/* ---------- 4. 章节：白底 + 细线分隔 + 编辑式自动编号 ---------- */
main{counter-reset:sec}
/* 章节编号由既有 .sec-label 自身递增，此处不再重复 +1 */
.section{padding:clamp(84px,7vw,112px) 0}
.section,.caps,.usage,.faq-sec,.arch,.read-band,
#automation:not([class*="nx-"]),#craft:not([class*="nx-"]),
.models,.prog,.scenes,.trust,.start,.cta{
  background:#fff !important;background-image:none !important;
  border-top:1px solid var(--line);
}
.sec-label{
  display:flex;align-items:center;gap:0;
  font-family:var(--mono);font-size:10.5px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;
  background:none !important;background-image:none !important;
  -webkit-background-clip:border-box !important;background-clip:border-box !important;
  -webkit-text-fill-color:var(--ink-3) !important;color:var(--ink-3) !important;
}
.sec-label .sq{display:none !important}
.sec-label::before{
  content:counter(sec,decimal-leading-zero)" — " !important;
  margin-right:12px;font-weight:600;letter-spacing:.1em;
  background:none !important;
  -webkit-text-fill-color:var(--accent) !important;color:var(--accent) !important;
}
.sec-title{
  margin-top:20px;font-size:clamp(1.95rem,3.3vw,2.9rem);
  font-weight:600;letter-spacing:-.042em;line-height:1.2;
  color:var(--ink);text-align:left;
}
.sec-title .dim{color:var(--ink-3);font-weight:400}
.sec-lead{margin-top:18px;max-width:56ch;font-size:15px;line-height:1.85;color:var(--ink-2)}
.sec-head{grid-template-columns:minmax(0,1fr) 290px;gap:64px;align-items:start}
.sec-head .side{
  align-items:flex-start;text-align:left;
  border-left:1px solid var(--line);padding:6px 0 4px 24px;
}
.side-note{max-width:32ch;font-size:12.5px;line-height:1.8;color:var(--ink-3)}
h1,h2,h3,.block-title{letter-spacing:-.035em}
.card h3,.auto-card h3,.pillar h3,.read-card b,.mod b{font-weight:600;letter-spacing:-.02em}

/* ---------- 5. 首屏：不对称两栏（左主张 / 右下载清单 / 底部数据） ---------- */
.hero{
  text-align:left;background:#fff !important;background-image:none !important;
  padding-top:calc(var(--nav-h) + 92px);padding-bottom:0;border-bottom:1px solid var(--line);
}
.hero-inner{
  max-width:none !important;
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  column-gap:clamp(32px,5vw,80px);row-gap:0;align-items:start;
  padding-bottom:44px;
}
.eyebrow{
  grid-column:1/8;grid-row:1;
  display:flex !important;align-items:center;gap:12px;justify-content:flex-start;
  background:none !important;border:0 !important;border-radius:0 !important;
  padding:0 !important;box-shadow:none !important;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;
  color:var(--ink-3);text-transform:uppercase;
}
.eyebrow i{background:var(--line) !important;width:1px;height:10px}
.hero h1{
  grid-column:1/8;grid-row:2;
  margin:30px 0 0;max-width:none;text-align:left;
  font-size:clamp(2.2rem,4.4vw,4rem);font-weight:600;
  letter-spacing:-.05em;line-height:1.14;text-wrap:normal;
}
.hero h1 .fx-grad{
  background:none !important;background-image:none !important;
  -webkit-background-clip:border-box !important;background-clip:border-box !important;
  -webkit-text-fill-color:currentColor !important;color:inherit !important;
  text-decoration:underline;text-decoration-color:var(--accent);
  text-decoration-thickness:2px;text-underline-offset:9px;
}
.hero-lead{
  grid-column:1/8;grid-row:3;
  margin:26px 0 0;max-width:52ch;
  font-size:15.5px;line-height:1.88;color:var(--ink-2);
}
.hero-more{
  grid-column:1/8;grid-row:4;
  display:inline-flex !important;align-items:center;gap:8px;
  width:max-content !important;margin:30px 0 0 !important;
  font-family:var(--mono);font-size:11px;letter-spacing:.08em;
  color:var(--accent);border-bottom:1px solid var(--accent);padding-bottom:5px;
}
.hero-more svg{width:13px;height:13px}
.dl-hero{
  grid-column:8/13;grid-row:1/5;
  margin:0 !important;align-self:start;padding-top:2px;
}
.dl-hero::before{
  content:"GET THE DESKTOP APP";display:block;
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--ink-3);
  padding-bottom:14px;border-bottom:1px solid var(--line);
}
.dl-grid{display:grid;grid-template-columns:1fr;gap:0;max-width:none;margin:0}
.dl-card{
  display:grid !important;
  grid-template-columns:34px minmax(0,1fr) 16px;
  grid-template-rows:auto auto;column-gap:14px;row-gap:2px;
  align-items:center;
  padding:17px 2px !important;
  border:0 !important;border-bottom:1px solid var(--line) !important;
  border-radius:0 !important;background:none !important;
}
.dl-tag{display:none !important}
.dl-ico{grid-column:1;grid-row:1/3;height:auto;margin:0;justify-content:flex-start}
.dl-ico svg,.dl-ico img{width:26px;height:26px}
.dl-card b{grid-column:2;grid-row:1;font-size:14.5px;font-weight:600;letter-spacing:-.02em}
.dl-card>span{grid-column:2;grid-row:2;margin:0;text-align:left;font-size:11.5px;color:var(--ink-3)}
.dl-arrow{grid-column:3;grid-row:1/3;width:15px;height:15px;color:var(--ink-3)}
.dl-card:hover{border-color:var(--ink-3) !important}
.dl-note{margin:16px 0 0;font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--ink-3);text-align:left}
.hero-proof{
  grid-column:1/13;grid-row:5;
  margin:64px 0 0 !important;
  border:0 !important;border-top:1px solid var(--line) !important;
  border-radius:0 !important;background:none !important;overflow:visible !important;
}
.hero-proof .hero-meta{border:0 !important;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.hero-proof .hero-meta div{padding:24px 0 20px;border:0 !important}
.hero-proof .hero-meta div+div{border-left:1px solid var(--line) !important;padding-left:28px}
.hero-proof .hero-meta b{
  display:block;font-family:var(--sans);font-size:clamp(28px,3vw,38px);
  font-weight:500;letter-spacing:-.055em;line-height:1.1;color:var(--ink);
}
.hero-proof .hero-meta b em{font-size:.6em;color:var(--ink-3)}
.hero-proof .hero-meta span{margin-top:8px;font-size:11.5px;color:var(--ink-3)}
.hero-meta b>span,.metric b>span{
  background:none !important;background-image:none !important;
  -webkit-background-clip:border-box !important;background-clip:border-box !important;
  -webkit-text-fill-color:currentColor !important;color:inherit !important;
  display:inline-block;
}

/* ---------- 6. 卡片：从漂浮圆角块改为细线编辑网格 ---------- */
.bento,.auto-grid,.pillar-grid,.read-grid,.start-grid{
  gap:0 !important;
  border-top:1px solid var(--line);border-left:1px solid var(--line);
}
main .card,main .auto-card,main .pillar,main .read-card{
  border:0 !important;
  border-right:1px solid var(--line) !important;
  border-bottom:1px solid var(--line) !important;
  background:#fff !important;padding:28px 26px !important;
}
main .callout{
  border:1px solid var(--line) !important;border-left:2px solid var(--accent) !important;
  background:#fff !important;padding:20px 24px;border-radius:0 !important;
}
main .mini-term{background:#FAFBFC !important;border:1px solid var(--line-2) !important}
main .card-ico,main .pillar .p-ico,main .p-item .pi,main .mod .mtag{
  background:#fff !important;border:1px solid var(--line) !important;color:var(--accent) !important;
}
main .tab.on{background:#FAF7F8 !important;border-color:var(--accent) !important;color:var(--accent) !important}

/* ---------- 7. 模型墙：灰度 + 细线表格 ---------- */
.logo-grid{
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:0 !important;margin-top:40px;
  border-top:1px solid var(--line);border-left:1px solid var(--line);
}
main .brand-tile{
  flex-direction:row;justify-content:flex-start;gap:12px;
  padding:18px 16px !important;text-align:left;
  border:0 !important;border-right:1px solid var(--line) !important;
  border-bottom:1px solid var(--line) !important;
  border-radius:0 !important;background:#fff !important;
}
.brand-logo{width:26px;height:26px}
.brand-logo img{width:22px;height:22px;filter:grayscale(1);opacity:.55;transition:opacity .2s,filter .2s}
main .brand-tile:hover .brand-logo img{filter:none;opacity:1;transform:none !important}
.brand-tile b{font-size:12.5px;font-weight:500}
.brand-tile span{font-size:10.5px}
main .p-chip{border-radius:2px !important;background:#fff !important}

/* ---------- 8. 按钮 / 导航细节：保留胶囊形态，只收敛颜色 ---------- */
main .btn-solid,.mobile-menu .btn-solid{
  background:var(--accent) !important;background-image:none !important;
  border-radius:3px !important;box-shadow:none !important;color:#fff !important;
  overflow:visible;
}
main .btn-solid:hover,.mobile-menu .btn-solid:hover{
  background:var(--accent-2) !important;transform:none !important;box-shadow:none !important;
}
main .btn-ghost,.mobile-menu .btn-ghost{background:#fff !important;border-radius:3px !important;box-shadow:none !important}
.header-actions .btn-solid{
  background:var(--accent) !important;background-image:none !important;
  box-shadow:none !important;
}
.header-actions .btn-solid:hover{background:var(--accent-2) !important;transform:none !important;box-shadow:none !important}
.brand .mark{border-color:var(--line) !important;background:#FAFBFC !important}
.scroll-line{background:linear-gradient(90deg,#A22027,#A63F44) !important;opacity:.9}
:focus-visible{outline-color:var(--accent) !important}

/* ---------- 9. 响应式 ---------- */
@media (max-width:1120px){
  .logo-grid{grid-template-columns:repeat(4,minmax(0,1fr)) !important}
  .sec-head{grid-template-columns:minmax(0,1fr) 240px;gap:36px}
}
@media (max-width:900px){
  .hero{padding-top:calc(var(--nav-h) + 56px)}
  .hero-inner{grid-template-columns:1fr;row-gap:0}
  .hero-inner>*{grid-column:1/-1 !important;grid-row:auto !important}
  .hero h1{margin-top:24px}
  .hero-lead{margin-top:20px;max-width:none}
  .dl-hero{margin-top:40px !important}
  .hero-proof{margin-top:40px !important}
  .sec-head{grid-template-columns:1fr;gap:20px}
  .sec-head .side{display:none}
  .logo-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
}
@media (max-width:640px){
  .section{padding:64px 0}
  .hero h1{font-size:clamp(2rem,8.4vw,2.6rem)}
  .hero-proof .hero-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-proof .hero-meta div{padding:16px 0}
  .hero-proof .hero-meta div+div{border-left:0 !important;padding-left:0}
  .hero-proof .hero-meta div:nth-child(2n){padding-left:20px;border-left:1px solid var(--line) !important}
  .logo-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .bento,.auto-grid,.pillar-grid,.read-grid,.start-grid{border-left:0}
  main .card,main .auto-card,main .pillar,main .read-card{border-right:0 !important}
  .sec-title{font-size:clamp(1.7rem,7vw,2.1rem)}
}

/* ---------- FX9 补丁：细节校准 + 深色 CTA 断点 ---------- */
.eyebrow::before{display:none !important}          /* 去掉带光晕的绿点 */
.hero-more{
  font-family:var(--sans) !important;font-size:12.5px !important;
  letter-spacing:.02em !important;color:var(--accent) !important;
}
.hero-proof .hero-meta b{font-size:clamp(34px,3.6vw,48px) !important;font-weight:500 !important}
.hero-proof .hero-meta b>span{font-size:inherit !important}

/* 结尾深色断点：打破全白节奏，形成视觉锚点 */
.cta{
  background:#121417 !important;background-image:none !important;
  border-top:0 !important;padding:0 !important;
}
main .cta-box{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  column-gap:64px;align-items:start;
  background:#121417 !important;background-image:none !important;
  border:0 !important;border-radius:0 !important;
  padding:clamp(72px,8vw,112px) 0 !important;
  text-align:left;overflow:visible !important;
}
.cta-box::before,.cta-box::after{display:none !important}
.cta-box h2{
  grid-column:1;grid-row:1;margin:0;max-width:20ch;
  color:#F5F7F6 !important;font-size:clamp(2rem,3.6vw,3rem);
  font-weight:600;letter-spacing:-.045em;line-height:1.18;
}
.cta-box h2::before{
  content:"START / 开始使用";display:block;
  font-family:var(--mono);font-size:10.5px;font-weight:500;
  letter-spacing:.16em;color:#9F7B7E;margin-bottom:24px;
}
.cta-box p{
  grid-column:1;grid-row:2;margin:18px 0 0;max-width:52ch;
  color:#9AA1AA !important;font-size:14.5px;line-height:1.85;
}
.cta-actions{
  grid-column:2;grid-row:1/3;
  flex-direction:column;align-items:flex-start;justify-content:center;
  margin-top:0 !important;gap:12px !important;
}
.cta-box .btn-solid{
  background:#F5F7F6 !important;background-image:none !important;
  color:#121417 !important;border-color:#F5F7F6 !important;
}
.cta-box .btn-solid:hover{background:#EEE6E7 !important;color:#121417 !important}
.cta-box .btn-ghost{
  background:transparent !important;border-color:#3A4048 !important;
  color:#DDE2E0 !important;
}
.cta-box .btn-ghost:hover{background:transparent !important;border-color:#8A929B !important}
.cta-note{
  grid-column:1/-1;grid-row:3;
  justify-content:flex-start !important;margin-top:44px !important;
  color:#7C848E !important;
}
.cta-note i{background:#3A4048 !important}
@media (max-width:900px){
  main .cta-box{grid-template-columns:1fr;row-gap:0}
  .cta-box h2,.cta-box p,.cta-actions,.cta-note{grid-column:1/-1 !important;grid-row:auto !important}
  .cta-actions{flex-direction:row;flex-wrap:wrap;margin-top:30px !important}
  .cta-note{margin-top:28px !important}
}

/* ---------- 收尾：清掉内页页头与页脚残留的浅青绿洗色 ----------
   注意：新版首页（body.home）的区块全部带 nx- 前缀类名，
   这里必须排除它们，否则会把 .nx-dark / .nx-cta 的深色背景洗成白底，
   造成白字压在白底上「看不清内容」的问题。 */
main section:not(.cta):not([class*="nx-"]),.page-hero,.site-footer{
  background:#fff !important;background-image:none !important;
}

/* ---------- 终端示意光标：静态化，去掉闪烁与亮绿 ---------- */
.console-body::after{color:var(--ink-3) !important;animation:none !important;opacity:.55}

/* ============================================================
   FX10 · 排版质感升级（字体系统 / 视觉锚点 / 杂志式断点）
   不再调装饰，改的是「字体骨架、字号层级、留白尺度、
   首屏视觉主体」。字体为本地子集，见 assets/css/fonts.css。
   ============================================================ */

/* ---------- 1. 字体系统与纸感底色 ---------- */
:root{
  --sans:"Inter","Noto Sans SC","PingFang SC","Microsoft YaHei UI",sans-serif;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --mono:"IBM Plex Mono","Noto Sans SC",Consolas,monospace;
  --paper:#FCFCFB;
  --paper-2:#F6F7F5;
  --line:#E5E8E6;
  --line-2:#EFF1EF;
  --ink:#111417;
  --ink-2:#4C545C;
  --ink-3:#8A9298;
}
body{
  font-family:var(--sans);font-size:15px;line-height:1.85;
  letter-spacing:.004em;background:var(--paper);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
main section:not(.cta):not([class*="nx-"]),.page-hero,.site-footer{
  background:var(--paper) !important;background-image:none !important;
}
.models,.arch,.faq-sec,.read-band,.usage{
  background:var(--paper-2) !important;
}
main .card,main .auto-card,main .pillar,main .read-card,main .brand-tile,
main .faq-item,main .mod,main .p-item,main .prog-card,main .sched,
main .req,main .callout,main .mini-term,main .fx-boot,main .tab,
main .p-chip,main .pill-row span,main .layer-items span,main .arch-proto span{
  background:transparent !important;background-image:none !important;
}

/* ---------- 2. 字号层级：中文标题由粗黑改细体大字 ---------- */
.hero h1{
  font-weight:400 !important;
  font-size:clamp(2.7rem,5.15vw,4.85rem) !important;
  letter-spacing:-.062em !important;line-height:1.17 !important;
}
.hero h1 .fx-grad{
  text-decoration-thickness:1px !important;text-underline-offset:12px !important;
}
.sec-title{
  font-weight:400 !important;
  font-size:clamp(2.15rem,3.85vw,3.35rem) !important;
  letter-spacing:-.056em !important;line-height:1.27 !important;
}
.sec-title .dim{color:#9AA2A8 !important;font-weight:300 !important}
h1,h2,h3,.block-title{font-weight:500}
.card h3,.auto-card h3,.pillar h3,.read-card b,.mod b{
  font-weight:500 !important;font-size:1.06rem !important;letter-spacing:-.028em !important;
}
.brand-txt b{font-weight:600 !important;font-size:14px !important;letter-spacing:-.015em !important}
.hero-lead,.sec-lead,.cta-box p{
  line-height:1.92 !important;color:var(--ink-2) !important;
}
.hero-lead{max-width:49ch !important}
.sec-lead{max-width:57ch !important}
.sec-label,.eyebrow,.mf-kicker,.dl-note,.side-note,.hv-cap,.hv-out,
.hv-name,.hv-mode,.hero-visual figcaption,.mf-index{
  font-family:var(--mono) !important;
}
.hero-more{font-family:var(--sans) !important;font-weight:500 !important}
.btn-solid,.btn-ghost{font-weight:500 !important;letter-spacing:.005em !important}

/* ---------- 3. 首屏重排：左主张 / 右界面结构示意 / 底部数据 / 下载条 ---------- */
.hero{padding-top:calc(var(--nav-h) + 76px) !important}
.hero-inner{
  column-gap:clamp(44px,5.5vw,88px) !important;
  padding-bottom:0 !important;
}
.eyebrow{grid-column:1/13 !important;grid-row:1 !important}
.hero h1{grid-column:1/8 !important;grid-row:2 !important}
.hero-lead{grid-column:1/8 !important;grid-row:3 !important}
.hero-actions{
  grid-column:1/8;grid-row:4;
  display:flex;align-items:center;gap:28px;flex-wrap:wrap;
  margin:32px 0 0;
}
.hero-actions .hero-more{grid-column:auto;grid-row:auto;margin:0 !important}
.hero-primary{
  display:inline-flex;align-items:center;gap:12px;
  height:46px !important;padding:0 22px !important;
  font-size:14px !important;border-radius:2px !important;
}
.hero-primary svg{width:16px;height:16px}
.hero-visual{
  grid-column:8/13;grid-row:2/5;
  margin:0;align-self:start;
  border:1px solid var(--line);background:#fff;
  font-size:10px;color:var(--ink-3);
}
.hv-top{
  display:flex;align-items:center;gap:10px;height:34px;padding:0 12px;
  border-bottom:1px solid var(--line);
}
.hv-dots{display:flex;gap:4px}
.hv-dots i{width:5px;height:5px;border:1px solid #C9CFCC;border-radius:50%}
.hv-name{
  font-size:9px;letter-spacing:.12em;color:var(--ink-2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.hv-mode{
  margin-left:auto;flex:none;font-size:9px;letter-spacing:.06em;
  color:var(--accent);border:1px solid #E6DADB;padding:2px 6px;
}
.hv-body{display:grid;grid-template-columns:118px minmax(0,1fr);min-height:224px}
.hv-left{
  display:flex;flex-direction:column;gap:2px;
  padding:14px 10px;border-right:1px solid var(--line);
}
.hv-cap{
  font-size:8.5px;letter-spacing:.1em;color:#A6ADB2;
  text-transform:uppercase;margin-bottom:6px;
}
.hv-cap-2{margin-top:16px}
.hv-obj{
  font-family:var(--sans);font-size:10px;color:var(--ink-3);
  padding:3px 6px;line-height:1.4;
}
.hv-obj.on{color:var(--accent);background:#FAF7F8}
.hv-main{display:flex;flex-direction:column;min-width:0}
.hv-tabs{
  display:flex;flex-wrap:wrap;gap:2px 8px;
  padding:10px 12px;border-bottom:1px solid var(--line-2);
}
.hv-tabs b,.hv-tabs span{
  font-family:var(--sans);font-size:9px;font-weight:400;
  color:#A2A9AE;white-space:nowrap;
}
.hv-tabs b{color:var(--accent);font-weight:600}
.hv-stage{padding:16px 14px 14px;display:flex;flex-direction:column;gap:12px;flex:1}
.hv-kick{font-size:8.5px;letter-spacing:.08em;color:var(--accent);text-transform:uppercase}
.hv-lanes{display:flex;flex-wrap:wrap;gap:5px}
.hv-lanes i{
  font-family:var(--sans);font-style:normal;font-size:9.5px;
  color:var(--ink-2);border:1px solid var(--line);padding:4px 7px;
}
.hv-lanes i:first-child{border-color:#DFCDCF;color:var(--accent);background:#F5F9F7}
.hv-rule{height:1px;background:var(--line-2)}
.hv-lines{display:flex;flex-direction:column;gap:7px}
.hv-lines u{display:block;height:5px;background:#EFF1EF;text-decoration:none}
.hv-lines u:nth-child(1){width:82%}
.hv-lines u:nth-child(2){width:61%}
.hv-lines u:nth-child(3){width:71%}
.hv-out{margin-top:auto;font-size:8.5px;letter-spacing:.05em;color:#A6ADB2}
.hero-visual figcaption{
  border-top:1px solid var(--line);padding:8px 12px;
  font-size:8.5px;letter-spacing:.03em;color:#A6ADB2;
}

/* ---------- 4. 数据条：衬线大数字 + 上细线（去掉看板式竖线） ---------- */
.hero-proof{grid-column:1/13 !important;grid-row:5 !important;margin:64px 0 0 !important}
.hero-proof .hero-meta{border-top:1px solid var(--line) !important}
.hero-proof .hero-meta div{
  padding:22px 0 18px !important;border-left:0 !important;padding-left:0 !important;
}
.hero-proof .hero-meta div+div{border-left:0 !important;padding-left:0 !important}
.hero-proof .hero-meta b{
  font-family:var(--serif) !important;
  font-size:clamp(44px,4.7vw,66px) !important;
  font-weight:400 !important;letter-spacing:-.045em !important;
  line-height:1 !important;color:var(--ink) !important;
  font-variant-numeric:lining-nums tabular-nums;
}
.hero-proof .hero-meta b em{font-family:var(--serif);font-size:.5em;font-style:normal;color:var(--ink-3)}
.hero-proof .hero-meta span{
  font-family:var(--mono) !important;font-size:10px !important;
  letter-spacing:.06em;color:var(--ink-3) !important;margin-top:12px !important;
}

/* ---------- 5. 底部下载条：横排三端，细线分隔 ---------- */
.dl-hero{
  grid-column:1/13 !important;grid-row:6 !important;
  margin:0 !important;padding:28px 0 34px !important;
  border-top:1px solid var(--line);
}
.dl-hero::before{
  content:"GET THE DESKTOP APP / 三端客户端";
  font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;
  color:var(--ink-3);padding:0 0 10px;border:0;
}
.dl-grid{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:0 !important;max-width:none !important;margin:0 !important;
}
.dl-card{
  padding:14px 18px 14px 0 !important;
  border-bottom:0 !important;border-right:1px solid var(--line) !important;
}
.dl-grid .dl-card:nth-child(2),
.dl-grid .dl-card:nth-child(3){padding-left:22px !important}
.dl-grid .dl-card:nth-child(3){border-right:0 !important}
.dl-card b{font-weight:500 !important;letter-spacing:-.02em !important}
.dl-note{margin:4px 0 0 !important;font-size:9.5px !important;letter-spacing:.06em}

/* ---------- 6. 杂志式断点：深墨绿大字页 ---------- */
.manifesto{
  background:#A22027;color:#fff;
  border-top:1px solid #A22027;border-bottom:1px solid #A22027;
}
.mf-inner{position:relative;padding-top:clamp(76px,8vw,116px);padding-bottom:clamp(76px,8vw,116px)}
.mf-kicker{
  display:block;font-size:10px;letter-spacing:.18em;
  color:#D3AFB2;text-transform:uppercase;
}
.manifesto blockquote{
  margin:30px 0 0;max-width:18ch;
  font-size:clamp(2.9rem,6.2vw,5.6rem);font-weight:300;
  letter-spacing:-.065em;line-height:1.16;color:#FBFDFC;
}
.manifesto blockquote em{font-style:normal;color:#DDBEC1}
.manifesto p{
  margin:32px 0 0;max-width:54ch;
  font-size:15px;line-height:1.95;color:#E9D9DB;
}
.mf-index{
  position:absolute;right:0;bottom:clamp(76px,8vw,116px);
  font-family:var(--serif);font-size:clamp(64px,9vw,120px);
  line-height:1;color:rgba(255,255,255,.09);letter-spacing:-.04em;
  pointer-events:none;
}

/* ---------- 7. 导航精修：去圆点、降字重、磨砂半透明玻璃 ----------
   注意：这一节在 FX8 之后，是最终生效的胶囊定义。早先 FX8 的
   rgba(255,255,255,.82)+blur(18px) 会被本节覆盖，必须在这里给出
   半透明背景与 backdrop-filter，否则磨砂层会被实白底挡住看不见。 */
.header-inner{
  background:linear-gradient(135deg,
    rgba(255,255,255,.68) 0%,
    rgba(255,255,255,.44) 48%,
    rgba(252,236,238,.50) 100%) !important;
  border-color:rgba(255,255,255,.68) !important;
  -webkit-backdrop-filter:saturate(185%) blur(24px) brightness(1.015) !important;
  backdrop-filter:saturate(185%) blur(24px) brightness(1.015) !important;
  box-shadow:
    0 0 0 1px rgba(16,24,40,.075),
    inset 0 1px 0 rgba(255,255,255,.92),
    inset 0 0 0 1px rgba(255,255,255,.28),
    inset 0 -1px 0 rgba(162,32,39,.055),
    0 2px 6px rgba(16,24,40,.035),
    0 8px 20px -12px rgba(16,24,40,.16),
    0 20px 44px -28px rgba(16,24,40,.42) !important;
  transition:height .32s var(--ease),box-shadow .32s,border-color .32s,
             -webkit-backdrop-filter .32s,backdrop-filter .32s !important;
}
.header-inner:hover{border-color:rgba(162,32,39,.42) !important}
/* 滚动后略提高不透明度保证菜单可读，但仍保持玻璃感（不再回到 .96 实白） */
.site-header.is-stuck .header-inner{
  background:linear-gradient(135deg,
    rgba(255,255,255,.80) 0%,
    rgba(255,255,255,.62) 48%,
    rgba(252,236,238,.66) 100%) !important;
  border-color:rgba(255,255,255,.76) !important;
  box-shadow:
    0 0 0 1px rgba(16,24,40,.085),
    inset 0 1px 0 rgba(255,255,255,.96),
    inset 0 0 0 1px rgba(255,255,255,.32),
    0 4px 10px rgba(16,24,40,.05),
    0 10px 24px -12px rgba(16,24,40,.18),
    0 24px 50px -26px rgba(16,24,40,.5) !important;
}
/* 不支持 backdrop-filter 的浏览器退回接近实白，保证深色文字对比度 */
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .header-inner,
  .site-header.is-stuck .header-inner{background:rgba(255,255,255,.94) !important}
}
.nav-links a{font-weight:400 !important;letter-spacing:-.005em !important}
.nav-links a:first-child::before{display:none !important}
.nav-links a.active,.nav-links a[aria-current="true"],.nav-links a.on-page{
  font-weight:500 !important;
}
.brand .mark{border-color:var(--line) !important;background:#fff !important}
.ver-chip{background:#fff !important}

/* ---------- 8. 细线网格更轻、卡片 hover 更克制 ---------- */
.bento,.auto-grid,.pillar-grid,.read-grid,.start-grid,.logo-grid,
main .card,main .auto-card,main .pillar,main .read-card,main .brand-tile{
  border-color:var(--line) !important;
}
main .callout{border-color:var(--line) !important;border-left:2px solid var(--accent) !important}
main .card:hover,main .auto-card:hover,main .pillar:hover,main .read-card:hover{
  background:#F8F9F7 !important;border-color:var(--line) !important;
}
.cta{background:#111417 !important}

/* ---------- 9. 响应式 ---------- */
@media (max-width:1120px){
  .hero-visual .hv-body{grid-template-columns:96px minmax(0,1fr)}
  .hv-obj{font-size:9px}
  .mf-index{display:none}
}
@media (max-width:900px){
  .hero{padding-top:calc(var(--nav-h) + 48px) !important}
  .hero-inner{grid-template-columns:1fr !important;row-gap:0 !important}
  .hero-inner>*{grid-column:1/-1 !important;grid-row:auto !important}
  .hero h1{margin-top:26px !important}
  .hero-lead{max-width:none !important}
  .hero-actions{margin:26px 0 0}
  .hero-visual{margin-top:40px !important;max-width:520px}
  .hero-proof{margin-top:44px !important}
  .dl-hero{margin-top:0 !important}
  .dl-grid{grid-template-columns:1fr !important}
  .dl-card,.dl-grid .dl-card:nth-child(2),.dl-grid .dl-card:nth-child(3){
    padding:14px 0 !important;border-right:0 !important;
    border-bottom:1px solid var(--line) !important;
  }
  .dl-grid .dl-card:nth-child(3){border-bottom:0 !important}
  .mf-inner{padding-top:64px;padding-bottom:64px}
}
@media (max-width:640px){
  .hero h1{font-size:clamp(2.1rem,8.6vw,2.75rem) !important;letter-spacing:-.055em !important}
  .hero-visual .hv-body{grid-template-columns:1fr}
  .hv-left{display:none}
  .hero-proof .hero-meta{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .hero-proof .hero-meta div{padding:16px 0 !important}
  .hero-proof .hero-meta b{font-size:44px !important}
  .manifesto blockquote{font-size:clamp(2.3rem,10vw,3.2rem)}
  .sec-title{font-size:clamp(1.9rem,7.4vw,2.4rem) !important}
}

/* ============================================================
   FX10 补丁 · 精修（顺序 / 尺度 / 栏头 / 内页一致性）
   ============================================================ */
:root{--paper-2:#F1F3F0}

/* 1) 衬线大数字被旧渐变规则染灰 → 恢复近黑 */
.hero-proof .hero-meta b>span,
.metric b>span,.page-meta b>span{
  color:#111417 !important;-webkit-text-fill-color:#111417 !important;
  background:none !important;background-image:none !important;
  -webkit-background-clip:border-box !important;background-clip:border-box !important;
}

/* 2) 桌面：界面线框拉满右栏高度，与左栏底部齐平 */
@media (min-width:901px){
  .hero-visual{align-self:stretch !important;display:flex;flex-direction:column}
  .hv-body{flex:1}
  .hv-stage{gap:16px;flex:1}
  .hero-visual figcaption{margin-top:0}
}

/* 3) 移动端：改用 flex + order，彻底绕开 grid 隐式列导致的 194px 压缩 */
@media (max-width:900px){
  .hero-inner{
    display:flex !important;flex-direction:column !important;
    gap:0 !important;column-gap:0 !important;row-gap:0 !important;
  }
  .hero-inner>*{
    width:100% !important;max-width:100% !important;
    grid-column:auto !important;grid-row:auto !important;
  }
  .eyebrow{order:1}
  .fx-decode{order:2}
  .hero h1{order:3}
  .hero-lead{order:4}
  .hero-actions{order:5}
  .hero-visual{order:6}
  .hero-proof{order:7}
  .dl-hero{order:8}
  .hero-actions{margin:26px 0 0 !important}
  .hero-visual{margin-top:40px !important}
  .hero-proof{margin-top:44px !important}
  .dl-hero{margin-top:0 !important}
}
@media (max-width:640px){
  .eyebrow{flex-wrap:wrap;gap:5px 10px;font-size:9.5px !important}
  .eyebrow i{display:none}
}

/* 4) 三端图标灰度化，避免彩色图标破坏克制配色 */
.dl-ico svg,.dl-ico img{filter:grayscale(1);opacity:.6;transition:filter .2s,opacity .2s}
.dl-card:hover .dl-ico svg,.dl-card:hover .dl-ico img{filter:none;opacity:1}

/* 5) 章节栏头：大号衬线编号 + 小字标签，形成编辑式页眉 */
.sec-label{align-items:baseline !important;font-size:11px !important;letter-spacing:.14em !important}
.sec-label::before{
  content:counter(sec,decimal-leading-zero) !important;
  font-family:var(--serif) !important;
  font-size:32px !important;font-weight:400 !important;line-height:1 !important;
  letter-spacing:-.045em !important;
  color:var(--ink) !important;-webkit-text-fill-color:var(--ink) !important;
  margin-right:14px !important;
}
.sec-title{margin-top:22px !important}

/* 6) 内页一致性：细体大标题、衬线数字、清晰的章节编号 */
.page-hero h1{
  font-weight:400 !important;letter-spacing:-.055em !important;line-height:1.22 !important;
}
.page-hero h1 .thin{font-weight:300 !important;color:#9AA2A8 !important}
.page-meta b{
  font-family:var(--serif) !important;font-size:36px !important;
  font-weight:400 !important;letter-spacing:-.045em !important;line-height:1.1 !important;
}
.page-meta span{font-family:var(--mono) !important;font-size:10px !important;letter-spacing:.06em}
.metric b,.dash-head b{
  font-family:var(--serif) !important;font-weight:400 !important;
  font-size:21px !important;letter-spacing:-.035em !important;
}
.doc-sec h2{font-weight:500 !important;letter-spacing:-.035em !important}
.doc-sec h2 .num{
  font-family:var(--serif) !important;font-size:27px !important;
  font-weight:400 !important;letter-spacing:-.04em !important;
  color:var(--ink-3) !important;vertical-align:baseline !important;
  margin-right:12px !important;
}
.page-hero,.site-footer{background:var(--paper) !important}

/* ---------- 线框示意：执行轨迹与调度汇总，填满视觉留白 ---------- */
.hv-stage{justify-content:space-between;gap:0 !important}
.hv-lines{display:none}
.hv-trace{display:flex;flex-direction:column;gap:10px}
.hv-trace span{display:flex;align-items:center;gap:9px}
.hv-trace i{
  font-family:var(--mono);font-style:normal;font-size:8.5px;
  color:#B4BBB8;flex:none;letter-spacing:.04em;
}
.hv-trace u{
  display:block;height:4px;background:#EFF1EF;text-decoration:none;flex:1;
}
.hv-trace span:nth-child(1) u{max-width:76%}
.hv-trace span:nth-child(2) u{max-width:56%}
.hv-trace span:nth-child(3) u{max-width:68%}
.hv-trace em{
  font-family:var(--mono);font-style:normal;font-size:8.5px;
  color:var(--accent);flex:none;
}
.hv-summary{
  display:flex;align-items:center;gap:10px;
  border-top:1px solid var(--line-2);padding-top:12px;
}
.hv-summary b{
  font-family:var(--sans);font-size:9.5px;font-weight:500;color:var(--accent);
  border:1px solid #E6DADB;background:#F5F9F7;padding:3px 7px;flex:none;
}
.hv-summary span{font-family:var(--sans);font-size:9px;color:var(--ink-3)}
.hv-out{margin-top:0 !important}
.hero-visual{border-color:#D9DEDB !important}

/* ---------- 移动端数字条：去掉旧层残留的竖线与右移 ---------- */
@media (max-width:640px){
  .hero-proof .hero-meta div:nth-child(2n){
    border-left:0 !important;padding-left:0 !important;
  }
  .hero-proof .hero-meta div:nth-child(n+3){
    border-top:1px solid var(--line) !important;
  }
}

/* ---------- 收尾：CTA 标题统一为细体，与全站标题尺度一致 ---------- */
.cta-box h2{font-weight:400 !important;letter-spacing:-.055em !important}

/* ============================================================
   FX11 · 移除导航右侧「V1.0.0 版本标签」与「获取桌面版」按钮
   四页 header-actions 内现在只保留汉堡按钮；
   桌面端隐藏该空容器，避免 space-between 把菜单挤到胶囊中部。
   ============================================================ */
@media (min-width:901px){
  .header-actions{display:none !important}
  .header-inner{gap:28px}
}

/* ============================================================
   FX12 · 视觉锚点与版式节奏
   ① 首屏界面示意改为深色高保真窗口（首屏唯一明暗焦点）
   ② 定位章节由三卡网格改为编辑式横向对照行
   ③ 各章节加统一页眉标尺（英文栏目 / 编号）
   ============================================================ */

/* ---------- 1. 深色产品窗口 ---------- */
.hero-visual{
  background:#251C1C !important;background-image:none !important;
  border-color:#251C1C !important;color:#8B9995 !important;
  box-shadow:0 42px 84px -52px rgba(55,24,25,.72),
             inset 0 1px 0 rgba(255,255,255,.07) !important;
  font-size:11px !important;
}
.hv-top{
  background:#2D2322 !important;border-bottom-color:#3E3231 !important;
  height:36px !important;
}
.hv-dots i{border-color:#4A5857 !important;background:#3E3231 !important}
.hv-name{font-size:9.5px !important;letter-spacing:.13em !important;color:#D1C7C8 !important}
.hv-mode{
  font-size:9px !important;color:#E5B9BE !important;
  border-color:#714247 !important;background:#42282A !important;
}
.hv-body{grid-template-columns:122px minmax(0,1fr) !important;min-height:236px !important}
.hv-left{border-right-color:#3E3231 !important;padding:16px 11px !important}
.hv-cap{font-size:9px !important;color:#667672 !important;margin-bottom:8px !important}
.hv-obj{font-size:10px !important;color:#8B9995 !important;padding:4px 7px !important}
.hv-obj.on{color:#E5B9BE !important;background:#43292C !important}
.hv-tabs{border-bottom-color:#362B2A !important;padding:11px 13px !important;gap:3px 9px !important}
.hv-tabs b,.hv-tabs span{font-size:9.5px !important}
.hv-tabs b{color:#E5B9BE !important}
.hv-tabs span{color:#6E7D79 !important}
.hv-stage{padding:18px 15px 15px !important}
.hv-kick{font-size:9px !important;color:#DAACB1 !important}
.hv-lanes i{
  font-size:10px !important;color:#D1C7C8 !important;
  border-color:#493A3A !important;background:#2E2322 !important;
}
.hv-lanes i:first-child{
  border-color:#894D53 !important;color:#E5B9BE !important;background:#43292C !important;
}
.hv-rule{background:#3E3231 !important}
.hv-trace i{color:#5C6B67 !important;font-size:9px !important}
.hv-trace u{background:#3C2F2F !important}
.hv-trace em{color:#DAACB1 !important;font-size:9px !important}
.hv-summary{border-top-color:#3E3231 !important;padding-top:13px !important}
.hv-summary b{
  border-color:#894D53 !important;background:#43292C !important;
  color:#E5B9BE !important;font-size:10px !important;
}
.hv-summary span{color:#8B9995 !important;font-size:9.5px !important}
.hv-out{font-size:9px !important;color:#5C6B67 !important}
.hero-visual figcaption{
  background:#251C1C !important;border-top-color:#3E3231 !important;
  color:#5C6B67 !important;font-size:9px !important;
}
/* 深色窗口下的浅色 hover 覆盖规则失效，统一收口 */
main .hero-visual figure,main .hero-visual .hv-body,
main .hero-visual .hv-main,main .hero-visual .hv-stage{
  background:transparent !important;background-image:none !important;
}

/* 首屏小标签：左侧竖线作为编辑式起点 */
.eyebrow{
  padding-left:13px !important;border-left:2px solid var(--accent) !important;
  border-radius:0 !important;
}

/* ---------- 2. 定位章节：三卡网格 → 横向对照行 ---------- */
#position .auto-grid{
  display:block !important;gap:0 !important;
  margin-top:46px !important;
  border-top:1px solid var(--line) !important;
  border-left:0 !important;
}
#position .auto-card{
  display:grid !important;
  grid-template-columns:150px minmax(0,1fr) 250px;
  grid-template-rows:auto auto;
  column-gap:clamp(28px,4vw,62px);row-gap:12px;
  align-items:start;
  padding:36px 0 38px !important;
  border:0 !important;border-right:0 !important;
  border-bottom:1px solid var(--line) !important;
  border-radius:0 !important;background:transparent !important;
}
#position .auto-card:last-child{border-bottom:0 !important}
#position .auto-card:hover{background:#F8F9F7 !important}
#position .ac-top{
  grid-column:1;grid-row:1/3;
  flex-direction:column !important;align-items:flex-start !important;
  justify-content:flex-start !important;gap:12px !important;
}
#position .ac-num{
  display:flex;flex-direction:column;gap:7px;
  font-size:10px !important;color:var(--ink-3) !important;letter-spacing:.08em !important;
}
#position .ac-num b{
  font-family:var(--serif) !important;font-size:42px !important;
  font-weight:400 !important;letter-spacing:-.05em !important;
  line-height:1 !important;color:var(--ink) !important;
}
#position .ac-flag{
  font-size:9.5px !important;color:var(--ink-3) !important;
  border-color:var(--line) !important;border-radius:2px !important;
  background:transparent !important;
}
#position .auto-card h3{
  grid-column:2;grid-row:1;margin:0 !important;
  font-size:23px !important;font-weight:400 !important;
  letter-spacing:-.04em !important;line-height:1.42 !important;
  color:var(--ink) !important;
}
#position .auto-card>.desc{
  grid-column:2;grid-row:2;margin:0 !important;
  font-size:13.5px !important;line-height:1.9 !important;color:var(--ink-2) !important;
  max-width:52ch;
}
#position .ac-list{
  grid-column:3;grid-row:1/3;margin:4px 0 0 !important;
  border-top:1px solid var(--line-2) !important;
}
#position .ac-list div{
  padding:10px 0 !important;border-bottom-color:var(--line-2) !important;
  align-items:baseline !important;
}
#position .ac-list dt{font-size:10px !important;font-family:var(--mono) !important}
#position .ac-list dd{
  font-size:11px !important;color:var(--ink-2) !important;
  font-family:var(--sans) !important;line-height:1.6 !important;
}
#position .callout{margin-top:34px !important}

/* ---------- 3. 章节页眉标尺 ---------- */
main section[data-sec]{position:relative}
main section[data-sec]::after{
  content:attr(data-en) "   /   " attr(data-sec);
  position:absolute;top:26px;
  right:max(24px,calc((100% - 1180px)/2));
  font-family:var(--mono);font-size:9.5px;font-weight:400;
  letter-spacing:.16em;color:#A7AFB2;
  pointer-events:none;z-index:1;
}
@media (max-width:900px){
  main section[data-sec]::after{display:none}
}

/* ---------- 4. 响应式 ---------- */
@media (max-width:1120px){
  #position .auto-card{grid-template-columns:110px minmax(0,1fr) 210px;column-gap:26px}
  #position .auto-card h3{font-size:20px !important}
}
@media (max-width:900px){
  .hero-visual .hv-body{grid-template-columns:104px minmax(0,1fr) !important}
  #position .auto-card{
    grid-template-columns:1fr !important;row-gap:12px !important;
    padding:26px 0 28px !important;
  }
  #position .ac-top,#position .auto-card h3,
  #position .auto-card>.desc,#position .ac-list{
    grid-column:1 !important;grid-row:auto !important;
  }
  #position .ac-top{
    flex-direction:row !important;align-items:baseline !important;gap:14px !important;
  }
  #position .ac-num{flex-direction:row;align-items:baseline;gap:9px}
  #position .ac-num b{font-size:30px !important}
  #position .auto-card>.desc{max-width:none}
  #position .ac-list{margin-top:6px !important}
}
@media (max-width:640px){
  .eyebrow{padding-left:10px !important}
  .hero-visual .hv-body{grid-template-columns:1fr !important}
  .hv-left{display:none}
}

/* ---------- FX12 补丁：去掉深色窗口在浅底上的灰晕、修对照表小字 ---------- */
.hero-visual{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07) !important;
}
#position .ac-list dt{
  font-family:var(--sans) !important;font-size:11px !important;
  color:var(--ink-3) !important;letter-spacing:.02em;
}
.hv-tabs b,.hv-tabs span{font-size:10px !important}
.hv-obj,.hv-lanes i{font-size:10.5px !important}
.hv-summary span,.hv-out,.hero-visual figcaption{font-size:9.5px !important}

/* ---------- FX12 补丁 2：章节页眉分隔线（杂志式编排） ---------- */
main section[data-sec] .sec-head{
  padding-bottom:28px;
  border-bottom:1px solid var(--line);
}
#position .auto-grid{border-top:0 !important;margin-top:34px !important}
@media (max-width:640px){
  main section[data-sec] .sec-head{padding-bottom:20px}
}

/* ---------- 页眉标尺加深，确保成为可辨识的编排标记 ---------- */
main section[data-sec]::after{
  color:#7F888C !important;font-weight:500 !important;letter-spacing:.14em !important;
}

/* ---------- 对照表文字加深，提升小字可读性 ---------- */
#position .ac-list dt{
  color:#5C666C !important;font-size:12px !important;font-weight:500 !important;
}
#position .ac-list dd{
  color:var(--ink) !important;font-size:12px !important;
}

/* ============================================================
   FX13 · 修正胶囊导航阅读进度条的位置
   旧规则 left:10% / width:80% / bottom:3px 让进度条从品牌文字中间
   开始、在导航中段结束，视觉上像半截悬空的下划线。
   现改为：贴合胶囊底边的完整轨道 + 从左侧圆角切点向右生长的进度线，
   轨道仅在页面滚动后淡入，未滚动时胶囊底边保持干净。
   ============================================================ */
.header-inner::after{
  content:"";position:absolute;left:30px;right:30px;bottom:0;height:1px;
  background:rgba(162,32,39,.10);
  opacity:0;transition:opacity .3s var(--ease);
  pointer-events:none;z-index:1;
}
.site-header.is-stuck .header-inner::after{opacity:1}
.scroll-line{
  left:30px !important;right:30px !important;bottom:0 !important;
  width:auto !important;height:2px !important;
  border-radius:0 !important;
  background:var(--accent) !important;
  opacity:.62 !important;
  transform-origin:0 50% !important;
  z-index:2 !important;
}
@media (max-width:900px){
  .header-inner::after,.scroll-line{left:28px !important;right:28px !important}
}

/* ============================================================
   FX14 · 精简后的版式收敛
   ① 工作场景由 5 个虚构控制台演示改为编辑式编号列表
   ② 章节垂直节奏收紧，避免删减后留下空洞
   ③ 压缩区块的说明统一为细线脚注
   ============================================================ */
.scene-list{border-top:1px solid var(--line);margin-top:36px}
.scene-row{
  display:grid;grid-template-columns:72px minmax(0,1fr) 250px;
  gap:28px;align-items:baseline;
  padding:26px 0 24px;border-bottom:1px solid var(--line);
  transition:background .25s var(--ease);
}
.scene-row:hover{background:rgba(162,32,39,.025)}
.scene-row:hover .sr-num{color:var(--accent)}
.sr-num{
  font-family:var(--serif);font-size:32px;line-height:1;
  color:var(--ink-3);letter-spacing:-.03em;
}
.scene-row b{
  display:block;font-size:19px;font-weight:400;
  letter-spacing:-.025em;color:var(--ink);
}
.scene-row p{
  margin:8px 0 0;font-size:13px;line-height:1.8;color:var(--ink-2);
}
.sr-out{
  justify-self:end;text-align:right;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.02em;
  color:var(--ink-3);
}
.compact-note{
  margin:28px 0 0;padding-top:18px;
  border-top:1px solid var(--line);
  font-size:13px;line-height:1.8;color:var(--ink-2);
}
.section{padding:clamp(64px,5.6vw,88px) 0}
@media (max-width:900px){
  .scene-row{grid-template-columns:48px minmax(0,1fr);gap:16px;padding:22px 0}
  .sr-num{font-size:26px}
  .sr-out{grid-column:2;justify-self:start;text-align:left;margin-top:6px}
  .section{padding:clamp(52px,8vw,68px) 0}
}
/* 历史层的 .hero-lead,.sec-lead,.cta-box p 通用深色规则会把近黑 CTA 的
   说明文字压成深色，这里用更高特异性恢复浅色，保证深色断点可读。 */
main .cta-box p{color:#AEB6BC !important}

/* ============================================================
   FX15 · 收尾打磨
   ① 模型墙补足 20 格，末行不再留空
   ② 扩展接入卡片的标签排布
   ③ 多智能体示意图随卡片伸展
   ④ 工程细节补齐「更新」卡并改为 2×2
   ⑤ 权限卡补「判定顺序」条
   ⑥ 常见问题：展开态去跳动、图标放大
   ⑦ 深色 CTA：右侧三步 + 底部脚注，填满留白
   ⑧ 杂志式断点补齐 01/03 → 03/03 的节奏
   ============================================================ */

/* ---------- ① 模型墙第 20 格：兼容接入入口 ---------- */
main .brand-tile.tile-more{background:#FAFBFA !important}
.tile-more .brand-logo{
  border:1px dashed #DBD4D5 !important;background:transparent !important;
  color:var(--accent);
}
.tile-more .brand-logo svg{width:16px;height:16px}
.tile-more b{color:var(--ink-2)}
.tile-more:hover .brand-logo{border-color:#CCB5B8 !important}

/* ---------- ② 扩展接入：标签收到右侧，尽量一行 ---------- */
.card.full .ext-pills{
  max-width:56% !important;justify-content:flex-end;
  align-content:flex-start;row-gap:7px;
}
.card.full .ext-pills span{font-size:10.5px !important;padding:4px 9px !important;white-space:nowrap}
@media (max-width:1000px){
  .card.full .ext-pills{max-width:100% !important;justify-content:flex-start}
}

/* ---------- ③ 多智能体示意图：撑开留白 ---------- */
.card.mid .agent-map{
  flex:1;height:auto !important;min-height:172px;
  width:100%;max-width:100%;margin:6px auto 2px;align-self:stretch;
}
.card.mid .agent-map svg{height:100%;width:100%}
.agent-map text{
  font-family:var(--sans);font-size:11px;fill:#8E7578;
  dominant-baseline:middle;
}
.agent-map text.core{fill:var(--accent);font-weight:600;font-size:12px}

/* ---------- ④ 工程细节：四张卡，2×2 ---------- */
#craft .auto-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
#craft .auto-card{padding:30px 28px !important}
#craft .auto-card>.desc{max-width:64ch}
@media (max-width:960px){
  #craft .auto-grid{grid-template-columns:1fr !important}
}

/* ---------- ⑤ 权限卡：判定顺序条 ---------- */
.policy-order{
  display:flex;align-items:center;flex-wrap:wrap;gap:8px;
  margin-top:20px;padding-top:16px;border-top:1px dashed #DCE2DE;
}
.policy-order .po-k{
  font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;
  color:var(--ink-3);margin-right:4px;
}
.policy-order .tag{
  padding:3px 10px !important;font-size:10px !important;font-weight:500 !important;
  border-radius:2px !important;
}
.policy-order .po-gt{color:#B9C2BD;font-size:10px;line-height:1}

/* ---------- ⑥ 常见问题：展开项用左侧标尺，不做位移动画 ---------- */
.faq-q i{width:22px;height:22px}
.faq-q i::before{width:8px}
.faq-q i::after{height:8px}
.faq-item.open{
  background:#F7F8F6;
  box-shadow:inset 3px 0 0 var(--accent);
}
.faq-item.open .faq-a p{padding-right:14px}

/* ---------- ⑦ 深色 CTA：网格底纹 + 三步 + 脚注 ---------- */
.cta{position:relative;overflow:hidden}
.cta::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(72% 96% at 84% 4%,#000 0%,rgba(0,0,0,.35) 52%,transparent 78%);
  mask-image:radial-gradient(72% 96% at 84% 4%,#000 0%,rgba(0,0,0,.35) 52%,transparent 78%);
}
.cta>.wrap{position:relative;z-index:1}
main .cta-actions{justify-content:flex-start !important;align-items:flex-start !important;row-gap:0 !important}
.cta-steps{
  list-style:none;margin:42px 0 0;padding:24px 0 0;
  border-top:1px solid #362D2C;
  display:flex;flex-direction:column;gap:15px;
  width:272px;max-width:100%;
}
.cta-steps li{display:flex;align-items:baseline;gap:14px}
.cta-steps b{
  font-family:var(--mono);font-size:10px;font-weight:400;
  letter-spacing:.1em;color:#B88F93;flex:none;
}
.cta-steps span{font-size:12.5px;color:#9AA1AA;letter-spacing:.01em}
main .cta-note{margin-top:48px !important}
@media (max-width:900px){
  .cta-steps{width:100%;margin-top:28px;padding-top:20px}
  main .cta-note{margin-top:32px !important}
}

/* ---------- ⑧ 杂志式断点：三段共用同一尺度 ---------- */
.manifesto blockquote{max-width:20ch}
.manifesto p{max-width:52ch}
@media (max-width:640px){
  .manifesto blockquote{max-width:100%}
}

