@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;900&family=JetBrains+Mono:wght@400;600;700&display=swap');:root{--accent:#38bdf8;--accent-warm:#fbbf24;--ink:#f8fafc;--ink-dim:rgba(248,250,252,0.68);--panel-bg:rgba(10,14,22,0.55);--panel-border:rgba(255,255,255,0.12);--danger:#ef4444;font-family:'Inter',system-ui,sans-serif;}*{box-sizing:border-box;}html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden;background:#05070c;color:var(--ink);}#app{position:relative;width:100%;height:100%;}#cesiumMain{position:absolute;inset:0;}#minimapWrap{position:absolute;top:22px;right:22px;width:260px;height:260px;border-radius:16px;overflow:hidden;z-index:30;border:2px solid rgba(56,189,248,0.35);box-shadow:0 8px 32px rgba(0,0,0,0.55),0 0 0 1px rgba(255,255,255,0.05) inset;background:#030509;transition:opacity 0.4s ease,transform 0.4s ease;}#cesiumMini{position:absolute;inset:0;}.minimap-label{position:absolute;top:8px;left:12px;font-size:10px;font-weight:700;letter-spacing:0.14em;color:var(--ink-dim);text-transform:uppercase;z-index:2;pointer-events:none;font-family:'JetBrains Mono',monospace;}.minimap-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 40px 8px rgba(0,0,0,0.65);border-radius:16px;}#screenVignette{position:absolute;inset:0;z-index:6;pointer-events:none;box-shadow:inset 0 0 22vw 4vw rgba(0,0,0,0.55);opacity:0;transition:opacity 0.6s ease;}#filmGrain{position:absolute;inset:-50px;z-index:7;pointer-events:none;opacity:0;transition:opacity 0.6s ease;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E");background-repeat:repeat;mix-blend-mode:overlay;animation:grainShift 0.5s steps(3) infinite;}@keyframes grainShift{0%{transform:translate(0,0);}33%{transform:translate(-6px,4px);}66%{transform:translate(4px,-6px);}100%{transform:translate(0,0);}}#letterboxTop,#letterboxBottom{position:absolute;left:0;right:0;height:0;background:#000;z-index:65;pointer-events:none;transition:height 0.6s cubic-bezier(.2,.8,.2,1);}#letterboxTop{top:0;}#letterboxBottom{bottom:0;}body.cinematic #screenVignette,body.cinematic #filmGrain{opacity:1;}body.cinematic #letterboxTop,body.cinematic #letterboxBottom{height:8.5vh;}#factTicker{position:absolute;top:296px;right:22px;z-index:25;max-width:260px;background:var(--panel-bg);border:1px solid var(--panel-border);backdrop-filter:blur(10px);padding:9px 14px;border-radius:10px;font-size:12px;font-weight:600;color:var(--ink-dim);line-height:1.4;opacity:0;transform:translateY(-6px);transition:all 0.6s ease;}#factTicker.show{opacity:1;transform:translateY(0);}#debugPanel{position:absolute;top:84px;left:22px;z-index:26;margin:0;background:rgba(0,0,0,0.72);border:1px solid rgba(255,255,255,0.15);border-radius:8px;padding:8px 12px;font-family:'JetBrains Mono',monospace;font-size:11px;line-height:1.6;color:#a3e635;white-space:pre;display:none;pointer-events:none;}body.debug #debugPanel{display:block;}#hud{position:absolute;left:0;right:0;bottom:0;z-index:20;padding:18px 26px 20px;pointer-events:none;background:linear-gradient(to top,rgba(3,5,9,0.82) 0%,rgba(3,5,9,0.45) 55%,transparent 100%);}.stat-row{display:flex;gap:34px;align-items:baseline;margin-bottom:12px;flex-wrap:wrap;}.stat{display:flex;flex-direction:column;gap:2px;}.stat-value{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:700;color:var(--ink);text-shadow:0 2px 12px rgba(0,0,0,0.6);}.stat.warp .stat-value{color:var(--accent-warm);}.gauge-row{display:flex;align-items:center;gap:6px;}#speedNeedle{transition:transform 0.25s ease-out;}.stat-label{font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-dim);}.progress-track{display:flex;gap:3px;height:6px;border-radius:4px;overflow:hidden;pointer-events:auto;}.progress-seg{flex:1 1 auto;background:rgba(255,255,255,0.14);position:relative;min-width:3px;cursor:pointer;transition:background 0.15s ease;}.progress-seg:hover{background:rgba(255,255,255,0.32);}.progress-seg .fill{position:absolute;inset:0;width:0%;background:linear-gradient(90deg,var(--accent),#7dd3fc);transition:width 0.15s linear;}.progress-seg.done .fill{width:100%;background:linear-gradient(90deg,#0ea5e9,#38bdf8);}.progress-seg.active{box-shadow:0 0 0 1px rgba(56,189,248,0.6);}#topBar{position:absolute;top:22px;left:22px;z-index:20;display:flex;align-items:center;gap:14px;pointer-events:none;}.local-clock{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:15px;background:var(--panel-bg);border:1px solid var(--panel-border);padding:8px 14px;border-radius:10px;backdrop-filter:blur(10px);display:flex;flex-direction:column;gap:2px;}.local-clock .tz{font-size:9px;letter-spacing:0.1em;color:var(--ink-dim);font-weight:600;}.flag-chip{display:flex;align-items:center;gap:8px;background:var(--panel-bg);border:1px solid var(--panel-border);padding:6px 12px 6px 6px;border-radius:10px;backdrop-filter:blur(10px);font-size:13px;font-weight:700;letter-spacing:0.04em;opacity:0;transform:translateX(-8px);transition:all 0.5s ease;}.flag-chip.show{opacity:1;transform:translateX(0);}.flag-swatch{width:28px;height:20px;border-radius:3px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,0.4);flex-shrink:0;}#poiLabel{position:absolute;left:50%;top:16%;transform:translate(-50%,-8px);z-index:25;text-align:center;opacity:0;transition:all 0.6s cubic-bezier(.2,.8,.2,1);pointer-events:none;}#poiLabel.show{opacity:1;transform:translate(-50%,0);}#poiLabel .code{font-family:'JetBrains Mono',monospace;font-size:46px;font-weight:900;letter-spacing:0.05em;color:var(--ink);text-shadow:0 4px 24px rgba(0,0,0,0.7);line-height:1;}#poiLabel .full{font-size:13px;color:var(--ink-dim);letter-spacing:0.08em;text-transform:uppercase;margin-top:4px;font-weight:600;}#stateLabel{position:absolute;left:50%;top:10%;transform:translate(-50%,-10px) scale(0.9);z-index:25;opacity:0;transition:all 0.5s cubic-bezier(.2,.8,.2,1);pointer-events:none;font-weight:900;font-size:30px;letter-spacing:0.08em;color:var(--ink);text-shadow:0 4px 20px rgba(0,0,0,0.7);padding:6px 22px;border-radius:999px;background:linear-gradient(90deg,rgba(56,189,248,0.18),rgba(56,189,248,0.02));border:1px solid rgba(56,189,248,0.35);}#stateLabel.show{opacity:1;transform:translate(-50%,0) scale(1);}#chapterCard{position:absolute;inset:0;z-index:51;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:90px 70px;background:linear-gradient(100deg,rgba(3,5,9,0.85) 0%,rgba(3,5,9,0.45) 45%,transparent 75%);opacity:0;pointer-events:none;transition:opacity 0.7s ease;}#chapterCard.show{opacity:1;}.chapter-eyebrow{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;color:var(--accent);letter-spacing:0.25em;margin-bottom:14px;text-shadow:0 2px 10px rgba(0,0,0,0.85);opacity:0;transform:translateY(10px);transition:all 0.6s ease 0.15s;}#chapterCard.show .chapter-eyebrow{opacity:1;transform:translateY(0);}.chapter-title{font-size:clamp(32px,5vw,68px);font-weight:900;margin:0;line-height:1.02;letter-spacing:-0.01em;max-width:900px;text-shadow:0 4px 20px rgba(0,0,0,0.85);opacity:0;transform:translateY(18px);transition:all 0.7s ease 0.25s;}#chapterCard.show .chapter-title{opacity:1;transform:translateY(0);}.chapter-subtitle{font-size:17px;color:var(--ink-dim);margin:14px 0 0;font-weight:600;max-width:640px;text-shadow:0 2px 10px rgba(0,0,0,0.85);opacity:0;transform:translateY(14px);transition:all 0.7s ease 0.35s;}#chapterCard.show .chapter-subtitle{opacity:1;transform:translateY(0);}#stampOverlay{position:absolute;inset:0;z-index:52;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;}.stamp-inner{display:flex;flex-direction:column;align-items:center;gap:18px;transform:scale(2.2) rotate(-8deg);opacity:0;}#stampOverlay.stamp-hit .stamp-inner{animation:stampSlam 0.55s cubic-bezier(.2,1.4,.4,1) forwards;}#stampOverlay.stamp-hit{opacity:1;transition:opacity 0.3s ease 1.4s;}@keyframes stampSlam{0%{transform:scale(2.6) rotate(-14deg);opacity:0;}55%{transform:scale(0.94) rotate(-6deg);opacity:1;}70%{transform:scale(1.06) rotate(-7deg);}100%{transform:scale(1) rotate(-6deg);opacity:1;}}.stamp-flags{display:flex;align-items:center;gap:20px;}.stamp-flag-swatch{width:96px;height:64px;border-radius:6px;box-shadow:0 10px 40px rgba(0,0,0,0.6),0 0 0 4px rgba(255,255,255,0.08);overflow:hidden;}.stamp-arrow{font-size:34px;color:var(--ink-dim);}.stamp-text{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:22px;letter-spacing:0.1em;color:var(--ink);text-transform:uppercase;border:3px solid var(--danger);padding:6px 22px;border-radius:6px;transform:rotate(-2deg);background:rgba(3,5,9,0.55);backdrop-filter:blur(4px);box-shadow:0 0 0 2px rgba(239,68,68,0.25) inset,0 8px 28px rgba(0,0,0,0.6);}#celebration{position:absolute;inset:0;z-index:55;pointer-events:none;overflow:hidden;}#confettiLayer{position:absolute;inset:0;overflow:hidden;}.confetti-piece{position:absolute;top:-5%;width:9px;height:15px;background:var(--c,var(--accent));opacity:0.95;animation:confettiFall linear forwards;border-radius:1px;}@keyframes confettiFall{0%{transform:translate3d(0,0,0) rotate(0deg);opacity:1;}85%{opacity:1;}100%{transform:translate3d(var(--dx,40px),108vh,0) rotate(540deg);opacity:0;}}.celebration-card{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%) scale(0.7);text-align:center;opacity:0;transition:none;}#celebration.show .celebration-card{animation:celebPop 0.7s cubic-bezier(.2,1.5,.4,1) forwards;}@keyframes celebPop{0%{opacity:0;transform:translate(-50%,-50%) scale(0.5);}60%{opacity:1;transform:translate(-50%,-50%) scale(1.08);}100%{opacity:1;transform:translate(-50%,-50%) scale(1);}}.celebration-emoji{font-size:54px;margin-bottom:8px;filter:drop-shadow(0 6px 18px rgba(0,0,0,0.5));}.celebration-title{font-size:clamp(28px,4.6vw,56px);font-weight:900;letter-spacing:0.01em;color:#fff;text-shadow:0 4px 26px rgba(0,0,0,0.75);white-space:nowrap;}.celebration-sub{margin-top:10px;font-size:16px;font-weight:600;color:var(--ink-dim);text-shadow:0 2px 12px rgba(0,0,0,0.7);}#brandBadge{position:absolute;left:26px;bottom:92px;z-index:22;display:flex;align-items:center;gap:10px;background:var(--panel-bg);border:1px solid var(--panel-border);backdrop-filter:blur(10px);padding:10px 16px;border-radius:12px;opacity:0;transform:translateY(10px);transition:all 0.6s cubic-bezier(.2,.8,.2,1);}#brandBadge.show{opacity:1;transform:translateY(0);}.brand-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}.brand-logo{display:none;height:22px;max-width:90px;object-fit:contain;background:#fff;border-radius:4px;padding:3px 7px;flex-shrink:0;}.brand-text{font-size:13px;font-weight:700;letter-spacing:0.02em;}#photoMemory{position:absolute;right:26px;bottom:100px;z-index:35;width:220px;opacity:0;pointer-events:none;transform:translateY(18px) rotate(3.5deg) scale(0.92);transition:opacity 0.6s cubic-bezier(.2,.8,.2,1),transform 0.6s cubic-bezier(.2,.8,.2,1);}#photoMemory.show{opacity:1;transform:translateY(0) rotate(-2.5deg) scale(1);}.photo-memory-frame{background:#f7f6ef;padding:10px 10px 32px;border-radius:2px;box-shadow:0 16px 40px rgba(0,0,0,0.55),0 0 0 1px rgba(0,0,0,0.08);}.photo-memory-clip{width:100%;aspect-ratio:16 / 9;overflow:hidden;border-radius:1px;background:#1a1a1a;}.photo-memory-frame img{display:block;width:100%;height:100%;object-fit:contain;opacity:0;}#photoMemory.show .photo-memory-frame img{animation:photoMemoryFadeIn 0.6s ease-out forwards;}@keyframes photoMemoryFadeIn{0%{opacity:0;}100%{opacity:1;}}.photo-memory-caption{position:absolute;left:10px;right:10px;bottom:9px;text-align:center;font-size:12px;font-weight:700;letter-spacing:0.01em;color:#2b2a24;}#controls{position:absolute;left:50%;bottom:112px;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:14px;background:var(--panel-bg);border:1px solid var(--panel-border);backdrop-filter:blur(14px);padding:10px 16px;border-radius:999px;box-shadow:0 8px 32px rgba(0,0,0,0.5);}#controls button{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);color:var(--ink);width:38px;height:38px;border-radius:50%;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;transition:all 0.15s ease;}#controls button:hover{background:rgba(56,189,248,0.25);border-color:var(--accent);}#controls button.play-btn{width:46px;height:46px;background:var(--accent);color:#041018;border:none;}#controls button.play-btn:hover{background:#7dd3fc;}#speedWrap{display:flex;align-items:center;gap:8px;}#speedDial{width:110px;accent-color:var(--accent);}#speedLabel{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;width:44px;color:var(--ink-dim);}#btnPresentation,#btnCueSheet,#btnWarmup,#btnRecordSpeed{width:auto !important;border-radius:999px !important;padding:0 16px;font-size:12px !important;font-weight:700;letter-spacing:0.04em;}#btnRecordSpeed.active{background:rgba(239,68,68,0.3);border-color:var(--danger);color:#fff;}#btnCinematic.active,#btnDebug.active{background:rgba(56,189,248,0.35);border-color:var(--accent);}#btnWarmup:disabled{opacity:0.6;cursor:default;pointer-events:none;}#legName{font-size:11px;color:var(--ink-dim);font-weight:700;letter-spacing:0.06em;text-transform:uppercase;padding:0 6px;min-width:120px;text-align:center;}#bookend{position:absolute;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;background:radial-gradient(ellipse at center,rgba(8,12,20,0.3) 0%,rgba(3,5,9,0.58) 75%);transition:opacity 0.9s ease;}#bookend.hidden{opacity:0;pointer-events:none;}#bookend h1{font-size:clamp(30px,5.5vw,64px);font-weight:900;margin:0 0 10px;letter-spacing:-0.01em;background:linear-gradient(90deg,#fff,#93d9ff 60%,#38bdf8);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 22px rgba(0,0,0,0.7));}#bookend .sub{font-size:16px;color:var(--ink-dim);font-weight:600;letter-spacing:0.06em;margin-bottom:30px;text-shadow:0 2px 12px rgba(0,0,0,0.7);}#bookend .route-strip{font-family:'JetBrains Mono',monospace;font-size:14px;color:var(--accent-warm);margin-bottom:34px;letter-spacing:0.08em;text-shadow:0 2px 12px rgba(0,0,0,0.7);}#bookend button{background:var(--accent);color:#041018;border:none;padding:14px 36px;border-radius:999px;font-size:15px;font-weight:800;letter-spacing:0.04em;cursor:pointer;transition:transform 0.15s ease;}#bookend button:hover{transform:scale(1.05);}#bookend .summary-stats{display:flex;gap:40px;margin:10px 0 32px;flex-wrap:wrap;justify-content:center;}#bookend .summary-stats .stat-value{font-size:30px;}#creditsRoll{margin-bottom:30px;opacity:0;transform:translateY(10px);animation:creditsFadeIn 1s ease 0.4s forwards;}@keyframes creditsFadeIn{to{opacity:1;transform:translateY(0);}}#creditsRoute{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--ink-dim);letter-spacing:0.04em;line-height:1.9;max-width:520px;margin:0 auto 14px;}#creditsByRow{display:flex;align-items:center;justify-content:center;gap:10px;}#creditsLogo{width:52px;height:52px;object-fit:contain;display:none;}#creditsLogo.show{display:inline-block;}#creditsBy{font-size:13px;font-weight:700;letter-spacing:0.08em;color:var(--accent);text-transform:uppercase;}body.presentation #hud,body.presentation #controls,body.presentation #topBar{opacity:0;pointer-events:none;}body.presentation{cursor:none;}body.presentation #minimapWrap{opacity:0.9;}.hidden{display:none !important;}::-webkit-scrollbar{display:none;}