:root{--cph-copper:#5f9e8f;--cph-copper-deep:#2f6b60;--cph-brick:#9a4632;--cph-ochre:#d4a24c;--cph-terracotta:#b8573a;--cph-harbour:#3d5866;--cph-harbour-deep:#1c2c35;--cph-granite:#77797a;--cph-limestone:#e8e4dc;--cph-cycle-blue:#2e6db4;--cph-dannebrog:#c8102e;--ink-950:#0e1012;--ink-900:#16191c;--ink-800:#202428;--ink-700:#2c3136;--ink-500:#6a7177;--ink-300:#b9bec2;--ink-100:#eceeef;--paper:#f6f5f2;--accent:var(--cph-copper);--accent-strong:#7bb8a9;--accent-soft:#5f9e8f38;--danger:var(--cph-dannebrog);--info:var(--cph-cycle-blue);--warm:var(--cph-ochre);--hud-text:var(--paper);--hud-text-secondary:#f6f5f2b8;--hud-text-dim:#f6f5f27a;--hud-line:#f6f5f247;--hud-shadow:0 1px 2px #0e10128c, 0 0 14px #0e10124d;--scrim-bottom:linear-gradient(to top, #0e101280 0%, #0e10122e 55%, transparent 100%);--scrim-top-left:radial-gradient(ellipse at top left, #0e101294 0%, #0e10124d 48%, transparent 74%);--minimap-disc:#0e10128c;--minimap-road:var(--ink-300);--minimap-road-minor:#b9bec273;--minimap-arrow-outline:var(--ink-950);--danger-on-hud:#ec3b55;--surface-menu:#16191cdb;--surface-card:#202428eb;--surface-hover:#f6f5f20f;--surface-line:#f6f5f21f;--surface-line-strong:#f6f5f23d;--surface-shadow:0 16px 40px #0e101273;--blur-menu:18px;--menu-backdrop:#0e101259;--menu-text-secondary:#f6f5f2ad;--sign-ground:#10263f;--sign-line:#f6f5f2d9;--sign-text:var(--paper);--sign-limit-face:#fff;--sign-limit-ring:var(--cph-dannebrog);--sign-limit-text:var(--ink-950);--world-sky-overcast:#c5ccd1;--world-sky-clear:#9ec3df;--world-sky-golden:#e7c49a;--world-sky-blue-hour:#34507a;--world-sky-rain:#8e979d;--world-sky-night:#2a3446;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-numeric:var(--font-sans);--font-sign:var(--font-sans);--font-debug:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs:.6875rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lg:1.125rem;--text-xl:1.5rem;--text-2xl:2rem;--text-telemetry:3.75rem;--tracking-label:.12em;--tracking-sign:.14em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--hud-inset:clamp(16px, 3vw, 40px);--hud-scale:1;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--radius-pill:9999px;--ease-cph:cubic-bezier(.16, 1, .3, 1);--ease-exit:cubic-bezier(.4, 0, 1, 1);--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.45s;--duration-fade:.8s;--duration-banner:3.2s;--z-canvas:1;--z-hud:10;--z-banner:20;--z-modal:50;--z-system:100}[data-hud-scheme=light]{--hud-text:var(--ink-900);--hud-text-secondary:#16191cb8;--hud-text-dim:#16191c7a;--hud-line:#16191c47;--hud-shadow:0 1px 2px #f6f5f299, 0 0 14px #f6f5f259;--scrim-bottom:linear-gradient(to top, #f6f5f28c 0%, #f6f5f233 55%, transparent 100%);--scrim-top-left:radial-gradient(ellipse at top left, #f6f5f280 0%, #f6f5f229 50%, transparent 72%);--minimap-disc:#f6f5f299;--minimap-road:var(--ink-700);--minimap-road-minor:#2c313673;--minimap-arrow-outline:var(--paper);--danger-on-hud:var(--danger)}@media (prefers-reduced-motion:reduce){:root{--duration-normal:1ms;--duration-slow:.15s}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--ink-950);width:100%;height:100%;color:var(--hud-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none;overflow:hidden}[hidden]{display:none!important}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#webgl-canvas{width:100%;height:100%;z-index:var(--z-canvas);outline:none;display:block;position:fixed;inset:0}.keycap{border:1px solid var(--hud-line);border-radius:var(--radius-sm);min-width:1.6em;height:1.6em;font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:inherit;justify-content:center;align-items:center;padding:0 .4em;font-weight:500;line-height:1;display:inline-flex}.hud{z-index:var(--z-hud);pointer-events:none;color:var(--hud-text);text-shadow:var(--hud-shadow);opacity:1;transition:opacity var(--duration-slow) var(--ease-cph);--minimap-size:calc(132px * var(--hud-scale));position:fixed;inset:0}.hud.is-hidden{opacity:0}.hud__scrim{height:calc(220px * var(--hud-scale));background:var(--scrim-bottom);position:absolute;inset:auto 0 0}.hud__nav,.hud__speed{bottom:calc(var(--hud-inset) + env(safe-area-inset-bottom));position:absolute}.hud__top-left{top:calc(var(--hud-inset) + env(safe-area-inset-top));left:calc(var(--hud-inset) + env(safe-area-inset-left));gap:calc(var(--space-4) * var(--hud-scale));flex-direction:column;max-width:min(360px,70vw);display:flex;position:absolute}.hud__top-left>.weather-widget,.hud__top-left>.traffic-widget,.hud__top-left>.radio-widget{position:static}.hud__top-left>[hidden]{display:none}.hud__scrim-top{width:min(560px,80vw);height:calc(320px * var(--hud-scale));background:var(--scrim-top-left);position:absolute;top:0;left:0}.hud__scrim-top-right{width:min(560px,80vw);height:calc(320px * var(--hud-scale));pointer-events:none;background:radial-gradient(at 100% 0,#0e101294 0%,#0e101238 48%,#0000 74%);position:absolute;top:0;right:0}.weather-widget{top:calc(var(--hud-inset) + env(safe-area-inset-top));left:calc(var(--hud-inset) + env(safe-area-inset-left));gap:var(--space-1);font-size:calc(var(--text-sm) * var(--hud-scale));opacity:0;transition:opacity var(--duration-fade) var(--ease-cph);flex-direction:column;display:flex;position:absolute}.weather-widget.is-ready{opacity:1}.wx-source{font-size:calc(var(--text-xs) * var(--hud-scale));letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--hud-text-secondary);font-weight:500}.wx-now{align-items:center;gap:var(--space-2);display:flex}.wx-icon{filter:drop-shadow(0 1px 2px #0e101273);flex:none}.wx-icon--lg{width:calc(28px * var(--hud-scale));height:calc(28px * var(--hud-scale))}.wx-icon--sm{width:calc(18px * var(--hud-scale));height:calc(18px * var(--hud-scale))}.wx-temp{font-size:calc(var(--text-2xl) * var(--hud-scale));letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:300;line-height:1}.wx-temp__unit{color:var(--hud-text-secondary);vertical-align:top;margin-left:2px;font-size:.5em;font-weight:400}.wx-meta{color:var(--hud-text-secondary);font-variant-numeric:tabular-nums}.wx-forecast{gap:var(--space-4);margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--hud-line);list-style:none;display:flex}.wx-hour{font-variant-numeric:tabular-nums;flex-direction:column;align-items:center;gap:2px;display:flex}.wx-hour__time{font-size:calc(var(--text-xs) * var(--hud-scale));color:var(--hud-text-secondary)}.wx-hour__temp{font-size:calc(var(--text-xs) * var(--hud-scale));font-weight:500}.traffic-widget{top:calc(var(--hud-inset) + env(safe-area-inset-top) + 116px * var(--hud-scale));left:calc(var(--hud-inset) + env(safe-area-inset-left));gap:var(--space-1);font-size:calc(var(--text-sm) * var(--hud-scale));opacity:0;transition:opacity var(--duration-fade) var(--ease-cph);flex-direction:column;max-width:min(340px,60vw);display:flex;position:absolute}.traffic-widget.is-ready{opacity:1}.traffic-source{font-size:calc(var(--text-xs) * var(--hud-scale));letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--hud-text-secondary);font-weight:500}.traffic-body{align-items:center;gap:var(--space-2);display:flex}.traffic-status{font-size:calc(var(--text-sm) * var(--hud-scale));color:var(--hud-text);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.traffic-dot{border-radius:50%;flex:none;width:8px;height:8px}.traffic-dot--normal{background:#34d399;box-shadow:0 0 8px #34d39999}.traffic-dot--moderate{background:#fbbf24;box-shadow:0 0 8px #fbbf2499}.traffic-dot--congested{background:#f87171;animation:1.5s ease-in-out infinite trafficPulse;box-shadow:0 0 8px #f87171cc}@keyframes trafficPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.traffic-meta{font-size:calc(var(--text-xs) * var(--hud-scale));color:var(--hud-text-secondary);font-variant-numeric:tabular-nums}.radio-widget{gap:var(--space-1);font-size:calc(var(--text-sm) * var(--hud-scale));opacity:0;transition:opacity var(--duration-fade) var(--ease-cph), background var(--duration-fast) var(--ease-cph);pointer-events:auto;cursor:pointer;max-width:min(340px,60vw);padding:var(--space-1) var(--space-2);margin-left:calc(-1 * var(--space-2));border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.radio-widget:hover{background:#ffffff0d}.radio-widget.is-ready{opacity:1}.radio-widget--off{opacity:.7}.radio-widget--off:hover{opacity:1}.radio-source{font-size:calc(var(--text-xs) * var(--hud-scale));letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--hud-text-secondary);justify-content:space-between;align-items:center;font-weight:500;display:flex}.radio-live-badge{font-size:calc(10px * var(--hud-scale));letter-spacing:.06em;color:#34d399;background:#34d39933;border-radius:2px;padding:1px 4px}.radio-body{align-items:center;gap:var(--space-2);display:flex}.radio-station{font-size:calc(var(--text-sm) * var(--hud-scale));letter-spacing:-.01em;color:var(--hud-text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.radio-station--off{color:var(--hud-text-secondary);font-weight:400}.radio-dot{border-radius:50%;flex:none;width:8px;height:8px}.radio-dot--live{background:#34d399;animation:2s ease-in-out infinite radioLivePulse;box-shadow:0 0 8px #34d399b3}.radio-dot--buffering{background:#fbbf24;animation:1s ease-in-out infinite trafficPulse;box-shadow:0 0 8px #fbbf24b3}.radio-dot--paused,.radio-dot--off{background:#ffffff4d}@keyframes radioLivePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.75;transform:scale(.9)}}.radio-desc{font-size:calc(var(--text-xs) * var(--hud-scale));color:var(--hud-text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.radio-meta{font-size:calc(var(--text-xs) * var(--hud-scale));color:var(--hud-text-secondary);font-variant-numeric:tabular-nums;align-items:center;gap:var(--space-1);display:flex}.keycap--inline{font-size:calc(9px * var(--hud-scale));min-width:1.4em;height:1.4em;padding:0 .3em}.radio-equalizer{align-items:flex-end;gap:2px;height:12px;margin-left:2px;display:inline-flex}.eq-bar{background:var(--accent,#5f9e8f);border-radius:1px;width:2.5px}.eq-bar--1{height:60%;animation:.8s ease-in-out infinite alternate eqBounce}.eq-bar--2{height:100%;animation:.6s ease-in-out infinite alternate-reverse eqBounce}.eq-bar--3{height:40%;animation:.7s ease-in-out infinite alternate eqBounce}@keyframes eqBounce{0%{height:25%}to{height:100%}}.flight-widget{top:calc(var(--hud-inset) + env(safe-area-inset-top));right:calc(var(--hud-inset) + env(safe-area-inset-right));font-size:calc(var(--text-sm) * var(--hud-scale));opacity:0;transition:opacity var(--duration-fade) var(--ease-cph);pointer-events:auto;-webkit-user-select:none;user-select:none;z-index:10;flex-direction:column;min-width:250px;max-width:min(340px,80vw);display:flex;position:absolute}.flight-widget.is-ready{opacity:1}.flight-header{padding:var(--space-1) var(--space-2);cursor:pointer;border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(8px);border:1px solid var(--hud-line);transition:background var(--duration-fast) var(--ease-cph);background:#0e101273;justify-content:space-between;align-items:center;display:flex}.flight-header:hover{background:#0e1012a6}.flight-header__left{align-items:center;gap:var(--space-2);display:flex}.flight-radar-dot{border-radius:50%;flex:none;width:7px;height:7px;animation:2s ease-out infinite radar-pulse}.flight-radar-dot--live{background:#34d399;box-shadow:0 0 8px #34d399b3}.flight-radar-dot--off{background:var(--cph-ochre);box-shadow:0 0 8px #d4a24cb3}@keyframes radar-pulse{0%{opacity:.8;transform:scale(.95)}50%{opacity:1;transform:scale(1.25)}to{opacity:.8;transform:scale(.95)}}.flight-title{font-size:calc(var(--text-xs) * var(--hud-scale));letter-spacing:var(--tracking-label);color:var(--hud-text);text-transform:uppercase;font-weight:600}.flight-count{font-size:calc(10px * var(--hud-scale));color:var(--hud-text);font-variant-numeric:tabular-nums;background:#ffffff26;border-radius:10px;padding:1px 5px;font-weight:500}.flight-header__right{align-items:center;gap:var(--space-2);display:flex}.flight-source{font-size:calc(var(--text-xs) * var(--hud-scale));letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--hud-text-secondary);font-weight:400}.flight-toggle-btn{color:var(--hud-text-dim);font-size:calc(var(--text-xs) * var(--hud-scale));cursor:pointer;background:0 0;border:none;padding:0 2px;line-height:1}.flight-list{margin:var(--space-1) 0 0 0;-webkit-backdrop-filter:blur(8px);border:1px solid var(--hud-line);border-radius:var(--radius-sm);padding:0;padding:var(--space-1);background:#0e101273;flex-direction:column;gap:2px;list-style:none;display:flex}.flight-row{transition:background var(--duration-fast);border-bottom:1px solid #ffffff0d;border-radius:4px;flex-direction:column;gap:2px;padding:4px 6px;display:flex}.flight-row:last-child{border-bottom:none}.flight-row:hover{background:#ffffff14}.flight-row__top{justify-content:space-between;align-items:center;display:flex}.flight-row__main{align-items:center;gap:var(--space-2);display:flex}.flight-cat-icon{text-align:center;width:14px;font-size:11px;line-height:1;display:inline-block}.flight-cat-icon--dep{color:#60a5fa}.flight-cat-icon--arr{color:#34d399}.flight-cat-icon--gnd{color:#a3a3a3}.flight-cat-icon--ovh{color:var(--cph-ochre)}.flight-callsign{font-weight:600;font-size:calc(var(--text-xs) * var(--hud-scale));color:var(--hud-text);font-variant-numeric:tabular-nums;letter-spacing:.02em}.flight-cat-tag{font-size:calc(9px * var(--hud-scale));text-transform:uppercase;letter-spacing:.03em;border-radius:3px;padding:1px 4px;font-weight:500}.flight-cat-tag--departure{color:#93c5fd;background:#60a5fa2e}.flight-cat-tag--arrival{color:#6ee7b7;background:#34d3992e}.flight-cat-tag--ground{color:#d4d4d4;background:#a3a3a32e}.flight-cat-tag--overhead{color:#fde68a;background:#d4a24c2e}.flight-row__meta{align-items:center;gap:var(--space-2);font-size:calc(11px * var(--hud-scale));font-variant-numeric:tabular-nums;color:var(--hud-text-secondary);display:flex}.flight-alt{font-weight:500}.flight-dist{color:var(--hud-text-dim);font-size:calc(10px * var(--hud-scale))}.flight-row__route{font-size:calc(10.5px * var(--hud-scale));justify-content:space-between;align-items:center;padding-left:20px;display:flex}.flight-route-text{color:var(--accent-strong,#7bb8a9);letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-weight:500;overflow:hidden}.flight-speed{color:var(--hud-text-dim);font-size:calc(10px * var(--hud-scale));font-variant-numeric:tabular-nums}.flight-empty{padding:var(--space-2);font-size:calc(var(--text-xs) * var(--hud-scale));color:var(--hud-text-dim);text-align:center}.hud__nav{left:calc(var(--hud-inset) + env(safe-area-inset-left));align-items:flex-end;gap:var(--space-4);display:flex}.minimap{width:var(--minimap-size);height:var(--minimap-size);background:var(--minimap-disc);box-shadow:inset 0 0 0 1px var(--hud-line);border-radius:50%;flex:none;overflow:hidden}.minimap canvas{width:100%;height:100%;display:block}.nav-text{gap:var(--space-1);padding-bottom:var(--space-2);flex-direction:column;max-width:34ch;display:flex}.nav-street{font-size:calc(var(--text-lg) * var(--hud-scale));white-space:nowrap;text-overflow:ellipsis;font-weight:500;line-height:1.2;overflow:hidden}.nav-district{font-size:calc(var(--text-xs) * var(--hud-scale));letter-spacing:.05em;color:var(--hud-text-secondary);white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase;align-items:center;gap:var(--space-1);font-weight:600;display:flex;overflow:hidden}.nav-poi{align-items:baseline;gap:var(--space-1);min-width:0;font-size:calc(var(--text-xs) * var(--hud-scale));white-space:nowrap;opacity:0;line-height:1.3;transition:opacity .22s,transform .22s;display:flex;transform:translateY(2px)}.nav-poi.is-visible{opacity:1;transform:none}.nav-poi__side{color:var(--hud-text-secondary);font-weight:700}.nav-poi__name{text-overflow:ellipsis;font-weight:600;overflow:hidden}.nav-poi__kind{color:var(--hud-text-secondary);flex:none}.nav-poi__kind:before{content:"· "}.nav-heading{font-size:calc(var(--text-sm) * var(--hud-scale));letter-spacing:.06em;font-variant-numeric:tabular-nums;color:var(--hud-text-secondary);font-weight:500}.fsd-badge{align-items:center;gap:var(--space-2);margin-top:var(--space-1);padding:2px calc(var(--space-2) + 2px);border-radius:var(--radius-pill);background:var(--accent-soft);border:1px solid var(--accent);font-size:calc(var(--text-xs) * var(--hud-scale));letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--hud-text);text-shadow:var(--hud-shadow);font-weight:600;display:inline-flex}.fsd-badge[hidden]{display:none}.fsd-badge__dot{background:var(--accent-strong);width:6px;height:6px;box-shadow:0 0 8px var(--accent-strong);border-radius:50%;animation:2s infinite pulse-glow}.bus-strip{gap:var(--space-1);margin-top:var(--space-2);display:flex}.bus-strip[hidden]{display:none}.bus-chip{align-items:baseline;gap:var(--space-1);padding:1px var(--space-2);border-radius:var(--radius-pill);font-size:calc(var(--text-xs) * var(--hud-scale));font-variant-numeric:tabular-nums;text-shadow:none;display:inline-flex}.bus-chip__line{letter-spacing:.02em;font-weight:800}.bus-chip__dist{opacity:.75;font-weight:500}@keyframes pulse-glow{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)}}.hud__speed{right:calc(var(--hud-inset) + env(safe-area-inset-right));align-items:flex-end;gap:var(--space-3);flex-direction:column;display:flex}.speed-limit{width:calc(44px * var(--hud-scale));height:calc(44px * var(--hud-scale));background:var(--sign-limit-face);box-shadow:inset 0 0 0 calc(5px * var(--hud-scale)) var(--sign-limit-ring), 0 1px 4px #0e101259;text-shadow:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.speed-limit span{font-size:calc(1rem * var(--hud-scale));letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--sign-limit-text);font-weight:600}.speed-readout{flex-direction:column;align-items:flex-end;line-height:1;display:flex}.speed-value{font-family:var(--font-numeric);font-size:calc(var(--text-telemetry) * var(--hud-scale));letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-weight:300;line-height:.9}.speed-value.is-over{color:var(--danger-on-hud)}.speed-unit{margin-top:var(--space-1);font-size:calc(var(--text-xs) * var(--hud-scale));letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--hud-text-secondary);font-weight:500}.controls-hint{left:50%;bottom:calc(var(--hud-inset) + env(safe-area-inset-bottom) + var(--space-2));gap:var(--space-5);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--hud-text-secondary);opacity:0;transition:opacity var(--duration-fade) var(--ease-cph), transform var(--duration-fade) var(--ease-cph);font-weight:500;display:flex;position:absolute;transform:translate(-50%,8px)}.controls-hint.is-visible{opacity:1;transform:translate(-50%)}.controls-hint__item{align-items:center;gap:var(--space-1);white-space:nowrap;display:inline-flex}.controls-hint__item span{margin-left:var(--space-1)}.street-sign{top:calc(var(--hud-inset) + env(safe-area-inset-top));z-index:var(--z-banner);pointer-events:none;opacity:0;transition:opacity var(--duration-slow) var(--ease-cph), transform var(--duration-slow) var(--ease-cph);position:fixed;left:50%;transform:translate(-50%,-16px)}.street-sign.is-visible{opacity:1;transform:translate(-50%)}.street-sign.is-leaving{transition:opacity var(--duration-normal) var(--ease-exit), transform var(--duration-normal) var(--ease-exit)}.street-sign__plate{min-width:220px;max-width:min(80vw,560px);padding:var(--space-3) var(--space-8);background:var(--sign-ground);border-radius:var(--radius-sm);flex-direction:column;align-items:center;display:flex;position:relative;box-shadow:0 6px 20px #0e101259}.street-sign__plate:after{content:"";border:1.5px solid var(--sign-line);pointer-events:none;border-radius:2px;position:absolute;inset:3px}.street-sign__name{font-family:var(--font-sign);font-size:calc(var(--text-xl) * var(--hud-scale));letter-spacing:var(--tracking-sign);text-transform:uppercase;color:var(--sign-text);text-align:center;font-weight:600;line-height:1.15}.toast-region{bottom:calc(var(--hud-inset) + env(safe-area-inset-bottom) + 150px * var(--hud-scale));right:calc(var(--hud-inset) + env(safe-area-inset-right));z-index:var(--z-banner);align-items:flex-end;gap:var(--space-2);pointer-events:none;flex-direction:column-reverse;display:flex;position:fixed}.toast{min-width:220px;max-width:320px;padding:var(--space-3) var(--space-4);background:var(--surface-card);border-radius:var(--radius-md);box-shadow:var(--surface-shadow);border-left:3px solid var(--surface-line-strong);color:var(--paper);opacity:0;transition:opacity var(--duration-normal) var(--ease-cph), transform var(--duration-normal) var(--ease-cph);transform:translate(16px)}.toast.is-visible{opacity:1;transform:translate(0)}.toast--danger{border-left-color:var(--danger)}.toast__title{font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;font-weight:600}.toast__detail{font-size:var(--text-sm);color:var(--menu-text-secondary);font-variant-numeric:tabular-nums;margin-top:2px}.menu{z-index:var(--z-modal);padding:var(--hud-inset);padding-left:calc(var(--hud-inset) + env(safe-area-inset-left));background:var(--menu-backdrop);color:var(--paper);opacity:0;transition:opacity var(--duration-normal) var(--ease-cph);-webkit-user-select:none;user-select:none;align-items:center;display:flex;position:fixed;inset:0}.menu.is-open{opacity:1}.menu__panel{overscroll-behavior:contain;width:100%;max-width:520px;max-height:100%;padding:var(--space-8);background:var(--surface-menu);-webkit-backdrop-filter:blur(var(--blur-menu));border:1px solid var(--surface-line);border-radius:var(--radius-lg);box-shadow:var(--surface-shadow);gap:var(--space-6);transition:transform var(--duration-slow) var(--ease-cph);scrollbar-width:thin;scrollbar-color:var(--surface-line-strong) transparent;flex-direction:column;display:flex;overflow-y:auto;transform:translate(-12px)}.menu.is-open .menu__panel{transform:translate(0)}.menu__header{gap:var(--space-1);flex-direction:column;display:flex}.menu__title{font-size:var(--text-xl);letter-spacing:-.01em;font-weight:600}.menu__weather{min-height:1.4em;font-size:var(--text-sm);color:var(--menu-text-secondary);font-variant-numeric:tabular-nums}.menu__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.btn{align-items:center;gap:var(--space-3);min-height:40px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--surface-line-strong);font-size:var(--text-base);transition:background-color var(--duration-fast) var(--ease-cph);font-weight:500;display:inline-flex}.btn:hover{background:var(--surface-hover)}.btn .keycap{opacity:.6;border-color:currentColor}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--ink-950)}.btn--primary:hover{background:var(--accent-strong)}.menu__section{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.menu__label{align-items:center;gap:var(--space-2);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--menu-text-secondary);font-weight:500;display:flex}.menu__label .keycap{border-color:var(--surface-line-strong)}.menu__row{gap:var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.menu__places{gap:var(--space-1);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.place{text-align:left;min-height:36px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;transition:background-color var(--duration-fast) var(--ease-cph);font-weight:500;overflow:hidden}.place:hover{background:var(--surface-hover)}.segmented{gap:var(--space-1);flex-wrap:wrap;display:flex}.segmented__option{min-height:32px;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--surface-line);font-size:var(--text-sm);color:var(--menu-text-secondary);transition:background-color var(--duration-fast) var(--ease-cph), color var(--duration-fast) var(--ease-cph)}.segmented__option:hover{background:var(--surface-hover);color:var(--paper)}.segmented__option[aria-checked=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--paper)}.swatch{border:2px solid var(--surface-line);width:30px;height:30px;transition:transform var(--duration-fast) var(--ease-cph), border-color var(--duration-fast) var(--ease-cph), box-shadow var(--duration-fast) var(--ease-cph);border-radius:50%;flex:none}.swatch:hover{transform:scale(1.12)}.swatch[aria-checked=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.menu__settings{gap:var(--space-3);flex-direction:column;display:flex}.menu__setting{align-items:center;gap:var(--space-3);grid-template-columns:9rem 1fr;display:grid}.menu__setting-label{font-size:var(--text-sm);color:var(--menu-text-secondary)}.menu__controls{gap:var(--space-2) var(--space-4);font-size:var(--text-sm);grid-template-columns:1fr auto;display:grid}.menu__controls dt{color:var(--menu-text-secondary)}.menu__controls dd{gap:var(--space-1);justify-content:flex-end;display:flex}.menu__controls .keycap,.menu__actions .keycap{border-color:var(--surface-line-strong)}.menu__data{margin-top:var(--space-4);font-size:var(--text-xs);color:var(--menu-text-secondary)}.system-screen{z-index:var(--z-system);background:var(--paper);color:var(--ink-900);--loading-line:var(--ink-700);transition:opacity var(--duration-fade) var(--ease-cph);position:fixed;inset:0}.system-screen.is-done{opacity:0;pointer-events:none}.system-screen__map{opacity:.55;width:100%;height:100%;position:absolute;inset:0}.system-screen__content{left:calc(var(--hud-inset) + env(safe-area-inset-left));bottom:calc(var(--hud-inset) + env(safe-area-inset-bottom));max-width:min(560px, calc(100vw - 2 * var(--hud-inset)));gap:var(--space-3);flex-direction:column;display:flex;position:absolute}.system-screen__eyebrow{font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-500);font-weight:500}.system-screen__title{font-family:var(--font-sign);font-size:var(--text-2xl);letter-spacing:var(--tracking-sign);text-transform:uppercase;font-weight:600;line-height:1.1}.system-screen__fact{font-size:var(--text-base);color:var(--ink-700);line-height:1.5}.system-screen__device{font-size:var(--text-base);color:var(--ink-900);font-weight:600;line-height:1.5}.system-screen__credit{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--ink-500)}.system-screen__bar{background:#16191c1f;width:200px;height:2px;overflow:hidden}.system-screen__bar>div{background:var(--ink-900);transform-origin:0;height:100%;transition:transform var(--duration-normal) var(--ease-cph);transform:scaleX(0)}.system-screen.is-failed .system-screen__bar{display:none}.system-screen .btn--primary{color:var(--paper);background:var(--ink-900);border-color:var(--ink-900);align-self:flex-start}@media (width<=900px){.hud{--minimap-size:calc(112px * var(--hud-scale))}}@media (width<=600px){.wx-forecast,.wx-meta{display:none}.hud{--minimap-size:calc(96px * var(--hud-scale))}.speed-value{font-size:calc(2.75rem * var(--hud-scale))}.nav-text{max-width:40vw}.controls-hint{display:none}.menu{padding:var(--space-3);align-items:stretch}.menu__panel{padding:var(--space-5)}.menu__row{grid-template-columns:1fr}.menu__setting{gap:var(--space-2);grid-template-columns:1fr}.street-sign__plate{min-width:0;padding:var(--space-2) var(--space-5)}}@media (prefers-reduced-motion:reduce){.street-sign,.street-sign.is-visible,.controls-hint,.controls-hint.is-visible,.toast,.toast.is-visible,.menu__panel,.menu.is-open .menu__panel{transform:translate(-50%)}.toast,.toast.is-visible,.menu__panel,.menu.is-open .menu__panel{transform:none}}.jobs{top:30%;right:calc(var(--hud-inset) + env(safe-area-inset-right));width:calc(300px * var(--hud-scale));align-items:flex-end;gap:var(--space-2);color:var(--hud-text);text-shadow:var(--hud-shadow);pointer-events:none;flex-direction:column;display:flex;position:fixed}.jobs__wallet{font-size:calc(var(--text-xs) * var(--hud-scale));letter-spacing:.04em;color:var(--hud-text-secondary);font-variant-numeric:tabular-nums;font-weight:600}.job-panel{width:100%;padding:var(--space-3);background:var(--surface-menu);border-left:3px solid var(--accent);text-shadow:none;border-radius:10px;box-shadow:0 6px 24px #0e101259}.job-panel__head{justify-content:space-between;align-items:baseline;gap:var(--space-2);font-size:calc(var(--text-xs) * var(--hud-scale));text-transform:uppercase;letter-spacing:.06em;color:var(--hud-text-secondary);font-weight:700;display:flex}.job-panel__fare{color:var(--accent-strong);font-variant-numeric:tabular-nums}.job-panel__stop{margin-top:var(--space-1);font-size:calc(var(--text-md,15px) * var(--hud-scale));white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.job-panel__turn{align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-size:calc(var(--text-sm,14px) * var(--hud-scale));display:flex}.job-panel__arrow{background:var(--accent-soft);width:1.6em;height:1.6em;color:var(--accent-strong);border-radius:6px;flex:none;place-items:center;font-size:1.2em;font-weight:700;display:grid}.job-panel__turn-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.job-panel__foot{margin-top:var(--space-2);font-size:calc(var(--text-sm,14px) * var(--hud-scale));font-variant-numeric:tabular-nums;justify-content:space-between;font-weight:600;display:flex}.job-panel__clock.is-tight{color:var(--warm)}.job-panel__clock.is-late{color:var(--danger-on-hud)}.job-board{width:min(560px,100vw - 32px);padding:var(--space-4,20px);background:var(--surface-menu);color:var(--hud-text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 12px 48px #0e101280}.job-board__title{margin:0 0 var(--space-3);font-size:var(--text-lg,18px);font-weight:700}.job-board__list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.job-offer{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface-card);border-radius:10px;grid-template-columns:auto 1fr auto;display:grid}.job-offer__key{background:var(--accent-soft);width:1.8em;height:1.8em;color:var(--accent-strong);border-radius:6px;place-items:center;font-weight:700;display:grid}.job-offer__kind{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--hud-text-secondary);font-weight:700}.job-offer--food .job-offer__kind{color:var(--warm)}.job-offer__route{font-weight:600}.job-offer__meta{font-size:var(--text-xs);color:var(--hud-text-dim)}.job-offer__pay{font-variant-numeric:tabular-nums;color:var(--accent-strong);font-weight:700}.job-board__hint{margin:var(--space-3) 0 0;font-size:var(--text-xs);color:var(--hud-text-dim)}@media (width<=640px){.jobs{top:auto;bottom:calc(var(--hud-inset) + 170px);width:calc(100vw - 32px);right:16px}}
