/* OVER THE TOP — neon breakout stylesheet. No dependencies. */
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{
  --bg:#070714; --panel:rgba(14,16,38,.92); --line:rgba(0,255,255,.25);
  --cyan:#00f0ff; --magenta:#ff2fd6; --gold:#ffd23f; --green:#39ff88; --red:#ff4d6d;
  --txt:#eaf6ff; --dim:#8b93b8;
}
html,body{height:100%;background:#030309;overflow:hidden}
body{
  font-family:"Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
  color:var(--txt); user-select:none;-webkit-user-select:none;touch-action:none;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(1200px 800px at 50% -10%,#141a4a 0%,#070714 55%,#030309 100%);
}
#wrap{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
#game-container{
  position:relative;width:min(100vw,calc(100vh*0.74));height:min(100vh,calc(100vw/0.74));
  max-width:560px;max-height:100vh;background:#070714;overflow:hidden;
  border-left:1px solid rgba(0,240,255,.15);border-right:1px solid rgba(0,240,255,.15);
  box-shadow:0 0 80px rgba(0,240,255,.08),0 0 180px rgba(255,47,214,.06);
  touch-action:none;
}
@media(min-width:700px){
  #game-container{max-width:620px;border:1px solid rgba(0,240,255,.2);border-radius:14px}
}
#game{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}

/* HUD */
#hud{position:absolute;top:0;left:0;right:0;padding:8px 10px 6px;z-index:20;pointer-events:none;
  background:linear-gradient(180deg,rgba(3,3,12,.85),rgba(3,3,12,0));}
#hud.hidden{display:none}
.hud-left,.hud-right{position:absolute;top:8px;display:flex;gap:8px;align-items:flex-start}
.hud-left{left:10px;flex-direction:column}
.hud-right{right:10px;flex-direction:column;align-items:flex-end}
.hud-center{text-align:center}
.hud-block{display:flex;flex-direction:column;line-height:1}
.hud-block.small{opacity:.8}.hud-block.small span:last-child{font-size:13px}
.hud-label{font-size:9px;letter-spacing:2px;color:var(--dim)}
#hud-score{font-size:22px;font-weight:800;color:#fff;text-shadow:0 0 12px var(--cyan)}
#hud-hi{font-size:13px;color:var(--dim)}
#hud-level{font-size:11px;letter-spacing:3px;color:var(--dim);margin-top:2px}
#hud-mult-wrap{display:inline-block}
#hud-mult{font-size:26px;font-weight:900;color:var(--gold);text-shadow:0 0 14px rgba(255,210,63,.8);transition:transform .08s}
#hud-mult.pulse{transform:scale(1.25)}
#mult-bar{width:150px;height:4px;background:rgba(255,255,255,.12);border-radius:2px;margin:3px auto 0;overflow:hidden}
#mult-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--cyan),var(--magenta),var(--gold));border-radius:2px}
#hud-lives{display:flex;gap:4px;font-size:15px;filter:drop-shadow(0 0 6px var(--cyan))}
.hud-btns{display:flex;gap:6px;pointer-events:auto}
.icon-btn{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;
  width:34px;height:34px;border-radius:9px;font-size:15px;cursor:pointer;touch-action:manipulation}
.icon-btn:active{transform:scale(.92)}
#fx-timers{position:absolute;top:64px;left:0;right:0;display:flex;flex-wrap:wrap;gap:5px;justify-content:center}
.fx-chip{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;
  background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.25);border-radius:20px;padding:2px 8px 2px 6px}
.fx-chip .bar{width:44px;height:4px;background:rgba(255,255,255,.15);border-radius:2px;overflow:hidden}
.fx-chip .bar i{display:block;height:100%;background:var(--cyan)}

/* OTT banner + combo */
#ott-banner{position:absolute;top:22%;left:0;right:0;text-align:center;z-index:15;pointer-events:none;
  font-size:clamp(22px,6vw,34px);font-weight:900;letter-spacing:2px;color:#fff;
  text-shadow:0 0 18px var(--gold),0 0 46px var(--magenta),0 0 80px var(--cyan);
  animation:ottPulse .5s ease-in-out infinite alternate}
#ott-banner.hidden{display:none}
#ott-sub{font-size:12px;letter-spacing:4px;color:var(--gold)}
@keyframes ottPulse{from{transform:scale(1)}to{transform:scale(1.045)}}
#combo-pop{position:absolute;top:32%;left:0;right:0;text-align:center;z-index:15;pointer-events:none;
  font-size:clamp(18px,5vw,28px);font-weight:900;color:var(--magenta);
  text-shadow:0 0 16px var(--magenta),0 0 40px #fff}
#combo-pop.hidden{display:none}
#combo-pop.show{animation:comboZoom .7s ease-out}
@keyframes comboZoom{0%{transform:scale(.4);opacity:0}25%{transform:scale(1.25);opacity:1}60%{transform:scale(1)}100%{transform:scale(1.05);opacity:0}}
#float-layer{position:absolute;inset:0;z-index:14;pointer-events:none;overflow:hidden}
.float-txt{position:absolute;font-weight:800;font-size:14px;color:#fff;text-shadow:0 0 8px currentColor;
  transform:translate(-50%,-50%);white-space:nowrap;animation:floatUp 1s ease-out forwards}
