.guide{max-width:46rem;margin:0 auto;padding:2rem 1.25rem 4rem;line-height:1.65}.guide-head h1{font-size:clamp(1.8rem,5vw,2.6rem);margin:.75rem 0 .25rem}.guide-back{font-size:.9rem;text-decoration:none;opacity:.85}.guide-tagline{opacity:.75;margin:0 0 .5rem}.guide-pdf{font-size:.95rem;margin:0 0 1rem}.guide-toc{display:flex;flex-wrap:wrap;gap:.4rem 1rem;padding:.9rem 1rem;margin-bottom:1.5rem;border:1px solid rgba(139,124,247,.35);border-radius:.75rem;font-size:.92rem}.guide-toc a{text-decoration:none}.guide section{margin-bottom:2.25rem}.guide h2{font-size:1.4rem;margin:0 0 .6rem;padding-bottom:.3rem;border-bottom:1px solid rgba(139,124,247,.3)}.guide h3{font-size:1.05rem;margin:1.1rem 0 .4rem}.guide ul{padding-left:1.2rem;margin:.4rem 0}.guide li{margin:.35rem 0}.guide code,.guide kbd{font-size:.9em;padding:.1em .4em;border-radius:.3em;background:#8b7cf726}.guide kbd{border:1px solid rgba(139,124,247,.4)}.guide blockquote{margin:.75rem 0;padding:.75rem 1rem;border-left:3px solid #8b7cf7;background:#8b7cf714;border-radius:0 .5rem .5rem 0;font-style:italic}.guide-table-wrap{overflow-x:auto;margin:.6rem 0}.guide table{width:100%;border-collapse:collapse;font-size:.92rem}.guide th,.guide td{text-align:left;padding:.45rem .6rem;border-bottom:1px solid rgba(139,124,247,.2);vertical-align:top}.guide th{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;opacity:.8}.guide-setting-name{white-space:nowrap;font-weight:600}.guide-scenario{padding:1.25rem;border:1px solid rgba(63,217,197,.4);border-radius:1rem}.guide-scenario h2{border-bottom-color:#3fd9c566}.guide-foot{margin-top:2rem;padding-top:1rem;border-top:1px solid rgba(139,124,247,.3);font-size:.92rem;opacity:.85}.landing-guide-link{display:inline-block;margin-top:1.5rem;font-size:.9rem;opacity:.75;text-decoration:none}.landing-guide-link:hover{opacity:1}.host-guide-link{font-size:.85rem;opacity:.8;text-decoration:none}.host-view{min-height:100dvh;display:flex;flex-direction:column;padding:1rem 2rem 2rem;gap:1rem}.host-view--waiting{align-items:center;justify-content:center;text-align:center}.host-header{display:flex;align-items:baseline;gap:1.25rem;flex-wrap:wrap;font-size:clamp(1rem,1.8vw,1.4rem);opacity:.9}.host-header-brand{font-weight:700}.host-header-code{margin-left:auto;letter-spacing:.08em}.host-main{flex:1;display:flex;flex-direction:column}.host-main>section{flex:1;display:flex;flex-direction:column;gap:1.25rem}.host-title{font-size:clamp(1.6rem,3.5vw,2.6rem);margin:0;text-align:center}.host-subtitle{font-size:clamp(1rem,2vw,1.5rem);text-align:center;margin:0;opacity:.8}.host-kicker{font-size:clamp(1.1rem,2.2vw,1.7rem);text-transform:uppercase;letter-spacing:.2em;text-align:center;margin:0;opacity:.85}.host-panel{background:#ffffff0f;border-radius:14px;padding:1rem 1.25rem}.host-panel-title{margin:0 0 .6rem;font-size:clamp(1rem,1.8vw,1.3rem)}.host-chip{display:inline-flex;align-items:center;gap:.3em;background:#ffffff1a;border-radius:999px;padding:.2em .75em;font-size:clamp(.9rem,1.6vw,1.2rem);white-space:nowrap}.host-chip--free{opacity:.6;font-style:italic}.host-team-tag{display:inline-flex;align-items:center;gap:.4em;font-weight:600}.host-team-tag-emoji{font-size:1.3em}.host-empty{text-align:center;opacity:.75;padding:1.5rem 0}.host-empty-title{font-size:clamp(1.1rem,2vw,1.5rem);margin:0}.host-empty-hint{margin:.4rem 0 0}.host-controls{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;margin-top:auto;padding-top:1rem}.host-ready-check{white-space:nowrap}.host-ready-pending{opacity:.65;white-space:nowrap}.host-ready-counter{font-size:clamp(1rem,2vw,1.4rem)}.host-glow{animation:host-glow-pulse 1.2s ease-in-out infinite}@keyframes host-glow-pulse{0%,to{box-shadow:0 0 #7c4dffb3}50%{box-shadow:0 0 0 12px #7c4dff00}}.host-lobby-main{display:grid;grid-template-columns:minmax(320px,1fr) minmax(280px,1.1fr);gap:1.5rem;align-items:start}@media(max-width:900px){.host-lobby-main{grid-template-columns:1fr}}.host-lobby-join{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem}.host-lobby-qr{background:#fff;border-radius:18px;padding:.6rem;display:inline-flex}.host-lobby-qr canvas{max-width:min(60vw,420px);height:auto!important}.host-lobby-code{font-size:clamp(2.5rem,7vw,5rem);font-weight:800;letter-spacing:.25em;margin:0}.host-lobby-url{font-size:clamp(1rem,2vw,1.5rem);margin:0;opacity:.85;word-break:break-all}.host-lobby-ready{font-size:clamp(1rem,2vw,1.4rem);margin:.25rem 0 0;opacity:.8}.host-lobby-side{display:flex;flex-direction:column;gap:1rem}.host-roster-list,.host-teamlist-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.host-roster-item{display:flex;align-items:center;gap:.6rem;font-size:clamp(1rem,1.8vw,1.35rem);padding:.25rem .5rem;border-radius:10px;flex-wrap:wrap}.host-roster-item.is-newest{background:#7c4dff59;outline:2px solid rgba(124,77,255,.8)}.host-roster-item.is-offline{opacity:.45}.host-roster-emoji{font-size:1.4em}.host-roster-name{font-weight:600}.host-newest-tag{font-size:.85em;opacity:.9}.host-teamlist-row{display:flex;align-items:center;gap:.75rem;font-size:clamp(1rem,1.8vw,1.35rem);padding:.2rem .5rem}.host-teamlist-count{opacity:.75;margin-left:auto}.host-lobby-controls{display:flex;gap:1rem;flex-wrap:wrap;align-items:stretch;margin-top:auto}.host-settings-fields,.host-autoteams-row{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.host-settings-fields{align-items:flex-start}.host-numfield{display:flex;flex-direction:column;gap:.25rem;font-size:.95rem}.host-numfield-input{width:6.5rem;font-size:1.1rem;text-align:center}.host-numfield-input.is-invalid{outline:2px solid var(--red);background:#ff6b7a1f}.host-numfield-warn{font-size:.8rem;color:var(--red)}.host-numfield-hint{font-size:.8rem;color:var(--text-mute)}.host-deal{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;flex:1;min-width:240px}.host-deal-btn{font-size:clamp(1.3rem,2.6vw,2rem);padding:1rem 2.2rem}.host-deal-hint{margin:0;opacity:.7;text-align:center}.host-dealing-teams{display:flex;flex-direction:column;gap:1rem;overflow-y:auto}.host-dealing-team{border-radius:14px;padding:.75rem 1rem;background:#ffffff0d}.host-dealing-team.is-ready{outline:2px solid rgba(120,220,150,.6)}.host-dealing-teamhead{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;font-size:clamp(1rem,2vw,1.4rem);margin-bottom:.5rem}.host-mulligan{font-size:.85em;opacity:.85}.host-mulligan.is-used{opacity:.55;text-decoration:line-through}.host-dealing-hand{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:.25rem}.host-dealing-nohand{opacity:.7;font-style:italic}.host-start-btn{font-size:clamp(1.3rem,2.6vw,2rem);padding:1rem 2.2rem}.host-sprint{justify-content:center;text-align:center}.host-sprint-clock{display:flex;justify-content:center}.host-sprint-clock .countdown-big{font-size:clamp(4rem,18vw,14rem);font-weight:800}.host-team-strip{display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap}.host-sprint-noteams{text-align:center;opacity:.75}.host-intermission{justify-content:center;align-items:center;text-align:center}.host-pencils-down{font-size:clamp(2.6rem,9vw,6.5rem);font-weight:900;letter-spacing:.04em;line-height:1;margin:0;color:var(--amber);text-shadow:0 0 38px rgba(251,191,36,.45)}.host-intermission-clock{display:flex;justify-content:center}.host-intermission-clock .countdown-big .countdown-time{font-size:clamp(3rem,13vw,9rem)}.host-runorder-wrap{width:min(56rem,100%);min-height:0;display:flex;flex-direction:column;gap:.6rem}.host-runorder{list-style:none;margin:0;padding:0;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.45rem}.host-runorder-row{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;padding:.5rem 1.1rem;text-align:left;font-size:clamp(1.05rem,2.1vw,1.6rem);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}.host-runorder-num{font-variant-numeric:tabular-nums;font-weight:800;color:var(--text-mute);min-width:1.6ch}.host-runorder-emoji{font-size:1.5em;line-height:1}.host-runorder-name{font-weight:700}.host-runorder-tag{margin-left:auto;text-align:right;white-space:nowrap;font-size:.72em;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan)}.host-runorder-row.is-first{font-size:clamp(1.35rem,3.2vw,2.3rem);padding:.6rem 1.2rem;border-color:var(--magenta);background:linear-gradient(90deg,rgba(255,61,187,.22),var(--surface) 70%);animation:host-first-breathe 2.6s ease-in-out infinite}.host-runorder-row.is-first .host-runorder-num,.host-runorder-row.is-first .host-runorder-tag{color:var(--magenta)}.host-runorder-math{margin:0;opacity:.75;font-size:.95em}@keyframes host-first-breathe{0%,to{box-shadow:0 0 20px #ff3dbb40}50%{box-shadow:0 0 42px #ff3dbb80}}.host-presenting{text-align:center}.host-presenting-team{font-size:clamp(2.2rem,6.5vw,5rem);margin:0;line-height:1.1}.host-presenting-emoji{font-size:1.15em}.host-presenting-clock{display:flex;justify-content:center}.host-presenting-clock .countdown-big{font-size:clamp(2.5rem,9vw,6.5rem);font-weight:800}.host-presenting-hand{display:flex;justify-content:center;gap:.75rem;flex-wrap:wrap}.host-presenting-nohand{opacity:.7;font-style:italic}.host-upnext{display:flex;justify-content:center;align-items:center;gap:.6rem;flex-wrap:wrap}.host-upnext-label{opacity:.75}.host-upnext-done{text-align:center;opacity:.8;margin:0}.host-presenting-count{opacity:.8;min-width:5.5rem}.host-judging{justify-content:center;text-align:center}.host-judging-headline{font-size:clamp(2.2rem,7vw,5rem);margin:0}.host-judging-progress{max-width:56rem;width:100%;margin:0 auto}.host-progress{height:clamp(1.5rem,4vh,2.5rem);border-radius:999px;background:#ffffff1f;overflow:hidden}.host-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#7c4dff,#b388ff);transition:width .5s ease}.host-progress-fill.is-full{background:linear-gradient(90deg,#43d17c,#a5f3c0)}.host-judging-count{font-size:clamp(1.2rem,3vw,2rem);margin:.6rem 0 0}.host-judging-allin{margin:.4rem 0 0;opacity:.9}.host-judging-categories{display:flex;justify-content:center;align-items:center;gap:.6rem;flex-wrap:wrap}.host-judging-cat-label{opacity:.75}.host-awards{gap:1.5rem;overflow-y:auto}.host-podium{display:flex;justify-content:center;align-items:flex-end;gap:1rem}.host-podium-place{display:flex;flex-direction:column;align-items:center;gap:.3rem;background:#ffffff12;border-radius:14px 14px 0 0;padding:1rem 1.5rem;min-width:12rem}.host-podium-place--1{order:2;padding-bottom:3.5rem;background:#7c4dff4d}.host-podium-place--2{order:1;padding-bottom:2.25rem}.host-podium-place--3{order:3;padding-bottom:1.25rem}.host-podium-medal{font-size:clamp(1.8rem,4vw,3rem)}.host-podium-team{font-size:clamp(1.1rem,2.4vw,1.8rem);font-weight:700;text-align:center}.host-podium-points{font-size:clamp(1rem,2vw,1.4rem);opacity:.85}.host-winner-breakdown{display:flex;justify-content:center;align-items:center;gap:.6rem;flex-wrap:wrap}.host-winner-breakdown-label,.host-winner-voters{opacity:.75}.host-badges-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.host-badge-row{display:flex;align-items:center;gap:.75rem;font-size:clamp(1rem,2vw,1.4rem)}.host-badge-emoji{font-size:1.4em}.host-badge-name{font-weight:600}.host-badge-team{opacity:.8;margin-left:auto}.host-awards-leaderboard{max-width:60rem;width:100%;margin:0 auto}.host-awards--final{justify-content:center;text-align:center}.host-final-title{font-size:clamp(2.5rem,8vw,6rem);margin:0}.host-final-champion{font-size:clamp(1.3rem,3vw,2.2rem);margin:0}.host-thanks{font-size:clamp(1rem,2.2vw,1.5rem);opacity:.85;margin:0}.host-projector-toggle{align-self:center;white-space:nowrap}.host-legend{position:fixed;right:clamp(.75rem,3vw,2.5rem);bottom:clamp(.75rem,3vw,2.5rem);z-index:70;width:min(92vw,26rem);padding:var(--sp-4) var(--sp-5);text-align:left;background:#1c1042f7;border:1px solid var(--magenta);border-radius:var(--r-lg);box-shadow:var(--glow-magenta),var(--shadow-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:toast-in .3s cubic-bezier(.2,.9,.3,1.2) backwards}.host-legend-title{margin:0 0 var(--sp-3);font-weight:800;font-size:1.05rem}.host-legend-list{list-style:none;margin:0 0 var(--sp-3);padding:0;display:flex;flex-direction:column;gap:.35rem}.host-legend-list li{display:flex;align-items:baseline;gap:.5rem;font-size:.95rem;color:var(--text-dim)}.host-legend-hint{margin:0 0 var(--sp-3);font-size:.85rem;color:var(--text-mute)}.host-view.host-view--projector{max-width:none;height:100dvh;font-size:clamp(1.15rem,1.5vw,1.8rem);--text-dim: #e7e0ff;--text-mute: #cabffa}.host-view--projector .host-main,.host-view--projector .host-main>section,.host-view--projector .host-lobby-main{min-height:0}.host-view--projector .host-lobby-side{min-height:0;overflow-y:auto}.host-view--projector .host-panel{background:#ffffff1a}.host-view--projector .host-chip{background:#ffffff29;font-size:clamp(1rem,1.9vw,1.6rem)}.host-view--projector .host-header{font-size:clamp(1.05rem,1.7vw,1.6rem);opacity:1}.host-view--projector .host-kicker{font-size:clamp(1.3rem,2.5vw,2.2rem);opacity:1}.host-view--projector .host-title{font-size:clamp(2.2rem,5vw,4rem)}.host-view--projector .host-subtitle{font-size:clamp(1.2rem,2.5vw,2.1rem);opacity:.95}.host-view--projector .host-empty-title{font-size:clamp(1.4rem,2.8vw,2.2rem)}.host-view--projector .countdown-big .countdown-time{font-size:clamp(5rem,min(24vw,34vh),20rem)}.host-view--projector .host-presenting-clock .countdown-big .countdown-time{font-size:clamp(3.5rem,min(14vw,19vh),10rem)}.host-view--projector .host-intermission-clock .countdown-big .countdown-time{font-size:clamp(3rem,min(14vw,13vh),11rem)}.host-view--projector .host-lobby-main{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}.host-view--projector .host-lobby-qr canvas{max-width:min(46vw,42vh,720px)}.host-view--projector .host-lobby-join .host-kicker{order:-2}.host-view--projector .host-lobby-code{order:-1;font-size:clamp(3.5rem,8vw,7rem)}.host-view--projector .host-lobby{padding-bottom:7.5rem}.host-view--projector .host-lobby-controls{position:fixed;left:50%;bottom:clamp(.5rem,2vh,1.5rem);transform:translate(-50%);z-index:40;margin-top:0;width:max-content;max-width:96vw;align-items:center;justify-content:center;gap:var(--sp-5);padding:var(--sp-3) var(--sp-5);font-size:1rem;background:#0c0620ed;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.host-view--projector .host-lobby-controls .host-panel{background:none;padding:0}.host-view--projector .host-lobby-controls .host-panel-title{display:none}.host-view--projector .host-lobby-controls .host-deal{flex:0 0 auto;min-width:0}.host-view--projector .host-lobby-controls .host-deal-hint{display:none}.host-view--projector .host-lobby-controls .host-deal-btn{font-size:1.15rem;padding:.7rem 1.5rem}.host-view--projector .host-lobby-url{font-size:clamp(1.2rem,2.3vw,2rem)}.host-view--projector .host-lobby-ready{font-size:clamp(1.2rem,2.2vw,1.8rem)}.host-view--projector .host-roster-item,.host-view--projector .host-teamlist-row{font-size:clamp(1.05rem,1.9vw,1.5rem)}.host-view--projector .host-intermission{gap:.6rem}.host-view--projector .host-pencils-down{font-size:clamp(2.8rem,min(11vw,10vh),9rem)}.host-view--projector .host-intermission .host-subtitle{font-size:clamp(1.05rem,min(2vw,2.6vh),1.7rem)}.host-view--projector .host-runorder-wrap{width:min(74rem,100%)}.host-view--projector .host-runorder-row{font-size:clamp(1.35rem,2.9vw,2.3rem)}.host-view--projector .host-runorder-row.is-first{font-size:clamp(1.8rem,4.2vw,3.2rem)}.host-view--projector .host-presenting-team{font-size:clamp(2.6rem,min(9vw,13vh),7.5rem)}.host-view--projector .host-judging-headline{font-size:clamp(2.8rem,9vw,6.5rem)}.host-view--projector .host-judging-count{font-size:clamp(1.6rem,3.5vw,2.8rem)}.host-view--projector .host-podium-team{font-size:clamp(1.4rem,3vw,2.4rem)}.host-view--projector .host-podium-points{font-size:clamp(1.2rem,2.4vw,1.9rem)}.host-view--projector .host-final-champion{font-size:clamp(1.7rem,3.6vw,3rem)}.host-view--projector .host-header,.host-view--projector .host-controls,.host-view--projector .host-lobby-controls,.host-view--projector .host-projector-toggle{transition:opacity .5s ease}.host-view--projector.is-idle{cursor:none}.host-view--projector.is-idle .host-header{opacity:.32}.host-view--projector.is-idle .host-controls,.host-view--projector.is-idle .host-lobby-controls,.host-view--projector.is-idle .host-projector-toggle{opacity:0;pointer-events:none}.host-golden{display:flex;flex-direction:column;align-items:center;gap:.4rem}.host-golden-btn{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.7rem 2.4rem;font:inherit;font-weight:900;letter-spacing:.14em;color:#2a1a00;background:radial-gradient(120% 140% at 50% 0%,#ffe89a,var(--gold) 45%,#d99a12);border:3px solid #fff2c2;border-radius:999px;cursor:pointer;box-shadow:0 6px #a8730a,0 0 34px #f5c5428c;transition:transform .1s ease,box-shadow .2s ease}.host-golden-btn:hover:not(:disabled){box-shadow:0 6px #a8730a,0 0 52px #f5c542d9}.host-golden-btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 2px #a8730a}.host-golden-btn:disabled{opacity:.5;cursor:not-allowed}.host-golden-btn-star{font-size:clamp(1.4rem,3vw,2.4rem);line-height:1}.host-golden-btn-label{font-size:clamp(1rem,2vw,1.6rem)}.host-golden-btn-left{font-size:clamp(.7rem,1.2vw,1rem);font-weight:700;letter-spacing:.08em;opacity:.8}.host-golden-stack{display:flex;flex-direction:column;align-items:center;gap:.35rem}.host-golden-hint{margin:0;font-size:.85rem;color:var(--text-mute);text-align:center}.host-golden-confirm{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.9rem 1.4rem;text-align:center;background:#f5c5421f;border:2px solid var(--gold);border-radius:var(--r-lg);box-shadow:var(--glow-gold);animation:host-golden-pulse 1.1s ease-in-out infinite}.host-golden-confirm-q{margin:0;font-size:clamp(1.05rem,2.2vw,1.6rem);font-weight:800}.host-golden-confirm-sub{margin:0;font-size:.9rem;color:var(--text-dim)}.host-golden-confirm-row{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.host-golden-yes{background:linear-gradient(135deg,#ffd75e,#e08a12);color:#2a1a00;box-shadow:var(--glow-gold)}@keyframes host-golden-pulse{0%,to{box-shadow:0 0 #f5c5428c}50%{box-shadow:0 0 0 14px #f5c54200}}.host-golden-note{margin:0;color:var(--gold);font-weight:700;text-align:center}.host-golden-error{margin:0;color:var(--red);font-weight:700;text-align:center}.host-golden-recap{margin:0;text-align:center;color:var(--gold);font-weight:700}.host-golden-flash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;text-align:center;pointer-events:none;background:radial-gradient(80% 60% at 50% 45%,#f5c54252,#05020deb 70%);animation:host-golden-in .35s ease-out}.host-golden-flash-star{margin:0;font-size:clamp(4rem,18vh,12rem);line-height:1}.host-golden-flash-title{margin:0;font-size:clamp(2.2rem,9vw,7rem);font-weight:900;letter-spacing:.06em;color:var(--gold);text-shadow:0 0 48px rgba(245,197,66,.6)}.host-golden-flash-team{margin:0;font-size:clamp(1.4rem,4vw,3rem);font-weight:800}.host-golden-flash-points{margin:0;font-size:clamp(1rem,2vw,1.5rem);color:var(--text-dim)}@keyframes host-golden-in{0%{opacity:0;transform:scale(1.06)}to{opacity:1;transform:none}}.host-presenting-team.is-buzzed{color:var(--gold);text-shadow:0 0 36px rgba(245,197,66,.45)}.host-buzzed-tag{margin-left:.3em}.host-chip.is-buzzed{background:#f5c5423d;box-shadow:0 0 0 1px var(--gold)}.host-podium-place.is-buzzed{box-shadow:var(--glow-gold);border-radius:var(--r-md)}.host-packs{position:relative}.host-packs-toggle{font:inherit;color:inherit;padding:.4rem .8rem;background:#ffffff14;border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;white-space:nowrap}.host-packs-toggle:hover{background:#ffffff24}.host-packs-pop{margin-top:.6rem;display:flex;flex-direction:column;gap:.6rem}.host-packs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.6rem}.host-pack-card{display:flex;flex-direction:column;gap:.4rem;padding:.6rem .75rem;text-align:left;font:inherit;color:inherit;background:#ffffff0d;border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer}.host-pack-card:hover{background:#ffffff1a}.host-pack-card.is-active{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan)}.host-pack-head{display:flex;align-items:center;gap:.4rem;font-weight:700}.host-pack-emoji{font-size:1.3em}.host-pack-check{margin-left:auto;color:var(--cyan)}.host-pack-cats{display:flex;gap:.3rem;flex-wrap:wrap}.host-pack-cat{font-size:.8rem}.host-pack-customhint{font-size:.8rem;color:var(--text-mute)}.host-packs-note{margin:0;font-size:.85rem;color:var(--amber)}.host-custom-cats{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}.host-custom-cats-hint{margin:0;font-size:.85rem;color:var(--text-mute)}.host-custom-cats-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem;width:100%}.host-custom-cat-row{display:flex;gap:.4rem;align-items:center}.host-custom-cat-input{font-size:.95rem}.host-custom-cat-drop{flex:0 0 auto;min-width:2.25rem;min-height:2.25rem;font:inherit;color:inherit;background:#ffffff14;border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer}.host-custom-cat-drop:disabled{opacity:.35;cursor:not-allowed}.host-custom-cats-cap{font-size:.8rem;color:var(--text-mute)}.host-season{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}.host-season-line{margin:0;display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap}.host-season-label{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-mute)}.host-season-name{color:var(--gold)}.host-season-actions{display:flex;gap:.5rem;flex-wrap:wrap}.host-season-form{display:flex;flex-direction:column;gap:.5rem;width:min(24rem,100%)}.host-season-field{display:flex;flex-direction:column;gap:.25rem}.host-season-row{display:flex;gap:.5rem;flex-wrap:wrap}.host-season-confirm{padding:.6rem .8rem;background:#ff6b7a1f;border:1px solid var(--red);border-radius:var(--r-md)}.host-season-warn{margin:0 0 .5rem;font-size:.9rem}.host-season-error{margin:0;color:var(--red);font-size:.9rem}.host-final-season{margin:0;text-align:center;color:var(--text-dim)}.host-view--projector .host-lobby-controls .host-packs,.host-view--projector .host-lobby-controls .host-season{position:static}.host-view--projector .host-lobby-controls .host-packs-pop,.host-view--projector .host-lobby-controls .host-season-form{position:absolute;bottom:calc(100% + .6rem);left:50%;transform:translate(-50%);z-index:45;width:min(48rem,88vw);max-height:58vh;overflow-y:auto;padding:var(--sp-4);background:#0c0620f7;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-soft)}.host-view--projector .host-golden-btn{padding:.8rem 3rem}.host-view--projector .host-golden-hint{font-size:1rem}.host-view--projector .host-golden-note,.host-view--projector .host-golden-recap{font-size:clamp(1.1rem,2.2vw,1.8rem)}.player-view{min-height:100dvh;max-width:34rem;margin:0 auto;display:flex;flex-direction:column;padding-bottom:calc(7rem + env(safe-area-inset-bottom))}.player-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.5rem;min-height:3.25rem;padding:.5rem .75rem;background:var(--bg, #14092e);border-bottom:1px solid rgba(255,255,255,.1)}.player-room-code{font-weight:800;letter-spacing:.12em;padding:.2rem .5rem;border-radius:8px;background:#ffffff1a}.player-identity{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-team-chip{font-size:.85rem;padding:.2rem .55rem;border-radius:999px;background:#7c4dff40;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40%;flex-shrink:0}.player-leave{margin-left:auto;flex-shrink:0;min-width:2.5rem;min-height:2.5rem;border:none;border-radius:10px;background:#ffffff14;color:inherit;font-size:1rem;cursor:pointer}.player-main{display:flex;flex-direction:column;gap:1rem;padding:1rem .9rem}.player-section{display:flex;flex-direction:column;gap:.75rem}.player-section-title{margin:0;font-size:1.25rem}.player-hint{margin:0;font-size:.85rem;opacity:.75}.player-fallback{padding:2.5rem 1.5rem;text-align:center;opacity:.85;line-height:1.5}.player-phase-head{display:flex;flex-direction:column;gap:.35rem}.player-actionbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:1rem .9rem calc(.75rem + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg, #14092e) 70%,transparent);pointer-events:none}.player-actionbar>*{pointer-events:auto}.player-actionbar .btn{width:100%;max-width:32rem;min-height:3.4rem}.player-actionbar-hint{font-size:.75rem;opacity:.6}.player-team-list{display:flex;flex-direction:column;gap:.6rem}.player-team-card{display:flex;align-items:center;gap:.75rem;width:100%;min-height:3.5rem;padding:.7rem .9rem;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:#ffffff0d;color:inherit;text-align:left;font-size:1rem;cursor:pointer}.player-team-card:disabled{opacity:.55;cursor:not-allowed}.player-team-card-emoji{font-size:1.6rem;flex-shrink:0}.player-team-card-main{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.player-team-card-name{font-weight:700}.player-team-card-members{font-size:.8rem;opacity:.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-team-card-slot{flex-shrink:0;font-size:.8rem;font-weight:700;opacity:.85}.player-create-team{display:flex;flex-direction:column;gap:.75rem}.player-field{display:flex;flex-direction:column;gap:.3rem;text-align:left}.player-emoji-row{display:flex;align-items:center;gap:.6rem}.player-emoji-btn{min-width:3rem;min-height:3rem;font-size:1.6rem;border:1px dashed rgba(255,255,255,.3);border-radius:12px;background:transparent;cursor:pointer}.player-create-actions{display:flex;flex-direction:column;gap:.5rem}.player-roster{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.player-roster-row{display:flex;align-items:center;gap:.6rem;padding:.5rem .7rem;border-radius:12px;background:#ffffff0d}.player-roster-face{font-size:1.3rem}.player-roster-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-you-tag{opacity:.6;font-size:.8rem}.player-roster-ready{flex-shrink:0}.player-crowd{text-align:center;margin-top:auto;padding-top:.5rem}.player-crowd-count{margin:0 0 .35rem;font-size:.85rem;opacity:.75}.player-crowd-faces{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem;font-size:1.35rem}.player-face-away{opacity:.35;filter:grayscale(1)}.player-hand-scroll{display:flex;gap:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -.9rem;padding:.5rem .9rem 1rem;-webkit-overflow-scrolling:touch}.player-hand-scroll>*{flex:0 0 min(82vw,24rem);scroll-snap-align:center}.player-mulligan-zone{display:flex;flex-direction:column;align-items:center;gap:.5rem}.player-mulligan-row{display:flex;align-items:center;justify-content:center;gap:.75rem}.player-mulligan-spent{margin:0;font-size:.9rem;opacity:.7;text-align:center}.player-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#0000008c}.player-sheet{position:fixed;left:0;right:0;bottom:0;z-index:31;max-width:34rem;margin:0 auto;padding:1.25rem 1rem calc(1.25rem + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;background:var(--bg, #221347);border-top:1px solid rgba(255,255,255,.15);display:flex;flex-direction:column;gap:.6rem}.player-sheet-title{margin:0;font-size:1.1rem;font-weight:700}.player-sheet-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.4rem}.player-sprint{display:flex;flex-direction:column;gap:.9rem}.player-sprint-top{position:sticky;top:3.25rem;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.4rem .2rem;background:var(--bg, #14092e)}.player-round-chip{font-size:.8rem;font-weight:700;padding:.25rem .6rem;border-radius:999px;background:#ffffff1a}.player-sprint-cards,.player-intermission-cards{display:flex;flex-direction:column;gap:.6rem}.player-sprint-cards .game-card,.player-intermission-cards .game-card{cursor:pointer}.player-pep{margin:.5rem 0 0;text-align:center;font-style:italic;font-size:.9rem;opacity:.7}.player-intermission{display:flex;flex-direction:column;gap:.9rem}.player-pencils{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1rem .9rem 1.1rem;border-radius:16px;text-align:center;background:linear-gradient(150deg,#ff3dbb33,#fbbf241f);border:1px solid rgba(251,191,36,.45)}.player-pencils-hand{font-size:2.6rem;line-height:1}.player-pencils-title{margin:0;font-size:1.9rem;letter-spacing:.05em}.player-pencils-sub{margin:0;font-size:.9rem;opacity:.85}.player-intermission-clock{display:flex;align-items:center;justify-content:center;gap:.6rem;margin-top:.5rem}.player-intermission-clock-label{font-size:.85rem;opacity:.75}.player-your-slot{display:flex;flex-direction:column;gap:.3rem;padding:.9rem 1rem;border-radius:14px;text-align:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.12)}.player-your-slot-kicker{margin:0;font-size:.85rem;opacity:.8}.player-your-slot-headline{margin:0;font-size:1.25rem;font-weight:800}.player-your-slot-sub{margin:0;font-size:.9rem;opacity:.8}.player-your-slot.is-first{padding:1.1rem 1rem;background:linear-gradient(140deg,#ff3dbb4d,#7c4dff40);border-color:#ff3dbbb3;box-shadow:0 0 26px #ff3dbb4d;animation:player-slot-pulse 1.8s ease-in-out infinite}.player-your-slot.is-first .player-your-slot-headline{font-size:1.7rem;line-height:1.15;letter-spacing:.01em}@keyframes player-slot-pulse{0%,to{box-shadow:0 0 22px #ff3dbb40}50%{box-shadow:0 0 34px #ff3dbb73}}.player-runorder{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.player-runorder-row{display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem;border-radius:12px;background:#ffffff0d;border:1px solid transparent}.player-runorder-row.is-first{border-color:#ffd54d73}.player-runorder-row.is-you{background:#7c4dff40;border-color:#7c4dff99}.player-runorder-num{min-width:1.5rem;font-weight:800;font-variant-numeric:tabular-nums;opacity:.6;text-align:right}.player-runorder-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-runorder-tag{flex-shrink:0;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.15rem .5rem;border-radius:999px;background:#ffd54d2e;color:#ffd54d}.player-runorder-tag.is-you-tag{background:#ffffff24;color:inherit}.player-presenting{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;padding-top:1rem}.player-onstage-kicker{margin:0;opacity:.8}.player-onstage-title{margin:0;font-size:2.4rem;letter-spacing:.02em}.player-now-presenting{margin:0;font-size:1.8rem}.player-up-next{margin:0;opacity:.8}.player-turn-hint{margin:0;font-size:.9rem;padding:.4rem .8rem;border-radius:999px;background:#ffffff14}.player-talking-points{display:flex;flex-direction:column;gap:.5rem;width:100%;text-align:left}.player-judging{display:flex;flex-direction:column;gap:1rem}.player-votes-locked{padding:.7rem .9rem;border-radius:12px;background:#7c4dff38;font-weight:600}.player-ballot-team{display:flex;flex-direction:column;gap:.5rem;padding:.9rem;border-radius:14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.player-ballot-self{opacity:.85}.player-ballot-name{margin:0;font-size:1.1rem}.player-ballot-scenario{margin:0;font-size:.85rem;opacity:.75}.player-ballot-cat{display:flex;flex-direction:column;gap:.15rem}.player-ballot-cat-label{font-size:.85rem;opacity:.85}.player-stars{display:flex;gap:.25rem}.player-star{min-width:2.9rem;min-height:2.9rem;font-size:1.9rem;line-height:1;border:none;border-radius:10px;background:transparent;color:#ffffff40;cursor:pointer;padding:0}.player-star.is-on{color:#ffd54d}.player-awards{display:flex;flex-direction:column;gap:1.1rem}.player-placement{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem 1rem;border-radius:16px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);text-align:center}.player-placement.is-podium{border-color:#ffd54d80}.player-placement-rank{font-size:3rem;line-height:1}.player-placement-team{font-size:1.3rem;font-weight:700}.player-placement-total{opacity:.85}.player-cat-bars{display:flex;flex-direction:column;gap:.4rem;width:100%;margin-top:.4rem}.player-cat-bar{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:.15rem .5rem;align-items:center}.player-cat-bar-label{grid-column:1;font-size:.8rem;text-align:left;opacity:.85}.player-cat-bar-value{grid-column:2;font-size:.8rem;font-variant-numeric:tabular-nums}.player-cat-bar-track{grid-column:1 / -1;display:block;height:.55rem;border-radius:999px;background:#ffffff1f;overflow:hidden}.player-cat-bar-fill{display:block;height:100%;border-radius:999px;background:#7c4dff}.player-badges{display:flex;flex-direction:column;gap:.5rem;width:100%;margin-top:.5rem}.player-badge{display:grid;grid-template-columns:auto 1fr;gap:0 .6rem;align-items:center;padding:.6rem .8rem;border-radius:12px;background:#ffd54d1f;border:1px solid rgba(255,213,77,.4);text-align:left}.player-badge-emoji{grid-row:1 / span 2;font-size:2rem}.player-badge-name{font-weight:700}.player-badge-desc{font-size:.8rem;opacity:.8}.player-awards-next{text-align:center}.player-golden{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;padding:var(--sp-5);text-align:center;background:radial-gradient(80% 55% at 50% 45%,#f5c5424d,#05020df2 72%);animation:player-golden-in .3s ease-out}.player-golden-star{margin:0;font-size:clamp(3.5rem,22vw,7rem);line-height:1}.player-golden-title{margin:0;font-size:clamp(1.8rem,11vw,3.2rem);font-weight:900;letter-spacing:.05em;color:var(--gold);text-shadow:0 0 32px rgba(245,197,66,.6)}.player-golden-team{margin:0;font-size:clamp(1.1rem,6vw,1.8rem);font-weight:800}.player-golden-sub{margin:.4rem 0 0;color:var(--text-dim);text-wrap:balance}.player-golden-dismiss{margin:.8rem 0 0;font-size:var(--fs-xs);color:var(--text-mute)}.player-golden.is-mine .player-golden-title{animation:player-golden-shake .5s ease-in-out 2}@keyframes player-golden-in{0%{opacity:0;transform:scale(1.08)}to{opacity:1;transform:none}}@keyframes player-golden-shake{0%,to{transform:none}25%{transform:rotate(-2deg) scale(1.03)}75%{transform:rotate(2deg) scale(1.03)}}.player-buzzed-ribbon{margin:.5rem 0 0;padding:.4rem .9rem;font-weight:800;color:#2a1a00;background:linear-gradient(135deg,#ffe89a,var(--gold));border-radius:var(--r-pill);text-wrap:balance}.player-league-cta{display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center}.player-league-cta .btn{width:100%}.sound-toggle{position:fixed;z-index:45;left:max(var(--sp-2),env(safe-area-inset-left));bottom:max(var(--sp-2),env(safe-area-inset-bottom));display:flex;align-items:center;gap:var(--sp-1);padding:.2rem;background:#1c1042bf;border:1px solid var(--line);border-radius:var(--r-pill);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:.5;transition:opacity .18s ease,border-color .18s ease,box-shadow .18s ease}.sound-toggle:hover,.sound-toggle:focus-within{opacity:1}.sound-toggle[data-role=player]{bottom:calc(7.1rem + env(safe-area-inset-bottom))}.sound-toggle.is-muted{opacity:.4}.sound-toggle.is-asleep{opacity:1;border-color:#fbbf24a6;box-shadow:var(--glow-amber);animation:sound-asleep-pulse 2.4s ease-in-out infinite}@keyframes sound-asleep-pulse{50%{box-shadow:0 0 26px #fbbf248c}}.sound-btn{display:inline-flex;align-items:center;gap:.4rem;min-height:2.1rem;padding:0 .55rem;font:inherit;color:var(--text);background:transparent;border:none;border-radius:var(--r-pill);cursor:pointer;transition:transform .12s ease,background .15s ease}.sound-btn:hover{background:#f4f0ff17}.sound-btn:active{transform:scale(.94)}.sound-icon{font-size:1.15rem;line-height:1}.sound-nudge{font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;color:var(--amber);white-space:nowrap}.sound-vol{display:flex;align-items:center}.sound-vol input[type=range]{width:4.6rem;padding:0;background:transparent;border:none;accent-color:var(--magenta);cursor:pointer}.sound-vol input[type=range]:disabled{opacity:.4;cursor:not-allowed}@media(hover:hover){.sound-vol{width:0;overflow:hidden;transition:width .2s ease,margin .2s ease}.sound-toggle:hover .sound-vol,.sound-toggle:focus-within .sound-vol{width:4.9rem;margin-right:.2rem}}.sound-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:root{color-scheme:dark;--bg-0: #0c0620;--bg-1: #150b33;--surface: #1c1042;--surface-2: #271756;--surface-3: #322066;--line: #3b2a75;--text: #f4f0ff;--text-dim: #bcafe6;--text-mute: #8f80c0;--magenta: #ff3dbb;--magenta-fill: #c026d3;--violet: #7c3aed;--cyan: #22d3ee;--amber: #fbbf24;--red: #ff6b7a;--red-fill: #d92d42;--gold: #f5c542;--glow-magenta: 0 0 24px rgba(255, 61, 187, .35);--glow-cyan: 0 0 20px rgba(34, 211, 238, .3);--glow-amber: 0 0 20px rgba(251, 191, 36, .3);--glow-red: 0 0 24px rgba(255, 107, 122, .35);--glow-gold: 0 0 22px rgba(245, 197, 66, .3);--shadow-soft: 0 8px 28px rgba(4, 1, 16, .55);--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 3rem;--sp-8: 4rem;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 24px;--r-pill: 999px;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--fs-xs: .75rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.25rem;--fs-xl: 1.6rem;--fs-2xl: 2.1rem;--fs-3xl: 2.8rem}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;font-family:var(--font);font-size:var(--fs-md);line-height:1.5;color:var(--text);background:radial-gradient(1100px 600px at 85% -10%,rgba(124,58,237,.22),transparent 60%),radial-gradient(900px 500px at -10% 100%,rgba(255,61,187,.1),transparent 55%),radial-gradient(700px 500px at 105% 80%,rgba(34,211,238,.07),transparent 55%),linear-gradient(170deg,var(--bg-1),var(--bg-0) 55%);background-attachment:fixed;-webkit-font-smoothing:antialiased}#root,.app{min-height:100dvh}h1,h2,h3,h4{margin:0 0 .5em;font-weight:800;line-height:1.15;letter-spacing:-.01em;text-wrap:balance}h1{font-size:var(--fs-3xl)}h2{font-size:var(--fs-2xl)}h3{font-size:var(--fs-xl)}h4{font-size:var(--fs-lg)}p{margin:0 0 var(--sp-4)}small,.hint{font-size:var(--fs-xs);color:var(--text-mute)}a{color:var(--cyan);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--magenta)}hr{border:none;border-top:1px solid var(--line);margin:var(--sp-5) 0}code,kbd{font-family:var(--font-mono);font-size:.9em;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:.1em .4em}table{width:100%;border-collapse:collapse}th,td{padding:var(--sp-2) var(--sp-3);text-align:left;border-bottom:1px solid var(--line)}th{font-size:var(--fs-sm);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}ul,ol{margin:0 0 var(--sp-4);padding-left:1.4em}label{font-weight:600;font-size:var(--fs-sm);color:var(--text-dim)}img,canvas,svg{max-width:100%}::selection{background:#ff3dbb66;color:var(--text)}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:var(--r-pill)}input,select,textarea{width:100%;padding:.7rem .9rem;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);transition:border-color .15s ease,box-shadow .15s ease}input::placeholder,textarea::placeholder{color:var(--text-mute)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px #22d3ee40}input[autocapitalize=characters]{font-family:var(--font-mono);font-size:var(--fs-lg);font-weight:700;letter-spacing:.3em;text-align:center;text-transform:uppercase}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font:inherit;font-weight:700;color:var(--text);background:var(--surface-2);border:1px solid transparent;border-radius:var(--r-md);cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .12s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,filter .18s ease}.btn:hover:not(:disabled){filter:brightness(1.1)}.btn:active:not(:disabled){transform:translateY(1px) scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--magenta-fill),var(--violet));color:#fff;box-shadow:var(--glow-magenta)}.btn-primary:hover:not(:disabled){box-shadow:0 0 32px #ff3dbb80}.btn-secondary{background:var(--surface-2);border-color:var(--line)}.btn-secondary:hover:not(:disabled){background:var(--surface-3)}.btn-danger{background:var(--red-fill);color:#fff;box-shadow:0 0 18px #d92d424d}.btn-ghost{background:transparent;color:var(--text-dim)}.btn-ghost:hover:not(:disabled){background:#f4f0ff12;color:var(--text)}.btn-sm{font-size:var(--fs-sm);padding:.35rem .8rem;border-radius:var(--r-sm)}.btn-md{font-size:var(--fs-md);padding:.6rem 1.25rem}.btn-lg{font-size:1.15rem;padding:.85rem 1.6rem;border-radius:var(--r-lg)}.game-card{--card-accent: var(--text-dim);position:relative;display:flex;flex-direction:column;gap:var(--sp-2);width:100%;max-width:16rem;aspect-ratio:5 / 7;padding:var(--sp-4);background:linear-gradient(160deg,var(--surface-2),var(--surface) 70%);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);overflow:hidden;animation:deal-in .4s cubic-bezier(.2,.9,.3,1.2) backwards;transition:transform .18s ease,box-shadow .18s ease}.game-card:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,var(--card-accent),transparent 85%)}.game-card.type-scenario{--card-accent: var(--cyan);border-color:#22d3ee59}.game-card.type-objective{--card-accent: var(--magenta);border-color:#ff3dbb59}.game-card.type-wildcard{--card-accent: var(--amber);border-color:#fbbf2459}.game-card.clickable{cursor:pointer}.game-card.clickable:hover{transform:translateY(-3px) rotate(-.5deg);box-shadow:var(--shadow-soft),0 0 18px #ff3dbb26}.game-card.selected{transform:translateY(-5px);box-shadow:0 0 0 3px var(--card-accent),var(--shadow-soft),0 0 26px #ff3dbb4d}.card-pip{position:absolute;font-size:var(--fs-sm);opacity:.55;pointer-events:none}.card-pip-tl{top:var(--sp-3);left:var(--sp-3)}.card-pip-br{right:var(--sp-3);bottom:var(--sp-3);transform:rotate(180deg)}.card-type{align-self:center;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--card-accent);margin-top:var(--sp-2)}.card-title{font-size:1.15rem;font-weight:800;line-height:1.2;text-align:center;text-wrap:balance}.card-body{flex:1 1 auto;min-height:0;overflow-y:auto;font-size:.92rem;line-height:1.45;color:var(--text-dim)}.card-foot{margin-top:auto;display:flex;flex-direction:column;gap:var(--sp-2);padding-top:var(--sp-2)}.card-flavor{font-size:var(--fs-xs);font-style:italic;color:var(--text-mute);line-height:1.35}.card-tag{align-self:flex-start;font-size:var(--fs-xs);font-weight:700;color:var(--card-accent);background:#f4f0ff12;border:1px solid var(--line);border-radius:var(--r-pill);padding:.1rem .55rem}.game-card.small{aspect-ratio:auto;max-width:none;padding:var(--sp-3);gap:var(--sp-1)}.game-card.small .card-title{font-size:var(--fs-md);text-align:left}.game-card.small .card-type{align-self:flex-start;margin-top:0}.game-card.small .card-body{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:var(--fs-sm)}.game-card.small .card-pip{display:none}.game-card.facedown{align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,rgba(255,61,187,.09) 0 10px,transparent 10px 20px),repeating-linear-gradient(-45deg,rgba(124,58,237,.14) 0 10px,transparent 10px 20px),linear-gradient(160deg,var(--surface-2),var(--surface));border-color:#ff3dbb4d}.game-card.facedown:after{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:2px solid rgba(244,240,255,.12);border-radius:calc(var(--r-lg) - 6px);pointer-events:none}.card-back-logo{font-size:3rem;filter:drop-shadow(0 0 14px rgba(255,61,187,.55))}.game-card.facedown.small .card-back-logo{font-size:1.6rem}@keyframes deal-in{0%{opacity:0;transform:translateY(16px) rotate(-2deg) scale(.95)}}.countdown{display:inline-flex;flex-direction:column;align-items:center;gap:var(--sp-1)}.countdown-time{font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:.02em;line-height:1}.countdown-big .countdown-time{font-size:clamp(4.5rem,17vw,12rem);text-shadow:0 0 34px rgba(255,61,187,.4)}.countdown-small .countdown-time{font-size:var(--fs-xl)}.countdown-small{padding:var(--sp-1) var(--sp-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}.countdown.urgent .countdown-time{color:var(--amber);text-shadow:0 0 34px rgba(251,191,36,.45)}.countdown.critical .countdown-time{color:var(--red);text-shadow:0 0 34px rgba(255,107,122,.5)}.countdown.critical{animation:countdown-pulse 1.4s ease-in-out infinite}.countdown.paused{opacity:.55}.countdown-paused-label{font-size:var(--fs-sm);font-weight:700;text-transform:uppercase;letter-spacing:.25em;color:var(--text-mute)}@keyframes countdown-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.015);opacity:.9}}.leaderboard{display:flex;flex-direction:column;gap:var(--sp-2)}.lb-row{display:grid;grid-template-columns:2.8rem 1fr auto auto auto;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);transition:transform .15s ease,background .15s ease,box-shadow .15s ease}.lb-row:hover{background:var(--surface-2);transform:translate(3px)}.lb-rank{font-size:var(--fs-md);font-weight:800;color:var(--text-mute);text-align:center}.lb-row.rank-1 .lb-rank,.lb-row.rank-2 .lb-rank,.lb-row.rank-3 .lb-rank{font-size:1.7rem}.lb-row.rank-1{background:linear-gradient(90deg,rgba(245,197,66,.16),var(--surface) 65%);border-color:#f5c54280;box-shadow:var(--glow-gold)}.lb-row.is-retired{opacity:.55;background:var(--surface);border-color:var(--line);box-shadow:none}.lb-row.is-retired .lb-rank,.lb-row.is-retired .lb-points{font-weight:600;color:var(--text-mute)}.lb-retired-tag{margin-left:.5em;font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-mute)}.lb-row.is-buzzed{background:linear-gradient(90deg,rgba(245,197,66,.28),var(--surface) 70%);border-color:var(--gold);box-shadow:var(--glow-gold);opacity:1}.lb-buzzed-tag{margin-left:.4em;filter:drop-shadow(0 0 6px rgba(245,197,66,.8))}.lb-row.highlight{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan),var(--glow-cyan)}.lb-team{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-streak{font-size:var(--fs-xs);font-weight:800;color:var(--amber);background:#fbbf241f;border:1px solid rgba(251,191,36,.4);border-radius:var(--r-pill);padding:.15rem .55rem;white-space:nowrap}.lb-badges{display:flex;gap:.15rem;font-size:var(--fs-md)}.lb-points{font-variant-numeric:tabular-nums;font-size:var(--fs-lg);font-weight:800;text-align:right;min-width:3.2rem}.lb-empty{text-align:center;font-style:italic;color:var(--text-mute);padding:var(--sp-5)}@media(max-width:480px){.lb-badges{display:none}}.qr-frame{display:inline-block;padding:10px;background:#fff;border-radius:var(--r-lg);box-shadow:var(--glow-magenta),var(--shadow-soft)}.qr-canvas{display:block;border-radius:var(--r-sm)}.toasts{position:fixed;bottom:var(--sp-4);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);z-index:50;width:min(92vw,30rem);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:var(--sp-3);max-width:100%;padding:var(--sp-3) var(--sp-4);font-weight:600;background:#1c1042eb;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;animation:toast-in .3s cubic-bezier(.2,.9,.3,1.2) backwards}.toast:hover{border-color:var(--text-mute)}.toast-icon{font-size:var(--fs-lg);flex-shrink:0}.toast-milestone{border-color:#ff3dbb8c;box-shadow:var(--glow-magenta),var(--shadow-soft)}.toast-party{background:linear-gradient(120deg,#ff3dbb47,#22d3ee38),#1c1042eb;border-color:#fbbf248c;animation:toast-party-in .5s cubic-bezier(.2,.9,.3,1.2) backwards}.toast-info{color:var(--text-dim)}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)}}@keyframes toast-party-in{0%{opacity:0;transform:translateY(16px) rotate(-3deg)}60%{transform:translateY(-2px) rotate(2deg)}to{transform:translateY(0) rotate(0)}}.conn-banner{position:sticky;top:0;z-index:60;padding:.3rem;text-align:center;font-size:var(--fs-sm);font-weight:700;letter-spacing:.02em;color:#241300;background:var(--amber)}.landing{max-width:26rem;margin:0 auto;padding:max(10vh,var(--sp-7)) var(--sp-4) var(--sp-7);text-align:center}.logo{font-size:clamp(2.6rem,11vw,3.6rem);font-weight:900;letter-spacing:-.03em;margin-bottom:var(--sp-2);background:linear-gradient(100deg,var(--magenta),var(--violet) 55%,var(--cyan));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 22px rgba(255,61,187,.35))}.logo-card{display:inline-block;transform:rotate(-10deg);-webkit-text-fill-color:initial}.tagline{font-size:1.05rem;color:var(--text-dim);letter-spacing:.04em}.landing-actions,.landing-join{display:flex;flex-direction:column;gap:var(--sp-3);margin-top:var(--sp-6)}.landing-join label,.landing-access-key{display:flex;flex-direction:column;gap:var(--sp-1);text-align:left}.emoji-row{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);color:var(--text-dim);font-size:var(--fs-sm)}.emoji-btn{font:inherit;font-size:2rem;line-height:1;width:3.4rem;height:3.4rem;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.emoji-btn:hover{transform:scale(1.08) rotate(6deg);border-color:var(--magenta);box-shadow:var(--glow-magenta)}.emoji-btn:active{transform:scale(.95)}.error{color:var(--red);font-weight:600;background:#d92d421f;border:1px solid rgba(217,45,66,.35);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);margin-top:var(--sp-4)}.host-view{padding:clamp(var(--sp-4),3vw,var(--sp-6));max-width:90rem;margin:0 auto;font-size:1.05rem}.player-view{padding:var(--sp-4);max-width:42rem;margin:0 auto}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-soft)}.chip{display:inline-flex;align-items:center;gap:.35em;font-size:var(--fs-xs);font-weight:700;padding:.2rem .65rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill)}.stack{display:flex;flex-direction:column;gap:var(--sp-4)}.row{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.spread{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:var(--sp-4);justify-items:center}.center{text-align:center}.muted{color:var(--text-mute)}body.projector-mode{background:#05020d}body.projector-mode .toast{font-size:1.25rem;padding:var(--sp-4) var(--sp-5)}body.projector-mode .toasts{width:min(92vw,44rem)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.league-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);background:#05020dd1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.league-panel{position:relative;width:min(56rem,100%);max-height:min(88dvh,60rem);overflow-y:auto;padding:var(--sp-5) var(--sp-5) var(--sp-6);background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-soft)}.league-close{position:sticky;top:0;float:right;min-width:2.75rem;min-height:2.75rem;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);color:inherit;font-size:var(--fs-lg);cursor:pointer}.league-close:hover{background:var(--surface-3)}.league-status{padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--text-dim)}.league-status--error{color:var(--red)}.league-head{text-align:center;margin-bottom:var(--sp-5)}.league-kicker{margin:0;font-size:var(--fs-xs);letter-spacing:.24em;text-transform:uppercase;color:var(--text-mute)}.league-season{margin:var(--sp-1) 0 var(--sp-2);color:var(--gold)}.league-meta{margin:0;font-size:var(--fs-sm);color:var(--text-dim)}.league-empty{text-align:center;padding:var(--sp-6) var(--sp-3)}.league-empty-title{font-size:var(--fs-lg);font-weight:700;margin:0 0 var(--sp-2)}.league-empty-hint{margin:0;color:var(--text-mute);text-wrap:balance}.league-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.league-row{display:grid;grid-template-columns:2.6rem minmax(6rem,1fr) auto auto auto;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}.league-row.rank-1{background:linear-gradient(90deg,rgba(245,197,66,.16),var(--surface) 65%);border-color:#f5c54280}.league-row.is-you{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan)}.league-rank{font-weight:800;text-align:center;color:var(--text-mute)}.league-row.rank-1 .league-rank,.league-row.rank-2 .league-rank,.league-row.rank-3 .league-rank{font-size:1.6rem;color:var(--text)}.league-who{display:flex;align-items:center;gap:.45em;min-width:0}.league-emoji{font-size:1.4em}.league-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.league-you-tag{color:var(--cyan);font-weight:600}.league-stats{display:flex;gap:var(--sp-2);flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-dim)}.league-stat{white-space:nowrap}.league-stat--gold{color:var(--gold)}.league-badges{display:flex;gap:.2em}.league-points{font-weight:800;font-size:var(--fs-lg);text-align:right}.league-history{margin-top:var(--sp-5)}.league-history-title{font-size:var(--fs-md);margin:0 0 var(--sp-2);color:var(--text-dim)}.league-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-1)}.league-history-row{display:flex;gap:var(--sp-3);flex-wrap:wrap;align-items:baseline;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);background:var(--surface);border-radius:var(--r-sm)}.league-history-date{color:var(--text-mute);min-width:7rem}.league-history-code{font-family:var(--font-mono);letter-spacing:.05em}.league-history-rounds{color:var(--text-mute)}.league-history-winner{margin-left:auto;font-weight:700}@media(max-width:34rem){.league-row{grid-template-columns:2.2rem 1fr auto}.league-stats,.league-badges{grid-column:2 / -1}.league-panel{padding:var(--sp-4) var(--sp-3) var(--sp-5)}}body.projector-mode .league-panel{width:min(78rem,100%)}body.projector-mode .league-season{font-size:clamp(2rem,5vw,3.4rem)}body.projector-mode .league-row{font-size:clamp(1.1rem,2vw,1.7rem)}body.projector-mode .league-points{font-size:clamp(1.4rem,2.6vw,2.2rem)}
