@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
body{--club-red:#b82b3c;--club-edge:#b4a38b;--card-w:94px;--card-h:134px;font-family:Manrope,system-ui,sans-serif;background:radial-gradient(ellipse at 32% 30%,#25362f24,transparent 65%),var(--bg)}
.site-head{max-width:1580px;margin:auto;padding:24px 42px;display:flex;gap:26px;align-items:center;border-bottom:1px solid var(--line)}
.brand{font-size:22px;font-weight:900;letter-spacing:-1px;color:var(--text);text-decoration:none}.brand>span{color:#e0283c}.brand small{display:block;font-size:8px;letter-spacing:4.4px;color:var(--muted);margin-top:4px;font-weight:500}.head-note{margin-left:auto;color:var(--muted);font-size:11px}main{max-width:1500px;margin:auto;padding:32px 42px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:3px;color:var(--muted)}
.entrance{display:grid;grid-template-columns:1.3fr .8fr;gap:80px;align-items:center;min-height:78vh}#join.entrance{place-items:stretch;align-items:center;padding:26px 0}.intro{min-width:0}.intro h1{font-size:clamp(52px,6vw,88px);line-height:1.06;letter-spacing:-5px;font-weight:500;margin:26px 0}.intro h1 em{font-style:normal;color:var(--text);font-weight:800}.lead{color:var(--muted);font-size:15px;line-height:1.9}.features{display:flex;gap:25px;font-size:10px;color:var(--muted);margin-top:35px}.entry-panel,.panel{border:1px solid var(--line);background:linear-gradient(145deg,var(--surface),var(--bg));border-radius:16px;padding:30px;box-shadow:0 16px 45px #0000000a}.entry-panel h2{font-size:25px;font-weight:600;letter-spacing:-.8px;margin:20px 0 28px}label{display:block;font-size:11px;color:var(--muted);margin:15px 0}input,select{width:100%;padding:12px;margin-top:8px;background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:7px;outline-offset:3px}button{font:inherit;cursor:pointer}.btn{border-radius:7px}.btn.primary{background:linear-gradient(150deg,#c23143,#a02032);border:1px solid #d6535f55;box-shadow:inset 0 1px 0 #ffffff17,0 4px 8px #0002;color:#fff}.btn.primary:hover:not(:disabled){background:linear-gradient(150deg,#d03c4f,#b3273a)}.entry-panel>.btn{width:100%;padding:15px;margin-top:8px}.entry-panel .hint{font-size:11px;line-height:1.8;margin-top:20px}.entry-panel>a{font-size:11px;color:var(--muted)}
/* The deck is a native vector design: ivory stock, bevel, rounded corners and branded backs. */
.playing-card{position:relative;display:block;flex-shrink:0;width:var(--card-w);height:var(--card-h);border-radius:calc(var(--card-w)*.08);background:linear-gradient(130deg,#fffef7 0%,#f6f1e6 60%,#eee9df 100%);border:1px solid #fff8e1;color:#20282a;font-style:normal;box-shadow:0 1px 0 #c7bca9,0 2px 0 #e2d7c4,0 3px 0 #aaa293,0 5px 8px #0003,0 14px 23px #0002,inset 0 0 0 1px #fff9;transform:translateZ(0);overflow:hidden;user-select:none}
.playing-card:after{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(125deg,#fff5,transparent 40%,#00000004);pointer-events:none}.playing-card.red{color:#b5293b}.playing-card .corner{position:absolute;top:6%;left:7%;font-family:Georgia,'Times New Roman',serif;font-weight:700;font-size:calc(var(--card-w)*.235);line-height:.92;text-align:center;z-index:2;letter-spacing:-1px}.corner b{display:block;font-size:calc(var(--card-w)*.18);font-weight:400;line-height:1.2}.playing-card .opposite{left:auto;top:auto;bottom:6%;right:7%;transform:rotate(180deg)}.card-art{position:absolute;inset:17% 19%;display:block}.pip{position:absolute;font-family:Georgia,serif;font-size:calc(var(--card-w)*.22);line-height:1;transform:translate(-50%,-50%)}.ace-art{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);font-size:calc(var(--card-w)*.65);font-family:Georgia,serif;line-height:1}.ace-brand{position:absolute;top:79%;left:50%;transform:translateX(-50%);font-size:calc(var(--card-w)*.055);font-family:Manrope,sans-serif;font-weight:800;letter-spacing:calc(var(--card-w)*.025);white-space:nowrap}.card-edition{position:absolute;bottom:5%;left:27%;font:500 calc(var(--card-w)*.035)/1 Manrope,sans-serif;letter-spacing:calc(var(--card-w)*.009);color:#a09582;white-space:nowrap}.court-art{position:absolute;inset:3% 3%;border:1px solid currentColor;display:flex;flex-direction:column;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,transparent,transparent 5px,#9c856b0a 5px,#9c856b0a 6px)}.court-art:before,.court-art:after{content:'';position:absolute;inset:4px;border:1px solid currentColor;opacity:.25}.court-art em{font:normal calc(var(--card-w)*.53)/1 Georgia,serif;z-index:1}.court-art b{font:400 calc(var(--card-w)*.2)/1 Georgia,serif}.back{background:#711e2c;padding:0;border-color:#ded3be}.back img{width:100%;height:100%;display:block;object-fit:fill}.card-slot{width:var(--card-w);height:var(--card-h);flex-shrink:0;border:1px solid #cedac11c;border-radius:8px;display:grid;place-items:center;box-shadow:inset 0 1px 6px #0002;background:#00000007}.card-slot span{font-size:24px;color:#cbd2bc16;font-style:normal}
.hero-cards{height:275px;position:relative;margin:35px 0 10px;perspective:1100px;--card-w:132px;--card-h:186px}.hero-cards:after{content:'';position:absolute;width:390px;height:80px;background:radial-gradient(ellipse,#0006,transparent 70%);top:165px;left:10px;z-index:-1}.hero-cards>.playing-card{position:absolute;top:28px;transform:rotate(-14deg) rotateY(6deg) rotateX(10deg);left:45px;box-shadow:1px 2px 0 #c7bca9,2px 4px 0 #d8cebd,3px 6px 0 #9d9485,8px 18px 20px #0004,25px 40px 50px #0003}.hero-cards>.playing-card:nth-child(2){left:155px;top:15px;transform:rotate(5deg) rotateY(-8deg) rotateX(10deg);z-index:2}.hero-cards>.playing-card:nth-child(3){left:260px;top:35px;transform:rotate(18deg) rotateY(-5deg) rotateX(10deg);z-index:3}.hero-chips{position:absolute;left:360px;top:160px;width:120px;height:100px;z-index:5}.hero-chips img{position:absolute;width:80px;filter:drop-shadow(4px 9px 4px #0005);transform:rotateX(28deg)}.hero-chips img:nth-child(1){top:12px;left:6px}.hero-chips img:nth-child(2){top:3px;left:7px}.hero-chips img:nth-child(3){left:65px;top:25px;transform:rotate(-22deg) rotateX(28deg)}
.room-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.room-heading h1{font-size:25px;font-weight:500;letter-spacing:-.6px;margin:14px 0}.room-heading h1 span{font-size:10px;letter-spacing:2px;margin-left:20px;color:var(--muted)}.room-tools{display:flex;gap:8px}.room-tools .btn{font-size:11px}.tv-notice{padding:11px 17px;border:1px solid #a294714a;border-radius:8px;background:#9c8c6210;color:var(--soft);margin-bottom:12px;font-size:11px;letter-spacing:.15px}
.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 254px;gap:34px}.arena{height:690px;min-width:0;position:relative;perspective:1400px}.dealer{position:absolute;top:3px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;z-index:3}.dealer img{width:70px;height:70px;object-fit:contain;filter:drop-shadow(0 4px 6px #0005);animation:breathe 6s ease-in-out infinite}.dealer b,.dealer span{display:block}.dealer b{font-size:13px;font-weight:600}.dealer span{font-size:9px;color:var(--muted)}
.felt{position:absolute;top:128px;left:50px;right:50px;height:370px;border-radius:190px;border:18px solid #242426;outline:1px solid #696453;box-shadow:0 3px 0 1px #131316,0 7px 0 2px #353437,0 8px 0 3px #111114,0 15px 30px #0005,0 40px 75px #0004,inset 0 0 0 1px #6e6b5b,inset 0 0 0 6px #122b26,inset 0 10px 30px #0006;background:radial-gradient(ellipse at 50% 20%,#25463c,#15372e 60%,#102920);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:17px;color:#f1eee4;transform:rotateX(7deg)}
.felt:before{content:'';position:absolute;inset:17px;border:1px solid #d4c9a82b;border-radius:180px;pointer-events:none}.felt:after{content:'';position:absolute;inset:8px;border-radius:inherit;pointer-events:none;opacity:.2;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.32' filter='url(%23n)'/%3E%3C/svg%3E")}.felt-mark{font-size:15px;letter-spacing:5px;color:#c1c7a943;font-weight:800;z-index:1}.felt-mark span{display:block;text-align:center;font-size:6px;letter-spacing:4.5px;font-weight:400;margin-top:4px}.board{display:flex;gap:10px;min-height:112px;--card-w:76px;--card-h:108px;z-index:1;perspective:900px}.board .playing-card{animation:deal .5s cubic-bezier(.16,1,.3,1);transform:rotateX(-7deg)}.pot{text-align:center;position:relative;z-index:1}.pot small{color:#b5bba5;font-size:8px;text-transform:uppercase;letter-spacing:2px}.pot strong{display:block;font-size:26px;font-weight:500;letter-spacing:-.6px}.chip-stack{position:absolute;left:-55px;top:15px;width:45px;height:45px}.chip-stack img{position:absolute;left:0;width:43px;transform:rotateX(35deg);filter:drop-shadow(0 2px 1px #0005)}.chip-stack img:nth-child(1){top:9px}.chip-stack img:nth-child(2){top:4px}.chip-stack img:nth-child(3){top:-1px}.phase{font-size:8px;text-transform:uppercase;letter-spacing:3px;color:#adbba7;z-index:1}
.seats{position:absolute;inset:70px 0 30px;pointer-events:none}.seat{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:130px;text-align:center;border:1px solid var(--line);border-radius:10px;padding:12px 10px;background:linear-gradient(160deg,var(--surface-2),var(--surface));box-shadow:0 5px 12px #0002;pointer-events:auto;z-index:2}.seat.active{border-color:#c13949;box-shadow:0 0 0 3px #c1394918,0 8px 18px #0003}.seat.folded{opacity:.5}.seat b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600}.seat .balance{display:flex;align-items:center;justify-content:center;gap:4px;font-weight:700;font-size:16px;margin:6px 0}.balance-chip{width:21px;height:22px;filter:drop-shadow(0 2px 1px #0005)}.seat small{color:var(--muted);font-size:9px}.seat .marker{position:absolute;right:-8px;top:-8px;background:linear-gradient(#fffdf2,#cfc5b3);color:#373a34;border:2px solid #e8e0d1;box-shadow:0 2px 0 #736e61,0 3px 5px #0004;border-radius:50%;width:22px;height:22px;text-align:center;font-size:10px;line-height:18px}.mini-cards{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);display:flex;gap:5px;--card-w:44px;--card-h:62px;perspective:700px}.mini-cards .playing-card:first-child{transform:rotate(-6deg)}.mini-cards .playing-card:last-child{transform:rotate(6deg)}.mini-cards .card-edition{display:none}.results{position:absolute;bottom:4px;left:0;right:0;color:var(--soft);text-align:center;font-size:12px;font-weight:500;padding:12px;letter-spacing:.3px}
.panel{padding:20px;margin-bottom:14px}.my-cards{display:flex;gap:13px;justify-content:center;margin:25px 0 22px;perspective:900px;--card-w:82px;--card-h:116px;cursor:pointer;min-height:116px}.my-cards .playing-card{transition:transform .3s cubic-bezier(.2,.8,.2,1)}.my-cards .playing-card:first-child{transform:rotate(-5deg) rotateY(5deg)}.my-cards .playing-card:last-child{transform:rotate(5deg) rotateY(-5deg)}.my-cards:hover .playing-card:first-child{transform:rotate(-8deg) translateY(-5px)}.my-cards:hover .playing-card:last-child{transform:rotate(8deg) translateY(-5px)}.panel .hint{font-size:10px;line-height:1.6}.actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.actions>label,.actions>.primary,.quick{grid-column:1/-1}.quick{display:flex;gap:7px}.quick .btn{flex:1}.actions label{margin:3px 0}.actions .btn{padding:10px 6px;font-size:11px;font-weight:500}.panel>.btn{width:100%;margin-top:8px;font-size:10px}.deal-btn{width:100%;padding:14px;font-size:12px}.countdown{font-size:10px;color:var(--muted);margin:12px 0;font-variant-numeric:tabular-nums;letter-spacing:.4px}#pause,#reset{width:100%;font-size:10px;margin-top:9px}.bottom-note{text-align:center;color:var(--muted);font-size:10px;margin:25px;letter-spacing:.1px}dialog{max-width:570px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:30px}dialog::backdrop{background:#000a;backdrop-filter:blur(5px)}dialog p{color:var(--muted);margin:18px 0;font-size:13px;line-height:1.8}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--surface-2);box-shadow:0 8px 30px #0005;padding:14px 24px;border-radius:10px;z-index:100;display:none;max-width:90vw;font-size:12px}#error{color:#dc5666}.hidden{display:none!important}:focus-visible{outline:2px solid #b82b3c;outline-offset:4px}button:disabled{opacity:.4;cursor:default}
.tv-mode .game-layout{grid-template-columns:1fr}.tv-mode .game-layout>aside{display:none}.tv-mode .arena{height:760px}.tv-mode .felt{left:100px;right:100px;top:145px;height:435px}.tv-mode .seats{inset:95px 0 0}.tv-mode .mini-cards{--card-w:72px;--card-h:102px}.tv-mode .seat{width:155px;padding:15px}.tv-mode .seat b{font-size:14px}.tv-mode .seat .balance{font-size:21px}.tv-mode .board{--card-w:94px;--card-h:134px}
:root[data-theme=light] .felt{box-shadow:0 3px 0 1px #131316,0 7px 0 2px #353437,0 8px 0 3px #111114,0 15px 35px #0002,0 40px 65px #0002,inset 0 0 0 1px #6e6b5b,inset 0 0 0 6px #122b26,inset 0 10px 30px #0006}
@keyframes breathe{50%{transform:translateY(-3px)}}@keyframes deal{from{opacity:0;transform:translateY(-35px) rotate(-10deg) rotateX(15deg)}to{opacity:1;transform:rotateX(-7deg)}}
@media(min-width:1500px){.felt{height:410px}.arena{height:730px}.board{--card-w:84px;--card-h:120px}}
@media(max-width:1100px){.entrance{gap:35px}.hero-cards{--card-w:112px;--card-h:158px}.hero-cards>.playing-card{left:5px}.hero-cards>.playing-card:nth-child(2){left:90px}.hero-cards>.playing-card:nth-child(3){left:180px}.hero-chips{left:245px;top:150px}.game-layout{grid-template-columns:minmax(0,1fr) 230px;gap:18px}.felt{left:25px;right:25px;height:335px;border-width:13px}.board{--card-w:60px;--card-h:86px;gap:7px;min-height:88px}.seat{width:112px}.mini-cards{--card-w:36px;--card-h:51px}.arena{height:640px}.features{gap:14px;flex-wrap:wrap}}
@media(max-width:780px){main{padding:24px 20px}.site-head{padding:20px;flex-wrap:wrap;gap:12px}.site-head>.prefs{margin-left:auto}.site-head>#invite{order:3;width:100%;padding:8px}.head-note{display:none}.entrance{grid-template-columns:1fr;gap:20px}.intro h1{font-size:62px;letter-spacing:-3px}.hero-cards{height:240px;max-width:100%;--card-w:120px;--card-h:170px}.hero-cards>.playing-card{left:calc(50% - 150px)}.hero-cards>.playing-card:nth-child(2){left:calc(50% - 60px)}.hero-cards>.playing-card:nth-child(3){left:calc(50% + 30px)}.hero-chips{left:calc(50% + 70px);top:150px}.hero-chips img{width:62px}.hero-chips img:nth-child(3){left:40px}.hero-cards:after{width:90%}.features{margin:20px 0}.game-layout{grid-template-columns:1fr;gap:0}.room-heading h1{font-size:21px}.room-heading h1 span{display:block;margin:8px 0}.room-tools{flex-direction:column}.arena{height:530px}.felt{top:105px;left:16px;right:16px;height:305px;border-width:12px}.board{--card-w:53px;--card-h:76px;gap:6px;min-height:78px}.felt-mark{font-size:12px}.felt-mark span{font-size:5px}.dealer{top:0}.dealer img{width:60px;height:60px}.seats{inset:60px 0 0}.seat{width:100px;padding:9px 6px}.seat .balance{font-size:14px}.seat b{font-size:10px}.mini-cards{--card-w:32px;--card-h:45px;gap:3px;bottom:calc(100% + 7px)}.seat .marker{width:19px;height:19px;font-size:9px;line-height:15px}.panel{padding:20px}.game-layout>aside{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.game-layout>aside>.panel:first-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 22px;align-items:center}.panel>.eyebrow{grid-column:1/-1}.my-cards{grid-column:1;grid-row:2/5;margin:10px 0 18px;--card-w:74px;--card-h:106px}.actions{grid-column:2;grid-row:2/7}.panel #privacyHint{grid-column:1;grid-row:5}.panel #turnHint{grid-column:2}.panel #countdown{grid-column:1;grid-row:6}.panel #seatBtn,.panel #tvBtn{grid-column:1/-1}.game-layout>aside>.panel:not(:first-child){grid-column:1/-1;width:100%}#deal,#pause,#reset{grid-column:1/-1}.results{bottom:0;font-size:10px}.tv-mode .arena{height:700px}.tv-mode .felt{left:25px;right:25px;top:150px;height:350px}.tv-mode .board{--card-w:53px;--card-h:76px}.tv-mode .mini-cards{--card-w:40px;--card-h:57px}.tv-mode .seat{width:110px;padding:10px}.tv-mode .seat b{font-size:11px}.tv-mode .seat .balance{font-size:16px}}
@media(max-width:480px){main{padding:20px 12px}.intro h1{font-size:54px}.felt{left:6px;right:6px;height:275px;border-width:10px;top:105px}.arena{height:495px}.board{--card-w:47px;--card-h:67px;gap:5px;min-height:69px}.felt-mark{font-size:10px;letter-spacing:4px}.felt-mark span{font-size:5px;letter-spacing:3px}.felt{gap:14px}.pot strong{font-size:23px}.seat{width:86px}.seat b{font-size:9px}.seat .balance{font-size:12px;gap:2px}.balance-chip{width:16px;height:18px}.seat small{font-size:8px}.mini-cards{--card-w:28px;--card-h:40px}.seats{inset:70px 0 0}.entry-panel{padding:24px}.hero-cards{--card-w:105px;--card-h:148px;height:215px}.hero-cards>.playing-card{left:calc(50% - 135px)}.hero-cards>.playing-card:nth-child(2){left:calc(50% - 52px)}.hero-cards>.playing-card:nth-child(3){left:calc(50% + 25px)}.hero-chips{left:calc(50% + 70px);top:135px}.hero-chips img{width:55px}.hero-chips img:nth-child(3){left:30px}.game-layout>aside>.panel:first-child{gap:0 13px;padding:16px}.my-cards{--card-w:64px;--card-h:91px;gap:8px}.room-heading h1{font-size:19px}.bottom-note{line-height:1.8;margin:20px 6px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.countdown{display:block;background:none;pointer-events:auto}.seat{left:clamp(66px,var(--x),calc(100% - 66px))}.tv-mode .seat{left:clamp(80px,var(--x),calc(100% - 80px))}@media(max-width:780px){.seat{left:clamp(51px,var(--x),calc(100% - 51px))}.arena.many-seats{height:650px}.many-seats .felt{top:155px;height:340px}.many-seats .seats{inset:130px 0 30px}.tv-mode .seat{left:clamp(56px,var(--x),calc(100% - 56px))}.tv-mode .arena.many-seats{height:720px}}@media(max-width:480px){.seat{left:clamp(44px,var(--x),calc(100% - 44px))}.many-seats .felt{height:300px}.many-seats .seats{inset:140px 0 30px}}
@media(max-width:480px){.many-seats .board{--card-w:34px;--card-h:49px;gap:4px;min-height:51px}.many-seats .felt{gap:20px}.many-seats .felt-mark{font-size:9px}.many-seats .card-slot span{font-size:15px}}
/* Room creation follows the shared FunBase create / code pattern. */
.join-tabs{display:flex;gap:4px;padding:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;margin:24px 0 18px}.join-tabs .tab{flex:1;border:0;border-radius:6px;background:none;color:var(--muted);font-size:11px;padding:11px 8px;font-weight:600}.join-tabs .tab.active{background:var(--surface);color:var(--text);box-shadow:0 2px 5px #0002}
.lobby-settings{border:1px solid var(--line);border-radius:15px;background:linear-gradient(130deg,var(--surface),var(--bg));padding:26px;margin:8px 0 28px}.setup-heading{display:flex;justify-content:space-between;gap:25px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:22px}.setup-heading h2{font-size:24px;font-weight:500;letter-spacing:-.8px;margin:9px 0}.setup-heading .hint{font-size:11px;max-width:540px;line-height:1.8}.setup-heading>span{font-size:10px;color:var(--muted);white-space:nowrap;align-self:center}.setup-grid{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:35px}.setup-group{position:relative}.setup-group h3{font-size:14px;font-weight:600;margin:0 0 23px}.setup-number{float:right;font-size:10px;color:var(--muted);letter-spacing:2px}.setup-group label{font-size:11px}.setup-group select,.setup-group input{padding:12px}.stack-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:15px;padding:9px 0;margin:0}.stack-row span{min-width:0}.stack-row b{font-size:12px;color:var(--text);display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis}.stack-row small{font-size:9px;color:var(--muted)}.stack-row input{width:110px;margin:0;text-align:right}.stack-row strong{color:var(--soft);font-size:15px;font-weight:500}.room-tools #deal{padding:12px 22px;font-size:12px}
/* Fani sits behind the rail. Artwork is one aligned transparent sheet with three poses. */
.arena{height:790px}.felt{top:220px;z-index:2}.seats{inset:160px 0 30px;z-index:3}.dealer{top:0;left:50%;width:270px;height:245px;display:block;z-index:1;isolation:isolate}.dealer-character{width:245px;height:245px;background-image:url('assets/fani-dealer-poses.png');background-size:300% 100%;background-position:0% 0;background-repeat:no-repeat;position:absolute;bottom:0;left:50%;transform:translateX(-50%);filter:drop-shadow(0 8px 12px #0004);animation:dealer-breathe 6s ease-in-out infinite;transform-origin:50% 85%}.dealer.dealing .dealer-character{background-position:50% 0;animation:dealer-reach 1s ease-in-out infinite}.dealer.celebrating .dealer-character{background-position:100% 0;animation:dealer-nod 1.5s ease-out}.dealer>div:not(.dealer-character):not(.dealer-shoe):not(.dealt-cards){position:absolute;left:calc(100% + 4px);top:105px;width:130px}.dealer-shoe{position:absolute;right:27px;bottom:12px;width:38px;height:48px;border-radius:4px;background:url('assets/card-back.svg') center/cover;transform:rotate(13deg);box-shadow:1px 2px 0 #ded4bd,2px 4px 0 #8b8270,3px 6px 0 #ded4bd}.dealt-cards{position:absolute;left:50%;bottom:22px;z-index:5;pointer-events:none}.dealt-cards img{position:absolute;width:35px;height:49px;opacity:0;animation:dealer-send .75s var(--delay) cubic-bezier(.2,.7,.3,1) forwards;box-shadow:0 3px 6px #0004;border-radius:3px}.dealer.dealing{z-index:4}.dealer.dealing .dealer-shoe{opacity:0}.results{z-index:4}
.bet-target{display:none;position:absolute;inset:25px;border:2px dashed #c7bb9266;border-radius:170px;z-index:6;align-items:center;justify-content:center;flex-direction:column;gap:8px;background:#12261ce8;backdrop-filter:blur(2px);pointer-events:none}.bet-target b{font-weight:500;font-size:16px;letter-spacing:.3px}.bet-target span{font-size:11px;color:#c7cbb7}.drag-over .bet-target{display:flex}.felt.drag-over{outline:2px solid #c6bc91;box-shadow:0 0 30px #c6bc9120}.bet-target.has-bet:not(.drag-over .bet-target){display:flex;inset:auto;bottom:15px;background:#10251dd9;border:1px solid #c7bb9244;border-radius:99px;padding:7px 18px;backdrop-filter:none}.bet-target.has-bet b{display:none}.bet-target.has-bet span{font-size:10px}.chip-tray{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0 2px}.bet-chip{position:relative;border:0;background:transparent;padding:0 0 14px;color:var(--text);display:grid;place-items:center;touch-action:none;user-select:none;cursor:grab;transition:transform .16s}.bet-chip img{display:block;width:61px;height:65px;filter:drop-shadow(0 4px 3px #0004);pointer-events:none}.bet-chip>b{position:absolute;bottom:1px;font-size:10px;font-weight:600;line-height:1;color:var(--soft);pointer-events:none}.bet-chip:hover:not(:disabled){transform:translateY(-4px)}.bet-chip:disabled{opacity:.27}.drag-chip{position:fixed;z-index:1000;transform:translate(-50%,-50%)!important;pointer-events:none!important;filter:drop-shadow(0 9px 5px #0006);opacity:1!important}.chip-dragging{cursor:grabbing;user-select:none}.chip-help{grid-column:1/-1;font-size:10px;color:var(--muted);line-height:1.7;margin:4px 0 10px}.pending-bet{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.pending-bet>span{grid-column:1/-1;font-size:12px;font-weight:600;text-align:center;margin-bottom:3px}.exact-bet{grid-column:1/-1;margin-top:8px;border-top:1px solid var(--line);padding-top:12px}.exact-bet summary{color:var(--muted);font-size:10px;cursor:pointer}.exact-bet>.primary{width:100%;margin-top:8px}.exact-bet .quick{margin-top:8px}.tv-mode .arena{height:880px}.tv-mode .felt{top:240px}.tv-mode .seats{inset:190px 0 0}.tv-mode .dealer{width:290px;height:265px}.tv-mode .dealer-character{width:265px;height:265px}
@keyframes dealer-breathe{50%{transform:translateX(-50%) translateY(2px) scaleY(.992)}}@keyframes dealer-reach{0%,100%{transform:translateX(-50%) rotate(-.4deg)}50%{transform:translateX(-50%) translateY(3px) rotate(.6deg)}}@keyframes dealer-nod{0%,100%{transform:translateX(-50%)}45%{transform:translateX(-50%) translateY(-4px) rotate(-1deg)}}@keyframes dealer-send{0%{opacity:0;transform:translate(0,0) rotate(0)}15%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--rotate))}}
@media(max-width:1100px){.arena{height:740px}.felt{top:210px}.seats{inset:150px 0 30px}.dealer>div:not(.dealer-character):not(.dealer-shoe):not(.dealt-cards){left:90%;width:100px;font-size:10px}}
@media(max-width:780px){.setup-grid{grid-template-columns:1fr 1fr;gap:22px}.roster-group{grid-column:1/-1}.setup-heading{display:block}.setup-heading>span{display:block;margin-top:12px}.lobby-settings{padding:20px;margin-bottom:16px}.arena{height:625px}.felt{top:190px}.seats{inset:160px 0 0}.dealer{height:210px;width:230px}.dealer-character{width:210px;height:210px}.dealer>div:not(.dealer-character):not(.dealer-shoe):not(.dealt-cards){left:calc(100% - 20px);top:105px;width:80px}.dealer-shoe{bottom:8px;right:30px}.arena.many-seats{height:790px}.many-seats .felt{top:260px}.many-seats .seats{inset:240px 0 30px}.game-layout>aside>.panel:first-child{display:block}.my-cards{margin:18px auto;--card-w:82px;--card-h:116px}.actions{grid-template-columns:1fr 1fr}.chip-tray{grid-template-columns:repeat(6,1fr);gap:5px}.bet-chip img{width:45px;height:49px}.chip-help{text-align:center}.pending-bet{grid-template-columns:1fr 1fr}.bet-target b{font-size:12px}.tv-mode .arena{height:820px}.tv-mode .felt{top:260px}.tv-mode .dealer{width:230px;height:210px}.tv-mode .dealer-character{width:210px;height:210px}.tv-mode .seats{inset:230px 0 0}.tv-mode .arena.many-seats{height:870px}.room-tools #deal{padding:10px 15px;font-size:11px}}
@media(max-width:480px){.setup-grid{grid-template-columns:1fr}.roster-group{grid-column:auto}.setup-group{padding-bottom:14px;border-bottom:1px solid var(--line)}.setup-group:last-child{border:0}.setup-group h3{margin-bottom:15px}.setup-heading h2{font-size:22px}.arena{height:600px}.dealer{width:200px;height:200px}.dealer-character{width:200px;height:200px}.dealer>div:not(.dealer-character):not(.dealer-shoe):not(.dealt-cards){left:calc(100% - 5px);top:93px;width:65px}.dealer-shoe{right:19px;bottom:7px;width:30px;height:42px}.felt{top:180px}.seats{inset:150px 0 0}.arena.many-seats{height:765px}.many-seats .felt{top:250px}.many-seats .seats{inset:220px 0 30px}.chip-tray{gap:2px}.bet-chip img{width:43px;height:46px}}
.pending-bet>small{grid-column:1/-1;font-size:10px;color:var(--muted);line-height:1.7;text-align:center}.pending-pot-chips{position:absolute;left:calc(50% + 75px);bottom:60px;z-index:5;pointer-events:none}.pending-pot-chips img{position:absolute;width:38px;height:40px;left:calc(mod(var(--i),3)*10px);bottom:calc(var(--i)*3px);filter:drop-shadow(0 3px 2px #0004);animation:chip-land .25s ease-out}.pending-pot-chips:empty{display:none}@keyframes chip-land{from{opacity:0;transform:translateY(-18px) rotate(15deg)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.dealer-character,.dealt-cards img,.pending-pot-chips img{animation:none!important}.dealt-cards{display:none}}
.arena{overflow:clip;overflow-clip-margin:0}.dealt-cards{pointer-events:none}@media(max-width:780px){.dealt-cards img{animation-name:dealer-send-mobile}}@keyframes dealer-send-mobile{0%{opacity:0;transform:translate(0,0) rotate(0)}15%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translate(clamp(-110px,var(--dx),110px),var(--dy)) rotate(var(--rotate))}}
/* A room is a set of places, not a pair of undealt cards. */
.seat-lobby{margin:12px 0 28px}.seat-lobby-heading{margin:22px 0}.seat-lobby-heading h2{font-size:30px;letter-spacing:-1px;font-weight:500;margin-top:8px}.role-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.role-card{text-align:left;border:1px solid var(--line);border-radius:16px;padding:20px 24px;background:radial-gradient(ellipse at 50% 20%,#51665714,transparent 65%),var(--surface);color:var(--text);position:relative;transition:border-color .2s,transform .2s,box-shadow .2s;overflow:hidden}.role-card:hover:not(:disabled){transform:translateY(-4px);border-color:#8a8269;box-shadow:0 15px 35px #0002}.role-card.selected{border-color:#ae9c73;background:radial-gradient(ellipse at 50% 10%,#b8a77418,transparent 80%),var(--surface)}.role-card>img{width:100%;height:155px;object-fit:contain;display:block;margin:8px auto 15px}.role-badge{position:absolute;right:17px;top:14px;font-size:9px;letter-spacing:.8px;color:var(--muted);border:1px solid var(--line);border-radius:99px;padding:5px 9px;max-width:80%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.role-copy strong{display:block;font-size:20px;font-weight:500;letter-spacing:-.4px;margin-bottom:9px}.role-copy small{display:block;min-height:36px;font-size:11px;line-height:1.8;color:var(--muted);max-width:270px}.role-foot{display:block;border-top:1px solid var(--line);padding-top:17px;margin-top:22px;font-size:10px;color:var(--soft);letter-spacing:.4px}.role-card.selected .role-foot{color:#c3b38f}.role-card:disabled{opacity:.55;cursor:default}.no-hand .game-layout{grid-template-columns:1fr}.no-hand .game-layout>aside{display:none}.lobby-mode .board,.lobby-mode .pot{display:none}.lobby-mode .felt-mark{font-size:30px;letter-spacing:9px;opacity:.65}.lobby-mode .felt-mark span{font-size:9px;letter-spacing:7px;margin-top:10px}.lobby-mode .phase{margin-top:18px}.media-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:14px 0 22px}.media-buttons{display:flex;gap:8px}.media-buttons .btn{font-size:11px;font-weight:500}.media-buttons [aria-pressed=true]{border:1px solid #65937f;color:#8abc9f;background:#43765c18}.sound-settings{position:relative;font-size:11px;color:var(--muted)}.sound-settings summary{cursor:pointer;padding:8px 12px}.sound-settings>div{position:absolute;right:0;top:35px;padding:18px 20px;width:240px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 35px #0005;z-index:20}.sound-settings input{padding:0;accent-color:#b82b3c}.seat-camera{width:36px;height:36px;border-radius:50%;overflow:hidden;margin:0 auto 7px;background:linear-gradient(145deg,#454c46,#242d28);border:1px solid #8c8a7066;display:grid;place-items:center;color:#e8e1c9;font-size:14px;font-weight:500}.seat-camera .player-video{width:100%;height:100%;object-fit:cover;display:block}.seat-camera.has-video{border-color:#87aa86}.audience-panel{border-top:1px solid var(--line);padding:24px 0;margin:0 0 15px}.audience-list{display:flex;gap:20px;flex-wrap:wrap;margin-top:15px}.audience-person{display:flex;align-items:center;gap:10px;min-width:130px}.audience-person .seat-camera{width:44px;height:44px;margin:0}.audience-person b{display:block;font-size:11px;font-weight:500}.audience-person small{font-size:9px;color:var(--muted)}.chip-bundle{grid-column:1/-1;border-bottom:1px solid var(--line);padding:5px 0 13px;margin-top:10px}.chip-bundle label{display:flex;align-items:center;justify-content:space-between;margin:0}.chip-bundle input{width:65px;padding:8px;margin:0;text-align:center}.chip-bundle>div{display:flex;gap:5px;margin-top:9px}.chip-bundle .btn{flex:1;padding:6px}.bet-chip>em{position:absolute;top:0;right:0;font-style:normal;font-size:9px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);padding:3px 5px;border-radius:99px}.drag-chip{width:66px}.drag-chip>em{box-shadow:0 2px 5px #0004}.cinema-exit{position:fixed;bottom:15px;right:20px;z-index:50;color:#d6d0be;background:#171a1acc;border:1px solid #8a826944;border-radius:7px;padding:8px 12px;font:10px Manrope,sans-serif;opacity:.08;transition:opacity .2s}.cinema-exit:hover,.cinema-exit:focus-visible{opacity:1}
/* Broadcast view deliberately keeps only the identity and the live table. */
body.tv-cinema{overflow:hidden;background:#0e1211}body.tv-cinema .site-head{height:65px;max-width:none;padding:17px 35px;border-color:#ffffff0b}body.tv-cinema .site-head>:not(.brand){display:none!important}body.tv-cinema .brand{color:#fff;font-size:20px}body.tv-cinema .brand small{display:inline-block;margin:0 0 0 14px;padding-left:15px;border-left:1px solid #77776666;font-size:10px;letter-spacing:3px;color:#b9b7a7;vertical-align:middle}body.tv-cinema main{max-width:1500px;padding:0 32px;margin:auto}body.tv-cinema .room-heading,body.tv-cinema .tv-notice,body.tv-cinema .seat-lobby,body.tv-cinema .lobby-settings,body.tv-cinema .media-toolbar,body.tv-cinema .bottom-note,body.tv-cinema .audience-panel,body.tv-cinema .lang-hint{display:none!important}body.tv-cinema .arena{height:calc(100dvh - 72px);min-height:0}body.tv-cinema .dealer{height:clamp(120px,24vh,230px);width:240px}body.tv-cinema .dealer-character{height:clamp(120px,24vh,230px);width:clamp(120px,24vh,230px)}body.tv-cinema .felt{top:26%;left:8%;right:8%;height:52%;transform:none}body.tv-cinema .seats{inset:22% 0 8%}body.tv-cinema .seat{width:140px;padding:10px}body.tv-cinema .mini-cards{--card-w:56px;--card-h:80px}body.tv-cinema .board{--card-w:clamp(45px,6.5vh,88px);--card-h:clamp(64px,9.3vh,126px)}body.tv-cinema .results{bottom:0}body.tv-cinema .seat-camera{width:28px;height:28px;margin-bottom:4px}body.tv-cinema .dealer>div:not(.dealer-character):not(.dealer-shoe):not(.dealt-cards){display:none}
@media(max-width:780px){.role-slots{gap:10px}.role-card{padding:15px}.role-card>img{height:110px;margin-top:20px}.role-copy strong{font-size:16px}.role-copy small{font-size:10px}.role-foot{font-size:9px}.media-toolbar{align-items:flex-start;gap:8px}.media-buttons{gap:5px;flex-wrap:wrap}.media-buttons .btn{font-size:10px;padding:9px 11px}.seat-camera{width:28px;height:28px;font-size:11px}.chip-tray{grid-template-columns:repeat(6,1fr);row-gap:12px}.bet-chip img{width:45px;height:49px}.lobby-mode .felt-mark{font-size:22px}.lobby-mode .felt-mark span{font-size:7px}.no-hand .game-layout>aside{display:none}body.tv-cinema main{padding:0 12px}body.tv-cinema .seat{width:90px;padding:6px}body.tv-cinema .seat b{font-size:9px}body.tv-cinema .seat .balance{font-size:12px}body.tv-cinema .mini-cards{--card-w:32px;--card-h:45px}body.tv-cinema .seat-camera{width:22px;height:22px}body.tv-cinema .felt{left:10px;right:10px}body.tv-cinema .dealer{top:0}body.tv-cinema .seats{inset:24% 0 9%}body.tv-cinema .site-head{padding:16px 20px}body.tv-cinema .brand small{font-size:8px}}
@media(max-width:480px){.role-slots{grid-template-columns:1fr}.role-card{display:grid;grid-template-columns:100px minmax(0,1fr);gap:0 14px;align-items:center;padding:18px 16px}.role-card>img{grid-column:1;grid-row:1/4;width:100px;height:110px;margin:0}.role-copy{grid-column:2;padding-top:16px}.role-copy strong{font-size:19px;margin-bottom:6px}.role-copy small{min-height:0;font-size:10px}.role-badge{right:15px;top:10px;font-size:8px;border:0;padding:0}.role-foot{grid-column:2;border:0;margin-top:10px;padding-top:0}.seat-lobby-heading h2{font-size:27px}.chip-tray{grid-template-columns:repeat(4,1fr);gap:10px}.bet-chip img{width:54px;height:58px}.seat-camera{width:24px;height:24px}.chip-bundle>div .btn{padding:8px}.sound-settings summary{padding:8px 4px;font-size:10px}.sound-settings>div{width:220px}.lobby-mode .felt-mark{font-size:21px;letter-spacing:6px}body.tv-cinema .site-head{height:55px}body.tv-cinema .brand{font-size:18px}body.tv-cinema .brand small{letter-spacing:2px;margin-left:10px;padding-left:10px}body.tv-cinema .arena{height:calc(100dvh - 60px)}body.tv-cinema .board{--card-w:36px;--card-h:51px;gap:4px}body.tv-cinema .many-seats .board{--card-w:32px;--card-h:46px}body.tv-cinema .seat{width:78px}body.tv-cinema .mini-cards{--card-w:27px;--card-h:38px}body.tv-cinema .dealer-shoe{display:none}}
body.tv-cinema .dealer{top:calc(26% - clamp(120px,24vh,230px) + 24px)}
.blind-help{font-size:10px;line-height:1.8;color:var(--muted);padding:10px 12px;border-left:2px solid #b2a37e55;background:var(--veil);border-radius:0 7px 7px 0;margin:10px 0 16px}.own-combination{font-size:12px;color:var(--soft);text-align:center;margin:8px 0}.hand-help-link{display:block;margin:8px auto 15px;border:0;padding:4px;background:none;color:var(--muted);font-size:10px;text-decoration:underline;text-underline-offset:4px}.hand-guide{width:min(760px,calc(100vw - 24px));max-width:760px;max-height:88dvh;overflow:auto;padding:25px}.hand-guide-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.hand-guide-heading h2{font-size:25px;font-weight:500;margin:8px 0}.hand-guide>.hint{font-size:12px;line-height:1.8}.hand-example{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}.hand-order{font-size:9px;color:var(--muted);letter-spacing:1px}.hand-example b{font-size:13px;font-weight:600}.hand-example p{font-size:10px;line-height:1.7;margin:5px 0;color:var(--muted)}.example-cards{display:flex;gap:4px;--card-w:35px;--card-h:50px}.example-cards .card-edition{display:none}@media(max-width:550px){.hand-guide{padding:18px}.hand-guide-heading h2{font-size:21px}.hand-example{grid-template-columns:20px 1fr;gap:5px 12px}.example-cards{grid-column:2;--card-w:38px;--card-h:54px;margin-top:8px}.hand-guide-heading .btn{font-size:10px}.room-tools{flex-wrap:wrap}.room-tools>#handsBtn{font-size:10px}}
/* Shared in-game chrome, copied from Mafia's topbar/volume/chat patterns. */
body.poker-room-active>.site-head{display:none}.poker-topbar{position:relative;z-index:60;background:var(--bg);width:100%;max-width:none;margin:0;flex-wrap:nowrap}.poker-topbar .logo.small{font-size:18px;line-height:.95}.poker-topbar .spacer{flex:1}.poker-topbar .icon-btn{padding:0;width:38px;height:38px;border:0;background:transparent;color:var(--text);border-radius:8px;box-shadow:none}.poker-topbar .icon-btn:hover{background:var(--hover)}.poker-topbar .icon-btn svg{width:22px;height:22px}.poker-topbar #camBtn .on,.poker-topbar #camBtn[aria-pressed=true] .off{display:none}.poker-topbar #camBtn[aria-pressed=true] .on{display:block;color:var(--ok)}.poker-topbar #camBtn .off{color:var(--muted)}.poker-topbar #chatBtn{position:relative}.poker-topbar .badge-dot{position:absolute;top:2px;right:0;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--accent);color:white;font:900 10px/16px var(--font);text-align:center}.poker-topbar .vol-wrap{position:relative;flex:none}.poker-topbar .vol-pop{position:absolute;right:0;top:calc(100% + 8px);z-index:80;width:240px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;box-shadow:0 20px 50px #0006}.poker-topbar .vol-pop label{display:block;margin:0 0 10px;font-size:12.5px;color:var(--muted);line-height:1.5}.poker-topbar .vol-pop label:last-child{margin-bottom:0}.poker-topbar .vol-pop input[type=range]{display:block;width:100%;margin:8px 0 0;padding:0;height:auto;border:0;border-radius:0;background:transparent;box-shadow:none;accent-color:var(--accent);cursor:pointer}.poker-room-active main{padding-top:18px}.poker-room-active .room-heading{justify-content:flex-end;margin-bottom:14px}.poker-chat{position:fixed;right:16px;bottom:16px;z-index:80;width:340px;height:min(480px,calc(100dvh - 90px));background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 60px #0006;display:flex;flex-direction:column;overflow:hidden}.poker-chat .chat-head{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 14px;border-bottom:1px solid var(--line)}.poker-chat .chat-list{flex:1;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:8px;overscroll-behavior:contain}.poker-chat .chat-empty{color:var(--muted);font-size:13px;text-align:center;margin:auto}.poker-chat .chat-msg{background:var(--surface-2);border-radius:10px 10px 10px 3px;padding:6px 10px;max-width:88%;align-self:flex-start;font-size:14px;overflow-wrap:anywhere}.poker-chat .chat-msg b{display:block;font-size:12px;color:var(--accent)}.poker-chat .chat-msg.mine{align-self:flex-end;border-radius:10px 10px 3px 10px;background:var(--surface-3)}.poker-chat .chat-form{display:flex;gap:6px;padding:8px;border-top:1px solid var(--line)}.poker-chat .chat-form input{flex:1;min-width:0;width:auto;margin:0}.poker-chat .chat-form .btn{padding:0 14px}.poker-chat .icon-btn{padding:0}.poker-chat .icon-btn svg{width:22px;height:22px}.poker-room-active #chooseSeat{width:auto}
body.tv-cinema>.site-head{display:flex}body.tv-cinema .poker-topbar,body.tv-cinema .poker-chat{display:none!important}
@media(max-width:600px){.poker-topbar{gap:4px;padding:8px 10px}.poker-topbar .icon-btn{width:36px;height:36px}.poker-topbar #copyLink{font-size:0;gap:4px;padding:6px 9px}.poker-topbar #copyLink b{font-size:13px}.poker-topbar .vol-pop{position:fixed;left:10px;right:10px;top:56px;width:auto;max-width:360px;margin-left:auto}.poker-chat{right:10px;bottom:10px;width:calc(100vw - 20px);height:min(450px,calc(100dvh - 90px))}}
.poker-topbar{font-family:var(--font)}
/* Physical denominations: stacked faces with edges, quantity and a lifted selection. */
.chip-inspect{grid-column:1/-1;font-size:10px;line-height:1.7;color:var(--muted);min-height:30px;margin:8px 0 0;text-align:center}.chip-stack-button{min-height:124px;padding:0 0 34px;perspective:600px;overflow:visible}.chip-tower{position:relative;width:64px;height:86px;display:block;isolation:isolate;pointer-events:none}.chip-tower:after{content:'';position:absolute;left:-3px;right:-3px;bottom:0;height:13px;border-radius:50%;background:#0004;filter:blur(5px);z-index:-1}.chip-stack-button .chip-layer{position:absolute;left:0;bottom:calc(var(--layer)*3.5px);width:64px;height:68px;transform:rotateX(42deg);transform-origin:50% 100%;filter:drop-shadow(0 1px 0 #3c3530) drop-shadow(0 2px 0 #a58c72) drop-shadow(0 3px 2px #0007);transition:transform .18s,filter .18s;pointer-events:none}.chip-stack-button:hover:not(:disabled) .picked-layer,.chip-stack-button:focus-visible .picked-layer,.drag-chip .picked-layer{transform:translateY(-9px) rotateX(42deg);filter:brightness(1.18) drop-shadow(0 1px 0 #d8b58d) drop-shadow(0 3px 0 #3c3530) drop-shadow(0 0 4px #c9b98677)}.chip-stack-button>b{bottom:19px;font-size:11px}.chip-stack-button>small{position:absolute;bottom:2px;font-size:9px;line-height:1;color:var(--muted);pointer-events:none}.chip-stack-button>em{top:2px;right:0;opacity:0;transition:opacity .15s}.chip-stack-button:hover>em,.chip-stack-button:focus-visible>em,.drag-chip>em{opacity:1}.chip-stack-button:hover:not(:disabled){transform:none}.drag-chip{min-height:100px}.exchange-panel{border-top:1px solid var(--line);margin-top:20px;padding-top:15px}.exchange-panel>summary{color:var(--soft);font-size:11px;cursor:pointer}.exchange-panel>p{margin:12px 0}.exchange-panel label{font-size:10px;margin:9px 0}.exchange-panel input,.exchange-panel select{padding:9px;font-size:11px}.exchange-panel>.btn{width:100%;margin-top:8px;font-size:11px}#exchangePreview{font-size:12px;color:var(--soft);text-align:center;padding:10px 0}.playing-card.combo-card{box-shadow:0 1px 0 #c7bca9,0 3px 0 #aaa293,0 0 0 2px #c5a764,0 0 16px #c5a76455,0 10px 20px #0003}.own-combination{color:#c6aa70;border:1px solid #b89d6455;border-radius:7px;padding:8px;background:#b89d6410}.playing-card.combo-card:after{background:linear-gradient(130deg,#edd7a31a,transparent 70%)}
@media(max-width:780px){.chip-stack-button{min-height:105px}.chip-tower{width:48px;height:73px}.chip-stack-button .chip-layer{width:48px;height:52px;bottom:calc(var(--layer)*3px)}}
@media(max-width:480px){.chip-stack-button{min-height:112px}.chip-tower{width:55px;height:78px}.chip-stack-button .chip-layer{width:55px;height:59px;bottom:calc(var(--layer)*3px)}}
/* Readable table feedback: prepared, committed, awarded. */
.compact-hands{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px 16px;border:1px solid var(--line);border-radius:10px;padding:12px 16px;background:var(--surface);margin:12px 0;font-size:10px}.compact-hands>b{grid-column:1/-1;font-size:10px;color:var(--muted);margin-bottom:3px}.compact-hands>span{display:grid;grid-template-columns:16px 1fr;gap:2px 4px}.compact-hands em{grid-row:1/3;font-style:normal;color:var(--muted)}.compact-hands small{grid-column:2;font-size:9px;color:var(--muted)}
.seat{width:150px;padding:8px}.seat-camera,.seat-camera.has-video{width:100%;height:88px;border-radius:8px;font-size:28px}.seat-camera:not(.has-video){height:44px}.seat.winner{opacity:1;border-color:#c6a76b;box-shadow:0 0 0 3px #c6a76b33,0 0 35px #c6a76b44}.winner-award{font-size:12px;font-weight:700;color:#b89650;padding-top:6px}.results:empty{display:none}.results:not(:empty){bottom:-20px;left:15%;right:15%;border:1px solid #bd9d65;border-radius:12px;background:var(--surface);padding:14px;display:grid;gap:5px;box-shadow:0 7px 24px #0003}.results>b{font-size:16px;color:#b89650}.results strong{color:#b89650}.arena{margin-bottom:35px}
.table-chip-stack{display:inline-block;position:relative;width:34px;height:38px;margin:0 3px;vertical-align:bottom}.table-chip-stack img{position:absolute;width:32px;height:34px;bottom:calc(var(--layer)*3px + 10px);left:0;transform:rotateX(35deg);filter:drop-shadow(0 2px 1px #0007)}.table-chip-stack small{position:absolute;bottom:-3px;left:50%;transform:translateX(-50%);white-space:nowrap;color:#e6d9b7;font:8px Manrope,sans-serif}.pot-stacks{display:flex;justify-content:center;gap:5px;min-height:43px;margin-top:8px;flex-wrap:wrap}.committed-chips{position:absolute;top:calc(100% + 5px);left:50%;transform:translateX(-50%);min-width:100px;max-width:160px;display:flex;justify-content:center;flex-wrap:wrap;pointer-events:none}.committed-chips strong{width:100%;font-size:9px;border-radius:8px;background:#153428;color:#eee4cc;padding:4px;margin-top:5px}.committed-chips .table-chip-stack{width:25px;margin:0 2px}.committed-chips .table-chip-stack img{width:26px;height:29px}.committed-chips .table-chip-stack small{font-size:7px;background:#153428;border-radius:3px;padding:1px 2px}.pending-bet{border-color:#b69a65}.pending-bet>span{font-size:16px}.pending-bet .primary{font-size:12px}.pending-pot-chips:after{content:'…';display:block;position:absolute;top:12px;color:#e9d4a3}.pending-pot-chips:empty:after{display:none}.payout-chip{position:absolute;z-index:15;width:38px;pointer-events:none;animation:payout-flight .85s cubic-bezier(.2,.6,.3,1) both}@keyframes payout-flight{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}15%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translate(calc(var(--dx) - 50%),calc(var(--dy) - 50%)) rotate(280deg) scale(.65)}}
body.tv-cinema .seat-camera{width:100%;height:80px;border-radius:8px}body.tv-cinema .seat-camera:not(.has-video){height:35px}body.tv-cinema .compact-hands{display:none}
@media(max-width:780px){.compact-hands{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;font-size:9px;gap:4px 10px}.compact-hands>span{grid-template-columns:13px 1fr}.compact-hands small{font-size:8px}.seat{width:104px;padding:6px}.seat-camera,.seat-camera.has-video{height:68px;font-size:22px}.seat-camera:not(.has-video){height:34px}.arena.many-seats{height:970px}.many-seats .seats{inset:240px 0 70px}.committed-chips{max-width:105px}.committed-chips .table-chip-stack{width:20px}.committed-chips .table-chip-stack img{width:22px}.results:not(:empty){left:2%;right:2%;bottom:-25px;font-size:10px}body.tv-cinema .seat-camera{height:55px}body.tv-cinema .seat-camera:not(.has-video){height:28px}.pot-stacks .table-chip-stack{width:25px}.pot-stacks .table-chip-stack img{width:27px}}
@media(prefers-reduced-motion:reduce){.payout-chip{animation:none;display:none}}
.arena{overflow:visible;margin-bottom:105px}.bottom-seat .committed-chips{top:auto;bottom:calc(100% + 80px)}.results:not(:empty){bottom:-85px}.table-chip-stack small{font-size:9px}.committed-chips .table-chip-stack small{font-size:8px}body.tv-cinema .arena{margin-bottom:0}body.tv-cinema .results:not(:empty){bottom:0}@media(max-width:780px){.arena{margin-bottom:115px}.results:not(:empty){bottom:-90px}.bottom-seat .committed-chips{bottom:calc(100% + 60px)}}
.room-tools .btn:not(.primary){background:var(--surface);color:var(--text);border:1px solid var(--line)}
.last-action{font-size:10px;font-weight:700;color:var(--text);min-height:15px;margin:5px -2px 0}.winner-detail{display:grid;justify-items:center;gap:6px;padding:8px}.winner-detail>b{font-size:12px}.winner-detail>small{font-size:11px;color:var(--muted);line-height:1.6;max-width:480px}.winning-five{display:flex;gap:5px;--card-w:42px;--card-h:60px;perspective:600px}.winning-five .card-edition{display:none}.results:not(:empty){position:relative;left:auto;right:auto;bottom:auto;margin:25px auto 0;max-width:650px}.arena:has(.results:not(:empty)){height:auto;min-height:790px;padding-top:790px;margin-bottom:25px}.arena:has(.results:not(:empty)) .seats{height:600px;bottom:auto}.arena:has(.results:not(:empty)) .results{margin-top:10px}.chip-stack-button .chip-tower .chip-layer:last-child{filter:drop-shadow(0 2px 2px #0008)}
@media(max-width:780px){.arena:has(.results:not(:empty)){min-height:625px;padding-top:700px}.arena.many-seats:has(.results:not(:empty)){padding-top:1050px}.arena:has(.results:not(:empty)) .seats{height:470px}.arena.many-seats:has(.results:not(:empty)) .seats{height:660px}.last-action{font-size:9px}.winning-five{--card-w:36px;--card-h:51px}}
body.tv-cinema .arena:has(.results:not(:empty)){height:calc(100dvh - 72px);min-height:0;padding-top:0}body.tv-cinema .arena:has(.results:not(:empty)) .seats{height:auto;bottom:8%}body.tv-cinema .results:not(:empty){position:absolute;bottom:0;left:20%;right:20%;padding:5px;margin:0}body.tv-cinema .winning-five{display:none}body.tv-cinema .winner-detail{padding:2px;gap:2px}
/* A dropped pile is a draft, never a decoration under another player's seat. */
body>#pendingBet{position:fixed;z-index:120;bottom:max(14px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(560px,calc(100vw - 24px));box-sizing:border-box;background:var(--surface);color:var(--text);box-shadow:0 12px 60px #0009;border:2px solid #b69a65;border-radius:14px;padding:14px 18px;display:grid;grid-template-columns:1fr 2fr;gap:8px;max-height:70dvh;overflow:auto}
body>#pendingBet>#betClock{grid-column:1/-1;text-align:center;font-size:12px;color:var(--muted)}body>#pendingBet>#betClock.urgent{color:#d33750}body>#pendingBet>#pendingAmount{grid-column:1/-1;font-size:15px;line-height:1.5}body>#pendingBet>#pendingPotChips{position:relative;left:auto;bottom:auto;height:44px;grid-column:1/-1;display:flex;justify-content:center;gap:3px;align-items:center}body>#pendingBet>#pendingPotChips img{position:static;width:38px;height:40px;transform:rotateX(25deg)}body>#pendingBet>#pendingPotChips:after{display:none}body>#pendingBet>.btn{min-height:48px;font-size:14px}body>#pendingBet>small{font-size:12px;line-height:1.5}body:has(>#pendingBet:not(.hidden)){padding-bottom:240px}body.tv-cinema>#pendingBet{display:none!important}
body:has(>#pendingBet:not(.hidden)) #toast{z-index:150;top:75px;bottom:auto}
@media(max-width:780px){.many-seats .seat{left:var(--mobile-x);top:var(--mobile-y)}.arena.many-seats{height:1160px}.many-seats .seats{inset:240px 0 auto;height:820px}.arena.many-seats:has(.results:not(:empty)){padding-top:1180px}.arena.many-seats:has(.results:not(:empty)) .seats{height:820px}body.tv-cinema .many-seats .seat{left:var(--x);top:var(--y)}body.tv-cinema .many-seats .seats{height:auto}}
.returned-bets{border-top:1px solid var(--line);padding:8px;font-size:11px;color:var(--muted)}
/* Reserve the footprint of cameras AND the cards above each seat. */
@media(min-width:781px){.arena.many-seats{height:1450px}.many-seats .seats{inset:230px 0 auto;height:1150px}.many-seats .felt{top:530px}.arena.many-seats:has(.results:not(:empty)){padding-top:1460px}.arena.many-seats:has(.results:not(:empty)) .seats{height:1150px}body.tv-cinema .arena.many-seats{height:calc(100dvh - 72px)}body.tv-cinema .many-seats .seats{inset:22% 0 8%;height:auto}body.tv-cinema .many-seats .felt{top:26%}}
@media(max-width:780px){.arena.many-seats{height:1300px}.many-seats .seats{height:940px}.arena.many-seats:has(.results:not(:empty)){padding-top:1320px}.arena.many-seats:has(.results:not(:empty)) .seats{height:940px}body.tv-cinema .many-seats .seats{height:auto}}
/* Broadcast layout: two rows leave a clear centre and keep all eight cameras on screen. */
body.tv-cinema .many-seats .seats,body.tv-cinema .arena.many-seats:has(.results:not(:empty)) .seats{inset:0;height:100%}
body.tv-cinema .many-seats .seat{top:24%;width:140px;padding:7px;left:14%}
body.tv-cinema .many-seats .seat:nth-child(4n+2){left:38%}body.tv-cinema .many-seats .seat:nth-child(4n+3){left:62%}body.tv-cinema .many-seats .seat:nth-child(4n+4){left:86%}body.tv-cinema .many-seats .seat:nth-child(n+5){top:78%}
body.tv-cinema .many-seats .mini-cards{position:static;transform:none;justify-content:center;margin:5px 0 0;--card-w:38px;--card-h:54px}
body.tv-cinema .many-seats .seat-camera{height:48px;margin-bottom:3px}body.tv-cinema .many-seats .seat-camera:not(.has-video){height:30px}
body.tv-cinema .many-seats .seat .balance{margin:3px 0;font-size:14px}body.tv-cinema .many-seats .last-action{min-height:12px;font-size:9px;margin:3px 0 0}body.tv-cinema .many-seats .seat b{font-size:10px}
body.tv-cinema .many-seats .felt{top:35%;height:35%}body.tv-cinema .many-seats .dealer,body.tv-cinema .many-seats .dealer-character{height:100px;width:100px}body.tv-cinema .many-seats .committed-chips{display:none}
@media(max-width:780px){body.tv-cinema .many-seats .seat{width:80px;padding:4px}body.tv-cinema .many-seats .mini-cards{--card-w:27px;--card-h:38px;gap:3px}body.tv-cinema .many-seats .seat-camera{height:40px}body.tv-cinema .many-seats .seat b{font-size:8px}body.tv-cinema .many-seats .seat .balance{font-size:10px}body.tv-cinema .many-seats .dealer,body.tv-cinema .many-seats .dealer-character{height:70px;width:70px}}
body.tv-cinema .many-seats .committed-chips{display:flex;position:static;transform:none;min-width:0;max-width:100%;margin-top:4px;flex-wrap:wrap}body.tv-cinema .many-seats .committed-chips .table-chip-stack{height:25px;width:20px}body.tv-cinema .many-seats .committed-chips .table-chip-stack img{width:22px;height:24px}body.tv-cinema .many-seats .committed-chips strong{font-size:8px;margin:1px 0;padding:2px}
body.tv-cinema .many-seats .board{position:absolute;top:22%;left:50%;transform:translateX(-50%);min-height:0}body.tv-cinema .many-seats .pot{position:absolute;top:65%;left:50%;transform:translateX(-50%)}body.tv-cinema .many-seats .felt-mark{display:none}body.tv-cinema .many-seats .phase{position:absolute;bottom:-32px}
body.tv-cinema .arena.many-seats:has(.results:not(:empty)) .results{top:50%;bottom:auto;left:25%;right:25%;max-height:150px;overflow:auto;transform:translateY(-10%)}body.tv-cinema .arena.many-seats:has(.results:not(:empty)) .pot{display:none}
body.tv-cinema .arena.many-seats:has(.results:not(:empty)) .results{top:55%;transform:none;max-height:50px;padding:5px 8px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:3px 8px}body.tv-cinema .many-seats .results>b{font-size:11px}body.tv-cinema .many-seats .winner-detail{display:block;padding:0;font-size:11px}body.tv-cinema .many-seats .winner-detail>b{display:inline;font-size:10px;margin-left:5px}body.tv-cinema .many-seats .winner-detail>small{display:none}
/* Site language suggestion belongs to the entrance, not on top of a live result. */
body.poker-room-active .lang-hint{display:none!important}
