@font-face{font-family:"Jersey 10";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jersey-10-latin-ext-400-normal-uIKqQSaG.woff2)format("woff2"),url(/assets/jersey-10-latin-ext-400-normal-ByMh3OYd.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:"Jersey 10";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jersey-10-latin-400-normal-DrL73VYW.woff2)format("woff2"),url(/assets/jersey-10-latin-400-normal-B8YT2i2g.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{--felt-1:#1d4b3e;--felt-2:#12332a;--felt-3:#2c6a54;--ink:#1a1c25;--paper:#f4efdf;--paper-edge:#d9d1ba;--text:#f6f1e3;--muted:#f6f1e39e;--gold:#f7c548;--red:#e2463a;--red-d:#9e2a22;--blue:#2f86e8;--blue-d:#1c58a0;--orange:#f29b2c;--orange-d:#a8661a;--green:#3fb36a;--green-d:#267945;--font:"Jersey 10", ui-monospace, "Cascadia Mono", monospace}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--felt-2);color:var(--text);font-family:var(--font);-webkit-font-smoothing:none;font-synthesis:none;-webkit-user-select:none;user-select:none;overflow-x:hidden}body:before{content:"";z-index:-2;background:radial-gradient(circle at 30% 40%, var(--felt-3) 0 12%, transparent 40%), radial-gradient(circle at 70% 65%, #23594a 0 10%, transparent 38%), conic-gradient(from 0deg at 50% 50%, var(--felt-1), var(--felt-2), var(--felt-1), #173f34, var(--felt-1));filter:blur(40px);animation:60s linear infinite swirl;position:fixed;inset:-50%}body:after{content:"";z-index:50;pointer-events:none;background:repeating-linear-gradient(#00000021 0 1px,#0000 1px 3px),radial-gradient(#0000 55%,#0000008c 100%);position:fixed;inset:0}@keyframes swirl{to{transform:rotate(360deg)}}button{font:inherit}.table{min-height:100dvh;padding:12px 16px calc(16px + env(safe-area-inset-bottom));grid-template-rows:auto 1fr auto auto;grid-template-columns:minmax(0,1fr);gap:10px;max-width:1200px;margin:0 auto;display:grid}.hud{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.hud-mode{flex-direction:column;gap:2px;min-width:0;display:flex}.mode-name{color:var(--gold);text-shadow:2px 2px 0 var(--ink);font-size:26px;font-weight:700}.mode-rules{color:var(--muted);font-size:17px}.hud-right{align-items:center;gap:12px;font-size:18px;display:flex}.room-code{color:var(--text);border:2px solid var(--ink);cursor:pointer;letter-spacing:1px;background:#00000059;border-radius:6px;padding:4px 10px}.sound-toggle,.tables-toggle,.board-toggle{color:var(--muted);border:2px solid var(--ink);cursor:pointer;letter-spacing:1px;background:#00000059;border-radius:6px;padding:4px 10px}.sound-toggle[aria-pressed=true]{color:var(--text)}.board-toggle,.tables-toggle{color:var(--gold)}.tables-toggle[hidden]{display:none}.room-code:hover,.board-toggle:hover,.tables-toggle:hover,.sound-toggle:hover{background:#0000008c}.ping.good{color:#7be08f}.ping.ok{color:var(--gold)}.ping.bad{color:#ff7a6b}.felt-slot{place-items:center;min-width:0;min-height:0;display:grid}.felt{aspect-ratio:1000/560;align-self:center;width:min(100%,178.6dvh - 446.5px);min-width:min(100%,520px);margin:0 auto;position:relative;container-type:inline-size}.felt-inner{--card-base:clamp(30px, 7.6cqw, 96px);--card-w:var(--card-base);position:absolute;inset:0}.felt-print,.felt-svg{width:100%;height:100%;position:absolute;inset:0}.felt-cloth{fill:#08241b80;stroke:var(--ink);stroke-width:14px}.felt-trim{fill:none;stroke:#f7c54880;stroke-width:2px;stroke-dasharray:8 8}.felt-line{fill:none;stroke:#f6f1e380;stroke-width:2.5px}.felt-text{fill:#f6f1e3c7;font-family:var(--font);letter-spacing:3px;font-weight:700}.felt-text.payout{fill:var(--gold);font-size:31px}.felt-text.rule{font-size:20px}.felt-text.band{font-size:25px}.shoe-pile,.discard-pile{--card-w:calc(var(--card-base) * .7);width:var(--card-w);height:calc(var(--card-w) * 1.5556);z-index:1;position:absolute;top:4%}.shoe-pile{right:5%;transform:rotate(-7deg)}.discard-pile{left:5%;transform:rotate(6deg)}.pile-cards{width:100%;height:100%;position:relative}.pile-cards .card{transform:translate(calc(var(--n,0) * -1px), calc(var(--n,0) * -1.4px));position:absolute;inset:0}.pile-cards .card:not(:last-child) .card-inner{box-shadow:none;filter:brightness(.82)}.pile-cards .card:last-child .card-inner{box-shadow:3px 4px #00000059}.discard-pile .pile-cards .card{transform:translate(calc(var(--n,0) * 1px), calc(var(--n,0) * -1.4px)) rotate(calc(var(--n,0) * 1.5deg - 9deg))}.shoe-pile.shuffling .card:nth-child(odd){animation:.65s ease-in-out 2 riffle-left}.shoe-pile.shuffling .card:nth-child(2n){animation:.65s ease-in-out 2 riffle-right}@keyframes riffle-left{0%,to{transform:translate(calc(var(--n,0) * -1px), calc(var(--n,0) * -1.4px))}35%{transform:translate(-70%,-6%)rotate(-14deg)}60%{transform:translate(-30%,-18%)rotate(-6deg)}}@keyframes riffle-right{0%,to{transform:translate(calc(var(--n,0) * -1px), calc(var(--n,0) * -1.4px))}35%{transform:translate(70%,-6%)rotate(14deg)}60%{transform:translate(30%,-18%)rotate(6deg)}}.dealer-area{flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:2%;left:50%;transform:translate(-50%)}.label{letter-spacing:3px;color:var(--muted);align-items:center;gap:8px;font-size:clamp(14px,1.82cqw,20px);display:flex}.banner{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.banner-text{text-shadow:3px 3px 0 var(--ink);font-size:clamp(26px,4.42vw,42px);font-weight:700}.clock{background:#0000004d;border-radius:4px;width:min(320px,70vw);height:8px;overflow:hidden}.clock i{background:var(--gold);width:0;height:100%;display:block}.clock i.urgent{background:var(--red)}.seats{position:absolute;inset:0}.seat{left:var(--x);top:var(--y);width:0;height:0;transition:opacity .2s;position:absolute}.seat.empty{opacity:.32}.felt-rules{display:none}.seat.sitting-out{opacity:.55}.hands{--s:.72;transform:translateX(-50%) rotate(var(--tilt,0deg)) scale(var(--s));transform-origin:50% 100%;align-items:flex-end;gap:1.6cqw;transition:transform .35s cubic-bezier(.2,1.4,.4,1);display:flex;position:absolute;bottom:calc(2.4cqw + 14px);left:0}.seat.me .hands,.seat.active .hands{--s:1}.hand-wrap{border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:4px;transition:opacity .2s,background .2s;display:flex;position:relative}.hand-wrap.active{outline:2px dashed var(--gold);background:#f7c54829}.hand-wrap.resolving,.hand-wrap.done{opacity:.55}.plate{border:3px solid var(--ink);white-space:nowrap;background:#00000080;border-radius:10px;flex-direction:column;align-items:center;min-width:13cqw;padding:.5cqw 1.2cqw;display:flex;position:absolute;top:0;left:0;transform:translate(-50%,-50%);box-shadow:0 4px #00000059}.seat.me .plate{border-color:var(--gold)}.seat.active .plate{animation:1s ease-in-out infinite alternate glow}.seat.ready .plate:after{content:"READY";color:#7be08f;letter-spacing:2px;font-size:clamp(12px,1.3cqw,14px)}@keyframes glow{0%{box-shadow:0 4px #00000059,0 0 #f7c54899}to{box-shadow:0 4px #00000059,0 0 18px 4px #f7c5488c}}.name{text-overflow:ellipsis;max-width:17cqw;font-size:clamp(14px,2.2cqw,24px);font-weight:700;overflow:hidden}.balance{color:var(--gold);font-size:clamp(13px,1.9cqw,20px)}.bet-stack{--chip-w:clamp(30px, 5cqw, 56px);--chip-h:calc(var(--chip-w) * .5);--chip-edge:calc(var(--chip-w) * .09);--chip-step:calc(var(--chip-w) * .11);left:calc(var(--side,1) * (6.8cqw + 12px));transform:translateX(calc((var(--side,1) - 1) * 50%));pointer-events:none;flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute;bottom:calc(-2.4cqw - 10px)}.bet-stack.interactive{pointer-events:auto}.pile{--col-gap:.84;width:calc(var(--chip-w) * (1 + (var(--cols,1) - 1) * var(--col-gap)));height:calc(var(--chip-h) + var(--chip-edge) + max(var(--count,0) - 1, 0) * var(--chip-step));transform-origin:50% 100%;transition:width .25s ease-out;position:relative}.chip{left:calc(var(--col,0) * var(--chip-w) * var(--col-gap));bottom:calc(var(--n,0) * var(--chip-step));width:var(--chip-w);height:calc(var(--chip-h) + var(--chip-edge));transition:bottom .18s ease-in,left .25s ease-out,filter .1s;position:absolute}.chip-edge{left:0;right:0;top:calc(var(--chip-h) / 2);border:2px solid var(--ink);border-radius:0 0 50% 50% / 0 0 calc(var(--chip-h) / 2) calc(var(--chip-h) / 2);background:repeating-linear-gradient(90deg, var(--chip-d) 0 18%, var(--chip-ink) 18% 26%);border-top:none;position:absolute;bottom:0}.chip-face{height:var(--chip-h);background:var(--chip);border:2px solid var(--ink);border-radius:50%;position:absolute;top:0;left:0;right:0;box-shadow:inset 0 -2px #00000038}.chip-face:before{content:"";border:2px dashed var(--chip-ink);opacity:.85;border-radius:50%;position:absolute;inset:16% 14%}.chip.top .chip-face:after{content:attr(data-label);font-size:calc(var(--chip-w) * .36);color:var(--chip-ink);text-shadow:1px 1px 0 var(--ink);place-items:center;display:grid;position:absolute;inset:0}.chip.leaving{pointer-events:none}.bet-stack.interactive .chip{cursor:pointer}.bet-stack.interactive .chip:hover{filter:brightness(1.25)}.stack-total{color:var(--gold);background:var(--ink);border-radius:4px;padding:0 5px;font-size:clamp(12px,1.43cqw,16px);font-weight:700}.stack-total:empty{display:none}[data-value]{--chip:var(--red);--chip-d:var(--red-d);--chip-ink:var(--paper)}[data-value="1000"]{--chip:var(--blue);--chip-d:var(--blue-d)}[data-value="2500"]{--chip:var(--green);--chip-d:var(--green-d)}[data-value="10000"]{--chip:#2b2e3b;--chip-d:#0d0e14;--chip-ink:var(--gold)}[data-value="50000"]{--chip:#8e5bd8;--chip-d:#5b3796}.net{text-align:center;width:200px;text-shadow:2px 2px 0 var(--ink);font-size:clamp(17px,2.34cqw,23px);font-weight:700;position:absolute;top:calc(2.4cqw + 12px);left:-100px}.net.up{color:#7be08f;animation:.4s cubic-bezier(.2,1.6,.4,1) pop}.net.down{color:#ff7a6b;animation:.4s cubic-bezier(.2,1.6,.4,1) pop}.net.even{color:var(--muted)}.hand{min-height:calc(var(--card-w) * 1.5556);min-width:var(--card-w);align-items:flex-end;display:flex}.hand .card+.card{margin-left:calc(var(--card-w) * -.55)}.seat .hand .card{margin-bottom:calc(var(--i,0) * calc(var(--card-w) * 1.5556) * .1)}.dealer-hand .card+.card{margin-left:calc(var(--card-w) * -.3)}.asset-warm{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed;top:0;left:-10px}.card.back .card-inner,.card.showing-back .card-inner{image-rendering:pixelated;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABkCAIAAAC5NqGpAAABA0lEQVR42u3cwQ2DMAwAwICYhz2YgtmYgj1YoCP00wH6QIqiUCjty5HOL2qIhIlz/bl7PR+p5ehT49F8AUO+Gue1offelqkuoMwGj/JbDxf3gn/70zNw3IdomS8FjPNartmWKVTmlkJ5zb4+TuYYXf4j2x8qz0D1M0im2pP+4qwE7KW7LRStc87e/nMLxeycs82hEIUoRCEKUYhCFKIQhShEIQpRiEIUohCFKEQhClGIQhSiEIUoRCEKUYhCFKIQhShEIQpRiEIUohCFKEQhClGIQhSiEIUoRCEKUYhCFKIQhShEobAKXRWQog7GKAsYfppCkSIPh2luPkzdQsl8IQX8E2+YhvrBYIMtHwAAAABJRU5ErkJggg==);background-size:100% 100%;background-position:0 0!important}.card{width:var(--card-w);height:calc(var(--card-w) * 1.5556);perspective:600px;position:relative}.card-inner{border:2px solid var(--ink);background-color:#fff;background-image:-webkit-image-set(url(/assets/card-faces-BkteluRJ.avif) 1x type("image/avif"),url(/assets/card-faces-Bfpi-vL0.webp) 1x type("image/webp"));background-image:image-set("/assets/card-faces-BkteluRJ.avif" 1x type("image/avif"),"/assets/card-faces-Bfpi-vL0.webp" 1x type("image/webp"));background-repeat:no-repeat;background-size:1300% 400%;border-radius:5px;position:absolute;inset:0;box-shadow:3px 4px #00000059}@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.25)}to{transform:scale(1)}}.total{background:var(--ink);border-radius:6px;min-height:1em;padding:1px 8px;font-size:18px;font-weight:700}.total:empty{visibility:hidden}.result{border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);white-space:nowrap;pointer-events:none;border-radius:6px;padding:3px 9px;font-size:20px;font-weight:700;position:absolute;top:30%;left:50%;transform:translate(-50%)rotate(-8deg)}.result:empty{display:none}.result.win{background:var(--green)}.result.blackjack{background:var(--gold);color:var(--ink)}.result.push{background:#6c7a89}.result.loss,.result.bust{background:var(--red)}.result:not(:empty){animation:.35s cubic-bezier(.2,1.6,.4,1) stamp}@keyframes stamp{0%{opacity:0;transform:translate(-50%)rotate(-8deg)scale(2.2)}to{opacity:1;transform:translate(-50%)rotate(-8deg)scale(1)}}.hand-bet{color:var(--gold);min-height:1em;font-size:16px}.controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;min-height:64px;display:flex}.chips{align-items:center;gap:8px;display:flex}.btn{--c:var(--blue);--c-d:var(--blue-d);color:#fff;background:var(--c);border:3px solid var(--ink);text-shadow:2px 2px #00000059;box-shadow:0 5px 0 var(--c-d), 0 5px 0 2px var(--ink);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:10px 20px;font-size:25px;font-weight:700;transition:transform 60ms,box-shadow 60ms,filter .15s;display:inline-flex;position:relative}.btn:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.btn:active:not(:disabled),.btn.pressed{box-shadow:0 1px 0 var(--c-d), 0 1px 0 2px var(--ink);transform:translateY(4px)}.btn:disabled{filter:grayscale(.8)brightness(.65);cursor:default}.btn.red{--c:var(--red);--c-d:var(--red-d)}.btn.orange{--c:var(--orange);--c-d:var(--orange-d)}.btn.green{--c:var(--green);--c-d:var(--green-d)}.btn.ghost{--c:#00000059;--c-d:#00000080}.btn.small{padding:6px 12px;font-size:18px}.btn.chip{--c:var(--chip);--c-d:var(--chip-d);color:var(--chip-ink);outline:3px dashed var(--chip-ink);outline-offset:-10px;border-radius:50%;justify-content:center;width:58px;height:58px;padding:0;font-size:20px}.btn.pressed:after{content:"";background:#fff;width:6px;height:6px;animation:.5s steps(2,end) infinite blink;position:absolute;top:6px;right:6px}@keyframes blink{50%{opacity:0}}kbd{background:#0000004d;border-radius:4px;padding:1px 5px;font-family:inherit;font-size:14px}.note{color:var(--muted);font-size:21px}.toast{background:var(--ink);border:3px solid var(--gold);z-index:40;border-radius:10px;max-width:calc(100vw - 32px);padding:8px 16px;font-size:21px;position:fixed;top:14px;left:50%;transform:translate(-50%,-250%)}.toast.show{animation:2.6s both toast}@keyframes toast{0%{transform:translate(-50%,-250%)}10%,85%{transform:translate(-50%)}to{transform:translate(-50%,-250%)}}.overlay{z-index:30;background:#0a141099;place-items:center;display:none;position:fixed;inset:0}.overlay.show{display:grid}.overlay-box{text-shadow:3px 3px 0 var(--ink);font-size:31px;font-weight:700;animation:1.2s steps(2,end) infinite blink}.board-backdrop{z-index:35;background:#08100db8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.board-backdrop[hidden]{display:none}.board{background:radial-gradient(circle at 50% 0%, var(--felt-3), transparent 70%), var(--felt-1);border:3px solid var(--ink);outline-offset:-9px;border-radius:16px;outline:2px solid #f7c54873;width:min(560px,100%);max-height:calc(100dvh - 32px);padding:22px 24px 24px;animation:.22s ease-out both board-in;overflow-y:auto;box-shadow:6px 8px #00000073}@keyframes board-in{0%{opacity:0;transform:translateY(18px)scale(.97)}}.board-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.board-head h2{color:var(--gold);text-shadow:3px 3px 0 var(--ink);letter-spacing:1px;margin:0;font-size:36px;font-weight:400;line-height:1}.board-resets{color:var(--muted);margin:6px 0 0;font-size:19px}.board-close{font:inherit;width:38px;height:38px;color:var(--text);border:2px solid var(--ink);cursor:pointer;background:#00000059;border-radius:8px;flex:none;font-size:22px;line-height:1}.board-close:hover{background:#0000008c}.board-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.board-row{background:#00000038;border:2px solid #0000;border-radius:10px;grid-template-columns:40px 1fr auto auto;align-items:center;gap:12px;padding:6px 12px;font-size:23px;display:grid}.board-row.mine{border-color:var(--gold);background:#f7c5481f}.board-rank{width:32px;height:32px;color:var(--muted);background:#00000059;border-radius:50%;place-items:center;font-size:20px;display:grid}.medal-1 .board-rank{background:var(--gold);color:var(--ink);box-shadow:2px 2px 0 var(--ink)}.medal-2 .board-rank{color:var(--ink);box-shadow:2px 2px 0 var(--ink);background:#c9ccd3}.medal-3 .board-rank{color:var(--ink);box-shadow:2px 2px 0 var(--ink);background:#c98a4b}.board-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.board-rounds{color:var(--muted);font-size:18px}.board-net{text-align:right;min-width:84px;color:var(--muted);text-shadow:2px 2px 0 var(--ink);font-size:26px}.board-net.up{color:#7be08f}.board-net.down{color:#ff7a6b}.board-gap{text-align:center;color:var(--muted);font-size:20px;line-height:.8}.board-titles{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px;display:grid}.board-title{text-align:center;background:#00000038;border:2px solid #f7c5484d;border-radius:10px;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:10px 6px;display:flex}.board-title-label{letter-spacing:1px;color:var(--muted);font-size:15px}.board-title-value{color:var(--gold);text-shadow:2px 2px 0 var(--ink);font-size:30px}.board-title-value.none{color:var(--muted)}.board-title-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:18px;overflow:hidden}.table-row{background:#00000038;border:2px solid #0000;border-radius:10px;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:10px 14px;display:grid}.table-row.mine{border-color:var(--gold);background:#f7c5481f}.table-info,.table-meta{flex-direction:column;min-width:0;display:flex}.table-meta{text-align:right;align-items:flex-end}.table-where{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:24px;overflow:hidden}.table-who{color:var(--gold);text-overflow:ellipsis;white-space:nowrap;font-size:18px;overflow:hidden}.table-seats{font-size:20px}.table-round{color:var(--muted);font-size:16px}.table-tag{letter-spacing:1px;color:var(--gold);font-size:15px}.table-go{font:inherit;letter-spacing:1px;color:var(--ink);background:var(--gold);border:2px solid var(--ink);box-shadow:2px 3px 0 var(--ink);cursor:pointer;border-radius:8px;padding:6px 12px;font-size:18px}.table-go:active{box-shadow:none;transform:translate(2px,3px)}.board-empty{text-align:center;color:var(--muted);margin:18px 0 6px;font-size:23px}@media (width<=640px){.board{padding:18px 14px}.board-head h2{font-size:29px}.board-row{grid-template-columns:34px 1fr auto;gap:8px;font-size:21px}.board-rounds{display:none}.table-row{grid-template-columns:1fr auto}.table-meta{display:none}.board-title-label{font-size:13px}.board-title-value{font-size:24px}}@media (prefers-reduced-motion:reduce){.board{animation:none}}.fatal{text-align:center;padding:32px 16px;font-size:23px}.announce{z-index:30;pointer-events:none;border-radius:inherit;align-content:center;display:grid;position:absolute;inset:0;overflow:hidden}.announce.gold{--metal:linear-gradient(180deg, #fffbe0 0%, #ffe27a 30%, #f2b52c 48%, #a8670a 54%, #ffd968 72%, #fff3c0 100%);--rim:#3d2604;--edge:#f7c548d9}.announce.silver{--metal:linear-gradient(180deg, #fff 0%, #eef2f6 30%, #b9c3cd 48%, #6c7682 54%, #d9e0e6 72%, #fff 100%);--rim:#1c2128;--edge:#d6dee6cc}.ribbon{justify-items:center;gap:clamp(6px,1.6cqw,18px);padding-block:clamp(10px,2.2cqw,24px);display:grid}.announce.kind-ribbon .ribbon{border-block:2px solid var(--edge);animation:ribbon-in .3s cubic-bezier(.2, 1.3, .4, 1) both, ribbon-out .26s ease-in calc(var(--dur,1.4s) - .27s) forwards;background:linear-gradient(90deg,#0000,#040e0be6 14% 86%,#0000);box-shadow:0 0 0 1px #0006,0 10px 30px #00000073}@keyframes ribbon-in{0%{transform:translate(105%)}to{transform:none}}@keyframes ribbon-out{to{transform:translate(-105%)}}.announce.kind-fade .ribbon{animation:begin-fade var(--dur,1s) ease both}@keyframes begin-fade{0%{opacity:0;transform:scale(.9)}25%{opacity:1;transform:none}70%{opacity:1;transform:none}to{opacity:0;transform:scale(1.04)}}.caption{font-family:var(--font);letter-spacing:.04em;white-space:nowrap;filter:drop-shadow(0 .05em 0 var(--rim)) drop-shadow(0 .1em .06em #0000008c);font-size:clamp(46px,11cqw,132px);line-height:.9}.caption span{background:var(--metal);color:#0000;animation:.32s cubic-bezier(.2,1.2,.4,1) both letter-in,1.8s ease-in-out infinite metal-shine;animation-delay:calc(60ms + var(--i,0) * 28ms), 0s;background-size:100% 220%;-webkit-background-clip:text;background-clip:text;display:inline-block}.announce.kind-fade .caption span{animation-name:letter-fade,metal-shine}@keyframes letter-in{0%{opacity:0;transform:translate(1.4em)skew(-14deg)}to{opacity:1;transform:none}}@keyframes letter-fade{0%{opacity:0}to{opacity:1}}@keyframes metal-shine{0%,to{background-position:0 0}50%{background-position:0 100%}}.announce.pulse .caption{animation:.45s ease-out .45s caption-pulse}.announce.shake .caption{animation:.4s ease-in-out .4s caption-shake}@keyframes caption-pulse{0%,to{transform:none}45%{transform:scale(1.09)}}@keyframes caption-shake{0%,to{transform:none}20%{transform:translate(-.06em)rotate(-2deg)}40%{transform:translate(.05em)rotate(1.5deg)}60%{transform:translate(-.04em)rotate(-1deg)}80%{transform:translate(.02em)}}.breakdown{font-family:var(--font);align-items:flex-end;gap:clamp(8px,2.4cqw,26px);display:flex}.pp{justify-items:center;gap:clamp(2px,.5cqw,6px);min-width:clamp(48px,9cqw,110px);display:grid}.announce .bet-stack{--chip-w:clamp(30px, 5.6cqw, 62px);position:static;transform:none}.announce .stack-total{display:none}.pp-amount,.pp-label,.payout-total{opacity:0;transition:opacity .3s,transform .3s cubic-bezier(.2,1.6,.4,1);transform:translateY(6px)}.pp-amount.show,.payout-total.show,.pp-amount.show+.pp-label{opacity:1;transform:none}.pp-amount{color:var(--text);text-shadow:2px 2px 0 var(--ink);font-size:clamp(18px,3cqw,36px)}.pp-label{letter-spacing:2px;color:var(--muted);font-size:clamp(12px,1.7cqw,20px)}.op{color:var(--muted);padding-bottom:clamp(16px,3.2cqw,40px);font-size:clamp(22px,3.6cqw,44px)}.payout-total{color:var(--gold);text-shadow:3px 3px 0 var(--ink);padding-bottom:clamp(12px,2.6cqw,32px);font-size:clamp(30px,5.4cqw,64px)}.payout-total.show{animation:.45s cubic-bezier(.2,1.6,.4,1) pop}@media (prefers-reduced-motion:reduce){.announce.kind-ribbon .ribbon{animation:begin-fade var(--dur,1.4s) ease both}.caption span{animation:.2s both letter-fade}.announce.pulse .caption,.announce.shake .caption{animation:none}}@media (width>=641px){.seat[data-stack=below] .bet-stack{top:calc(2.4cqw + 14px);bottom:auto;left:0;transform:translate(-50%)}.seat[data-stack=below] .net{top:calc(11.4cqw + 14px)}.stack-total{border-radius:5px;padding:1px 8px;font-size:clamp(16px,2.2cqw,26px)}.chip.top .chip-face:after{font-size:calc(var(--chip-w) * .46)}.btn.chip{width:66px;height:66px;font-size:24px}.shoe-pile,.discard-pile{--card-w:var(--card-base);top:3%}.shoe-pile{right:4%}.discard-pile{left:4%}.table{height:100dvh;min-height:460px}.felt-slot{container-type:size}.felt{width:min(100cqw,178.6cqh);min-width:0}}@media (width>=641px) and (height<=820px){.table{padding:8px 16px calc(10px + env(safe-area-inset-bottom));gap:6px}.mode-rules{display:none}.banner{gap:4px}.banner-text{font-size:clamp(22px,4vh,34px)}.btn{padding:8px 18px}}@media (width<=640px){.table{padding:6px 16px calc(10px + env(safe-area-inset-bottom));grid-template-rows:auto auto 1fr auto;gap:6px}.felt-slot{align-self:start;display:block}.banner{align-self:end}.mode-rules{display:none}.hud-right{flex-wrap:wrap;gap:8px}.room-code,.sound-toggle,.board-toggle,.tables-toggle{padding:1px 8px;font-size:16px}.btn{padding:8px 14px;font-size:21px}.btn.chip{outline-offset:-8px;width:46px;height:46px;font-size:16px}.chips{flex-wrap:wrap;justify-content:center}.controls[data-layout=moves],.controls[data-layout=insurance],.controls[data-layout=betting]{grid-template-columns:1fr 1fr;gap:8px 14px;width:100%;display:grid}.controls .btn.primary{justify-content:center;width:100%;padding:9px 10px;font-size:32px}.controls .btn.secondary{justify-content:center;justify-self:center;width:72%;padding:5px 10px;font-size:19px}.controls .btn[data-move=split]{order:1}.controls .btn[data-move=double]{order:2}.controls .btn[data-move=stand]{order:3}.controls .btn[data-move=hit]{order:4}.controls[data-layout=insurance] .btn.primary{font-size:24px}.controls[data-layout=betting]{grid-template-columns:auto 1fr}.controls[data-layout=betting] .chips{grid-column:1/-1}.controls[data-layout=betting] .btn.secondary{order:1;align-self:center;width:auto}.controls[data-layout=betting] .btn.primary{order:2}kbd{display:none}.felt{aspect-ratio:auto;width:100%;min-width:0}.felt-inner{border:5px solid var(--ink);--card-base:52px;background:radial-gradient(at 50% 0,#2c6a548c,#08241b99 70%);border-radius:22px 22px 48px 48px;flex-direction:column;align-items:center;gap:6px;padding:10px 8px 12px;display:flex;position:relative;box-shadow:inset 0 0 0 2px #f7c54859}.shoe-pile,.discard-pile{--card-w:30px;top:14px}.shoe-pile{right:16px}.discard-pile{left:16px}.felt-print{display:none}.felt-rules{letter-spacing:.5px;text-transform:uppercase;color:var(--muted);text-align:center;white-space:nowrap;margin:0;font-size:13px;display:block}.dealer-area{position:static;transform:none}.seats{grid-template-columns:repeat(var(--others,4), minmax(0, 1fr));place-items:end center;gap:8px 6px;width:100%;display:grid;position:static;container-type:inline-size}.seat{order:var(--order,0);--card-w:min(calc((72 - 6 * var(--others,4)) * 1px), calc((100cqw / var(--others,4) - 8px) / var(--units,1)));flex-direction:column;align-items:center;gap:4px;width:auto;height:auto;display:flex;position:relative;top:auto;left:auto}.seat.empty{display:none}.seat.me{--card-w:80px;border-top:2px dashed #f7c54859;order:99;grid-column:1/-1;margin-top:0;padding-top:4px}.seat.active:not(.me){--card-w:min(calc((76 - 6 * var(--others,4)) * 1px), calc((100cqw / var(--others,4) - 8px) / var(--units,1)))}.seat:not(.me) .hand .card+.card{margin-left:calc(var(--card-w) * -.62)}.hands{gap:6px;position:static;transform:none}.hand-wrap{gap:3px;padding:2px}.seat .hand .card{margin-bottom:calc(var(--i,0) * var(--card-w) * .08)}.hand-bet:empty{display:none}.seat:not(.me) .total{padding:0 5px;font-size:14px}.seat:not(.me) .result{padding:1px 5px;font-size:13px}.plate{border-width:2px;min-width:0;padding:2px 8px;position:static;transform:none}.seat:not(.me) .name{max-width:76px;font-size:14px}.seat:not(.me) .balance{font-size:13px}.seat.me .plate{min-width:150px;padding:4px 12px}.seat.me .name{max-width:200px;font-size:20px}.seat.me .balance{font-size:18px}.bet-stack{--chip-w:22px;position:static;transform:none}.seat:not(.me) .pile{display:none}.seat.me .bet-stack{--chip-w:30px;position:absolute;bottom:2px;left:calc(50% + 82px);right:auto}.seat.me .pile{--col-gap:.78}.net{width:auto;font-size:16px;position:static}.seat.me .net{font-size:22px}}@media (prefers-reduced-motion:reduce){body:before,.shoe-pile.shuffling .card,.seat.active .plate{animation:none}}
