:root{color-scheme:dark;--ink:#edf0ec;--muted:#a0aaa5;--paper:#14191b;--gold:#e4bd70;--line:#ffffff21;--felt:#145244;font-family:Inter,system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 35%,#263332 0,#151b1d 65%,#111517);min-height:100svh}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid #ffffff29;border-radius:6px;padding:10px 16px;background:#303a3e;color:var(--ink);font-size:13px;font-weight:650}button:hover:not(:disabled){background:#44514f;border-color:#98b5a7}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}a{color:inherit}.primary{background:#bd373c;border-color:#d65354;color:white}.primary:hover:not(:disabled){background:#df474a}.quiet{background:transparent;color:var(--muted)}.all-in{background:#795a27;border-color:#ab8545;color:#fff0ce}.fold-button{background:#394249}.eyebrow{font-size:10px;letter-spacing:.18em;color:var(--gold);font-weight:700}.muted{color:var(--muted);font-size:12px;line-height:1.6}h1,h2{font-weight:650;letter-spacing:-.03em}small{font-size:11px}label{font-size:13px;font-weight:600}input,select{display:block;width:100%;background:#11191b;color:var(--ink);border:1px solid #69766f;border-radius:5px;padding:11px;margin-top:7px;min-width:0}
#app{max-width:1440px;margin:auto;padding:0 28px 12px}.topbar{height:62px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:750;font-size:18px}.brand small{display:block;font-size:8px;letter-spacing:.14em;margin-top:3px;color:#8e9c96}.brand-mark{font-size:30px;color:#e3494a}.topbar nav{display:flex;align-items:center;gap:8px}.topbar nav button{background:none;border:0;font-size:12px;padding:8px}.room-code{letter-spacing:.12em;font-family:monospace;font-size:15px;border-right:1px solid var(--line);padding-right:12px;color:var(--gold)}
.entry{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:60px 40px}.entry h1{font-size:64px;line-height:1.2;letter-spacing:-.04em;margin:24px 0}.entry h1 em{font-style:normal;color:var(--gold)}.intro{font-size:15px;line-height:1.9;color:var(--muted)}.facts{display:flex;gap:14px;font-size:12px;margin:24px 0 32px}.facts span{color:#718276}.entry-form{max-width:340px}.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:20px;gap:20px}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;padding:10px 0;background:none;color:var(--muted)}.tabs [aria-pressed=true]{color:var(--ink);border-color:#dc4548}#entry{display:grid;gap:16px}#entry .primary{margin-top:5px}.entry-art{margin:0;transform:rotate(-3deg)}.entry-art img{width:100%;height:auto;border-radius:50%;box-shadow:0 25px 65px #0005}.entry-art figcaption{text-align:center;font-size:10px;letter-spacing:.15em;margin:24px 0;color:var(--muted)}.waiting{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:center;padding:60px 30px}.waiting h1{font-size:32px}.waiting>div>p{color:var(--muted);font-size:13px}.lobby-art{width:100%;height:auto;border-radius:12px}.lobby-seats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:28px 0}.lobby-seats article{display:flex;align-items:center;gap:10px;padding:14px 0;overflow-wrap:anywhere}.lobby-seats small{display:block;margin-top:5px;color:var(--muted)}.lobby-seats .empty{color:var(--muted);font-size:13px}.avatar{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:50%;background:#354940}.lobby-seats strong{font-size:13px}#settings{display:flex;gap:12px;align-items:end;flex-wrap:wrap}#settings label{flex:1;min-width:100px}.lobby-actions{display:flex;gap:12px;margin-top:24px}
.game{height:calc(100svh - 74px);min-height:650px;display:flex;flex-direction:column}.game-heading{height:48px;flex:none;display:flex;justify-content:space-between;align-items:center;gap:12px}.game-heading>div:first-child{display:flex;align-items:center;gap:12px}.game-heading h1{font-size:15px;margin:0;white-space:nowrap}.hand-number{font:12px monospace;color:var(--muted)}.table-info{font-size:11px;color:var(--muted)}.turn-clock{width:260px;flex:none}.turn-clock>div:first-child{display:flex;justify-content:space-between;align-items:center;font-size:11px}.turn-clock strong{font-size:14px;font-variant-numeric:tabular-nums;color:var(--gold)}.turn-clock>small{display:none}.timer-track,.seat-clock{height:3px;background:#ffffff1c;border-radius:3px;overflow:hidden;margin-top:5px}.timer-track i,.seat-clock i{display:block;width:100%;height:100%;background:#dbc073;transform-origin:left;transform:scaleX(var(--remaining,1))}.urgent .timer-track i,.seat-clock.urgent i{background:#fb685b}.turn-clock.urgent strong{color:#fb8571}
.table-zone{position:relative;flex:1;min-height:355px;width:min(100%,1080px);margin:0 auto 10px}.felt{position:absolute;inset:10% 5% 14%;border-radius:50%;background:radial-gradient(ellipse at 50% 35%,#246b57,#164c3f 65%,#103d34);border:13px solid #303e3e;outline:2px solid #596763;box-shadow:inset 0 0 0 2px #82a08a30,inset 0 0 50px #07282080,0 8px 0 #0c1515,0 18px 35px #0007}.felt:before{content:"";position:absolute;inset:12px;border:1px solid #b7d7b922;border-radius:50%;pointer-events:none}.table-center{position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;width:82%}.table-caption{font-size:17px;letter-spacing:.2em;font-weight:800;color:#a7c4ae4d;margin:0 0 14px;white-space:nowrap}.table-caption span{color:#eec67e70;margin:0 8px}.pot-label{font-size:12px;margin:0 0 12px;color:#b6cbbb}.pot-label strong{font-size:24px;font-weight:650;color:#f9e6ad;margin-left:6px;font-variant-numeric:tabular-nums}.community{display:flex;gap:7px}.street-track{display:flex;gap:22px;font-size:10px;color:#93b09e;margin-top:14px}.street-track .active{color:#f0d594}.card{display:inline-block;position:relative;flex:none;width:54px;height:76px;border-radius:5px;background:#fffdf6;color:#202d2c;box-shadow:0 3px 6px #001b1a50;text-align:left;font-family:Georgia,serif}.card>b{position:absolute;top:5px;left:6px;font-size:21px;line-height:1}.card b small{display:block;font-size:14px;margin-top:4px}.card>i{position:absolute;right:7px;bottom:8px;font-style:normal;font-size:28px}.card>b.corner{top:auto;left:auto;right:5px;bottom:4px;font-size:9px;transform:rotate(180deg)}.card.red{color:#ce3540}.card.back{background:repeating-linear-gradient(45deg,#783434 0 2px,#9e4444 2px 7px);border:2px solid #e4d9bd}.card.back i{position:static;display:grid;place-items:center;height:100%;color:#ead8b6;font-size:20px}.card.slot{background:#0d31293d;border:1px solid #86b09830;box-shadow:none;display:grid;place-items:center;color:#9db7a870}.card.slot small{font:8px system-ui;letter-spacing:.08em}.card.small{width:28px;height:39px;border-radius:3px}.card.small>b{font-size:12px;top:3px;left:3px}.card.small b small{font-size:9px;margin-top:2px}.card.small>i{font-size:14px;right:3px;bottom:3px}.card.small .corner{display:none}.card.small.back i{font-size:14px}
.seat{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:120px;text-align:center;z-index:2;background:none;border:0;box-shadow:none;padding:0}.seat-avatar{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 5px;border-radius:50%;font-size:23px;font-weight:650;color:#f1ecda;background:radial-gradient(circle at 35% 25%,hsl(var(--avatar-hue) 22% 44%),hsl(var(--avatar-hue) 18% 21%));border:3px solid #101b1b;box-shadow:0 2px 8px #0005}.acting .seat-avatar{outline:3px solid var(--gold)}.seat-heading{display:flex;align-items:center;justify-content:center;gap:4px}.seat-heading>b{font-size:12px;font-weight:550;max-width:86px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 3px #000}.position{display:flex;gap:2px}.position i{font:8px system-ui;display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#d4d8cb;color:#152724;font-style:normal;box-shadow:0 1px 3px #0005}.mini-hand{position:absolute;left:calc(50% + 17px);top:4px;display:flex;gap:2px;min-height:39px;align-items:center}.mini-hand .card:first-child{transform:rotate(-9deg)}.mini-hand .card:nth-child(2){transform:rotate(8deg)}.mini-hand>span:not(.card){font-size:10px;color:var(--muted);white-space:nowrap}.stack{display:block;font-size:16px;font-weight:700;margin-top:3px;color:#fff5cd;font-variant-numeric:tabular-nums;text-shadow:0 1px 4px #000}.seat-status{display:block;margin-top:3px;font-size:10px;min-height:13px;color:#a7b5ae;white-space:nowrap}.acting .seat-status{color:var(--gold)}.seat-clock{width:70px;margin:4px auto 0}.seat.folded:not(.shown):not(.winner){opacity:.55}.seat.mine .seat-avatar{display:none}.seat.mine .mini-hand{position:static;justify-content:center;margin-bottom:5px}.seat.mine .card{width:44px;height:61px}.seat.mine .seat-heading>b{color:var(--gold)}.seat.mine.acting .card{box-shadow:0 0 12px #f0c16160}.bet-chip{position:absolute;left:50%;top:calc(100% + 5px);transform:translateX(-50%);padding:3px 8px 3px 19px;border-radius:10px;background:#102620d9;color:#eee1b2;font-size:10px;white-space:nowrap}.bet-chip:before{content:"";position:absolute;left:4px;top:5px;width:10px;height:10px;border:2px dashed #eed5a2;border-radius:50%;background:#b64542}.seat.mine .bet-chip{left:calc(50% + 63px);top:42px}.winner .seat-avatar{outline:3px solid var(--gold);box-shadow:0 0 30px #e9bd593b}.win-badge{display:block;position:absolute;top:-25px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:800;color:#fbd77f;white-space:nowrap;text-shadow:0 2px 7px #000}.shown-note{display:block;font-size:10px;color:var(--gold);margin-top:3px}
.action-dock{flex:none;width:min(100%,1040px);margin:0 auto;padding:10px 16px 6px;border-top:1px solid var(--line);background:linear-gradient(#182123c9,#14191b);border-radius:10px 10px 0 0;z-index:3}.hand-strength{font-size:10px;color:var(--gold);text-align:center;margin-bottom:5px}.action-panel{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.action-title{grid-column:1/-1;display:flex;align-items:center;gap:12px;font-size:12px}.action-title>span{color:var(--muted);font-size:11px}.time-card{margin-left:auto;padding:7px 11px;background:#423b29;border-color:#a88c4d;color:#f4d79a;font-size:11px}.action-buttons{display:flex;gap:8px}.action-buttons>button{flex:1;min-height:46px;padding:10px 8px;white-space:nowrap}.quick-raises{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.raise-preset{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:7px 4px;background:#263530;border-color:#758e7445}.raise-preset>span{font-size:10px;color:#c2d1c2;font-weight:500}.raise-preset strong{font-size:11px;font-variant-numeric:tabular-nums}.custom-raise{grid-column:1/-1;font-size:11px;color:var(--muted)}.custom-raise summary{cursor:pointer;padding:3px 0;color:#d3dccf}.custom-raise summary span{margin-left:12px;font-size:10px;color:var(--muted)}#raise{display:flex;align-items:center;gap:10px;margin:7px 0}#raise label{font-size:11px}#raise label small{display:block;font-size:10px;color:var(--muted);margin-top:3px}#raise input{width:130px;margin:0;padding:8px}#raise button{padding:9px 16px}.default-action{grid-column:1/-1;font-size:10px;color:#98a39a;text-align:center}.waiting-action{display:flex;align-items:center;justify-content:center;gap:10px;min-height:70px;font-size:13px;flex-wrap:wrap}.waiting-action>small{color:var(--muted)}.status-dot{width:6px;height:6px;background:var(--gold);border-radius:50%}
.result{position:absolute;z-index:4;left:50%;top:44%;transform:translate(-50%,-50%);width:min(480px,65%);padding:18px 22px;text-align:center;background:linear-gradient(150deg,#1d2d28f7,#101b1afc);border:1px solid #d7b97e70;border-radius:12px;box-shadow:0 15px 50px #0008,0 0 30px #c8a35710;max-height:90%;overflow:auto}.result .eyebrow{margin:0 0 8px}.result h2{margin:0 0 10px;font-size:21px;color:#ffe2a0;overflow-wrap:anywhere}.payouts{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 16px;font-size:12px;max-height:100px;overflow:auto}.payouts strong{font-size:22px;color:#f4cd78;margin-left:6px;font-variant-numeric:tabular-nums}.payouts small{display:block;font-size:10px;color:#a6b8a7;margin-top:2px}.auto-next{font-size:12px;color:#b7c5b8;margin:10px 0}.auto-next strong{font-size:24px;color:#fff5db;font-variant-numeric:tabular-nums;margin-right:3px}.result-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;align-items:center}.result-actions button{font-size:11px;padding:8px 12px}.show-hand{background:#e3bf73;color:#273029;border-color:#f5d795}.show-hand:hover:not(:disabled){background:#f7d68c;color:#263027}.result-actions .quiet{font-size:10px;padding:6px;background:none;border:0}.result-details{margin-top:12px;font-size:10px;color:#a6b4a9}.result-details summary{cursor:pointer}.result-detail-scroll{max-height:150px;overflow:auto;padding:6px;text-align:left}.pot-result{display:flex;justify-content:space-between;gap:10px;font-size:11px;border-bottom:1px solid var(--line);padding-bottom:7px}.showdown{display:grid;gap:12px}.showdown article>b,.showdown article>strong{font-size:11px;margin-right:8px}.showdown article>div{display:flex;gap:4px;margin:6px 0}.showdown article>small{color:var(--muted)}.logs{flex:none;position:relative;text-align:center;font-size:10px;color:var(--muted);padding-top:7px}.logs summary{cursor:pointer}.logs ol{position:absolute;z-index:6;bottom:20px;right:0;text-align:left;line-height:2;max-height:220px;max-width:90vw;overflow:auto;padding:12px 18px 12px 30px;border:1px solid var(--line);border-radius:8px;background:#172023;box-shadow:0 5px 25px #0008}
#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90vw;padding:12px 22px;background:#e9d5a9;color:#172c23;border-radius:8px;box-shadow:0 4px 20px #0005;z-index:1000;font-size:13px}dialog{border:1px solid #d2b47150;border-radius:12px;max-width:680px;width:calc(100% - 32px);padding:28px;background:var(--paper);color:var(--ink);line-height:1.9}dialog::backdrop{background:#000b}dialog h2{font-size:26px}dialog h3{font-size:15px;margin-top:22px}dialog p,dialog li{font-size:13px}.close{float:right}
@media(max-width:950px){.card>b.corner{display:none}#app{padding:0 18px 10px}.entry{padding:40px 0;gap:30px}.entry h1{font-size:50px}.waiting{padding:40px 0;gap:30px}.seat{width:100px}.seat-avatar{width:46px;height:46px;font-size:20px}.mini-hand{left:calc(50% + 12px);top:2px}.seat-heading>b{font-size:11px;max-width:70px}.seat-status{font-size:9px}.stack{font-size:15px}.table-zone{max-width:95%}.result{width:min(440px,62%)}.card{width:48px;height:68px}.community{gap:5px}.action-dock{padding:8px 10px 5px}.action-panel{gap:8px}.action-buttons>button{font-size:12px}}
@media(max-width:700px){#app{padding:0 10px 8px}.topbar{height:53px;gap:8px}.brand{font-size:14px;gap:7px}.brand-mark{font-size:25px}.brand small{font-size:6px}.topbar nav{gap:0}.topbar nav button{padding:6px;font-size:10px}.room-code{font-size:12px;padding-right:5px}.entry{display:block;padding:30px 12px}.entry h1{font-size:48px}.entry-art,.lobby-art{display:none}.entry-copy,.entry-form{max-width:440px;margin:auto}.waiting{display:block;padding:28px 12px}.waiting h1{font-size:27px}.game{height:calc(100svh - 61px);min-height:640px}.game-heading{height:44px;align-items:center;gap:8px}.game-heading>div:first-child{gap:6px;flex-wrap:wrap;max-width:52%}.game-heading h1{font-size:12px}.hand-number{font-size:10px}.table-info{font-size:9px}.turn-clock{width:145px}.turn-clock>div:first-child{font-size:9px;gap:6px}.turn-clock strong{font-size:12px}.table-zone{width:100%;max-width:none;min-height:365px;margin:0 auto 6px}.felt{inset:10% 6% 10%;border-width:9px;border-radius:46%;outline-width:1px}.felt:before{inset:8px;border-radius:46%}.table-center{top:45%;width:91%}.table-caption{font-size:12px;letter-spacing:.12em;margin-bottom:12px}.table-caption span{margin:0 3px}.pot-label{font-size:10px;margin-bottom:9px}.pot-label strong{font-size:20px}.community{gap:4px}.community .card{width:37px;height:54px}.community .card>b{font-size:17px;top:4px;left:4px}.community .card b small{font-size:11px;margin-top:3px}.community .card>i{font-size:21px;right:4px;bottom:5px}.community .card .corner{display:none}.street-track{gap:14px;font-size:8px;margin-top:10px}.seat{left:var(--mx);top:var(--my);width:74px}.seat-avatar{width:38px;height:38px;border-width:2px;font-size:17px;margin-bottom:3px}.seat-heading{gap:2px;flex-wrap:wrap}.seat-heading>b{font-size:10px;max-width:70px}.position{position:absolute;top:27px;left:7px}.position i{width:13px;height:13px;font-size:6px}.stack{font-size:13px;margin-top:2px}.seat-status{font-size:8px;margin-top:2px}.mini-hand{left:calc(50% + 9px);top:2px;gap:0;min-height:29px}.card.small{width:21px;height:30px;border-radius:2px}.card.small>b{font-size:10px;left:2px;top:2px}.card.small b small{font-size:8px;margin-top:1px}.card.small>i{font-size:10px;right:2px;bottom:2px}.card.small.back i{font-size:11px}.seat.mine{width:106px}.seat.mine .mini-hand{gap:3px;margin-bottom:3px}.seat.mine .card{width:38px;height:53px}.seat.mine .card>b{font-size:18px}.seat.mine .card>i{font-size:23px}.seat.mine .position{top:54px;left:0}.seat-clock{width:54px;height:2px;margin-top:3px}.bet-chip{font-size:8px;padding:2px 6px 2px 15px;top:calc(100% + 3px)}.bet-chip:before{width:8px;height:8px;left:3px;top:4px}.seat.mine .bet-chip{left:calc(50% + 54px);top:30px}.shown-note{font-size:8px}.win-badge{font-size:9px;top:-18px}.result{top:44%;width:68%;padding:12px 10px;border-radius:9px;max-height:75%}.result .eyebrow{font-size:8px;margin-bottom:5px}.result h2{font-size:16px;margin-bottom:7px}.payouts{font-size:10px;gap:5px 8px;max-height:60px}.payouts strong{font-size:19px;margin-left:3px}.payouts small{font-size:9px}.auto-next{font-size:11px;margin:7px 0}.auto-next strong{font-size:21px}.result-actions{gap:4px}.result-actions button{font-size:10px;padding:8px 9px}.result-actions .quiet{font-size:9px;padding:5px}.result-details{font-size:9px;margin-top:8px}.result-detail-scroll{max-height:100px;padding:5px 0}.action-dock{padding:7px 6px 4px}.action-panel{display:flex;flex-direction:column;gap:6px}.action-title{gap:7px;font-size:11px}.action-title>span{font-size:10px}.time-card{font-size:10px;padding:6px 7px;white-space:nowrap}.quick-raises{gap:4px}.raise-preset{padding:5px 2px;min-height:38px;gap:2px}.raise-preset>span{font-size:9px}.raise-preset strong{font-size:10px}.action-buttons{gap:5px}.action-buttons>button{font-size:12px;min-height:42px;padding:8px 4px}.custom-raise summary{font-size:10px;padding:2px 0}.custom-raise summary span{font-size:8px;margin-left:5px}.default-action{font-size:8px}.waiting-action{min-height:66px;gap:6px;font-size:11px}.waiting-action>small{font-size:10px}.hand-strength{font-size:9px;margin-bottom:4px}.logs{font-size:9px;padding-top:5px}#raise{gap:7px}#raise input{width:95px}#raise button{font-size:11px;padding:8px}.lobby-seats article{padding:10px 0}.lobby-seats strong{font-size:12px}}
@media(prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s}.timer-track i,.seat-clock i{transition:transform .2s linear}}

/* Include the shared navigation in the viewport budget. */
body:has(.game){display:flex;flex-direction:column;height:100svh;min-height:600px}
#app:has(.game),.bg-club-bar~#app:has(.game){display:flex;flex-direction:column;flex:1;width:100%;min-height:0}
#app:has(.game) .topbar{flex-shrink:0}#app .game{height:auto;min-height:0;flex:1}
.seat-right .mini-hand{left:auto;right:calc(50% + 17px)}
@media(max-width:700px){.table-zone{min-height:320px}.seat-right .mini-hand{right:calc(50% + 9px)}}
@media(max-width:700px){.table-zone{margin-bottom:12px}.seat:not(.mine) .seat-avatar{margin-left:0;margin-right:auto}.seat:not(.mine) .mini-hand{left:28px;right:auto}.seat.seat-right .seat-avatar{margin-left:auto;margin-right:0}.seat.seat-right .mini-hand{left:auto;right:28px}}
/* Cards are animated from the current server event, never from a client result. */
.table-zone{container-type:size}.card-motion{display:inline-grid;vertical-align:top;perspective:700px;flex:none}.card-flipper{display:grid;transform-style:preserve-3d;animation:holdem-flip 650ms ease-in-out both;animation-delay:var(--flip-delay)}.motion-face,.motion-back{grid-area:1/1;display:flex;backface-visibility:hidden}.motion-back{transform:rotateY(180deg)}.mini-hand .card-motion .card{transform:none}.mini-hand>.card-motion:first-child{rotate:-9deg}.mini-hand>.card-motion:nth-child(2){rotate:8deg}.deal-card{--dx:var(--fly-x);--dy:var(--fly-y);animation:holdem-deal 500ms cubic-bezier(.16,.65,.3,1) both;animation-delay:var(--card-delay)}.flip-card{animation:holdem-arrive 300ms ease-out both;animation-delay:var(--card-delay)}
@keyframes holdem-deal{from{transform:translate(var(--dx),var(--dy)) scale(.55) rotate(-30deg);opacity:0}15%{opacity:1}to{transform:translate(0,0) scale(1) rotate(0);opacity:1}}
@keyframes holdem-flip{0%,25%{transform:rotateY(180deg)}100%{transform:rotateY(0)}}
@keyframes holdem-arrive{from{opacity:0;translate:0 -9px}to{opacity:1;translate:0 0}}
.community-boards{display:grid;gap:10px}.board-row{position:relative}.board-label{position:absolute;right:calc(100% + 9px);top:40%;font-size:10px;white-space:nowrap;color:#c4cfc2}.board-row.running .board-label{color:var(--gold)}.board-row.running .community{filter:drop-shadow(0 0 6px #ddc57030)}.runout-progress{font-size:12px;color:var(--gold);margin:12px 0 0;text-align:center}.runout-progress>span{display:block;color:#b3c9b5;font-size:10px;margin-top:5px}.two-runs .table-caption{font-size:12px;margin-bottom:8px}.two-runs .pot-label{margin-bottom:8px}.two-runs .street-track{display:none}.run-voters{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;font-size:11px}.run-voters b{color:#efd48d;font-size:10px}.run-vote .muted{font-size:11px;margin:8px 0}.run-awards{font-size:11px;color:#dae1d5;text-align:left;border-top:1px solid var(--line);margin:10px 0;padding-top:5px}.run-awards p{margin:5px 0}.run-awards b{color:var(--gold);margin-right:8px}
@media(max-width:700px){.deal-card{--dx:var(--fly-mx);--dy:var(--fly-my)}.community .card-motion .card{width:37px;height:54px}.two-runs .table-caption{font-size:10px;margin-bottom:6px}.two-runs .community-boards{gap:8px}.board-label{font-size:8px;right:auto;left:0;top:-8px;z-index:1;background:#153c32d9;padding:0 3px}.runout-progress{font-size:10px;margin-top:8px}.runout-progress>span{font-size:9px}.run-voters{font-size:9px;gap:5px 8px}.run-voters b{font-size:8px}.run-vote .muted{font-size:9px}.run-awards{font-size:9px}.two-runs .table-center{top:46%}}
@media(prefers-reduced-motion:reduce){.card-motion,.card-flipper{animation:none!important}.card-flipper{transform:none}.motion-back{visibility:hidden}}

/* Open-table admission and cash-out controls. */
.leave-controls { position:relative; font-size:13px; }
.leave-controls summary { cursor:pointer; padding:10px; }
.leave-controls > div { position:absolute; right:0; top:100%; z-index:40; width:min(310px,80vw); padding:18px; background:#203330; color:#f4f1e7; border:1px solid #66756d; border-radius:8px; box-shadow:0 10px 28px #0005; }
.leave-controls p { line-height:1.7; font-size:13px; }
.waiting-entrants,.departure-receipt { padding:12px 18px; margin:8px auto; max-width:1100px; border:1px solid #82958d66; border-radius:6px; font-size:14px; line-height:1.6; }
.departure-receipt a { color:inherit; text-decoration:underline; }
.cashouts { max-width:1100px; margin:16px auto; font-size:13px; }
.cashouts summary { cursor:pointer; }
.cashouts li { padding:6px; }
.dead-button { display:inline-block; border:1px solid currentColor; border-radius:4px; padding:2px 6px; }

/* A range control selects a total; only the submit button places the bet. */
.custom-raise { grid-column:1/-1; }
#raise { display:grid; grid-template-columns:auto minmax(120px,1fr) 100px auto; gap:12px; margin:0; }
#raise input[type=number] { width:100%; font-variant-numeric:tabular-nums; }
.raise-slider-control { min-width:0; }
#raise #raise-slider { appearance:none; -webkit-appearance:none; display:block; width:100%; height:26px; margin:0; padding:0; border:0; border-radius:0; background:transparent; cursor:ew-resize; touch-action:pan-y; }
#raise-slider::-webkit-slider-runnable-track { height:5px; border-radius:3px; background:linear-gradient(to right,#c5b583 var(--raise-progress),#72847e70 var(--raise-progress)); }
#raise-slider::-moz-range-track { height:5px; border-radius:3px; background:linear-gradient(to right,#c5b583 var(--raise-progress),#72847e70 var(--raise-progress)); }
#raise-slider::-webkit-slider-thumb { appearance:none; -webkit-appearance:none; height:18px; width:18px; margin-top:-6.5px; border:2px solid #efe6cc; border-radius:50%; background:#9e8e62; box-shadow:0 1px 4px #0005; }
#raise-slider::-moz-range-thumb { height:14px; width:14px; border:2px solid #efe6cc; border-radius:50%; background:#9e8e62; box-shadow:0 1px 4px #0005; }
#raise-slider:disabled { opacity:.45; cursor:not-allowed; }
.raise-limits { display:flex; justify-content:space-between; font-size:10px; color:#adbdbe; font-variant-numeric:tabular-nums; }
#raise-hint { display:block; margin-top:5px; color:#aebcbd; font-size:10px; }
.seat-seconds { display:none; }
@media(max-width:700px) {
  #raise { grid-template-columns:1fr 90px auto; gap:6px; }
  #raise>label { grid-column:1/-1; display:flex; align-items:center; gap:8px; }
  #raise>label small { margin:0; }
  #raise button { padding:8px; }
  #raise-hint { font-size:9px; }
}
/* Optional chip management expands in flow, leaving the live cards visible. */
.topup-controls { flex:none; width:min(100%,1320px); margin:0 auto 8px; font-size:12px; border-bottom:1px solid var(--line); }
.topup-controls summary { display:flex; justify-content:space-between; align-items:center; gap:12px; cursor:pointer; padding:7px 2px; color:var(--muted); }
.topup-controls summary strong { color:var(--ink); font-variant-numeric:tabular-nums; margin-left:6px; }
.topup-label { color:var(--ink); border:1px solid var(--line); border-radius:4px; padding:4px 14px; }
.topup-controls>div { padding:4px 2px 14px; }
.topup-controls p { margin:6px 0 10px; line-height:1.7; }
.topup-controls small { display:block; color:var(--muted); margin-top:10px; }
.topup-presets { display:flex; gap:8px; margin-bottom:10px; }
.topup-controls button { padding:8px 12px; font-size:12px; }
#top-up { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
#top-up input { width:130px; padding:8px 10px; }
/* Results and voting stay in document flow, outside the live table. */
.game>.result { position:relative; flex:none; align-self:center; top:auto; left:auto; transform:none; width:min(100%,1320px); max-height:none; margin:0 0 12px; overflow:visible; }
@media(max-width:950px) {
  .game>.result { padding:12px 14px; border-radius:6px; text-align:left; }
  .run-vote .eyebrow { display:none; }
  .run-vote .run-voters { justify-content:flex-start; }
  .run-vote .result-actions { justify-content:flex-start; }
  .run-vote .result-actions button { flex:1; min-height:40px; font-size:12px; }
  .run-vote h2 { font-size:16px; }
  .run-vote .auto-next strong { font-size:20px; }
  .game:has(>.result)>.action-dock { display:none; }
  #top-up label { flex-basis:100%; }
}
@media(min-width:701px) and (max-width:950px) { .game:has(>.result) .seat:not(.mine) { top:max(62px,var(--y)); } }
@media(max-width:700px) { .game:has(>.result) .seat:not(.mine) { top:max(52px,var(--my)); } }

.winning-hands { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px 24px; margin:14px 0; text-align:left; }
.winning-hand { min-width:0; }
.winning-hand-title { display:flex; flex-wrap:wrap; align-items:baseline; gap:5px 10px; margin-bottom:9px; font-size:12px; }
.winning-hand-title strong { overflow-wrap:anywhere; }
.winning-hand-title>span { color:var(--muted); font-size:11px; }
.winning-five { display:flex; gap:7px; }
.winning-card { display:flex; flex-direction:column; align-items:center; gap:5px; }
.winning-card>small { font-size:9px; color:var(--muted); }
.winning-five .card { width:36px; height:51px; border:1px solid #baaa78; border-radius:3px; box-shadow:0 1px 3px #0003; }
.winning-five .card>b { top:3px; left:4px; font-size:17px; }
.winning-five .card b small { font-size:10px; margin-top:2px; }
.winning-five .card>i { right:3px; bottom:3px; font-size:20px; }
.winning-five .card>b.corner { display:none; }
@media(max-width:950px) {
  .game>.result .payouts { justify-content:flex-start; max-height:none; }
  .game>.result .result-actions { justify-content:flex-start; }
  .game>.result .result-detail-scroll { max-height:none; }
  .game:has(>.result)>.table-zone { flex:1 0 400px; }
}

.winning-hands>h3 { grid-column:1/-1; margin:0; font-size:12px; font-weight:600; color:var(--muted); }
