/* ── reset ─────────────────────────────────────────── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html, body {
  width:100%; height:100%; overflow:hidden;
  background:#010106;
  font-family:'Segoe UI', system-ui, sans-serif;
  color:#e0eeff; -webkit-user-select:none; user-select:none;
  -webkit-tap-highlight-color:transparent;
}
canvas#minimap, canvas { display:block; }

/* ── loading ───────────────────────────────────────── */
#loading {
  position:fixed; inset:0; z-index:100;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:#010106; transition:opacity .7s ease; gap:16px;
}
#loading.hidden { opacity:0; pointer-events:none; }
.loader-text {
  font-size:38px; font-weight:900; letter-spacing:10px;
  background:linear-gradient(90deg,#00ffee,#ff0077,#cc00ff,#00ffee);
  background-size:200% auto; -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  animation:shimmer 2.5s linear infinite;
}
@keyframes shimmer { to { background-position:200% center; } }
.loader-bar-wrap { width:260px; height:3px; background:rgba(255,255,255,0.08); border-radius:2px; overflow:hidden; }
#loader-bar { width:0%; height:100%; background:linear-gradient(90deg,#00ffee,#cc00ff); transition:width .25s ease; }
.loader-sub { font-size:11px; letter-spacing:3px; color:rgba(255,255,255,0.3); font-weight:600; text-align:center; }

/* ── speedo (bottom-right) ─────────────────────────── */
#hud { position:fixed; bottom:24px; right:28px; display:flex; align-items:flex-end; gap:16px; pointer-events:none; }
/* ── posted speed-limit sign (US-style round white sign) ── */
#speed-limit-sign { width:62px; height:62px; border-radius:50%; background:#fff; border:4px solid #1a1a1a; display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:0 0 14px rgba(0,0,0,0.5); margin-bottom:30px; transition:transform .12s ease, box-shadow .15s ease; }
#speed-limit-num { font-size:24px; font-weight:900; color:#111; line-height:1; font-variant-numeric:tabular-nums; }
.sl-unit { font-size:7px; font-weight:800; letter-spacing:1px; color:#444; margin-top:1px; }
/* when the player is over the limit, the sign pulses red */
#speed-limit-sign.over { border-color:#ff2b2b; box-shadow:0 0 18px rgba(255,43,43,0.85); animation:sl-pulse .7s ease-in-out infinite; }
@keyframes sl-pulse { 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.1); } }
#hud-speedo { position:relative; width:120px; height:120px; }
#speed-block { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
#speed { font-size:38px; font-weight:900; font-variant-numeric:tabular-nums; line-height:1; color:#fff; text-shadow:0 0 20px rgba(0,255,238,0.9); }
.unit { font-size:10px; font-weight:700; letter-spacing:2px; color:rgba(255,255,255,0.4); }
#tach { position:absolute; inset:0; }
#tach-arc { transition:stroke-dasharray .08s linear; }
#hud-info { display:flex; flex-direction:column; gap:6px; padding-bottom:4px; }
.info-row { display:flex; align-items:baseline; gap:8px; }
.info-row .lbl { font-size:9px; font-weight:700; letter-spacing:2px; color:rgba(255,255,255,0.28); width:40px; }
.info-row span:last-child { font-size:16px; font-weight:800; font-variant-numeric:tabular-nums; color:#fff; text-shadow:0 0 10px rgba(0,200,255,0.5); }
#money { color:#7CFC9A !important; }
#score { color:#ffcc00 !important; }

/* ── map stack (top-right) ─────────────────────────── */
#map-stack { position:fixed; top:20px; right:24px; display:flex; flex-direction:column; align-items:flex-end; gap:8px; pointer-events:none; }
/* ── wanted level (GTA-style stars, top-right) ── */
#wanted { display:flex; flex-direction:column; align-items:flex-end; gap:2px; background:rgba(14,2,6,0.78); padding:6px 12px; border-radius:8px; border:1px solid rgba(255,60,60,0.45); box-shadow:0 0 18px rgba(255,40,40,0.25); }
#wanted.hidden { display:none; }
#bust-count { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); font-size:clamp(48px,10vw,96px); font-weight:900; letter-spacing:0.04em; color:#ff2b2b; text-shadow:0 0 30px rgba(255,43,43,0.9),0 0 60px rgba(255,43,43,0.5); pointer-events:none; z-index:80; animation:bust-pulse 0.5s ease-in-out infinite alternate; }
#bust-count.hidden { display:none; }
@keyframes bust-pulse { from { transform:translate(-50%,-50%) scale(1); } to { transform:translate(-50%,-50%) scale(1.08); } }
.wl-label { font-size:9px; font-weight:800; letter-spacing:3px; color:#ff6a6a; }
.wl-stars { display:flex; gap:3px; }
.wl-stars i { font-style:normal; font-size:20px; line-height:1; color:rgba(255,255,255,0.16); transition:color .2s ease, text-shadow .2s ease; }
.wl-stars i.on { color:#ffd23b; text-shadow:0 0 12px rgba(255,170,0,0.95); animation:wl-flash 1s ease-in-out infinite; }
@keyframes wl-flash { 0%,100%{ opacity:1; } 50%{ opacity:0.55; } }
.wl-bust { width:100%; height:3px; margin-top:3px; background:rgba(255,255,255,0.12); border-radius:2px; overflow:hidden; }
.wl-bust i { display:block; height:100%; width:0; background:#ff2b2b; box-shadow:0 0 8px rgba(255,43,43,0.9); transition:width .1s linear; }
#minimap { border-radius:50%; border:1px solid rgba(0,255,238,0.22); box-shadow:0 0 18px rgba(0,255,238,0.12), inset 0 0 20px rgba(0,0,0,0.7); opacity:0.9; }
#world-panel { background:rgba(4,2,14,0.7); border:1px solid rgba(0,255,238,0.14); border-radius:6px; padding:6px 10px; font-size:11px; letter-spacing:1px; min-width:170px; }
.wp-row { display:flex; justify-content:space-between; gap:10px; }
#wp-region { color:#00ffee; font-weight:800; letter-spacing:2px; }
#wp-time, #wp-weather { color:rgba(255,255,255,0.65); font-weight:700; font-variant-numeric:tabular-nums; }

/* ── controls hint (top-left) ──────────────────────── */
#controls-hint { position:fixed; top:22px; left:22px; font-size:11px; line-height:1.95; background:rgba(4,2,14,0.7); backdrop-filter:blur(14px); padding:13px 16px; border-radius:4px; border:1px solid rgba(0,255,238,0.14); border-left:2px solid #00ffee; pointer-events:none; }
#controls-hint .title { font-size:13px; font-weight:900; letter-spacing:4px; color:#00ffee; text-shadow:0 0 14px #00ffee; margin-bottom:4px; }
#controls-hint .divider { height:1px; background:rgba(0,255,238,0.12); margin:6px 0; }
#controls-hint .esc-hint { color:#00ffee; font-weight:700; }
#controls-hint .esc-hint kbd { background:rgba(0,255,238,0.15); border-color:rgba(0,255,238,0.4); color:#00ffee; }
#controls-hint .row { display:flex; align-items:center; gap:5px; color:rgba(255,255,255,0.5); font-weight:600; letter-spacing:.5px; flex-wrap:wrap; }
kbd { display:inline-flex; align-items:center; justify-content:center; min-width:22px; height:20px; padding:0 5px; font-size:10px; font-weight:800; font-family:inherit; background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.16); border-bottom:2px solid rgba(255,255,255,0.09); border-radius:3px; color:#fff; }

/* ── status bars (bottom-left) ─────────────────────── */
#bars { position:fixed; left:22px; bottom:30px; display:flex; flex-direction:column; gap:7px; pointer-events:none; }
.bar-wrap { display:flex; align-items:center; gap:10px; }
.bar-wrap .lbl { font-size:9px; font-weight:800; letter-spacing:2px; color:rgba(255,255,255,0.3); width:36px; }
.bar-track { width:150px; height:5px; background:rgba(255,255,255,0.06); border-radius:3px; overflow:hidden; }
.bar-track > div { height:100%; width:100%; border-radius:3px; transition:width .15s ease; }
#fuel-bar   { background:linear-gradient(90deg,#ff7b00,#ffd000); box-shadow:0 0 8px rgba(255,170,0,0.6); }
#nitro-bar  { background:linear-gradient(90deg,#cc00ff,#00ffee); box-shadow:0 0 8px rgba(0,255,238,0.6); }
#damage-bar { background:linear-gradient(90deg,#ff6600,#ff0033); width:0%; }
#xp-bar     { background:linear-gradient(90deg,#00ff88,#00ffee); width:0%; }
.bar-wrap.xp .lbl { color:#00ff99; }
/* cash row inside bars — hidden on desktop (already shown in hud-info), visible on mobile */
.bar-wrap.cash-row { display:none; }
#bars-money { font-size:15px; font-weight:900; color:#7CFC9A; text-shadow:0 0 8px rgba(124,252,154,0.5); font-variant-numeric:tabular-nums; }

/* ── interaction prompt ────────────────────────────── */
#prompt { position:fixed; bottom:120px; left:50%; transform:translateX(-50%); background:rgba(4,2,14,0.85); border:1px solid rgba(0,255,238,0.4); border-radius:8px; padding:10px 18px; font-size:14px; font-weight:700; letter-spacing:1px; color:#fff; box-shadow:0 0 24px rgba(0,255,238,0.2); pointer-events:none; }
#prompt.hidden { display:none; }
#prompt kbd { margin-right:6px; }

/* ── toast ─────────────────────────────────────────── */
#toast { position:fixed; top:90px; left:50%; transform:translateX(-50%); background:rgba(4,2,14,0.9); border:1px solid rgba(0,255,238,0.35); border-radius:8px; padding:10px 20px; font-size:14px; font-weight:700; letter-spacing:.5px; color:#fff; opacity:0; transition:opacity .3s ease; pointer-events:none; z-index:60; }
#toast.show { opacity:1; }

/* ── emergency panel ───────────────────────────────── */
#emergency { position:fixed; bottom:140px; left:50%; transform:translateX(-50%); width:min(340px,90vw); background:linear-gradient(160deg,#1a0c06,#0c0604); border:1px solid rgba(255,120,0,0.4); border-radius:12px; padding:16px 18px; text-align:center; z-index:55; box-shadow:0 0 30px rgba(255,120,0,0.15); }
#emergency.hidden { display:none; }
.em-title { font-size:16px; font-weight:900; letter-spacing:2px; color:#ff9a3c; margin-bottom:4px; }
.em-sub { font-size:12px; color:rgba(255,255,255,0.6); margin-bottom:12px; }
#emergency button { display:block; width:100%; margin:6px 0; padding:10px; border-radius:8px; cursor:pointer; font-size:13px; font-weight:800; letter-spacing:.5px; background:rgba(255,150,40,0.15); color:#ffb060; border:1px solid rgba(255,150,40,0.4); }
#emergency button:hover { background:rgba(255,150,40,0.3); }
#emergency button:disabled { opacity:0.4; cursor:not-allowed; }

/* ── garage / shop ─────────────────────────────────── */
#shop { position:fixed; inset:0; z-index:70; display:flex; align-items:center; justify-content:center; background:rgba(2,1,8,0.78); backdrop-filter:blur(6px); transition:opacity .25s ease; }
#shop.shop-hidden { opacity:0; pointer-events:none; }
.shop-panel { width:min(580px,94vw); max-height:88vh; overflow-y:auto; background:linear-gradient(160deg,#0a0c18,#06040f); border:1px solid rgba(0,255,238,0.25); border-radius:14px; padding:20px 22px; box-shadow:0 0 50px rgba(0,255,238,0.12); }
.shop-header { display:flex; align-items:center; gap:14px; margin-bottom:16px; padding-bottom:12px; border-bottom:1px solid rgba(255,255,255,0.08); }
.shop-title { font-size:20px; font-weight:900; letter-spacing:3px; color:#00ffee; text-shadow:0 0 14px #00ffee; }
.shop-gold { margin-left:auto; font-size:12px; font-weight:700; letter-spacing:.5px; color:rgba(255,255,255,0.55); }
.shop-gold b { color:#ffcc00; text-shadow:0 0 10px rgba(255,204,0,0.5); }
#shop-money { color:#7CFC9A !important; }
#shop-close { width:32px; height:32px; border-radius:8px; cursor:pointer; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.15); color:#fff; font-size:16px; font-weight:700; }
#shop-close:hover { background:rgba(255,80,80,0.2); border-color:#ff5050; }
.car-card { display:flex; align-items:center; gap:14px; padding:13px 15px; margin-bottom:11px; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.08); border-radius:10px; }
.car-card.equipped { border-color:#00ffee; box-shadow:0 0 18px rgba(0,255,238,0.15); }
.car-swatch { width:44px; height:44px; border-radius:8px; flex-shrink:0; box-shadow:inset 0 0 12px rgba(0,0,0,0.5); }
.car-meta { flex:1; min-width:0; }
.car-name { font-size:15px; font-weight:800; color:#fff; margin-bottom:4px; }
.car-stats { font-size:10px; color:rgba(255,255,255,0.45); letter-spacing:.3px; display:flex; flex-wrap:wrap; gap:4px 10px; }
.car-stats .bar { display:inline-block; width:48px; height:5px; background:rgba(255,255,255,0.1); border-radius:3px; vertical-align:middle; margin:0 4px; overflow:hidden; }
.car-stats .bar > i { display:block; height:100%; background:linear-gradient(90deg,#00ffee,#cc00ff); }
.car-action { padding:9px 14px; border-radius:8px; cursor:pointer; font-size:12px; font-weight:800; letter-spacing:.5px; border:1px solid transparent; white-space:nowrap; flex-shrink:0; text-align:center; }
.car-action.buy { background:#ffcc00; color:#1a1400; }
.car-action.buy:hover { box-shadow:0 0 16px rgba(255,204,0,0.5); }
.car-action.buy.locked { background:rgba(255,255,255,0.08); color:rgba(255,255,255,0.35); cursor:not-allowed; }
.car-action.equip { background:rgba(0,255,238,0.15); color:#00ffee; border-color:#00ffee; }
.car-action.equipped { background:transparent; color:rgba(0,255,238,0.6); cursor:default; }
.shop-foot { margin-top:8px; font-size:11px; color:rgba(255,255,255,0.35); text-align:center; }
.shop-foot kbd { font-size:10px; padding:1px 5px; }

/* ── mobile touch controls ─────────────────────────── */
#touch { position:fixed; inset:0; z-index:40; pointer-events:none; }
#touch.hidden { display:none; }

/* base button */
.tbtn {
  pointer-events:auto; border-radius:50%; font-weight:900; color:#fff;
  background:rgba(10,14,26,0.65); border:2px solid rgba(0,255,238,0.4);
  backdrop-filter:blur(8px); display:flex; align-items:center; justify-content:center;
  touch-action:none; user-select:none; -webkit-user-select:none;
  width:72px; height:72px; font-size:26px;
  -webkit-tap-highlight-color:transparent;
}
.tbtn:active { background:rgba(0,255,238,0.28); transform:scale(0.92); border-color:rgba(0,255,238,0.8); }

/* pause/menu — top-left corner, never overlaps anything */
.t-sys {
  position:absolute; top:14px; left:14px;
  width:48px; height:48px; font-size:20px;
  border-color:rgba(255,255,255,0.25);
}

/* ── STEER: bottom-LEFT — two buttons side by side ── */
.touch-steer {
  position:absolute; bottom:28px; left:20px;
  display:flex; gap:14px; pointer-events:none;
}
.t-left, .t-right { width:76px; height:76px; font-size:30px; pointer-events:auto; }

/* ── PEDALS: bottom-RIGHT — gas on top, brake below ── */
.touch-pedals {
  position:absolute; bottom:28px; right:20px;
  display:flex; flex-direction:column; gap:12px; align-items:center;
  pointer-events:none;
}
.t-up   { width:80px; height:80px; font-size:32px; pointer-events:auto;
          background:rgba(0,220,100,0.2); border-color:rgba(0,255,130,0.55); }
.t-down { width:76px; height:76px; font-size:28px; pointer-events:auto;
          background:rgba(220,60,60,0.18); border-color:rgba(255,80,80,0.45); }

/* ── ACTIONS: nitro only, small, bottom-center ── */
.touch-acts {
  position:absolute;
  bottom:28px; left:50%; transform:translateX(-50%);
  display:flex; align-items:center;
  pointer-events:none;
}
.t-act { width:46px; height:46px; font-size:18px; pointer-events:auto; }
.t-act[data-k="n"] { background:rgba(80,0,200,0.3); border-color:rgba(140,60,255,0.6); }

/* ══════════════════════════════════════════════════════
   MOBILE LAYOUT  (portrait phones + short landscape)
   Zone map:
     TOP STRIP  0–100px  → speedo (left) | escape/toast (center) | minimap (right)
     MID GAME   100px–calc(100%-190px)  → 3-D view, GPS arrow (center)
     BOTTOM     calc(100%-190px)–end   → touch controls (never overlapped)
   ══════════════════════════════════════════════════════ */
@media (max-width:760px), (max-height:540px) {

  /* ── hide desktop-only panels ── */
  #controls-hint { display:none; }
  #hud-info      { display:none; }   /* gear / cash / gold / car name */
  #world-panel   { display:none; }   /* region / time / weather */

  /* ── TOP-LEFT: small speedo + speed sign, horizontal ── */
  #hud {
    top:8px; left:8px; right:auto; bottom:auto;
    flex-direction:row; align-items:center; gap:8px;
  }
  #hud-speedo { width:72px; height:72px; }
  #speed { font-size:22px; }
  #speed-limit-sign { width:38px; height:38px; border-width:2px; margin-bottom:0; flex-shrink:0; }
  #speed-limit-num { font-size:14px; }
  .sl-unit { font-size:5px; }

  /* ── TOP-RIGHT: minimap + wanted ── */
  #map-stack { top:8px; right:8px; gap:4px; }
  #minimap   { width:90px; height:90px; }
  #wanted    { padding:3px 8px; }
  .wl-stars i { font-size:13px; }

  /* ── STATUS BARS: cash row + 2×2 compact grid under speedo ──
     CASH (full width)
     Fuel | NOS
     DMG  | XP                                       */
  #bars {
    position:fixed; left:8px; top:88px;
    bottom:auto; right:auto; transform:none;
    display:grid; grid-template-columns:1fr 1fr; gap:4px 8px;
    pointer-events:none;
  }
  .bar-wrap.cash-row { display:flex; grid-column:1/-1; align-items:baseline; gap:4px; }
  .bar-wrap { gap:4px; }
  .bar-wrap .lbl { font-size:7px; letter-spacing:1px; width:24px; }
  .bar-track { width:58px; height:4px; }
  #bars-money { font-size:13px; }

  /* ── TOAST: center of screen, won't clash with top strip ── */
  #toast { top:50%; bottom:auto; transform:translate(-50%,-50%); font-size:13px; }

  /* ── ESCAPE HUD: below FPS counter to avoid overlap ── */
  #escape-hud { top:24px; }
  .esc-bar-track { width:110px; height:5px; }
  .esc-label { font-size:8px; }
  #esc-pct { font-size:10px; }

  /* ── GPS NAV: center screen, above thumb zone ── */
  #gps-nav { bottom:200px; }
  .gps-arrow-wrap { width:46px; height:46px; }
  .gps-arrow { font-size:24px; }
  .gps-label-row { font-size:9px; }
  .gps-dist { font-size:11px; }

  /* ── PROMPT: above touch zone ── */
  #prompt { bottom:200px; font-size:13px; padding:8px 14px; }

  /* ── EMERGENCY PANEL: center of screen, won't clash ── */
  #emergency {
    bottom:auto; top:50%; transform:translate(-50%,-50%);
    width:min(310px,92vw);
  }

  /* ── BUST COUNT: stays centered (no change needed) ── */

  /* ── TOUCH CONTROLS — mobile sizes (no overlaps) ── */
  /* Steer pair: bottom-left, buttons shrink slightly */
  .touch-steer { left:12px; bottom:16px; gap:10px; }
  .t-left, .t-right { width:66px; height:66px; font-size:26px; }

  /* Pedals: bottom-right */
  .touch-pedals { right:12px; bottom:16px; gap:8px; }
  .t-up   { width:70px; height:70px; font-size:28px; }
  .t-down { width:66px; height:66px; font-size:24px; }

  /* Nitro: center-bottom, small single button */
  .touch-acts { bottom:16px; }
  .t-act { width:42px; height:42px; font-size:16px; }

  /* Pause: top-left, above HUD row */
  .t-sys { top:10px; left:10px; width:42px; height:42px; font-size:18px; }

  /* GPS: center, above the action strip column (3 × 48px + 2 × 8px = 160px + 16px bottom = 176px) */
  #gps-nav { bottom:196px; padding:8px 14px; gap:4px; min-width:110px; }
  .gps-dist { font-size:18px; }
  .gps-turn { font-size:11px; }
}

/* ── FPS counter ─────────────────────────────────────── */
#fps-counter { position:fixed; top:4px; left:50%; transform:translateX(-50%); font-size:11px; font-weight:800; letter-spacing:2px; color:rgba(0,255,238,0.7); background:rgba(0,0,0,0.4); padding:2px 8px; border-radius:4px; pointer-events:none; z-index:60; }

/* ── GPS navigation ──────────────────────────────────── */
#gps-nav {
  position:fixed; bottom:170px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:6px;
  pointer-events:none; z-index:60;
  background:rgba(0,0,0,0.6); border:1.5px solid rgba(0,255,238,0.4);
  border-radius:16px; padding:10px 20px; backdrop-filter:blur(10px);
  box-shadow:0 0 24px rgba(0,255,238,0.2);
  min-width:130px;
}
#gps-nav.hidden { display:none !important; }
.gps-label-row { font-size:10px; font-weight:800; letter-spacing:3px; color:#00ffee; text-shadow:0 0 10px #00ffee; }
.gps-arrow-wrap { display:flex; align-items:center; justify-content:center; filter:drop-shadow(0 0 10px #00ffee); }
.gps-turn { font-size:13px; font-weight:900; color:#fff; letter-spacing:1px; text-align:center; }
.gps-dist { font-size:22px; font-weight:900; color:#00ffee; letter-spacing:1px; font-variant-numeric:tabular-nums; text-shadow:0 0 12px rgba(0,255,238,0.7); line-height:1; }

/* ── escape % HUD (top-center while chased) ─────────── */
#escape-hud { position:fixed; top:28px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:5px; pointer-events:none; z-index:55; }
#escape-hud.hidden { display:none !important; }
.esc-label { font-size:9px; font-weight:800; letter-spacing:3px; color:#00ffee; text-shadow:0 0 10px #00ffee; }
.esc-bar-track { width:160px; height:6px; background:rgba(255,255,255,0.10); border-radius:4px; overflow:hidden; border:1px solid rgba(0,255,238,0.25); }
#esc-bar-fill { height:100%; width:0%; background:linear-gradient(90deg,#00ffee,#00ff88); border-radius:4px; transition:width .2s ease; box-shadow:0 0 8px rgba(0,255,238,0.7); }
#esc-pct { font-size:12px; font-weight:800; color:#00ffee; letter-spacing:1px; font-variant-numeric:tabular-nums; }

/* ── busted overlay ─────────────────────────────────── */
#bust-overlay {
  position: fixed;
  top: 0; left: 0; width: 100%; height: 100%;
  z-index: 95;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.75);
  backdrop-filter: blur(8px);
}
#bust-overlay.hidden { display:none !important; }
.bust-ov-box {
  margin: auto;
  display: flex; flex-direction: column; align-items: center;
  gap: 18px;
  background: linear-gradient(160deg,#1a0308,#08020a);
  border: 2px solid rgba(255,40,40,0.65);
  border-radius: 20px;
  padding: 48px 64px;
  box-shadow: 0 0 80px rgba(255,40,40,0.35);
  text-align: center;
  max-width: min(480px, 88vw);
  width: 100%;
}
.bust-ov-title { font-size:clamp(48px,10vw,88px); font-weight:900; letter-spacing:6px; color:#ff2b2b; text-shadow:0 0 30px rgba(255,43,43,0.9),0 0 70px rgba(255,43,43,0.4); animation:bust-pulse .5s ease-in-out infinite alternate; }
.bust-ov-sub { font-size:15px; font-weight:700; color:rgba(255,255,255,0.65); letter-spacing:1px; }
#bust-continue { margin-top:8px; padding:14px 44px; border-radius:10px; background:rgba(255,43,43,0.18); border:2px solid rgba(255,43,43,0.7); color:#ff6060; font-size:16px; font-weight:900; letter-spacing:3px; cursor:pointer; transition:background .15s; }
#bust-continue:hover { background:rgba(255,43,43,0.38); box-shadow:0 0 24px rgba(255,43,43,0.5); }

/* ── ESC / pause menu ───────────────────────────────── */
#esc-menu { position:fixed; inset:0; z-index:85; pointer-events:none; }
#esc-menu.hidden { display:none !important; }
.esc-backdrop { position:absolute; inset:0; background:rgba(0,0,0,0.55); backdrop-filter:blur(5px); pointer-events:auto; }
.esc-panel { position:absolute; right:0; top:0; bottom:0; width:min(360px,85vw); background:linear-gradient(180deg,#07081a,#050610); border-left:1px solid rgba(0,255,238,0.20); padding:28px 24px; overflow-y:auto; pointer-events:auto; animation:esc-slide-in .2s ease; }
@keyframes esc-slide-in { from { transform:translateX(100%); } to { transform:translateX(0); } }
.esc-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:4px; }
.esc-title { font-size:18px; font-weight:900; letter-spacing:4px; color:#00ffee; text-shadow:0 0 14px #00ffee; }
.esc-resume-btn { padding:8px 16px; border-radius:8px; background:rgba(0,255,238,0.15); border:1px solid rgba(0,255,238,0.5); color:#00ffee; font-size:12px; font-weight:800; letter-spacing:1px; cursor:pointer; }
.esc-resume-btn:hover { background:rgba(0,255,238,0.30); }
.esc-back-btn { padding:6px 12px; border-radius:7px; background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.15); color:rgba(255,255,255,0.7); font-size:11px; font-weight:700; cursor:pointer; letter-spacing:1px; }
.esc-back-btn:hover { background:rgba(255,255,255,0.14); }
.esc-divider { height:1px; background:rgba(0,255,238,0.12); margin:14px 0; }
.esc-section-label { font-size:9px; font-weight:800; letter-spacing:3px; color:rgba(0,255,238,0.5); margin-bottom:10px; }
.esc-controls-grid { display:flex; flex-direction:column; gap:6px; margin-bottom:4px; }
.esc-ctrl-row { display:flex; align-items:center; gap:10px; }
.esc-key { display:inline-flex; align-items:center; justify-content:center; min-width:54px; padding:3px 8px; background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.15); border-bottom:2px solid rgba(255,255,255,0.08); border-radius:4px; font-size:10px; font-weight:800; color:#fff; letter-spacing:.5px; white-space:nowrap; }
.esc-action { font-size:12px; color:rgba(255,255,255,0.65); font-weight:600; }
.esc-settings-btn { width:100%; padding:12px; margin-top:4px; border-radius:9px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.14); color:rgba(255,255,255,0.7); font-size:13px; font-weight:800; letter-spacing:2px; cursor:pointer; }
.esc-settings-btn:hover { background:rgba(255,255,255,0.12); }
/* settings sub-panel */
.esc-settings-panel { position:absolute; right:0; top:0; bottom:0; width:min(360px,85vw); background:linear-gradient(180deg,#07081a,#050610); border-left:1px solid rgba(0,255,238,0.20); padding:28px 24px; overflow-y:auto; pointer-events:auto; }
.esc-settings-panel.hidden { display:none !important; }
.setting-row { display:flex; align-items:center; gap:10px; padding:11px 0; border-bottom:1px solid rgba(255,255,255,0.06); }
.setting-lbl { font-size:10px; font-weight:800; letter-spacing:2px; color:rgba(255,255,255,0.5); flex:1; }
.setting-slider { -webkit-appearance:none; appearance:none; width:90px; height:4px; background:rgba(255,255,255,0.12); border-radius:4px; outline:none; cursor:pointer; }
.setting-slider::-webkit-slider-thumb { -webkit-appearance:none; width:14px; height:14px; border-radius:50%; background:#00ffee; box-shadow:0 0 8px rgba(0,255,238,0.8); cursor:pointer; }
.setting-val { font-size:11px; font-weight:700; color:#00ffee; min-width:34px; text-align:right; }
.setting-toggle { padding:5px 14px; border-radius:6px; background:rgba(0,255,238,0.14); border:1px solid rgba(0,255,238,0.4); color:#00ffee; font-size:11px; font-weight:800; cursor:pointer; letter-spacing:1px; min-width:52px; }
.setting-toggle.off { background:rgba(255,255,255,0.07); border-color:rgba(255,255,255,0.18); color:rgba(255,255,255,0.4); }
.setting-toggle:hover { box-shadow:0 0 10px rgba(0,255,238,0.3); }
/* difficulty + multi-choice row buttons */
.diff-btns { display:flex; gap:5px; }
.diff-btn { padding:4px 10px; border-radius:5px; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.14); color:rgba(255,255,255,0.45); font-size:10px; font-weight:800; cursor:pointer; letter-spacing:.5px; transition:all .12s; }
.diff-btn.on { background:rgba(0,255,238,0.18); border-color:rgba(0,255,238,0.6); color:#00ffee; box-shadow:0 0 8px rgba(0,255,238,0.25); }
.diff-btn:hover { background:rgba(0,255,238,0.10); color:#fff; }
/* esc-settings-btn moved to top of panel — make it stand out */
.esc-settings-btn { width:100%; padding:11px; margin-top:10px; border-radius:9px; background:rgba(0,255,238,0.10); border:1px solid rgba(0,255,238,0.35); color:#00ffee; font-size:13px; font-weight:800; letter-spacing:2px; cursor:pointer; }
.esc-settings-btn:hover { background:rgba(0,255,238,0.22); }
/* crime key chips */
.esc-key.crime { color:#ff6060; border-color:rgba(255,60,60,0.4); background:rgba(255,40,40,0.10); }
.esc-key.tip   { color:#ffcc00; border-color:rgba(255,200,0,0.4); background:rgba(255,200,0,0.08); font-size:8px; }
/* mobile pause button — now .t-sys, defined above */

.hidden { display:none !important; }
