[hidden]{display:none!important}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:#0b1030;font-family:Pretendard,-apple-system,system-ui,sans-serif;color:#fff;touch-action:none;position:fixed;inset:0}
#scene{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}
button{font:inherit;cursor:pointer;border:0;border-radius:999px;padding:10px 14px;background:rgba(255,255,255,.88);color:#10202c;font-weight:700;font-size:14px;touch-action:none}
button.primary{background:linear-gradient(135deg,#ff3a4c,#c8102e);color:#fff;box-shadow:0 6px 24px rgba(200,16,46,.5)}

.boot{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;
  background:radial-gradient(120% 70% at 50% 115%,#ff7a3d 0%,#7a2f6a 30%,#1c1748 62%,#0b1030 100%);transition:opacity .6s}
.boot.hide{opacity:0;pointer-events:none}
.boot-car{font-size:46px;animation:bob 1.6s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-8px) rotate(-4deg)}}
.boot h1{font-size:28px;margin:12px 0 4px;letter-spacing:-.02em}
.boot .sub{margin:0 0 22px;opacity:.8;font-size:14px}
.boot .bar{width:220px;height:6px;border-radius:9px;background:rgba(255,255,255,.18);overflow:hidden}
.boot .bar i{display:block;height:100%;width:0;background:#fff;transition:width .25s}
#boot-msg{font-size:13px;opacity:.85;min-height:20px}
.boot .primary{margin-top:8px;padding:15px 34px;font-size:17px}
.boot .tiny{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));font-size:11px;opacity:.55;margin:0 20px}

#hud{position:fixed;left:max(12px,env(safe-area-inset-left));top:max(10px,env(safe-area-inset-top));z-index:10;display:flex;flex-direction:column;gap:6px;pointer-events:none}
.speed{display:flex;align-items:baseline;gap:4px;text-shadow:0 2px 8px rgba(0,0,0,.6)}
.speed b{font-size:38px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.speed span{font-size:13px;font-weight:700;opacity:.85}
.speed small{font-size:11px;opacity:.7;margin-left:6px}
.fuel{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.fbar{width:110px;height:8px;border-radius:9px;background:rgba(255,255,255,.2);overflow:hidden;border:1px solid rgba(255,255,255,.35)}
.fbar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#9fe8ff,#fff)}
.fbar i.low{background:#ff7a7a}
.chip{align-self:flex-start;padding:5px 10px;border-radius:999px;background:rgba(110,220,255,.9);color:#062033;font-size:12px;font-weight:800;animation:pulse 1s infinite}
@keyframes pulse{50%{opacity:.65}}

#missions{position:fixed;right:max(10px,env(safe-area-inset-right));top:max(10px,env(safe-area-inset-top));z-index:10;background:rgba(8,12,36,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:8px 10px;font-size:12px;pointer-events:none;max-width:200px}
#missions .mt{font-weight:800;font-size:12px;margin-bottom:4px;display:flex;justify-content:space-between;gap:8px}
#missions ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}
#missions li{display:flex;align-items:center;gap:5px;opacity:.9;white-space:nowrap}
#missions li small{opacity:.6;font-size:10px}
#missions li i{width:13px;height:13px;border-radius:4px;border:1.5px solid rgba(255,255,255,.7);flex:none}
#missions li.done{opacity:1;color:#8dffb0}
#missions li.done i{background:#3ddc84;border-color:#3ddc84;position:relative}
#missions li.done i::after{content:'✓';position:absolute;inset:-3px 0 0 1px;font-size:11px;color:#062;font-weight:900}
#missions li.flash{animation:flash .9s 2}
@keyframes flash{50%{transform:scale(1.08)}}

#timer{position:fixed;left:50%;top:22%;transform:translateX(-50%);z-index:12;font-size:44px;font-weight:900;font-variant-numeric:tabular-nums;text-shadow:0 3px 16px rgba(0,0,0,.7);pointer-events:none;text-align:center;line-height:1.1}
#timer small{display:block;font-size:13px;font-weight:700;opacity:.85}
#lights{position:fixed;left:50%;top:15%;transform:translateX(-50%);z-index:12;display:flex;gap:10px;pointer-events:none}
#lights i{width:22px;height:22px;border-radius:50%;background:#2a1010;border:2px solid #000;box-shadow:inset 0 0 4px #000}
#lights i.r{background:#ff2a2a;box-shadow:0 0 14px #ff2a2a}
#lights i.g{background:#3dff6a;box-shadow:0 0 14px #3dff6a}
#toast{position:fixed;left:50%;top:33%;transform:translate(-50%,0) scale(.9);z-index:13;padding:10px 18px;border-radius:16px;background:rgba(10,14,40,.78);font-size:16px;font-weight:800;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;text-align:center;max-width:86vw}
#toast.on{opacity:1;transform:translate(-50%,0) scale(1)}

#joy{position:fixed;left:max(18px,env(safe-area-inset-left));bottom:calc(max(16px,env(safe-area-inset-bottom)) + 10px);width:128px;height:128px;border-radius:50%;background:rgba(255,255,255,.16);border:2px solid rgba(255,255,255,.5);z-index:11;touch-action:none}
#joy .knob{position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:rgba(255,255,255,.85);box-shadow:0 2px 10px rgba(0,0,0,.3)}
#pad{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(max(16px,env(safe-area-inset-bottom)) + 6px);z-index:11;display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;gap:12px;align-items:end;justify-items:center}
#pad button{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;line-height:1}
#pad small{font-size:10px;font-weight:800;margin-top:2px}
#b-thrust{grid-column:2;grid-row:1/3;width:92px;height:92px;font-size:34px;background:rgba(255,255,255,.9)}
#b-thrust.on{background:#9fe8ff;transform:scale(.94)}
#b-thrust.empty{opacity:.5}
#b-launch{grid-column:1;grid-row:2;width:66px;height:66px;font-size:24px;background:#ffd23f}
#b-reset{grid-column:1;grid-row:1;width:42px;height:42px;font-size:20px;background:rgba(255,255,255,.55)}
#keys{position:fixed;left:50%;bottom:10px;transform:translateX(-50%);font-size:12px;opacity:.7;z-index:10;pointer-events:none;white-space:nowrap;text-shadow:0 1px 4px #000}

#labels{position:fixed;inset:0;pointer-events:none;z-index:5;overflow:hidden}
.lb{position:absolute;left:0;top:0;transform:translate(-50%,-100%);white-space:nowrap;font-weight:800;will-change:transform}
.lb.sign{font-size:12px;padding:4px 9px;border-radius:999px;background:rgba(10,14,40,.7);border:1px solid rgba(255,255,255,.35)}
.lb.wa{font-size:15px;color:#10202c;background:#fff;padding:3px 8px;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.35)}
.lb.wa::after{content:'';position:absolute;left:50%;bottom:-5px;margin-left:-5px;border:5px solid transparent;border-bottom:0;border-top-color:#fff}
@media (min-width:900px){#missions{font-size:14px;max-width:none}#missions .mt{font-size:14px}}
