:root{--bg-deep:#050608;--bg-frame:#07080f;--bg-panel:#0a0c14;--bg-panel2:#0a0c16;--bg-chip:#0d1122;--left:#35e0f2;--right:#ff3ba7;--count:#ffd24a;--on-left:#04222a;--on-right:#2a0316;--ink:#eef2ff;--ink-soft:#c9d0ea;--muted:#8b93b0;--muted-2:#7c86a8;--muted-3:#6a7290;--muted-4:#525b7a;--muted-5:#3f4763;--left-soft:#8fb9c8;--right-soft:#e79bc7;--danger:#ff6b6b;--font-display:"Chakra Petch",sans-serif;--font-mono:"Space Mono",monospace}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg-deep);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;color:var(--ink)}a{color:inherit}@keyframes blink{0%,to{opacity:1}50%{opacity:.15}}@keyframes softpulse{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.18);opacity:1}}@keyframes scan{0%{transform:translateY(-8%)}to{transform:translateY(108%)}}@keyframes floatpipL{0%{transform:translate(0);opacity:0}12%{opacity:1}to{transform:translate(-260px,-70px);opacity:0}}@keyframes floatpipR{0%{transform:translate(0);opacity:0}12%{opacity:1}to{transform:translate(260px,-40px);opacity:0}}@keyframes caret{0%,to{opacity:1}50%{opacity:0}}@keyframes barshimmer{0%{background-position:0 0}to{background-position:60px 0}}@keyframes ringglow{0%,to{filter:drop-shadow(0 0 6px currentColor)}50%{filter:drop-shadow(0 0 16px currentColor)}}@keyframes tickup{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes popin{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.06)}to{transform:scale(1);opacity:1}}.stage-viewport{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--bg-deep)}.stage{width:1440px;height:900px;flex:0 0 auto;transform-origin:center center;position:relative}.frame{width:1440px;height:900px;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border-radius:22px;border:1px solid rgba(120,140,200,.14);box-shadow:0 0 0 1px #ffffff05,0 40px 120px -30px #000000e6}.frame__grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(120,140,200,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(120,140,200,.05) 1px,transparent 1px);background-size:48px 48px}.frame__scan{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px)}.scan-sweep{position:absolute;left:0;right:0;height:60%;background:linear-gradient(180deg,rgba(53,224,242,.06),transparent);animation:scan 6s linear infinite;pointer-events:none}.frame--lobby{background:radial-gradient(120% 90% at 50% -10%,#131736,#0a0c16 55%,#07080f);border:1px solid rgba(53,224,242,.18);box-shadow:0 0 0 1px #ffffff05,0 40px 120px -30px #000000e6,inset 0 0 140px #35e0f20d}.frame--voting{background:#07080f;border:1px solid rgba(120,140,200,.14)}.frame--reveal{background:radial-gradient(110% 90% at 30% 40%,rgba(53,224,242,.14),transparent 60%),#07080f;border:1px solid rgba(53,224,242,.2);box-shadow:0 0 0 1px #ffffff05,0 40px 120px -30px #000000e6,inset 0 0 120px #35e0f20f}.split-bg{position:absolute;top:0;right:0;bottom:0;left:0;display:flex}.split-bg>.l{width:58%;background:radial-gradient(120% 120% at 20% 50%,rgba(53,224,242,.16),transparent 70%)}.split-bg>.r{flex:1;background:radial-gradient(120% 120% at 80% 50%,rgba(255,59,167,.16),transparent 70%)}.dot{width:11px;height:11px;border-radius:50%}.topbar{position:absolute;left:56px;right:56px;display:flex;align-items:center;justify-content:space-between}.eyebrow-mono{font-family:var(--font-mono);font-size:15px;letter-spacing:.3em;color:var(--muted-2)}.live-pill{display:flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:16px;letter-spacing:.15em}.lobby__brand{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:.28em;color:var(--ink)}.lobby__center{position:absolute;top:150px;left:56px;right:56px;display:flex;align-items:center;justify-content:center;gap:72px}.lobby__label{font-family:var(--font-mono);font-size:18px;letter-spacing:.4em;color:var(--muted-2)}.lobby__url{font-family:var(--font-display);font-weight:600;font-size:34px;color:var(--left);text-shadow:0 0 20px rgba(53,224,242,.45);margin:18px 0 40px}.code-tiles{display:flex;gap:16px;margin-top:14px}.code-tile{font-family:var(--font-display);font-weight:700;font-size:96px;line-height:1;color:var(--ink);background:var(--bg-chip);border:1px solid rgba(255,59,167,.35);border-radius:14px;padding:10px 26px;box-shadow:0 0 30px #ff3ba72e,inset 0 0 20px #ff3ba714}.lobby__divider{width:1px;height:360px;background:linear-gradient(180deg,transparent,rgba(120,140,200,.25),transparent)}.qr{background:var(--ink);border-radius:16px;padding:14px;box-shadow:0 0 40px #35e0f240;border:4px solid #0a0c16;display:block}.qr__cap{font-family:var(--font-mono);font-size:15px;letter-spacing:.35em;color:var(--muted-2);margin-top:20px;text-align:center}.qr-fallback{width:360px;height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;border-radius:16px;background:var(--bg-chip);border:1px solid rgba(53,224,242,.35);box-shadow:0 0 30px #35e0f21f}.qr-fallback__host{font-family:var(--font-mono);font-size:18px;letter-spacing:.1em;color:var(--muted-2)}.qr-fallback__code{font-family:var(--font-display);font-weight:700;font-size:88px;letter-spacing:.15em;color:var(--left);text-shadow:0 0 20px rgba(53,224,242,.4)}.join-pill{font-family:var(--font-mono);font-size:14px;letter-spacing:.12em;color:var(--muted-2);background:#ffffff08;border:1px solid rgba(120,140,200,.2);border-radius:999px;padding:7px 16px;white-space:nowrap}.join-pill b{color:var(--ink-soft);font-weight:400}.join-pill .jc{color:var(--left);font-weight:700;letter-spacing:.22em}.tray{position:absolute;left:56px;right:56px;bottom:44px}.tray__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.tray__label{font-family:var(--font-mono);font-size:15px;letter-spacing:.3em;color:var(--muted-2)}.tray__count{font-family:var(--font-display);font-weight:700;font-size:40px;color:var(--left);text-shadow:0 0 18px rgba(53,224,242,.5);display:flex;align-items:baseline;gap:10px}.tray__count small{font-family:var(--font-mono);font-size:16px;color:var(--muted-2);letter-spacing:.2em;font-weight:400}.tray__chips{display:flex;flex-wrap:wrap;gap:12px;max-height:120px;overflow:hidden}.chip{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:16px;color:var(--ink-soft);border-radius:999px;padding:8px 16px}.chip>i{width:9px;height:9px;border-radius:50%;display:inline-block;animation:softpulse 2.4s ease-in-out infinite}.chip--l{background:#35e0f214;border:1px solid rgba(53,224,242,.25)}.chip--l>i{background:var(--left);box-shadow:0 0 8px var(--left)}.chip--r{background:#ff3ba714;border:1px solid rgba(255,59,167,.25)}.chip--r>i{background:var(--right);box-shadow:0 0 8px var(--right)}.chip--pending{color:var(--muted-2);background:#788cc80f;border:1px dashed rgba(120,140,200,.3)}.chip--pending>i{border:1.5px solid var(--muted-2);animation:softpulse 1.6s ease-in-out infinite}.vote__q{position:absolute;top:96px;left:0;right:0;text-align:center}.vote__q .title{font-family:var(--font-display);font-weight:700;font-size:64px;color:var(--ink);letter-spacing:.02em}.vs{color:var(--muted-4);font-weight:600;font-size:40px;margin:0 22px;vertical-align:middle}.side-left{color:var(--left);text-shadow:0 0 24px rgba(53,224,242,.5)}.side-right{color:var(--right);text-shadow:0 0 24px rgba(255,59,167,.5)}.counts{position:absolute;top:232px;left:56px;right:56px;display:flex;align-items:center;justify-content:space-between}.count-col{text-align:center;flex:1}.count-num{font-family:var(--font-display);font-weight:700;font-size:150px;line-height:.9}.count-num.l{color:var(--left);text-shadow:0 0 36px rgba(53,224,242,.45);animation:tickup 1.2s ease-in-out infinite}.count-num.r{color:var(--right);text-shadow:0 0 36px rgba(255,59,167,.45);animation:tickup 1.2s ease-in-out .4s infinite}.count-lbl{font-family:var(--font-mono);font-size:20px;letter-spacing:.35em;margin-top:8px}.count-lbl.l{color:var(--left-soft)}.count-lbl.r{color:var(--right-soft)}.ring{position:relative;width:220px;height:220px;flex:0 0 auto;color:var(--count);animation:ringglow 2.2s ease-in-out infinite}.ring svg{transform:rotate(-90deg)}.ring__center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring__num{font-family:var(--font-display);font-weight:700;font-size:72px;line-height:1;color:var(--count)}.ring__cap{font-family:var(--font-mono);font-size:13px;letter-spacing:.3em;color:var(--muted-2);margin-top:2px}.pip{position:absolute;top:560px;left:50%;border-radius:50%}.pip.l{background:var(--left);box-shadow:0 0 12px var(--left)}.pip.r{background:var(--right);box-shadow:0 0 12px var(--right)}.tally{position:absolute;left:56px;right:56px;bottom:120px}.tally__bar{height:56px;border-radius:12px;overflow:hidden;display:flex;border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 0 30px #00000080;background:#0d1020}.tally__l{background:linear-gradient(90deg,#1c9fb0,#35e0f2);background-size:60px 60px;animation:barshimmer 2.5s linear infinite;display:flex;align-items:center;padding-left:20px;font-family:var(--font-display);font-weight:700;font-size:26px;color:var(--on-left);box-shadow:0 0 24px #35e0f266;transition:width .6s cubic-bezier(.22,1,.36,1);min-width:0;overflow:hidden}.tally__r{flex:1;background:linear-gradient(90deg,#ff3ba7,#b31f6f);display:flex;align-items:center;justify-content:flex-end;padding-right:20px;font-family:var(--font-display);font-weight:700;font-size:26px;color:var(--on-right)}.vote-progress{position:absolute;left:56px;right:56px;bottom:44px;display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:16px;color:var(--muted-2);letter-spacing:.1em}.vote-progress .caret{color:var(--ink);animation:caret 1s step-end infinite}.vote-progress .of{color:var(--muted-4)}.reveal__q{position:absolute;top:104px;left:0;right:0;text-align:center}.reveal__kicker{font-family:var(--font-mono);font-size:16px;letter-spacing:.4em;color:var(--muted-2);margin-bottom:16px}.reveal__title{font-family:var(--font-display);font-weight:700;font-size:56px;color:var(--ink)}.reveal__title .win{color:var(--left);text-shadow:0 0 24px rgba(53,224,242,.6)}.reveal__title .lose{color:var(--muted-3)}.reveal__title .vs{font-size:34px;margin:0 20px}.reveal-split{position:absolute;top:270px;left:56px;right:56px;display:flex;align-items:stretch;gap:28px}.winner{flex:0 0 62%;position:relative;border-radius:18px;padding:44px 48px;display:flex;flex-direction:column;justify-content:center;animation:popin .5s cubic-bezier(.22,1,.36,1) both}.winner__badge{position:absolute;top:22px;right:24px;font-family:var(--font-mono);font-size:13px;letter-spacing:.3em;padding:6px 14px;border-radius:999px;font-weight:700}.winner__pct{font-family:var(--font-display);font-weight:700;font-size:180px;line-height:.86}.winner__pct small{font-size:80px}.winner__name{font-family:var(--font-display);font-weight:600;font-size:34px;color:var(--ink);letter-spacing:.1em;margin-top:10px}.winner__votes{font-family:var(--font-mono);font-size:17px;margin-top:6px}.loser{flex:1;border-radius:18px;background:#ffffff05;border:1px solid rgba(120,140,200,.18);padding:44px 40px;display:flex;flex-direction:column;justify-content:center}.loser__pct{font-family:var(--font-display);font-weight:700;font-size:120px;line-height:.86;color:var(--muted-3)}.loser__pct small{font-size:56px}.loser__name{font-family:var(--font-display);font-weight:600;font-size:26px;color:var(--muted);letter-spacing:.1em;margin-top:10px}.loser__votes{font-family:var(--font-mono);font-size:16px;color:var(--muted-4);margin-top:6px}.stat{position:absolute;left:56px;right:56px;bottom:120px;text-align:center}.stat__inner{display:inline-flex;align-items:center;gap:16px;font-family:var(--font-display);font-weight:600;font-size:26px;color:var(--ink);background:#ffd24a14;border:1px solid rgba(255,210,74,.3);border-radius:14px;padding:20px 34px;box-shadow:0 0 30px #ffd24a1a}.stat__inner .mark{color:var(--count);font-size:30px}.next-hint{position:absolute;left:56px;right:56px;bottom:44px;display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:16px;color:var(--muted-2);letter-spacing:.1em}.next-hint .to{color:var(--ink-soft)}.ended{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;text-align:center}.ended h2{font-family:var(--font-display);font-weight:700;font-size:72px;margin:0;color:var(--ink)}.ended p{font-family:var(--font-mono);color:var(--muted-2);letter-spacing:.2em}
