:root{
  --bg:#00000f;
  --accent:#00eaff;
  --accent2:#ff2bd6;
  --accent3:#8b5cff;
  --gold:#ffd23f;
  --text:#dff7ff;
  --dim:#7e9cb0;
  --border:rgba(0,234,255,.28);
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{
  background:var(--bg);
  color:var(--text);
  font-family:"Segoe UI",Roboto,system-ui,sans-serif;
  overflow:hidden;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
}
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 50% 120%,rgba(139,92,255,.20),transparent 60%),
    radial-gradient(ellipse at 50% -20%,rgba(0,234,255,.14),transparent 55%);
}
#stage{
  position:relative;z-index:1;height:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;padding:10px;
}
#hud{
  width:100%;max-width:640px;
  display:flex;align-items:center;justify-content:space-between;
  font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--dim);
}
#hud b{color:var(--accent);font-weight:700}
.slt-sep{opacity:.35;margin:0 6px}
.slt-hud-l b{color:var(--accent2)}

#cv{
  width:auto;height:auto;
  max-width:min(100%,86vh);
  max-height:calc(100vh - 130px);
  aspect-ratio:1/1;
  border:1px solid var(--border);border-radius:14px;
  background:#02020c;
  box-shadow:0 0 40px rgba(0,234,255,.16),inset 0 0 60px rgba(0,0,0,.7);
  touch-action:none;
}

#bar{display:flex;gap:10px}
.slt-tool{
  padding:10px 18px;cursor:pointer;
  background:rgba(0,234,255,.07);border:1px solid var(--border);border-radius:8px;
  color:var(--text);font-size:12px;font-weight:700;letter-spacing:2px;
}
.slt-tool:hover{border-color:var(--accent);color:var(--accent)}
.slt-tool:disabled{opacity:.3;cursor:default}

/* OVERLAYS */
.slt-overlay{
  position:fixed;inset:0;z-index:20;
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,12,.82);backdrop-filter:blur(6px);
  padding:16px;overflow:auto;
}
.slt-hidden{display:none}
.slt-card{
  width:min(440px,94vw);text-align:center;
  background:linear-gradient(180deg,rgba(10,12,30,.94),rgba(4,5,16,.94));
  border:1px solid var(--border);border-radius:14px;
  box-shadow:0 0 50px rgba(0,234,255,.14);
  padding:22px 20px;
}
.slt-card h1{margin:0 0 6px;font-size:34px;letter-spacing:6px;color:var(--accent);text-shadow:0 0 18px rgba(0,234,255,.7)}
.slt-card h1 span{color:var(--accent2);text-shadow:0 0 18px rgba(255,43,214,.7)}
.slt-card h2{margin:0 0 8px;font-size:22px;letter-spacing:4px;color:var(--accent2);text-shadow:0 0 16px rgba(255,43,214,.6)}
.slt-tag{margin:0 0 16px;font-size:13px;color:var(--dim)}
.slt-rank{margin:0 0 6px;font-size:26px;letter-spacing:4px;font-weight:800;color:var(--gold);text-shadow:0 0 20px rgba(255,210,63,.6)}
.slt-final{font-size:14px;letter-spacing:2px;color:var(--dim);margin:0 0 14px}
.slt-final b{color:var(--accent)}
.slt-label{display:block;font-size:11px;letter-spacing:2px;color:var(--dim);text-align:left;margin-bottom:6px;text-transform:uppercase}
.slt-input{
  width:100%;padding:11px 12px;margin-bottom:14px;
  background:rgba(0,234,255,.06);border:1px solid var(--border);border-radius:8px;
  color:var(--text);font-size:15px;letter-spacing:1px;outline:none;
}
.slt-input:focus{border-color:var(--accent);box-shadow:0 0 14px rgba(0,234,255,.3)}
/* GAME PANEL STANDARD v1: nickname error line + objective rows. See
   _standard/GAME-PANEL.md - every hub game carries its own copy of these. */
.slt-error{min-height:16px;margin:-8px 0 10px;font-size:12px;color:#ff7a6a}
.slt-info{text-align:left;font-size:13px;color:var(--dim);margin:0 0 14px;padding:0 2px;list-style:none}
.slt-info li{padding:4px 0;border-bottom:1px solid var(--border)}
.slt-info li:last-child{border-bottom:none}
.slt-info b{color:var(--text)}
.slt-btn-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.slt-btn{
  flex:1 1 140px;padding:12px 18px;cursor:pointer;
  background:linear-gradient(135deg,var(--accent),var(--accent3));
  border:none;border-radius:8px;color:#00121a;
  font-size:15px;font-weight:800;letter-spacing:3px;
  box-shadow:0 0 22px rgba(0,234,255,.35);
}
.slt-btn:hover{filter:brightness(1.12)}
.slt-btn-secondary{
  flex:1 1 140px;padding:12px 18px;cursor:pointer;
  background:transparent;border:1px solid var(--border);border-radius:8px;
  color:var(--text);font-size:14px;letter-spacing:2px;
}
.slt-btn-secondary:hover{border-color:var(--accent);color:var(--accent)}
.slt-help{margin:14px 0 0;font-size:11px;letter-spacing:1px;color:var(--dim)}

.slt-board{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}
.slt-board h3{margin:0 0 8px;font-size:11px;letter-spacing:3px;color:var(--dim)}
.slt-board ol{list-style:none;margin:0;padding:0;font-size:13px}
.slt-board li{display:flex;justify-content:space-between;padding:3px 4px;color:var(--dim)}
.slt-face{display:block;width:104px;height:104px;margin:2px auto 8px;filter:drop-shadow(0 0 12px currentColor)}
.slt-face-mini{width:20px;height:20px;flex:0 0 auto;filter:drop-shadow(0 0 5px currentColor)}
.slt-board li b{color:var(--accent);font-size:12px;letter-spacing:2px;display:flex;align-items:center;gap:6px}
.slt-board li.me{background:rgba(0,234,255,.09);border-radius:4px;color:var(--text)}

/* MOBILE */
@media (max-width:767px){
  #hud{font-size:11px;letter-spacing:1px}
  #stage{padding:6px;gap:8px}
  .slt-tool{padding:12px 16px}
  #cv{max-width:min(100%,74vh);max-height:calc(100vh - 150px)}
}
@media (orientation:landscape) and (hover:none){
  #stage{padding:4px;gap:6px;flex-direction:row}
  #hud{
    order:1;flex-direction:column;align-items:flex-start;gap:14px;
    width:auto;max-width:none;font-size:11px;
  }
  #cv{order:2;max-width:calc(100vh - 12px);max-height:calc(100vh - 12px)}
  #bar{
    order:3;flex-direction:column;
    padding-right:calc(env(safe-area-inset-right,0px) + 10px);
  }
  .slt-help{display:none}
}
body.fs-fallback{position:fixed;inset:0;width:100vw;height:100vh}