@keyframes floatUp{to{transform:translate(-50%,-160%);opacity:0}}
#toast{position:absolute;top:44%;left:50%;transform:translateX(-50%);z-index:30;background:rgba(5,6,20,.9);
  border:1px solid var(--line);padding:10px 22px;border-radius:12px;font-weight:800;letter-spacing:1px;
  box-shadow:0 0 30px rgba(0,240,255,.3);white-space:nowrap}
#toast.hidden{display:none}

/* joystick */
#joy-base{position:absolute;width:120px;height:120px;border-radius:50%;z-index:25;pointer-events:none;
  border:2px solid rgba(0,240,255,.5);background:radial-gradient(circle,rgba(0,240,255,.08),rgba(0,240,255,.02));
  box-shadow:0 0 24px rgba(0,240,255,.35);transform:translate(-50%,-50%)}
#joy-base.hidden{display:none}
#joy-knob{position:absolute;left:50%;top:50%;width:52px;height:52px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#fff,var(--cyan) 60%,#0077ff);
  box-shadow:0 0 18px var(--cyan);transform:translate(-50%,-50%)}

/* intro card */
#intro-card{position:absolute;top:34%;left:50%;transform:translate(-50%,-50%);z-index:28;text-align:center;
  pointer-events:none;animation:introIn 2.4s ease forwards}
#intro-card.hidden{display:none}
#intro-kicker{font-size:12px;letter-spacing:5px;color:var(--cyan)}
#intro-name{font-size:clamp(26px,7vw,40px);font-weight:900;text-shadow:0 0 24px var(--magenta)}
#intro-sub{font-size:13px;color:var(--dim);font-style:italic}
@keyframes introIn{0%{opacity:0;transform:translate(-50%,-30%) scale(.9)}15%{opacity:1;transform:translate(-50%,-50%) scale(1)}80%{opacity:1}100%{opacity:0}}

/* overlays */
.overlay{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;
  background:rgba(3,3,12,.78);backdrop-filter:blur(6px);padding:16px;overflow-y:auto}
.overlay.hidden{display:none}
.panel{background:var(--panel);border:1px solid rgba(0,240,255,.3);border-radius:18px;padding:26px 24px;
  max-width:460px;width:100%;text-align:center;box-shadow:0 0 60px rgba(0,240,255,.15),inset 0 0 40px rgba(0,240,255,.04);
  max-height:100%;overflow-y:auto}
.panel.wide{max-width:520px;text-align:left}
.panel h1.logo{font-size:clamp(34px,9vw,52px);font-weight:900;letter-spacing:1px;line-height:1;
  background:linear-gradient(90deg,var(--cyan),var(--magenta),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 18px rgba(0,240,255,.5))}
.panel h1.logo span{font-size:.45em;vertical-align:middle}
.panel h2{font-size:30px;letter-spacing:3px;margin-bottom:8px}
.panel h2.danger{color:var(--red);text-shadow:0 0 18px var(--red)}
.panel h2.gold{color:var(--gold);text-shadow:0 0 18px var(--gold)}
.tagline{color:var(--dim);font-size:13px;margin:6px 0 12px}
.hi-line{font-size:13px;letter-spacing:2px;color:var(--dim);margin-bottom:14px}
.hi-line b{color:var(--gold)}
.newbest{color:var(--gold);font-weight:900;animation:ottPulse .4s infinite alternate}
.big-btn{display:block;width:100%;margin:8px 0;padding:14px;font-size:17px;font-weight:900;letter-spacing:2px;
  color:#04121a;background:linear-gradient(90deg,var(--cyan),#7df9ff);border:none;border-radius:12px;cursor:pointer;
  box-shadow:0 0 24px rgba(0,240,255,.5);touch-action:manipulation}
.big-btn:active{transform:scale(.97)}
.ghost-btn{display:block;width:100%;margin:8px 0;padding:11px;font-size:14px;font-weight:700;letter-spacing:1px;
  color:var(--txt);background:transparent;border:1px solid rgba(255,255,255,.3);border-radius:12px;cursor:pointer;touch-action:manipulation}
.ghost-btn:active{transform:scale(.97)}
.menu-tips{margin-top:12px;font-size:12px;color:var(--dim);line-height:1.7}
.menu-tips .dim{opacity:.8}
.how-grid{display:grid;grid-template-columns:1fr;gap:14px;font-size:13px;line-height:1.55}
@media(min-width:480px){.how-grid{grid-template-columns:1fr 1fr}}
.how-grid h3{font-size:13px;letter-spacing:1px;color:var(--cyan);margin:10px 0 6px}
.ctl{padding-left:16px}.ctl li{margin-bottom:5px}
.ott-text{color:var(--gold);font-weight:800}.smash-text{color:var(--magenta);font-weight:800}
.legend{display:flex;flex-direction:column;gap:5px}
.leg-row{display:flex;align-items:center;gap:8px;font-size:12px}
.sw{width:30px;height:18px;border-radius:4px;flex:none;display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:900;color:rgba(0,0,0,.75)}
kbd{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:4px;padding:0 5px;font-size:11px}
.row{margin-top:12px}
.final-score{font-size:16px;letter-spacing:2px;margin:8px 0}
.final-score b{font-size:30px;color:#fff;text-shadow:0 0 14px var(--cyan)}
.dim{color:var(--dim);font-size:13px}
#footer-hint{position:absolute;bottom:4px;left:0;right:0;text-align:center;font-size:10px;color:rgba(139,147,184,.8);z-index:10;pointer-events:none}
