@font-face{font-family:DemoNoto;src:url('/assets/NotoSansSC-Regular.otf') format('opentype');font-weight:100 900;font-display:swap}
:root{color-scheme:dark;--bg:#080c11;--surface:#0e141d;--raised:#121b26;--border:#26323f;--text:#e7edf4;--muted:#a2b0bf;--quiet:#7c8c9d;--cyan:#75cfe2;--amber:#e6b779}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:DemoNoto,"Noto Sans CJK SC",system-ui,sans-serif;font-size:14px;line-height:1.7}a{color:inherit;text-decoration:none}button{font:inherit}a,button,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--cyan);outline-offset:5px;border-radius:6px}.skip-link{position:fixed;left:20px;top:-80px;z-index:20;background:var(--surface);padding:10px}.skip-link:focus{top:12px}.topbar{min-height:76px;padding:0 max(32px,calc((100% - 1224px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #1b2632;gap:20px}.brand{font-size:14px;font-weight:600;letter-spacing:.12em;display:flex;align-items:center;gap:10px}.brand-mark{color:var(--cyan);font-size:27px;line-height:1}.brand-secondary{font-weight:400;color:var(--quiet)}.edition{font-size:10px;letter-spacing:.14em;color:var(--quiet);display:flex;align-items:center;gap:14px}.phase-tag{border:1px solid var(--border);padding:3px 8px;border-radius:4px;font-size:10px;letter-spacing:.1em;color:var(--muted)}.shell{max-width:1224px;padding:44px 26px 24px;margin:auto}.intro{margin-bottom:36px}.eyebrow,.section-index{font-size:10px;letter-spacing:.18em;color:var(--cyan);margin:0 0 12px}h1,h2,p{margin-top:0}h1{font-size:34px;font-weight:600;letter-spacing:-.025em;line-height:1.4;margin-bottom:12px}h1 span{font-size:19px;font-weight:400;color:var(--muted);margin-left:14px}.lead{color:var(--muted);font-size:15px;line-height:1.9;margin-bottom:24px}.historical-strip{display:flex;flex-wrap:wrap;align-items:center;gap:12px 25px;padding:15px 18px;border:1px solid var(--border);border-radius:8px;background:#0b1119;font-size:12px;color:var(--muted)}.historical-strip b{color:var(--text);font-size:17px;font-weight:500;margin-right:5px}.history-label{font-size:10px;letter-spacing:.05em;color:var(--quiet)}.historical-strip small{display:inline-block;margin-left:5px;font-size:10px;color:var(--quiet)}.context-note{font-size:12px;color:var(--quiet);margin:10px 0 0;line-height:1.9}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:18px}.section-heading h2{font-size:19px;line-height:1.4;font-weight:500;margin:0}.section-index{color:var(--quiet);margin-bottom:7px}.quiet{font-size:11px;color:var(--quiet)}.architecture-panel{border:1px solid var(--border);border-radius:12px;background:#0c121b;overflow:hidden}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 20px 6px}.legend{display:flex;flex-wrap:wrap;gap:8px 19px;color:var(--muted);font-size:11px}.legend span{display:flex;align-items:center;gap:7px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.dot.real{background:var(--cyan)}.dot.future{background:var(--amber)}.line-key{display:inline-block;width:21px;border-top:1.5px solid var(--cyan)}.line-key.dashed{border-color:var(--amber);border-top-style:dashed}.small-button{border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--muted);font-size:11px;white-space:nowrap;padding:6px 11px;cursor:pointer}.small-button:hover{border-color:var(--cyan);color:var(--text)}.map-hint{font-size:11px;color:var(--quiet);padding:4px 20px 9px;margin:0;border-bottom:1px solid #1a2431}.map-viewport{width:100%;max-height:820px;overflow:auto;overscroll-behavior:contain;scrollbar-color:#405367 #0c121b;scrollbar-width:thin}.map-viewport.expanded{max-height:none}.architecture-svg{display:block;width:100%;min-width:1080px;height:auto;background:#0c121b;font-family:DemoNoto,system-ui,sans-serif}.edge{fill:none;stroke-width:1.6;stroke-linejoin:round}.edge-real{stroke:#4d8798}.edge-future{stroke:#9f8158;stroke-dasharray:6 6}.arrow-real{fill:#4d8798}.arrow-future{fill:#9f8158}.edge-label{font-size:11px;fill:#a5b6c7;stroke:#0c121b;stroke-width:5px;paint-order:stroke}.diagram-node rect,.diagram-node>path{fill:#10222e;stroke:#447c8f;stroke-width:1.2}.diagram-node.deferred rect,.diagram-node.deferred>path,.diagram-node.unavailable rect,.diagram-node.unavailable>path{fill:#292116;stroke:#9f8054}.node-title{font-size:16px;fill:#e7edf4;font-weight:500;pointer-events:none}.node-badge{font-size:11px;fill:#7fc6d7;pointer-events:none}.deferred .node-badge,.unavailable .node-badge{fill:var(--amber)}.diagram-node:hover rect,.diagram-node:hover>path,.diagram-node:focus rect,.diagram-node:focus>path{stroke-width:2.8;stroke:#9ce8f7}.diagram-node.deferred:hover rect,.diagram-node.deferred:focus rect{stroke:#f5cf99}.map-caption{display:flex;align-items:center;gap:10px;padding:12px 20px;border-top:1px solid var(--border);font-size:11px;color:var(--muted)}.modules-section{margin:38px 0 30px}.module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.module-card{min-height:144px;border:1px solid var(--border);border-radius:10px;background:#0d131c;display:flex;align-items:flex-start;gap:15px;padding:20px;transition:border-color .15s,background .15s}.module-card:hover{background:#121c28;border-color:#4c7485}.icon{width:23px;height:23px;flex-shrink:0;color:#adc4d2}.card-content{display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0}.card-content strong{font-size:17px;font-weight:500;line-height:1.5}.card-content>span{font-size:12px;color:var(--muted)}.badge{display:inline-block;font-size:10px;font-weight:400;letter-spacing:.01em;line-height:1.7;color:var(--cyan);border:1px solid #294451;background:#10202a;border-radius:4px;padding:2px 7px}.card-arrow{margin-left:auto;color:var(--quiet);font-size:17px}.gallery-card{margin-top:13px;padding:21px 24px;border:1px solid #354451;border-radius:10px;background:#17212c;display:flex;align-items:center;gap:18px}.gallery-card>span{display:flex;flex-direction:column;gap:6px}.gallery-card strong{font-size:17px;font-weight:500}.gallery-card span span{color:var(--muted);font-size:12px}.gallery-card b,.playground-card b{margin-left:auto;color:var(--muted);font-size:22px;font-weight:400}.gallery-card:hover{border-color:var(--cyan)}.playground-section{padding-top:3px}.playground-card{display:flex;align-items:center;gap:19px;border:1px solid #2e4654;border-radius:10px;padding:24px;background:#0d1923}.playground-card>.icon{width:30px;height:30px;color:var(--cyan)}.playground-card>span{display:flex;flex-direction:column;gap:6px}.playground-card strong{font-size:20px;font-weight:500}.playground-card span span{font-size:13px;color:var(--muted)}.playground-card small{font-size:10px;color:var(--quiet)}.playground-card:hover{border-color:var(--cyan)}.engineering-note{margin:36px 0 24px;padding-left:18px;border-left:2px solid #3d5869;scroll-margin-top:24px}.engineering-note h2{font-size:14px;font-weight:500;margin-bottom:9px}.engineering-note p{font-size:12px;line-height:2;color:var(--muted);max-width:1000px}.engineering-note code{color:#c2d5e2;font-size:11px}.sources-panel{border-top:1px solid var(--border);padding:17px 0;color:var(--muted)}.sources-panel summary{font-size:12px;cursor:pointer}.sources-panel summary>span{margin-left:12px;color:var(--quiet);font-size:10px}.source-list{padding:12px 0 0;margin:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}.source-list li{font-size:11px;min-width:0;padding:8px 12px;background:var(--surface);border:1px solid #1e2b38;border-radius:5px}.source-list code,.source-list small{display:block;font-size:10px;overflow-wrap:anywhere;margin-top:3px;color:var(--quiet)}.source-list .source-ok,.source-list .source-missing{float:right;color:var(--cyan);font-size:10px}.source-list .source-missing{color:var(--amber)}.footer{max-width:1224px;padding:20px 26px 25px;margin:auto;border-top:1px solid #1b2632;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;color:var(--quiet);font-size:10px}.footer a:hover{color:var(--cyan)}.placeholder-shell{max-width:940px;min-height:calc(100vh - 150px);padding-top:28px}.back-link{display:inline-block;color:var(--muted);font-size:12px;margin-bottom:40px}.back-link:hover{color:var(--cyan)}.placeholder-title{display:flex;gap:16px;align-items:center;margin:7px 0 12px}.placeholder-title .icon{width:32px;height:32px;color:var(--cyan)}.placeholder-title h1{font-size:29px;margin:0}.placeholder-status,.placeholder-next{border:1px solid var(--border);background:var(--surface);padding:25px;border-radius:10px;margin:23px 0}.placeholder-status h2,.placeholder-next h2{font-size:16px;margin:14px 0 10px;font-weight:500}.placeholder-status p,.placeholder-next>p{font-size:13px;color:var(--muted);line-height:2}.placeholder-next{border-style:dashed;background:transparent}.return-button{display:inline-block;padding:10px 18px;border:1px solid #456779;border-radius:6px;margin:24px 0;color:var(--text);font-size:12px}.return-button:hover{background:var(--raised)}
@media(max-width:700px){.topbar{padding:0 18px;min-height:65px}.brand{font-size:11px;gap:6px}.edition{font-size:8px;gap:6px}.edition .phase-tag{display:none}.shell{padding:30px 17px 20px}h1{font-size:27px}h1 span{display:block;font-size:15px;margin:7px 0 0}.lead{font-size:13px;margin-bottom:18px}.historical-strip{gap:10px 18px;padding:12px}.history-label{flex-basis:100%}.historical-strip b{font-size:16px}.section-heading{align-items:start}.section-heading>.quiet{display:none}.section-heading h2{font-size:17px}.map-toolbar{align-items:start;padding:13px 13px 6px}.legend{font-size:10px;gap:7px 13px}.small-button{font-size:10px;padding:4px 6px}.map-hint{padding:5px 13px 10px;font-size:10px}.map-viewport{max-height:650px}.map-caption{padding:10px 13px;font-size:10px}.module-grid{grid-template-columns:1fr}.module-card{min-height:132px;padding:18px;gap:12px}.card-content strong{font-size:16px}.gallery-card{padding:20px 18px;gap:13px}.gallery-card strong{font-size:16px}.gallery-card span span{font-size:11px}.playground-card{padding:21px 17px;gap:13px}.playground-card strong{font-size:18px}.playground-card span span{font-size:12px}.source-list{grid-template-columns:1fr}.footer{padding:18px;font-size:9px}.placeholder-title h1{font-size:24px;overflow-wrap:anywhere}.placeholder-title{align-items:flex-start}.placeholder-status,.placeholder-next{padding:20px}.back-link{margin-bottom:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
