.nav-hamburger{z-index:1001;cursor:pointer;background:#0a0a1ad9;border:1px solid #2a2b5e;border-radius:6px;align-items:center;padding:8px 10px;display:flex;position:fixed;top:8px;left:8px}.nav-hamburger:hover{background:#1e1e3cf2}.hamburger-icon{background:#aaa;width:16px;height:2px;display:block;position:relative}.hamburger-icon:before,.hamburger-icon:after{content:"";background:#aaa;width:16px;height:2px;display:block;position:absolute;left:0}.hamburger-icon:before{top:-5px}.hamburger-icon:after{top:5px}.nav-hamburger:hover .hamburger-icon,.nav-hamburger:hover .hamburger-icon:before,.nav-hamburger:hover .hamburger-icon:after{background:#fff}.app-nav{z-index:1000;background:#0a0a1af2;border:1px solid #2a2b5e;border-radius:6px;flex-direction:column;gap:2px;padding:8px 6px;font-size:12px;display:none;position:fixed;top:40px;left:8px;box-shadow:0 4px 12px #00000080}.app-nav.open{display:flex}.app-nav a{color:#aaa;white-space:nowrap;border-radius:3px;padding:5px 12px;text-decoration:none}.app-nav a:hover{color:#fff;background:#ffffff14}.app-nav a.active{color:#aaf;background:#5078c833}*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#1a1a2e;--bg-surface:#1e1e34;--text:#e0e0e8;--text-secondary:#a0a0b8;--accent:#4a9eff;--accent-dim:#2a5a99;--callout-bg:#222240;--callout-border:#4a9eff;--nav-width:48px;--canvas-ratio:55%;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"SF Mono", "Fira Code", "JetBrains Mono", monospace}html{scroll-behavior:smooth;font-size:16px}body{background:var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.7;overflow-x:hidden}#app{grid-template-columns:var(--nav-width) 1fr 1fr;grid-template-rows:100vh;min-height:100vh;display:grid}#chapter-nav{background:var(--bg-surface);z-index:100;border-right:1px solid #ffffff0f;flex-direction:column;grid-area:1/1/-1;justify-content:center;align-items:center;gap:12px;height:100vh;display:flex;position:sticky;top:0}.nav-dot{cursor:pointer;background:#ffffff26;border:none;border-radius:50%;width:10px;height:10px;padding:0;transition:background .3s,transform .3s}.nav-dot:hover{background:#fff6;transform:scale(1.3)}.nav-dot.active{background:var(--accent);transform:scale(1.4)}#narrative{scroll-snap-type:y proximity;grid-area:1/2/-1;height:100vh;padding:80px 48px 200px;overflow-y:auto}#narrative-scroll{max-width:540px;margin:0 auto}.chapter{scroll-snap-align:start;min-height:80vh;padding:60px 0}.chapter+.chapter{border-top:1px solid #ffffff0f}.chapter h2{color:#fff;letter-spacing:-.02em;margin-bottom:8px;font-size:1.75rem;font-weight:600}.chapter .subtitle{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:32px;font-size:.9rem}.chapter p{color:var(--text);margin-bottom:20px}.chapter p+p{text-indent:0}.callout{border-left:3px solid var(--callout-border);background:var(--callout-bg);border-radius:0 6px 6px 0;margin:24px 0;padding:16px 20px}.callout-title{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:.85rem;font-weight:600}.callout p{color:var(--text-secondary);margin-bottom:8px;font-size:.92rem}.callout p:last-child{margin-bottom:0}.intro{padding:100px 0 60px}.intro-title{color:#fff;letter-spacing:-.02em;margin-bottom:8px;font-size:2.2rem;font-weight:300}.intro-subtitle{color:var(--text-secondary);margin-bottom:8px;font-size:1.15rem;font-style:italic}.intro-footnote{color:var(--accent-dim);text-align:right;margin-bottom:48px;font-size:.82rem;font-style:normal}.intro p{color:var(--text);margin-bottom:20px}.intro a{color:var(--accent);border-bottom:1px solid #4a9eff4d;text-decoration:none;transition:border-color .2s}.intro a:hover{border-color:var(--accent)}.epigraph{color:var(--text-secondary);quotes:none;border:none;margin:0 0 20px;padding:0 8px;font-size:.95rem;font-style:italic;line-height:1.8}.epigraph cite{color:var(--accent-dim);text-align:right;margin-top:12px;font-size:.82rem;font-style:normal;display:block}.epigraph cite a{color:var(--accent-dim);border-bottom:1px solid #4a9eff33;text-decoration:none;transition:color .2s,border-color .2s}.epigraph cite a:hover{color:var(--accent);border-color:var(--accent)}.part-header{text-align:center;padding:120px 0 40px}.part-header h1{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;font-size:1.3rem;font-weight:400}#canvas-col{background:#16162a;border-left:1px solid #ffffff0a;flex-direction:column;grid-area:1/3/-1;justify-content:center;align-items:center;height:100vh;display:flex;position:sticky;top:0}#c{aspect-ratio:1;border-radius:8px;width:90%;max-height:80vh}#canvas-legend{color:var(--text-secondary);text-align:center;min-height:20px;margin-top:16px;font-size:.8rem;transition:opacity .3s}.open-lab-btn{border:1px solid var(--accent-dim);color:var(--accent);cursor:pointer;background:#4a9eff1a;border-radius:8px;align-items:center;gap:8px;margin-top:28px;padding:10px 20px;font-size:.85rem;font-weight:500;text-decoration:none;transition:background .2s,border-color .2s,transform .15s;display:inline-flex}.open-lab-btn:hover{border-color:var(--accent);background:#4a9eff2e;transform:translateY(-1px)}.open-lab-btn:active{transform:translateY(0)}.open-lab-btn svg{flex-shrink:0;width:16px;height:16px}@media (width<=900px){#app{grid-template-rows:50vh auto;grid-template-columns:1fr}#chapter-nav{display:none}#canvas-col{z-index:10;border-bottom:1px solid #ffffff0f;grid-area:1/1;height:50vh;position:sticky;top:0;overflow:hidden}#c{max-height:calc(50vh - 56px)}#narrative{grid-area:2/1;height:auto;padding:40px 24px 120px;overflow:visible}}
