@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-serif-4-latin-700-normal-CGGdTIBe.woff2)format("woff2"),url(/assets/source-serif-4-latin-700-normal-3V4Pv1hj.woff)format("woff")}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:900;src:url(/assets/source-serif-4-latin-900-normal-CqI8fijH.woff2)format("woff2"),url(/assets/source-serif-4-latin-900-normal-B80DG2s7.woff)format("woff")}:root{--display-font:"Source Serif 4", serif;color:#f8f0e2;font-synthesis:none;text-rendering:optimizelegibility;background:#d8e3dc;font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0;overflow:hidden}button{font:inherit}:where(button,select,summary,[tabindex]):focus-visible{outline-offset:3px;outline:3px solid #fff0a8}.game-shell{width:100vw;height:100dvh;position:relative;overflow:hidden}.scene-frame{width:100%;height:100%;position:relative}.scene-frame:after{z-index:4;content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 6px #17100c}.scoreboard,.restart-button,.collider-toggle,.physics-tuning,.turn-overlay{z-index:1;position:absolute}.setup-screen{z-index:5;overscroll-behavior:contain;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#141b1670;place-items:center;padding:1.25rem;display:grid;position:absolute;inset:0;overflow:auto}.setup-card{text-align:center;background:#232b24c2;border:1px solid #fff9ed6b;border-radius:1.25rem;justify-items:center;width:min(100%,28rem);padding:clamp(2rem,7vw,3.5rem) clamp(1.25rem,6vw,3rem);display:grid;box-shadow:0 1.5rem 4rem #11181252}.setup-kicker{color:#ffe4a6;letter-spacing:.2em;text-transform:uppercase;font-size:.72rem;font-weight:850}.setup-card h1{color:#fff0dd;width:100%;height:.95em;font-family:var(--display-font);white-space:nowrap;margin:.65rem 0 .75rem;font-size:clamp(1.75rem,7vw,2.4rem);line-height:.95}.setup-card p{color:#fff6e6c7;width:min(100%,19rem);min-height:2.9em;margin:0;font-size:.95rem;line-height:1.45}.practice-mode-button{color:#fff9ed;letter-spacing:.1em;cursor:pointer;background:#232b24b3;border:1px solid #fff9ed6b;border-radius:999px;min-height:2.75rem;margin-top:1.35rem;padding:.7rem 1rem;font-size:.72rem;font-weight:850}.practice-mode-button:hover{background:#232b24e6}.practice-mode-button.selected{color:#32170e;background:#ffe4a6;border-color:#ffe4a6}.bot-count{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:1.6rem 0;display:flex}.bot-count button,.start-button{color:#fff9ed;letter-spacing:.1em;cursor:pointer;border:1px solid #fff8e87a;border-radius:999px;font-size:.75rem;font-weight:850}.bot-count button{background:#232b24b3;min-height:2.75rem;padding:.7rem .85rem}.bot-count button.selected{color:#32170e;background:#ffe4a6;border-color:#ffe4a6}.target-score-label{color:#fff8e7b8;letter-spacing:.16em;margin-bottom:.4rem;font-size:.64rem;font-weight:750}.target-score-select{color:#fff9ed;text-align:center;cursor:pointer;background:#232b24cc;border:1px solid #fff9ed6b;border-radius:999px;width:11rem;min-height:2.75rem;margin-bottom:1.6rem;padding:.7rem .85rem;font-size:.85rem;font-weight:750}.start-button{background:#a8482d;padding:.9rem 1.5rem;box-shadow:0 .6rem 1.4rem #5c221240}.start-button:hover{background:#c45b39}.theme-label{color:#fff8e7b8;letter-spacing:.16em;margin-bottom:.4rem;font-size:.64rem;font-weight:750}.table-themes{gap:.65rem;margin-bottom:1.6rem;display:flex}.theme-swatch{cursor:pointer;border:2px solid #fff9ed4d;border-radius:50%;width:2.75rem;height:2.75rem;padding:0;box-shadow:0 0 0 2px #0000}.theme-swatch.selected{border-color:#ffe4a6;box-shadow:0 0 0 2px #ffe4a6}.results-screen{z-index:5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#141b1670;place-items:center;padding:1.25rem;display:grid;position:absolute;inset:0}.results-card{text-align:center;background:#232b24d1;border:1px solid #fff9ed6b;border-radius:1.25rem;justify-items:center;width:min(100%,30rem);max-height:min(92dvh,42rem);padding:clamp(1.75rem,6vw,3rem) clamp(1rem,6vw,3rem);display:grid;overflow:auto;box-shadow:0 1.5rem 4rem #11181252}.results-card h1{color:#ffe4a6;font-family:var(--display-font);margin:.65rem 0 .35rem;font-size:clamp(2rem,8vw,3.4rem);line-height:.95}.results-card>p{color:#fff6e6c7;letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.86rem;font-weight:700}.results-scores{border-top:1px solid #fff9ed33;border-bottom:1px solid #fff9ed33;width:min(100%,21rem);margin:1.5rem 0;padding:.45rem 0}.results-scores div{color:#fff6e6c7;justify-content:space-between;gap:1.5rem;padding:.42rem .6rem;font-size:.95rem;display:flex}.results-scores strong{color:#fff0dd}.results-scores .result-winner{color:#ffe4a6;font-weight:800}.results-scores .result-winner strong{color:#ffe4a6}.results-actions{flex-wrap:wrap;justify-content:center;gap:.65rem;display:flex}.change-game-button{color:#fff9ed;letter-spacing:.1em;cursor:pointer;background:#232b24b3;border:1px solid #fff8e87a;border-radius:999px;padding:.9rem 1.1rem;font-size:.72rem;font-weight:850}.change-game-button:hover{background:#232b24e6}.winner-celebration{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.winner-celebration i{opacity:0;border-radius:50%;width:.45rem;height:.45rem;animation:2.4s ease-out infinite firework;display:block;position:absolute}.winner-celebration i:first-child{background:#ffe4a6;top:20%;left:18%;box-shadow:3rem 1rem #e38a69,5rem -1rem #8ed1b2,1rem 3rem #f5d36b,-1rem 4rem #d8785a}.winner-celebration i:nth-child(2){background:#8ed1b2;animation-delay:.45s;top:24%;right:16%;box-shadow:-3rem 1rem #ffe4a6,-5rem -1rem #e38a69,-1rem 3rem #f5d36b,1rem 4rem #d8785a}.winner-celebration i:nth-child(3){background:#d8785a;animation-delay:.9s;bottom:21%;left:20%;box-shadow:3rem -1rem #f5d36b,5rem 1rem #8ed1b2,1rem -3rem #ffe4a6,-1rem -4rem #e38a69}.winner-celebration i:nth-child(4){background:#f5d36b;animation-delay:1.35s;bottom:18%;right:20%;box-shadow:-3rem -1rem #d8785a,-5rem 1rem #8ed1b2,-1rem -3rem #ffe4a6,1rem -4rem #e38a69}@keyframes firework{0%,to{opacity:0;transform:scale(.2)}15%{opacity:1;transform:scale(1)}58%{opacity:.9;transform:scale(1.15)}75%{opacity:0;transform:scale(.7)}}.scoreboard{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#232b245c;border:1px solid #fff9ed5c;border-radius:.8rem;min-width:9rem;padding:.8rem .9rem;top:clamp(1rem,3vw,2rem);left:clamp(1rem,3vw,2rem);box-shadow:0 .5rem 2rem #1d271d1f}.scoreboard-label{color:#fff8e7b8;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.5rem;font-size:.64rem;font-weight:750;display:block}.player-score{border-radius:.4rem;justify-content:space-between;align-items:baseline;gap:1.5rem;padding:.28rem .35rem;font-size:.95rem;font-weight:650;transition:background .16s,color .16s;display:flex}.player-score strong{font-size:1.4rem;line-height:1}.active-player{color:#fff0c8;background:#fff1cb29}.restart-button{color:#fff7e9;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);cursor:pointer;background:#232b244d;border:1px solid #fff9ed6b;border-radius:999px;min-height:2.75rem;padding:.65rem .85rem;top:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem)}.restart-button:hover{background:#232b2485}.collider-toggle{color:#fff7e9db;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);cursor:pointer;letter-spacing:.03em;white-space:nowrap;background:#232b244d;border:1px solid #fff9ed47;border-radius:999px;align-items:center;gap:.45rem;padding:.65rem .7rem;font-size:.68rem;font-weight:750;display:inline-flex;top:clamp(1rem,3vw,2rem);right:clamp(6.8rem,3vw + 5.2rem,8.2rem)}.collider-toggle input{accent-color:#ffe4a6;margin:0}.physics-tuning{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff5e6;background:#19231dd6;border:1px solid #fff9ed52;border-radius:.8rem;width:min(19rem,100vw - 2rem);max-height:min(36rem,100dvh - 10rem);top:clamp(4.9rem,10vw,6rem);right:clamp(1rem,3vw,2rem);overflow:auto;box-shadow:0 .7rem 2rem #10171247}.physics-tuning summary{cursor:pointer;letter-spacing:.11em;text-transform:uppercase;-webkit-user-select:none;user-select:none;padding:.65rem .8rem;font-size:.68rem;font-weight:850}.physics-tuning[open] summary{border-bottom:1px solid #fff9ed2e}.physics-tuning>p{color:#fff7e9ad;margin:.7rem .8rem;font-size:.68rem;line-height:1.35}.tuning-presets{flex-wrap:wrap;gap:.35rem;margin:0 .8rem .75rem;display:flex}.tuning-presets button{color:#fff7e9;letter-spacing:.04em;cursor:pointer;background:#ffe4a614;border:1px solid #ffe4a652;border-radius:.45rem;flex:4.5rem;padding:.45rem .35rem;font-size:.61rem;font-weight:800}.tuning-presets button:hover{background:#ffe4a62e}.tuning-readout{background:#ffe4a614;border:1px solid #ffe4a647;border-radius:.55rem;gap:.35rem;margin:0 .8rem .75rem;padding:.65rem;display:grid}.tuning-readout span{color:#fff7e9c2;justify-content:space-between;gap:.75rem;font-size:.64rem;display:flex}.tuning-readout strong{color:#ffe4a6;font-variant-numeric:tabular-nums;text-align:right}.tuning-group{border-top:1px solid #fff9ed21;gap:.55rem;padding:.7rem .8rem;display:grid}.tuning-direct-controls{background:#ffe4a60a;border-top-color:#ffe4a647}.tuning-advanced{border-top:1px solid #fff9ed21}.tuning-advanced>summary{color:#fff7e9cc;cursor:pointer;letter-spacing:.08em;text-transform:uppercase;padding:.7rem .8rem;font-size:.66rem;font-weight:750}.tuning-advanced>p{color:#fff7e994;margin:0 .8rem .65rem;font-size:.64rem;line-height:1.35}.tuning-group>strong{color:#ffe4a6;letter-spacing:.15em;text-transform:uppercase;font-size:.62rem}.tuning-slider{gap:.25rem;display:grid}.tuning-slider>span{color:#fff7e9e0;justify-content:space-between;font-size:.72rem;display:flex}.tuning-slider output{color:#ffe4a6;font-variant-numeric:tabular-nums}.tuning-slider input{accent-color:#e38a69;width:100%}.physics-tuning>button{color:#fff7e9;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:#ffffff14;border:1px solid #fff9ed4d;border-radius:.55rem;width:calc(100% - 1.6rem);margin:0 .8rem .8rem;padding:.58rem;font-size:.66rem;font-weight:800}.physics-tuning>button:hover{background:#ffffff29}.turn-overlay{right:1rem;bottom:max(1.4rem, env(safe-area-inset-bottom));pointer-events:none;justify-items:center;gap:.8rem;display:grid;left:1rem}.turn-status{justify-items:center;display:grid}.center-event{z-index:2;pointer-events:none;text-align:center;align-content:center;justify-items:center;gap:.35rem;display:grid;position:absolute;inset:0;transform:translateY(-14vh)}.center-event strong{color:#f5e6c8;font-family:var(--display-font);letter-spacing:.08em;text-shadow:-.04em -.04em #651611,0 -.04em #651611,.04em -.04em #651611,-.04em 0 #651611,.04em 0 #651611,-.04em .04em #651611,0 .04em #651611,.04em .04em #651611,0 .08em .22em #1f100d7a;font-size:clamp(4rem,15vw,8rem);font-weight:900;line-height:.86}.center-event span{color:#fff0dd;letter-spacing:.14em;text-transform:uppercase;font-size:clamp(.9rem,3vw,1.2rem);font-weight:800}.makin-bacon-event strong{letter-spacing:.04em;font-size:clamp(2.8rem,10vw,5.4rem)}.bust-event:before{background:#a52418}.bust-event strong{animation:.72s cubic-bezier(.2,1.4,.4,1) both bust-yell}.makin-bacon-event:before{background:#a52418}.makin-bacon-event strong{animation:.72s cubic-bezier(.2,1.4,.4,1) both bust-yell}.makin-bacon-event .bacon-letters i{animation:none}.bacon-letters{gap:.01em;display:inline-flex;color:inherit!important;font:inherit!important;letter-spacing:.04em!important}.bacon-letters i{font:inherit;font-style:normal;animation:.72s ease-in-out both bacon-bounce;display:inline-block}.bacon-letters i:nth-child(2n){animation-delay:60ms}.bacon-letters i:nth-child(3n){animation-delay:.12s}.bacon-letters i:nth-child(4n){animation-delay:.18s}@keyframes event-pop{0%{opacity:0;transform:scale(.72)}65%{opacity:1;transform:scale(1.06)}to{transform:scale(1)}}@keyframes bust-yell{0%{opacity:0;transform:scale(.35)}65%{opacity:1;transform:scale(1.16)}to{transform:scale(1)}}@keyframes bacon-bounce{0%{opacity:0;transform:translateY(-.7em)rotate(-7deg)}35%{opacity:1}58%{transform:translateY(.28em)rotate(4deg)}82%{transform:translateY(-.12em)rotate(-2deg)}to{transform:translateY(0)rotate(0)}}.roll-result,.bust-result{text-align:center;text-shadow:0 .15rem .8rem #161c1773;justify-items:center;gap:.15rem;min-height:3.7rem;display:grid}.roll-result strong{font-family:var(--display-font);font-size:clamp(1.5rem,4vw,2.2rem);line-height:1}.roll-result em{color:#ffe4b1;font-family:inherit;font-size:.72em;font-style:normal}.roll-result span{color:#fff6e6db;letter-spacing:.04em;font-size:1.23rem;font-weight:700}.idle-result{opacity:.8}.tossing-status{white-space:nowrap}.roll-result .loading-ellipsis{width:3ch;color:inherit;font:inherit;display:inline-flex}.loading-ellipsis i{width:1ch;font:inherit;text-align:center;visibility:hidden;font-style:normal;display:inline-block}.loading-ellipsis i:first-child{animation:3s step-end forwards first-loading-dot}.loading-ellipsis i:nth-child(2){animation:3s step-end forwards second-loading-dot}.loading-ellipsis i:nth-child(3){animation:3s step-end forwards third-loading-dot}@keyframes first-loading-dot{0%,74%{visibility:visible}75%,to{visibility:hidden}}@keyframes second-loading-dot{0%,24%{visibility:hidden}25%,74%{visibility:visible}75%,to{visibility:hidden}}@keyframes third-loading-dot{0%,49%{visibility:hidden}50%,74%{visibility:visible}75%,to{visibility:hidden}}.player-turn-result{gap:.15rem}.roll-result .player-turn-name{color:#fff0dd;letter-spacing:.1em;text-transform:uppercase;font-size:clamp(1rem,3vw,1.25rem);font-weight:800}.bust-result strong{color:#ffd0b2;letter-spacing:.08em;font-size:clamp(2.9rem,9vw,5.4rem);font-weight:900;line-height:.86}.bust-result span{color:#fff0dd;letter-spacing:.15em;text-transform:uppercase;font-size:.78rem;font-weight:800}.handoff-result{gap:.45rem}.handoff-result strong{color:#ffd0b2}.winner-result strong{color:#ffe4a6;font-size:clamp(2.2rem,7vw,4.4rem)}.turn-actions{pointer-events:auto;gap:.65rem;display:flex}.turn-actions button{color:#fff9ed;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;border:1px solid #fff8e87a;border-radius:999px;width:7.5rem;min-width:7.5rem;padding:.85rem 1.4rem;font-size:.78rem;font-weight:850;transition:transform .12s,background .12s,opacity .12s}.turn-actions button:not(:disabled):hover{transform:translateY(-1px)}.roll-button{background:#a8482d;box-shadow:0 .6rem 1.4rem #5c221240}.roll-button:not(:disabled):hover{background:#c45b39}.play-button{background:#a8482d;box-shadow:0 .6rem 1.4rem #5c221240}.play-button:not(:disabled):hover{background:#c45b39}.bank-button{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#232b248a}.bank-button:not(:disabled):hover{background:#232b24b8}.turn-actions button:disabled{cursor:default;opacity:.38}@media (width<=520px){.scoreboard{min-width:7.5rem;padding:.65rem .75rem}.restart-button{padding:.55rem .7rem;font-size:.75rem}.turn-actions{width:100%;max-width:23rem}.turn-actions button{flex:1;min-width:0}}@media (height<=700px){.setup-screen{align-items:start}.setup-card{margin:0 auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
