:root{--bg: #0b0f16;--fg: #e8eefc;--dim: #8fa2c0;--accent: #33d675;--warn: #ffcc44;--panel: rgba(12, 18, 28, .72);--line: rgba(255, 255, 255, .12)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--fg);font:500 16px/1.5 system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;touch-action:none;overscroll-behavior:none;user-select:none;-webkit-touch-callout:none}#gl{position:fixed;inset:0;display:block;width:100%;height:100%;touch-action:none}.hidden{display:none!important}#hud{position:fixed;inset:0;pointer-events:none;z-index:5;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.hud-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 14px}.lap{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:6px 14px;font-variant-numeric:tabular-nums;backdrop-filter:blur(8px)}.lap #lap-now{font-size:30px;font-weight:800;color:#fff}.lap-total{font-size:16px;color:var(--dim)}.times{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 14px;font-size:12px;color:var(--dim);text-align:right;backdrop-filter:blur(8px)}.times b{display:inline-block;min-width:82px;color:var(--fg);font-variant-numeric:tabular-nums;font-size:14px}#minimap{width:108px;height:108px;background:var(--panel);border:1px solid var(--line);border-radius:14px}.hud-bottom{position:absolute;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));display:flex;align-items:baseline;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:6px 16px;backdrop-filter:blur(8px)}.speed b{font-size:40px;font-weight:800;font-variant-numeric:tabular-nums;color:#fff}.speed span{font-size:12px;color:var(--dim);margin-left:4px}.gear{font-size:14px;color:var(--accent);font-weight:700}body.touch-ui .hud-bottom{right:auto;left:50%;transform:translate(-50%);bottom:calc(8px + env(safe-area-inset-bottom));padding:3px 14px;border-radius:14px}body.touch-ui .speed b{font-size:28px}body.touch-ui .speed span{font-size:11px}.corner{position:absolute;left:50%;top:31%;transform:translate(-50%);padding:4px 16px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font-size:24px;font-weight:800;letter-spacing:1px;line-height:1.2;min-width:132px;text-align:center;font-variant-numeric:tabular-nums;opacity:0;transition:opacity .18s,color .18s;color:#cfe0ff;text-shadow:0 1px 6px rgba(0,0,0,.7)}.corner.show{opacity:.92}.corner.hard{color:var(--warn);border-color:#ffcc448c}.toast{position:absolute;left:50%;top:22%;transform:translate(-50%);padding:10px 22px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font-size:15px;font-weight:700;opacity:0;transition:opacity .25s;white-space:nowrap}.toast.show{opacity:1}.toast.best{color:var(--warn);border-color:#ffcc4480}.countdown{position:fixed;inset:0;display:grid;place-items:center;z-index:8;pointer-events:none;font-size:128px;font-weight:900;color:#fff;text-shadow:0 8px 40px rgba(0,0,0,.6)}.countdown.go{color:var(--accent)}.menu{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;justify-content:safe center;gap:12px;padding:24px;background:radial-gradient(120% 100% at 50% 0%,#16202f,#0b0f16 60%,#06080c);overflow:auto;touch-action:pan-y;-webkit-overflow-scrolling:touch}.menu h1{margin:0;font-size:52px;letter-spacing:12px;font-weight:900}.menu h2{margin:0 0 6px;font-size:32px}.menu .sub{margin:0 0 10px;color:var(--dim);font-size:13px}.menu input{width:min(360px,86vw);padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#ffffff0d;color:var(--fg);font-size:16px;outline:none;user-select:text}.menu input:focus{border-color:var(--accent)}.map-list{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:4px 0}.map-card{width:116px;padding:10px;border-radius:14px;border:1px solid var(--line);background:#ffffff0a;text-align:center;cursor:pointer;pointer-events:auto}.map-card.sel{border-color:var(--accent);background:#33d6751f}.map-card .nm{font-size:14px;font-weight:700}.map-card .meta{font-size:11px;color:var(--dim);margin-top:2px}.map-card.soon{opacity:.45;cursor:not-allowed}button{width:min(360px,86vw);padding:14px;border-radius:14px;border:1px solid transparent;font-size:17px;font-weight:700;cursor:pointer;pointer-events:auto}button.primary{background:var(--accent);color:#06220f}button.ghost{background:transparent;border-color:var(--line);color:var(--dim)}button:disabled{opacity:.5;cursor:not-allowed}.hint{color:var(--dim);font-size:12px;max-width:420px;text-align:center}.res-body{width:min(360px,86vw);display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.res-row{display:flex;justify-content:space-between;padding:8px 12px;border-radius:10px;background:#ffffff0d;font-size:14px;font-variant-numeric:tabular-nums}.res-row b{color:var(--warn)}.boot{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:var(--bg);color:var(--dim);font-size:14px;transition:opacity .4s}.boot.done{opacity:0;pointer-events:none}.touch{position:fixed;inset:0;z-index:6;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.t-steer-zone{position:absolute;left:0;top:0;width:52%;height:100%;pointer-events:auto}.t-wheel{position:absolute;left:16px;bottom:14px;width:min(44vw,280px);height:54px;border-radius:27px;background:var(--panel);border:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 15px;pointer-events:none;backdrop-filter:blur(6px)}.t-side{font-size:17px;color:var(--dim);line-height:1}.t-knob{position:absolute;left:50%;top:50%;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;background:radial-gradient(circle at 38% 32%,#f4f8ff,#9fb0c8 62%,#6d7f97);box-shadow:0 2px 10px #00000080;transform:translate(var(--k, 0px));transition:transform .05s linear}.t-steer-zone.on~.t-wheel{border-color:#33d67580}.t-ped{position:absolute;aspect-ratio:1;display:grid;place-items:center;padding:0;border-radius:50%;font-size:15px;font-weight:700;letter-spacing:1px;pointer-events:auto;transition:transform .06s,filter .06s}.t-ped.on{transform:scale(.93);filter:brightness(1.7)}.t-gas{right:18px;bottom:16px;width:min(112px,23vh);background:#33d67524;border:2px solid rgba(51,214,117,.5);color:#b6f5cd}.t-brake{right:148px;bottom:22px;width:min(86px,18vh);background:#e6394621;border:2px solid rgba(230,57,70,.5);color:#ffc9cd}.t-hand{right:150px;bottom:118px;width:min(72px,15vh);background:#ffcc441f;border:2px solid rgba(255,204,68,.45);color:#ffe2a0}.t-mini{position:absolute;right:22px;width:72px;height:32px;border-radius:16px;padding:0;font-size:13px;color:var(--dim);background:var(--panel);border:1px solid var(--line);pointer-events:auto}#t-fix{bottom:138px}#t-cam{bottom:176px}.rotate{position:fixed;inset:0;z-index:30;display:grid;place-content:center;gap:10px;text-align:center;background:#0b0f16f2;color:var(--fg)}.rotate p{margin:0;font-size:19px;font-weight:700}.rotate span{color:var(--dim);font-size:13px}.r-ico{font-size:54px;justify-self:center;animation:tilt 2.6s ease-in-out infinite}@keyframes tilt{0%,to{transform:rotate(0)}55%,75%{transform:rotate(90deg)}}@media (max-height: 460px){.menu{gap:7px;padding:12px 16px}.menu h1{font-size:28px;letter-spacing:6px}.menu h2{font-size:22px}.menu .sub{margin:0;font-size:12px}.menu input{padding:8px 12px;font-size:15px}.map-card{padding:7px 8px}.hint{font-size:11px;max-width:92vw}}#perf{position:fixed;left:calc(14px + env(safe-area-inset-left));top:calc(88px + env(safe-area-inset-top));z-index:7;padding:4px 10px;border-radius:10px;border:1px solid var(--line);background:#0c121cb8;color:var(--dim);font:600 12px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;pointer-events:none}#perf.bad{color:var(--warn);border-color:#ffcc4473}
