:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121018;--bg-elev:#1c1826;--ink:#f4f0e8;--muted:#d2cbbd;--line:#3a3348;--accent:#ffb020;--accent-ink:#1a1204;--stamp:#ff5a73;--stamp-ink:#2a0610;--ok:#7dffb3;--scrim:#08060cc7;--focus:#ffe08a;--danger:#ff8fa0;font-synthesis:none;color:var(--ink);background:var(--bg);font-family:On9 HK,Noto Sans HK,PingFang HK,PingFang TC,Noto Sans CJK HK,Noto Sans CJK TC,Source Han Sans HC,Microsoft JhengHei,Heiti TC,PMingLiU,ui-sans-serif,system-ui,sans-serif;font-weight:400;line-height:1.45}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(1200px 600px at 10% -10%, #3a2048 0%, transparent 55%), radial-gradient(900px 500px at 110% 10%, #1d3a4a 0%, transparent 50%), var(--bg);min-height:100dvh}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.app-shell{max-width:42rem;min-height:100dvh;margin:0 auto;padding:1.25rem 1rem 2.5rem}.tv-shell{max-width:72rem;min-height:100dvh;margin:0 auto;padding:2rem 2.5rem}.scrim{background:var(--scrim);color:var(--ink);border-radius:1rem;padding:1rem 1.15rem}.stack{flex-direction:column;gap:1rem;display:flex}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}h1,h2,h3{letter-spacing:.01em;margin:0;font-weight:700}h1{font-size:clamp(2rem,6vw,3.2rem)}.muted{color:var(--muted)}.btn{background:var(--accent);color:var(--accent-ink);border:0;border-radius:999px;min-height:3rem;padding:.85rem 1.25rem;font-weight:700}.btn.secondary{background:var(--bg-elev);color:var(--ink);border:1px solid var(--line)}.btn.stamp{background:var(--stamp);color:var(--stamp-ink)}.btn:disabled{opacity:.55;cursor:not-allowed}.field{flex-direction:column;gap:.4rem;display:flex}.field input{border:1px solid var(--line);background:var(--bg-elev);color:var(--ink);letter-spacing:.08em;border-radius:.85rem;min-height:3rem;padding:.9rem 1rem}.code-xl{letter-spacing:.28em;text-align:center;font-size:clamp(2.4rem,8vw,4.5rem);font-weight:700}.roster{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.roster li{background:var(--bg-elev);border:1px solid var(--line);border-radius:.85rem;justify-content:space-between;gap:1rem;padding:.7rem .9rem;display:flex}.role-hero{text-align:center;font-size:clamp(2.4rem,9vw,4rem)}.countdown{font-variant-numeric:tabular-nums;text-align:center;font-size:clamp(3rem,14vw,7rem);font-weight:700;line-height:1}.fabricated{background:var(--accent);color:var(--accent-ink);letter-spacing:.06em;border-radius:999px;padding:.35rem .75rem;font-weight:700;display:inline-block}.live{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.qr-wrap img{background:var(--ink);border-radius:.8rem;width:min(16rem,70vw);height:auto;padding:.6rem}.toggle{border:1px solid var(--line);background:var(--bg-elev);color:var(--ink);border-radius:999px;justify-content:center;align-items:center;min-width:3rem;min-height:3rem;padding:.85rem 1.25rem;font-size:.9rem;display:inline-flex}.score{font-variant-numeric:tabular-nums;font-weight:700}.phase-kicker{text-transform:none;letter-spacing:.08em;color:var(--accent);font-weight:700}@media (width>=800px){.tv-grid{grid-template-columns:1.1fr .9fr;align-items:start;gap:2rem;display:grid}}
