:root{--stage:#0d0f12;--stage-dim:#08090b;--surface-1:#171a20;--surface-2:#1f242c;--surface-3:#262c36;--border-1:#2a303a;--border-2:#39414d;--ink:#f4f6f8;--ink-dim:#9aa3ad;--ink-faint:#6b7480;--ink-on-mint:#08130e;--ink-on-tile:#ffffff;--mint:#3ee6a0;--mint-deep:#18b87a;--mint-glow:rgba(62,230,160,.14);--mint-border:rgba(62,230,160,.45);--magenta:#e84fd0;--magenta-deep:#b13be0;--magenta-glow:rgba(232,79,208,.16);--magenta-border:rgba(232,79,208,.45);--violet:#8b5cf6;--violet-ink:#b79cf7;--violet-glow:rgba(139,92,246,.16);--amber:#f5a623;--amber-glow:rgba(245,222,120,.14);--tile-1-a:#f5793b;--tile-1-b:#e8543b;--tile-2-a:#8b5cf6;--tile-2-b:#a24ee0;--tile-3-a:#1fa2a8;--tile-3-b:#2fc3c9;--tile-4-a:#d84f9e;--tile-4-b:#e8547a;--grad-tile-1:linear-gradient(135deg,var(--tile-1-a),var(--tile-1-b));--grad-tile-2:linear-gradient(135deg,var(--tile-2-a),var(--tile-2-b));--grad-tile-3:linear-gradient(135deg,var(--tile-3-a),var(--tile-3-b));--grad-tile-4:linear-gradient(135deg,var(--tile-4-a),var(--tile-4-b));--grad-mint:linear-gradient(135deg,var(--mint),var(--mint-deep));--grad-magenta:linear-gradient(135deg,var(--magenta),var(--magenta-deep));--stage-glows:radial-gradient(900px 600px at 8% 12%,rgba(62,230,160,.10),transparent 60%),radial-gradient(900px 700px at 92% 30%,rgba(232,79,208,.10),transparent 60%),radial-gradient(700px 500px at 50% 95%,rgba(139,92,246,.08),transparent 60%);--spotlight:radial-gradient(220px 180px at 50% 0%,var(--amber-glow),transparent 70%);--text-body:var(--ink);--text-muted:var(--ink-dim);--surface-card:var(--surface-1);--surface-row:var(--surface-2);--action-primary:var(--grad-mint);--action-danger:var(--grad-magenta);--state-success:var(--mint);--state-danger:var(--magenta);--focus-ring:0 0 0 3px rgba(62,230,160,.35);--font-display:"Baloo 2","Segoe UI",system-ui,-apple-system,sans-serif;--font-body:"Baloo 2","Segoe UI",system-ui,-apple-system,sans-serif;--text-hero:64px;--text-display:44px;--text-title:28px;--text-lead:20px;--text-base:16px;--text-sm:14px;--text-xs:12px;--text-room-code:72px;--weight-heavy:800;--weight-bold:700;--weight-medium:500;--leading-tight:1.15;--leading-snug:1.3;--leading-normal:1.5;--tracking-tight:-0.5px;--tracking-label:0.1em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-tile:16px;--radius-card:22px;--radius-row:14px;--radius-modal:28px;--radius-pill:999px;--radius-round:50%;--shadow-card:0 18px 50px rgba(0,0,0,.5);--shadow-float:0 8px 24px rgba(0,0,0,.4);--shadow-mint-glow:0 0 32px rgba(62,230,160,.25);--shadow-magenta-glow:0 0 32px rgba(232,79,208,.28);--hit-min:44px;--hit-comfy:52px;--ease-pop:cubic-bezier(.34,1.56,.64,1);--ease-snap:cubic-bezier(.2,.9,.3,1);--ease-drift:cubic-bezier(.45,0,.55,1);--ease-tense:cubic-bezier(.7,0,.3,1);--dur-tap:120ms;--dur-snap:220ms;--dur-pop:380ms;--dur-beat:900ms;--dur-fly:1200ms;--dur-drift:8s}@import url("https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;500;600;700;800&display=swap");@media (prefers-reduced-motion:reduce){:root{--dur-tap:0ms;--dur-snap:0ms;--dur-pop:0ms;--dur-beat:0ms;--dur-fly:0ms;--dur-drift:0s}}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{background-color:var(--stage);background-image:var(--stage-glows);background-attachment:fixed;color:var(--ink);font-family:var(--font-body);font-weight:var(--weight-medium);-webkit-font-smoothing:antialiased}button{font-family:inherit}@keyframes flyLeft{0%{transform:translateX(0);opacity:0}15%{opacity:1}85%{opacity:1}to{transform:translateX(-170px);opacity:0}}@keyframes flyRight{0%{transform:translateX(0);opacity:0}15%{opacity:1}85%{opacity:1}to{transform:translateX(170px);opacity:0}}@keyframes popIn{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}@keyframes drift{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes sirenFlash{0%,to{box-shadow:none}50%{box-shadow:var(--shadow-magenta-glow)}}.pop-in{animation:popIn var(--dur-pop) var(--ease-pop) both}@media (prefers-reduced-motion:reduce){.pop-in{animation:none}}