:root{--bg:#0b0f17;--panel:#1015209e;--panel-strong:#101520db;--line:#ffffff17;--line-strong:#ffffff29;--text:#eef2f7;--muted:#94a0b4;--accent:#3ee6c4;--accent-2:#4da3ff;--hot:#ff5a36;--gold:#ffc53d;--radius:18px;--font:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--display:"Space Grotesk", var(--font);--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;touch-action:none;margin:0;overflow:hidden}#scene{width:100%;height:100%;display:block;position:fixed;inset:0}[hidden]{display:none!important}svg{fill:currentColor;width:20px;height:20px}a{color:inherit}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}.glass{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px)saturate(140%);box-shadow:0 8px 30px #00000040}.glass-strong{background:var(--panel-strong);border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(22px)saturate(150%);box-shadow:0 30px 80px #00000073}.overlay{z-index:20;position:fixed;inset:0}.overlay.center{place-items:center;padding:16px;display:grid}.overlay.dim{-webkit-backdrop-filter:blur(4px);background:#05080e73}.menu{touch-action:pan-y;-webkit-user-select:text;user-select:text;overflow-y:auto}.menu-bg{background:radial-gradient(1200px 600px at 85% -10%,#4da3ff38,#0000 60%),radial-gradient(900px 600px at -10% 110%,#3ee6c42e,#0000 60%),linear-gradient(#0b0f17,#0d1320);position:fixed;inset:0}.menu-bg:after{content:"";transform-origin:top;background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:48px 48px;animation:18s linear infinite drift;position:absolute;inset:-50%;transform:perspective(800px)rotateX(58deg)translateY(-10%);-webkit-mask-image:linear-gradient(#0000 10%,#000 60%);mask-image:linear-gradient(#0000 10%,#000 60%)}@keyframes drift{to{background-position:0 480px}}.menu-inner{grid-template-columns:1.05fr 1fr;align-items:center;gap:56px;max-width:1160px;min-height:100%;margin:0 auto;padding:48px 28px;display:grid;position:relative}.brand{font-family:var(--display);letter-spacing:.2px;align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.logo{background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:11px;place-items:center;width:36px;height:36px;display:grid;box-shadow:0 8px 24px #3ee6c459}.logo svg{fill:#0b0f17;width:22px;height:22px}.hero h1{font-family:var(--display);letter-spacing:-2px;margin:36px 0 18px;font-size:clamp(40px,6vw,72px);line-height:1}.grad{background:linear-gradient(90deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.lede{color:var(--muted);max-width:480px;margin:0 0 28px;font-size:17px;line-height:1.6}.keys{color:var(--muted);flex-wrap:wrap;gap:10px 18px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.keys li{align-items:center;gap:4px;display:flex}kbd{font-family:var(--font);min-width:22px;height:22px;color:var(--text);border:1px solid var(--line-strong);background:#ffffff0f;border-bottom-width:2px;border-radius:6px;place-items:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-grid}.card{border-radius:24px;flex-direction:column;gap:14px;padding:26px;display:flex}.step-label{letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;font-size:12px;font-weight:600;display:flex}.step-label span{width:20px;height:20px;color:var(--accent);background:#3ee6c426;border-radius:50%;place-items:center;font-size:11px;display:grid}.search{border:1px solid var(--line-strong);background:#ffffff0d;border-radius:14px;align-items:center;gap:10px;height:50px;padding:0 6px 0 14px;transition:border-color .2s,box-shadow .2s;display:flex}.search:focus-within{border-color:#3ee6c499;box-shadow:0 0 0 4px #3ee6c41f}.search .ico{color:var(--muted);flex:none}.search input{min-width:0;height:100%;color:var(--text);font:inherit;background:0 0;border:0;outline:0;flex:1;font-size:15px}.search input::placeholder{color:#6f7a8d}.ghost-btn{width:38px;height:38px;color:var(--muted);border-radius:10px;place-items:center;transition:background .2s,color .2s;display:grid}.ghost-btn:hover{color:var(--text);background:#ffffff14}.results{border:1px solid var(--line-strong);background:#0a0e16e6;border-radius:14px;max-height:240px;margin:-6px 0 0;padding:6px;list-style:none;overflow-y:auto}.results li{cursor:pointer;border-radius:10px;padding:10px 12px}.results li:hover,.results li.active{background:#3ee6c41a}.results .r-name{font-size:14px;font-weight:600}.results .r-detail{color:var(--muted);margin-top:2px;font-size:12px}.results .r-msg{color:var(--muted);cursor:default;font-size:13px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);color:#cdd5e1;background:#ffffff0d;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:500;transition:all .15s}.chip:hover{border-color:var(--line-strong);background:#ffffff17}.chip.on{color:var(--accent);background:#3ee6c424;border-color:#3ee6c480}.selected{background:linear-gradient(135deg,#3ee6c41a,#4da3ff14);border:1px solid #3ee6c440;border-radius:14px;align-items:center;gap:14px;padding:14px 16px;display:flex}.sel-pin{background:var(--accent);border-radius:50%;flex:none;width:12px;height:12px;box-shadow:0 0 0 5px #3ee6c42e,0 0 18px #3ee6c4cc}.sel-name{font-size:15px;font-weight:600}.sel-coords{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:2px;font-size:12px}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.segmented{border:1px solid var(--line);background:#ffffff0d;border-radius:12px;padding:4px;display:inline-flex}.segmented button{color:var(--muted);border-radius:9px;padding:8px 14px;font-size:13px;font-weight:600;transition:all .15s}.segmented button.on{color:var(--text);background:#ffffff1f;box-shadow:inset 0 1px #ffffff14}.segmented.small button{padding:6px 10px;font-size:12px}.swatches{gap:8px;display:flex}.swatch{border:2px solid #0000;border-radius:50%;width:26px;height:26px;transition:transform .15s;box-shadow:inset 0 0 0 1px #ffffff26}.swatch:hover{transform:scale(1.1)}.swatch.on{border-color:#fff}.settings{border-top:1px solid var(--line);padding-top:10px}.settings summary{cursor:pointer;color:var(--muted);font-size:13px;font-weight:500;list-style:none}.settings summary:before{content:"+ "}.settings[open] summary:before{content:"– "}.setting{color:#cdd5e1;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;font-size:13px;display:flex}.primary-btn{letter-spacing:.2px;color:#06110f;background:linear-gradient(135deg, var(--accent), #5ff0d4 45%, var(--accent-2));border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;height:52px;font-size:15px;font-weight:700;transition:transform .15s,box-shadow .15s,filter .15s;display:flex;box-shadow:0 10px 30px #3ee6c447}.primary-btn:hover{transform:translateY(-1px);box-shadow:0 14px 36px #3ee6c461}.primary-btn:active{filter:brightness(.95);transform:translateY(0)}.primary-btn:disabled{opacity:.6;cursor:wait}.primary-btn svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.secondary-btn{border:1px solid var(--line-strong);background:#ffffff0f;border-radius:12px;width:100%;height:46px;font-size:14px;font-weight:600;transition:background .15s}.secondary-btn:hover{background:#ffffff1c}.fineprint{color:#6f7a8d;text-align:center;font-size:11px;line-height:1.5}.panel{text-align:center;border-radius:24px;flex-direction:column;gap:10px;width:min(380px,100%);padding:28px;animation:.25s ease-out pop;display:flex}.panel h2{font-family:var(--display);margin:0 0 10px;font-size:28px}@keyframes pop{0%{opacity:0;transform:scale(.96)translateY(6px)}}.badge{letter-spacing:1px;text-transform:uppercase;color:var(--gold);background:#ffc53d1f;border:1px solid #ffc53d59;border-radius:999px;align-self:center;padding:6px 12px;font-size:12px;font-weight:700}.res-time{font-family:var(--display);letter-spacing:-1px;font-variant-numeric:tabular-nums;margin-top:6px;font-size:56px;font-weight:700}.res-best{color:var(--muted);min-height:20px;font-size:14px}.res-best.pb{color:var(--accent);font-weight:600}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 10px;display:grid}.stats div{border:1px solid var(--line);background:#ffffff0d;border-radius:12px;padding:12px 6px}.stats span{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:20px;font-weight:600;display:block}.stats label{color:var(--muted);text-transform:uppercase;letter-spacing:.8px;font-size:11px}.loader{text-align:center;border-radius:24px;width:min(360px,100%);padding:30px 28px}.loader-ring{border:3px solid #ffffff1a;border-top-color:var(--accent);border-radius:50%;width:44px;height:44px;margin:0 auto 18px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loader-title{font-family:var(--display);font-size:20px;font-weight:600}.progress{background:#ffffff14;border-radius:99px;height:6px;margin:18px 0 12px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:99px;width:0;height:100%;transition:width .3s}.loader-sub{color:var(--muted);font-size:13px}.hud{z-index:10;pointer-events:none;position:fixed;inset:0}.hud button,.hud a{pointer-events:auto}.hud-top{grid-template-columns:1fr auto 1fr;align-items:start;gap:12px;display:grid;position:absolute;top:16px;left:16px;right:16px}.pill{white-space:nowrap;text-overflow:ellipsis;border-radius:999px;justify-self:start;align-items:center;gap:8px;max-width:100%;height:40px;padding:0 14px;font-size:13px;font-weight:600;display:flex;overflow:hidden}.pill .ico{width:16px;height:16px;color:var(--accent);flex:none}.race-panel{text-align:center;border-radius:16px;min-width:190px;padding:10px 22px}.race-time{font-family:var(--display);letter-spacing:-.5px;font-variant-numeric:tabular-nums;font-size:32px;font-weight:700;line-height:1.1}.race-meta{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:8px;margin-top:2px;font-size:12px;font-weight:600;display:flex}.race-meta #hud-cp{color:var(--accent)}.dot{background:currentColor;border-radius:50%;width:3px;height:3px}.hud-buttons{justify-self:end;gap:8px;display:flex}.icon-btn{border-radius:12px;place-items:center;width:40px;height:40px;transition:background .15s;display:grid}.icon-btn:hover{background:#1e2636cc}.icon-btn svg{width:18px;height:18px}#ico-sound{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linejoin:round;stroke-linecap:round}#ico-sound path:first-child{fill:currentColor}.muted #ico-sound path:not(:first-child){opacity:.2}.hud-bottom{left:16px;right:16px;bottom:calc(16px + var(--safe-b));justify-content:space-between;align-items:flex-end;display:flex;position:absolute}.minimap-wrap{border-radius:50%;width:190px;height:190px;padding:0;overflow:hidden}#minimap{width:100%;height:100%;display:block}.speedo{border-radius:50%;place-items:center;width:190px;height:190px;display:grid;position:relative}.speedo-ring{width:calc(100% - 20px);height:calc(100% - 20px);position:absolute;inset:10px;transform:rotate(135deg)}.speedo-ring circle{fill:none;stroke-width:7px;stroke-linecap:round}.speedo-ring .track{stroke:#ffffff14;stroke-dasharray:245 400}.speedo-ring .fill{stroke:var(--accent);stroke-dasharray:0 400;filter:drop-shadow(0 0 6px #3ee6c499);transition:stroke .2s}.speedo.boosting .speedo-ring .fill{stroke:var(--accent-2);filter:drop-shadow(0 0 8px #4da3ffe6)}.speedo-read{text-align:center;margin-top:-14px}.speed{font-family:var(--display);font-variant-numeric:tabular-nums;letter-spacing:-1px;font-size:50px;font-weight:700;line-height:1}.unit{color:var(--muted);letter-spacing:1px;text-transform:uppercase;font-size:12px;font-weight:600}.boost{text-align:center;width:84px;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.boost-label{letter-spacing:1.5px;color:var(--muted);margin-bottom:4px;font-size:9px;font-weight:700}.boost-bar{background:#ffffff1a;border-radius:99px;height:5px;overflow:hidden}.boost-fill{background:linear-gradient(90deg,#4da3ff,#8be0ff);border-radius:99px;width:50%;height:100%}.toast{border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;white-space:nowrap;background:#101520cc;border-radius:999px;padding:10px 18px;font-size:14px;font-weight:600;transition:opacity .25s,transform .25s;position:absolute;top:110px;left:50%;transform:translate(-50%,-8px)}.toast.show{opacity:1;transform:translate(-50%)}.toast.accent{color:var(--accent);border-color:#3ee6c473}.toast.blue{color:#8bc8ff;border-color:#4da3ff73}.toast.warn{color:var(--gold);border-color:#ffc53d73}.countdown{font-family:var(--display);color:#fff;text-shadow:0 10px 40px #00000059;pointer-events:none;font-size:140px;font-weight:700;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}.countdown.tick{animation:.9s ease-out forwards tick}.countdown.go{color:var(--accent)}@keyframes tick{0%{opacity:0;transform:translate(-50%,-50%)scale(1.5)}20%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.9)}}.attribution{bottom:calc(4px + var(--safe-b));color:#141a26b3;white-space:nowrap;pointer-events:auto;background:#ffffff8c;border-radius:6px;padding:2px 8px;font-size:10px;position:absolute;left:50%;transform:translate(-50%)}.attribution a{text-decoration:none}.touch{display:none}@media (pointer:coarse){.touch{left:12px;right:12px;bottom:calc(12px + var(--safe-b));pointer-events:none;justify-content:space-between;align-items:flex-end;display:flex;position:absolute}.touch>div{align-items:flex-end;gap:10px;display:flex}.touch-right{flex-wrap:wrap;justify-content:flex-end;max-width:200px}.touch button{pointer-events:auto;border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:.5px;touch-action:none;background:#1015208c;border-radius:20px;place-items:center;width:74px;height:74px;font-size:12px;font-weight:700;display:grid}.touch button svg{fill:none;stroke:currentColor;stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round;width:30px;height:30px}.touch button.small{width:74px;height:44px}.touch button.gas{background:#3ee6c440;border-color:#3ee6c480}.touch button.active{background:#ffffff38}.hud-bottom{bottom:calc(150px + var(--safe-b))}.hud .minimap-wrap,.hud .speedo{width:116px;height:116px}.hud .speed{font-size:30px}.hud .boost{width:56px;bottom:12px}.hud .boost-label,.attribution{display:none}}@media (max-width:900px){.menu-inner{grid-template-columns:1fr;gap:28px;padding:28px 16px 40px}.hero h1{margin-top:22px}.lede{margin-bottom:18px;font-size:15px}.keys{display:none}.card{padding:18px}}@media (max-width:640px){.hud-top{grid-template-columns:1fr auto;top:10px;left:10px;right:10px}.place-pill{display:none}.race-panel{justify-self:start;min-width:0;padding:8px 14px}.race-time{font-size:24px}.icon-btn{width:36px;height:36px}.minimap-wrap,.speedo{width:128px;height:128px}.speed{font-size:34px}.boost{width:60px;bottom:14px}.boost-label{display:none}.countdown{font-size:96px}.toast{top:76px}}.menu-error{color:#ffd7a8;background:#ff8c3c1a;border:1px solid #ffa05059;border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.5}.race-panel.free #hud-cp{color:var(--muted)}.start-map-wrap{border:1px solid var(--line-strong);background:#0d1320;border-radius:14px;height:196px;position:relative;overflow:hidden;box-shadow:inset 0 8px 24px #00000059}#start-map{cursor:crosshair;touch-action:none;width:100%;height:100%;display:block}#start-map:active{cursor:grabbing}.start-map-controls{flex-direction:column;gap:4px;display:flex;position:absolute;top:8px;right:8px}.start-map-controls button{border:1px solid var(--line-strong);width:28px;height:28px;color:var(--text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0b0f17d9;border-radius:8px;place-items:center;font-size:14px;font-weight:700;transition:background .15s,border-color .15s;display:grid}.start-map-controls button:hover{border-color:var(--accent);background:#1e2636f2}.sel-text{flex:1;min-width:0}.sel-time-badge{border:1px solid var(--line-strong);color:var(--accent);white-space:nowrap;font-variant-numeric:tabular-nums;background:#0b0f178c;border-radius:999px;padding:5px 10px;font-size:11.5px;font-weight:600}.hud-telemetry{flex-direction:column;justify-self:start;align-items:flex-start;gap:6px;max-width:100%;display:flex}.hud-telemetry .pill{height:34px;padding:0 12px;font-size:12px}.mono{font-variant-numeric:tabular-nums}.sep{color:var(--muted);opacity:.6}.coords-pill{color:#cdd5e1}.time-pill{color:#eef2f7}.period-dot{background:var(--gold);width:8px;height:8px;box-shadow:0 0 8px var(--gold);border-radius:50%;flex:none}.period-dot.night{background:#8ab4f8;box-shadow:0 0 8px #8ab4f8}.period-dot.evening{background:#ff8a47;box-shadow:0 0 8px #ff8a47}.period-dot.morning{background:#ffbe7b;box-shadow:0 0 8px #ffbe7b}.minimap-cluster{pointer-events:auto;flex-direction:column;align-items:flex-start;gap:8px;display:flex}.minimap-meta{border-radius:999px;justify-content:space-between;align-items:center;gap:8px;min-width:190px;max-width:340px;padding:5px 8px 5px 12px;font-size:11.5px;font-weight:600;display:flex}.minimap-meta-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.minimap-area{color:var(--accent);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.minimap-street{color:#cdd5e1;white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;font-weight:500;overflow:hidden}.minimap-expand-btn{width:26px;height:26px;color:var(--text);background:#ffffff12;border-radius:50%;flex:none;place-items:center;transition:background .15s,transform .15s;display:grid}.minimap-expand-btn:hover{color:var(--accent);background:#3ee6c438;transform:scale(1.08)}.minimap-expand-btn svg{width:14px;height:14px}.minimap-wrap{cursor:pointer;transition:width .24s,height .24s,border-radius .24s;position:relative}.minimap-wrap.expanded{z-index:25;border-color:#3ee6c473;border-radius:22px;width:min(500px,100vw - 32px);height:min(500px,100vh - 180px);box-shadow:0 24px 64px #000000a6}.minimap-legend{border:1px solid var(--line);color:#cdd5e1;pointer-events:none;background:#0a0e16d1;border-radius:10px;flex-wrap:wrap;gap:6px 10px;padding:5px 10px;font-size:10px;font-weight:600;display:flex;position:absolute;top:10px;left:12px;right:12px}.minimap-legend span{align-items:center;gap:4px;display:inline-flex}.minimap-legend i{border-radius:2px;width:8px;height:8px;display:inline-block}.speedo.drifting .boost-fill{background:linear-gradient(90deg,#3ee6c4,#ffc53d);box-shadow:0 0 10px #3ee6c4e6}.speedo.drifting .boost-label{color:var(--accent)}.setup-time{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.setup-time-label{color:var(--muted);font-size:13px;font-weight:600}.menu-bg,.menu .card,.menu .search,.menu .chip,.menu .selected,.menu .sel-time-badge,.menu .segmented,.menu kbd,.menu .start-map-wrap,.menu .start-map-controls button{transition:background .4s,color .3s,border-color .3s,box-shadow .35s}.menu[data-theme=morning]{--text:#182235;--muted:#52627a;--line:#1822351c;--line-strong:#18223533;--panel-strong:#fffaf3db;--accent:#d96b27;--accent-2:#0284c7;color:var(--text)}.menu[data-theme=morning] .menu-bg{background:radial-gradient(1200px 650px at 85% -5%,#ffa65e73,#0000 62%),radial-gradient(950px 620px at -10% 105%,#38bdf84d,#0000 62%),linear-gradient(#f7efe4,#e5eff9)}.menu[data-theme=morning] .menu-bg:after{background-image:linear-gradient(#1822350d 1px,#0000 1px),linear-gradient(90deg,#1822350d 1px,#0000 1px)}.menu[data-theme=afternoon]{--text:#0f172a;--muted:#475569;--line:#0f172a1a;--line-strong:#0f172a2e;--panel-strong:#ffffffe0;--accent:#0d9488;--accent-2:#0284c7;color:var(--text)}.menu[data-theme=afternoon] .menu-bg{background:radial-gradient(1200px 650px at 85% -10%,#38bdf85c,#0000 62%),radial-gradient(950px 620px at -10% 110%,#10b98140,#0000 62%),linear-gradient(#deebf7,#eff5fb)}.menu[data-theme=afternoon] .menu-bg:after{background-image:linear-gradient(#0f172a0d 1px,#0000 1px),linear-gradient(90deg,#0f172a0d 1px,#0000 1px)}.menu[data-theme=morning] .card,.menu[data-theme=afternoon] .card{box-shadow:0 24px 64px #0f172a29}.menu[data-theme=morning] .logo svg,.menu[data-theme=afternoon] .logo svg{fill:#fff}.menu[data-theme=morning] kbd,.menu[data-theme=afternoon] kbd{color:var(--text);background:#0f172a0f}.menu[data-theme=morning] .search,.menu[data-theme=afternoon] .search{background:#0f172a0a}.menu[data-theme=morning] .search input::placeholder,.menu[data-theme=afternoon] .search input::placeholder{color:#64748b}.menu[data-theme=morning] .results,.menu[data-theme=afternoon] .results{background:#fffffff5;box-shadow:0 12px 32px #0f172a26}.menu[data-theme=morning] .chip,.menu[data-theme=afternoon] .chip{color:#334155;background:#0f172a0a}.menu[data-theme=morning] .chip:hover,.menu[data-theme=afternoon] .chip:hover{background:#0f172a14}.menu[data-theme=morning] .chip.on{color:#b45309;background:#d96b2724;border-color:#d96b2773}.menu[data-theme=afternoon] .chip.on{color:#0f766e;background:#0d948824;border-color:#0d948873}.menu[data-theme=morning] .selected{background:linear-gradient(135deg,#d96b271f,#0284c71a);border-color:#d96b274d}.menu[data-theme=afternoon] .selected{background:linear-gradient(135deg,#0d94881f,#0284c71a);border-color:#0d94884d}.menu[data-theme=morning] .sel-time-badge,.menu[data-theme=afternoon] .sel-time-badge{background:#ffffffd9}.menu[data-theme=morning] .segmented,.menu[data-theme=afternoon] .segmented{background:#0f172a0d}.menu[data-theme=morning] .segmented button.on,.menu[data-theme=afternoon] .segmented button.on{color:var(--text);background:#fff;box-shadow:0 2px 6px #0f172a1a}.menu[data-theme=morning] .setting,.menu[data-theme=afternoon] .setting{color:#334155}.menu[data-theme=morning] .swatch.on,.menu[data-theme=afternoon] .swatch.on{border-color:#0f172a}.menu[data-theme=morning] .start-map-wrap,.menu[data-theme=afternoon] .start-map-wrap{background:#e6eef7;box-shadow:inset 0 4px 16px #0f172a1f}.menu[data-theme=morning] .start-map-controls button,.menu[data-theme=afternoon] .start-map-controls button{color:#0f172a;background:#ffffffe0}.menu[data-theme=morning] .start-map-controls button:hover,.menu[data-theme=afternoon] .start-map-controls button:hover{background:#fff}.menu[data-theme=morning] .primary-btn{color:#fff;background:linear-gradient(135deg,#d96b27,#f59e0b 50%,#0284c7);box-shadow:0 10px 28px #d96b274d}.menu[data-theme=afternoon] .primary-btn{color:#fff;background:linear-gradient(135deg,#0d9488,#14b8a6 45%,#0284c7);box-shadow:0 10px 28px #0d948847}.menu[data-theme=evening]{--text:#f7eefc;--muted:#b6a4c9;--line:#ffe1f01c;--line-strong:#ffe1f033;--panel-strong:#1c132adb;--accent:#ff8a47;--accent-2:#c084fc;color:var(--text)}.menu[data-theme=evening] .menu-bg{background:radial-gradient(1200px 600px at 85% -10%,#ff724c52,#0000 60%),radial-gradient(900px 600px at -10% 110%,#a855f73d,#0000 60%),linear-gradient(#161024,#221633)}.menu[data-theme=evening] .chip.on{color:#ff9e66;background:#ff8a4729;border-color:#ff8a4780}.menu[data-theme=evening] .selected{background:linear-gradient(135deg,#ff8a4724,#c084fc1a);border-color:#ff8a4752}.menu[data-theme=evening] .primary-btn{color:#160d1f;background:linear-gradient(135deg,#ff8a47,#ffb648 48%,#c084fc);box-shadow:0 10px 30px #ff8a474d}.minimap-cluster[data-theme=light] .minimap-meta{color:#0f172a;background:#ffffffdb;border-color:#0f172a29}.minimap-cluster[data-theme=light] .minimap-area{color:#0d9488}.minimap-cluster[data-theme=light] .minimap-street{color:#475569}.minimap-cluster[data-theme=light] .minimap-expand-btn{color:#0f172a;background:#0f172a12}.minimap-cluster[data-theme=light] .minimap-expand-btn:hover{color:#0d9488;background:#0d94882e}.minimap-cluster[data-theme=light] .minimap-wrap{background:#f4f7fce6;border-color:#0f172a2e;box-shadow:0 10px 30px #0f172a2e}.minimap-cluster[data-theme=light] .minimap-wrap.expanded{border-color:#0d94888c;box-shadow:0 24px 64px #0f172a52}.minimap-cluster[data-theme=light] .minimap-legend{color:#1e293b;background:#ffffffe6;border-color:#0f172a24}.fps-pill{height:40px;color:var(--accent);letter-spacing:.3px;border-radius:12px;justify-self:end;padding:0 13px;font-size:12.5px;font-weight:700}.fps-pill.warn{color:var(--gold)}.fps-pill.low{color:var(--hot)}.pause-panel{width:min(420px,100%)}.pause-settings{border:1px solid var(--line);text-align:left;background:#ffffff0a;border-radius:14px;flex-direction:column;gap:8px;margin-bottom:6px;padding:12px 14px;display:flex}.pause-settings .setting{margin-top:0}@media (max-width:640px){.coords-pill{font-size:10.5px}.minimap-meta{min-width:128px}}.mode-cards{grid-template-columns:1fr 1fr;gap:8px;margin-top:6px;display:grid}.mode-card{text-align:left;border:1px solid var(--line);color:var(--muted);background:#ffffff0a;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;transition:all .15s;display:flex;position:relative}.mode-card strong{color:var(--text);font-size:14px}.mode-card span{font-size:12px;line-height:1.35}.mode-card.on{border-color:var(--accent);background:#ffffff1a}.mode-card em{letter-spacing:.06em;text-transform:uppercase;color:var(--gold);font-size:10px;font-style:normal;font-weight:700;position:absolute;top:8px;right:8px}.mode-card:disabled{opacity:.5;cursor:not-allowed}.interact-prompt{color:#fff;letter-spacing:.02em;white-space:nowrap;pointer-events:none;background:#080a1099;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:700;position:absolute;bottom:150px;left:50%;transform:translate(-50%)}.vitals{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;background:#0a0e1673;border-radius:12px;gap:6px;width:200px;padding:8px 10px;display:grid;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.vitals[hidden]{display:none}.vital{letter-spacing:.3px;color:#ffffffd9;grid-template-columns:14px 56px 1fr;align-items:center;gap:8px;font-size:11px;font-weight:600;display:grid}.vital[hidden]{display:none}.vital-ico{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.vital-bar{background:#ffffff24;border-radius:4px;height:7px;overflow:hidden}.vital i{width:100%;height:100%;transition:width .2s linear;display:block}.vital.hp i,.vital.car i{background:#3ddc84}.vital.mid i{background:#ffb020}.vital.low i{background:#ff4d4d;animation:.8s ease-in-out infinite alternate vital-pulse}.vital.low{color:#ff8a8a}.vital.air i{background:#7fd0ff}.vital.sp i{background:var(--gold)}@keyframes vital-pulse{0%{opacity:1}to{opacity:.45}}@media (pointer:coarse){.vitals{bottom:calc(150px + var(--safe-b))}}.mode-tag{letter-spacing:1.6px;text-transform:uppercase;color:#ffffffb3;white-space:nowrap;pointer-events:none;font-size:10px;font-weight:700;position:absolute;bottom:30px;left:50%;transform:translate(-50%)}.speedo:not(.foot) .mode-tag,.speedo.foot .boost,.touch .lbl-foot,.touch.on-foot .lbl-car{display:none}.touch.on-foot .lbl-foot{display:inline}#scene{touch-action:none}.howto-hero{max-width:520px;margin-top:22px}.howto-grid{gap:12px;display:grid}.howto-group h4{letter-spacing:1.4px;text-transform:uppercase;opacity:.7;margin:0 0 4px;font-size:11px}.howto-group ul{gap:4px;margin:0;padding:0;font-size:13px;line-height:1.45;list-style:none;display:grid}.howto-group li{opacity:.9}.howto-pause{text-align:left;margin:4px 0 14px}details.howto{display:none}@media (max-width:900px){.howto-hero{display:none}details.howto{display:block}}.unit-bars{pointer-events:none;position:absolute;inset:0;overflow:hidden}.unit-bar{background:#080a1099;border-radius:3px;width:46px;height:6px;position:absolute;top:-6px;left:-23px;overflow:hidden}.unit-bar[hidden]{display:none}.unit-bar i{background:#3ddc84;width:100%;height:100%;transition:width .15s linear;display:block}.unit-bar.low i{background:#ff4d4d}.pullout{color:#ffb4a8;letter-spacing:.06em;text-align:center;pointer-events:none;background:#080a10b3;border-radius:12px;gap:8px;padding:10px 16px;font-size:13px;font-weight:700;display:grid;position:absolute;top:44%;left:50%;transform:translate(-50%)}.pullout[hidden]{display:none}.pullout-bar{background:#ffffff24;border-radius:3px;width:200px;height:6px;display:block;overflow:hidden}.pullout-bar i{background:#ff4d4d;width:0;height:100%;display:block}.wanted.seen{animation:.5s ease-in-out infinite alternate vital-pulse}.wanted{color:#ffc53d;letter-spacing:.12em;text-align:center;pointer-events:none;margin-top:4px;font-size:15px}.seg.disabled{opacity:.52;pointer-events:none;filter:grayscale(.25)}.aim-overlay{pointer-events:none;position:absolute;inset:0;overflow:hidden}.aim-overlay[hidden]{display:none}.aim-reticle{border:2px solid #3ee6c4d9;border-radius:50%;width:34px;height:34px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 12px #3ee6c473,inset 0 0 6px #3ee6c440}.aim-reticle:before,.aim-reticle:after{content:"";background:#3ee6c4e6;position:absolute}.aim-reticle:before{width:1.5px;top:-6px;bottom:-6px;left:50%;transform:translate(-50%)}.aim-reticle:after{height:1.5px;top:50%;left:-6px;right:-6px;transform:translateY(-50%)}.aim-reticle.locked{border-color:#ff4d4d;box-shadow:0 0 14px #ff4d4db3,inset 0 0 8px #ff4d4d59}.aim-reticle.locked:before,.aim-reticle.locked:after{background:#ff4d4d}.aim-target{pointer-events:none;border:2px solid #ff4d4d;border-radius:8px;width:48px;height:48px;transition:transform 50ms linear;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 16px #ff4d4da6}.aim-target[hidden]{display:none}.aim-target:before{content:"";background:#ff4d4d;border-radius:50%;width:6px;height:6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.aim-target-label{color:#ff8a8a;letter-spacing:.08em;white-space:nowrap;background:#101520d9;border:1px solid #ff4d4d99;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;position:absolute;top:-22px;left:50%;transform:translate(-50%)}.menu-step{flex-direction:column;gap:14px;display:flex}.step-header-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.step-back-btn{color:var(--accent);background:#3ee6c41f;border:1px solid #3ee6c459;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s,transform .15s}.step-back-btn:hover{border-color:var(--accent);background:#3ee6c438;transform:translate(-1px)}.start-picker-controls{flex-direction:column;gap:12px;display:flex}.daily-place-notice{color:var(--text);background:#ffc53d1f;border:1px solid #ffc53d59;border-radius:12px;padding:10px 14px;font-size:12.5px;font-weight:500;line-height:1.45}.howto-mode-header{margin-bottom:10px}.howto-mode-badge{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:#3ee6c424;border:1px solid #3ee6c461;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.howto-group.howto-rules,.howto-group.howto-mode-controls{border:1px solid var(--line);background:#ffffff0b;border-radius:12px;padding:10px 12px}.howto-group.howto-rules h4,.howto-group.howto-mode-controls h4{color:var(--accent);opacity:1}.howto-pause{max-height:36vh;padding-right:4px;overflow-y:auto}.res-meta{border:1px solid var(--line);background:#ffffff0b;border-radius:12px;flex-direction:column;gap:3px;margin-top:2px;padding:10px 12px;font-size:12.5px;line-height:1.4;display:flex}.res-meta[hidden]{display:none}.res-meta-mode{color:var(--accent);letter-spacing:.03em;font-weight:700}.res-meta-place{color:var(--text);font-variant-numeric:tabular-nums;font-weight:500}.res-meta-density{color:var(--muted);font-size:11.5px}.results-panel{max-height:calc(100vh - 32px);overflow-y:auto}.daily-leaderboard-setup{border:1px solid var(--line-strong);background:#ffffff0a;border-radius:14px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.daily-name-field{flex-direction:column;gap:6px;display:flex}.daily-name-input-wrap{border:1px solid var(--line-strong);background:#ffffff0f;border-radius:10px;align-items:center;height:42px;padding:0 12px;transition:border-color .2s,box-shadow .2s;display:flex}.daily-name-input-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #3ee6c429}.daily-name-input-wrap input{width:100%;height:100%;color:var(--text);font:inherit;background:0 0;border:0;outline:0;font-size:14px;font-weight:500}.daily-name-input-wrap input::placeholder{color:var(--muted);opacity:.75}.daily-name-hint{color:var(--muted);font-size:11px;line-height:1.35}.start-leaderboard{border:1px solid var(--line);background:#ffffff09;border-radius:14px;flex-direction:column;gap:8px;margin-top:10px;padding:12px 14px;display:flex}.start-lb-header,.res-lb-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.start-lb-title-wrap{flex-wrap:wrap;align-items:baseline;gap:6px 10px;display:flex}.start-lb-title,.res-lb-title{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:700}.start-lb-meta,.res-lb-status{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11.5px;font-weight:600}.lb-refresh-btn{width:28px;height:28px;color:var(--muted);border:1px solid var(--line);background:#ffffff0d;border-radius:8px;place-items:center;font-size:14px;transition:background .15s,color .15s,transform .15s;display:grid}.lb-refresh-btn:hover{color:var(--text);background:#ffffff1c}.lb-refresh-btn:active{transform:rotate(90deg)}.start-lb-body{max-height:220px;overflow-y:auto}.res-leaderboard{border:1px solid var(--line);text-align:left;background:#ffffff0b;border-radius:12px;flex-direction:column;gap:8px;margin-top:2px;padding:10px 12px;display:flex}.lb-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.lb-row{background:#ffffff09;border:1px solid #0000;border-radius:8px;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:grid}.lb-row.rank-1{background:#ffc53d1c;border-color:#ffc53d52}.lb-row.rank-2{background:#cdd5e117;border-color:#cdd5e13d}.lb-row.rank-3{background:#ff8a471a;border-color:#ff8a4742}.lb-row.is-me{border-color:var(--accent);box-shadow:inset 0 0 0 1px #3ee6c440}.lb-rank{font-family:var(--display);color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.lb-row.rank-1 .lb-rank{color:var(--gold)}.lb-row.rank-2 .lb-rank{color:#e2e8f0}.lb-row.rank-3 .lb-rank{color:#ff9e66}.lb-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-weight:600;display:flex;overflow:hidden}.lb-you{letter-spacing:.06em;color:#06110f;background:var(--accent);border-radius:999px;padding:1px 5px;font-size:9.5px;font-style:normal;font-weight:700}.lb-score{font-family:var(--display);color:var(--accent);font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:700}.lb-empty{color:var(--muted);text-align:center;padding:10px 6px;font-size:12.5px}.menu[data-theme=morning] .daily-leaderboard-setup,.menu[data-theme=afternoon] .daily-leaderboard-setup,.menu[data-theme=morning] .start-leaderboard,.menu[data-theme=afternoon] .start-leaderboard{background:#0f172a09}.menu[data-theme=morning] .daily-name-input-wrap,.menu[data-theme=afternoon] .daily-name-input-wrap{background:#ffffffe6}.menu[data-theme=morning] .lb-row,.menu[data-theme=afternoon] .lb-row{background:#ffffffa6}.menu[data-theme=morning] .lb-row.rank-1,.menu[data-theme=afternoon] .lb-row.rank-1{background:#f59e0b24;border-color:#d9770659}.menu[data-theme=morning] .lb-row.rank-1 .lb-rank,.menu[data-theme=afternoon] .lb-row.rank-1 .lb-rank{color:#b45309}.menu[data-theme=morning] .lb-row.rank-2 .lb-rank,.menu[data-theme=afternoon] .lb-row.rank-2 .lb-rank{color:#475569}.menu[data-theme=morning] .lb-row.rank-3 .lb-rank,.menu[data-theme=afternoon] .lb-row.rank-3 .lb-rank{color:#c2410c}.menu[data-theme=morning] .lb-you,.menu[data-theme=afternoon] .lb-you{color:#fff}
