:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#fafafa;--fg:#111;--muted:#555;--line:#d4d4d4;--card:#fff;--accent:#1d4ed8;--accent-fg:#fff;--target-size:24px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f0f10;--fg:#f4f4f5;--muted:#a1a1aa;--line:#3f3f46;--card:#1c1c1f;--accent:#60a5fa;--accent-fg:#0b0b0c}}@media (pointer:coarse){:root{--target-size:44px}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);margin:0}body{overflow-wrap:anywhere;-webkit-text-size-adjust:100%}main{min-block-size:100dvh;max-inline-size:32rem;padding:max(1.25rem, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) max(1.25rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left));flex-direction:column;margin-inline:auto;display:flex}h1{text-wrap:balance;margin:0;font-size:clamp(2rem,9vw,2.75rem);line-height:1.1}p{text-wrap:pretty;margin:0}.muted{color:var(--muted)}button,input{font:inherit;color:inherit;touch-action:manipulation}button{min-block-size:max(var(--target-size), 3rem);min-inline-size:var(--target-size);border:2px solid var(--line);background:var(--card);cursor:pointer;border-radius:.875rem;padding:.75rem 1.25rem;font-weight:600}button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button:disabled{cursor:default}.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);min-block-size:3.5rem;font-size:1.125rem}.link{color:var(--muted);background:0 0;border:none;text-decoration:underline}.center{text-align:center;margin-block:auto}.stack{flex-direction:column;gap:1rem;display:flex}.row{gap:.5rem;display:flex}.join{text-align:start;flex-direction:column;gap:.5rem;margin-block-start:1.5rem;display:flex}.join input{letter-spacing:.3em;text-transform:uppercase;border:2px solid var(--line);background:var(--card);border-radius:.875rem;flex:1;min-block-size:3rem;min-inline-size:0;padding:.5rem 1rem;font-size:1.5rem}.code{letter-spacing:.15em;font-variant-numeric:tabular-nums;font-size:clamp(3.5rem,22vw,5.5rem);font-weight:800;line-height:1}.url{color:var(--muted);font-size:.95rem}.tip{min-block-size:1.5em;color:var(--muted)}.waiting{color:var(--muted);font-size:1.25rem}.game{flex-direction:column;flex:1;gap:.875rem;display:flex}.bar{color:var(--muted);justify-content:space-between;align-items:baseline;font-weight:600;display:flex}.secs{color:var(--fg);font-variant-numeric:tabular-nums;text-align:end;min-inline-size:2ch;font-size:2rem}.track{background:var(--line);border-radius:1rem;block-size:.5rem;overflow:hidden}.fill{background:var(--accent);transform-origin:0;block-size:100%;transition:transform .1s linear}.card{text-wrap:balance;border-radius:1.25rem;flex:1;min-block-size:8rem;font-size:clamp(1.5rem,7vw,2rem);line-height:1.2;transition:opacity .15s,transform .1s}.card:active:not(:disabled){transform:scale(.98)}.either{min-block-size:3.5rem;color:var(--muted);background:0 0;border-style:dashed}.chosen{border-color:var(--accent);outline:3px solid var(--accent);color:var(--fg)}.faded{opacity:.35}.hint{text-align:center;min-block-size:1.5em;color:var(--muted)}.reveal .winner{font-size:clamp(2.5rem,12vw,3.75rem);animation:.4s ease-out pop}@keyframes pop{0%{opacity:0;transform:scale(.9)}}@media (prefers-reduced-motion:reduce){.reveal .winner{animation:.3s fade}@keyframes fade{0%{opacity:0}}.card,.fill{transition:none}}
