:root{--bg:#fbf7ef;--fg:#22201c;--muted:#7a7368;--cell:#fff;--line:#e5ddcf;--accent:#e2531f;--accent-fg:#fff;--hit:#f6d9c9;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#1b1a18;--fg:#f1ece3;--muted:#9b9488;--cell:#262421;--line:#3a3732;--accent:#f06a37;--hit:#5a3020}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;overflow-x:clip}main{flex-direction:column;gap:14px;max-width:420px;margin:0 auto;padding:16px;display:flex}h1{text-align:center;letter-spacing:.15em;margin:8px 0}h1 a{color:inherit;text-decoration:none}p{margin:0}button,input{font:inherit;border:1px solid var(--line);border-radius:10px;padding:12px 16px}input{background:var(--cell);color:var(--fg);min-width:0}button{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);cursor:pointer;font-weight:600}button.secondary{color:var(--fg);border-color:var(--line);background:0 0}button:disabled{opacity:.45;cursor:default}.home{flex-direction:column;gap:12px;display:flex}.lead,.status,.caption{text-align:center;color:var(--muted)}.status{color:var(--fg);font-weight:500}.row{gap:8px;display:flex}.row>*{flex:1}.err{color:var(--accent);text-align:center}.seg{align-items:center;gap:6px;display:flex}.seg span{color:var(--muted);white-space:nowrap;margin-right:4px}.seg label{text-align:center;border:1px solid var(--line);background:var(--cell);cursor:pointer;border-radius:10px;flex:1;padding:12px 0;font-weight:600}.seg input{opacity:0;pointer-events:none;position:absolute}.seg label:hover{border-color:var(--accent)}.seg label:has(:checked){background:var(--hit);border-color:var(--accent);color:var(--accent)}.seg label:has(:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.invite{text-align:center;color:var(--muted);flex-direction:column;gap:8px;display:flex}.code{letter-spacing:.2em;color:var(--fg);font-size:2.5rem;font-weight:700}.players{gap:8px;display:flex}.score{border:1px solid var(--line);border-radius:10px;flex-direction:column;flex:1;gap:4px;padding:8px 12px;display:flex;position:relative}.score.active{border-color:var(--accent)}.bubble{z-index:1;background:var(--accent);color:var(--accent-fg);border-radius:14px;padding:8px 14px;font-size:1.1rem;font-weight:700;animation:.35s cubic-bezier(.22,1,.36,1) drop;position:absolute;top:calc(100% + 10px);left:12px;box-shadow:0 6px 16px #00000040}.bubble:before{content:"";border:8px solid #0000;border-bottom-color:var(--accent);position:absolute;bottom:100%;left:16px}@keyframes drop{0%{opacity:0;transform:translateY(-14px)scale(.6)}}@media (prefers-reduced-motion:reduce){.bubble{animation:none}.confetti{display:none}}.stage{isolation:isolate;position:relative}.stage .grid{z-index:1;background:var(--bg);position:relative}.confetti{pointer-events:none;position:absolute;inset:0;container-type:size}.confetti i{border-radius:2px;width:8px;height:13px;animation:3.4s both burst,3.4s both front;position:absolute}@keyframes burst{0%{animation-timing-function:cubic-bezier(.2,.7,.4,1);transform:translate(0)rotate(0)}28%{transform:translate(calc(var(--dx) * .6), var(--dy)) rotate(calc(var(--r) * .4));animation-timing-function:cubic-bezier(.45,0,.75,.5)}85%{opacity:1}to{transform:translate(var(--dx), 260px) rotate(var(--r));opacity:0}}@keyframes front{0%,27%{z-index:0}28%,to{z-index:2}}.letters{gap:6px;font-size:1.25rem;display:flex}.letters b{color:var(--muted)}.letters b.x{color:var(--accent);text-decoration:line-through;text-decoration-thickness:3px}.sets{color:var(--muted)}.dots{gap:5px;display:flex}.dots i{background:var(--line);border-radius:50%;width:9px;height:9px}.dots i.won{background:var(--accent)}.grid{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.grid button{aspect-ratio:1;background:var(--cell);color:var(--fg);border-color:var(--line);padding:0;font-size:1.3rem}.grid button:disabled{opacity:1}.grid button.empty{border-style:dashed}.grid button.called{background:var(--hit);color:var(--muted)}.grid button.line{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.grid button.last{outline:3px solid var(--fg);outline-offset:-3px}.grid:not(.small) button:not(:disabled):hover{border-color:var(--accent)}.grid.small{gap:3px;width:60%;margin:0 auto}.grid.small button{border-radius:6px;font-size:.8rem}
