:root{--bg: #05060d;--panel: rgba(10, 14, 26, .82);--panel-solid: #0a0e1a;--cyan: #18f0ff;--magenta: #ff3da6;--purple: #9b5cff;--yellow: #ffd23f;--green: #32ff7e;--red: #ff3b54;--text: #e8eefc;--dim: #8a96b8;--line: rgba(120, 160, 220, .18);--mono: "SFMono-Regular", ui-monospace, "Roboto Mono", Menlo, monospace;--sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;background:var(--bg)}body{font-family:var(--sans);color:var(--text);user-select:none;-webkit-user-select:none}#app{position:fixed;inset:0}#game{position:absolute;inset:0;width:100%;height:100%;display:block}#ui-root{position:absolute;inset:0;pointer-events:none}#ui-root>*{pointer-events:auto}#boot{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:radial-gradient(circle at 50% 40%,#10182e,#05060d 70%);z-index:50;transition:opacity .6s}#boot.hidden{opacity:0;pointer-events:none}.boot-logo{font-weight:900;font-size:clamp(40px,9vw,110px);letter-spacing:6px;color:var(--yellow);text-shadow:0 0 18px rgba(255,210,63,.6),0 0 50px rgba(255,61,166,.4)}.boot-bar{width:min(340px,60vw);height:6px;background:#ffffff1a;border-radius:4px;overflow:hidden}.boot-fill{width:30%;height:100%;background:linear-gradient(90deg,var(--cyan),var(--magenta));animation:bootslide 1.1s ease-in-out infinite}@keyframes bootslide{0%{margin-left:-30%}to{margin-left:100%}}.boot-tip{color:var(--dim);font-size:13px;letter-spacing:1px}.screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:20}.screen.hidden{display:none}.scrim{position:absolute;inset:0;background:#03050c8c;backdrop-filter:blur(3px)}#menu .menu-wrap{position:relative;z-index:2;text-align:center}.title{font-weight:900;font-size:clamp(54px,12vw,150px);line-height:.9;letter-spacing:4px;color:var(--yellow);text-shadow:0 0 22px rgba(255,210,63,.55),0 0 60px rgba(255,61,166,.45),0 6px 0 rgba(0,0,0,.4)}.title .sub{display:block;font-size:clamp(13px,2.5vw,22px);letter-spacing:10px;color:var(--cyan);margin-top:10px;text-shadow:0 0 14px rgba(24,240,255,.6)}.menu-buttons{display:flex;flex-direction:column;gap:12px;margin-top:40px;align-items:center}.menu-meta{margin-top:22px;color:var(--dim);font-size:12px;letter-spacing:1px}.btn{pointer-events:auto;cursor:pointer;min-width:280px;padding:14px 26px;font-family:var(--sans);font-size:18px;font-weight:700;letter-spacing:1px;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:12px;transition:all .14s ease;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;gap:10px}.btn:hover,.btn.focused{border-color:var(--cyan);color:#fff;box-shadow:0 0 0 1px var(--cyan),0 0 24px #18f0ff59;transform:translateY(-1px)}.btn.primary{background:linear-gradient(120deg,#18f0ff2e,#ff3da62e);border-color:#18f0ff80}.btn.danger.focused,.btn.danger:hover{border-color:var(--red);box-shadow:0 0 0 1px var(--red),0 0 24px #ff3b5459}.btn:disabled,.btn.disabled{opacity:.4;cursor:not-allowed}.btn small{color:var(--dim);font-weight:500;font-size:12px}.panel{position:relative;z-index:2;width:min(720px,92vw);max-height:88vh;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px 30px;backdrop-filter:blur(10px);box-shadow:0 20px 80px #00000080}.panel h2{font-size:26px;letter-spacing:2px;margin-bottom:4px}.panel .hint{color:var(--dim);font-size:13px;margin-bottom:18px}.panel-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}.quest-card,.setting-row{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:#ffffff05;transition:all .14s;cursor:pointer;width:100%}.quest-card.focused,.quest-card:hover{border-color:var(--purple);box-shadow:0 0 0 1px var(--purple),0 0 20px #9b5cff40}.quest-card h3{font-size:17px;margin-bottom:4px;display:flex;justify-content:space-between}.quest-card p{color:var(--dim);font-size:13px;line-height:1.45}.quest-card .reward{color:var(--green);font-family:var(--mono);font-size:13px;margin-top:6px}.quest-card .badge{font-size:11px;padding:2px 8px;border-radius:20px;background:#32ff7e26;color:var(--green)}.quest-card .badge.done{background:#78a0dc26;color:var(--dim)}.quest-card .badge.locked{background:#ff3b541f;color:var(--red)}.setting-row{display:flex;align-items:center;justify-content:space-between;cursor:default}.setting-row label{font-size:15px}.setting-row .control{display:flex;align-items:center;gap:10px}input[type=range]{width:180px;accent-color:var(--cyan)}.toggle{width:54px;height:28px;border-radius:20px;background:#ffffff1a;position:relative;cursor:pointer;border:1px solid var(--line)}.toggle.on{background:#18f0ff4d;border-color:var(--cyan)}.toggle .knob{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left .15s}.toggle.on .knob{left:28px}.seg{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{background:transparent;border:none;color:var(--dim);padding:6px 12px;cursor:pointer;font-family:var(--sans);font-size:13px}.seg button.active{background:#18f0ff33;color:#fff}#hud{position:absolute;inset:0;pointer-events:none;font-family:var(--sans)}#hud.hidden{display:none}.hud-topleft{position:absolute;top:18px;left:18px;display:flex;flex-direction:column;gap:10px}.money-pill{font-family:var(--mono);font-size:26px;font-weight:700;color:var(--green);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 16px;text-shadow:0 0 12px rgba(50,255,126,.4);backdrop-filter:blur(6px)}.rank-pill{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 14px;backdrop-filter:blur(6px)}.rank-pill .lvl{font-weight:800;color:var(--yellow);font-size:15px}.rank-pill .xpbar{width:120px;height:6px;background:#ffffff1f;border-radius:4px;overflow:hidden}.rank-pill .xpfill{height:100%;background:linear-gradient(90deg,var(--yellow),var(--magenta));width:0%}.rank-pill .title{font-size:11px;color:var(--dim)}.hud-topright{position:absolute;top:18px;right:18px;display:flex;flex-direction:column;align-items:flex-end;gap:10px}.wanted{display:flex;gap:4px;height:30px;align-items:center}.wanted .star{font-size:22px;color:#ffffff2e;transition:all .2s}.wanted .star.on{color:var(--red);text-shadow:0 0 14px rgba(255,59,84,.8);animation:starpulse .8s infinite alternate}@keyframes starpulse{0%{opacity:.7}to{opacity:1}}.fare-card{width:260px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;backdrop-filter:blur(8px);border-left:3px solid var(--magenta)}.fare-card.pickup{border-left-color:var(--cyan)}.fare-card .fc-head{font-size:12px;letter-spacing:1px;color:var(--dim);text-transform:uppercase}.fare-card .fc-dest{font-size:18px;font-weight:700;margin:4px 0}.fare-card .fc-row{display:flex;justify-content:space-between;font-family:var(--mono);font-size:14px;margin-top:6px}.fare-card .fc-pay{color:var(--green)}.fare-card .fc-timer{color:var(--yellow)}.fare-card .fc-timer.low{color:var(--red)}.fare-card.idle{border-left-color:var(--dim);color:var(--dim);text-align:center}.objective{position:absolute;top:70px;right:18px;width:260px;background:#9b5cff1f;border:1px solid rgba(155,92,255,.4);border-radius:12px;padding:10px 14px;backdrop-filter:blur(8px)}.objective .ob-title{font-size:11px;letter-spacing:1px;color:var(--purple);text-transform:uppercase}.objective .ob-line{font-size:15px;font-weight:600;margin-top:3px}.objective .ob-time{font-family:var(--mono);color:var(--yellow);font-size:14px}.objective.hidden{display:none}.hud-bottom{position:absolute;bottom:22px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px}.speedo{display:flex;align-items:baseline;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:8px 22px;backdrop-filter:blur(6px)}.speedo .kmh{font-family:var(--mono);font-size:40px;font-weight:800;color:#fff;min-width:90px;text-align:right}.speedo .unit{font-size:13px;color:var(--dim)}.speedo .gear{font-family:var(--mono);font-size:20px;color:var(--cyan);padding-left:12px;border-left:1px solid var(--line)}.nitro-wrap{width:220px}.nitro-label{display:flex;justify-content:space-between;font-size:10px;color:var(--dim);letter-spacing:1px;margin-bottom:3px}.nitro-bar{height:8px;background:#ffffff1a;border-radius:5px;overflow:hidden;border:1px solid var(--line)}.nitro-fill{height:100%;width:100%;background:linear-gradient(90deg,var(--cyan),#6ff);transition:width .08s linear}.nitro-fill.boosting{background:linear-gradient(90deg,var(--magenta),var(--yellow))}.minimap-wrap{position:absolute;bottom:22px;right:22px;width:168px;height:168px}#minimap{width:168px;height:168px;border-radius:50%;filter:drop-shadow(0 6px 20px rgba(0,0,0,.5))}.minimap-compass{position:absolute;top:-8px;left:50%;transform:translate(-50%);font-size:11px;color:var(--cyan);font-weight:700}.streak{position:absolute;bottom:130px;left:22px;font-weight:900;font-style:italic}.streak .sx{font-size:34px;color:var(--yellow);text-shadow:0 0 18px rgba(255,210,63,.6)}.streak .slabel{font-size:12px;color:var(--dim);letter-spacing:2px}.streak.hidden{display:none}.target-arrow{position:absolute;width:44px;height:44px;margin-left:-22px;margin-top:-22px;display:flex;align-items:center;justify-content:center;pointer-events:none;font-size:30px;color:var(--cyan);text-shadow:0 0 12px rgba(24,240,255,.8);transition:opacity .2s}.target-arrow.dropoff{color:var(--magenta);text-shadow:0 0 12px rgba(255,61,166,.8)}.prompt{position:absolute;bottom:200px;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 16px;font-size:14px;backdrop-filter:blur(6px)}.prompt.hidden{display:none}.key{display:inline-block;min-width:22px;padding:2px 7px;border-radius:5px;background:#ffffff1f;border:1px solid var(--line);font-family:var(--mono);font-size:12px;margin:0 2px}#toasts{position:absolute;top:90px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:30;pointer-events:none}.toast{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 20px;font-weight:700;font-size:16px;backdrop-filter:blur(8px);animation:toastin .3s ease,toastout .4s ease forwards;animation-delay:0s,var(--life, 2s);white-space:nowrap;box-shadow:0 8px 30px #0006}.toast.money{color:var(--green);border-color:#32ff7e66;font-family:var(--mono);font-size:22px}.toast.warn{color:var(--red);border-color:#ff3b5466}.toast.good{color:var(--cyan);border-color:#18f0ff66}.toast.level{color:var(--yellow);border-color:#ffd23f80;font-size:19px}@keyframes toastin{0%{opacity:0;transform:translateY(-12px) scale(.9)}to{opacity:1;transform:none}}@keyframes toastout{to{opacity:0;transform:translateY(-8px)}}#flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:40}#garage{position:absolute;inset:0;display:none;z-index:22}#garage.show{display:block}#garage .g-canvas{position:absolute;inset:0}#garage .g-overlay{position:absolute;inset:0;pointer-events:none}.g-overlay>*{pointer-events:auto}.g-header{position:absolute;top:20px;left:28px}.g-header .gh-title{font-size:30px;font-weight:900;letter-spacing:2px}.g-header .gh-money{font-family:var(--mono);color:var(--green);font-size:20px;margin-top:4px}.g-back{position:absolute;top:24px;right:28px}.g-carname{position:absolute;bottom:30px;left:50%;transform:translate(-50%);text-align:center}.g-carname .name{font-size:28px;font-weight:800}.g-carname .desc{color:var(--dim);font-size:13px;max-width:420px;margin:6px auto 0}.g-carnav{position:absolute;bottom:26px;display:flex;align-items:center}.g-carnav.left{left:30px}.g-carnav.right{right:30px}.g-arrow{font-size:40px;color:var(--cyan);cursor:pointer;background:var(--panel);border:1px solid var(--line);border-radius:50%;width:56px;height:56px;display:flex;align-items:center;justify-content:center}.g-arrow:hover,.g-arrow.focused{border-color:var(--cyan);box-shadow:0 0 18px #18f0ff66}.g-panel{position:absolute;top:50%;right:28px;transform:translateY(-50%);width:340px;max-height:80vh;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;backdrop-filter:blur(10px)}.g-tabs{display:flex;gap:6px;margin-bottom:16px}.g-tabs button{flex:1;background:#ffffff0a;border:1px solid var(--line);color:var(--dim);padding:8px;border-radius:8px;cursor:pointer;font-family:var(--sans);font-weight:600}.g-tabs button.active{background:#18f0ff2e;color:#fff;border-color:var(--cyan)}.g-section{display:none}.g-section.active{display:block}.stat{margin-bottom:12px}.stat .stat-top{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}.stat .stat-bar{height:8px;background:#ffffff1a;border-radius:5px;overflow:hidden}.stat .stat-fill{height:100%;background:linear-gradient(90deg,var(--cyan),var(--magenta));transition:width .2s}.upgrade-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.upgrade-row .ur-label{font-size:14px}.upgrade-row .pips{display:flex;gap:3px;margin-top:4px}.upgrade-row .pip{width:14px;height:8px;border-radius:2px;background:#ffffff1f}.upgrade-row .pip.on{background:var(--cyan);box-shadow:0 0 6px #18f0ff99}.upgrade-row .ur-buy{font-size:12px}.swatches{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 16px}.swatch{width:30px;height:30px;border-radius:8px;cursor:pointer;border:2px solid transparent}.swatch.sel{border-color:#fff;box-shadow:0 0 12px #ffffff80}.opt-label{font-size:12px;color:var(--dim);letter-spacing:1px;text-transform:uppercase;margin:10px 0 4px}.g-buybar{margin-top:16px}.price{font-family:var(--mono);color:var(--green)}.owned-tag{color:var(--cyan);font-size:12px}.gp-hints{position:absolute;bottom:14px;left:50%;transform:translate(-50%);display:flex;gap:16px;color:var(--dim);font-size:12px;z-index:25}.gp-hints .ghint{display:flex;align-items:center;gap:5px}.gp-hints .gbtn{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:5px;background:#ffffff1a;border:1px solid var(--line);font-family:var(--mono);font-size:11px}.gp-hints.hidden{display:none}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#78a0dc40;border-radius:4px}
