:root{--void:#130d1e;--crypt:#1f1630;--tomb:#2c2045;--vein:#43325f;--bone:#f6ecdc;--dust:#b3a3cf;--ink:#0c0812;--slime:#8ff25c;--hex:#ff4fa8;--pumpkin:#ff7a1f;--potion:#a97bff;--candle:#ffd45e;--brew-hi:#c6ff9e;--bg:var(--void);--bg-2:var(--crypt);--card:var(--crypt);--card-2:var(--tomb);--line:var(--vein);--text:var(--bone);--muted:var(--dust);--accent:var(--hex);--accent-2:var(--hex);--gold:var(--candle);--danger:#ff5d6c;--radius:18px;--font:"Bricolage Grotesque", "Avenir Next", system-ui, -apple-system, sans-serif;--display:"Fraunces", "Cooper Black", Georgia, serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:radial-gradient(1200px 800px at 50% -10%, #2a1d4d 0%, var(--bg) 60%) fixed, var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0}h1,h2{margin:0}h2{letter-spacing:.02em;align-items:center;gap:8px;margin-bottom:12px;font-size:1rem;font-weight:600;display:flex}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}input{font:inherit}.screen{max-width:560px;min-height:100%;padding:max(20px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));flex-direction:column;gap:16px;margin:0 auto;display:flex}.screen.center{justify-content:center;align-items:center}.stack{flex-direction:column;gap:14px;display:flex}.row{align-items:center;gap:12px;display:flex}.card{background:linear-gradient(180deg, var(--card) 0%, var(--bg-2) 100%);border:1px solid var(--line);border-radius:var(--radius);width:100%;padding:18px}.card.narrow{max-width:400px}.brand{text-align:center;margin-bottom:8px}.logo{font-family:var(--display);letter-spacing:.08em;background:linear-gradient(180deg, var(--accent-2), var(--accent));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.6rem,10vw,3.6rem);font-weight:800}.tagline{color:var(--muted);margin:6px 0 0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:.72rem}.muted{color:var(--muted)}.small{font-size:.85rem}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.field input{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:12px;outline:none;padding:14px;font-size:1.05rem}.code-input{font-family:var(--display);letter-spacing:.4em;text-align:center;text-transform:uppercase;font-size:1.8rem!important}.primary{background:linear-gradient(180deg, var(--accent), #7a47e6);border:none;border-radius:12px;padding:14px 18px;font-size:1.05rem;font-weight:700;box-shadow:0 6px 20px #7b47e659}.primary:not(:disabled):active{transform:translateY(1px)}.ghost{border:1px solid var(--line);background:0 0;border-radius:10px;padding:6px 10px}.ghost.small{font-size:.78rem}.danger{color:var(--danger)}.link{color:var(--accent-2);background:0 0;border:none;padding:8px}.link.small{align-self:flex-start;padding:0;font-size:.85rem}.link.danger{color:var(--danger);align-self:center}.problem{color:#ffc2cf;background:#ff6b8a1f;border:1px solid #ff6b8a66;border-radius:10px;margin:0;padding:10px 12px;font-size:.9rem}.tabs{background:var(--bg);border-radius:12px;grid-template-columns:1fr 1fr;margin-bottom:16px;padding:4px;display:grid}.tab{color:var(--muted);background:0 0;border:none;border-radius:9px;padding:10px;font-weight:600}.choice{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.choice legend{color:var(--muted);margin-bottom:6px;font-size:.85rem}.option{border:1px solid var(--line);cursor:pointer;border-radius:12px;grid-template-columns:auto 1fr;column-gap:10px;padding:12px;display:grid}.option input{accent-color:var(--accent);grid-row:span 2}.option small{color:var(--muted)}.toggle{align-items:center;gap:10px;font-size:.95rem;display:flex}.toggle input{width:20px;height:20px;accent-color:var(--accent)}.room-header{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.room-code{font-family:var(--display);letter-spacing:.18em;color:var(--gold);font-size:2.4rem;line-height:1}.you{text-align:right}.you-name{font-size:1.2rem;font-weight:700}.count{background:var(--card-2);color:var(--accent-2);border-radius:999px;padding:2px 10px;font-size:.85rem}.player-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.player{background:#ffffff05;border-radius:10px;align-items:center;gap:10px;padding:8px;display:flex}.player.away{opacity:.5}.avatar{background:var(--card-2);width:34px;height:34px;color:var(--accent-2);border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:grid}.player-name{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;font-weight:500;display:flex}.player-actions{flex-shrink:0;gap:6px;display:flex}.tag{text-transform:uppercase;letter-spacing:.08em;background:var(--card-2);color:var(--muted);border-radius:6px;padding:2px 6px;font-size:.68rem}.tag.host{color:var(--gold)}.waiting p{margin:0 0 4px}.host-panel{flex-direction:column;gap:12px;display:flex}.stepper{justify-content:space-between;align-items:center;gap:12px;display:flex}.stepper-label{font-weight:500}.stepper-hint{color:var(--muted);font-size:.78rem}.stepper-controls{align-items:center;gap:8px;display:flex}.stepper-controls button{background:var(--card-2);border:1px solid var(--line);border-radius:10px;width:36px;height:36px;font-size:1.2rem;line-height:1}.stepper-controls output{text-align:center;font-variant-numeric:tabular-nums;min-width:64px;font-weight:600}.banner{z-index:10;background:var(--gold);color:#2a1d00;text-align:center;padding:6px;font-weight:600;position:fixed;top:0;left:0;right:0}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.tv{grid-template-columns:1fr;min-height:100%;display:grid}.tv.tv-with-host{grid-template-columns:1fr minmax(320px,400px)}.tv-stage{flex-direction:column;gap:4vh;min-width:0;padding:4vh 4vw;display:flex}.tv-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;display:flex}.tv-join{text-align:right}.tv-join .eyebrow{font-size:clamp(.8rem,1.4vw,1.2rem)}.tv-code{font-family:var(--display);letter-spacing:.15em;color:var(--gold);font-size:clamp(3rem,9vw,8rem);line-height:1}.tv-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);text-align:center;padding:2vh 1.5vw}.stat-value{font-family:var(--display);color:var(--accent-2);font-size:clamp(1.8rem,4vw,3.4rem)}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:clamp(.7rem,1vw,.95rem)}.tv-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.tv-player{background:var(--card-2);border:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;border-radius:12px;padding:14px 18px;font-size:clamp(1rem,1.8vw,1.6rem);font-weight:600;animation:.35s ease-out pop-in;overflow:hidden}.tv-player.away{opacity:.45}.tv-empty{color:var(--muted);text-align:center;font-size:clamp(1.2rem,2.4vw,2rem)}.tv-locked{color:var(--gold);text-align:center;text-transform:uppercase;letter-spacing:.2em}.tv-host{background:var(--bg-2);border-left:1px solid var(--line);flex-direction:column;gap:16px;max-height:100vh;padding:16px;display:flex;overflow-y:auto}@keyframes pop-in{0%{opacity:0;transform:scale(.9)translateY(6px)}to{opacity:1;transform:none}}@media (width<=800px){.tv.tv-with-host{grid-template-columns:1fr}.tv-host{border-left:none;border-top:1px solid var(--line);max-height:none}}@media (prefers-reduced-motion:reduce){.tv-player,.spinner{animation:none}}.phase-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.phase-title{font-family:var(--display);color:var(--accent-2);font-size:1.6rem;line-height:1.1}.timer{font-family:var(--display);color:var(--gold);font-variant-numeric:tabular-nums;font-size:2rem}.timer.urgent,.tv-timer.urgent{color:var(--danger);animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.55}}.role-card{padding:0;overflow:hidden}.role-toggle{width:100%;color:var(--accent-2);background:0 0;border:none;justify-content:space-between;align-items:center;padding:14px 18px;font-weight:600;display:flex}.role-card.shown{border-color:var(--accent)}.role-details{padding:0 18px 16px}.role-name{margin:0 0 10px;font-size:1.1rem}.coven-members{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.coven-members li{background:#ffffff08;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.coven-members li>span:first-child{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ascended{border-color:var(--gold);background:linear-gradient(180deg, #3a2c12, var(--bg-2))}.ascended p{margin:6px 0 0}.phase-body p{margin:0 0 8px;line-height:1.45}.pick-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin:12px 0;display:grid}.pick{background:var(--card-2);border:1px solid var(--line);text-align:center;text-overflow:ellipsis;white-space:nowrap;border-radius:12px;padding:14px 10px;font-size:1rem;font-weight:600;overflow:hidden}.pick.selected{background:linear-gradient(180deg, var(--accent), #7a47e6);border-color:var(--accent-2)}.vote-status{margin-top:4px!important}.coven-board ul,.tally{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.coven-board li,.tally li{background:#ffffff08;border-radius:10px;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.coven-size{font-family:var(--display);color:var(--gold);font-size:1.3rem}.cauldron-line{margin:10px 0 0}.tally-change{font-variant-numeric:tabular-nums}.gain{color:#7ee2a8;font-weight:700}.outcome{font-weight:600;margin-top:12px!important}.outcome.good{color:#7ee2a8}.reveal{text-align:center}.accused{font-family:var(--display);color:var(--gold);margin:4px 0 8px;font-size:2.2rem}.verdict{font-size:1.1rem}.verdict.innocent{color:#7ee2a8}.vote-counts{flex-direction:column;gap:4px;max-width:320px;margin:14px auto 0;padding:0;list-style:none;display:flex}.vote-counts li{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.chips{flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.chips.center{justify-content:center}.chip{background:var(--card-2);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:4px 12px;font-size:.9rem}.chip.done{color:var(--text);border-color:var(--accent);background:#9b6bff2e}.chip.exposed{color:var(--text);border-color:var(--danger);background:#ff6b8a26}.vote-progress{flex-direction:column;gap:8px;display:flex}.progress-bar{background:var(--bg);border-radius:999px;height:8px;overflow:hidden}.progress-bar>div{background:linear-gradient(90deg, var(--accent), var(--accent-2));height:100%;transition:width .3s}.results{flex-direction:column;gap:12px;display:flex}.results .verdict{text-align:center;font-size:1.25rem}.final-covens{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.final-coven.winner{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold), 0 8px 30px #e8c26a33}.final-coven.disbanded{opacity:.6}.host-game{border-color:var(--gold);flex-direction:column;gap:12px;display:flex}.host-actions{gap:8px;display:flex}.host-actions .primary{flex:1}.host-actions .ghost{padding:10px 14px}.tv-game-header{justify-content:space-between;align-items:center;gap:24px;display:flex}.tv-round{color:var(--muted);text-transform:uppercase;letter-spacing:.14em;font-size:clamp(.9rem,1.4vw,1.3rem)}.tv-phase{font-family:var(--display);color:var(--accent-2);font-size:clamp(2.4rem,5.5vw,5rem);line-height:1.05}.tv-timer{font-family:var(--display);color:var(--gold);font-variant-numeric:tabular-nums;font-size:clamp(3rem,8vw,7.5rem)}.tv-body{flex:1;grid-template-columns:1fr minmax(240px,26%);gap:3vw;display:grid}.tv-body.full{grid-template-columns:1fr}.tv-main{flex-direction:column;justify-content:center;gap:2vh;min-width:0;display:flex}.tv-main .chip{padding:6px 16px;font-size:clamp(.9rem,1.3vw,1.3rem)}.tv-main .tally li,.tv-main .vote-counts li{font-size:clamp(1rem,1.8vw,1.8rem)}.tv-prompt{margin:0;font-size:clamp(1.3rem,2.4vw,2.4rem)}.tv-prompt.big{text-align:center;font-size:clamp(2rem,4vw,4rem)}.reveal.big .accused{font-size:clamp(3rem,8vw,7rem)}.reveal.big .verdict{font-size:clamp(1.4rem,2.8vw,2.6rem)}.reveal.big .chip{font-size:clamp(1rem,1.8vw,1.6rem)}.tv-covens{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);align-self:start;padding:2vh 1.5vw}.tv-covens ul{flex-direction:column;gap:1vh;margin:1vh 0 0;padding:0;list-style:none;display:flex}.tv-covens li{justify-content:space-between;font-size:clamp(1rem,1.7vw,1.7rem);display:flex}.tv-covens strong{font-family:var(--display);color:var(--gold)}.tv-cauldron{text-align:center;border-top:1px solid var(--line);margin-top:3vh;padding-top:2vh}.tv-footer{text-align:right;letter-spacing:.15em}@media (width<=800px){.tv-body{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.timer.urgent,.tv-timer.urgent{animation:none}}.results>.muted{text-align:center;margin:0}.tv-body.full .tv-main{justify-content:flex-start;padding-top:4vh}.tv-main .final-coven .chip{font-size:clamp(.95rem,1.4vw,1.4rem)}.phase-header{flex-direction:column;align-items:stretch;gap:2px}.phase-meta{justify-content:space-between;align-items:center;gap:8px;display:flex}.phase-main{justify-content:space-between;align-items:center;gap:12px;display:flex}.me-name{background:var(--card-2);border:1px solid var(--line);border-radius:999px;padding:3px 12px;font-size:.9rem;font-weight:700}.role-hint{color:var(--muted);margin:0 0 10px;font-size:.9rem;line-height:1.4}.role-details .ascended{border:1px solid var(--gold);border-radius:12px;margin-bottom:12px;padding:10px 12px}.role-details .outcome{margin:0 0 10px!important}.center{text-align:center}.voters{color:var(--muted);font-size:.8rem}.live-votes{flex-direction:column;gap:8px;margin-top:14px;display:flex}.live-votes ul{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.live-row{justify-content:space-between;font-weight:600;display:flex}.live-count{font-family:var(--display);color:var(--gold)}.live-bar{background:var(--bg);border-radius:999px;height:6px;margin:4px 0;overflow:hidden}.live-bar>div{background:linear-gradient(90deg, var(--accent), var(--accent-2));height:100%;transition:width .3s}.live-votes.big .live-row{font-size:clamp(1.2rem,2.2vw,2.2rem)}.live-votes.big .voters{font-size:clamp(.9rem,1.3vw,1.3rem)}.live-votes.big .live-bar{height:12px}.live-votes.big>.muted{font-size:clamp(.9rem,1.3vw,1.2rem)}.confirm-vote{width:100%;margin-top:4px}.vote-locked{font-size:1.1rem;margin:6px 0 8px!important}.vote-locked strong{color:var(--gold)}.toggles{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding-top:4px;display:flex}.toggles .eyebrow{margin-top:10px}.toggle-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.toggle-row.disabled .switch-label{color:var(--muted)}.switch{cursor:pointer;flex:1;align-items:center;gap:10px;min-width:0;display:flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch-track{background:var(--bg);border:1px solid var(--line);border-radius:999px;flex-shrink:0;width:44px;height:26px;transition:background .2s;position:relative}.switch-track:after{content:"";background:var(--muted);border-radius:50%;width:20px;height:20px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.switch input:checked+.switch-track:after{background:#fff;transform:translate(18px)}.switch input:disabled+.switch-track{opacity:.4}.switch:has(input:disabled){cursor:not-allowed}.switch-label{font-size:.95rem;line-height:1.3}.infotip{flex-shrink:0;display:inline-flex;position:relative}.infotip-button{border:1px solid var(--line);background:var(--card-2);width:26px;height:26px;color:var(--accent-2);border-radius:50%;padding:0;font-size:.85rem;font-weight:700;line-height:1}.infotip-pop{z-index:20;background:var(--bg);border:1px solid var(--accent);width:min(280px,80vw);color:var(--text);border-radius:12px;padding:10px 12px;font-size:.85rem;line-height:1.45;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 10px 30px #00000080}body{background:radial-gradient(2px 2px at 12% 18%, #ffd45eb3 50%, transparent 51%), radial-gradient(1.5px 1.5px at 78% 9%, #f6ecdc99 50%, transparent 51%), radial-gradient(2px 2px at 64% 42%, #ff4fa899 50%, transparent 51%), radial-gradient(1.5px 1.5px at 30% 66%, #8ff25c99 50%, transparent 51%), radial-gradient(900px 600px at 85% -5%, #ff4fa829, transparent 70%), radial-gradient(800px 700px at -10% 30%, #8ff25c17, transparent 70%), var(--void);background-size:340px 340px,280px 280px,420px 420px,380px 380px,auto,auto,auto;background-attachment:fixed;font-size:16px}.icon{vertical-align:-.22em;flex-shrink:0;width:1.25em;height:1.25em}.sticker{display:block;overflow:visible}.bub{transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in infinite bub-rise}.bub.b2{animation-delay:.8s}.bub.b3{animation-delay:1.6s}@keyframes bub-rise{0%{opacity:0;transform:translateY(6px)scale(.6)}30%{opacity:1}to{opacity:0;transform:translateY(-20px)scale(1.1)}}.twinkle{transform-box:fill-box;transform-origin:50%;animation:2s ease-in-out infinite twinkle}@keyframes twinkle{50%{opacity:.5;transform:scale(.5)rotate(45deg)}}h2{font-family:var(--display);font-variation-settings:"SOFT" 100, "WONK" 1;letter-spacing:0;font-size:1.3rem;font-style:italic;font-weight:800}.phase-body h2{font-size:1.4rem}.eyebrow{letter-spacing:.14em;align-items:center;gap:6px;font-weight:600;display:inline-flex}.logo{font-family:var(--display);font-variation-settings:"SOFT" 100, "WONK" 1, "opsz" 144;letter-spacing:-.02em;background:0 0;-webkit-background-clip:initial;background-clip:initial;color:var(--slime);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:3px 3px 0 var(--ink), 6px 6px 0 var(--hex), 9px 9px 0 var(--ink);padding-right:10px;font-size:clamp(4rem,19vw,6.5rem);font-style:italic;font-weight:900;line-height:.9}.logo-o{transform-origin:50% 60%;animation:3.2s ease-in-out infinite logo-wobble;display:inline-block}@keyframes logo-wobble{0%,to{transform:rotate(-6deg)}50%{transform:rotate(8deg)translateY(-4px)}}.brand{flex-direction:column;align-items:center;display:flex}.brand-art{width:150px;height:130px;margin-bottom:-8px;position:relative}.brand-cauldron{width:130px;height:130px;margin:0 auto}.brand-hexed{width:62px;height:62px;position:absolute;top:-6px;right:-26px;transform:rotate(12deg)}.tagline{color:var(--bone);text-align:center;max-width:32ch;margin-top:14px;line-height:1.45}.tagline em{font-family:var(--display);color:var(--candle);font-weight:700}.card{background:var(--crypt);border:1.5px solid var(--vein);border-radius:var(--radius)}.primary{background:var(--slime);color:var(--ink);border:2.5px solid var(--ink);box-shadow:4px 4px 0 var(--ink);border-radius:14px;justify-content:center;align-items:center;gap:8px;font-weight:800;transition:transform .1s,box-shadow .1s;display:inline-flex}.primary:not(:disabled):active{box-shadow:1px 1px 0 var(--ink);transform:translate(3px,3px)}.primary:disabled{background:var(--tomb);color:var(--dust);box-shadow:none;border-color:var(--vein);opacity:1}.primary.accuse:not(:disabled){background:var(--hex);color:var(--bone)}button:focus-visible{outline:2px solid var(--candle);outline-offset:2px}.ghost{border:1.5px solid var(--vein);background:var(--tomb);color:var(--bone);font-weight:600}.link{color:var(--candle);align-items:center;gap:6px;font-weight:600;display:inline-flex}.field input{background:var(--void);border:1.5px solid var(--vein)}.field input:focus{border-color:var(--hex);box-shadow:0 0 0 3px #ff4fa840}.code-input{font-family:var(--display);font-variation-settings:"SOFT" 0, "opsz" 144;color:var(--candle);font-weight:900}.tabs{background:var(--void);border:1.5px solid var(--vein);border-radius:999px}.tab{border-radius:999px}.tab.active{background:var(--bone);color:var(--ink)}.option{border:1.5px solid var(--vein)}.option input{accent-color:var(--hex)}.option.selected{border-color:var(--hex);background:#ff4fa81a}.toggle input{accent-color:var(--slime)}.switch input:checked+.switch-track{background:var(--slime);border-color:var(--ink)}.switch input:checked+.switch-track:after{background:var(--ink)}.switch input:focus-visible+.switch-track{box-shadow:0 0 0 3px #ffd45e80}.problem{color:#ffd0d5;background:#ff5d6c1f;border-color:#ff5d6c80}.room-code,.tv-code{font-family:var(--display);font-variation-settings:"SOFT" 0, "opsz" 144;color:var(--candle);font-weight:900}.count{background:var(--tomb);color:var(--candle);font-family:var(--font);font-style:normal;font-weight:700}.avatar{border:2px solid var(--ink);color:var(--ink);font-weight:800}.player{background:#f6ecdc0a;border-radius:12px}.tag{background:var(--tomb);color:var(--dust)}.tag.host{background:var(--candle);color:var(--ink);font-weight:800}.waiting{text-align:center;flex-direction:column;align-items:center;display:flex}.waiting-art{width:96px;height:96px;margin-bottom:10px}.stepper-controls button{background:var(--tomb);border:1.5px solid var(--vein)}.stepper-controls output{font-family:var(--display);color:var(--candle);font-weight:800}.host-panel h2,.host-game h2{color:var(--candle)}.host-game{border-color:var(--candle)}.banner{background:var(--candle);color:var(--ink)}.loading-art{width:110px;height:110px}.message-art{align-self:center;width:80px;height:80px;transform:rotate(-6deg)}.phase-title{font-family:var(--display);font-variation-settings:"SOFT" 100, "WONK" 1;color:var(--hex);align-items:center;gap:8px;font-size:1.85rem;font-style:italic;font-weight:900;display:flex}.timer{color:var(--candle);font-weight:900}.timer.urgent,.tv-timer.urgent{color:var(--hex)}.me-name{background:var(--tomb);border:1.5px solid var(--vein)}.phase-body{position:relative;overflow:visible}.phase-body>h2,.phase-body>p:first-of-type{padding-right:64px}.phase-art{pointer-events:none;width:72px;height:72px;position:absolute;top:-22px;right:-6px;transform:rotate(10deg)}.role-card{border:1.5px solid var(--vein)}.role-card.shown{border:2.5px solid var(--candle);box-shadow:0 0 0 3px var(--ink), 0 0 28px #ffd45e4d;background:radial-gradient(180px 120px at 100% 0%, #ffd45e38, transparent 70%), linear-gradient(160deg, var(--tomb), var(--crypt))}.role-toggle,.role-toggle .eyebrow{color:var(--candle)}.role-name{font-size:1.1rem}.role-banner{align-items:center;gap:12px;margin-bottom:12px;display:flex}.role-banner .eyebrow{color:var(--candle)}.role-title{font-family:var(--display);font-variation-settings:"SOFT" 100, "WONK" 1;margin:2px 0 0;font-size:1.7rem;font-style:italic;font-weight:900;line-height:1}.role-coven{font-family:var(--display);color:var(--slime);margin:2px 0 0;font-size:1.1rem;font-weight:700}.role-art{flex-shrink:0;width:72px;height:72px;transform:rotate(-8deg)}.role-icon{width:52px;height:52px;color:var(--slime);flex-shrink:0}.role-details .ascended{border:2px solid var(--candle);background:#ffd45e14}.coven-members li{background:var(--void);border:1.5px solid var(--vein)}.pick{background:var(--tomb);border:2px solid var(--vein);color:var(--bone);transition:transform .12s,box-shadow .12s}.pick.selected{background:var(--hex);border-color:var(--ink);color:var(--bone);box-shadow:3px 3px 0 var(--ink);transform:rotate(-1.5deg)}.vote-locked strong{font-family:var(--display);color:var(--hex);font-size:1.3rem;font-style:italic;font-weight:900}.coven-board li,.tally li{background:#f6ecdc0a;border-radius:12px;font-weight:600}.coven-board li.mine,.tally li.mine{outline:2px solid var(--slime)}.coven-size{color:var(--candle);font-weight:900}.cauldron-line{align-items:center;gap:6px;display:flex}.gain,.outcome.good,.verdict.innocent{color:var(--slime)}.reveal-art{width:110px;height:110px;margin:4px auto 6px;transform:rotate(-6deg)}.accused{font-variation-settings:"SOFT" 100, "WONK" 1;color:var(--candle);font-style:italic;font-weight:900}.verdict.guilty{color:var(--hex)}.verdict.guilty strong{font-family:var(--display);font-style:italic}.results-art{width:110px;height:110px;margin:0 auto}.chip{background:var(--tomb);border:1.5px solid var(--vein)}.chip.done{border-color:var(--slime);color:var(--bone);background:#8ff25c29}.chip.exposed{border-color:var(--hex);background:#ff4fa82e}.progress-bar,.live-bar{background:var(--void);border:1.5px solid var(--ink);height:10px}.progress-bar>div{background:var(--slime)}.live-bar>div{background:var(--potion);transition:width .6s cubic-bezier(.3,1.4,.6,1)}.live-votes li.leading .live-bar>div{background:repeating-linear-gradient(-45deg, var(--hex) 0 8px, #c93a84 8px 16px)}.live-count{color:var(--candle);font-weight:900}.final-coven.winner{border:2.5px solid var(--candle);box-shadow:0 0 0 3px var(--ink), 0 8px 30px #ffd45e40}.infotip-button{background:var(--tomb);color:var(--candle);border:1.5px solid var(--vein)}.infotip-pop{border-color:var(--hex)}.tv-brand{align-items:center;gap:2vw;display:flex}.tv-brand-art{width:clamp(80px,10vw,160px);height:auto}.tv-header .logo{font-size:clamp(3.5rem,8vw,7rem)}.stat{background:var(--crypt);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}.stat-value{color:var(--candle);font-weight:900}.tv-player{background:var(--crypt);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);align-items:center;gap:12px;display:flex}.tv-player-name{text-overflow:ellipsis;overflow:hidden}.tv-player .avatar{width:1.8em;height:1.8em;font-size:.8em}.tv-phase{font-variation-settings:"SOFT" 100, "WONK" 1;color:var(--slime);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:4px 4px 0 var(--hex);align-items:center;gap:.25em;font-style:italic;font-weight:900;display:flex}.tv-phase .icon{-webkit-text-stroke:0;width:.8em;height:.8em;color:var(--hex)}.tv-timer{font-weight:900}.tv-main{position:relative}.tv-phase-art{align-self:center;width:clamp(120px,14vw,240px);height:auto}.tv-main .reveal-art{width:clamp(140px,16vw,260px);height:auto}.tv-main .results-art{width:clamp(140px,14vw,220px);height:auto}.tv-covens h2.eyebrow{font-family:var(--font);font-size:clamp(.8rem,1.1vw,1.1rem);font-style:normal;font-weight:600}.tv-covens{background:var(--crypt);border:2px solid var(--ink);box-shadow:5px 5px 0 var(--ink)}.tv-covens li>span{align-items:center;gap:.5em;display:inline-flex}.tv-cauldron{flex-direction:column;align-items:center;display:flex}.tv-cauldron-art{width:clamp(90px,9vw,150px);height:auto}.tv-footer-code{font-family:var(--display);color:var(--candle);letter-spacing:.14em;font-weight:900}.tv-host{background:var(--crypt);border-left:1.5px solid var(--vein)}@media (prefers-reduced-motion:reduce){.bub,.twinkle,.logo-o{animation:none}.live-bar>div,.pick{transition:none}}:root{--spring:cubic-bezier(.34, 1.56, .64, 1);--swift:cubic-bezier(.2, .8, .2, 1)}.tabs{isolation:isolate;position:relative}.tabs:before{content:"";z-index:-1;background:var(--bone);width:calc(50% - 4px);box-shadow:2px 2px 0 var(--ink);transition:transform .38s var(--spring);border-radius:999px;position:absolute;top:4px;bottom:4px;left:4px}.tabs[data-active=host]:before{transform:translate(100%)}.tab{transition:color .25s;position:relative}.tab.active{color:var(--ink);background:0 0}.tab:not(.active):hover{color:var(--bone)}.tab-panel{animation:panel-in .4s var(--swift) both}.tab-panel.from-left{--from:-24px}.tab-panel.from-right{--from:24px}@keyframes panel-in{0%{opacity:0;transform:translateX(var(--from,0))}to{opacity:1;transform:none}}.slide-in{animation:slide-down .35s var(--swift) both}@keyframes slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.option{transition:border-color .2s, background-color .2s, transform .25s var(--spring)}.option.selected{transform:scale(1.015)}.brand-cauldron{animation:drop-in .7s var(--spring) both, float 4s ease-in-out .7s infinite}.brand-hexed{animation:slap-on .5s var(--spring) .45s both}.brand .logo{animation:rise-in .6s var(--swift) .15s both}.brand .tagline{animation:rise-in .6s var(--swift) .3s both}@keyframes drop-in{0%{opacity:0;transform:translateY(-40px)rotate(-12deg)scale(.8)}to{opacity:1;transform:none}}@keyframes float{50%{transform:translateY(-6px)rotate(2deg)}}@keyframes slap-on{0%{opacity:0;transform:rotate(40deg)scale(2)}to{opacity:1;transform:rotate(12deg)scale(1)}}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (hover:hover){.primary:not(:disabled):hover{box-shadow:5px 6px 0 var(--ink);transform:translate(-1px,-2px)}.pick:not(.selected):hover{border-color:var(--dust);transform:translateY(-2px)}.ghost:not(:disabled):hover,.stepper-controls button:not(:disabled):hover{border-color:var(--dust)}.link:hover{text-underline-offset:3px;text-decoration:underline}}.primary{transition:transform .15s var(--spring), box-shadow .15s, background-color .2s, color .2s}.ghost,.stepper-controls button{transition:border-color .2s,transform .1s}.ghost:active,.stepper-controls button:not(:disabled):active{transform:scale(.92)}.stepper-controls output{animation:bump .3s var(--spring)}@keyframes bump{0%{color:var(--bone);transform:scale(1.35)}}.role-card{transition:border-color .3s,box-shadow .4s,background .4s}.role-collapse{transition:grid-template-rows .42s var(--swift), visibility 0s linear .42s;visibility:hidden;grid-template-rows:0fr;display:grid}.role-collapse[data-open=true]{visibility:visible;transition:grid-template-rows .42s var(--swift), visibility 0s;grid-template-rows:1fr}.role-collapse>.role-details{opacity:0;min-height:0;transition:opacity .25s, transform .42s var(--swift), padding-bottom .42s var(--swift);padding-bottom:0;overflow:hidden;transform:translateY(-6px)scale(.98)}.role-collapse[data-open=true]>.role-details{opacity:1;transition:opacity .3s 80ms, transform .42s var(--spring), padding-bottom .42s var(--swift);padding-bottom:16px;transform:none}.role-collapse[data-open=true] .role-art{animation:slap-in .5s var(--spring) .12s both}.role-collapse[data-open=true] .role-icon{animation:spin-in .6s var(--spring) .12s both}@keyframes slap-in{0%{opacity:0;transform:rotate(-40deg)scale(.4)}to{opacity:1;transform:rotate(-8deg)}}@keyframes spin-in{0%{opacity:0;transform:rotate(-180deg)scale(.4)}to{opacity:1;transform:none}}.role-toggle .icon{transition:transform .35s var(--spring)}.role-card.shown .role-toggle .icon{transform:scale(1.25)}.role-toggle-label{animation:rise-in .25s var(--swift)}.phase-title{animation:title-in .5s var(--spring) both}.phase-title .icon{animation:.6s ease-in-out .3s wiggle}@keyframes title-in{0%{opacity:0;transform:translate(-16px)skew(-8deg)}to{opacity:1;transform:none}}@keyframes wiggle{25%{transform:rotate(-14deg)}75%{transform:rotate(10deg)}}.phase-body{animation:card-in .45s var(--swift) both}@keyframes card-in{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:none}}.phase-art{animation:sticker-in .6s var(--spring) .15s both}@keyframes sticker-in{0%{opacity:0;transform:rotate(-30deg)scale(.3)}to{opacity:1;transform:rotate(10deg)scale(1)}}.pick.selected{animation:pick-pop .35s var(--spring)}@keyframes pick-pop{0%{transform:scale(.9)}60%{transform:scale(1.08)rotate(-3deg)}to{transform:rotate(-1.5deg)}}.confirm-vote:not(:disabled){animation:nudge .4s var(--spring)}@keyframes nudge{0%{transform:scale(.96)}}.vote-locked{animation:stamp .45s var(--spring) both}.vote-locked strong{animation:stamp .5s var(--spring) .1s both;display:inline-block}@keyframes stamp{0%{opacity:0;transform:scale(1.8)rotate(-6deg)}to{opacity:1;transform:none}}.live-votes li,.chip{animation:rise-in .3s var(--swift) both}.chip{transition:background-color .3s,border-color .3s,color .3s}.chip.done{animation:chip-done .4s var(--spring)}@keyframes chip-done{50%{transform:scale(1.15)}}.progress-bar>div{transition:width .5s var(--spring)}.live-count{display:inline-block}.reveal>.muted:first-child{animation:rise-in .4s var(--swift) both}.reveal .accused{animation:accuse .7s var(--spring) .35s both}@keyframes accuse{0%{opacity:0;filter:blur(6px);transform:scale(.3)rotate(-10deg)}to{opacity:1;filter:none;transform:none}}.reveal .reveal-art{animation:slam .55s var(--spring) .9s both}@keyframes slam{0%{opacity:0;transform:scale(2.4)rotate(25deg)}to{opacity:1;transform:rotate(-6deg)}}.reveal .verdict{animation:rise-in .45s var(--swift) 1.05s both}.reveal .chips .chip{animation:rise-in .35s var(--swift) both}.reveal .chips .chip:first-child{animation-delay:1.25s}.reveal .chips .chip:nth-child(2){animation-delay:1.35s}.reveal .chips .chip:nth-child(3){animation-delay:1.45s}.reveal .chips .chip:nth-child(4){animation-delay:1.55s}.reveal .chips .chip:nth-child(n+5){animation-delay:1.65s}.reveal .vote-counts{animation:rise-in .4s var(--swift) 1.4s both}.reveal .reveal-art:first-child{animation:drop-in .6s var(--spring) both, float 3s ease-in-out .6s infinite}.tally li{animation:rise-in .35s var(--swift) both}.tally li:nth-child(2){animation-delay:80ms}.tally li:nth-child(3){animation-delay:.16s}.tally li:nth-child(n+4){animation-delay:.24s}.gain{animation:gain .6s var(--spring) .4s both;display:inline-block}@keyframes gain{0%{opacity:0;transform:translateY(8px)scale(.5)}to{opacity:1;transform:none}}.results-art{animation:drop-in .7s var(--spring) both, float 4s ease-in-out .7s infinite}.final-coven{animation:rise-in .45s var(--swift) both}.final-coven.winner{animation:rise-in .45s var(--swift) both, winner-glow 2.4s ease-in-out .5s infinite}@keyframes winner-glow{50%{box-shadow:0 0 0 3px var(--ink), 0 8px 44px #ffd45e8c}}.player{animation:rise-in .35s var(--spring) both}.coven-board li{transition:outline-color .3s}.coven-size{display:inline-block}.infotip-pop{animation:pop-tip .22s var(--spring) both;transform-origin:100% 0}@keyframes pop-tip{0%{opacity:0;transform:scale(.85)translateY(-4px)}to{opacity:1;transform:none}}.problem{animation:.4s ease-in-out shake}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.banner{animation:slide-down .3s var(--swift)}.waiting-art{animation:4s ease-in-out infinite float}.message-art{animation:drop-in .6s var(--spring) both}.tv-phase{animation:title-in .6s var(--spring) both}.tv-main{animation:card-in .5s var(--swift) both}.tv-phase-art{animation:drop-in .7s var(--spring) both, float 4s ease-in-out .7s infinite}.tv-player{animation:pop-in .45s var(--spring) both}.tv-brand-art{animation:4s ease-in-out infinite float}.tv-cauldron-art{animation:5s ease-in-out infinite float}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.rule-art{aspect-ratio:240/140;background:radial-gradient(60% 70% at 50% 60%, #a97bff38, transparent 70%), radial-gradient(2px 2px at 18% 22%, var(--candle) 50%, transparent 51%), radial-gradient(1.5px 1.5px at 78% 16%, var(--bone) 50%, transparent 51%), radial-gradient(1.5px 1.5px at 88% 62%, var(--candle) 50%, transparent 51%), radial-gradient(2px 2px at 8% 70%, var(--bone) 50%, transparent 51%), var(--void);border:2px solid var(--ink);border-radius:14px;width:100%;position:relative;overflow:hidden;box-shadow:inset 0 -18px #43325f8c;container-type:inline-size}.ra-piece{position:absolute;transform:translate(-50%,-50%)}.ra-in{position:relative}.ra-in>svg,.ra-in>.sticker{width:100%;height:auto;display:block;overflow:visible}.ra-in>.icon{width:100%;height:auto;color:var(--bone)}.ra-overlay{z-index:0;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.fig{width:100%;height:auto;display:block;position:relative;overflow:visible}.ra-glow{aspect-ratio:1;background:radial-gradient(circle,#ffd45e8c,#0000 65%);border-radius:50%;width:170%;animation:2.2s ease-in-out infinite ra-glow;position:absolute;top:55%;left:50%;transform:translate(-50%,-50%)}.ra-glow.slime{background:radial-gradient(circle,#8ff25c80,#0000 65%)}@keyframes ra-glow{50%{opacity:.45;transform:translate(-50%,-50%)scale(.85)}}.ra-gold{color:var(--candle)!important}.ra-pill,.ra-row{background:var(--crypt);border:1.5px solid var(--ink);box-shadow:.15em .15em 0 var(--ink);white-space:nowrap;color:var(--bone);border-radius:999px;justify-content:space-between;align-items:center;gap:.4em;padding:.3em .7em;font-size:3.6cqw;font-weight:700;display:flex}.ra-pill i,.ra-row i{border:1.5px solid var(--ink);border-radius:50%;width:.7em;height:.7em;margin-right:.35em;display:inline-block}.ra-pill b,.ra-row b{font-family:var(--display);color:var(--candle);font-weight:900}.ra-pill.dim{opacity:.75}.ra-row{border-radius:.6em}.ra-row>span{align-items:center;display:inline-flex}.ra-row s{color:var(--dust);text-decoration-thickness:2px}.ra-up{color:var(--slime);animation:ra-up .5s var(--spring) calc(var(--d) + .8s) both;display:inline-block}@keyframes ra-up{0%{opacity:0;transform:scale(2.2)}}.ra-plus,.ra-count,.ra-tick,.ra-q{aspect-ratio:1;border:2px solid var(--ink);font-family:var(--display);box-shadow:.1em .1em 0 var(--ink);border-radius:50%;place-items:center;font-size:5cqw;font-weight:900;line-height:1;display:grid}.ra-plus{background:var(--slime);color:var(--ink);font-size:4cqw}.ra-count{background:var(--hex);color:var(--bone)}.ra-tick{background:var(--slime);color:var(--ink)}.ra-q{background:var(--candle);color:var(--ink)}.ra-stamp{text-align:center;font-family:var(--display);color:var(--bone);background:var(--pumpkin);border:2px solid var(--ink);box-shadow:.08em .08em 0 var(--ink);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:.3em;margin:0 auto;padding:.05em .45em .05em .35em;font-size:7cqw;font-style:italic;font-weight:900;display:table}.ra-slip{aspect-ratio:1.6;background:var(--bone);border:1.5px solid var(--ink);color:var(--ink);box-shadow:.1em .1em 0 var(--ink);border-radius:.2em;place-items:center;font-size:3.4cqw;font-weight:800;display:grid}.ra-slip i{background:repeating-linear-gradient(90deg, var(--vein) 0 30%, transparent 30% 38%);border-radius:2px;width:60%;height:18%}.ra-bubble{text-align:center;background:var(--bone);color:var(--ink);border:2px solid var(--ink);border-radius:1em;padding:.25em .4em;font-size:4.2cqw;font-style:italic;font-weight:800;position:relative}.ra-bubble:after{content:"";background:var(--bone);border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);width:.7em;height:.7em;position:absolute;bottom:-.45em;left:30%;transform:rotate(45deg)}.ra-phone{aspect-ratio:9/16;background:var(--crypt);border:2.5px solid var(--ink);box-shadow:.25em .25em 0 var(--ink), inset 0 0 0 .25em var(--tomb);border-radius:1.1em;flex-direction:column;gap:.5em;padding:.9em .55em;font-size:2.6cqw;display:flex}.ra-phone-bar{background:var(--ink);border-radius:999px;align-self:center;width:40%;height:.4em}.ra-phone-role{text-align:center;background:var(--tomb);border:1.5px solid var(--candle);color:var(--candle);animation:ra-blink 2.4s ease-in-out calc(var(--d) + .8s) infinite;border-radius:.6em;justify-content:center;align-items:center;gap:.3em;padding:.6em .2em;font-size:1em;font-weight:800;line-height:1.1;display:flex}.ra-phone-role .icon{width:1.3em;height:1.3em}@keyframes ra-blink{50%{box-shadow:0 0 0 .25em #ffd45e40}}.ra-phone-line{background:var(--vein);border-radius:999px;height:.6em}.ra-phone-line.short{width:60%}.ra-phone-btn{background:var(--slime);border:1.5px solid var(--ink);border-radius:.5em;height:1.6em;margin-top:auto}.ra-node{aspect-ratio:1;background:var(--crypt);border:2px solid var(--ink);box-shadow:.12em .12em 0 var(--ink);color:var(--slime);border-radius:50%;place-items:center;font-size:4cqw;display:grid}.ra-node .icon{width:62%;height:62%}.ra-ring{aspect-ratio:124/104;border:2.5px dashed var(--vein);animation:ra-pop .5s var(--spring) both, ra-spin 24s linear infinite;border-radius:50%}.ra-big{text-align:center;font-family:var(--display);font-variation-settings:"SOFT" 100, "WONK" 1;color:var(--candle);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:.06em .06em 0 var(--hex);font-size:13cqw;font-style:italic;font-weight:900;line-height:1}.ra-arrow-line{stroke-dasharray:.06 .05;stroke-dashoffset:1px;animation:ra-draw .6s var(--swift) var(--d) both}.ra-arrow-head{opacity:0;animation:ra-fade .2s ease-out calc(var(--d) + .5s) both}@keyframes ra-draw{0%{stroke-dasharray:0 1}to{stroke-dasharray:.06 .05;stroke-dashoffset:0}}@keyframes ra-fade{to{opacity:1}}.ra-pop{animation:ra-pop .5s var(--spring) var(--d) both}.ra-drop{animation:drop-in .7s var(--spring) var(--d) both}.ra-slap{animation:ra-slap .5s var(--spring) var(--d) both}.ra-slam{animation:slam .55s var(--spring) var(--d) both}.ra-rise{animation:rise-in .6s var(--spring) var(--d) both}.ra-slide{animation:ra-slide .45s var(--swift) var(--d) both}.ra-stampin{animation:stamp .45s var(--spring) var(--d) both}.ra-stampin>.ra-stamp{transform:rotate(-8deg)}@keyframes ra-pop{0%{opacity:0;transform:scale(.3)translateY(20%)}to{opacity:1;transform:none}}@keyframes ra-slap{0%{opacity:0;transform:rotate(40deg)scale(2)}to{opacity:1;transform:none}}@keyframes ra-slide{0%{opacity:0;transform:translate(20%)}to{opacity:1;transform:none}}.ra-float{animation:drop-in .7s var(--spring) var(--d) both, float 4s ease-in-out calc(var(--d) + .7s) infinite}.ra-bob{animation:ra-pop .5s var(--spring) var(--d) both, ra-bob 1.8s ease-in-out calc(var(--d) + .5s) infinite}.ra-slap.ra-bob{animation:ra-slap .5s var(--spring) var(--d) both, ra-bob 1.8s ease-in-out calc(var(--d) + .5s) infinite}@keyframes ra-bob{50%{transform:translateY(-8%)}}.ra-twinkle{animation:ra-pop .5s var(--spring) var(--d) both, twinkle 2.4s ease-in-out calc(var(--d) + .5s) infinite}.ra-twinkle>.icon{color:var(--candle)}.ra-look{animation:ra-pop .5s var(--spring) var(--d) both, ra-look 3s ease-in-out calc(var(--d) + .5s) infinite}.ra-look>.icon{color:var(--hex)}@keyframes ra-look{30%{transform:translate(-12%)}70%{transform:translate(12%)}}.ra-peek{animation:ra-pop .5s var(--spring) var(--d) both, ra-peek 2.6s ease-in-out calc(var(--d) + .6s) infinite;transform-origin:50% 100%}@keyframes ra-peek{40%,60%{transform:rotate(-14deg)translate(-10%)}}.ra-lean-r{animation:ra-pop .5s var(--spring) var(--d) both, ra-lean 2.2s ease-in-out calc(var(--d) + .5s) infinite;transform-origin:50% 100%}@keyframes ra-lean{40%,70%{transform:rotate(12deg)}}.ra-shake{animation:ra-pop .5s var(--spring) var(--d) both, ra-shake 2.4s ease-in-out calc(var(--d) + 1.4s) infinite}@keyframes ra-shake{0%,20%,to{transform:none}5%,15%{transform:translate(-6%)rotate(-4deg)}10%{transform:translate(6%)rotate(4deg)}}.ra-chosen{animation:ra-pop .5s var(--spring) var(--d) both, ra-chosen 1.2s var(--spring) calc(var(--d) + 1.1s) both}@keyframes ra-chosen{50%{transform:scale(1.18)rotate(-4deg)}}.ra-point{animation:rise-in .6s var(--spring) var(--d) both, ra-point 1.4s ease-in-out calc(var(--d) + .6s) infinite}@keyframes ra-point{50%{transform:translateY(-10%)}}.ra-jolt{animation:ra-pop .5s var(--spring) var(--d) both, ra-jolt .5s ease-in-out 1.05s both}@keyframes ra-jolt{30%{transform:translateY(-14%)rotate(-6deg)}60%{transform:translateY(4%)rotate(4deg)}}.fig.lose .fig-crown{transform-box:fill-box;transform-origin:50%;animation:.8s ease-in 1.3s both ra-lose-crown}.fig.lose .fig-badge{transform-box:fill-box;transform-origin:50%;animation:.5s ease-in 1.3s both ra-lose}@keyframes ra-lose-crown{to{opacity:0;transform:translate(60%,-140%)rotate(70deg)}}@keyframes ra-lose{to{opacity:0;transform:scale(0)}}.ra-spin{animation:ra-pop .5s var(--spring) var(--d) both, ra-flipglass 3s var(--spring) calc(var(--d) + .5s) infinite}.ra-spin>.icon{color:var(--candle)}@keyframes ra-flipglass{0%,70%{transform:none}85%,to{transform:rotate(180deg)}}@keyframes ra-spin{to{rotate:360deg}}.ra-crowned .fig-crown{animation:ra-crown .6s var(--spring) calc(var(--d) + .7s) both;transform-box:fill-box;transform-origin:bottom}@keyframes ra-crown{0%{opacity:0;transform:translateY(-160%)rotate(-20deg)}}.ra-crowned .ra-glow{animation:ra-fade .4s ease-out calc(var(--d) + 1s) both, ra-glow 2.2s ease-in-out calc(var(--d) + 1.4s) infinite;opacity:0}.ra-mystery .fig-badge{animation:ra-badge 3s ease-in-out calc(var(--d) + .8s) infinite;transform-box:fill-box;transform-origin:50%}@keyframes ra-badge{0%,to{opacity:1}50%{opacity:.15}}.ra-ascend{animation:ra-ascend 1.1s var(--spring) var(--d) both, float 3s ease-in-out calc(var(--d) + 1.1s) infinite}@keyframes ra-ascend{0%{opacity:0;transform:translateY(85%)scale(.7)}to{opacity:1;transform:none}}.ra-flip{animation:ra-flip .7s var(--spring) var(--d) both}@keyframes ra-flip{0%{opacity:0;transform:translate(-150%,140%)rotateY(180deg)scale(.5)}}.ra-fly{opacity:0;animation:ra-fly 3.2s cubic-bezier(.45, 0, .55, 1) var(--d) infinite}@keyframes ra-fly{0%{opacity:0;transform:translate(calc(var(--dx) * 1cqw), calc(var(--dy) * 1cqw)) rotate(-20deg) scale(.6)}10%{opacity:1}45%{opacity:1;transform:translate(calc(var(--dx) * .4cqw), calc(-10cqw)) rotate(160deg) scale(1)}70%{opacity:0;transform:translateY(4cqw)rotate(340deg)scale(.5)}to{opacity:0}}.rule-art:not([data-play]) *{animation-play-state:paused!important}.rules-show,.rules-slide{flex-direction:column;gap:14px;display:flex}.rules-slide .rule-art{animation:card-in .45s var(--swift) both}.rules-text>*{animation:rise-in .45s var(--swift) both}.rules-text>:nth-child(2){animation-delay:80ms}.rules-text>:nth-child(3){animation-delay:.2s}.rules-text>:nth-child(n+4){animation-delay:.32s}.rule-kicker{text-transform:uppercase;letter-spacing:.14em;color:var(--hex);font-size:.75rem;font-weight:700}.rule-title{font-family:var(--display);font-variation-settings:"SOFT" 100, "WONK" 1;color:var(--slime);letter-spacing:0;margin:2px 0 8px;font-size:1.9rem;font-style:italic;font-weight:900;line-height:1.05;display:block}.rule-body{margin:0 0 8px;font-size:1.02rem;line-height:1.5}.rule-body strong{color:var(--candle)}.rule-note{color:var(--dust);border-left:3px solid var(--potion);margin:8px 0 0;padding-left:10px;font-size:.85rem}.rules-progress{flex-direction:column;gap:8px;display:flex}.rules-dots{gap:4px;display:flex}.rules-dots>span{background:var(--void);border:1px solid var(--vein);border-radius:999px;flex:1;height:6px;position:relative;overflow:hidden}.rules-dots>span.done{background:var(--slime);border-color:var(--slime)}.rules-dots>span.now{border-color:var(--slime)}.rules-dots>span>i{background:var(--slime);transition:width .12s linear;position:absolute;inset:0 auto 0 0}.rules-status{text-align:center}.rules-actions{flex-wrap:wrap}.rules-actions .ghost{flex:1}.rules-actions .primary{flex-basis:100%}.rules-show.big{flex:1;justify-content:center;gap:4vh}.rules-show.big .rules-slide{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:4vw;display:grid}.rules-show.big .rule-art{box-shadow:8px 8px 0 var(--ink), inset 0 -10% 0 #43325f8c;border-width:3px;border-radius:24px}.rules-show.big .rule-kicker{font-size:clamp(.9rem,1.4vw,1.4rem)}.rules-show.big .rule-title{-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:4px 4px 0 var(--hex);margin-bottom:2vh;font-size:clamp(2.6rem,5.5vw,5.4rem)}.rules-show.big .rule-body{margin-bottom:1.4vh;font-size:clamp(1.2rem,2.1vw,2.2rem);line-height:1.4}.rules-show.big .rule-note{font-size:clamp(.95rem,1.4vw,1.4rem)}.rules-show.big .rules-dots>span{height:10px}.rules-show.big .rules-status{font-size:clamp(.9rem,1.2vw,1.2rem)}@media (width<=800px){.rules-show.big .rules-slide{grid-template-columns:1fr}}.phase-meta-end,.room-header-end{align-items:center;gap:10px;display:inline-flex}.room-header-end{align-items:flex-end}.menu-button{background:var(--tomb);border:1.5px solid var(--vein);width:40px;height:40px;color:var(--candle);transition:transform .15s var(--spring), border-color .2s;border-radius:12px;flex-shrink:0;place-items:center;padding:0;display:grid}.menu-button .icon{width:24px;height:24px}.menu-button:active{transform:scale(.9)}@media (hover:hover){.menu-button:hover{border-color:var(--candle)}}.menu-layer{z-index:50;pointer-events:none;position:fixed;inset:0}.menu-layer.open{pointer-events:auto}.menu-backdrop{opacity:0;background:#0c0812b3;transition:opacity .3s;position:absolute;inset:0}.menu-layer.open .menu-backdrop{opacity:1}.menu-sheet{background:var(--void);border-left:2px solid var(--ink);width:min(100%,520px);transition:transform .42s var(--swift), visibility 0s linear .42s;visibility:hidden;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(104%);box-shadow:-10px 0 40px #00000080}.menu-layer.open .menu-sheet{visibility:visible;transition:transform .45s var(--spring), visibility 0s;transform:none}.menu-head{padding:max(14px, env(safe-area-inset-top)) 16px 12px;border-bottom:1.5px solid var(--vein);background:var(--crypt);align-items:center;gap:10px;display:flex}.menu-tabs{isolation:isolate;background:var(--void);border:1.5px solid var(--vein);border-radius:999px;flex:1;grid-template-columns:1fr 1fr;padding:4px;display:grid;position:relative}.menu-tabs:before{content:"";z-index:-1;background:var(--bone);width:calc(50% - 4px);box-shadow:2px 2px 0 var(--ink);transition:transform .38s var(--spring);border-radius:999px;position:absolute;top:4px;bottom:4px;left:4px}.menu-tabs[data-active=game]:before{transform:translate(100%)}.menu-tabs .tab{background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:8px;display:inline-flex}.menu-tabs .tab.active{color:var(--ink);background:0 0}.menu-close{background:var(--tomb);border:1.5px solid var(--vein);width:40px;height:40px;color:var(--bone);border-radius:50%;flex-shrink:0;place-items:center;padding:0;display:grid}.menu-close .icon{width:20px;height:20px}.menu-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px 16px max(24px, env(safe-area-inset-bottom));animation:rise-in .3s var(--swift) both;flex:1;overflow-y:auto}.rules-list{counter-reset:rule;flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.rules-item{flex-direction:column;gap:12px;padding:14px;display:flex}.rules-item .rule-title{font-size:1.5rem}.rules-item .rules-text>*{animation:none}.game-info{flex-direction:column;gap:14px;display:flex}.info-rows{flex-direction:column;gap:8px;margin:0;display:flex}.info-rows>div{border-bottom:1px solid var(--vein);justify-content:space-between;gap:12px;padding-bottom:8px;display:flex}.info-rows>div:last-child{border-bottom:none;padding-bottom:0}.info-rows dt{color:var(--dust)}.info-rows dd{color:var(--candle);font-variant-numeric:tabular-nums;margin:0;font-weight:700}.game-info p{margin:0;line-height:1.45}.menu-title{font-family:var(--display);color:var(--slime);flex:1;align-items:center;gap:8px;margin:0;font-size:1.5rem;font-style:italic;font-weight:900;display:flex}.menu-title .icon{color:var(--hex)}.home-rules{margin-top:-10px}.menu-sheet{text-align:left}@media (width<=540px){.menu-layer.open .menu-sheet{transition:transform .45s cubic-bezier(.3,1.25,.6,1),visibility}.menu-sheet{box-shadow:none}}@media (prefers-reduced-motion:reduce){.menu-sheet,.menu-backdrop{transition:none!important}.rule-art *,.rules-text>*{opacity:1!important;animation:none!important}.ra-fly{display:none}}.coin{--coin-line:2.1;vertical-align:middle;flex-shrink:0;width:2.2em;height:2.2em;display:inline-block;overflow:visible;transform:rotate(-6deg)}.coven-name{align-items:center;gap:.55em;display:inline-flex}.role-coin{width:72px;height:72px}.role-text{flex:1;min-width:0}.role-banner .role-art,.role-banner .role-icon{margin-left:auto}.role-collapse[data-open=true] .role-coin{animation:slap-in .5s var(--spring) .12s both}.coin-big{width:124px;height:124px;margin:4px auto 8px;display:block}.tv-main .coin-big{width:clamp(140px,14vw,240px);height:auto}.results-coins{justify-content:center;gap:12px;display:flex}.final-coven h2.coven-name{display:flex}.final-coven h2 .count{margin-left:auto}.coin-cracked{filter:grayscale()brightness(.75);width:84px;height:84px;transform:rotate(-12deg)}.coin-spin{animation:coin-spin 1.1s var(--spring) both}.results-coins .coin-spin{animation:coin-spin 1.1s var(--spring) both, float 4s ease-in-out 1.1s infinite}@keyframes coin-spin{0%{opacity:0;transform:perspective(400px)rotateY(-540deg)scale(.4)}60%{opacity:1}to{transform:perspective(400px)rotateY(0)scale(1)rotate(-6deg)}}.reveal .coin-cracked{animation:slam .55s var(--spring) 1.2s both}@media (prefers-reduced-motion:reduce){.coin-spin,.results-coins .coin-spin,.reveal .coin-cracked{animation:none}}.moon{vertical-align:middle;flex-shrink:0;width:2em;height:2em;display:inline-block;overflow:visible;transform:rotate(-8deg)}.moon-big{width:110px;height:110px;animation:coin-spin 1s var(--spring) both, float 4s ease-in-out 1s infinite;margin:0 auto 6px;display:block}.my-circle{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.my-circle p{margin:6px 0 0}.circle-name{font-family:var(--display);font-variation-settings:"SOFT" 100, "WONK" 1;color:var(--candle);margin:0;font-style:italic;font-weight:900;line-height:1.05}.my-circle .circle-name{-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;text-shadow:3px 3px 0 var(--hex);font-size:2.2rem}.circle-clock{font-variant-numeric:tabular-nums;color:var(--slime)}.circles-board{flex-direction:column;gap:2vh;display:flex}.circles-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,15vw),1fr));gap:1.4vw;margin:0;padding:0;list-style:none;display:grid}.circle-card{background:var(--crypt);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);border-radius:var(--radius);animation:card-in .5s var(--spring) both;padding:1.4vh 1vw}.circle-card-head{align-items:center;gap:.5em;font-size:clamp(1rem,1.7vw,1.8rem);display:flex}.circle-card .moon{width:1.9em;height:1.9em}.circle-card .chips{margin-top:.8vh}.host-circles{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding:8px 0;display:flex}.host-circles-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.ra-circle{aspect-ratio:96/48;border:2.5px dashed var(--vein);animation:ra-pop .5s var(--spring) var(--d) both;border-radius:50%}@media (prefers-reduced-motion:reduce){.moon-big,.circle-card{animation:none}}.host-actions{flex-wrap:wrap}.you-name-row{justify-content:flex-end;align-items:center;gap:6px;display:flex}.you-name-row .you-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.you-edit{background:var(--tomb);border:1.5px solid var(--vein);width:28px;height:28px;color:var(--candle);border-radius:9px;flex-shrink:0;place-items:center;padding:0;transition:border-color .2s,transform .1s;display:grid}.you-edit .icon{width:16px;height:16px}.you-edit:hover{border-color:var(--dust)}.you-edit:active{transform:scale(.9)}.rename-actions{gap:8px;display:flex}.rename-actions .primary{flex:1}.edit-name{background:var(--tomb);border:1.5px solid var(--vein);width:38px;height:38px;color:var(--candle);border-radius:12px;flex-shrink:0;place-items:center;padding:0;transition:border-color .2s,transform .1s;display:grid}.edit-name .icon{width:20px;height:20px}.edit-name:hover{border-color:var(--dust)}.edit-name:active{transform:scale(.92)}.modal-layer{z-index:60;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-backdrop{background:#0c0812bf;animation:.2s both fade-in;position:absolute;inset:0}.modal{border:2px solid var(--ink);width:min(100%,420px);box-shadow:6px 6px 0 var(--ink), 0 20px 60px #00000080;animation:modal-in .35s var(--spring) both;margin:0;position:relative}.modal-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-head h2{align-items:center;gap:8px;margin:0;display:inline-flex}.modal-head h2 .icon{width:1em;height:1em;color:var(--candle)}@keyframes modal-in{0%{opacity:0;transform:translateY(16px)scale(.94)rotate(-1deg)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.modal,.modal-backdrop{animation:none}}.you{min-width:0}.room-header>:first-child{flex-shrink:0}.room-header-end{min-width:0}
