@font-face{font-family:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/big-shoulders-display-vietnamese-700-normal-DCH5bIkD.woff2)format("woff2"),url(/assets/big-shoulders-display-vietnamese-700-normal-D5dmK5Ek.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/big-shoulders-display-latin-ext-700-normal-C8xZtiKd.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-ext-700-normal-D98SaizC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/big-shoulders-display-latin-700-normal-KM2fueoL.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-700-normal-CMi6UoP4.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/big-shoulders-display-vietnamese-900-normal-B_uE6zXf.woff2)format("woff2"),url(/assets/big-shoulders-display-vietnamese-900-normal-BKSkdzuv.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/big-shoulders-display-latin-ext-900-normal-HMld4L9H.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-ext-900-normal-DkuviPcI.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/big-shoulders-display-latin-900-normal-CW8trzgu.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-900-normal-DMT-1gsg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--slate:#18211f;--slate-raised:#22302d;--slate-high:#2d3e3a;--chalk:#ece6d6;--chalk-dim:#8f9a94;--red:#d0393b;--green:#2e9c5a;--brass:#cfa448;--font-numbers:"Big Shoulders Display", "Arial Narrow", sans-serif;--font-text:"Atkinson Hyperlegible", system-ui, sans-serif;--gutter:16px;--radius-key:10px;--radius-card:14px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{background-color:var(--slate);color:var(--chalk);font-family:var(--font-text);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");font-size:1rem;line-height:1.4}#root{min-height:100%}button,input{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}:focus-visible{outline:3px solid var(--brass);outline-offset:2px}.btn{border-radius:var(--radius-key);border:0;min-height:52px;padding:0 20px;font-size:1.0625rem;font-weight:700}.btn:disabled{opacity:.45}.btn-go{background:var(--green);color:#fff}.btn-quiet{background:var(--slate-high)}.btn-danger{color:#ff8a8a;box-shadow:inset 0 0 0 2px var(--red);background:0 0}.link-btn{color:var(--chalk-dim);text-underline-offset:3px;background:0 0;border:0;padding:12px 4px;text-decoration:underline}.text-input{background:var(--slate-raised);border:2px solid var(--slate-high);border-radius:var(--radius-key);width:100%;min-width:0;min-height:52px;padding:0 14px;font-size:1.0625rem}.text-input:focus{border-color:var(--brass);outline:none}.setup{max-width:520px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 24px) var(--gutter) 0;flex-direction:column;margin:0 auto;display:flex}.setup-header{align-items:baseline;gap:14px;margin-bottom:20px;display:flex}.setup-title{font-family:var(--font-numbers);color:var(--chalk);margin:0;font-size:5.5rem;font-weight:900;line-height:.85}.setup-subtitle{color:var(--chalk-dim);margin:0;font-size:1.375rem;font-weight:700}.add-player{gap:8px;display:flex}.empty{color:var(--chalk-dim);max-width:34ch;margin:28px 4px}.roster-bar{justify-content:space-between;align-items:center;margin-top:20px;display:flex}.roster-hint{color:var(--chalk-dim);font-size:.9375rem}.roster{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.roster-row{background:var(--slate-raised);border-radius:var(--radius-key);text-align:left;border:2px solid #0000;align-items:center;gap:14px;width:100%;min-height:60px;padding:0 16px 0 10px;display:flex}.roster-row.editing{background:0 0;gap:8px;padding:0}.roster-row.selected{border-color:var(--brass);background:var(--slate-high)}.roster-row:disabled{opacity:.4}.order{border:2px dashed var(--slate-high);width:36px;height:36px;font-family:var(--font-numbers);border-radius:50%;flex:none;place-items:center;font-size:1.375rem;font-weight:900;display:grid}.selected .order{background:var(--brass);color:var(--slate);border:0}.roster-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:1.1875rem;font-weight:700;overflow:hidden}.record{color:var(--chalk-dim);white-space:nowrap;font-size:.875rem}.setup-footer{padding:20px 0 calc(env(safe-area-inset-bottom) + 16px);background:linear-gradient(transparent, var(--slate) 24px);flex-direction:column;gap:8px;margin-top:auto;display:flex;position:sticky;bottom:0}.setup-footer .btn-go{min-height:60px;font-size:1.125rem}.game{max-width:520px;height:100dvh;padding:env(safe-area-inset-top) var(--gutter) calc(env(safe-area-inset-bottom) + 10px);flex-direction:column;gap:10px;margin:0 auto;display:flex}.game-header{justify-content:space-between;align-items:center;min-height:44px;display:flex}.game-title{font-family:var(--font-numbers);color:var(--chalk-dim);font-size:1.75rem;font-weight:900}.game-header .link-btn{padding:8px 0}.scoreboard{flex:1;grid-template-columns:repeat(2,1fr);gap:10px;min-height:0;margin:0;padding:0;list-style:none;display:grid}.scoreboard.players-1{grid-template-columns:1fr}.scoreboard.players-3,.scoreboard.players-4{grid-template-rows:1fr 1fr}.card{border-radius:var(--radius-card);border:2px solid var(--slate-high);flex-direction:column;min-height:0;padding:10px 12px;display:flex;position:relative;overflow:hidden;container-type:size}.card.active{border-color:var(--brass);background:#cfa44812}.card-name{text-overflow:ellipsis;white-space:nowrap;color:var(--chalk-dim);font-size:1.0625rem;font-weight:700;overflow:hidden}.card.active .card-name{color:var(--brass)}.card.active .card-name:before{content:"";background:var(--brass);vertical-align:.1em;border-radius:50%;width:9px;height:9px;margin-right:7px;display:inline-block}.card-remaining{min-height:0;font-family:var(--font-numbers);font-variant-numeric:tabular-nums;letter-spacing:-.01em;flex:1;place-items:center;font-size:min(52cqw,46cqh);font-weight:900;line-height:.9;display:grid}.card:not(.active) .card-remaining{color:color-mix(in srgb, var(--chalk) 75%, var(--slate))}.card-checkout{justify-content:center;min-height:clamp(30px,15cqh,44px);margin-top:6px;display:flex}.card-checkout .chips{gap:4px;max-width:100%}.card-checkout .chip{width:30cqw;min-width:0;height:clamp(30px,15cqh,44px);padding:0 2px;font-size:clamp(1.125rem,11cqw,1.625rem)}.card:not(.active) .card-checkout{opacity:.55}.card-stats{color:var(--chalk-dim);white-space:nowrap;justify-content:space-between;gap:6px;margin-top:6px;font-size:.875rem;display:flex}.card-stats .bust{color:#ff8a8a;font-weight:700}.players-3 .card-stats,.players-4 .card-stats{font-size:.8125rem}.chips{vertical-align:middle;gap:6px;display:inline-flex}.chip{min-width:52px;height:44px;font-family:var(--font-numbers);border:2px solid var(--chalk-dim);border-radius:8px;place-items:center;padding:0 8px;font-size:1.625rem;font-weight:900;line-height:1;display:inline-grid}.chip-treble{background:var(--green);border-color:var(--green);color:#fff}.chip-double,.chip-bull{background:var(--red);border-color:var(--red);color:#fff}.chip-outer-bull{border-color:var(--green)}.sheet-text .chips{margin-left:4px}.sheet-text .chip{min-width:40px;height:34px;font-size:1.25rem}.entry{border-radius:var(--radius-key);background:var(--slate-raised);justify-content:flex-end;align-items:baseline;gap:10px;min-height:56px;padding:8px 14px;display:flex;overflow:hidden}.entry-text,.entry-total{font-family:var(--font-numbers);white-space:nowrap;font-size:2.25rem;font-weight:900;line-height:1}.entry-total{color:var(--brass)}.entry-placeholder,.entry-notice,.entry-error{color:var(--chalk-dim);align-self:center;font-size:.9375rem}.entry-error{color:#ff8a8a}.entry--bust,.entry--error{background:#d0393b2e}.entry--bust .entry-notice{color:#ffb3b3;font-weight:700}.entry--error .entry-notice{color:#ff8a8a}.keypad{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.key{border-radius:var(--radius-key);background:var(--slate-raised);height:clamp(52px,8.5dvh,72px);min-height:58px;font-family:var(--font-numbers);border:0;place-items:center;font-size:2.125rem;font-weight:900;display:grid}.key:active:not(:disabled){background:var(--slate-high);transform:scale(.97)}.key-fn{box-shadow:inset 0 0 0 2px var(--slate-high);color:var(--chalk-dim);background:0 0}.key-undo{font-family:var(--font-text);font-size:1.0625rem;font-weight:700}.key-undo:disabled{opacity:.35}.key-submit{background:var(--green);color:#fff;grid-column:span 2;font-size:1.75rem}.key-submit:active:not(:disabled){background:#278a4e}.key-submit:disabled{opacity:.45}.sheet{background:var(--slate-raised);width:100%;max-width:520px;color:var(--chalk);border:0;border-radius:20px 20px 0 0;margin:auto auto 0;padding:0}.sheet::backdrop{background:#0009}.sheet-body{padding:24px var(--gutter) calc(env(safe-area-inset-bottom) + 20px)}.sheet-title{font-family:var(--font-numbers);margin:0 0 8px;font-size:2.5rem;font-weight:900;line-height:1}.sheet-text{margin:0 0 20px;line-height:1.6}.sheet-actions{flex-direction:column;gap:8px;display:flex}@media (prefers-reduced-motion:no-preference){.sheet[open]{animation:.18s ease-out sheet-up}}@keyframes sheet-up{0%{opacity:0;transform:translateY(40px)}}.winner{max-width:520px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 40px) var(--gutter) calc(env(safe-area-inset-bottom) + 16px);flex-direction:column;gap:28px;margin:0 auto;display:flex}.winner-hero{text-align:center}.winner-shout{font-family:var(--font-numbers);color:var(--brass);margin:0;font-size:2rem;font-weight:700}.winner-name{font-family:var(--font-numbers);overflow-wrap:anywhere;margin:4px 0 8px;font-size:clamp(4rem,26vw,8rem);font-weight:900;line-height:.9}.winner-detail{color:var(--chalk-dim);margin:0}@media (prefers-reduced-motion:no-preference){.winner-name{animation:.7s cubic-bezier(.2,1.4,.4,1) both chalk-in}}@keyframes chalk-in{0%{opacity:0;transform:scale(.4)rotate(-6deg)}}.results{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.results th,.results td{text-align:right;border-bottom:1px solid var(--slate-high);padding:10px 6px}.results th:first-child{text-align:left}.results thead th{color:var(--chalk-dim);font-size:.875rem;font-weight:400}.results tbody th{font-weight:700}.results tr.won th,.results tr.won td{color:var(--brass)}.winner-actions{flex-direction:column;gap:8px;margin-top:auto;display:flex}.winner-actions .btn-go{min-height:60px}
