*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #efe6d2;--bg-panel: rgba(31, 27, 22, .92);--bg-solid: #1f1b16;--ink: #1f1b16;--cream: #efe6d2;--text: #efe6d2;--text-on-light: #1f1b16;--text-dim: rgba(239, 230, 210, .55);--text-faint: rgba(239, 230, 210, .28);--accent: #c25a23;--accent-2: #3a5a78;--border: #1f1b16;--border-soft: rgba(31, 27, 22, .35);--font-display: "Bebas Neue", "Helvetica Neue", system-ui, sans-serif;--font-body: "Cormorant Garamond", Georgia, serif;--font-mono: "Space Mono", "Courier New", monospace}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased}#app{position:relative;width:100%;height:100%;isolation:isolate}#map{position:absolute;inset:0;z-index:0}.mapboxgl-ctrl-attrib{opacity:.25;font-size:9px!important;font-family:var(--font-mono)!important}.mapboxgl-ctrl-bottom-right{display:none}#top-bar{position:absolute;top:20px;left:20px;right:20px;z-index:30;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}#brand{pointer-events:auto}#brand-title{font-family:var(--font-display);font-size:44px;line-height:1;letter-spacing:.06em;color:var(--text-on-light);background:var(--cream);padding:4px 12px 0;border:2px solid var(--border);display:inline-block}[data-theme=bold] #brand-title{color:var(--cream);background:var(--bg-solid);border-color:var(--cream)}[data-theme=lapis] #brand-title{color:var(--bg-solid);background:var(--cream);border-color:var(--bg-solid)}[data-theme=mono] #brand-title{color:var(--cream);background:var(--bg-solid)}#brand-sub{margin-top:6px;font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-on-light);background:var(--cream);padding:4px 10px;display:inline-block;border:1px solid var(--border)}[data-theme=bold] #brand-sub{color:var(--cream);background:var(--bg-solid);border-color:var(--cream)}[data-theme=lapis] #brand-sub{color:var(--bg-solid);background:var(--cream);border-color:var(--bg-solid)}[data-theme=mono] #brand-sub{color:var(--cream);background:var(--bg-solid)}#top-actions{display:flex;gap:8px;pointer-events:auto}.chip{font-family:var(--font-display);font-size:18px;letter-spacing:.12em;padding:8px 16px 6px;background:var(--cream);color:var(--text-on-light);border:2px solid var(--border);cursor:pointer;transition:transform .12s ease,background .2s ease}.chip:hover{background:var(--accent);color:var(--cream)}[data-theme=bold] .chip{background:var(--bg-solid);color:var(--cream);border-color:var(--cream)}[data-theme=lapis] .chip{background:var(--cream);color:var(--bg-solid);border-color:var(--bg-solid)}[data-theme=mono] .chip{background:var(--bg-solid);color:var(--cream)}#narration{position:absolute;left:20px;bottom:130px;z-index:20;width:min(440px,calc(100vw - 40px));padding:22px 24px 26px;background:var(--bg-panel);color:var(--text);border:2px solid var(--border);pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}#narration.hidden{display:none}#narration.reveal{animation:fadein .6s ease both}@keyframes fadein{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}#narration-eyebrow{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);margin-bottom:12px}#narration-spacer{flex:1}#narration-coords{color:var(--text-dim)}#narration-title{font-family:var(--font-display);font-size:40px;line-height:1;letter-spacing:.04em;color:var(--cream);margin-bottom:4px}#narration-sub{font-family:var(--font-body);font-size:16px;font-style:italic;color:var(--accent);margin-bottom:14px;line-height:1.3}#narration-body{font-family:var(--font-body);font-size:18px;line-height:1.45;color:var(--text);font-weight:400}#rail{position:absolute;bottom:20px;left:20px;right:20px;z-index:25;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;background:var(--bg-panel);border:2px solid var(--border);padding:10px 14px}#rail-transport{display:flex;gap:6px}.t-btn{width:38px;height:38px;background:transparent;color:var(--text);border:1px solid var(--text-faint);font-family:var(--font-mono);font-size:14px;cursor:pointer;transition:background .12s ease,color .12s ease}.t-btn:hover{background:var(--cream);color:var(--text-on-light)}.t-btn.play{background:var(--accent);color:var(--cream);border-color:var(--accent)}.t-btn.pause{background:var(--cream);color:var(--text-on-light);border-color:var(--cream)}#rail-strip{display:flex;gap:6px;overflow-x:auto;scroll-behavior:smooth;padding-bottom:2px}#rail-strip::-webkit-scrollbar{height:4px}#rail-strip::-webkit-scrollbar-thumb{background:var(--text-faint);border-radius:2px}.rail-frame{flex-shrink:0;min-width:130px;background:transparent;color:var(--text-dim);border:1px solid var(--text-faint);padding:6px 10px 7px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:2px;transition:all .18s ease;font-family:var(--font-mono)}.rail-frame:hover{background:#ffffff14;color:var(--text)}.rail-frame.past{color:var(--text-faint);border-color:var(--text-faint)}.rail-frame.active{background:var(--cream);color:var(--text-on-light);border-color:var(--cream);transform:translateY(-2px)}.frame-num{font-family:var(--font-mono);font-size:9px;letter-spacing:.2em;opacity:.7}.frame-title{font-family:var(--font-display);font-size:14px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#rail-meta{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;color:var(--text-dim);white-space:nowrap}#layers-panel{position:absolute;top:90px;right:20px;z-index:28;width:280px;padding:18px 18px 16px;background:var(--bg-panel);color:var(--text);border:2px solid var(--border);display:flex;flex-direction:column;gap:10px;animation:panel-in .3s ease both}#layers-panel.hidden{display:none}@keyframes panel-in{0%{opacity:0;transform:translateY(-6px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.panel-header{font-family:var(--font-display);font-size:18px;letter-spacing:.12em;margin-bottom:4px}.panel-header.sm{font-size:13px;opacity:.75;margin-top:6px}.panel-divider{border-top:1px solid var(--text-faint);margin:4px 0}.toggle-row{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-row input{appearance:none;width:18px;height:18px;border:1.5px solid var(--text);background:transparent;cursor:pointer;position:relative}.toggle-row input:checked{background:var(--accent);border-color:var(--accent)}.toggle-row input:checked:after{content:"";position:absolute;left:4px;top:0;width:6px;height:11px;border:solid var(--cream);border-width:0 2px 2px 0;transform:rotate(45deg)}.ghost-btn{background:transparent;color:var(--text);border:1px dashed var(--text-faint);padding:8px 10px;font-family:var(--font-mono);font-size:10px;letter-spacing:.15em;cursor:pointer;text-align:left}.ghost-btn:hover{background:#ffffff14;border-color:var(--text)}#viz-mode-row{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.viz-btn{background:transparent;color:var(--text);border:1px solid var(--text-faint);padding:6px 4px;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:all .15s ease}.viz-btn:hover{background:#ffffff14;border-color:var(--text)}.viz-btn.active{background:var(--cream);color:var(--text-on-light);border-color:var(--cream)}#facts-panel{position:absolute;top:90px;right:20px;z-index:28;width:360px;max-width:calc(100vw - 40px);max-height:calc(100vh - 240px);padding:18px 20px;background:var(--bg-panel);color:var(--text);border:2px solid var(--border);display:flex;flex-direction:column;gap:14px;animation:panel-in .3s ease both;overflow:hidden}#facts-panel.hidden{display:none}#facts-title{display:flex;align-items:baseline;justify-content:space-between}#facts-counter{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;color:var(--text-dim)}#facts-categories{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.cat-btn{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;padding:6px 8px;background:transparent;color:var(--text);border:1px solid var(--text-faint);cursor:pointer;text-align:left;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;transition:all .15s ease}.cat-btn:hover{background:#ffffff0f;border-color:var(--text)}.cat-btn.active{background:var(--cream);color:var(--text-on-light);border-color:var(--cream)}.cat-glyph{font-size:13px;opacity:.8}.cat-count{font-size:9px;opacity:.6;font-feature-settings:"tnum"}.cat-btn.active .cat-count{opacity:.85}#facts-card{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--text-faint);padding-top:14px;min-height:0}#facts-eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.22em;color:var(--accent);text-transform:uppercase}#facts-body{font-family:var(--font-body);font-size:17px;line-height:1.5;color:var(--text);font-weight:400;min-height:110px;overflow-y:auto;padding-right:4px}#facts-body.reveal{animation:fact-in .4s ease both}@keyframes fact-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}#facts-actions{display:flex;justify-content:space-between;align-items:center;gap:8px}#facts-visit{font-family:var(--font-mono);font-size:10px;padding:6px 10px;letter-spacing:.14em}#facts-visit.hidden{visibility:hidden}#facts-controls{display:flex;gap:4px}.t-btn.small{width:32px;height:32px;font-size:12px}[data-theme=bunker] #facts-panel{border:3px solid var(--cream);background:#000000f5;box-shadow:0 0 30px #e8ff5a1a}[data-theme=bunker] .cat-btn{border:2px solid var(--text-faint);font-weight:700}[data-theme=bunker] .cat-btn.active{background:var(--cream);color:var(--bg-solid);box-shadow:0 0 14px #e8ff5a80}[data-theme=bunker] #facts-eyebrow{text-shadow:0 0 10px rgba(255,46,99,.4)}[data-theme=bunker] #facts-body{font-family:var(--font-mono);font-size:14px;line-height:1.6}[data-theme=bunker] .viz-btn{border:2px solid var(--text-faint);font-weight:700}[data-theme=bunker] .viz-btn.active{background:var(--cream);color:var(--bg-solid);box-shadow:0 0 14px #e8ff5a80}#splash{position:absolute;inset:0;z-index:60;display:grid;place-items:center;background:var(--bg);transition:opacity .6s ease}#splash.gone{opacity:0;pointer-events:none}#splash-inner{text-align:center;padding:40px;max-width:640px;color:var(--text-on-light)}[data-theme=bold] #splash-inner,[data-theme=lapis] #splash-inner{color:var(--cream)}[data-theme=mono] #splash-inner{color:var(--text-on-light)}#splash-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.28em;margin-bottom:18px;opacity:.65;text-transform:uppercase}#splash-title{font-family:var(--font-display);font-size:clamp(96px,18vw,240px);line-height:.9;letter-spacing:.04em}#splash-rule{width:80px;height:4px;background:var(--accent);margin:26px auto 24px}#splash-body{font-family:var(--font-body);font-size:22px;line-height:1.5;font-style:italic;max-width:480px;margin:0 auto 36px;opacity:.85}#splash-start{font-family:var(--font-display);font-size:22px;letter-spacing:.16em;padding:12px 28px 10px;background:var(--accent);color:var(--cream);border:2px solid var(--accent);cursor:pointer;transition:transform .15s ease}#splash-start:hover{transform:translateY(-2px)}#splash-foot{margin-top:24px;font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;opacity:.45}#scale-btn.active{background:var(--accent);color:var(--cream);border-color:var(--accent)}#scale-card{position:absolute;top:50%;left:50%;transform:translate(-50%,calc(-50% + 14px));z-index:32;width:min(560px,calc(100vw - 48px));padding:22px 26px 24px;background:var(--bg-panel);color:var(--text);border:2px solid var(--border);opacity:0;transition:opacity .5s ease .3s,transform .5s ease .3s;pointer-events:none;text-align:center}#scale-card.show{opacity:1;transform:translate(-50%,-50%)}.sc-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.sc-numbers{display:flex;align-items:baseline;justify-content:center;gap:18px;margin-bottom:14px;flex-wrap:wrap}.sc-num{display:flex;align-items:baseline;gap:6px}.sc-big{font-family:var(--font-display);font-size:56px;line-height:1;letter-spacing:.02em;color:var(--cream)}.sc-unit{font-family:var(--font-mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}.sc-vs{font-family:var(--font-display);font-size:30px;color:var(--accent);padding:0 4px}.sc-body{font-family:var(--font-body);font-size:18px;line-height:1.5;font-style:italic;color:var(--text);max-width:460px;margin:0 auto}.sc-body strong{font-style:normal;color:var(--accent)}.scale-pin{position:relative;display:flex;flex-direction:column;align-items:center;pointer-events:none;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}.sp-dot{width:14px;height:14px;background:var(--cream);border:2px solid var(--ink);border-radius:50%;margin-bottom:6px}.scale-pin.highlight .sp-dot{background:var(--accent);border-color:var(--cream);width:18px;height:18px;animation:pulse-dot 1.6s ease-in-out infinite}@keyframes pulse-dot{0%,to{box-shadow:0 0 #c25a2399}50%{box-shadow:0 0 0 12px #c25a2300}}.sp-label{background:var(--bg-panel);color:var(--text);border:1.5px solid var(--border);padding:4px 8px 5px;font-family:var(--font-mono);text-align:center;white-space:nowrap;min-width:80px}.sp-title{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--cream)}.sp-sub{font-size:10px;letter-spacing:.1em;color:var(--accent);margin-top:1px}[data-theme=bunker] #scale-card{border:3px solid var(--cream);background:#000000f5;box-shadow:0 0 30px #e8ff5a26}[data-theme=bunker] .sc-big{font-family:var(--font-mono);text-shadow:0 0 16px rgba(232,255,90,.4)}[data-theme=bunker] .sc-body{font-family:var(--font-mono);font-style:normal;font-size:14px}[data-theme=bunker] .sp-label{border:2px solid var(--cream)}[data-theme=bunker] .scale-pin.highlight .sp-dot{box-shadow:0 0 16px #ff2e63b3}[data-theme=bunker]{background:#0a0a0a}[data-theme=bunker] #brand-title{color:var(--cream);background:var(--bg-solid);border:3px solid var(--cream);font-family:var(--font-mono);font-weight:700;letter-spacing:.18em;padding:6px 14px;text-shadow:0 0 14px rgba(232,255,90,.35)}[data-theme=bunker] #brand-sub{color:var(--cream);background:var(--bg-solid);border:2px solid var(--cream);font-weight:700;text-shadow:0 0 8px rgba(232,255,90,.3)}[data-theme=bunker] .chip{background:var(--bg-solid);color:var(--cream);border:3px solid var(--cream);font-family:var(--font-mono);font-weight:700;font-size:14px;letter-spacing:.18em;text-shadow:0 0 8px rgba(232,255,90,.3)}[data-theme=bunker] .chip:hover{background:var(--accent);color:var(--bg-solid);border-color:var(--accent);text-shadow:none;box-shadow:0 0 20px #ff2e6380}[data-theme=bunker] #narration{border:3px solid var(--cream);background:#000000f0;box-shadow:0 0 36px #e8ff5a1f,inset 0 0 0 1px #0009}[data-theme=bunker] #narration-title{font-family:var(--font-mono);font-weight:700;letter-spacing:.06em;text-shadow:0 0 14px rgba(232,255,90,.4);text-transform:uppercase;font-size:30px;line-height:1.05}[data-theme=bunker] #narration-sub{font-family:var(--font-mono);font-style:normal;text-transform:uppercase;letter-spacing:.14em;font-size:11px;color:var(--accent);text-shadow:0 0 10px rgba(255,46,99,.5)}[data-theme=bunker] #narration-body{font-family:var(--font-mono);font-size:14px;line-height:1.55}[data-theme=bunker] #narration-eyebrow{color:var(--text-dim)}[data-theme=bunker] #narration-coords{color:var(--accent)}[data-theme=bunker] #rail{border:3px solid var(--cream);background:#000000f5;box-shadow:0 0 30px #e8ff5a1a}[data-theme=bunker] .rail-frame{border:2px solid var(--text-faint);color:var(--cream);font-family:var(--font-mono);border-radius:0}[data-theme=bunker] .rail-frame .frame-title{font-family:var(--font-mono);font-weight:700;letter-spacing:.1em}[data-theme=bunker] .rail-frame.active{background:var(--cream);color:var(--bg-solid);border-color:var(--cream);box-shadow:0 0 24px #e8ff5a80;text-shadow:none}[data-theme=bunker] .rail-frame.past{color:var(--text-faint);border-color:var(--text-faint)}[data-theme=bunker] .t-btn{border:2px solid var(--cream);color:var(--cream);font-weight:700}[data-theme=bunker] .t-btn:hover{background:var(--cream);color:var(--bg-solid)}[data-theme=bunker] .t-btn.play{background:var(--accent);border-color:var(--accent);color:var(--bg-solid);box-shadow:0 0 20px #ff2e6373}[data-theme=bunker] .t-btn.pause{background:var(--cream);color:var(--bg-solid);border-color:var(--cream)}[data-theme=bunker] #rail-meta{color:var(--text-dim)}[data-theme=bunker] #layers-panel{border:3px solid var(--cream);background:#000000f5;box-shadow:0 0 30px #e8ff5a1a}[data-theme=bunker] .panel-header{font-family:var(--font-mono);font-weight:700;letter-spacing:.18em;text-shadow:0 0 10px rgba(232,255,90,.35)}[data-theme=bunker] .toggle-row input{border:2px solid var(--cream);width:16px;height:16px}[data-theme=bunker] .toggle-row input:checked{background:var(--accent);border-color:var(--accent);box-shadow:0 0 12px #ff2e6373}[data-theme=bunker] .ghost-btn{border:2px dashed var(--text-faint);color:var(--cream)}[data-theme=bunker] .ghost-btn:hover{border-color:var(--cream);background:#e8ff5a14}[data-theme=bunker] #splash{background:#0a0a0a;color:var(--cream)}[data-theme=bunker] #splash-inner{color:var(--cream)}[data-theme=bunker] #splash-title{font-family:var(--font-mono);font-weight:700;letter-spacing:.04em;text-shadow:0 0 30px rgba(232,255,90,.45)}[data-theme=bunker] #splash-rule{background:var(--accent);box-shadow:0 0 12px #ff2e6399}[data-theme=bunker] #splash-eyebrow{color:var(--accent);letter-spacing:.32em}[data-theme=bunker] #splash-body{font-family:var(--font-mono);font-style:normal;font-size:14px;line-height:1.7;letter-spacing:.03em}[data-theme=bunker] #splash-start{background:var(--accent);border:3px solid var(--accent);color:var(--bg-solid);font-family:var(--font-mono);font-weight:700;letter-spacing:.22em;box-shadow:0 0 30px #ff2e6366}[data-theme=bunker] #splash-start:hover{background:var(--cream);color:var(--bg-solid);border-color:var(--cream);box-shadow:0 0 40px #e8ff5a80}[data-theme=bunker] #map:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:repeating-linear-gradient(0deg,rgba(232,255,90,.02) 0,rgba(232,255,90,.02) 1px,transparent 1px,transparent 3px);z-index:1;mix-blend-mode:screen}@media(max-width:720px){#narration{bottom:156px;padding:16px}#narration-title{font-size:32px}#narration-body{font-size:15px}#rail{grid-template-columns:1fr;gap:8px;padding:8px 10px}#rail-transport{justify-content:center}#rail-meta{text-align:center}#brand-title{font-size:32px}#layers-panel{top:80px;right:12px;left:12px;width:auto}}
