:root{--ink:#f3ece0;--ink-dim:#a2968a;--warm:#ffce7a;--panel:#14100e9e;--edge:#ffeccd24;--domino-red:#e02b34;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{background:#0e0c0b;height:100%;margin:0;overflow:hidden}body{color:var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;overscroll-behavior:none;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}canvas{touch-action:none;display:block}.hud{padding:max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:fixed;inset:0}.hud button{pointer-events:auto}.hud-top{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.scores{flex-wrap:wrap;gap:.4rem;display:flex}.score{background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #0000;border-radius:.6rem;grid-template-rows:auto auto;grid-template-columns:auto auto;align-items:baseline;gap:0 .4rem;min-width:5.4rem;padding:.4rem .6rem;transition:border-color .16s,background .16s;display:grid}.score.active{border-color:var(--warm);background:#382816b3}.score .name{letter-spacing:.02em;font-size:.78rem}.score .wins{font-variant-numeric:tabular-nums;grid-area:1/2/span 2;align-self:center;font-size:1.6rem;line-height:1}.score .bones{color:var(--ink-dim);font-size:.66rem}.meta{background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ink-dim);border-radius:.6rem;flex-direction:column;align-items:flex-end;gap:.15rem;padding:.4rem .6rem;font-size:.74rem;display:flex}.hangup{color:var(--warm);font-variant-numeric:tabular-nums}@keyframes beat-in{0%{opacity:0;transform:translateY(.6rem)scale(.94)}to{opacity:1;transform:none}}.beat{border:1px solid var(--edge);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);text-align:center;background:#120e0cc7;border-radius:1rem;flex-direction:column;align-items:center;gap:.35rem;padding:1.1rem 2rem;animation:.22s cubic-bezier(.2,1.3,.4,1) both beat-in;display:flex;position:absolute;top:42%;left:50%;translate:-50% -50%}.beat-title{letter-spacing:.14em;font-size:clamp(1.6rem,7vw,2.6rem);font-weight:700;line-height:1}.beat-sub{color:var(--ink-dim);font-size:.9rem}.beat-pips{color:var(--ink-dim);font-variant-numeric:tabular-nums;gap:.7rem;font-size:.68rem;display:flex}.beat.count{top:auto;bottom:max(.9rem, env(safe-area-inset-bottom));gap:.55rem;min-width:min(22rem,100vw - 1.8rem);padding:.9rem 1.2rem;left:50%;translate:-50%}@media (width>=800px){.beat.count{top:50%;bottom:auto;left:1.25rem;translate:0 -50%}}.beat.count .beat-title{font-size:clamp(1.1rem,4vw,1.5rem)}.beat-title.domino{color:var(--domino-red);text-shadow:0 0 22px #e02b3473}.tally{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.tally th{text-align:left;padding:.2rem .5rem .2rem 0;font-size:.78rem;font-weight:500}.tally .parts{color:var(--ink-dim);white-space:nowrap;padding:.2rem .5rem;font-size:.7rem}.tally .parts span+span:before{content:"+";opacity:.55;margin:0 .3rem}.tally .parts em{opacity:.7;margin-right:.25rem;font-style:normal}.tally .sum{text-align:right;border-left:1px solid var(--edge);padding:.2rem 0 .2rem .5rem;font-size:1rem}.tally .took th,.tally .took .sum{color:var(--warm)}.award{color:var(--ink-dim);border-top:1px solid var(--edge);width:100%;padding-top:.5rem;font-size:.86rem}.award strong{color:var(--warm);font-variant-numeric:tabular-nums;font-size:1.15rem}.beat.final{gap:.8rem;padding:1.6rem 2.4rem}.beat.final .primary{margin-top:.4rem}.beat.shutout .beat-title{color:var(--warm);text-shadow:0 0 26px #ffce7a8c}@media (prefers-reduced-motion:reduce){.beat{animation:none}}button.ghost{min-height:1.6rem;color:var(--ink-dim);background:0 0;border-color:#0000;padding:0 .5rem;font-size:.66rem}button.ghost:hover{color:var(--warm)}button{font:inherit;color:var(--ink);border:1px solid var(--edge);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#281e16cc;border-radius:.6rem;min-height:2.75rem;padding:0 1.1rem}button:hover{border-color:var(--warm)}button.primary{background:var(--warm);color:#22190f;border-color:#0000;font-weight:600}.menu{padding:max(1.25rem, env(safe-area-inset-top)) 1.25rem max(1.25rem, env(safe-area-inset-bottom));flex-direction:column;gap:1.1rem;max-width:34rem;margin:0 auto;display:flex;position:fixed;inset:0;overflow-y:auto}.menu header{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.menu h1{letter-spacing:.04em;margin:0;font-size:1.6rem;font-weight:600}.menu h2{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);margin:0;font-size:.72rem;font-weight:500}.pick{flex-direction:column;gap:.5rem;display:flex}.pick-head{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.tables{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.table{background:var(--panel);border:1px solid #0000;border-radius:.7rem;grid-template-columns:auto 1fr auto auto;align-items:center;gap:.7rem;padding:.55rem .7rem;display:grid}.table.live{opacity:.72}.code{letter-spacing:.12em;color:var(--warm);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95rem}.table .what{flex-direction:column;min-width:0;display:flex}.table .what strong{font-size:.9rem;font-weight:500}.table .what em{color:var(--ink-dim);text-overflow:ellipsis;white-space:nowrap;font-size:.66rem;font-style:normal;overflow:hidden}.table .count{font-variant-numeric:tabular-nums;color:var(--ink-dim);font-size:.85rem}.menu footer{flex-direction:column;gap:.6rem;margin-top:auto;padding-top:.6rem;display:flex}button.big{min-height:3rem;font-size:1rem}.by-code{gap:.5rem;display:flex}.by-code input{border:1px solid var(--edge);background:var(--panel);min-height:2.6rem;color:var(--ink);letter-spacing:.14em;border-radius:.6rem;flex:1;padding:0 .75rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95rem}.by-code input::placeholder{letter-spacing:normal;color:var(--ink-dim)}.lobby{padding:max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0807d1;flex-direction:column;justify-content:center;gap:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.lobby header{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.lobby h1{letter-spacing:.02em;margin:0;font-size:1.1rem;font-weight:600}.link{color:var(--ink-dim);font-size:.7rem}.link.online{color:#7fd6a2}.link.offline{color:#ff9d8a}.games{gap:.5rem;display:flex}.games .game{background:var(--panel);text-align:left;cursor:pointer;border:1px solid #0000;border-radius:.7rem;flex-direction:column;flex:1;align-items:flex-start;gap:.15rem;padding:.6rem .75rem;display:flex}.games .game.on{border-color:var(--warm)}.game-name{font-size:.95rem}.game-sub{color:var(--ink-dim);font-size:.68rem}.seats{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.seat.side-0{box-shadow:inset .18rem 0 #ffce7a8c}.seat.side-1{box-shadow:inset .18rem 0 #7abeff80}.seat .side{opacity:.7;font-size:.62rem;font-style:normal;display:block}.seat{background:var(--panel);border:1px solid #0000;border-radius:.7rem;grid-template-columns:4.5rem 1fr auto;align-items:center;gap:.6rem;padding:.6rem .75rem;display:grid}.seat.mine{border-color:var(--warm)}.seat .where{color:var(--ink-dim);font-size:.7rem}.seat .who{font-size:.95rem}.seat .who.empty{color:var(--ink-dim);font-style:italic}.seat-actions{align-items:center;gap:.4rem;display:flex}.seat-actions button{min-height:2.25rem;padding:0 .75rem;font-size:.8rem}.tag{color:var(--ink-dim);background:#ffffff12;border-radius:999px;padding:.15rem .45rem;font-size:.66rem}.tag.ok{color:#9fe3bb;background:#7fd6a229}.tag.warn{color:#ffb3a3;background:#ff9d8a29}.lobby footer{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.hint{color:var(--ink-dim);margin:0;font-size:.78rem}.hint.warn{color:#ffb3a3}.hud-seed{right:max(.75rem, env(safe-area-inset-right));bottom:max(.75rem, env(safe-area-inset-bottom));color:var(--ink-dim);align-items:center;gap:.5rem;font-size:.7rem;display:flex;position:fixed}.hud-seed button{min-height:2rem;padding:0 .7rem;font-size:.7rem}
