:root{--color-bg-a:#eef2fc;--color-bg-b:#f7eefc;--color-surface:#fdfcff;--color-surface-alt:#f5f3fb;--color-border:#e6e1f5;--color-text:#1c1c1e;--color-text-muted:#6e6e78;--color-text-faint:#9a99a6;--color-primary:#6c6cf2;--color-primary-hover:#5b5be3;--color-primary-soft:#e4e2fd;--color-blue:#d7e6ff;--color-mint:#d1f3e2;--color-peach:#ffe3ce;--color-lavender:#e8dcfb;--color-pink:#ffd9e9;--color-success:#2fa86a;--color-success-soft:#daf5e6;--color-danger:#e0554f;--color-danger-soft:#fbe1df;--color-amber:#f2a53c;--color-amber-soft:#fdecd2;--radius-lg:20px;--radius-md:16px;--radius-sm:12px;--radius-pill:999px;--shadow-soft:0 8px 24px #4c428c17, 0 2px 6px #4c428c0f;--shadow-soft-lg:0 18px 44px #4c428c24, 0 4px 10px #4c428c12;--shadow-avatar:0 3px 10px #4c428c38;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}body{letter-spacing:-.01em;color:var(--color-text);background:linear-gradient(160deg, var(--color-bg-a) 0%, var(--color-bg-b) 100%);background-attachment:fixed;min-height:100vh;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,system-ui,sans-serif;line-height:1.5}h1,h2,h3{letter-spacing:-.02em;margin:.4em 0;font-weight:650;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;cursor:pointer;border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-soft);transition:transform .35s var(--ease-spring), box-shadow .2s var(--ease-smooth), background-color .2s var(--ease-smooth), opacity .2s var(--ease-smooth);border:none;margin:.2em;padding:.55em 1.1em}button:hover:not(:disabled){transform:translateY(-1px)scale(1.02)}button:active:not(:disabled){transform:translateY(0)scale(.97)}button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}button[type=submit]{background:var(--color-primary);color:#fff}button[type=submit]:hover:not(:disabled){background:var(--color-primary-hover)}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input,label{font:inherit}label{color:var(--color-text-muted);margin:.6em 0;font-size:.9rem;display:block}input{color:var(--color-text)}form input,.lobby-topic-label input,.lobby-clarify-freeform input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;max-width:320px;transition:border-color .2s var(--ease-smooth), box-shadow .2s var(--ease-smooth);margin:.3em 0 .75em;padding:.55em .75em;display:block}form input:focus,.lobby-topic-label input:focus,.lobby-clarify-freeform input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);outline:none}.muted{color:var(--color-text-muted);font-size:.9em}.badge{border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--color-primary-hover);letter-spacing:0;margin-left:.4em;padding:.2em .7em;font-size:.72em;font-weight:600;display:inline-block}.badge-muted{background:var(--color-surface-alt);color:var(--color-text-faint)}.app-shell{max-width:900px;margin:0 auto;padding:1.5em 1em 3em}.app-header{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);justify-content:space-between;align-items:center;margin-bottom:1.5em;padding:.75em 1.1em;display:flex}.app-brand{letter-spacing:-.01em;color:var(--color-primary-hover);font-size:1.15rem;font-weight:700}.app-header-room{align-items:center;gap:.6em;display:flex}.room-code{letter-spacing:.02em;font-weight:650}.avatar{object-fit:cover;box-shadow:var(--shadow-avatar);border:2px solid var(--color-surface);transition:transform .3s var(--ease-spring);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.avatar-initials{color:#2a2a30;font-weight:650}.avatar-unknown{background:var(--color-surface-alt);box-shadow:var(--shadow-avatar);border:2px solid var(--color-surface);color:var(--color-text-faint);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(--color-border)}.timer-ring-progress{stroke:var(--color-primary);stroke-linecap:round;transition:stroke-dashoffset .25s linear, stroke .4s var(--ease-smooth)}.timer-ring-mid .timer-ring-progress{stroke:var(--color-amber)}.timer-ring-low .timer-ring-progress{stroke:var(--color-danger)}.timer-ring-label{color:var(--color-text);font-size:.75em;font-weight:650;position:absolute}.home-screen{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:2em}.connection-status{color:var(--color-text-muted);font-size:.85rem}.home-mode-toggle{gap:.4em;margin:1em 0;display:flex}.home-mode-toggle button:disabled{background:var(--color-primary-soft);color:var(--color-primary-hover);opacity:1}.home-settings-options{color:var(--color-text-muted);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(--color-primary-soft);color:var(--color-primary-hover);opacity:1}.home-settings-actions{gap:.5em;margin-top:1em;display:flex}.error-banner{background:var(--color-danger-soft);border-radius:var(--radius-sm);color:#8a2f2b;margin:.75em 0;padding:.7em 1em}.name-taken-prompt{background:var(--color-amber-soft);border-radius:var(--radius-sm);color:#7a520c;margin:.75em 0;padding:.7em 1em}.lobby-screen section{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);margin-bottom:1.25em;padding:1.5em}.lobby-ready-button{background:var(--color-primary);color:#fff;padding:.65em 1.4em;font-weight:650}.lobby-ready-button:hover:not(:disabled){background:var(--color-primary-hover)}.lobby-ready-button:disabled{background:var(--color-success-soft);color:var(--color-success);opacity:1}.lobby-clarify{background:var(--color-surface-alt);border-radius:var(--radius-md);box-shadow:none;margin-top:1em;padding:1em 1.25em}.lobby-clarify-question{font-weight:600}.lobby-clarify-options{flex-wrap:wrap;gap:.5em;margin:.5em 0;display:flex}.lobby-clarify-options button{background:var(--color-primary-soft);color:var(--color-primary-hover)}.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(--color-surface-alt);border:1px solid var(--color-border);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{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.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:600}.player-card-status,.player-card-ready{color:var(--color-text-muted);font-size:.85rem}.typing-indicator{color:var(--color-text-faint);font-style:italic}.lobby-share-actions{gap:.5em;display:flex}.icon-button{width:2.4em;height:2.4em;color:var(--color-primary-hover);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(--color-amber)}.gen-status-done{color:var(--color-success)}.gen-status-failed{color:var(--color-danger)}.gen-status-needs-you,.gen-status-needs-other{color:var(--color-text-muted)}.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(--color-success)}.gen-icon-failed{color:var(--color-danger)}.gen-status-failed button{margin-left:.3em;padding:.25em .7em;font-size:.85rem}.gen-progress-bar{border-radius:var(--radius-pill);background:var(--color-amber-soft);vertical-align:middle;width:4.5em;height:.35em;display:inline-block;overflow:hidden}.gen-progress-bar-fill{border-radius:var(--radius-pill);background:var(--color-amber);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{border-radius:var(--radius-pill);cursor:pointer;background:var(--color-surface);box-shadow:var(--shadow-soft);transition:transform .35s var(--ease-spring);align-items:center;margin:.2em;padding:.55em 1.1em;display:inline-flex}.selfie-upload-label:hover{transform:translateY(-1px)scale(1.02)}.selfie-camera{margin-top:.5em}.selfie-video{border-radius:var(--radius-md);width:240px;max-width:100%;box-shadow:var(--shadow-soft);background:#000}.selfie-error{color:var(--color-danger)}.selfie-preview{margin-top:.5em}.selfie-preview img{box-shadow:var(--shadow-avatar);border-radius:50%;margin-bottom:.5em;display:block}.question-screen,.tally-screen,.reveal-screen{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:1.5em}.question-round-banner{background:var(--color-primary-soft);color:var(--color-primary-hover);border-radius:var(--radius-pill);margin:0 0 .75em;padding:.4em 1em;font-size:.9rem;font-weight:600;display:inline-block}.question-header{flex-wrap:wrap;align-items:center;gap:1em;margin-bottom:.5em;display:flex}.question-category{font-size:1.1rem;font-weight:650}.question-value{background:var(--color-primary-soft);color:var(--color-primary-hover);border-radius:var(--radius-pill);padding:.2em .8em;font-size:.9rem;font-weight:650}.question-timer{margin-left:auto}.question-text{margin:.75em 0 1.25em;font-size:1.15rem;line-height:1.5}.question-options{flex-direction:column;gap:.6em;padding:0;list-style:none;display:flex}.option-button{text-align:left;border-radius:var(--radius-md);background:var(--color-surface-alt);border:2px solid #0000;width:100%;padding:.85em 1.1em;font-size:1rem}.option-button-selected{border-color:var(--color-primary);background:var(--color-primary-soft)}.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:.5;transition:opacity .35s var(--ease-smooth);flex-direction:column;align-items:center;gap:.3em;font-size:.85rem;display:flex}.lock-row-locked{opacity:1;animation:lock-in-pop .5s var(--ease-spring)}.lock-badge{color:var(--color-primary-hover);font-size:.85em;font-weight:650}.tally-options{flex-direction:column;gap:.75em;padding:0;list-style:none;display:flex}.tally-option{border-radius:var(--radius-md);background:var(--color-surface-alt);padding:.75em 1em}.tally-option-text{margin-bottom:.4em;font-weight:600}.tally-avatars{min-height:2.75em}.tally-noanswer{border:1px dashed var(--color-border);border-radius:var(--radius-md);margin-top:1em;padding:.75em 1em}.reveal-options{padding:0;list-style:none}.reveal-option{border-radius:var(--radius-md);background:var(--color-surface-alt);transform-origin:top;animation:reveal-flip-in .5s var(--ease-spring) both;margin-bottom:.4em;padding:.75em 1em}.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(--color-success-soft);color:var(--color-success);border-radius:var(--radius-pill);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:650;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(--color-success-soft);box-shadow:0 0 0 2px var(--color-success) inset;font-weight:650}.reveal-option-wrong{opacity:.55}.reveal-deltas{margin-top:1em;padding:0;list-style:none}.reveal-delta-row{border-bottom:1px solid var(--color-border);animation:delta-row-rise-in .45s var(--ease-spring) both;align-items:center;gap:.7em;padding:.4em 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(--color-success);animation:delta-pulse-positive .6s var(--ease-spring) both;animation-delay:.35s}.delta-negative{color:var(--color-danger);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}.pause-toggle-button{background:var(--color-amber-soft);color:#7a520c;border-radius:var(--radius-pill);padding:.5em 1.2em;font-size:.9rem;font-weight:650}.pause-toggle-button:hover{background:var(--color-amber);color:#fff}.final-screen,.round-break-screen{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);text-align:center;padding:2em}.round-break-subtitle{color:var(--color-text-muted);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}.scoreboard{background:var(--color-surface);border-radius:var(--radius-lg);position:fixed;overflow-y:auto}.scoreboard-overlay{width:320px;max-height:80vh;box-shadow:var(--shadow-soft-lg);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:1px solid var(--color-border);align-items:flex-start;gap:.7em;padding:.6em 0;display:flex}.scoreboard-row:last-child{border-bottom:none}.scoreboard-rank{width:1.6em;color:var(--color-text-muted);font-weight:700}.scoreboard-details{flex:1}.scoreboard-name-line{align-items:center;gap:.4em;display:flex}.scoreboard-name{font-weight:600}.scoreboard-category{color:var(--color-text-muted);margin-top:.1em;font-size:.85rem}.scoreboard-score{margin-left:auto;font-weight:700}.scoreboard-breakdown{color:var(--color-text-muted);margin:.3em 0 0;padding:0;font-size:.85em;list-style:none}@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}}
