:root{--ink:#23302f;--muted:#5f6d6b;--accent:#2f8f6f;--chip:#141c2099;--chip-ink:#f7f4ec;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#05070b;margin:0;overflow:hidden}#app{touch-action:none;position:fixed;inset:0}#scene{width:100%;height:100%;display:block}.hidden{display:none!important}#loading{color:#d9c7a8;letter-spacing:.04em;z-index:30;background:#05070b;justify-content:center;align-items:center;font-size:16px;display:flex;position:absolute;inset:0}#cockpit-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}#cockpit{transform-origin:0 0;position:absolute;top:0;left:0}.cockpit-turn{will-change:transform;position:absolute;inset:0}.cockpit-turn img{pointer-events:none;position:absolute;inset:0}.cockpit-gauge{pointer-events:none;position:absolute}.hotspot{pointer-events:auto;cursor:pointer;touch-action:none;background:0 0;border:0;border-radius:14px;padding:0;position:absolute}.hotspot:hover{box-shadow:0 0 0 4px #ffffff8c}.hotspot.pressed{background:#ffffff40}#hud{top:max(10px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));pointer-events:none;justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute}.hud-left{flex-wrap:wrap;gap:6px;display:flex}#minimap{border:2px solid #fffc;border-radius:12px;width:150px;height:150px;box-shadow:0 4px 14px #00000040}.chip{background:var(--chip);color:var(--chip-ink);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600}.btn{pointer-events:auto;font:inherit;background:var(--chip);color:var(--chip-ink);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:0;border-radius:999px;padding:7px 14px;font-size:14px;font-weight:600}#prompt{color:#fff;text-align:center;pointer-events:none;background:#141c20b8;border-radius:10px;max-width:calc(100% - 32px);padding:9px 16px;font-size:15px;position:absolute;top:30%;left:50%;transform:translate(-50%)}#prompt kbd{min-width:22px;color:var(--ink);font:inherit;background:#fff;border-radius:5px;margin:0 3px;padding:1px 6px;font-weight:700;display:inline-block}#toasts{top:calc(max(10px, env(safe-area-inset-top)) + 4px);pointer-events:none;flex-direction:column;align-items:center;gap:6px;width:min(420px,100% - 360px);display:flex;position:absolute;left:50%;transform:translate(-50%)}.toast{color:var(--ink);text-align:center;background:#faf7f0f2;border-radius:12px;padding:8px 16px;font-weight:600;animation:3.4s forwards toast;box-shadow:0 6px 20px #0003}@keyframes toast{0%{opacity:0;transform:translateY(-6px)}10%,80%{opacity:1;transform:none}to{opacity:0}}#touch{pointer-events:none;position:absolute;inset:0}#joystick{opacity:0;background:#ffffff24;border:2px solid #fff6;border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;transition:opacity .15s;position:absolute}#joystick.active{opacity:1}#joystick-knob{background:#ffffffbf;border-radius:50%;width:50px;height:50px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.touch-buttons{right:max(12px, env(safe-area-inset-right));top:calc(max(10px, env(safe-area-inset-top)) + 166px);gap:8px;display:flex;position:absolute}.tbtn{pointer-events:auto;color:#fff;width:52px;height:52px;font:inherit;touch-action:none;background:#141c208c;border:2px solid #fff6;border-radius:50%;font-size:13px;font-weight:700}.tbtn.on{color:#10301a;background:#3ee86fbf}.tbtn.primary{background:#2f8f6fd9}#rotate-hint{color:#fff;text-align:center;z-index:5;background:#141c20d9;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:12px;font-size:14px;display:flex;position:absolute;inset:40% 16px auto}#panel{z-index:10;background:#0a101273;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.panel-card{background:#faf7f0f7;border-radius:16px;width:min(680px,100%);max-height:calc(100% - 8px);padding:16px 18px 18px;overflow:auto;box-shadow:0 16px 40px #0000004d}.panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.panel-head h2{margin:0;font-size:19px}.panel-head .panel-hint{color:#6f6a60;margin:0;font-size:13px}.panel-head .btn{background:var(--accent)}.gauge-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.gauge-card{color:#f2efe8;font:inherit;text-align:left;cursor:pointer;background:#1c2024;border:2px solid #0000;border-radius:12px;flex-direction:column;align-items:stretch;gap:6px;padding:8px;display:flex}.gauge-card canvas{aspect-ratio:480/220;background:#0b0d10;border-radius:999px/50%;width:100%}.gauge-card .name{font-size:14px;font-weight:700}.gauge-card .sub{color:#b9b3a6;font-size:12px}.bike-card .exhaust{color:#e0b25a;font-size:12px}.gauge-card[aria-checked=true]{border-color:var(--accent);box-shadow:0 0 0 3px #2f8f6f59}.gauge-card:focus-visible{outline-offset:2px;outline:2px solid #fff}.bike-card img{aspect-ratio:480/220;object-fit:cover;background:#0b0d10;border-radius:8px;width:100%}.panel-sub{margin:14px 0 8px;font-size:16px}details.help{margin-top:12px}details.help summary{cursor:pointer;margin-bottom:6px;font-weight:600}.panel-foot{background:linear-gradient(#faf7f000,#faf7f0f7 30%);justify-content:flex-end;margin:12px -18px -18px;padding:10px 18px 14px;display:flex;position:sticky;bottom:-18px}.panel-foot .btn{background:var(--accent);padding:9px 22px;font-size:15px}.help-list{margin:0;padding-left:18px;font-size:14px;line-height:1.55}.help-list li{margin-bottom:4px}@media (width<=720px),(height<=480px){.gauge-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}#minimap{width:104px;height:104px}.touch-buttons{top:calc(max(10px, env(safe-area-inset-top)) + 118px)}.chip,.btn{padding:5px 10px;font-size:12px}#toasts{width:min(360px,100% - 260px)}.toast{font-size:13px}}#mini-gauge{right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));aspect-ratio:480/220;pointer-events:none;width:min(220px,36vw);display:none;position:absolute}#app.view-third #mini-gauge{display:block}#app.view-third #cockpit-layer,#app.crashed #cockpit-layer{display:none}#wheelie{left:50%;top:calc(max(10px, env(safe-area-inset-top)) + 48px);color:#fff;text-align:center;pointer-events:none;background:#141c20b8;border-radius:12px;min-width:220px;padding:8px 12px;font-size:14px;font-weight:700;position:absolute;transform:translate(-50%)}#wheelie.crash{background:#961e18d9}.wheelie-bar{background:linear-gradient(90deg,#5a6672 0% 60%,#c0392b 100%);border-radius:5px;height:10px;margin-top:6px;position:relative}.wheelie-zone{background:#3ee86f;border-radius:5px;position:absolute;top:0;bottom:0}.wheelie-mark{background:#fff;border-radius:2px;width:4px;height:18px;margin-left:-2px;position:absolute;top:-4px;box-shadow:0 0 4px #0009}#phone-panel{top:calc(max(10px, env(safe-area-inset-top)) + 46px);left:max(12px, env(safe-area-inset-left));width:min(460px,100% - 24px);color:var(--ink);z-index:12;background:#faf7f0f7;border-radius:14px;padding:12px 14px 14px;position:absolute;box-shadow:0 16px 40px #0000004d}.phone-head{justify-content:space-between;align-items:center;display:flex}.phone-head h2{margin:0;font-size:17px}.phone-body{grid-template-columns:auto 1fr;align-items:start;gap:12px;margin-top:8px;display:grid}.phone-code{letter-spacing:.15em;text-align:center;margin-bottom:6px;font-size:30px;font-weight:800}#phone-qr{background:#fff;border-radius:8px;padding:6px;line-height:0}.phone-steps{margin:0;padding-left:18px;font-size:14px;line-height:1.45}.phone-steps li{margin-bottom:4px}.phone-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:10px;font-size:14px;display:flex}.phone-status{align-items:center;gap:6px;display:flex}#phone-panel .dot{background:#9aa0a6;border-radius:50%;flex:none;width:10px;height:10px}#phone-panel .dot.live{background:#2fb380;box-shadow:0 0 0 4px #2fb38040}#phone-panel .btn{color:var(--ink);background:#141c2014}@media (width<=520px){.phone-body{grid-template-columns:1fr}}
