:root{
  --pink:#ff4d94; --cyan:#4dd0ff; --yellow:#ffd23d; --lime:#6bff8f; --purple:#a06bff;
}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;height:100%;overflow:hidden;font-family:'Fredoka',sans-serif;background:#160726;}
#game-root{position:fixed;inset:0;}
#canvas{position:absolute;inset:0;display:block;touch-action:none;}
#ui-layer{position:absolute;inset:0;pointer-events:none;}
#ui-layer > *{pointer-events:auto;}

#footer{position:fixed;bottom:4px;left:0;right:0;text-align:center;color:#fff8;font-size:11px;z-index:50;pointer-events:auto;}
#footer a{color:var(--yellow);text-decoration:none;font-weight:600;}

#err-overlay{display:none;position:fixed;top:0;left:0;right:0;z-index:999;background:#b00020;color:#fff;font:600 13px/1.4 monospace;padding:8px 12px;}

/* PANELS */
.panel{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:min(92vw,440px);max-height:86vh;overflow-y:auto;
  background:rgba(22,7,38,.86);backdrop-filter:blur(8px);
  border:3px solid var(--yellow);border-radius:24px;
  padding:22px 20px;text-align:center;color:#fff;
  box-shadow:0 12px 40px rgba(0,0,0,.5), 0 0 30px rgba(255,210,61,.2);
}
.menu-panel{border:none;background:transparent;box-shadow:none;top:38%;padding:12px;}
.panel h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:24px;margin:0 0 16px;color:var(--yellow);text-shadow:2px 2px 0 rgba(0,0,0,.4);}

.title{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:clamp(40px,12vw,84px);letter-spacing:-2px;line-height:1;margin-bottom:6px;}
.title span{display:inline-block;animation:wob 2s ease-in-out infinite;text-shadow:3px 3px 0 rgba(0,0,0,.35);}
@keyframes wob{0%,100%{transform:translateY(0) rotate(-3deg);}50%{transform:translateY(-10px) rotate(3deg);}}
.subtitle{color:#fff;font-size:15px;font-weight:600;margin-bottom:20px;opacity:.9;}
.stats{margin-top:16px;color:#fff;font-size:14px;background:rgba(0,0,0,.35);padding:8px 14px;border-radius:14px;display:inline-block;}

/* BUTTONS */
.btn{
  font-family:'Fredoka',sans-serif;font-weight:700;font-size:17px;
  border:3px solid rgba(0,0,0,.2);border-radius:16px;padding:12px 22px;margin:6px auto;
  cursor:pointer;color:#fff;display:block;width:100%;max-width:320px;min-height:48px;
  background:rgba(255,255,255,.12);transition:transform .12s, filter .12s;
  box-shadow:0 5px 0 rgba(0,0,0,.3);
}
.btn:hover{transform:translateY(-2px) scale(1.02);filter:brightness(1.1);}
.btn:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(0,0,0,.3);}
.btn.big{font-size:22px;padding:16px 26px;animation:jiggle 2.4s ease-in-out infinite;}
@keyframes jiggle{0%,100%{transform:rotate(-1deg);}50%{transform:rotate(1deg);}}
.btn.green{background:linear-gradient(#7dff9e,#2ecc71);color:#0a2a15;}
.btn.blue{background:linear-gradient(#7de0ff,#2196c9);color:#052435;}
.btn.ghost{background:rgba(255,255,255,.08);font-size:14px;box-shadow:none;padding:8px 16px;min-height:40px;}
.btn.diff{color:#0a1020;text-shadow:none;}
.btn.diff.picked,.btn.round-btn.picked,.btn.picked{filter:brightness(1.15);box-shadow:0 0 0 3px #fff, 0 5px 0 rgba(0,0,0,.3);}
.row{display:flex;gap:10px;justify-content:center;}
.row .btn{width:auto;flex:1;}

.rounds-row{display:flex;gap:10px;margin:10px 0;}
.round-btn{background:rgba(160,107,255,.35);}

/* CHAR SELECT */
.char-grid,.mg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px;margin:8px 0 14px;}
.char-card{background:rgba(255,255,255,.08);border:3px solid transparent;border-radius:16px;padding:6px;cursor:pointer;transition:transform .12s;}
.char-card:hover{transform:translateY(-3px) scale(1.03);}
.char-card.picked{border-color:var(--yellow);background:rgba(255,210,61,.15);box-shadow:0 0 18px rgba(255,210,61,.4);}
.char-card canvas{width:100%;height:auto;display:block;}
.cname{font-weight:700;font-size:14px;margin-top:2px;}

.mg-card{background:rgba(255,255,255,.08);border:2px solid rgba(255,255,255,.15);border-radius:16px;padding:12px 8px;cursor:pointer;transition:transform .12s;}
.mg-card:hover{transform:translateY(-3px) scale(1.03);border-color:var(--pink);}
.mg-emoji{font-size:32px;}
.mg-name{font-weight:700;font-size:14px;color:var(--yellow);margin-top:4px;}
.mg-desc{font-size:11px;color:#fffc;margin-top:2px;line-height:1.2;}

/* HUD */
.hud-top{position:absolute;top:20px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 60px 0 12px;flex-wrap:wrap;}
.hud-round{background:var(--pink);color:#fff;font-weight:800;padding:6px 16px;border-radius:20px;font-size:14px;box-shadow:0 4px 0 rgba(0,0,0,.3);}
.hud-msg{background:rgba(0,0,0,.5);color:#ffd23d;font-weight:600;padding:6px 14px;border-radius:16px;font-size:13px;max-width:60vw;}
.icon-btn{width:44px !important;height:44px;min-height:44px;padding:0 !important;font-size:20px;border-radius:12px;background:rgba(0,0,0,.5);box-shadow:none;position:absolute;right:12px;top:0;margin:0;}

.spin-btn{
  position:absolute;bottom:12vh;left:50%;transform:translateX(-50%);
  width:auto !important;font-size:24px;padding:16px 40px;
  background:linear-gradient(#ffe14d,#ff9d3d);color:#3a1c00;
  border:4px solid #fff;border-radius:50px;margin:0;
  animation:pulse 1s ease-in-out infinite;box-shadow:0 6px 0 rgba(0,0,0,.35),0 0 30px rgba(255,210,61,.6);
}
@keyframes pulse{0%,100%{transform:translateX(-50%) scale(1);}50%{transform:translateX(-50%) scale(1.08);}}

.tap-area{position:absolute;inset:0;cursor:pointer;}

/* RESULTS */
.podium{margin:12px 0;}
.pod-row{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.08);border-radius:14px;padding:10px 14px;margin:7px 0;}
.pod-rank{font-size:24px;}
.pod-name{font-weight:700;flex:1;text-align:left;}
.pod-score{font-weight:800;color:var(--yellow);}
.prize{background:rgba(255,210,61,.2);border:2px solid var(--yellow);border-radius:14px;padding:12px;margin:12px 0;font-weight:700;color:#fff;font-size:15px;}
.result-mini{border-color:var(--lime);}