@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Mystery+Quest&display=swap');

  :root { --yellow:#FFD700; --bg:#0a0a1a; }
  * { margin:0; padding:0; box-sizing:border-box; }

  body {
    background:var(--bg); overflow:hidden;
    width:100vw; height:100vh;
    font-family:'Press Start 2P',monospace;
  }

  canvas { display:block; width:100vw; height:100vh; }

  /* ── HUD top-center ── */
  #ui {
    position:fixed; top:14px; left:50%; transform:translateX(-50%);
    color:var(--yellow); font-size:11px; letter-spacing:2px;
    text-align:center; pointer-events:none;
    text-shadow:0 0 10px var(--yellow); z-index:10;
  }
  #score-label { font-size:7px; color:#aaa; margin-bottom:4px; letter-spacing:4px; }
  #level-badge { font-size:7px; letter-spacing:3px; margin-top:4px; opacity:.85; }
  #lives { display:flex; gap:6px; justify-content:center; margin-top:4px; }

  /* ── Dedication banner ── */
  #dedication {
    position:fixed; bottom:10px; left:50%; transform:translateX(-50%);
    font-size:clamp(5px,1vw,8px); color:rgba(180,180,255,0.55);
    letter-spacing:2px; text-align:center; pointer-events:none;
    z-index:10; white-space:nowrap;
    text-shadow:0 0 8px rgba(150,150,255,0.4);
  }

  /* ── Overlay base ── */
  .overlay {
    position:fixed; inset:0;
    display:none; flex-direction:column;
    align-items:center; justify-content:center;
    gap:18px; z-index:50;
  }
  .overlay.show { display:flex; }

  /* ── Intro ── */
  #intro { background:#0a0a1a; z-index:100; gap:16px; animation:fadeIn .5s ease; }
  @keyframes fadeIn { from{opacity:0}to{opacity:1} }

  #intro h1 {
    font-size:clamp(18px,4vw,36px); color:var(--yellow);
    animation:pulse 1.2s ease-in-out infinite alternate;
  }
  @keyframes pulse {
    from { text-shadow:0 0 10px var(--yellow); }
    to   { text-shadow:0 0 30px var(--yellow),0 0 60px #ff8c00; }
  }
  #intro p {
    font-size:clamp(6px,1.4vw,9px); color:#ccc;
    line-height:2.4; text-align:center; letter-spacing:1.5px;
  }

  /* ── Speed picker ── */
  #speed-picker { display:flex; flex-direction:column; align-items:center; gap:10px; }
  #speed-picker label { font-size:7px; color:#aaa; letter-spacing:3px; }
  #speed-options { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
  .speed-opt {
    background:none; border:1.5px solid rgba(255,215,0,.35);
    color:#777; font-family:'Press Start 2P',monospace;
    font-size:7px; padding:7px 12px; cursor:pointer;
    letter-spacing:1px; transition:all .18s;
  }
  .speed-opt:hover { border-color:var(--yellow); color:var(--yellow); }
  .speed-opt.selected { background:var(--yellow); color:#000; border-color:var(--yellow); }

  /* ── Buttons ── */
  .arcade-btn {
    background:none; border:2px solid var(--yellow);
    color:var(--yellow); font-family:'Press Start 2P',monospace;
    font-size:10px; padding:11px 26px; cursor:pointer;
    letter-spacing:2px; transition:all .18s;
    text-shadow:0 0 8px var(--yellow); box-shadow:0 0 12px rgba(255,215,0,.25);
  }
  .arcade-btn:hover { background:var(--yellow); color:#000; text-shadow:none; }

  .hud-btn {
    background:none; border:1.5px solid rgba(255,215,0,.5);
    color:#FFD700; font-family:'Press Start 2P',monospace;
    font-size:6px; padding:6px 11px; cursor:pointer;
    letter-spacing:1.5px; transition:all .18s;
  }
  .hud-btn:hover { background:#FFD700; color:#000; border-color:#FFD700; }

  /* ── HUD top-right ── */
  #hud-btns {
    position:fixed; top:14px; right:16px;
    display:none; gap:8px; z-index:20; align-items:center;
  }

  /* ── Overlays ── */
  #pause-overlay      { background:rgba(0,0,0,.76); }
  #levelclear-overlay { background:rgba(0,0,0,.76); }
  #gameover-overlay   { background:rgba(0,0,0,.82); }

  #pause-overlay h2 {
    font-size:clamp(18px,4vw,30px); color:var(--yellow);
    animation:pulse 1.2s ease-in-out infinite alternate;
  }
  #levelclear-overlay h2 { font-size:clamp(16px,3.5vw,28px); animation:pulse 1s ease-in-out infinite alternate; }
  #gameover-overlay h2 { font-size:clamp(18px,4vw,30px); color:#FF6B9D; text-shadow:0 0 20px #FF6B9D; }

  .sub  { font-size:7px; color:#aaa; letter-spacing:2px; }

  /* ── Leaderboard / name entry ── */
  #name-entry {
    display:flex; flex-direction:column; align-items:center; gap:10px; width:100%;
  }
  #name-entry label { font-size:7px; color:#aaa; letter-spacing:3px; }
  #player-name-input {
    background:rgba(255,255,255,0.07);
    border:1.5px solid rgba(255,215,0,0.5);
    color:#FFD700; font-family:'Press Start 2P',monospace;
    font-size:11px; padding:9px 14px; text-align:center;
    letter-spacing:3px; outline:none; width:220px;
  }
  #player-name-input::placeholder { color:rgba(255,215,0,0.3); font-size:8px; }
  #player-name-input:focus { border-color:#FFD700; box-shadow:0 0 12px rgba(255,215,0,0.3); }
  #leaderboard-list {
    display:flex; flex-direction:column; gap:5px; width:320px; max-height:220px;
    overflow-y:auto; padding:4px 0;
  }
  .lb-row {
    display:flex; justify-content:space-between; align-items:center;
    padding:5px 12px; font-size:7px; letter-spacing:1.5px;
    border-bottom:1px solid rgba(255,255,255,0.06);
  }
  .lb-row.lb-gold   { color:#FFD700; text-shadow:0 0 8px #FFD700; }
  .lb-row.lb-silver { color:#C0C0C0; }
  .lb-row.lb-bronze { color:#CD7F32; }
  .lb-row.lb-new    { background:rgba(255,215,0,0.08); border-radius:4px; }
  .lb-rank { width:28px; text-align:right; margin-right:10px; color:#555; }
  .lb-name { flex:1; }
  .lb-score { text-align:right; }
  .row  { display:flex; gap:12px; flex-wrap:wrap; justify-content:center; }
  #final-score { font-size:11px; color:var(--yellow); text-shadow:0 0 10px var(--yellow); }

  #intro-leaderboard {
    border:1px solid rgba(255,215,0,0.15);
    border-radius:8px;
    padding:6px 0 4px;
    background:rgba(255,255,255,0.02);
  }
