:root{--orange:#f96635;--gold:#f9a822;--cream:#faecb6;--mint:#93d3ae;--teal:#2bbaa5;--brown:#4a2a14;--brown-soft:#8a6543;--paper:#fff6d9;--cream-track:#ebd99b;--error-soft:#fbd3c4;--warn-soft:#fbe3b0;--radius-lg:26px;--radius-md:18px;--radius-pill:999px;--outline:3px solid var(--brown);--shadow-block:0 5px 0 #4a2a14e6;--shadow-block-hover:0 7px 0 #4a2a14e6;--shadow-block-active:0 1px 0 #4a2a14e6;--shadow-option:0 4px 0 #4a2a14e6;--shadow-option-hover:0 6px 0 #4a2a14e6;--shadow-card:10px 10px 0 #4a2a141f;--shadow-avatar:0 0 0 2px var(--brown), 0 3px 0 #4a2a1459;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--font-display:"Chango", sans-serif;--font-body:"Quicksand", sans-serif}*{box-sizing:border-box}body{font-family:var(--font-body);color:var(--brown);background:var(--cream);min-height:100vh;margin:0;padding:0;font-weight:600;line-height:1.55}::selection{background:var(--gold);color:var(--brown)}h1,h2,h3{margin:.4em 0;font-weight:700;line-height:1.25}h1{font-size:1.9rem}h2{font-size:1.3rem}h3{font-size:1.05rem}p{margin:.5em 0}button{font:inherit;letter-spacing:.03em;cursor:pointer;color:var(--brown);background:var(--paper);border:var(--outline);border-radius:var(--radius-pill);box-shadow:var(--shadow-block);transition:transform .35s var(--ease-spring), box-shadow .2s var(--ease-smooth), background-color .2s var(--ease-smooth), opacity .2s var(--ease-smooth);margin:.25em;padding:.6em 1.4em;font-size:1rem;font-weight:700}button:hover:not(:disabled){box-shadow:var(--shadow-block-hover);transform:translateY(-2px)rotate(-.5deg)}button:active:not(:disabled){box-shadow:var(--shadow-block-active);transform:translateY(3px)}button:disabled{cursor:not-allowed;opacity:.45;box-shadow:none}button[type=submit]{background:var(--orange)}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:2px}input,label{font:inherit}label{color:var(--brown-soft);margin:.6em 0;font-size:.9rem;font-weight:700;display:block}input{color:var(--brown)}form input,.lobby-topic-label input,.lobby-clarify-freeform input{border:var(--outline);border-radius:var(--radius-md);background:var(--paper);width:100%;max-width:320px;transition:box-shadow .2s var(--ease-smooth);margin:.3em 0 .75em;padding:.6em .9em;font-weight:700;display:block}form input:focus,.lobby-topic-label input:focus,.lobby-clarify-freeform input:focus{box-shadow:0 0 0 4px var(--gold);outline:none}.muted{color:var(--brown-soft);font-size:.9em}.badge{letter-spacing:.08em;text-transform:uppercase;border:2px solid var(--brown);border-radius:var(--radius-pill);background:var(--teal);color:var(--brown);vertical-align:middle;margin-left:.5em;padding:.15em .7em;font-size:.68rem;font-weight:700;display:inline-block}.badge-muted{background:var(--cream);color:var(--brown-soft)}.team-badge{display:block}.team-avatar-wrap{line-height:0;display:inline-block;position:relative}.team-avatar-wrap .team-badge{position:absolute;bottom:-7px;right:-7px}.team-name-label{margin-left:.5em;font-size:.78rem;font-weight:700}.team-name-label-a{color:var(--orange)}.team-name-label-b{color:var(--teal)}.team-badge-fallback{letter-spacing:.08em;text-transform:uppercase;border:2px solid var(--brown);border-radius:var(--radius-pill);color:var(--brown);vertical-align:middle;margin-left:.5em;padding:.15em .7em;font-size:.68rem;font-weight:700;display:inline-block}.team-badge-fallback-a{background:var(--orange)}.team-badge-fallback-b{background:var(--teal)}.app-shell{max-width:900px;margin:0 auto;padding:1.5em 1em 3em}.app-header{margin-bottom:1em;padding:.5em 0}.app-brand{text-align:center;font-family:var(--font-display);letter-spacing:.015em;color:var(--orange);text-shadow:.045em .045em 0 var(--cream), .09em .09em 0 var(--gold), .135em .135em 0 var(--cream), .18em .18em 0 var(--teal);font-size:clamp(3.2rem,13vw,7rem);font-weight:400;line-height:1.1;display:block;transform:rotate(-2deg)}.room-code{letter-spacing:.1em;background:var(--gold);border:var(--outline);border-radius:var(--radius-pill);padding:.3em .9em;font-weight:700}.avatar{object-fit:cover;border:3px solid var(--paper);box-shadow:var(--shadow-avatar);transition:transform .3s var(--ease-spring);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.avatar-initials{color:var(--brown);font-weight:700}.avatar-unknown{background:var(--paper);border:3px solid var(--paper);box-shadow:var(--shadow-avatar);color:var(--brown-soft);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.timer-ring{justify-content:center;align-items:center;display:inline-flex;position:relative}.timer-ring-svg{display:block}.timer-ring-track{stroke:var(--cream-track)}.timer-ring-progress{stroke:var(--teal);stroke-linecap:round;transition:stroke-dashoffset .25s linear, stroke .4s var(--ease-smooth)}.timer-ring-mid .timer-ring-progress{stroke:var(--gold)}.timer-ring-low .timer-ring-progress{stroke:var(--orange)}.timer-ring-label{color:var(--brown);font-size:.75em;font-weight:700;position:absolute}.home-screen{background:var(--paper);border:var(--outline);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:2em}.connection-status{color:var(--brown-soft);font-size:.85rem}.home-mode-toggle{gap:.4em;margin:1em 0;display:flex}.home-mode-toggle button:disabled{background:var(--gold);opacity:1}.home-settings-options{color:var(--brown-soft);flex-wrap:wrap;align-items:center;gap:.3em;margin:.6em 0 1em;font-size:.9rem;display:flex}.home-settings-options button{margin:0 .15em}.home-settings-options button:disabled{background:var(--gold);opacity:1}.home-settings-actions{gap:.5em;margin-top:1em;display:flex}.error-banner{background:var(--error-soft);border:var(--outline);border-radius:var(--radius-md);color:var(--brown);margin:.75em 0;padding:.7em 1.1em;font-weight:700}.name-taken-prompt{background:var(--warn-soft);border:var(--outline);border-radius:var(--radius-md);color:var(--brown);margin:.75em 0;padding:.7em 1.1em;font-weight:700}.lobby-screen section{background:var(--paper);border:var(--outline);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin-bottom:1.25em;padding:1.5em}.lobby-ready-button{background:var(--orange);padding:.65em 1.4em;font-weight:700}.lobby-ready-button:disabled{background:var(--mint);opacity:1}.lobby-clarify{background:var(--cream);border:var(--outline);border-radius:var(--radius-md);box-shadow:none;margin-top:1em;padding:1em 1.25em}.lobby-clarify-question{font-weight:700}.lobby-clarify-options{flex-wrap:wrap;gap:.5em;margin:.5em 0;display:flex}.lobby-clarify-options button{background:var(--mint)}.lobby-clarify-freeform{flex-wrap:wrap;align-items:flex-end;gap:.5em;display:flex}.player-card-list{flex-direction:column;gap:.6em;padding:0;list-style:none;display:flex}.player-card{background:var(--cream);border:var(--outline);border-radius:var(--radius-md);transition:border-color .25s var(--ease-smooth), box-shadow .25s var(--ease-smooth), transform .35s var(--ease-spring);align-items:center;gap:.9em;padding:.7em .9em;display:flex}.player-card-you{box-shadow:0 0 0 4px var(--gold)}.player-card-body{flex-direction:column;flex:1;gap:.2em;display:flex}.player-card-name-line{align-items:center;gap:.2em;display:flex}.player-card-name{font-weight:700}.player-card-status,.player-card-ready{color:var(--brown-soft);font-size:.85rem}.typing-indicator{color:var(--brown-soft);font-style:italic}.lobby-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6em;margin-bottom:1em;display:flex}.lobby-title{margin:0}.lobby-title-actions{align-items:center;gap:.5em;display:flex}.lobby-start{margin-top:1.5em}.icon-button{background:var(--paper);width:2.4em;height:2.4em;color:var(--brown);justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button svg{display:block}.gen-status{align-items:center;gap:.35em;font-size:.85rem;display:inline-flex}.gen-status-working{color:var(--gold)}.gen-status-done{color:var(--teal)}.gen-status-failed{color:var(--orange)}.gen-status-needs-you,.gen-status-needs-other{color:var(--brown-soft)}.gen-icon{text-align:center;width:1.4em;display:inline-block}.gen-icon-working{animation:1.6s linear infinite gen-icon-spin;display:inline-block}.gen-icon-done{color:var(--teal)}.gen-icon-failed{color:var(--orange)}.gen-status-failed button{margin-left:.3em;padding:.25em .7em;font-size:.85rem}.gen-progress-bar{border-radius:var(--radius-pill);background:var(--warn-soft);border:1px solid var(--brown);vertical-align:middle;width:4.5em;height:.35em;display:inline-block;overflow:hidden}.gen-progress-bar-fill{border-radius:var(--radius-pill);background:var(--gold);height:100%;transition:width .3s var(--ease-smooth);display:block}.selfie{margin:1em 0 1.5em}.selfie-current{margin-bottom:.75em}.selfie-actions{flex-wrap:wrap;align-items:center;gap:.5em;display:flex}.selfie-upload-label{letter-spacing:.03em;border:var(--outline);border-radius:var(--radius-pill);cursor:pointer;color:var(--brown);background:var(--paper);box-shadow:var(--shadow-block);transition:transform .35s var(--ease-spring), box-shadow .2s var(--ease-smooth), background-color .2s var(--ease-smooth);align-items:center;margin:.25em;padding:.6em 1.4em;font-weight:700;display:inline-flex}.selfie-upload-label:hover{box-shadow:var(--shadow-block-hover);transform:translateY(-2px)rotate(-.5deg)}.selfie-upload-label:active{box-shadow:var(--shadow-block-active);transform:translateY(3px)}.selfie-camera{margin-top:.5em}.selfie-video{border:var(--outline);border-radius:var(--radius-md);width:240px;max-width:100%;box-shadow:var(--shadow-card);background:#000}.selfie-error{color:var(--orange);font-weight:700}.selfie-preview{margin-top:.5em}.selfie-preview img{border:3px solid var(--paper);box-shadow:var(--shadow-avatar);border-radius:50%;margin-bottom:.5em;display:block}.question-screen,.tally-screen,.reveal-screen{background:var(--paper);border:var(--outline);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:1.5em}.question-round-banner{background:var(--orange);border:var(--outline);color:var(--brown);border-radius:var(--radius-pill);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .75em;padding:.35em 1.1em;font-size:.85rem;font-weight:700;display:inline-block;box-shadow:0 3px #4a2a14e6}.question-header{flex-wrap:wrap;align-items:center;gap:1em;margin-bottom:.5em;display:flex}.question-category{font-size:1.15rem;font-weight:700}.question-value{background:var(--gold);border:var(--outline);color:var(--brown);border-radius:var(--radius-pill);padding:.15em .85em;font-size:.9rem;font-weight:700}.question-timer{margin-left:auto}.question-text{margin:.75em 0 1.25em;font-size:1.15rem;font-weight:700;line-height:1.5}.question-options{flex-direction:column;gap:.65em;padding:0;list-style:none;display:flex}.option-button{text-align:left;width:100%;color:var(--brown);background:var(--paper);border:var(--outline);border-radius:var(--radius-md);box-shadow:var(--shadow-option);align-items:center;gap:.7em;margin:0;padding:.8em 1.1em;font-size:1rem;font-weight:700;display:flex}.option-button:hover:not(:disabled){box-shadow:var(--shadow-option-hover);transform:translateY(-2px)}.option-button:active:not(:disabled){box-shadow:var(--shadow-block-active);transform:translateY(2px)}.option-button:disabled{cursor:default;opacity:.55;box-shadow:none}.option-button-selected{background:var(--gold)}.option-button-selected:disabled{opacity:1}.option-key{background:var(--cream);border:2px solid var(--brown);border-radius:50%;flex:none;justify-content:center;align-items:center;width:1.7em;height:1.7em;font-size:.85em;font-weight:700;display:inline-flex}.option-button-selected .option-key{background:var(--brown);color:var(--cream)}.reveal-option-correct .option-key{background:var(--teal);color:var(--cream)}.lock-list,.tally-avatars{flex-wrap:wrap;gap:.9em;padding:0;list-style:none;display:flex}.question-locks{margin-top:1.5em}.lock-row{opacity:.55;transition:opacity .35s var(--ease-smooth);flex-direction:column;align-items:center;gap:.3em;font-size:.85rem;font-weight:700;display:flex}.lock-row-locked{opacity:1;animation:lock-in-pop .5s var(--ease-spring)}.lock-badge{color:var(--teal);font-size:.85em;font-weight:700}.tally-options{flex-direction:column;gap:.75em;padding:0;list-style:none;display:flex}.tally-option{border:var(--outline);border-radius:var(--radius-md);background:var(--paper);box-shadow:var(--shadow-option);padding:.75em 1em}.tally-option-text{align-items:center;gap:.7em;margin-bottom:.4em;font-weight:700;display:flex}.tally-avatars{min-height:2.75em}.tally-noanswer{border:2px dashed var(--brown-soft);border-radius:var(--radius-md);margin-top:1em;padding:.75em 1em}.reveal-options{padding:0;list-style:none}.reveal-option{border:var(--outline);border-radius:var(--radius-md);background:var(--paper);box-shadow:var(--shadow-option);transform-origin:top;animation:reveal-flip-in .5s var(--ease-spring) both;align-items:center;gap:.6em;margin-bottom:.5em;padding:.75em 1em;display:flex}.reveal-option:first-child{animation-delay:0s}.reveal-option:nth-child(2){animation-delay:70ms}.reveal-option:nth-child(3){animation-delay:.14s}.reveal-option:nth-child(4){animation-delay:.21s}.reveal-option:nth-child(5){animation-delay:.28s}.reveal-option:nth-child(6){animation-delay:.35s}.all-correct-banner{background:var(--mint);border:var(--outline);color:var(--brown);border-radius:var(--radius-pill);letter-spacing:.04em;animation:all-correct-pop .6s var(--ease-spring) both;justify-content:center;align-items:center;gap:.5em;margin:0 0 1em;padding:.6em 1.2em;font-size:1rem;font-weight:700;display:flex}.all-correct-icon{animation:all-correct-bounce 1s var(--ease-spring) .6s 2;font-size:1.3em;display:inline-block}.reveal-option-correct{background:var(--mint);font-weight:700}.reveal-option-wrong{opacity:.55;box-shadow:none}.reveal-deltas{margin-top:1em;padding:0;list-style:none}.reveal-delta-row{border-bottom:2px dashed var(--cream-track);animation:delta-row-rise-in .45s var(--ease-spring) both;align-items:center;gap:.7em;padding:.5em 0;display:flex}.reveal-delta-row:first-child{animation-delay:60ms}.reveal-delta-row:nth-child(2){animation-delay:.12s}.reveal-delta-row:nth-child(3){animation-delay:.18s}.reveal-delta-row:nth-child(4){animation-delay:.24s}.reveal-delta-row:nth-child(5){animation-delay:.3s}.reveal-delta-row:last-child{border-bottom:none}.delta{margin-left:auto;font-weight:700;display:inline-block}.delta-positive{color:var(--teal);animation:delta-pulse-positive .6s var(--ease-spring) both;animation-delay:.35s}.delta-negative{color:var(--orange);animation:delta-pulse-negative .6s var(--ease-spring) both;animation-delay:.35s}.reveal-advance-row{justify-content:flex-end;margin-top:1.25em;display:flex}.reveal-explain-row{flex-wrap:wrap;align-items:center;gap:.6em;margin-top:1em;display:flex}.pause-toggle-button{background:var(--gold);color:var(--brown);border-radius:var(--radius-pill);padding:.5em 1.2em;font-size:.9rem;font-weight:700}.final-screen,.round-break-screen{background:var(--paper);border:var(--outline);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);text-align:center;padding:2em}.round-break-subtitle{color:var(--brown-soft);margin-top:-.25em}.round-break-timer{flex-direction:column;align-items:center;gap:.75em;margin:1.25em 0 1.5em;display:flex}.round-break-screen .scoreboard-list{text-align:left;max-width:420px;margin:0 auto}.round-break-screen .team-scores{text-align:left;max-width:420px;margin:0 auto 1em}.scoreboard{background:var(--paper);border:var(--outline);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);position:fixed;overflow-y:auto}.scoreboard-overlay{width:320px;max-height:80vh;padding:1.25em;top:3em;right:1em}.scoreboard-final{border-radius:0;width:100%;height:100%;padding:2em;inset:0}.scoreboard-header{align-items:center;gap:.75em;margin-bottom:.9em;display:flex}.scoreboard-timer{margin-left:auto}.scoreboard-list{padding:0;list-style:none}.scoreboard-row{border-bottom:2px dashed var(--cream-track);align-items:flex-start;gap:.7em;padding:.65em 0;display:flex}.scoreboard-row:last-child{border-bottom:none}.scoreboard-rank{width:1.6em;color:var(--brown-soft);font-weight:700}.scoreboard-details{flex:1}.scoreboard-name-line{align-items:center;gap:.4em;display:flex}.scoreboard-name{font-weight:700}.scoreboard-category{color:var(--brown-soft);margin-top:.1em;font-size:.85rem}.scoreboard-score{margin-left:auto;font-weight:700}.scoreboard-breakdown{color:var(--brown-soft);margin:.3em 0 0;padding:0;font-size:.85em;list-style:none}.scoreboard-rematch{text-align:center;margin-top:1.25em}.scoreboard-rematch-form{background:var(--paper);border:var(--outline);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);text-align:left;flex-direction:column;gap:1em;max-width:420px;margin:0 auto;padding:1.25em;display:flex}.team-scores{background:var(--paper);border:var(--outline);border-radius:var(--radius-md);box-shadow:var(--shadow-card);flex-direction:column;gap:.45em;margin-bottom:1em;padding:.9em 1.1em;display:flex}.team-scores-row{border-radius:var(--radius-md);align-items:center;gap:.5em;padding:.15em .4em;font-weight:700;display:flex}.team-scores-row .team-badge{margin-left:0}.team-scores-value{margin-left:auto}.team-scores-row.leading{background:var(--warn-soft)}.team-winner{background:var(--gold);border:var(--outline);border-radius:var(--radius-md);color:var(--brown);text-align:center;justify-content:center;align-items:center;gap:.4em;margin:.75em 0;padding:.7em 1.1em;font-size:1.15rem;font-weight:700;display:flex}.team-winner .team-badge{margin-left:0;font-size:1rem}.disconnect-overlay{z-index:40;background:#faecb6b8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.disconnect-panel{background:var(--paper);border:var(--outline);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);text-align:center;width:90%;max-width:340px;padding:1.5em}.disconnect-roster{margin:1em 0;padding:0;list-style:none}.disconnect-roster li{justify-content:center;align-items:center;gap:.5em;font-weight:700;display:flex}.disconnect-hint{color:var(--brown-soft);font-size:.9em}.disconnect-resume-button{margin-top:.5em}@keyframes gen-icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes lock-in-pop{0%{transform:scale(.8)}55%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes reveal-flip-in{0%{opacity:0;transform:perspective(700px)rotateX(-40deg)translateY(-8px)}60%{opacity:1}to{opacity:1;transform:perspective(700px)rotateX(0)translateY(0)}}@keyframes delta-row-rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes delta-pulse-positive{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes delta-pulse-negative{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes all-correct-pop{0%{opacity:0;transform:scale(.7)translateY(-6px)}60%{opacity:1}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes all-correct-bounce{0%,to{transform:translateY(0)rotate(0)}30%{transform:translateY(-6px)rotate(-8deg)}60%{transform:translateY(0)rotate(8deg)}}@media (prefers-reduced-motion:reduce){.all-correct-banner,.all-correct-icon{animation:none}}@media (width<=640px){.app-shell{padding:1em .6em 2em}h1{font-size:1.5rem}.lobby-screen section,.question-screen,.tally-screen,.reveal-screen,.round-break-screen,.home-screen{padding:1.1em}.scoreboard-overlay{width:auto;top:4.5em;left:.75em;right:.75em}.question-text{font-size:1.05rem}}
