/* 展示版「技术架构」页 /show/tech/（2026-11-03）。与讲解首页同一视觉语言：黑 / 浅交替、橙色标签、细线、大标题；
 * 深色段加细网格，SVG 流线带流动虚线；系统「减少动效」时全部静止。不引外部字体与脚本。 */
:root{--bk:#0b0b0f;--bk2:#111117;--lt:#f5f5f7;--ink:#1d1d1f;--mut:#6e6e73;--dmut:#a1a1aa;--or:#ff8a3d;--bl:#2f7cf6;--line:#d2d2d7;--dline:#2a2a31;
  --det:#2f7cf6;--llm:#a463f2;--guard:#ff8a3d;--human:#2fbf71;--solver:#e5c84a;
  --mono:"SF Mono","JetBrains Mono",Menlo,Consolas,"Liberation Mono",monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bk);color:var(--ink);font:16px/1.7 "PingFang SC","Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
code,pre{font-family:var(--mono)}
.muted{color:var(--mut)}
/* 顶栏 */
.top{position:fixed;inset:0 0 auto 0;z-index:30;height:60px;display:flex;align-items:center;gap:24px;padding:0 36px;color:#f5f5f7;transition:background .25s}
.top.solid{background:rgba(11,11,15,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.06)}
.brand{display:flex;align-items:center;gap:10px;font-size:15px;white-space:nowrap}
.mark{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--bl),var(--or));font-size:11px;font-weight:700;color:#fff}
.crumb{color:var(--dmut);font-size:13px;border-left:1px solid #3a3a44;padding-left:10px}
.toc{flex:1;display:flex;justify-content:center;gap:4px;overflow:hidden}
.toc a{font-size:13px;color:#c7c7cc;padding:4px 11px;border-radius:99px;white-space:nowrap}
.toc a:hover{color:#fff}.toc a.on{background:rgba(255,138,61,.16);color:var(--or)}
.top-r{display:flex;gap:10px}
.tbtn{font-size:13px;color:#e5e5ea;border:1px solid rgba(255,255,255,.25);border-radius:99px;padding:5px 15px;white-space:nowrap}
.tbtn:hover{background:rgba(255,255,255,.12)}.tbtn.solid{background:#f5f5f7;color:#111;border-color:#f5f5f7;font-weight:600}
/* 分段 */
.seg{position:relative;padding:120px 64px 96px;overflow:hidden}
.seg.dark{background:var(--bk);color:#f5f5f7}.seg.light{background:var(--lt)}.seg.light2{background:#fff}
.seg.grid{background-color:var(--bk);background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:44px 44px}
.seg-in{position:relative;width:100%;max-width:1280px;margin:0 auto}.seg-in.wide{max-width:1440px}.center{text-align:center}
.tag{margin:0 0 16px;font-size:13px;font-weight:600;letter-spacing:.16em;color:var(--or)}
.seg h1,.seg h2{margin:0;font-weight:700;letter-spacing:-.01em}
.seg h1{font-size:60px;line-height:1.16}.seg h2{font-size:50px;line-height:1.2}
.sub{margin:18px 0 0;max-width:860px;font-size:19px;line-height:1.65;color:var(--mut)}
.dark .sub{color:var(--dmut)}.center .sub{margin-left:auto;margin-right:auto}
.hl-or{background:linear-gradient(90deg,var(--or),#ffc08f);-webkit-background-clip:text;background-clip:text;color:transparent}
.src{display:inline-block;margin-top:6px;font-size:11.5px;line-height:1.5;color:#8e8e93;background:rgba(127,127,140,.1);border-radius:6px;padding:1px 7px;word-break:break-all}
.dark .src{color:#9a9aa6;background:rgba(255,255,255,.06)}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}.reveal.in{opacity:1;transform:none}
/* 首屏 */
.hero{min-height:clamp(640px,100vh,1100px);display:flex;align-items:center;background-image:radial-gradient(800px 560px at 72% 48%,rgba(47,124,246,.20),transparent 70%),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:auto,44px 44px,44px 44px}
.hero-in{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.hero-k{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:40px}
.hero-k a{border:1px solid var(--dline);border-radius:14px;padding:12px 14px;background:rgba(18,18,24,.7);transition:border-color .2s,transform .2s}
.hero-k a:hover{border-color:var(--or);transform:translateY(-2px)}
.hero-k b{display:block;font-size:16px}.hero-k span{font-size:12.5px;color:var(--dmut)}
.hero-art svg{width:100%;height:auto}
.hl path{fill:rgba(20,22,32,.92);stroke:#3c4560;stroke-width:1.2;transition:fill .3s}
.hl text{fill:#d9dbe6;font-size:15px;font-weight:600;letter-spacing:.06em}
.hl.hot path{fill:rgba(47,124,246,.32);stroke:var(--bl)}
.hl{animation:rise .9s ease both;animation-delay:var(--d)}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
/* 流线 */
.flowline{fill:none;stroke:var(--or);stroke-width:1.6;stroke-dasharray:5 9;opacity:.75;animation:dash 1.4s linear infinite}
.flowline.v{stroke:#6f8fd8;opacity:.6}
@keyframes dash{to{stroke-dashoffset:-28}}
/* 图例与方法徽章 */
.legend{display:flex;flex-wrap:wrap;gap:16px;margin:26px 0 14px;font-size:13px;color:var(--mut)}.dark .legend{color:var(--dmut)}
.lg{display:inline-flex;align-items:center;gap:7px}
.kd{display:inline-block;width:10px;height:10px;border-radius:3px}
.k-det{--k:var(--det)}.k-llm{--k:var(--llm)}.k-guard{--k:var(--guard)}.k-human{--k:var(--human)}.k-solver{--k:var(--solver)}
.kd{background:var(--k)}
.kb{display:inline-block;font-size:11.5px;font-weight:600;padding:1px 9px;border-radius:99px;color:var(--k);border:1px solid var(--k);background:color-mix(in srgb,var(--k) 10%,transparent);white-space:nowrap}
.own{display:inline-block;font-size:11px;font-weight:700;color:#fff;background:var(--or);border-radius:5px;padding:0 6px;margin-left:6px;vertical-align:1px}
.lic{display:inline-block;font-size:11px;color:var(--mut);border:1px solid var(--line);border-radius:5px;padding:0 6px;margin-left:6px;vertical-align:1px}
.ver{font-family:var(--mono);font-size:11.5px;color:var(--bl)}
/* 技术栈 */
.stack{margin-top:40px;display:flex;flex-direction:column;gap:10px}
.layer{display:grid;grid-template-columns:170px 1fr;background:#fff;border:1px solid #e3e3e8;border-radius:18px;overflow:hidden}
.lh{padding:18px 20px;background:linear-gradient(160deg,#16161c,#23232c);color:#f5f5f7;display:flex;flex-direction:column;justify-content:center}
.lno{font-family:var(--mono);font-size:12px;color:var(--or)}.lh b{font-size:20px}.lh em{font-style:normal;font-size:12px;color:var(--dmut);letter-spacing:.08em}
.litems{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr))}
.comp{padding:12px 13px;border-left:1px solid #eeeef2;border-top:1px solid #eeeef2;margin:-1px 0 0 -1px;transition:background .2s}
.comp:hover{background:#fafafc}
.ch b{font-size:14.5px}.comp p{margin:3px 0 0;font-size:12.5px;line-height:1.5;color:var(--mut)}.comp .src{font-size:10.5px}
/* 本体构建矩阵 */
.mxwrap{overflow-x:auto;border:1px solid var(--dline);border-radius:16px;background:rgba(14,14,20,.85)}
.mx{border-collapse:collapse;min-width:1180px;width:100%}
.mx th,.mx td{border-bottom:1px solid #1f1f27;border-right:1px solid #1f1f27;padding:10px 8px;vertical-align:top;text-align:left;font-size:13px}
.mx thead th{font-weight:600;color:#e5e5ea;cursor:pointer;background:#121219;line-height:1.35}
.mx thead th:first-child{cursor:default}
.mx .sno{display:block;font-family:var(--mono);font-size:11px;color:var(--or)}
.mx td{cursor:pointer;min-width:96px}
.mx .rk{background:#121219;width:96px}
.mx .on{background:rgba(255,138,61,.09)!important}
.chip{display:inline-block;margin:0 4px 4px 0;font-size:11.5px;line-height:1.4;padding:2px 7px;border-radius:6px;color:#f1f1f4;background:color-mix(in srgb,var(--k) 22%,#16161d);border:1px solid color-mix(in srgb,var(--k) 55%,transparent)}
.stage-info{margin-top:18px;border:1px solid var(--dline);border-radius:16px;padding:20px 24px;background:rgba(18,18,24,.85);display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px 26px}
.si-h{grid-column:1/-1;display:flex;align-items:baseline;gap:12px}.si-h b{font-size:20px}.si-h em{font-style:normal;color:var(--dmut);font-size:14px}
.si-h .sno{font-family:var(--mono);color:var(--or)}
.si-a b{margin-left:8px;font-size:15px}.si-a p{margin:4px 0 0;font-size:13.5px;color:#c7c7cc}
/* 蓝图推演 */
.bp{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:28px;margin-top:8px;align-items:start}
.bp-map{background:#fff;border:1px solid #e3e3e8;border-radius:20px;padding:14px 12px 8px}
.bp-map svg{width:100%;height:auto;display:block}
.lane rect{fill:#f7f7f9;stroke:#ececf0}.lane text{fill:#3a3a40;font-size:14px;font-weight:700;letter-spacing:.1em}
.edge{fill:none;stroke:#c7c7cf;stroke-width:1.5}
.bp-map .flowline{opacity:0;transition:opacity .25s}.bp-map .flowline.on{opacity:1}
.back{fill:none;stroke:var(--bl);stroke-width:1.4;stroke-dasharray:4 5}.backhead{fill:none;stroke:var(--bl);stroke-width:1.4}
.backlab{fill:var(--bl);font-size:11.5px}
.bn{cursor:pointer;outline:none}
.bn rect:first-child{fill:#fff;stroke:#c9c9d2;stroke-width:1.2;transition:fill .2s,stroke .2s}
.bn:hover rect:first-child,.bn:focus rect:first-child{stroke:var(--or);fill:#fff7f0}
.bn.on rect:first-child{fill:#16161c;stroke:#16161c}
.bn .bno{font-family:var(--mono);font-size:11px;fill:var(--or);font-weight:700}
.bn .bt{font-size:13.5px;font-weight:600;fill:#1d1d1f}.bn.on .bt{fill:#fff}
.bn .bs{font-family:var(--mono);font-size:9.5px;fill:#8e8e93}
.kdot{fill:var(--k)}
.bp-detail{position:sticky;top:76px;background:#0f0f14;color:#f5f5f7;border-radius:20px;padding:24px 26px;min-height:560px;box-shadow:0 24px 60px rgba(0,0,0,.18)}
.dh{display:flex;gap:14px;align-items:center}
.dno{font-family:var(--mono);font-size:30px;font-weight:700;color:var(--or)}
.dl{margin:0;font-size:12.5px;color:var(--dmut);letter-spacing:.06em}.dh h3{margin:0;font-size:25px}
.io{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;margin:16px 0 12px;align-items:stretch}
.io>div{border:1px solid #2a2a33;border-radius:12px;padding:8px 12px;background:#15151c}
.io span{font-size:11px;letter-spacing:.12em;color:var(--or)}.io p{margin:2px 0 0;font-size:13px;color:#d1d1d6;line-height:1.5}
.io i{align-self:center;color:#6e6e78;font-style:normal}
.kinds{display:flex;gap:6px;flex-wrap:wrap}
.mech{font-size:14.5px;line-height:1.75;color:#e0e0e6;margin:12px 0}
.code{margin:0;background:#07070a;border:1px solid #23232b;border-radius:12px;padding:12px 14px;font-size:12.5px;line-height:1.65;color:#cfe3ff;overflow-x:auto;white-space:pre}
.code.sm{font-size:11.5px;background:#0d0d12;color:#cfe3ff}
.guards,.srcs{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.guards span,.srcs span{font-size:11px;letter-spacing:.12em;color:var(--dmut);margin-right:4px}
.guards code{font-size:11.5px;color:#ffb27a;border:1px solid #5a3a22;background:#22160d;border-radius:6px;padding:0 7px}
.srcs .src{margin-top:0}
.dnav{display:flex;justify-content:space-between;margin-top:16px}
.dnav button{font:inherit;font-size:13px;color:#e5e5ea;background:transparent;border:1px solid #3a3a44;border-radius:99px;padding:4px 14px;cursor:pointer}
.dnav button:hover:not(:disabled){border-color:var(--or);color:var(--or)}.dnav button:disabled{opacity:.3;cursor:default}
.prov{margin-top:30px}
.prov-t{margin:0 0 12px;font-size:15px;font-weight:600}.prov-t .src{margin:0 0 0 8px}
.prov-c{display:flex;align-items:stretch;gap:0;flex-wrap:wrap}
.pc{flex:1 1 150px;background:#fff;border:1px solid #e3e3e8;border-radius:14px;padding:10px 14px}
.pc b{display:block;font-size:15px}.pc span{font-size:12.5px;color:var(--mut)}
.pa{flex:0 0 28px;align-self:center;height:2px;background:repeating-linear-gradient(90deg,var(--or) 0 5px,transparent 5px 10px);background-size:20px 2px;animation:slide 1s linear infinite}
@keyframes slide{to{background-position:-20px 0}}
/* 一键部署 */
.seqwrap{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:26px;margin-top:34px;align-items:start}
.seq{border:1px solid var(--dline);border-radius:18px;background:rgba(14,14,20,.88);padding:12px}
.seq svg{width:100%;height:auto;display:block}
.ll rect{fill:#17171f;stroke:#3a3a46}.ll text{fill:#f5f5f7;font-size:17px;font-weight:600}
.life{stroke:#34343e;stroke-width:1.2;stroke-dasharray:3 5}
.mline{fill:none;stroke:#555563;stroke-width:1.4}.mhead{fill:none;stroke:#8e8e9a;stroke-width:1.4}
.msg circle{fill:var(--or)}.msg .mt{fill:#d9d9e0;font-size:16px}.msg .mn{fill:var(--or);font-family:var(--mono);font-weight:700}
.msg .flowline{opacity:.45}.msg.ret .flowline{stroke:var(--bl)}
.msg.on .mline{stroke:var(--or)}.msg.on .flowline{opacity:1}.msg.on .mt{fill:#fff;font-weight:600}
.seq-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.seq-list li{display:grid;grid-template-columns:26px 1fr;column-gap:8px;border:1px solid var(--dline);border-radius:12px;padding:8px 12px;background:rgba(18,18,24,.85);transition:border-color .2s}
.seq-list li.on{border-color:var(--or)}
.seq-list .mn{grid-row:span 2;font-family:var(--mono);font-weight:700;color:var(--or)}
.seq-list b{font-size:14.5px}.seq-list p{margin:0;font-size:12.5px;line-height:1.5;color:var(--dmut)}
.seq-src{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px;font-size:12.5px;color:var(--dmut)}.seq-src b{margin-right:6px;color:#e5e5ea}
.band{margin-top:18px;border:1px dashed #3a3a46;border-radius:14px;padding:12px 18px;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:14px;color:#c7c7cc}
.band b{color:var(--or)}.band .src{margin:0}
/* 评审迭代 */
.loop{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center;margin-top:30px}
.ring svg{width:100%;max-width:640px;height:auto;display:block;margin:0 auto}
.arc{fill:none;stroke:#d9d9e0;stroke-width:2}
.core{fill:#16161c}.ct{fill:#fff;font-size:24px;font-weight:700}.cs{fill:#a1a1aa;font-size:14px}
.rn circle{fill:#fff;stroke:#c9c9d2;stroke-width:1.5;transition:fill .2s,stroke .2s}.rn text{fill:#1d1d1f;font-size:14px;font-weight:600}
.rn .rno{font-family:var(--mono);font-size:11px;fill:var(--or)}
.rn.on circle{fill:var(--or);stroke:var(--or)}.rn.on text{fill:#fff}
.loop-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.loop-list li{display:grid;grid-template-columns:34px 1fr;gap:8px;background:#fff;border:1px solid #e3e3e8;border-radius:14px;padding:9px 14px;transition:border-color .2s}
.loop-list li.on{border-color:var(--or)}
.loop-list li>span{font-family:var(--mono);font-weight:700;color:var(--or);padding-top:2px}
.loop-list b{font-size:15px}.loop-list p{margin:0;font-size:13px;color:var(--mut);line-height:1.5}
.loop-list .center{background:#16161c;color:#fff;border-color:#16161c;text-align:left}.loop-list .center p{color:#c7c7cc}
/* 系统助手 */
.agent{margin-top:36px;display:flex;flex-direction:column;gap:18px}
.ac{border:1px solid var(--dline);border-radius:14px;padding:12px 14px;background:rgba(18,18,24,.9)}
.ac b{font-size:15px}.ac p{margin:3px 0 0;font-size:13px;line-height:1.55;color:#c7c7cc}.ac .kb{margin-right:8px}
.ag-top{display:flex;align-items:center;gap:0}.ag-top .ac{flex:1}
.hz{flex:0 0 40px;height:2px;background:repeating-linear-gradient(90deg,#6f8fd8 0 5px,transparent 5px 10px);background-size:20px 2px;animation:slide 1s linear infinite}
.ac.eng{border-color:#2c3a5c}
.ag-mid{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:18px;align-items:stretch}
.ag-col{display:flex;flex-direction:column;gap:8px}
.ag-t{margin:0 0 2px;font-size:12px;letter-spacing:.16em;color:var(--or)}
.ag-core{position:relative;display:flex;flex-direction:column;justify-content:center;gap:14px;border:1px solid #3a2a1c;border-radius:20px;padding:22px;background:radial-gradient(circle at 50% 40%,rgba(255,138,61,.14),transparent 70%)}
.ac.core{border-color:var(--or);background:#1a120c;text-align:center}.ac.core b{font-size:20px}
.ac.mcp{border-style:dashed;text-align:center}
.pulse{position:absolute;left:50%;top:38%;width:220px;height:220px;margin:-110px 0 0 -110px;border-radius:50%;border:1px solid rgba(255,138,61,.35);animation:pulse 2.6s ease-out infinite;pointer-events:none}
@keyframes pulse{from{transform:scale(.55);opacity:1}to{transform:scale(1.25);opacity:0}}
.ag-flow{border:1px solid var(--dline);border-radius:18px;padding:16px 18px;background:rgba(14,14,20,.85)}
.ag-steps{display:flex;align-items:stretch;gap:0}.ag-steps .ac{flex:1}
.ar{flex:0 0 30px;align-self:center;text-align:center;color:var(--or);font-style:normal}
/* 自研算法 */
.algo-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:18px;margin-top:40px}
.al{background:#fff;border:1px solid #e3e3e8;border-radius:20px;padding:22px 24px;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s}
.al:hover{box-shadow:0 18px 44px rgba(0,0,0,.08);transform:translateY(-2px)}
.al-h{display:flex;align-items:center;gap:10px}
.al-no{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--or)}
.al-flow{font-size:12px;color:var(--mut);border:1px solid var(--line);border-radius:99px;padding:0 10px}
.al-h .own{margin-left:auto}
.al h3{margin:10px 0 8px;font-size:21px;line-height:1.35}
.al p{margin:6px 0;font-size:13.5px;line-height:1.65;color:#3a3a40}
.al p span{display:inline-block;margin-right:8px;font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--or)}
.al .code{margin:8px 0 4px}
.al .src{margin-top:auto;padding-top:2px}
/* 文献 */
.refs{list-style:none;margin:36px 0 0;padding:0;columns:2;column-gap:44px}
.refs li{break-inside:avoid;display:grid;grid-template-columns:44px 1fr;gap:4px 6px;padding:8px 0;border-bottom:1px solid #eeeef2;font-size:13.5px;line-height:1.55}
.refs li:target{background:#fff3e8}
.refs .rn{font-family:var(--mono);color:var(--or);font-weight:700}
.refs .rtag{grid-column:2;font-size:11px;color:var(--mut)}
.cite{font-size:.68em;line-height:0;margin-left:2px;font-family:var(--mono);color:var(--or);white-space:nowrap}
.cite a{color:var(--or)}.cite a:hover{text-decoration:underline}
.tip{position:fixed;z-index:50;background:#16161c;color:#f5f5f7;font-size:13px;line-height:1.55;border:1px solid #3a3a44;border-radius:10px;padding:10px 12px;box-shadow:0 14px 40px rgba(0,0,0,.35);pointer-events:none}
.tip b{color:var(--or);font-family:var(--mono)}
/* 结尾 */
.end{padding:120px 64px}
.cta{display:flex;gap:14px;justify-content:center;margin-top:34px}
.btn{display:inline-flex;align-items:center;padding:12px 28px;border-radius:99px;font-size:17px;font-weight:600;border:1px solid transparent}
.btn.solid{background:var(--bl);color:#fff}.btn.line{border-color:rgba(255,255,255,.4);color:#f5f5f7}
/* 窄屏 */
@media (max-width:1280px){.toc{display:none}.bp,.seqwrap,.loop,.hero-in{grid-template-columns:minmax(0,1fr)}.bp-detail{position:static;min-height:0}.hero-art{max-width:560px}}
@media (max-width:900px){.seg{padding:96px 16px 64px}.top{padding:0 16px}.crumb,.top-r .tbtn:not(.solid){display:none}.seg h1{font-size:40px}.seg h2{font-size:32px}.sub{font-size:16px}
  .hero-k{grid-template-columns:1fr 1fr}.layer{grid-template-columns:1fr}.ag-mid{grid-template-columns:1fr}.ag-top,.ag-steps{flex-direction:column}.hz,.ar{display:none}
  .algo-wall{grid-template-columns:minmax(0,1fr)}.bp-map,.seq{overflow-x:auto}.bp-map svg{min-width:560px}.seq svg{min-width:720px}.stage-info{grid-template-columns:minmax(0,1fr)}.refs{columns:1}.io{grid-template-columns:1fr}.io i{display:none}.pa{display:none}.prov-c{gap:8px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
