:root{--cream:#fff4e2;--paper:#fffdf8;--ink:#2a1f33;--ink-soft:#66566f;--line:#2a1f33;--primary:#ff7a59;--hero:#ffd166;--danger:#c0392b;--focus:#5b3df5;--board-bg:#1f1626;--board-ink:#fff8ec;--g0:#ffd166;--g1:#7cc6f2;--g2:#ff8c75;--g3:#9be37a;--g4:#b9a3ff;--g5:#ffb15c;--g6:#4fd1c5;--g7:#ff9ec7;--radius:1.1rem;--font:ui-rounded, "SF Pro Rounded", "Nunito", "Avenir Next", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", sans-serif;--sticker:0 3px 0 var(--line)}*,:before,:after{box-sizing:border-box}html,body{background:var(--cream);color:var(--ink);font-family:var(--font);margin:0;font-size:100%;line-height:1.35}button,input,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.app{min-height:100dvh}.btn{border:2px solid var(--line);background:var(--paper);min-width:44px;min-height:44px;color:var(--ink);box-shadow:var(--sticker);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.55rem 1.1rem;font-weight:700;transition:transform 80ms,box-shadow 80ms,background-color .12s;display:inline-flex}.btn:hover:not(:disabled),.custom-timer button:hover:not(:disabled){background:#fff}.btn:active:not(:disabled){box-shadow:0 1px 0 var(--line);transform:translateY(2px)}.btn:disabled,.custom-timer button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-primary{background:var(--primary)}.btn-primary:hover:not(:disabled){background:#ff8c70}.btn-hero{background:var(--hero);padding:.65rem 1.6rem;font-size:1.15rem}.btn-hero:hover:not(:disabled){background:#ffdc85}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#d24a3b}.btn-small{padding:.3rem .9rem;font-size:.95rem}.avatar{vertical-align:middle;transform-origin:50% 88%;flex:none;width:1.75em;height:1.75em;margin-inline-end:.3em}.board-screen :is(.av-open,.av-shut,.av-glad){will-change:opacity}.av-shut,.av-glad,.avatar.blink .av-open{opacity:0}.avatar.blink .av-shut{opacity:1}.chip:hover .avatar,.roster-item:hover .avatar{animation:.56s ease-out av-hop}:is(.chip,.roster-item,.wall-members li):hover :is(.av-open,.av-shut){opacity:0}:is(.chip,.roster-item,.wall-members li):hover .av-glad{opacity:1}.notice{border-bottom:2px solid var(--line);background:#ffe8b0;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.notice[role=alert]{background:#ffc9bd}.notice p{margin:0}