:root{--obsidian:#0d0d0f;--surface:#141416;--ivory:#f5f0e8;--zinc:#71717a;--phosphor:#0f8;--amber:#ff9500;--violet:#a855f7;--crimson:#dc2626;--stage-roots:#0f8;--stage-sprouts:#22c55e;--stage-branches:#ff9500;--stage-canopy:#166534;--stage-underground:#a855f7;--radius-card:12px;--radius-btn:8px;--border-subtle:#27272a;--border-ivory:#f5f0e8;--border-active:#0f8;--font-display:"Syne",system-ui,sans-serif;--font-serif:"Source Serif 4",Georgia,serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--text-display:700 48px/56px var(--font-display);--text-h1:700 32px/40px var(--font-display);--text-h2:600 24px/32px var(--font-serif);--text-body:400 16px/26px var(--font-serif);--text-body-lg:400 18px/28px var(--font-serif);--text-ui:500 14px/20px var(--font-mono);--text-caption:400 12px/16px var(--font-mono);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--duration-instant:150ms;--duration-fast:200ms;--duration-normal:300ms;--duration-slow:400ms;--duration-reveal:500ms;--duration-palace:1300ms;--ease-smooth:cubic-bezier(0.4,0,0.2,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--ease-out:cubic-bezier(0,0,0.2,1);--glow-phosphor:0 0 12px rgba(0,255,136,.3);--glow-amber:0 0 12px rgba(255,149,0,.3);--glow-violet:0 0 12px rgba(168,85,247,.3);--glow-ivory:0 0 8px hsla(37,39%,94%,.15);--max-width-content:480px;--nav-height-mobile:64px;--anim-instant:150ms;--anim-fast:200ms;--anim-normal:300ms;--anim-slow:500ms;--anim-reveal:800ms;--anim-glacial:1300ms}.ease-smooth{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-spring{transition-timing-function:cubic-bezier(.34,1.56,.64,1)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.anim-fade-in{animation:fade-in var(--anim-normal) ease-out}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.anim-slide-up{animation:slide-up var(--anim-slow) ease-out}@keyframes pulse-phosphor{0%{box-shadow:0 0 0 0 rgba(0,255,136,.5)}50%{box-shadow:0 0 0 12px rgba(0,255,136,0)}to{box-shadow:0 0 0 0 rgba(0,255,136,0)}}.anim-pulse-phosphor{animation:pulse-phosphor 2s ease-out infinite}@keyframes pulse-amber{0%{box-shadow:0 0 0 0 rgba(255,149,0,.6)}50%{box-shadow:0 0 0 12px rgba(255,149,0,0)}to{box-shadow:0 0 0 0 rgba(255,149,0,0)}}.anim-pulse-amber{animation:pulse-amber 2s ease-out infinite}@keyframes glow-phosphor{0%{filter:drop-shadow(0 0 4px rgba(0,255,136,.3))}50%{filter:drop-shadow(0 0 12px rgba(0,255,136,.6))}to{filter:drop-shadow(0 0 4px rgba(0,255,136,.3))}}.anim-glow-phosphor{animation:glow-phosphor 3s ease-in-out infinite}.anim-stagger>*{opacity:0;animation:slide-up var(--anim-slow) ease-out forwards}.anim-stagger>:first-child{animation-delay:0ms}.anim-stagger>:nth-child(2){animation-delay:.1s}.anim-stagger>:nth-child(3){animation-delay:.2s}.anim-stagger>:nth-child(4){animation-delay:.3s}.anim-stagger>:nth-child(5){animation-delay:.4s}.anim-stagger>:nth-child(6){animation-delay:.5s}.anim-stagger>:nth-child(7){animation-delay:.6s}.anim-stagger>:nth-child(8){animation-delay:.7s}@keyframes scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.anim-scale-in{animation:scale-in var(--anim-normal) ease-out}@keyframes flash-correct{0%{background-color:hsla(37,39%,94%,.15)}to{background-color:transparent}}.anim-flash-correct{animation:flash-correct var(--anim-fast) ease-out}@keyframes flash-discovery{0%{background-color:rgba(255,149,0,.15)}to{background-color:transparent}}.anim-flash-discovery{animation:flash-discovery var(--anim-fast) ease-out}@keyframes pulse-btn-glow{0%{box-shadow:0 0 0 0 rgba(0,255,136,.5)}50%{box-shadow:0 0 0 8px rgba(0,255,136,.3)}to{box-shadow:0 0 0 0 rgba(0,255,136,.5)}}.pulse-indicator{animation:pulse-btn-glow 2s ease-in-out infinite}.anim-blueprint-draw{stroke-dasharray:100%;animation:blueprint-draw var(--anim-glacial) ease-out forwards}@keyframes ripple{0%{box-shadow:0 0 0 0 var(--ripple-color,rgba(0,255,136,.5))}to{box-shadow:0 0 0 16px var(--ripple-color,rgba(0,255,136,0))}}.anim-ripple{animation:ripple var(--anim-fast) ease-out}@keyframes progress-glow{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.anim-progress-active{animation:progress-glow 2s ease-in-out infinite}@import url("https://fonts.googleapis.com/css2?family=Syne:wght@600;700&family=Source+Serif+4:ital,wght@0,400;0,600;1,400&family=JetBrains+Mono:wght@400;500&display=swap");*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{background-color:var(--obsidian);color:var(--ivory);font:var(--text-body);min-height:100dvh;overflow-x:hidden}::-webkit-scrollbar{width:6px;background:var(--obsidian)}::-webkit-scrollbar-thumb{background:var(--zinc);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--ivory)}::selection{background:var(--phosphor);color:var(--obsidian)}:focus-visible{outline:1px solid var(--phosphor);outline-offset:2px;border-radius:4px}.text-display{font:var(--text-display)}.text-h1{font:var(--text-h1)}.text-h2{font:var(--text-h2)}.text-body-lg{font:var(--text-body-lg)}.text-body{font:var(--text-body)}.text-ui{font:var(--text-ui)}.text-caption{font:var(--text-caption)}.surface{background-color:var(--surface)}.obsidian{background-color:var(--obsidian)}.card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-card)}.btn{font:var(--text-ui);border-radius:var(--radius-btn);cursor:pointer;transition:all var(--duration-fast) var(--ease-smooth);border:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--ivory);color:var(--obsidian);padding:var(--space-3) var(--space-6)}.btn-primary:hover{box-shadow:var(--glow-ivory)}.btn-secondary{background:transparent;color:var(--ivory);border:1px solid var(--ivory);padding:var(--space-3) var(--space-6)}.btn-secondary:hover{border-color:var(--phosphor);color:var(--phosphor)}.btn-ghost{background:transparent;color:var(--zinc);padding:var(--space-2) var(--space-4)}.btn-ghost:hover{color:var(--ivory)}.nav-bar{position:fixed;bottom:0;left:0;right:0;height:var(--nav-height-mobile);background:var(--obsidian);border-top:1px solid var(--border-subtle);justify-content:space-around;padding:0 var(--space-4);z-index:100}.nav-bar,.nav-item{display:flex;align-items:center}.nav-item{flex-direction:column;gap:var(--space-1);color:var(--zinc);font:var(--text-caption);cursor:pointer;transition:color var(--duration-fast) var(--ease-smooth);padding:var(--space-2);border-radius:var(--radius-btn)}.nav-item svg{width:24px;height:24px;stroke-width:1.5}.nav-item.active,.nav-item:hover:not(.active){color:var(--ivory)}.palace-container{background:var(--obsidian);position:relative;overflow:hidden}.palace-room{stroke:var(--ivory);stroke-width:1px;fill:var(--surface);transition:all var(--duration-normal) var(--ease-smooth)}.palace-room.active{stroke:var(--phosphor);filter:drop-shadow(0 0 6px rgba(0,255,136,.4))}.palace-room.dormant,.palace-room.locked{stroke:var(--zinc);fill:none}.palace-room.locked{stroke-dasharray:4 4}@keyframes blueprint-draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}.palace-reveal .blueprint-line{stroke-dasharray:1;animation:blueprint-draw var(--duration-reveal) var(--ease-out) forwards}@keyframes ripple-correct{0%{box-shadow:0 0 0 0 hsla(37,39%,94%,.6)}to{box-shadow:0 0 0 16px hsla(37,39%,94%,0)}}.ripple-correct{animation:ripple-correct var(--duration-fast) var(--ease-out)}@keyframes ripple-discovery{0%{box-shadow:0 0 0 0 rgba(255,149,0,.6)}to{box-shadow:0 0 0 16px rgba(255,149,0,0)}}.ripple-discovery{animation:ripple-discovery var(--duration-fast) var(--ease-out)}.progress-track{height:4px;background:var(--border-subtle);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:var(--phosphor);border-radius:2px;transition:width var(--duration-slow) var(--ease-out)}.input{width:100%;background:var(--obsidian);border:1px solid var(--border-subtle);border-radius:var(--radius-btn);color:var(--ivory);font:var(--text-ui);padding:var(--space-3) var(--space-4);transition:border-color var(--duration-fast) var(--ease-smooth)}.input::placeholder{color:var(--zinc)}.input:focus{outline:none;border-color:var(--phosphor);box-shadow:0 0 0 2px rgba(0,255,136,.15)}.pillar-chart{stroke:var(--phosphor);stroke-width:1.5px;fill:rgba(0,255,136,.15);transition:all var(--duration-slow) var(--ease-out)}.node-ignorance{fill:var(--crimson);transition:all var(--duration-normal) var(--ease-spring)}.node-ignorance.pulse{fill:var(--amber);filter:drop-shadow(0 0 8px var(--amber))}.page{padding-bottom:calc(var(--nav-height-mobile) + var(--space-8));padding-left:var(--space-4);padding-right:var(--space-4)}.page,.page-full{min-height:100dvh}.container{max-width:var(--max-width-content);margin:0 auto;padding:var(--space-8) var(--space-4)}.stage-label{font:var(--text-display);letter-spacing:.05em}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}