:root{--void: #030409;--deep: #07090f;--muted: #0d1117;--neural-blue: #4fc3f7;--neural-glow: #81d4fa;--cosmic-purple: #ce93d8;--cosmic-warm: #ffcc02;--synapse-fire: #ff6b35;--text-primary: #e8eaf6;--text-secondary: #78909c;--text-accent: #4fc3f7;--font-display: "Cormorant Garamond", serif;--font-body: "DM Mono", monospace;--font-number: "Bebas Neue", sans-serif}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--void);color:var(--text-primary);font-family:var(--font-body);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#gl-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0}#fallback{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:var(--void);color:var(--text-secondary);font-family:var(--font-body);font-size:1rem;text-align:center;padding:2rem}.audio-hint{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:50;font-family:var(--font-body);font-size:.75rem;color:var(--text-secondary);letter-spacing:.1em;opacity:0;transition:opacity 2s ease;pointer-events:none}.scroll-container{position:relative;z-index:1;pointer-events:none}.panel{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;opacity:0;transition:opacity .1s linear}.panel-content{max-width:600px;text-align:center;padding:2.5rem 2rem;border-radius:1rem;background:radial-gradient(ellipse at center,rgba(3,4,9,.88) 0%,rgba(3,4,9,.65) 60%,transparent 100%)}.display,.stat-block .number,.caption,.caption.large,cite{text-shadow:0 0 20px rgba(3,4,9,.9),0 0 40px rgba(3,4,9,.7)}#intro{min-height:120vh}#intro .display{text-align:center;padding:2rem;border-radius:1rem;background:radial-gradient(ellipse at center,rgba(3,4,9,.85) 0%,rgba(3,4,9,.5) 55%,transparent 100%)}#neural{min-height:350vh}#transition{min-height:200vh}#cosmic{min-height:280vh}#timeline{min-height:250vh}#you{min-height:120vh}.display{font-family:var(--font-display);font-weight:300;font-size:clamp(2.5rem,8vw,5.5rem);line-height:1.15;letter-spacing:.03em;color:var(--text-primary)}.display em{font-style:italic;color:var(--text-accent)}.display.small{font-size:clamp(2rem,6vw,4rem)}.stat-block{margin-bottom:1.5rem}.stat-block .number{display:block;font-family:var(--font-number);font-size:clamp(2.5rem,10vw,5rem);line-height:1;letter-spacing:.04em;color:var(--text-accent)}.stat-block .label{display:block;font-family:var(--font-body);font-size:.85rem;color:var(--text-secondary);letter-spacing:.08em;margin-top:.25rem}.caption{font-family:var(--font-body);font-size:.9rem;line-height:1.7;color:var(--text-secondary);margin-top:1.5rem}.caption.large{font-size:clamp(1rem,3vw,1.3rem);color:var(--text-primary);line-height:1.8}cite{display:block;font-family:var(--font-body);font-style:normal;font-size:.7rem;color:var(--text-secondary);opacity:.5;margin-top:1.5rem;letter-spacing:.05em}.timeline-labels{position:fixed;bottom:0;left:0;width:100%;height:50vh;z-index:2;pointer-events:none;opacity:0;transition:opacity .1s linear}.timeline-event{position:absolute;bottom:55%;transform:translate(-50%);text-align:center;white-space:nowrap;max-width:12rem;overflow:hidden;text-overflow:ellipsis}.timeline-event .timeline-label{display:block;font-family:var(--font-body);font-size:.6rem;letter-spacing:.08em;color:var(--text-primary);margin-bottom:.15rem}.timeline-event .timeline-sublabel{display:block;font-family:var(--font-body);font-size:.5rem;color:var(--text-secondary);opacity:.7}.timeline-event.category-cosmic .timeline-label{color:var(--cosmic-purple)}.timeline-event.category-biological .timeline-label{color:var(--synapse-fire)}.timeline-event.category-human .timeline-label{color:var(--neural-blue)}.timeline-event.category-ai .timeline-label{color:var(--cosmic-warm)}.timeline-event .timeline-label,.timeline-event .timeline-sublabel{text-shadow:0 0 12px rgba(3,4,9,.95),0 0 24px rgba(3,4,9,.8)}@media (max-width: 600px){.panel{padding:1.5rem}.timeline-event .timeline-label{font-size:.5rem}.timeline-event .timeline-sublabel{display:none}}
