.stage{z-index:0;background:var(--bg0);position:fixed;inset:0}.mode-home .stage{pointer-events:none}.mode-home .stage canvas{touch-action:pan-y}.mode-lab .stage{pointer-events:auto}.btn{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);color:var(--ink);background:#0a162ea8;border-radius:999px;align-items:center;gap:8px;padding:10px 18px;font-size:15px;line-height:1.2;text-decoration:none;transition:background .2s,border-color .2s,transform .15s;display:inline-flex}.btn:hover{background:#142c58b8;border-color:#8cc8ff99}.btn:active{transform:scale(.97)}.btn small{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:12px}.btn .ico{text-align:center;width:12px;font-size:11px}.btn.primary{background:linear-gradient(#286ed28c,#143c8c8c);border-color:#57b6ffb3}.btn.primary.on{background:linear-gradient(#57b6ffd9,#286ed2cc);box-shadow:0 0 28px #57b6ff8c}.btn.listen.on{border-color:var(--cyan)}.btn.ghost{background:0 0}.icon{border:1px solid var(--line);background:#0a162e99;border-radius:999px;place-items:center;width:32px;height:32px;padding:0;font-size:13px;display:inline-grid}.icon:disabled{opacity:.3;cursor:default}.en{letter-spacing:.32em;color:var(--ink-faint);font-size:12px}.lead{color:var(--ink-dim);font-size:18px;line-height:1.7}.topbar{z-index:20;pointer-events:none;background:linear-gradient(#03050bd9,#03050b00);justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex;position:fixed;top:0;left:0;right:0}.topbar>*{pointer-events:auto}.brand{font-family:var(--serif);color:var(--ink);white-space:nowrap;align-items:baseline;gap:8px;font-size:18px;font-weight:700;text-decoration:none;display:flex}.brand small{font-family:var(--sans);letter-spacing:.3em;color:var(--ink-faint);font-size:10px;font-weight:400}.brand-dot{background:var(--blue);width:9px;height:9px;box-shadow:0 0 12px var(--blue);border-radius:50%;align-self:center}.topbar nav{align-items:center;gap:14px;font-size:14px;display:flex}.topbar nav a{color:var(--ink-dim);white-space:nowrap;text-decoration:none}.topbar nav a:hover,.topbar nav a.on{color:var(--ink)}.seg{border:1px solid var(--line);background:#0a162e99;border-radius:999px;display:inline-flex;overflow:hidden}.seg button{color:var(--ink-dim);background:0 0;border:0;padding:5px 10px;font-size:12px}.seg button.on{color:var(--ink);background:#57b6ff47}.badge{letter-spacing:.08em;border:1px solid var(--line);color:var(--ink-dim);white-space:nowrap;border-radius:999px;padding:5px 10px;font-size:11px}.badge.webgpu{color:var(--green);border-color:#6cffa880}.badge.webgl2{color:var(--yellow);border-color:#ffc24780}.loader{z-index:50;background:radial-gradient(at 50% 45%,#0b1a38 0%,#03050b 70%);place-items:center;transition:opacity .8s;display:grid;position:fixed;inset:0}.loader.out{opacity:0;pointer-events:none}.loader-inner{text-align:center;width:min(360px,80vw)}.loader-title{font-family:var(--serif);letter-spacing:.12em;font-size:40px;font-weight:700}.loader-sub{color:var(--ink-dim);margin:8px 0 28px;font-size:14px}.loader-bar{background:#8cbeff26;border-radius:3px;height:3px;overflow:hidden}.loader-bar i{background:linear-gradient(90deg, var(--blue), var(--cyan));height:100%;box-shadow:0 0 12px var(--blue);transition:width .3s;display:block}.loader-note{color:var(--ink-faint);margin-top:12px;font-size:12px}.loader-err{color:var(--red);line-height:1.7}.home{z-index:1;position:relative}.hero{min-height:100vh;flex-direction:column;justify-content:center;min-height:100svh;padding:90px 6vw 80px;display:flex;position:relative}.hero-inner{max-width:520px}.nobel{letter-spacing:.1em;color:#f3d79a;background:#281e0a59;border:1px solid #f3d79a73;border-radius:999px;align-items:center;gap:10px;padding:6px 14px 6px 6px;font-size:13px;display:inline-flex}.nobel span{color:#2a1e05;background:#f3d79a;border-radius:999px;padding:2px 9px;font-weight:700}.hero h1{font-family:var(--serif);letter-spacing:.08em;text-shadow:0 0 40px #57b6ff59;margin:22px 0 6px;font-size:clamp(56px,9vw,112px);font-weight:700;line-height:1.05}.hero .lead{color:var(--ink);margin:22px 0 10px;font-size:20px}.hero-text{color:var(--ink-dim);font-size:15px;line-height:1.8}.actions{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.cite{color:var(--ink-faint);margin-top:26px;font-size:12px;line-height:1.6}.scroll-hint{color:var(--ink-faint);letter-spacing:.1em;background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;font-size:13px;display:flex;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.scroll-hint span{animation:1.8s ease-in-out infinite bob}@keyframes bob{50%{transform:translateY(6px)}}.chapter{position:relative}.chapter-head{flex-direction:column;justify-content:center;max-width:calc(520px + 12vw);min-height:92vh;padding:80px 6vw;display:flex}.chapter-no{font-family:var(--serif);color:var(--cyan);letter-spacing:.3em;font-size:15px}.chapter-head h2,.labs-head h2{font-family:var(--serif);letter-spacing:.04em;text-shadow:0 2px 24px #0009;margin:12px 0 6px;font-size:clamp(36px,5vw,60px)}.chapter-head .lead{text-shadow:0 1px 12px #000c}.beat{align-items:center;min-height:96vh;padding:0 6vw;display:flex}.card{-webkit-backdrop-filter:blur(14px)saturate(1.2);background:#081022d6;border:1px solid #8cbeff29;border-radius:18px;max-width:440px;padding:24px 26px 20px;box-shadow:0 20px 60px #00000059}.kicker{color:var(--cyan);letter-spacing:.12em;font-variant-numeric:tabular-nums;font-size:13px}.card h3{font-family:var(--serif);margin:8px 0 10px;font-size:26px}.card p{color:#eaf2ffdb;margin:0;font-size:16px;line-height:1.85}.sources{color:var(--ink-faint);margin-top:14px;font-size:12px}.sources summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.sources summary::-webkit-details-marker{display:none}.sources summary:before{content:"＋ "}.sources[open] summary:before{content:"－ "}.sources ul{margin:8px 0 0;padding-left:18px;line-height:1.7}.sources a{color:var(--ink-dim);border-bottom:1px dotted var(--ink-faint);word-break:break-word;text-decoration:none}.sources a:hover{color:var(--cyan)}.labs{background:linear-gradient(#03050b00 0%,#03050bd1 160px,#03050be6 100%);padding:120px 6vw 80px;position:relative}.labs-head{max-width:640px;margin-bottom:36px}.grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;display:grid}.lab-card{color:var(--ink);background:#081022bf;border:1px solid #8cbeff29;border-radius:16px;flex-direction:column;text-decoration:none;transition:transform .25s,border-color .25s,box-shadow .25s;display:flex;overflow:hidden}.lab-card:hover{border-color:var(--accent);box-shadow:0 16px 50px #00000073, 0 0 0 1px var(--accent);transform:translateY(-4px)}.thumb{aspect-ratio:16/10;background:radial-gradient(at 50% 55%,#10264d,#04070f 75%);position:relative}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.thumb .no{font-family:var(--serif);color:var(--accent);text-shadow:0 0 14px var(--accent);font-size:22px;position:absolute;top:10px;left:12px}.lab-body{padding:14px 16px 18px}.lab-body h3{font-size:19px;font-family:var(--serif);margin:0 0 2px}.lab-body .en{font-size:10px}.lab-body p{color:var(--ink-dim);margin:10px 0 0;font-size:14px;line-height:1.7}.about{color:var(--ink-dim);background:#03050bf0;border-top:1px solid #8cbeff1f;padding:50px 6vw 140px;font-size:14px;line-height:1.8;position:relative}.about-cols{grid-template-columns:1fr 1fr;gap:40px;max-width:1100px;display:grid}.about h4{color:var(--ink);margin:0 0 8px;font-size:15px}.dots{z-index:10;flex-direction:column;gap:4px;display:flex;position:fixed;top:50%;right:18px;transform:translateY(-50%)}.dots.hidden{opacity:0;pointer-events:none}.dots{transition:opacity .3s}.dots button{color:var(--ink-faint);background:0 0;border:0;justify-content:flex-end;align-items:center;padding:5px 0;font-size:12px;display:flex}.dots button span{opacity:0;white-space:nowrap;margin-right:10px;transition:opacity .2s,transform .2s;transform:translate(6px)}.dots button:after{content:"";background:#eaf2ff47;border-radius:50%;width:7px;height:7px;transition:background .2s,box-shadow .2s}.dots button.on:after{background:var(--blue);box-shadow:0 0 10px var(--blue)}.dots:hover button span,.dots button.on span{opacity:1;transform:none}.dots button.on{color:var(--ink)}.station{z-index:1;pointer-events:none;position:relative}.station>*{pointer-events:auto}.panel{background:var(--panel);-webkit-backdrop-filter:blur(16px)saturate(1.2);z-index:5;border:1px solid #8cbeff29;border-radius:18px;flex-direction:column;width:380px;display:flex;position:fixed;top:64px;bottom:16px;left:16px;overflow:hidden;box-shadow:0 20px 60px #0006}.panel-head{justify-content:space-between;align-items:center;padding:14px 18px 0;display:flex}.back{color:var(--ink-dim);font-size:14px;text-decoration:none}.back:hover{color:var(--ink)}.fold{display:none}.st-title{align-items:center;gap:14px;padding:10px 18px 6px;display:flex}.st-title .no{font-family:var(--serif);color:var(--accent);text-shadow:0 0 18px var(--accent);font-size:34px}.st-title h1{font-family:var(--serif);margin:0;font-size:26px}.panel-body{overscroll-behavior:contain;scrollbar-width:thin;padding:4px 18px 18px;overflow-y:auto}.blurb{color:var(--ink-dim);margin:6px 0 14px;font-size:14px;line-height:1.7}.steps{background:#03081473;border:1px solid #8cbeff29;border-radius:14px;padding:12px 14px}.steps-head{color:var(--ink-faint);justify-content:space-between;align-items:center;font-size:12px;display:flex}.steps-nav{gap:6px;display:flex}.steps-nav .icon{width:28px;height:28px;font-size:18px}.steps h3{color:var(--accent);margin:8px 0 6px;font-size:18px}.steps p{margin:0;font-size:14.5px;line-height:1.8}.step-dots{gap:6px;margin-top:12px;display:flex}.step-dots button{background:#eaf2ff29;border:0;border-radius:3px;flex:1;height:4px;padding:0}.step-dots button.on{background:var(--accent);box-shadow:0 0 8px var(--accent)}.controls{flex-direction:column;gap:14px;margin:18px 0;display:flex}.ctl-label{color:var(--ink-dim);margin-bottom:6px;font-size:13px;display:block}.ctl.slider input{width:100%;accent-color:var(--accent)}.ends{color:var(--ink-faint);justify-content:space-between;font-size:11px;display:flex}.seg.wide{border-radius:12px;flex-wrap:wrap;display:flex}.seg.wide button{flex:auto;padding:8px 10px;font-size:13px}.ctl.toggle,.ctl.hold,.ctl.action{border:1px solid color-mix(in srgb, var(--c) 55%, transparent);background:color-mix(in srgb, var(--c) 10%, #060c1ab3);-webkit-user-select:none;user-select:none;touch-action:none;border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:12px 16px;font-size:15px;transition:background .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.ctl .sw{background:#eaf2ff2e;border-radius:999px;width:30px;height:16px;transition:background .2s;position:relative}.ctl .sw:after{content:"";background:var(--ink);border-radius:50%;width:12px;height:12px;transition:transform .2s;position:absolute;top:2px;left:2px}.ctl.toggle.on .sw{background:var(--c)}.ctl.toggle.on .sw:after{transform:translate(14px)}.ctl.toggle.on,.ctl.hold.on{background:color-mix(in srgb, var(--c) 34%, #060c1a99);box-shadow:0 0 24px color-mix(in srgb, var(--c) 45%, transparent), inset 0 0 0 1px var(--c)}.ctl.action:active{background:color-mix(in srgb, var(--c) 34%, #060c1a99)}.row{flex-wrap:wrap;gap:10px;display:flex}.row .btn{padding:8px 14px;font-size:14px}.note{color:var(--ink-faint);margin:16px 0 0;font-size:12px;line-height:1.7}.st-nav{border-top:1px solid #8cbeff1f;justify-content:space-between;gap:12px;margin-top:18px;padding-top:14px;font-size:13px;display:flex}.st-nav a{color:var(--ink-dim);text-decoration:none}.st-nav a:hover{color:var(--ink)}.widget-dock{z-index:4;width:300px;position:fixed;top:64px;right:16px}.widget{background:var(--panel);-webkit-backdrop-filter:blur(12px);color:var(--ink-dim);border:1px solid #8cbeff29;border-radius:14px;padding:12px 14px;font-size:12px}.widget-head{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.widget-head b{font-variant-numeric:tabular-nums;font-size:15px}.chart{width:100%;height:110px;display:block}.chart .dash{stroke:#eaf2ff4d;stroke-dasharray:4 4;stroke-width:1px;vector-effect:non-scaling-stroke}.chart .dash.red{stroke:#ff6a4db3}.chart.mol polygon,.chart.mol polyline,.chart.mol line{fill:none;stroke:var(--ink);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart.mol .n{fill:var(--blue)}.chart text{fill:var(--ink-dim);font-size:11px}.chart text.small{fill:var(--ink-faint);font-size:9px}.chart.brainmap .outline{fill:#8cbeff0f;stroke:#8cbeff66;stroke-width:1px}.chart.brainmap ellipse{stroke-width:1.2px;transition:opacity .3s}.widget-legend{color:var(--ink-dim);flex-wrap:wrap;gap:12px;margin-top:6px;display:flex}.sw.red,.widget-legend .sw{vertical-align:middle;border-top:1px dashed #eaf2ff80;width:12px;height:0;margin-right:5px;display:inline-block}.widget-legend .sw.red{border-color:var(--red)}.meter{grid-template-columns:96px 1fr 38px;align-items:center;gap:8px;margin:6px 0;display:grid}.meter b{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}.meter .bar{background:#eaf2ff1f;border-radius:4px;height:6px;overflow:hidden}.meter .bar i{background:var(--blue);height:100%;transition:width .15s;display:block}.meter .bar.amber i{background:var(--amber)}.bands{align-items:flex-end;gap:4px;height:80px;display:flex}.bands i{border-radius:3px 3px 0 0;flex:1;transition:height .12s,opacity .12s}.hint{z-index:3;color:var(--ink-faint);text-align:center;flex-direction:column;align-items:center;gap:4px;font-size:12px;display:flex;position:fixed;bottom:18px;left:calc(50% + 200px);transform:translate(-50%);pointer-events:none!important}.hint b{color:var(--ink);background:#08102299;border-radius:999px;padding:6px 14px;font-size:14px;font-weight:500}.narr{z-index:15;pointer-events:none;flex-direction:column;align-items:center;gap:10px;width:min(760px,100vw - 32px);display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.mode-lab .narr{width:min(680px,100vw - 460px);left:calc(50% + 200px)}.mode-lab .hint{bottom:96px}.narr>*{pointer-events:auto}.subtitle{opacity:0;background:#03060ec7;border-radius:12px;align-items:flex-start;gap:10px;max-width:100%;padding:10px 16px;transition:opacity .2s;display:flex}.subtitle.show{opacity:1}.subtitle .who{border-radius:999px;flex:none;margin-top:3px;padding:3px 8px;font-size:11px}.subtitle .who.A{color:var(--cyan);background:#57b6ff38}.subtitle .who.Q{color:var(--ask);background:#ffd27a33}.subtitle .line{font-size:18px;line-height:1.6}.subtitle .line.Q{color:var(--ask)}.narr-bar{border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);background:#081022d9;border-radius:999px;align-items:center;gap:12px;width:100%;padding:8px 10px;font-size:13px;display:flex}.narr-title{white-space:nowrap;text-overflow:ellipsis;max-width:34%;overflow:hidden}.narr-title em{color:var(--red);font-style:normal}.narr-progress{cursor:pointer;flex:1;align-items:center;height:18px;display:flex;position:relative}.narr-progress:before{content:"";background:#eaf2ff24;border-radius:3px;height:4px;position:absolute;left:0;right:0}.narr-progress i{background:var(--cyan);border-radius:3px;height:4px;position:relative}.narr-time{font-variant-numeric:tabular-nums;color:var(--ink-faint);font-size:12px}@media (max-width:759px){.topbar{padding:10px 14px}.brand small{display:none}.topbar nav{gap:8px;font-size:13px}.topbar nav a.tour-link{display:none}.brand{font-size:16px}.seg button{padding:4px 8px}.hero{justify-content:flex-end;padding:80px 16px 90px}.hero h1{font-size:60px}.hero .lead{font-size:17px}.hero-text{font-size:14px}.chapter-head{justify-content:flex-end;min-height:100vh;padding:80px 16px 60px}.lead{font-size:16px}.beat{align-items:flex-end;min-height:100vh;padding:0 16px 9vh}.card{max-width:none;padding:18px 18px 14px}.card h3{font-size:21px}.card p{font-size:15px;line-height:1.75}.labs{padding:100px 16px 60px}.about-cols{grid-template-columns:1fr;gap:20px}.about{padding:40px 16px 140px}.dots{display:none}.panel{border-radius:18px 18px 0 0;width:auto;max-height:50vh;inset:auto 0 0}.panel.collapsed .panel-body{display:none}.panel-head{padding:10px 16px 0}.fold{display:inline-grid}.st-title{padding:4px 16px}.st-title .no{font-size:26px}.st-title h1{font-size:21px}.panel-body{padding:2px 16px 24px}.widget-dock{transform-origin:100% 0;width:210px;top:54px;left:auto;right:10px}.widget{padding:8px 10px;font-size:11px}.chart{height:76px}.bands{height:50px}.meter{grid-template-columns:80px 1fr 32px}.hint{display:none}.narr{bottom:12px}.mode-lab .narr{flex-direction:column-reverse;width:calc(100vw - 24px);top:54px;bottom:auto;left:50%}.mode-lab .widget-dock{display:var(--dock,block)}.subtitle .line{font-size:15px}.narr-title{display:none}}@font-face{font-family:OptoSerif;src:url(./opto-serif-700-CLSyhysA.woff)format("woff");font-weight:400 900;font-display:swap}:root{--bg0:#03050b;--bg1:#070d1b;--bg2:#0d1a33;--ink:#eaf2ff;--ink-dim:#eaf2ffa8;--ink-faint:#eaf2ff57;--line:#8cbeff47;--blue:#57b6ff;--cyan:#7ce3ff;--yellow:#ffc247;--amber:#ffa733;--red:#ff6a4d;--green:#6cffa8;--violet:#a48bff;--ask:#ffd27a;--panel:#081022b8;--sans:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Source Han Sans SC", system-ui, sans-serif;--serif:"OptoSerif", "Songti SC", "STSong", "Noto Serif SC", "Source Han Serif SC", "SimSun", serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg0);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}body{overflow-x:hidden}a{color:var(--cyan)}button{color:inherit;cursor:pointer;font-family:inherit}::selection{background:#57b6ff59}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
