.ui-button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-target);padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);font:inherit;cursor:pointer;border:2px solid #0000;font-weight:600;display:inline-flex}.ui-button:disabled{cursor:not-allowed;opacity:.6}.ui-button--primary{background:var(--color-primary);color:var(--color-on-primary)}.ui-button--primary:hover:not(:disabled){background:var(--color-primary-hover)}.ui-button--secondary{background:var(--color-surface);border-color:var(--color-primary);color:var(--color-primary)}.ui-button--secondary:hover:not(:disabled){background:var(--color-surface-muted)}.ui-button--danger{background:var(--color-danger);color:var(--color-on-primary)}.ui-button--full{width:100%}.ui-field{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.ui-field__label{font-weight:600}.ui-field__hint{color:var(--color-text-muted);font-size:var(--font-size-sm)}.ui-field__input{min-height:var(--tap-target);padding:var(--space-2) var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit}.ui-field__input[aria-invalid=true]{border-color:var(--color-danger)}.ui-field__error{color:var(--color-danger);font-size:var(--font-size-sm)}.ui-loading{align-items:center;gap:var(--space-3);padding:var(--space-5) 0;color:var(--color-text-muted);display:flex}.ui-loading__spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:1.5rem;height:1.5rem;animation:.8s linear infinite ui-spin}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-error{padding:var(--space-4);border:2px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-danger-bg);color:var(--color-text)}.ui-error__title{margin:0 0 var(--space-2);color:var(--color-danger);font-size:var(--font-size-md)}.ui-error__message{margin:0}.ui-error .ui-button{margin-top:var(--space-3)}.home-header{margin-bottom:var(--space-5)}.home-intro{color:var(--color-text-muted);margin:0}.home-joining{margin:var(--space-4) 0 0;font-size:var(--font-size-lg)}.home-code{letter-spacing:.15em;font-family:ui-monospace,Cascadia Mono,Menlo,Consolas,monospace}.home-forms{gap:var(--space-5);display:grid}.home-card{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.home-card h2{margin-bottom:var(--space-2);font-size:var(--font-size-lg)}.home-card__text{margin:0 0 var(--space-4);color:var(--color-text-muted)}.home-card .ui-error{margin-bottom:var(--space-4)}.home-code-input{font-family:ui-monospace,Cascadia Mono,Menlo,Consolas,monospace;font-size:var(--font-size-lg);letter-spacing:.15em;text-transform:uppercase}.home-offline{margin:0 0 var(--space-5);padding:var(--space-3) var(--space-4);border-left:4px solid var(--color-warning);border-radius:var(--radius-sm);background:var(--color-surface-muted);font-weight:600}.home-offline:empty{border:0;margin:0;padding:0}.home-dead-end{padding:var(--space-4);border:2px solid var(--color-border);border-left:6px solid var(--color-warning);border-radius:var(--radius-md);background:var(--color-surface-muted)}.home-dead-end__title{margin:0 0 var(--space-2);font-size:var(--font-size-lg)}.home-dead-end__text{margin:0 0 var(--space-4)}.home-dead-end .ui-button{text-decoration:none}@media (width<=400px){.home-card{padding:var(--space-4)}}.lb__heading{font-size:var(--font-size-lg)}.lb__table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.lb__table th,.lb__table td{padding:var(--space-2);border-bottom:1px solid var(--color-border);text-align:left}.lb__rank,.lb__score,.lb__delta{white-space:nowrap;width:1%}.lb__table thead th:nth-child(n+3),.lb__score,.lb__delta{text-align:right}.lb__name{overflow-wrap:anywhere}.lb__score{font-weight:700}.lb__delta{color:var(--color-text-muted)}.lb__row--me{background:var(--color-surface-muted)}.lb__row--me .lb__name{font-weight:700}.lb__empty{color:var(--color-text-muted)}.lb-final__winner{margin-bottom:var(--space-5);padding:var(--space-4);border:2px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-card);text-align:center}.lb-final__headline{font-size:var(--font-size-xl);overflow-wrap:anywhere;margin:0;font-weight:700}.lb-final__detail{margin:var(--space-2) 0 0;color:var(--color-text-muted);overflow-wrap:anywhere}.lb-final__new{margin-top:var(--space-5);text-decoration:none}.game-mode-picker{gap:var(--space-2);margin:0 0 var(--space-5);border:0;padding:0;display:grid}.game-mode-picker__legend{margin-bottom:var(--space-2);padding:0;font-weight:600}.game-mode-picker__option{align-items:flex-start;gap:var(--space-3);min-height:var(--tap-target);padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;display:flex}.game-mode-picker__option:has(input:checked){border-color:var(--color-primary);background:var(--color-surface-muted)}.game-mode-picker__option:has(input:focus-visible){outline:var(--focus-ring);outline-offset:var(--focus-offset)}.game-mode-picker:disabled .game-mode-picker__option{cursor:not-allowed;opacity:.6}.game-mode-picker__option input{accent-color:var(--color-primary);margin-top:.3rem}.game-mode-picker__text{display:grid}.game-mode-picker__label{font-weight:600}.game-mode-picker__description{color:var(--color-text-muted);font-size:var(--font-size-sm)}.game-round__meta{margin:0 0 var(--space-2);color:var(--color-text-muted);font-weight:600}.game-round__prompt{font-size:var(--font-size-xl)}.game-round__instructions{color:var(--color-text-muted)}.game-round__form{gap:var(--space-4);display:grid}.game-options{gap:var(--space-2);border:0;margin:0;padding:0;display:grid}.game-option{align-items:center;gap:var(--space-3);min-height:var(--tap-target);padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--font-size-lg);cursor:pointer;display:flex}.game-option:has(input:checked){border-color:var(--color-primary);background:var(--color-surface-muted)}.game-option:has(input:focus-visible){outline:var(--focus-ring);outline-offset:var(--focus-offset)}.game-options:disabled .game-option{cursor:not-allowed;opacity:.6}.game-option input{accent-color:var(--color-primary)}.game-word{gap:var(--space-2);display:grid}.game-word__label{font-weight:600}.game-word__input{min-height:var(--tap-target);padding:var(--space-2) var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-md);font:inherit;font-size:var(--font-size-lg)}.game-word__counter{color:var(--color-text-muted);font-size:var(--font-size-sm)}.game-round__error{color:var(--color-danger);margin:0}.game-round__status{margin-top:var(--space-5);color:var(--color-text-muted)}.game-round__status p{margin:0 0 var(--space-1)}.game-results__prompt{font-size:var(--font-size-lg)}.game-results__outcome{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-success-bg);font-weight:600}.game-results__table{width:100%;margin-bottom:var(--space-5);border-collapse:collapse}.game-results__table th,.game-results__table td{padding:var(--space-2);border-bottom:1px solid var(--color-border);text-align:left}.game-mark{color:var(--color-danger);font-weight:600}.game-mark--correct{color:var(--color-success)}.game-host{gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border);display:grid}.game-host-wait{margin-top:var(--space-5);color:var(--color-text-muted)}.game-round__prompt{font-size:clamp(var(--font-size-xl), 6vw + .5rem, var(--font-size-xxl));overflow-wrap:anywhere;line-height:1.2}.game-round__prompt:focus,#game-results-heading:focus{outline:none}.game-round__prompt:focus-visible,#game-results-heading:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.game-option{overflow-wrap:anywhere;min-height:3.5rem}.game-option input{flex-shrink:0;width:1.25rem;height:1.25rem}.game-word__input{min-height:3.5rem}.game-results__prompt{overflow-wrap:anywhere}.game-results__outcome{font-size:var(--font-size-lg);overflow-wrap:anywhere}.game-results__scroll{overflow-x:auto}.game-results__table td,.game-results__table th{overflow-wrap:anywhere}.game-notice{padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);font-weight:600}@media (width<=400px){.game-results__table th,.game-results__table td{padding:var(--space-2) var(--space-1)}.game-option{padding:var(--space-3);font-size:var(--font-size-md)}}.lobby-share,.lobby-players,.lobby-host{margin-bottom:var(--space-5)}.lobby-start{gap:var(--space-3);margin-top:var(--space-4);display:grid}.lobby-share{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);text-align:center}.lobby-share__label{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0;font-weight:600;display:block}.lobby-code{margin:0 0 var(--space-4);letter-spacing:.2em;padding-left:.2em;font-family:ui-monospace,Cascadia Mono,Menlo,Consolas,monospace;font-size:clamp(2.5rem,14vw,5.5rem);font-weight:700;line-height:1.1}.lobby-link{text-align:left}.lobby-link__row{gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.lobby-link__input{min-width:0;min-height:var(--tap-target);padding:var(--space-2) var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);color:var(--color-text);font:inherit;font-size:var(--font-size-sm);flex:12rem}.lobby-link__row .ui-button{flex:1 0 auto}.lobby-link__status{min-height:1.5em;margin:var(--space-2) 0 0;color:var(--color-success);font-size:var(--font-size-sm)}.lobby-link__status--failed{color:var(--color-danger)}.lobby-player-list{gap:var(--space-2);margin:0 0 var(--space-3);padding:0;list-style:none;display:grid}.lobby-player{align-items:center;gap:var(--space-2);min-height:var(--tap-target);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);flex-wrap:wrap;display:flex}.lobby-player--me{border-width:2px;border-color:var(--color-primary)}.lobby-player__name{overflow-wrap:anywhere;flex:auto;min-width:0;font-weight:600}.lobby-badge{padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm);white-space:nowrap;font-weight:600}.lobby-badge--host{background:var(--color-surface-muted);color:var(--color-text)}.lobby-badge__icon{color:var(--color-warning)}.lobby-badge--me{background:var(--color-primary);color:var(--color-on-primary)}.lobby-muted{color:var(--color-text-muted);margin:0}.lobby-waiting{padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-muted);text-align:center;font-weight:600}@media (width<=400px){.lobby-share{padding:var(--space-4)}}:root{--color-bg:#fdf8f3;--color-surface:#fff;--color-surface-muted:#f3ede6;--color-text:#1f1b2d;--color-text-muted:#5b5670;--color-border:#d9d2c9;--color-primary:#5b3cc4;--color-primary-hover:#4a2fa8;--color-on-primary:#fff;--color-danger:#b42318;--color-danger-bg:#fef3f2;--color-success:#067647;--color-success-bg:#ecfdf3;--color-warning:#b54708;--color-focus:#f79009;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--font-family:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.25rem;--font-size-xl:1.75rem;--font-size-xxl:2.5rem;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-card:0 2px 8px #1f1b2d14;--focus-ring:3px solid var(--color-focus);--focus-offset:2px;--content-max-width:40rem;--tap-target:44px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--color-bg);min-height:100vh;color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-md);margin:0;line-height:1.5}h1,h2,h3{margin:0 0 var(--space-4);line-height:1.2}a{color:var(--color-primary)}:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.app-main{max-width:var(--content-max-width);padding:var(--space-5) var(--space-4);margin:0 auto}.app-banner{z-index:1;padding:var(--space-2) var(--space-4);border-bottom:3px solid var(--color-warning);background:var(--color-surface-muted);color:var(--color-text);text-align:center;margin:0;font-weight:600;position:sticky;top:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
