:root{
  --bg:#0a0612;
  --panel:rgba(20,12,38,0.72);
  --cyan:#28f0ff;
  --pink:#ff2bd6;
  --lime:#b6ff2e;
  --gold:#ffd23f;
  --stroke:rgba(255,255,255,0.08);
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden}
body{
  background:
    radial-gradient(1200px 700px at 15% -10%, rgba(255,43,214,0.16), transparent 60%),
    radial-gradient(1000px 800px at 110% 10%, rgba(40,240,255,0.14), transparent 55%),
    radial-gradient(900px 700px at 50% 120%, rgba(182,255,46,0.08), transparent 55%),
    var(--bg);
  color:#fff;
  font-family:'Rajdhani',sans-serif;
  display:flex;align-items:center;justify-content:center;
  min-height:100vh;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
}
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:50;
  background:repeating-linear-gradient(0deg, rgba(0,0,0,0.14) 0 2px, transparent 2px 4px);
  mix-blend-mode:overlay;opacity:.5;
}
.wrap{
  display:flex;gap:26px;align-items:stretch;
  padding:22px;position:relative;z-index:2;
  transition:transform .05s linear;
}
.stage{
  position:relative;border-radius:18px;padding:14px;
  background:var(--panel);border:1px solid var(--stroke);
  box-shadow:0 0 0 1px rgba(255,255,255,0.04), 0 30px 90px -20px rgba(255,43,214,0.40),
             inset 0 0 60px rgba(40,240,255,0.06);
  backdrop-filter:blur(8px);
}
canvas#game{
  display:block;border-radius:12px;
  background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(0,0,0,0.25)), #07040f;
  box-shadow:inset 0 0 40px rgba(0,0,0,0.6);
}
.side{width:230px;display:flex;flex-direction:column;gap:16px}
.card{
  background:var(--panel);border:1px solid var(--stroke);
  border-radius:16px;padding:16px 18px;backdrop-filter:blur(8px);
  box-shadow:0 18px 50px -24px rgba(40,240,255,0.5);
}
.title{
  font-family:'Orbitron',sans-serif;font-weight:900;line-height:.92;letter-spacing:3px;
  font-size:30px;
  background:linear-gradient(92deg,var(--cyan),var(--pink) 55%,var(--gold));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 0 30px rgba(255,43,214,0.30);
}
.title small{display:block;font-family:'Rajdhani';font-weight:600;letter-spacing:6px;
  font-size:11px;color:rgba(255,255,255,.55);margin-top:6px;-webkit-text-fill-color:rgba(255,255,255,.55)}
.small-title{font-size:22px}
.label{font-size:12px;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:4px}
.val{font-family:'Orbitron',sans-serif;font-weight:700;font-size:30px}
.val.cyan{color:var(--cyan);text-shadow:0 0 18px rgba(40,240,255,.6)}
.val.pink{color:var(--pink);text-shadow:0 0 18px rgba(255,43,214,.6)}
.val.lime{color:var(--lime);text-shadow:0 0 18px rgba(182,255,46,.6)}
.row{display:flex;gap:14px}
.row>div{flex:1}
.lvl{margin-top:12px}
#next{display:block;margin-top:6px;background:rgba(0,0,0,.35);border-radius:10px}
.keys{font-size:14px;line-height:1.9;color:rgba(255,255,255,.7)}
.keys b{display:inline-block;min-width:64px;font-family:'Orbitron';font-weight:700;color:var(--gold);font-size:12px}
.overlay{
  position:absolute;inset:14px;border-radius:12px;
  background:rgba(7,4,15,0.82);backdrop-filter:blur(4px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:18px;z-index:10;padding:24px;
}
.overlay h2,.overlay .title{margin-bottom:0}
.overlay p{max-width:320px;color:rgba(255,255,255,.7);font-size:16px;line-height:1.5}
.btn{
  cursor:pointer;border:none;font-family:'Orbitron';font-weight:700;letter-spacing:1px;
  padding:14px 34px;border-radius:999px;font-size:16px;color:#0a0612;
  background:linear-gradient(92deg,var(--cyan),var(--lime));
  box-shadow:0 10px 30px -6px rgba(40,240,255,.6);
  transition:transform .12s ease, box-shadow .12s ease;
}
.btn:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 16px 40px -6px rgba(182,255,46,.7)}
.btn:active{transform:translateY(0) scale(.98)}
.hidden{display:none!important}
@media (max-width:760px){
  .wrap{flex-direction:column;gap:14px;padding:12px;align-items:center}
  .side{width:auto;flex-direction:row;flex-wrap:wrap;justify-content:center}
  .card{flex:1;min-width:140px}
  .brand{display:none}
  .title{font-size:24px}
}
