:root{--primary: #007bff;--primary-hover: #0056b3;--secondary: #0d2c54;--bg-main: #ffffff;--bg-panel: #f8fafc;--border-light: #e2e8f0;--text-main: #1e293b;--text-muted: #64748b;--signal-green: #10b981;--signal-yellow: #f59e0b;--signal-red: #ef4444;--font-hud: "Inter", system-ui, -apple-system, sans-serif;--font-ui: "Inter", system-ui, -apple-system, sans-serif;--shadow-sm: none;--shadow-md: none;--shadow-lg: none}*{box-sizing:border-box;margin:0;padding:0;user-select:none;-webkit-user-select:none}body,html{width:100%;height:100%;overflow:hidden;background-color:var(--bg-main);font-family:var(--font-ui);color:var(--text-main)}#app{position:relative;width:100vw;height:100vh;overflow:hidden}#game-canvas-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}#game-canvas{width:100%;height:100%;display:block;touch-action:none}.hidden{display:none!important}.icon-button{background:var(--bg-main);border:1px solid var(--border-light);color:var(--text-main);border-radius:8px;padding:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease}.icon-button:hover{background:var(--bg-panel);border-color:var(--primary);color:var(--primary)}.view-screen{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;pointer-events:auto;display:flex;align-items:center;justify-content:center;background:#0f172a40;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:16px;overflow-y:auto;animation:viewFadeIn .28s ease-out}@keyframes viewFadeIn{0%{opacity:0}to{opacity:1}}#world-fx{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;overflow:hidden}.world-fx-vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 78% 68% at 50% 48%,transparent 42%,rgba(2,8,18,.55) 88%,rgba(1,4,10,.85) 100%)}.world-fx-scanlines{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.055;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.65) 0px,rgba(255,255,255,.65) 1px,transparent 1px,transparent 3px);mix-blend-mode:overlay}.world-fx-grain{position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;opacity:.035;background-image:radial-gradient(rgba(255,255,255,.7) .5px,transparent .5px),radial-gradient(rgba(255,255,255,.5) .5px,transparent .5px);background-size:3px 3px,5px 5px;background-position:0 0,2px 2px;animation:grainShift .9s steps(3) infinite}@keyframes grainShift{0%{transform:translate(0)}33%{transform:translate(-1px,1px)}66%{transform:translate(1px,-1px)}to{transform:translate(0)}}.menu-screen{background:radial-gradient(1200px 520px at 50% 112%,rgba(249,115,22,.16),transparent 62%),radial-gradient(900px 440px at 50% -12%,rgba(56,189,248,.1),transparent 62%),linear-gradient(180deg,#050a14b8,#08122094 48%,#040911db);-webkit-backdrop-filter:saturate(1.15);backdrop-filter:saturate(1.15)}.menu-horizon-haze{position:absolute;left:0;right:0;top:46%;height:26%;background:linear-gradient(180deg,transparent 0%,rgba(56,189,248,.07) 45%,rgba(249,115,22,.06) 72%,transparent 100%);filter:blur(14px)}.menu-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.menu-backdrop-glow{position:absolute;left:50%;bottom:-18%;width:90vmin;height:90vmin;transform:translate(-50%);background:radial-gradient(circle,rgba(249,115,22,.22) 0%,rgba(249,115,22,.05) 45%,transparent 70%);filter:blur(10px)}.menu-rail-perspective{position:absolute;left:50%;bottom:-4%;width:320px;height:62%;transform:translate(-50%);perspective:260px;opacity:.55}.rail-line{position:absolute;bottom:0;width:6px;height:100%;background:linear-gradient(180deg,#94a3b800,#e2e8f0d9);border-radius:4px;box-shadow:0 0 12px #94a3b880}.rail-left{left:32%;transform:rotateX(62deg) rotate(7deg);transform-origin:bottom}.rail-right{right:32%;transform:rotateX(62deg) rotate(-7deg);transform-origin:bottom}.rail-sleepers{position:absolute;left:50%;bottom:0;width:130%;height:100%;transform:translate(-50%) rotateX(62deg);transform-origin:bottom;background:repeating-linear-gradient(to top,rgba(120,113,108,.85) 0px,rgba(120,113,108,.85) 8px,transparent 8px,transparent 46px);animation:sleepersMove 1.6s linear infinite}@keyframes sleepersMove{0%{background-position:0 0}to{background-position:0 46px}}.menu-signal-lights{position:absolute;top:8%;right:7%;display:flex;flex-direction:column;gap:14px;padding:14px 12px;background:#020617b3;border:1px solid rgba(148,163,184,.25);border-radius:999px;box-shadow:0 10px 30px #00000080}.ms-light{width:18px;height:18px;border-radius:50%;opacity:.28}.ms-red{background:#ef4444}.ms-yellow{background:#f59e0b}.ms-green{background:#22c55e}.ms-green{opacity:1;box-shadow:0 0 14px 3px #22c55e8c;animation:signalBreathe 2.2s ease-in-out infinite}@keyframes signalBreathe{0%,to{box-shadow:0 0 10px 2px #22c55e73}50%{box-shadow:0 0 20px 6px #22c55eb3}}.menu-steam{position:absolute;left:50%;bottom:6%;width:260px;height:46%;transform:translate(-50%);pointer-events:none}.steam-puff{position:absolute;bottom:0;left:50%;width:90px;height:90px;margin-left:-45px;border-radius:50%;background:radial-gradient(circle,rgba(226,240,255,.2) 0%,rgba(186,216,245,.06) 48%,transparent 72%);filter:blur(9px);opacity:0;animation:steamRise 7.5s ease-out infinite}.steam-puff:nth-child(2){left:38%;animation-delay:1.9s;animation-duration:8.4s}.steam-puff:nth-child(3){left:62%;animation-delay:3.6s;animation-duration:6.9s}.steam-puff:nth-child(4){left:47%;animation-delay:5.4s;animation-duration:9.1s}@keyframes steamRise{0%{opacity:0;transform:translateY(0) scale(.55)}18%{opacity:.75}70%{opacity:.28}to{opacity:0;transform:translateY(-260px) scale(1.85)}}.menu-hero-card{position:relative;max-width:620px;width:100%;margin:auto;background:linear-gradient(180deg,#0b1424e6,#030811f0);-webkit-backdrop-filter:blur(20px) saturate(1.2);backdrop-filter:blur(20px) saturate(1.2);border:1px solid rgba(148,163,184,.22);box-shadow:0 30px 70px -18px #000c,0 0 0 1px #38bdf80d,inset 0 1px #e2e8f017;border-radius:22px;padding:30px 26px 22px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px;max-height:94vh;overflow-y:auto;animation:menuCardIn .5s ease-out}.menu-hero-card:before{content:"";position:absolute;top:0;left:8%;right:8%;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,rgba(56,189,248,.85),rgba(249,115,22,.9),transparent);background-size:200% 100%;animation:edgeSweep 5.5s linear infinite;opacity:.85}@keyframes edgeSweep{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes menuCardIn{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.menu-title-block{display:flex;flex-direction:column;gap:8px}.menu-eyebrow{font-family:var(--font-hud);font-size:.68rem;letter-spacing:4px;color:var(--primary);font-weight:700;padding:5px 14px;border:1px solid rgba(249,115,22,.45);border-radius:999px;align-self:center;background:#f9731614}.menu-main-title{font-family:var(--font-hud);font-size:clamp(2.4rem,6vw,3.4rem);font-weight:900;letter-spacing:2px;color:#f8fafc;margin:0;text-shadow:0 4px 24px rgba(0,0,0,.6)}.menu-main-title span{color:var(--primary);text-shadow:0 0 22px rgba(249,115,22,.55)}.menu-tagline{font-size:.92rem;color:#94a3b8;line-height:1.55;max-width:440px;margin:0 auto}.menu-screen .brand-header-logo{filter:drop-shadow(0 6px 18px rgba(0,0,0,.55))}.menu-actions{width:100%;display:flex;flex-direction:column;gap:12px;margin-top:4px}.menu-grid-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.menu-btn{position:relative;width:100%;padding:15px 18px;border-radius:14px;font-family:var(--font-ui);cursor:pointer;display:flex;align-items:center;gap:14px;text-align:left;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease;border:1px solid transparent;overflow:hidden}.menu-btn-icon{font-size:1.7rem;flex-shrink:0}.menu-btn-arrow{margin-left:auto;color:#e2e8f08c;transition:transform .18s ease,color .18s ease}.menu-btn:hover .menu-btn-arrow{transform:translate(5px);color:#fff}.menu-btn-primary{background:linear-gradient(135deg,#ea580c,#f97316 55%,#fb923c);color:#fff;box-shadow:0 10px 24px -8px #f973168c}.menu-btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 32px -8px #f97316b3}.menu-btn-secondary{background:linear-gradient(135deg,#0f2a4a,#164e86);color:#e2f1ff;border-color:#38bdf859;box-shadow:0 10px 24px -10px #1e40af99}.menu-btn-secondary:hover{transform:translateY(-2px);border-color:#38bdf8b3;box-shadow:0 16px 30px -10px #38bdf873}.menu-btn-ghost{flex-direction:column;align-items:center;text-align:center;gap:8px;padding:14px 10px;background:#0f172aa6;border-color:#94a3b838;color:#cbd5e1}.menu-btn-ghost .btn-text-wrap{align-items:center}.menu-btn-ghost .btn-text-wrap strong{font-size:.82rem;letter-spacing:.5px}.menu-btn-ghost .btn-text-wrap small{font-size:.7rem;opacity:.75}.menu-btn-ghost:hover{transform:translateY(-2px);background:#1e293bd9;border-color:#f973168c;color:#f8fafc}.menu-btn .btn-text-wrap strong{font-size:1.02rem;letter-spacing:.4px}.menu-btn .btn-text-wrap small{font-size:.78rem;opacity:.88;margin-top:3px}.menu-footer{display:flex;align-items:center;gap:8px;font-size:.75rem;color:#64748b;margin-top:4px}.menu-footer-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px #22c55ecc;animation:signalBreathe 1.8s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.rail-sleepers,.ms-green,.menu-footer-dot,.menu-hero-card{animation:none}}.brand-badge{font-family:var(--font-hud);font-size:.75rem;letter-spacing:2px;color:var(--primary);background:#fff3ed;border:1px solid var(--primary);padding:6px 16px;border-radius:20px;font-weight:700}.game-title{font-family:var(--font-hud);font-size:3rem;font-weight:900;letter-spacing:1px;color:var(--secondary)}.game-subtitle{font-size:1rem;color:var(--text-muted);line-height:1.5}.menu-actions{width:100%;display:flex;flex-direction:column;gap:12px;margin-top:16px}.btn-primary-lg,.btn-secondary-lg{width:100%;padding:16px 20px;border-radius:8px;font-family:var(--font-ui);cursor:pointer;display:flex;align-items:center;gap:16px;text-align:left;transition:all .2s ease;border:none}.btn-primary-lg{background:var(--primary);color:#fff}.btn-primary-lg:hover{background:var(--primary-hover)}.btn-secondary-lg{background:var(--bg-panel);border:1px solid var(--border-light);color:var(--text-main)}.btn-secondary-lg:hover{background:var(--bg-panel);border-color:var(--text-muted)}.btn-icon{font-size:1.8rem}.btn-text-wrap{display:flex;flex-direction:column}.btn-text-wrap strong{font-size:1.05rem;letter-spacing:.2px}.btn-text-wrap small{font-size:.8rem;opacity:.9;margin-top:4px}.menu-footer{font-size:.75rem;color:var(--text-muted);margin-top:20px}.modal-card{max-width:800px;width:90%;background:var(--bg-main);border:1px solid var(--border-light);border-radius:12px;padding:32px;display:flex;flex-direction:column;gap:24px}.modal-card h2{font-family:var(--font-hud);font-size:1.4rem;color:var(--secondary);border-bottom:2px solid var(--border-light);padding-bottom:16px}.level-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.level-card{background:var(--bg-panel);border:1px solid var(--border-light);border-radius:8px;padding:20px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;gap:10px}.level-card:hover{border-color:var(--primary)}.level-title{font-family:var(--font-hud);font-size:1.05rem;color:var(--secondary);font-weight:700}.level-desc{font-size:.85rem;color:var(--text-muted);line-height:1.4}.btn-back{background:var(--bg-panel);border:1px solid var(--border-light);color:var(--text-main);padding:10px 20px;border-radius:6px;cursor:pointer;align-self:flex-start;font-weight:500;transition:all .2s ease}.btn-back:hover{background:#f1f5f9;color:var(--secondary);border-color:var(--secondary)}#hud-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:5;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:16px}#hud-overlay *{pointer-events:auto}.hud-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.hud-route-badge{display:flex;align-items:center;gap:12px;background:var(--bg-main);border:1px solid var(--border-light);padding:8px 16px;border-radius:24px;font-family:var(--font-hud);font-size:.9rem;box-shadow:var(--shadow-sm);color:var(--secondary);font-weight:700}.badge-accent{background:var(--primary);color:#fff;font-size:.7rem;padding:4px 10px;border-radius:12px;letter-spacing:1px}.hud-speed-monitor{display:flex;flex-direction:column;align-items:flex-end;background:var(--bg-main);border:1px solid var(--border-light);padding:8px 16px;border-radius:8px;font-family:var(--font-hud);box-shadow:var(--shadow-sm)}.speed-label{font-size:.65rem;color:var(--text-muted);font-weight:700}.speed-val{font-size:1.2rem;font-weight:800;color:var(--signal-green)}.speed-val.warning{color:var(--signal-yellow)}.speed-val.overspeed{color:var(--signal-red)}.hud-minimap-container{background:var(--bg-main);border:1px solid var(--border-light);border-radius:8px;padding:12px 16px;margin:10px 0;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-sm)}.minimap-title{font-family:var(--font-hud);font-size:.7rem;color:var(--secondary);letter-spacing:1px;font-weight:700}.minimap-track{position:relative;width:100%;height:12px;background:var(--border-light);border-radius:6px;overflow:visible}.minimap-train-marker{position:absolute;top:-8px;left:0%;font-size:1.2rem;transform:translate(-50%);transition:left .1s linear}.minimap-signals-container{position:absolute;top:0;left:0;width:100%;height:100%}.minimap-sig-item{position:absolute;top:-4px;width:8px;height:20px;border-radius:4px;transform:translate(-50%);border:2px solid var(--bg-main)}.decision-modal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(94vw,720px);max-height:94vh;overflow-y:auto;background:#f8fafc;border:2px solid #0f172a;border-radius:14px;padding:clamp(18px,3vw,30px);box-shadow:0 24px 70px #02061780;display:flex;flex-direction:column;align-items:center;gap:18px;z-index:20}.signal-alert-header{text-align:center}.signal-badge{font-family:var(--font-hud);font-size:1.6rem;font-weight:800;color:var(--secondary)}.signal-context{font-size:.9rem;color:var(--primary);font-weight:700;letter-spacing:1px;margin-top:4px}.signal-image-container{width:100%;min-height:clamp(190px,32vh,330px);display:flex;align-items:center;justify-content:center;gap:12px;padding:14px;background:#020617;border:1px solid #334155;border-radius:10px}.signal-procedural-art{width:min(100%,300px);display:flex;align-items:center;justify-content:center}.signal-svg{display:block;width:min(100%,280px);height:auto;max-height:290px}.signal-reference-thumb{width:74px;flex:0 0 74px;align-self:flex-end;display:flex;flex-direction:column;gap:4px;color:#cbd5e1;font-size:.58rem;font-weight:800;letter-spacing:.08em;text-align:center}.signal-reference-thumb img{width:74px;height:58px;object-fit:cover;border:1px solid #64748b;border-radius:4px;opacity:.72}.signal-reference-frame{width:100%;margin:0;display:flex;flex-direction:column;align-items:center;gap:8px}.signal-reference-image{display:block;width:100%;height:clamp(210px,42vh,400px);object-fit:contain;image-rendering:auto;background:#fff;border-radius:5px}.signal-reference-frame figcaption{color:#cbd5e1;font-size:.68rem;font-weight:800;letter-spacing:.12em;text-align:center}.signal-reference-frame--compact{width:auto}.signal-reference-frame--compact .signal-reference-image{width:auto;height:auto;max-width:100%;max-height:100%}.aspect-light{width:60px;height:60px;border-radius:50%;border:4px solid var(--border-light);margin:0 auto}.aspect-light.red{background:var(--signal-red);border-color:var(--signal-red)}.aspect-light.yellow{background:var(--signal-yellow);border-color:var(--signal-yellow)}.aspect-light.green{background:var(--signal-green);border-color:var(--signal-green)}.signal-desc{font-size:1rem;text-align:center;color:var(--text-main);line-height:1.4}.decision-timer-box{position:relative;width:80px;height:80px;display:flex;align-items:center;justify-content:center}.timer-svg{position:absolute;width:100%;height:100%;transform:rotate(-90deg)}.timer-bg{fill:none;stroke:var(--border-light);stroke-width:8}.timer-progress{fill:none;stroke:var(--primary);stroke-width:8;stroke-dasharray:264;stroke-dashoffset:0;transition:stroke-dashoffset .1s linear}.timer-num{font-family:var(--font-hud);font-size:1.6rem;font-weight:800;color:var(--secondary)}.action-buttons-grid{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:12px}.btn-action-choice{background:var(--bg-main);border:1px solid var(--border-light);color:var(--secondary);padding:14px;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm)}.btn-action-choice:hover{border-color:var(--primary);background:var(--bg-panel);color:var(--primary)}.voice-mic-button{border:0;border-radius:999px;min-width:54px;padding:8px 12px;background:var(--secondary);color:#fff;font-family:var(--font-hud);font-weight:800;cursor:pointer}.voice-mic-button.is-listening{background:var(--signal-red);box-shadow:0 0 0 4px #ef44442e;animation:micPulse 1.2s infinite}@keyframes micPulse{50%{transform:scale(1.06)}}.voice-indicator-bar{display:flex;align-items:center;gap:10px;width:100%;background:#08111b0f;border:1px solid var(--border-light);padding:8px 16px;border-radius:20px;font-size:.8rem;color:var(--secondary);font-weight:500}.voice-status-panel{width:100%;max-width:100%;background:#f0f9ff;border:1.5px solid var(--primary);border-radius:10px;padding:8px 14px;display:flex;flex-direction:column;gap:4px}.voice-status-row{display:flex;align-items:center;gap:8px;font-family:var(--font-hud);font-size:.75rem;font-weight:700;color:var(--secondary)}.status-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--border-light);flex:0 0 12px;transition:background .3s ease,box-shadow .3s ease}.status-dot.idle{background:#94a3b8}.status-dot.listening{background:var(--signal-red);box-shadow:0 0 0 4px #ef44442e;animation:micPulse 1.2s infinite}.status-dot.processing{background:var(--signal-yellow);box-shadow:0 0 0 4px #f59e0b33;animation:micPulse 1s infinite}.status-dot.no-match{background:var(--signal-red);box-shadow:0 0 0 4px #ef444426}.status-dot.starting{background:var(--signal-yellow)}.status-dot.error{background:var(--signal-red)}#voice-status-label{flex:1;line-height:1.3;font-size:.78rem}.listening-timer{font-family:var(--font-hud);font-size:.9rem;font-weight:800;color:var(--signal-red);padding:0 6px;border-radius:8px;background:#fee2e2;animation:blinkTimer .6s step-start infinite;min-width:24px;text-align:center}.listening-timer.hidden{display:none}@keyframes blinkTimer{50%{opacity:.35}}.voice-toast{width:100%;background:#fff7ed;border:1.5px solid var(--signal-red);border-radius:10px;padding:10px 14px;font-size:.8rem;font-weight:600;color:#7f1d1d;line-height:1.4;box-shadow:0 8px 20px #ef444426;animation:slideDown .35s ease-out}.voice-toast .toast-icon{margin-right:6px}@keyframes slideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.voice-log-panel{width:100%;background:#f8fafc;border:1px solid var(--border-light);border-radius:10px;padding:8px 12px;max-height:250px;overflow-y:auto}.voice-log-header{font-family:var(--font-hud);font-size:.62rem;font-weight:800;letter-spacing:1.5px;color:var(--secondary);text-transform:uppercase;margin-bottom:6px}.voice-log-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.voice-log-list li{font-family:Courier New,monospace;font-size:.72rem;line-height:1.35;color:var(--text-muted);background:#eef2f7;border-left:3px solid var(--primary);padding:2px 8px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.voice-log-list li.log-ok{border-left-color:var(--signal-green)}.voice-log-list li.log-warn{border-left-color:var(--signal-yellow)}.voice-log-list li.log-error{border-left-color:var(--signal-red)}.status-label-pulse{animation:scalePulse 1s ease-in-out infinite}@keyframes scalePulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.hud-dashboard{display:grid;grid-template-columns:200px 1fr 200px;gap:20px;align-items:flex-end}.control-panel{background:var(--bg-main);border:1px solid var(--border-light);border-radius:12px;padding:16px;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:var(--shadow-md)}.panel-header{font-family:var(--font-hud);font-size:.75rem;color:var(--secondary);letter-spacing:1px;font-weight:700}.manual-lever-wrap{display:flex;align-items:center;gap:12px;height:160px}.lever-notch-marks{display:flex;flex-direction:column;justify-content:space-between;height:100%;font-family:var(--font-hud);font-size:.75rem;color:var(--text-muted);font-weight:600}.vertical-slider{writing-mode:bt-lr;-webkit-appearance:slider-vertical;width:40px;height:100%;cursor:pointer}.notch-readout{font-family:var(--font-hud);font-size:.9rem;font-weight:800;color:var(--primary)}.dcc-buttons-wrap{display:flex;flex-direction:column;gap:8px;width:100%}.dcc-btn{background:var(--bg-main);border:1px solid var(--border-light);color:var(--secondary);padding:10px;border-radius:6px;font-family:var(--font-hud);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease}.dcc-btn:hover{background:var(--bg-panel);border-color:var(--secondary)}.dcc-btn.danger{background:#fef2f2;border-color:var(--signal-red);color:var(--signal-red)}.dcc-btn.danger:hover{background:#fee2e2}.dashboard-center{display:flex;flex-direction:column;align-items:center;gap:12px}.speedometer-gauge{background:var(--bg-main);border:4px solid var(--secondary);width:140px;height:140px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--shadow-md)}.speed-number{font-family:var(--font-hud);font-size:3rem;font-weight:900;color:var(--secondary);line-height:1}.speed-unit{font-family:var(--font-hud);font-size:.75rem;color:var(--text-muted);letter-spacing:1px;font-weight:700;margin-top:4px}.dashboard-status-pills{display:flex;gap:10px}.status-pill{background:var(--bg-main);border:1px solid var(--border-light);padding:6px 12px;border-radius:16px;font-family:var(--font-hud);font-size:.8rem;color:var(--secondary);font-weight:600;box-shadow:var(--shadow-sm)}.horn-btn{background:var(--primary);border:none;color:#fff;padding:12px 24px;border-radius:30px;font-family:var(--font-hud);font-size:.9rem;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:10px;box-shadow:var(--shadow-md);transition:all .2s ease}.horn-btn:hover{background:var(--primary-hover);transform:translateY(-1px)}.horn-btn:active{transform:scale(.96)}.burger-drawer{position:absolute;top:0;left:0;width:100%;height:100%;background:#1e293b66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:30;display:flex}.drawer-content{width:320px;height:100%;background:var(--bg-main);border-right:1px solid var(--border-light);padding:24px;display:flex;flex-direction:column;gap:20px;box-shadow:var(--shadow-lg)}.drawer-header{display:flex;justify-content:space-between;align-items:center}.drawer-header h2{font-family:var(--font-hud);font-size:1.2rem;color:var(--secondary);font-weight:800}.btn-close{background:none;border:none;color:var(--text-muted);font-size:2rem;cursor:pointer;line-height:1}.btn-close:hover{color:var(--text-main)}.drawer-body{display:flex;flex-direction:column;gap:12px}.drawer-menu-btn{background:var(--bg-main);border:1px solid var(--border-light);color:var(--text-main);padding:14px;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;text-align:left;transition:all .2s ease}.drawer-menu-btn:hover{background:var(--bg-panel);border-color:var(--secondary);color:var(--secondary)}.drawer-menu-btn.danger{color:var(--signal-red)}.drawer-menu-btn.danger:hover{background:#fef2f2;border-color:var(--signal-red)}.drawer-divider{height:1px;background:var(--border-light);margin:8px 0}.drawer-setting-item{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;font-weight:500;color:var(--text-main)}.toggle-btn{background:var(--bg-main);border:1px solid var(--border-light);color:var(--text-muted);padding:6px 12px;border-radius:6px;cursor:pointer;font-weight:600;font-size:.85rem;transition:all .2s ease}.toggle-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#1e293b99;z-index:25;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.summary-card{text-align:center;align-items:center;max-width:500px}.summary-badge-rank{font-family:var(--font-hud);font-size:1.1rem;color:var(--signal-green);background:#ecfdf5;border:1px solid var(--signal-green);padding:8px 20px;border-radius:24px;font-weight:700}.summary-stats{width:100%;display:flex;flex-direction:column;gap:12px;background:var(--bg-panel);border:1px solid var(--border-light);padding:20px;border-radius:8px}.stat-row{display:flex;justify-content:space-between;font-size:1rem;color:var(--text-main)}.stat-row strong{color:var(--secondary)}.summary-actions{display:flex;gap:16px;width:100%;margin-top:10px}.encyclopedia-modal-card{max-width:900px;width:92%;max-height:90vh;display:flex;flex-direction:column;padding:24px;overflow:hidden}.encyclopedia-header-bar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--border-light)}.encyclopedia-scroll-area{flex:1;overflow-y:auto;padding-top:16px;padding-right:4px}.tutorial-modal-card{max-width:640px;width:92%;max-height:90vh;display:flex;flex-direction:column;padding:24px}.tutorial-modal-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--border-light);padding-bottom:12px}.tutorial-step-badge{font-size:.75rem;font-weight:700;color:var(--primary);background:#eff6ff;border:1px solid var(--primary);padding:4px 12px;border-radius:12px;letter-spacing:.5px}.tutorial-step-body{margin:16px 0;font-size:.95rem;line-height:1.6;color:var(--text-main);overflow-y:auto;max-height:55vh}.tutorial-step-card{background:var(--bg-panel);border:1px solid var(--border-light);border-radius:10px;padding:16px;margin-top:12px}.tutorial-step-card h4{color:var(--secondary);margin-bottom:8px;font-size:1rem}.tutorial-modal-footer{display:flex;align-items:center;gap:12px;border-top:1px solid var(--border-light);padding-top:16px}.brand-header-logo{display:flex;align-items:center;gap:12px;justify-content:center}.header-logo-img{max-width:340px;width:90%;height:auto;display:block}.departure-toast{position:absolute;top:75px;right:16px;z-index:50;width:340px;max-width:calc(100vw - 32px);background:var(--bg-main);border:2px solid var(--primary);border-radius:12px;padding:14px 16px;box-shadow:0 10px 25px -5px #00000026;animation:slideInRight .3s ease-out}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.departure-toast-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.departure-toast-badge{font-size:.7rem;font-weight:800;color:var(--primary);background:#eff6ff;border:1px solid var(--primary);padding:3px 10px;border-radius:12px}.departure-toast-timer{font-size:.85rem;font-weight:800;color:var(--signal-red)}@media (max-width: 768px){.menu-hero-card{padding:24px 18px;gap:16px}.game-title{font-size:2.2rem}.modal-card{padding:20px 16px;max-height:92vh}.btn-primary-lg,.btn-secondary-lg{padding:14px 16px;min-height:48px}.menu-btn{padding:13px 14px}.menu-btn-icon{font-size:1.4rem}.menu-grid-row{gap:8px}.menu-btn-ghost .btn-text-wrap strong{font-size:.75rem}.menu-btn-ghost .btn-text-wrap small{font-size:.65rem}.btn-text-wrap strong{font-size:.95rem}.btn-text-wrap small{font-size:.78rem}.hud-header{padding:8px 12px}.hud-route-badge{font-size:.75rem}.hud-bottom-bar{padding:10px;gap:8px}.control-panel{padding:10px}.speedometer-display{width:90px;height:90px}.speedometer-val{font-size:1.8rem}.horn-btn{padding:10px 16px;font-size:.82rem}.drawer-content{width:85%;max-width:300px}.encyclopedia-header-bar{flex-direction:column;gap:10px}.encyclopedia-header-bar .btn-back{align-self:flex-start}}@media (max-width: 480px){#hud-overlay{padding:8px}.menu-grid-row{grid-template-columns:1fr}.menu-btn-ghost{flex-direction:row;text-align:left;padding:11px 14px}.menu-btn-ghost .btn-text-wrap{align-items:flex-start}.menu-rail-perspective{width:200px;opacity:.35}.menu-signal-lights{top:4%;right:4%;transform:scale(.8)}.game-title{font-size:1.8rem}.modal-card{width:96%;padding:16px 12px}.hud-header{flex-wrap:wrap;gap:6px}.hud-route-badge{display:none}.dashboard-center{min-width:120px}.speedometer-display{width:75px;height:75px}.speedometer-val{font-size:1.5rem}.notch-readout{font-size:.75rem}}@media (max-height: 500px) and (orientation: landscape){.view-screen{padding:8px}.menu-hero-card{padding:14px 20px;gap:10px}.game-title{font-size:1.6rem}.menu-actions{margin-top:8px;gap:8px}.btn-primary-lg,.btn-secondary-lg{padding:10px 14px}.menu-btn{padding:9px 12px;gap:10px}.menu-main-title{font-size:1.7rem}.menu-tagline,.menu-signal-lights{display:none}.modal-card{max-height:96vh;padding:12px 16px}}:root{--primary:#177d70;--primary-hover:#116256;--secondary:#193e43;--bg-main:#f8faf7;--bg-panel:#eef3ee;--border-light:#d8e3db;--text-main:#183b3d;--text-muted:#5c746f}button,select,input{font:inherit}button:focus-visible,[role=button]:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #e9b752;outline-offset:4px}button{cursor:pointer}.menu-screen{justify-content:flex-start;padding:32px 6vw;overflow-y:auto;background:linear-gradient(90deg,#0c2425e6,#0c24255c 65%,#0c242514)}.menu-backdrop{opacity:.18}.menu-hero-card{width:min(610px,100%);max-width:610px;padding:28px 34px;background:#f9fbf5f5;border:1px solid #e5eee0;border-radius:24px;box-shadow:0 22px 80px #07232244;color:#193e43;margin:0}.menu-hero-card:before{display:none}.menu-title-block{text-align:left}.menu-eyebrow{color:#467c6a;font-size:10px;letter-spacing:2px}.menu-main-title{color:#193e43;font-family:Inter,system-ui,sans-serif;letter-spacing:-2px;font-size:clamp(32px,4vw,52px);text-shadow:none;margin:8px 0}.menu-main-title span{color:#178070}.menu-tagline{color:#62756c;font-size:14px;line-height:1.7;max-width:470px}.menu-screen .brand-header-logo{height:45px;margin-bottom:12px}.menu-screen .header-logo-img{max-height:45px;filter:none}.menu-actions{gap:10px;margin-top:16px}.menu-btn{border-radius:12px;min-height:64px;padding:14px 18px;box-shadow:none;text-align:left}.menu-btn-primary{background:#177d70;color:#fff;border:1px solid #177d70}.menu-btn-primary:hover{background:#116256;transform:translateY(-2px)}#btn-menu-tunjuk-sebut{background:#eaf1e7;color:#234d42;border:1px solid #cbdccb}.menu-btn-secondary,.menu-btn-ghost{background:#f4f6ef;color:#254a44;border:1px solid #d5dfd3}.menu-btn .btn-text-wrap strong{font-family:Inter,system-ui,sans-serif;font-size:15px;letter-spacing:0}.menu-btn .btn-text-wrap small{opacity:.78;color:inherit;font-size:11px;line-height:1.5}.menu-grid-row{gap:8px}.menu-btn-ghost{padding:12px}.menu-btn-ghost .menu-btn-icon{font-size:20px}.menu-btn-ghost .btn-text-wrap strong{font-size:11px}.menu-btn-ghost .btn-text-wrap small{font-size:10px}.menu-footer{color:#62756c;font-size:11px;margin-top:14px;border-top:1px solid #d9e2d4;padding-top:14px}.menu-facts{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.menu-facts span{padding:5px 9px;background:#e8eee2;color:#496653;font-size:10px;border-radius:20px}.route-settings{display:grid;grid-template-columns:1fr 1.3fr;gap:6px 12px;margin-top:18px;align-items:center;font-size:12px}.route-settings select{border:1px solid #c9d8c9;border-radius:8px;padding:9px;background:#fff;color:#274c42;width:100%}.route-settings small{grid-column:1/-1;color:#6b8073;font-size:10px}.modal-card{border-radius:20px;box-shadow:0 16px 70px #102b3330;max-height:92vh;overflow-y:auto}.level-card{border-radius:12px;transition:transform .15s,border-color .15s}.level-card:hover{transform:translateY(-2px);border-color:#177d70}.hud-header{background:#f8fbf5f0;border-radius:0 0 16px 16px;box-shadow:0 6px 30px #122b3322}.hud-minimap-container{background:#f8fbf5e6;padding:9px 15px;border-radius:12px}.journey-toolbar{position:absolute;top:132px;left:20px;right:20px;display:flex;justify-content:space-between;align-items:center;gap:8px;pointer-events:auto;font-size:12px}.journey-toolbar>span{background:#193e43e8;color:#fff;padding:10px 14px;border-radius:9px}.journey-toolbar>div{display:flex;gap:6px}.journey-toolbar button,[data-mic],[data-call-form] button{border:1px solid #cdded2;padding:9px 12px;border-radius:8px;background:#f6faf1;color:#254c43;font-size:12px}[data-mic][aria-pressed=true]{background:#177d70;color:#fff}.cab-voice{position:absolute;top:182px;left:20px;width:285px;padding:12px;display:flex;flex-direction:column;gap:7px;background:#f6faf1ed;border:1px solid #d4e1d6;border-radius:12px;pointer-events:auto;font-size:11px}[data-transcript]{color:#287966;line-height:1.5;-webkit-user-select:text;user-select:text}[data-call-form]{display:flex;gap:5px}[data-call-form] input{width:100%;min-width:0;border:1px solid #d1ded3;padding:8px;border-radius:7px;background:#fff;font-size:11px;-webkit-user-select:text;user-select:text}.quiz-voice{display:flex;flex-direction:column;gap:10px;border:1px solid #d4e0d3;border-radius:12px;background:#eef5e9;padding:14px;margin:12px 0;font-size:12px}.quiz-voice p{color:#516f61;line-height:1.5}.hud-dashboard{grid-template-columns:155px 1fr 155px;gap:12px;max-width:660px;width:calc(100% - 32px);left:50%;transform:translate(-50%);bottom:16px}.control-panel{padding:12px;border-radius:16px;background:#f6faf1eb;box-shadow:0 8px 30px #0c293229;gap:8px}.manual-lever-wrap{height:105px}.panel-header{font-size:10px}.notch-readout{font-size:11px}.dashboard-center{gap:7px}.speedometer-gauge{position:relative;width:152px;height:152px;border-radius:50%;border:8px solid #cfddd0;background:radial-gradient(circle,#f9fbf4 58%,#e4ece1 59%);box-shadow:0 0 0 2px #f6faf1,0 10px 30px #0d29252b}.speedometer-gauge.overspeed{border-color:#db6455}.speed-number{position:relative;z-index:2;font-family:Inter,sans-serif;font-size:38px;font-weight:800;margin-top:49px;line-height:1}.speed-unit{position:relative;z-index:2;font-size:9px}.speed-needle{position:absolute;top:11px;left:calc(50% - 2px);height:57px;width:4px;border-radius:4px;background:#d29e37;transform-origin:50% 100%;transform:rotate(var(--speed-angle,-125deg));transition:transform .15s}.gauge-label{position:absolute;font-size:10px;color:#6b8071}.gauge-zero{bottom:28px;left:13px}.gauge-mid{top:10px;left:calc(50% - 6px)}.gauge-max{bottom:28px;right:7px}.status-pill{font-size:9px;padding:5px 8px;background:#f6faf1e8}.horn-btn{padding:10px;border-radius:10px;background:#177d70;color:#fff;font-size:11px}.decision-modal{left:auto;right:20px;top:185px;transform:none;width:290px;padding:15px;border-radius:16px;max-height:calc(100vh - 205px);overflow-y:auto;box-shadow:0 12px 50px #122b3330}.signal-image-container{height:140px;min-height:140px;background:#f2f5ee;border-radius:10px}.signal-svg{max-width:100%;flex-shrink:0}.signal-desc{font-size:12px}.action-buttons-grid{gap:6px}.btn-action-choice{border-radius:9px;padding:10px;font-size:12px}.voice-log-panel,.signal-reference-thumb,.world-fx-scanlines,.world-fx-grain{display:none}.departure-toast{max-width:450px}@media (max-width:760px){.menu-screen{padding:16px;justify-content:center;align-items:flex-start}.menu-hero-card{padding:20px}.menu-main-title{font-size:35px}.journey-toolbar{top:125px;left:8px;right:8px;flex-wrap:wrap}.journey-toolbar button{font-size:10px;padding:8px}.cab-voice{top:210px;left:8px;width:190px;padding:8px}.decision-modal{top:210px;right:8px;width:210px;max-height:calc(100vh - 400px);padding:10px}.signal-image-container{height:95px;min-height:95px}.signal-svg{height:95px}.voice-indicator-bar,.voice-status-panel,.signal-desc{font-size:10px}.hud-dashboard{grid-template-columns:100px 1fr 100px;gap:5px;bottom:8px;width:calc(100% - 16px)}.control-panel{padding:8px 5px}.manual-lever-wrap{height:75px}.speedometer-gauge{width:115px;height:115px;border-width:6px}.speed-number{margin-top:37px;font-size:30px}.speed-needle{height:41px;top:9px}.panel-header{font-size:8px}.notch-readout{font-size:9px}.dashboard-status-pills{flex-direction:column;gap:3px}.status-pill{font-size:8px}.hud-route-badge{max-width:52vw;font-size:10px}}@media (max-width:440px){.cab-voice{width:155px}.decision-modal{width:180px}.menu-grid-row{grid-template-columns:1fr}.menu-btn-ghost{min-height:45px}.menu-btn-ghost .btn-text-wrap{display:flex;align-items:center;gap:12px}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}#hud-overlay{--drive-panel: rgba(19, 32, 43, .94);--drive-line: #ffffff1a;--drive-muted: #a8bac4;--drive-accent: #7cdbc5;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:14px;padding:14px;height:100%;color:#edf5f7;font:13px/1.45 Inter,system-ui,sans-serif;pointer-events:none}#hud-overlay *{box-sizing:border-box}#hud-overlay .drive-stage,#hud-overlay .drive-left-stack,#hud-overlay .drive-side-stack{pointer-events:none}#hud-overlay button,#hud-overlay input,#hud-overlay summary{touch-action:manipulation}#hud-overlay button{font:inherit;font-weight:600;border:1px solid var(--drive-line);border-radius:7px;color:#e5eef0;background:#ffffff09;cursor:pointer;transition:background .15s,border-color .15s}#hud-overlay button:hover{background:#ffffff1c;border-color:#ffffff40}#hud-overlay button:disabled{opacity:.45;cursor:not-allowed}#hud-overlay svg:not(.signal-svg):not(.timer-svg){width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;flex-shrink:0}#hud-overlay kbd{padding:2px 5px;font:10px/1.2 Inter,sans-serif;color:#a8bbc5;border:1px solid #ffffff22;border-radius:3px;white-space:nowrap}#hud-overlay .drive-eyebrow{color:var(--drive-muted);font-size:9px;font-weight:600;letter-spacing:1.5px}.drive-topbar{display:flex;align-items:center;gap:14px;min-height:54px;background:var(--drive-panel);border:1px solid var(--drive-line);border-radius:11px;padding:7px 10px}.drive-icon{display:grid;place-items:center;width:38px;height:38px;flex-shrink:0}.drive-service{display:flex;flex-direction:column;min-width:0;gap:2px}.drive-service strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drive-top-actions{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}.camera-tabs{display:flex;gap:3px;padding:3px;background:#07131c60;border-radius:8px}#hud-overlay .camera-tabs button{display:flex;align-items:center;justify-content:center;gap:7px;padding:6px 12px;border-color:transparent;font-size:12px}#hud-overlay .camera-tabs button[aria-pressed=true]{background:#d9ece6;color:#163e38;box-shadow:0 2px 6px #0002}#hud-overlay .camera-tabs button[aria-pressed=true] kbd{color:#38685e;border-color:#163e3833}#hud-overlay .drive-button{min-height:36px;padding:8px 12px;display:inline-flex;align-items:center;justify-content:center;gap:8px}#hud-overlay #btn-pause[aria-pressed=true]{color:#ffda88;background:#d3942220;border-color:#d3942260}.drive-stage{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;min-height:0}.drive-left-stack,.drive-side-stack{display:flex;flex-direction:column;gap:10px;max-height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#617a8060 transparent}.drive-left-stack{width:268px}.drive-side-stack{width:286px}.drive-left-stack>*,.drive-side-stack>*{flex-shrink:0;pointer-events:auto}.journey-card{display:flex;flex-direction:column;gap:8px;padding:15px;border:1px solid var(--drive-line);background:var(--drive-panel);border-radius:10px}#journey-status{font-size:14px;line-height:1.6}#drive-instruction{font-size:11px;color:#b6c8cf;line-height:1.6}.next-signal{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--drive-muted);padding-top:10px;border-top:1px solid var(--drive-line)}#next-signal-distance{margin-left:auto;color:#edf5f7;white-space:nowrap;font-variant-numeric:tabular-nums}#next-signal-dot{width:8px;height:8px;flex-shrink:0;border:1px solid #fff4;border-radius:50%;background:#a7b7bd}.camera-orbit{padding:10px;background:var(--drive-panel);border:1px solid var(--drive-line);border-radius:8px}.camera-orbit>span{font-size:10px;color:#b2c3ca}.camera-orbit>div{display:flex;gap:5px;margin-top:8px}.camera-orbit button{flex:1;min-height:32px}.drive-feedback{background:#174b40ef;border:1px solid #7cdbc566;border-radius:8px;padding:11px 13px;font-size:12px}.drive-feedback[data-tone=warning]{background:#5a3d1cef;border-color:#dca54c66}.voice-panel{background:var(--drive-panel);border:1px solid var(--drive-line);border-radius:10px}.voice-panel summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:13px;font-size:12px}.voice-panel summary::-webkit-details-marker{display:none}.voice-panel summary small{margin-left:auto;color:#aec4cd;font-size:9px}.details-chevron{color:#9cbdc0}.voice-panel[open] .details-chevron{transform:rotate(180deg)}.voice-panel-body{display:flex;flex-direction:column;gap:9px;padding:0 13px 13px;font-size:11px;color:#b7cbd0}#hud-overlay [data-transcript]{color:#8ee2c8;background:#081b2460;padding:8px;border-radius:6px;-webkit-user-select:text;user-select:text;overflow-wrap:anywhere}#hud-overlay [data-mic][aria-pressed=true]{background:#237561;color:#fff}#hud-overlay [data-call-form]{display:flex;gap:6px}#hud-overlay [data-call-form] input{padding:9px;background:#07151e;color:#e2eeef;border:1px solid #4b636d;border-radius:5px;width:100%;min-width:0;font-size:11px}#hud-overlay [data-call-form] input::placeholder{color:#9aafb9}#hud-overlay [data-call-form] button{padding:6px 10px}#hud-overlay .decision-modal{position:static;inset:auto;transform:none;width:100%;max-width:none;max-height:none;margin:0;display:flex;align-items:stretch;gap:9px;padding:13px;border:1px solid #b5cece;border-radius:10px;background:#f4f7f1;color:#263e43;box-shadow:0 10px 24px #0002;overflow:visible}.decision-heading{display:flex;align-items:center;justify-content:space-between;font-size:13px}#hud-overlay .decision-timer-box{position:static;width:auto;height:auto;margin:0;display:flex;align-items:baseline;gap:4px;font-size:15px;font-weight:700;color:#876114}#hud-overlay .decision-timer-box small{font-size:9px;font-weight:400}#hud-overlay .timer-svg{display:none}#hud-overlay .signal-alert-header{text-align:left;font-size:10px;display:flex;flex-direction:column;gap:2px}#hud-overlay .signal-alert-header:has(#signal-badge[style*=none]){display:none}#hud-overlay .signal-image-container{min-height:0;height:112px;padding:0;border:1px solid #dce5dd;border-radius:6px;background:#fff}#hud-overlay .signal-svg{height:110px;max-height:100%;width:auto}#hud-overlay #signal-prompt-text{font-size:11px!important;line-height:1.5;margin:0}#hud-overlay .voice-indicator-bar{margin:0;padding:0;border:0;display:flex;background:none}#hud-overlay #btn-voice-mic{background:#e1ece5;color:#26574c;border-color:#c8d8ce;width:100%;font-size:11px;min-height:34px}#hud-overlay #btn-voice-mic kbd{color:#497264;border-color:#49726444}.decision-voice-status{color:#627775;font-size:10px}#hud-overlay #voice-status-panel,#hud-overlay #voice-log-panel{display:none}#hud-overlay .action-buttons-grid{display:grid;grid-template-columns:1fr;gap:6px;width:100%;margin:0}#hud-overlay .btn-action-choice{color:#314a4e;background:#fff;border:1px solid #d0ded3;border-radius:6px;padding:9px;font-size:11px;text-align:left;line-height:1.4}#hud-overlay .btn-action-choice:hover{background:#e2f1e9;border-color:#529781}#hud-overlay .voice-toast{padding:7px;font-size:10px}.drive-dock{width:min(1120px,100%);justify-self:center;background:var(--drive-panel);border:1px solid #ffffff25;border-radius:12px;box-shadow:0 10px 36px #0004;pointer-events:auto}.route-progress{display:flex;align-items:center;gap:12px;height:38px;padding:0 18px;border-bottom:1px solid var(--drive-line);color:#b2c4cc;font-size:10px}.route-progress>span{white-space:nowrap}#hud-overlay .minimap-track{position:relative;margin:0 6px;width:auto;flex:1;height:3px;background:#476069;border-radius:3px}#route-progress-fill{width:0;height:100%;background:#7cdbc5;border-radius:3px}#hud-overlay .minimap-train-marker{font-size:12px;color:#8aecd1;top:-7px;transform:translate(-50%);line-height:14px}#minimap-signals{position:absolute;top:0;right:0;bottom:0;left:0}#hud-overlay .minimap-station{position:absolute;top:-3px;width:9px;height:9px;border-radius:50%;border:2px solid #adbec5;background:#233841;transform:translate(-50%)}#hud-overlay .minimap-station.passed{background:#7cdbc5;border-color:#7cdbc5}#pill-distance{font-variant-numeric:tabular-nums}.drive-controls{display:grid;grid-template-columns:230px 1fr 1fr 170px;gap:22px;align-items:center;padding:12px 18px;min-height:124px}.drive-speed{display:flex;align-items:center;gap:14px}#hud-overlay .speedometer-gauge{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;width:102px;height:102px;border:3px solid #5c7c7e;background:#172c35;box-shadow:inset 0 0 0 5px #ffffff05;border-radius:50%}#hud-overlay .speedometer-gauge.overspeed{border-color:#f17963}#hud-overlay .speed-number{margin:4px 0 0;color:#fff;font:700 31px/1 Inter,sans-serif;z-index:2;position:relative;font-variant-numeric:tabular-nums}#hud-overlay .speed-unit{color:#b4c9ce;font:9px Inter,sans-serif;margin-top:4px;letter-spacing:0}#hud-overlay .speed-needle{position:absolute;top:6px;left:calc(50% - 1px);width:2px;height:42px;background:#edc676;transform-origin:50% 100%;transform:rotate(var(--speed-angle, -125deg))}#hud-overlay .gauge-label{color:#a8c0c7;font-size:8px;position:absolute}#hud-overlay .gauge-zero{bottom:18px;left:8px}#hud-overlay .gauge-mid{top:7px;left:calc(50% - 5px)}#hud-overlay .gauge-max{bottom:18px;right:5px}.speed-context{display:flex;flex-direction:column;align-items:flex-start;gap:4px}#hud-vmax{font-size:21px;font-weight:700;color:#c9e7de;white-space:nowrap}#hud-vmax small{font-size:10px;font-weight:400}#hud-vmax.overspeed{color:#ff9a85}#hud-vmax.warning{color:#edc676}#speed-advice,#pill-slope{font-size:9px;color:#9eb8c0;line-height:1.4}#speed-advice[data-warning=true]{color:#ffb39e}.drive-lever{display:flex;flex-direction:column;gap:10px;min-width:0}.drive-lever-title{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px}.drive-lever-title output{color:#9bdfcc;background:#284a4660;font-size:11px;border-radius:4px;padding:3px 6px;white-space:nowrap}.brake-panel .drive-lever-title output{color:#efd092;background:#4b402d60}.drive-range-wrap{display:flex;flex-direction:column;gap:6px;min-width:0}#hud-overlay input[type=range]{-moz-appearance:auto;appearance:auto;-webkit-appearance:auto;writing-mode:horizontal-tb;direction:ltr;width:100%;min-width:0;height:22px;margin:0;accent-color:#85d9c1;cursor:pointer}#hud-overlay #brake-slider{accent-color:#e3bd70}.range-labels{display:flex;justify-content:space-between;font-size:9px;color:#9db5bf}.drive-lever>small{font-size:9px;color:#9db5bf}.drive-stepper{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;height:40px}.drive-stepper button{width:42px;height:36px;font-size:20px!important}.drive-utilities{display:flex;flex-direction:column;gap:6px}#hud-overlay .horn-action{background:#d2e9df;color:#1f493e;font-size:11px;min-height:34px;padding:6px 8px}#hud-overlay .horn-action kbd{color:#396658;border-color:#39665833}#hud-overlay .emergency-action{color:#f0b4a6;border-color:#b979683f;background:#733d342b;font-size:11px;min-height:30px;padding:5px}#hud-control-mode-badge{text-align:center;color:#9fb7c0;font-size:9px}#hud-overlay #departure-toast-notification{position:static;inset:auto;transform:none;width:100%;max-width:none;padding:13px;border-radius:10px;background:#f2f5ed;border:1px solid #c8d5ca;box-shadow:none;animation:none}#hud-overlay .departure-toast-header{flex-wrap:wrap;gap:5px}#hud-overlay .departure-toast-badge{font-size:9px;padding:3px 6px}#hud-overlay .departure-toast-timer{font-size:10px}#hud-overlay #departure-title{font-size:12px!important}#hud-overlay #departure-desc{font-size:11px!important}#hud-overlay #departure-icon-row{display:none!important}#hud-overlay #btn-departure-horn-action{background:#226c5b!important;color:#fff;font-size:11px!important;width:100%}#hud-overlay[data-paused=true] .drive-dock{border-color:#d3b36c66}.drive-side-stack:empty{display:none}#main-menu-view{padding:clamp(18px,4vw,56px);align-items:center}#main-menu-view .menu-hero-card{width:min(490px,100%);padding:25px;border-radius:16px}#main-menu-view .menu-main-title{font-size:clamp(32px,3.6vw,47px)}#main-menu-view .menu-tagline{font-size:12px}#main-menu-view .menu-btn{min-height:56px;padding:12px 14px}#main-menu-view .menu-btn-icon{font-size:23px;width:28px;min-width:28px}#main-menu-view .menu-btn-arrow{font-size:18px}#main-menu-view .menu-grid-row{grid-template-columns:repeat(3,minmax(0,1fr))}#main-menu-view .menu-btn-ghost{flex-direction:column;align-items:flex-start;gap:7px}#main-menu-view .menu-btn-ghost .btn-text-wrap{display:block}#main-menu-view .menu-btn-ghost .btn-text-wrap small{display:none}#main-menu-view .menu-facts{margin-top:12px}#main-menu-view .menu-footer{font-size:10px;margin-top:10px;padding-top:10px}#train-select-view .level-card{text-align:left;font:inherit}@media (max-width: 1000px){#hud-overlay{gap:10px;padding:10px}.drive-controls{grid-template-columns:190px 1fr 1fr 140px;gap:15px;padding:10px 14px}.drive-speed{gap:9px}.drive-left-stack{width:238px}.drive-side-stack{width:255px}#hud-overlay .drive-lever-title{font-size:11px}}@media (max-width: 760px){#hud-overlay{padding:8px;gap:8px}.drive-topbar{gap:8px;padding:6px}.drive-top-actions{gap:5px}.drive-service .drive-eyebrow{display:none}.drive-service strong{font-size:11px}#hud-overlay .camera-tabs button{padding:7px 8px;font-size:11px}#hud-overlay .drive-topbar kbd{display:none}.drive-controls{grid-template-columns:170px 1fr 1fr;gap:12px}.drive-utilities{grid-column:1/-1;flex-direction:row;justify-content:center;align-items:center}#hud-control-mode-badge{margin-left:auto}.drive-left-stack{width:205px}.drive-side-stack{width:224px}.journey-card{padding:10px;gap:6px}#journey-status{font-size:12px}#drive-instruction{font-size:10px}.voice-panel summary{padding:10px;font-size:11px;gap:5px}.voice-panel summary small{display:none}.details-chevron{margin-left:auto}#hud-overlay .signal-image-container{height:84px}#hud-overlay .signal-svg{height:82px}.route-progress{padding:0 12px;gap:8px;font-size:9px;height:30px}#hud-overlay .speedometer-gauge{width:90px;height:90px}#hud-overlay .speed-needle{height:36px}#hud-overlay .speed-number{font-size:27px}}@media (max-width: 540px){.drive-topbar{flex-wrap:wrap}.drive-top-actions{margin-left:0;width:100%;justify-content:space-between}.camera-tabs,.camera-tabs button{flex:1}.drive-stage{gap:6px}.drive-left-stack{width:43%}.drive-side-stack{width:54%}.journey-card{padding:9px}#hud-overlay .drive-eyebrow{font-size:8px;letter-spacing:.8px}.next-signal{gap:5px;flex-wrap:wrap;font-size:9px}#next-signal-distance{margin-left:0}.camera-orbit{padding:7px}.camera-orbit>span{display:none}.camera-orbit>div{flex-wrap:wrap;margin-top:0;gap:3px}.camera-orbit button{min-width:27px;font-size:10px!important}.drive-controls{grid-template-columns:90px minmax(0,1fr) minmax(0,1fr);gap:9px;padding:10px;min-height:0}.drive-speed{flex-direction:column;gap:5px}#hud-overlay .speedometer-gauge{width:78px;height:78px}#hud-overlay .speed-needle{height:30px}#hud-overlay .speed-number{font-size:24px}#hud-overlay .gauge-label{display:none}.speed-context{gap:0;align-items:center}.speed-context .drive-eyebrow,#speed-advice,#pill-slope{display:none}#hud-vmax{font-size:13px}#hud-vmax:before{content:"Batas ";font-size:9px;font-weight:400}.drive-lever-title{flex-direction:column;align-items:flex-start;gap:3px}.drive-lever>small{display:none}.range-labels{font-size:8px}.range-labels span:nth-child(2n){display:none}#hud-control-mode-badge{display:none}.drive-utilities{justify-content:stretch}.drive-utilities button{flex:1}.drive-utilities kbd{display:none}#hud-overlay .decision-modal{padding:9px;gap:7px}.decision-heading{font-size:11px}#hud-overlay .btn-action-choice{padding:8px;font-size:10px}#hud-overlay .voice-indicator-bar kbd{display:none}#main-menu-view{align-items:flex-start;padding:14px}#main-menu-view .menu-hero-card{padding:20px}}@media (max-height: 600px) and (min-width: 541px){#hud-overlay{gap:6px;padding:6px}.drive-topbar{min-height:43px;padding:3px 7px}.drive-controls{min-height:85px;padding:7px 12px;grid-template-columns:175px 1fr 1fr 150px}.drive-utilities{grid-column:auto;flex-direction:column;gap:3px}.drive-lever{gap:6px}#hud-overlay .speedometer-gauge{width:78px;height:78px}#hud-overlay .speed-number{font-size:25px}#hud-overlay .speed-needle{height:30px}.route-progress{height:25px}#drive-instruction,.camera-orbit>span{display:none}#hud-overlay .signal-image-container,#hud-overlay .signal-svg{height:65px}}
