*{box-sizing:border-box}
:root{
  --bg:#140e10;--panel:#221319;--panel-2:#1a0f14;
  --text:#ffe9f2;--muted:#e1b9c7;
  --accent:#ff6a88;--accent2:#ff9966;--line:#2a1820;
  --hud-bg:rgba(30,12,18,.55);--title-font:Audiowide, system-ui, sans-serif
}
html,body{height:100%;margin:0;color:var(--text);background:radial-gradient(800px 600px at 10% 5%, var(--panel), var(--bg) 40%, #000 100%);font-family:Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif}
.stage{position:relative;max-width:1280px;margin:12px auto;padding:0 12px}
.hud{display:flex;gap:24px;align-items:center;justify-content:flex-end;padding:10px 14px;margin:12px 0;border:1px solid var(--line);border-radius:12px;background:rgba(18,22,31,.6)}
.gametitle{margin-right:auto;font-family:var(--title-font);font-weight:800;letter-spacing:.3px;font-size:clamp(22px,5vw,52px);color:var(--accent);text-shadow:0 2px 0 rgba(0,0,0,.35)}
canvas{width:100%;height:auto;display:block;border-radius:12px;border:1px solid var(--line)}
.overlay{position:absolute;inset:60px 16px 16px;display:flex;align-items:center;justify-content:center;background:rgba(10,12,18,.55);backdrop-filter:blur(4px);border-radius:12px}
.overlay.hidden{display:none}
.panel{background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 25px rgba(0,0,0,.35);padding:16px}
.panel.center{text-align:center}
.btn{background:linear-gradient(180deg,var(--accent),var(--accent2));border:none;color:#001112;padding:10px 14px;border-radius:10px;font-weight:700;cursor:pointer;box-shadow:0 6px 14px rgba(0,0,0,.25);margin-right:8px}
.btn.outline{background:transparent;border:1px solid var(--accent);color:var(--accent)}
.sub{color:var(--muted)}
.loadscreen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(0,0,0,.86);color:#fff;z-index:99;gap:12px;text-align:center;padding:20px}
.loadscreen.hidden{display:none!important}
.loadscreen h1{margin:0;font-family:var(--title-font);font-size:clamp(28px,5vw,60px);color:var(--accent)}
.spinner{width:36px;height:36px;border-radius:50%;border:3px solid rgba(255,255,255,.25);border-top-color:var(--accent);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.compact-toggle{position:fixed;right:10px;top:10px;z-index:60;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:6px 8px;cursor:pointer}
.compact-panel{position:fixed;right:10px;top:44px;z-index:59;width:280px;background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 25px rgba(0,0,0,.35);padding:12px;color:var(--text)}
.compact-panel .row{display:flex;gap:8px}
.field label{display:block;margin-bottom:6px;color:var(--muted);font-size:13px}