*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body,h1,h2,h3,p,figure{margin:0}ul{margin:0;padding:0;list-style:none}button{font:inherit;color:inherit;cursor:pointer;appearance:none;background:0 0;border:0}input{font:inherit;color:inherit;background:0 0;border:0}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}table{border-collapse:collapse}:root{--color-bg:#faf8f3;--color-surface:#fff;--color-border:#e6e2d8;--color-border-strong:#d3cebf;--color-text:#1c1b18;--color-text-muted:#7a7568;--color-text-faint:#a8a396;--color-accent:#2f9e56;--color-accent-soft:#e2f3e6;--color-accent-strong:#227a41;--color-warning:#ffc107;--color-warning-soft:#fff3cd;--color-warning-strong:#664d03;--color-danger:#c1443c;--color-danger-soft:#f6e6e4;--color-focus:#1c6fd6;--font-display:"Space Grotesk", "Segoe UI", system-ui, sans-serif;--font-body:"Inter", "Segoe UI", system-ui, sans-serif;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-lg:1.125rem;--fs-xl:1.375rem;--fs-2xl:1.75rem;--fs-word:clamp(2rem, 8vw, 2.75rem);--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--shadow-card:0 1px 2px #1c1b180a, 0 8px 24px #1c1b180f;--app-max-width:420px;--app-max-width-desktop:480px;--ease-standard:cubic-bezier(.4, 0, .2, 1);--duration-fast:.12s}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html,body{overscroll-behavior:none}body{font-family:var(--font-body);font-size:var(--fs-base);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}.app{min-height:100dvh;padding:var(--space-6) var(--space-4) var(--space-10);flex-direction:column;justify-content:space-between;align-items:center;display:flex}.app__inner{width:100%;min-height:0;max-width:var(--app-max-width);flex-direction:column;flex:1;display:flex}@media (width>=720px){.app{padding-top:var(--space-10)}.app__inner{flex:initial;max-width:var(--app-max-width-desktop)}}footer{flex-direction:column;align-items:center;gap:1em;margin-top:1em;display:flex}.footer__group{justify-content:space-between;align-items:center;gap:var(--space-1);flex-direction:column;display:flex}footer .logo{max-width:50px}.footer__logo{aspect-ratio:4000/4130.43;width:50px;display:block;position:relative}.footer__logo .logo{width:100%;max-width:none;position:absolute;inset:0}.footer__logo .logo--frown,:is(.footer__group:has(.footer__quit:hover) .logo--smile,.footer__group:has(.footer__quit:focus-visible) .logo--smile,.footer__group:has(.footer__quit:active) .logo--smile){opacity:0}:is(.footer__group:has(.footer__quit:hover) .logo--frown,.footer__group:has(.footer__quit:focus-visible) .logo--frown,.footer__group:has(.footer__quit:active) .logo--frown){opacity:1}.footer__link{border-radius:var(--radius-md);font-size:var(--fs-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none}.footer__link:hover,.footer__link:focus-visible,.footer__link:active{font-weight:bolder;transform:scale(1.02)}.footer__link:hover{background:var(--color-bg)}.footer__link:active{transform:scale(.98)}.footer__link:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.footer__quit:hover,.footer__quit:focus-visible,.footer__quit:active{color:var(--color-danger)}.footer__sound:hover,.footer__sound:focus-visible,.footer__sound:active{color:var(--color-accent-strong)}.screen{gap:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-height:0;box-shadow:var(--shadow-card);padding:var(--space-6);flex-direction:column;flex:1;display:flex}@media (width>=720px){.screen{flex:initial}}.screen__header{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.screen__title{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-semibold);letter-spacing:-.01em}.screen__hint{font-size:var(--fs-sm);color:var(--color-text-muted)}.screen__form{gap:var(--space-6);flex-direction:column;display:flex}:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.btn{justify-content:center;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);font-size:var(--fs-base);font-weight:var(--fw-semibold);border-radius:var(--radius-md);transition:background var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);border:1px solid #0000;display:inline-flex}.btn:active{transform:scale(.98)}.btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.btn:disabled:active{transform:none}.btn--primary{color:#fff;background:var(--color-accent)}.btn--primary:hover{background:var(--color-accent-strong)}.btn--secondary{color:var(--color-text);background:var(--color-surface);border-color:var(--color-border-strong)}.btn--secondary:hover{border-color:var(--color-text-faint)}.btn--icon{width:auto;padding:var(--space-2);border-radius:var(--radius-pill);color:var(--color-text-muted)}.btn--icon:hover{color:var(--color-text);background:var(--color-bg)}.turn-curtain__continue{color:var(--color-text);background:var(--color-surface);border-color:var(--color-border-strong);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:relative;overflow:hidden}.turn-curtain__continue:hover{background:var(--color-accent-soft);border-color:var(--color-text-faint)}.turn-curtain__continue-fill{background:var(--color-accent);width:0%;transition:none;position:absolute;inset:0}.turn-curtain__continue--holding .turn-curtain__continue-fill{width:100%;transition:width var(--hold-duration,3s) linear}@media (prefers-reduced-motion:reduce){.turn-curtain__continue-fill{display:none}}.turn-curtain__continue-label{z-index:1;position:relative}.stepper{align-items:center;gap:var(--space-3);display:flex}.stepper__btn{width:32px;height:32px;font-size:var(--fs-lg);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);justify-content:center;align-items:center;line-height:1;display:inline-flex}.stepper__btn:hover{border-color:var(--color-text-faint)}.stepper__value{text-align:center;min-width:2ch;font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums}.field-row{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.field-row__label{font-size:var(--fs-base);font-weight:var(--fw-medium)}.field-row__help{margin-top:calc(var(--space-1) * -1);font-size:var(--fs-xs);color:var(--color-text-muted)}.input{width:100%;padding:var(--space-3);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm)}.input::placeholder{color:var(--color-text-faint)}.input:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.input-add{gap:var(--space-2);display:flex}.input-add .input{flex:1}.input-add__error{font-size:var(--fs-xs);color:var(--color-danger);margin-top:calc(var(--space-2) * -1)}.checkbox{appearance:none;background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);cursor:pointer;width:22px;height:22px;transition:background var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);flex-shrink:0;position:relative}.checkbox:hover{border-color:var(--color-text-faint)}.checkbox:checked{background:var(--color-accent);border-color:var(--color-accent)}.checkbox:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:10px;position:absolute;top:3px;left:7px;transform:rotate(45deg)}.checkbox:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.game-start{flex-direction:column;justify-content:space-between;align-items:center;gap:2em;display:flex}#game-start-title{text-align:center;font-size:48pt}.game-start .logo{max-width:40%}.game-start button{width:50%}.round-curtain{text-align:center;align-items:center}.round-curtain__round-name{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:var(--fw-bold);letter-spacing:-.01em}.round-curtain__instructions{color:var(--color-text-muted);font-size:var(--fs-base)}.round-curtain__ready{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.word-list{gap:var(--space-2);flex-direction:column;min-height:40px;display:flex}.word-list__item{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);display:flex}.word-list__item span{overflow-wrap:break-word;min-width:0}.word-list__remove{color:var(--color-text-faint);flex-shrink:0}.word-list__remove:hover{color:var(--color-danger)}.counter{font-size:var(--fs-xs);color:var(--color-text-muted);text-align:right}.done__error{font-size:var(--fs-xs);color:var(--color-danger)}.teams{gap:var(--space-3);flex-direction:column;display:flex}.team-row{align-items:center;gap:var(--space-3);display:flex}.team-row .input{flex:1}.team-row .stepper{flex-shrink:0}.setup-status{font-size:var(--fs-xs);color:var(--color-text-muted)}.setup-error{font-size:var(--fs-xs);color:var(--color-danger)}.turn-meta{justify-content:space-between;align-items:center;display:flex}.badge{padding:var(--space-1) var(--space-3);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--color-text-muted);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-pill)}.timer{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums}.turn-indicator{text-align:center;font-size:var(--fs-sm);color:var(--color-text-muted)}.word-card{min-height:160px;padding:var(--space-6);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);flex:1;justify-content:center;align-items:center;transition:background-color .2s;display:flex;overflow:hidden}.word-card--skip{background-color:var(--color-danger);transition:none}.word-card--correct{background-color:var(--color-accent);transition:none}.word-card__word{font-family:var(--font-display);font-size:var(--fs-word);font-weight:var(--fw-bold);letter-spacing:-.01em;text-align:center;text-transform:uppercase;overflow-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;max-width:100%}.turn-stage{touch-action:none}.turn-controls{padding:var(--space-3) var(--space-5);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-pill);justify-content:space-between;align-items:center;display:flex;position:relative}.turn-controls__knob{width:36px;height:36px;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border-strong);box-shadow:var(--shadow-card);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.turn-controls__side{align-items:center;gap:var(--space-2);font-size:var(--fs-base);font-weight:var(--fw-semibold);display:flex}.turn-controls__side--skip{color:var(--color-danger)}.turn-controls__side--pass{color:var(--color-accent-strong)}.turn-controls__side:disabled{color:var(--color-text-muted)}.turn-controls__side--active,.turn-controls__side:not(:disabled):hover{transform:scale(1.08)}.words-left{text-align:center;font-size:var(--fs-xs);color:var(--color-text-muted)}.score-table{width:100%;font-size:var(--fs-sm)}.score-table th,.score-table td{padding:var(--space-3) var(--space-2);text-align:right}.score-table th:first-child,.score-table td:first-child{text-align:left}.score-table thead th{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.score-table tbody td{border-bottom:1px solid var(--color-border)}.score-table tbody tr:last-child td{border-bottom:0}.score-table td:first-child,.score-table td:last-child,.score-table th:last-child{font-weight:var(--fw-semibold)}.score-table tr.is-winner{background:var(--color-accent-soft)}.score-table tr.is-winner td{color:var(--color-accent-strong)}.score-table tr.is-tied{background:var(--color-warning-soft)}.score-table tr.is-tied td{color:var(--color-warning-strong)}
