/* One immersive playfield, real DOM cards and accessible controls. */
body[data-screen=table]{overflow-x:hidden;background:#07130e}
body[data-screen=table]:before{background:linear-gradient(#070b08a3,#030907a8),url('/prepared-assets/optimized/royal-hall.webp') center/cover no-repeat}
body[data-screen=table] .ambient{display:none}
.poker-scene{--seat-width:clamp(148px,11.2vw,210px);--card-width:clamp(50px,4.1vw,78px);width:100%;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 38%,transparent,#01060377)}
.scene-header{height:76px;padding:12px 3%;display:flex;align-items:center;gap:30px;background:linear-gradient(#070d0de8,#070d0d66);border-bottom:1px solid #bb96503b;position:relative;z-index:10}
.scene-brand{display:flex;align-items:center;gap:10px;color:#ecd298;text-decoration:none;font-family:Cinzel,Georgia,serif;white-space:nowrap;font-weight:700;font-size:22px}.scene-brand img{width:52px;height:52px;object-fit:contain}.scene-brand small{display:block;font-family:Arial,sans-serif;font-size:6px;letter-spacing:.19em;margin-top:4px}.scene-table-title{margin-right:auto}.scene-table-title h1{font-size:18px;margin:0;color:#f0dcb0}.scene-table-title>span{font-size:8px;letter-spacing:.12em;color:#b9a785}
/* Toolbar — only BB, AUDIO, QUITTER */
.scene-tools{display:flex;gap:9px}.scene-tools button,.table-social-tools button{border:1px solid #b2925277;border-radius:5px;background:#111e16d9;color:#ead29b;padding:11px 15px;font-size:10px;letter-spacing:.08em}.scene-tools .exit-table{color:#ffc5b3;border-color:#b6645755}.scene-tools button:hover,.table-social-tools button:hover{background:#5d472d99;border-color:#e8c684}
/* ── STAGE ── */
.table-stage{container-type:size;position:relative;isolation:isolate;flex:1 0 auto;height:max(445px,calc(100vh - 292px));height:max(445px,calc(100dvh - 292px));min-height:445px;width:100%;max-width:1920px;margin:auto;overflow:hidden}.table-spotlight{position:absolute;inset:5% 5% 0;background:radial-gradient(ellipse at 50% 40%,#a6a54820,transparent 62%);pointer-events:none}.oval-table{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 27px 25px #000a);z-index:0;pointer-events:none}.table-overlay{position:absolute;inset:0;z-index:2}

/* ── CROUPIÈRE ── */


.dealer-photo{width:100%;height:100%;object-fit:contain;object-position:top center;background:transparent;-webkit-mask-image:linear-gradient(to bottom,black 58%,transparent 100%);mask-image:linear-gradient(to bottom,black 58%,transparent 100%);border-radius:0}
.dealer-bubble{background:#132219ee;border:1px solid #cba45b99;border-radius:20px;padding:6px 14px;white-space:nowrap;animation:dialogue-in .25s ease;margin-top:-10px;max-width:280px;text-align:center;position:relative;z-index:1}
.dealer-bubble b{font-size:10px;letter-spacing:.05em;color:#ffdda0}

/* ── SIÈGES 7 POSITIONS ──
   Position 0 : joueur local — bas centre
   Positions 1-6 : adversaires dans le sens horaire depuis bas-gauche
   ┌─────────────────────────────────┐
   │          [3]     [4]            │
   │      [2]               [5]      │
   │   [1]                     [6]  │
   │          [0=MOI]               │
   └─────────────────────────────────┘
*/
.scene-seat{position:absolute;width:var(--seat-width);transform:translate(-50%,-50%);z-index:4}
/* Bas centre — joueur local */

/* Bas gauche — Gérard */

/* Milieu gauche */

/* Haut gauche */

/* Haut droite */

/* Milieu droite */

/* Bas droite */


.seat-identity{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid #c6a76b77;background:linear-gradient(145deg,#152a20f5,#08150ff2);border-radius:10px;box-shadow:0 5px 18px #0008;position:relative}.seat-avatar{position:relative;display:grid;place-items:center;flex-shrink:0;width:52px;height:52px;border-radius:50%;border:1px solid #c8a663;background:radial-gradient(circle at 35% 20%,#703a45,#1f0b13);font-family:Cinzel,serif;font-size:17px;color:#f3dbad}.avatar-bot{background:radial-gradient(circle at 35% 20%,#4c6450,#10281e)}.seat-avatar small{position:absolute;bottom:-6px;font-family:Arial,sans-serif;font-size:7px;color:#17170c;background:#e9c47d;border:1px solid #fff2be;padding:2px 5px;border-radius:3px}.seat-text{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.seat-name{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f6e4bc}.seat-stack{font-family:Cinzel,Georgia,serif;font-size:18px;white-space:nowrap;font-weight:600;color:#ffdf9c}.seat-status{font-size:6px;letter-spacing:.1em;color:#b5aa8c}
/* Les blind-badges ne sont plus sur les seats — cachés si présents */
.blind-badges{display:none}
.turn-ring{position:absolute;inset:-6px;width:64px;height:64px;transform:rotate(-90deg);opacity:0}.turn-ring circle{fill:none;stroke:#ffe49e;stroke-width:3;stroke-linecap:round;stroke-dasharray:182;stroke-dashoffset:0}.turn-active .turn-ring{opacity:1}.turn-active .seat-identity{border-color:#ffe3a2;box-shadow:0 0 0 2px #ecb95344,0 0 28px #e5bc6166;background:linear-gradient(135deg,#3a4026f0,#13291bf5)}.turn-active .seat-status{color:#ffeab3}.turn-active:before{content:"";position:absolute;inset:-5px;border-radius:14px;border:1px solid #edc97844;animation:active-halo 2s infinite;pointer-events:none}.seat-folded .seat-identity{opacity:.65;filter:saturate(.4)}.seat-countdown{position:absolute;right:5px;bottom:-15px;font-size:8px;padding:2px 6px;background:#1a281b;color:#ffdd98;border:1px solid #ad8b4d66;border-radius:3px}.empty-seat{display:flex;align-items:center;gap:10px;justify-content:center;color:#bca56a;opacity:.55}.empty-seat .seat-avatar{width:39px;height:39px;background:#14271cc9;border-style:dashed;font-family:Arial,sans-serif}.empty-seat .seat-name{font-size:8px;color:#c9ad73;letter-spacing:.1em}

/* ── CARTES ADVERSAIRES ── */
.opponent-cards{position:absolute;left:50%;bottom:calc(100% - 3px);transform:translateX(-50%);display:flex;gap:4px;z-index:-1}.opponent-cards .poker-card{width:37px;height:51px;border-radius:4px}.opponent-cards .card-corner{font-size:12px}.opponent-cards .card-suit{font-size:18px}.opponent-cards .card-corner i{font-size:10px}.opponent-cards .corner-bottom{display:none}.opponent-cards img{width:27px;height:27px}
/* Sièges du haut → cartes en dessous */


/* ── MISE / JETONS ── */

/* Ajustements par position pour positionner les mises bien en évidence sur le feutre vert */







.chip-pile{width:23px;height:22px;display:inline-block;position:relative;flex-shrink:0}.chip-pile i{position:absolute;width:22px;height:10px;border-radius:50%;border:2px dashed #ffe2a3;box-shadow:0 2px 0 #42300d;background:#b8852f;left:0;bottom:0}.chip-pile i:nth-child(2){bottom:5px;background:#a42d34}.chip-pile i:nth-child(3){bottom:10px;background:#258176}.chips-move{animation:chips-slide .5s ease-out}.chips-move .chip-pile{animation:chip-travel .5s ease-out}

/* ── BADGES FEUTRE (Dealer / SB / BB) ── */
.felt-badge{position:absolute;z-index:6;pointer-events:none;height:24px;min-width:24px;display:grid;place-items:center;border-radius:50%;font-size:8px;font-weight:700;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0009;border:2px solid #fff0c9}
.badge-D{background:#dbc99f;color:#31220f;border-color:#fff0c9}
.badge-SB{background:#197c75;color:white;border-color:#88d3be}
.badge-BB{background:#ad6b27;color:#fff0b7;border-color:#ffd98a}

/* ── BOARD / CARTES COMMUNES ── */

.board-header{display:flex;flex-direction:column;align-items:center;gap:4px;margin:5px 0 7px}
.street-ribbon{font-size:8px;letter-spacing:.19em;color:#f5d39b;text-shadow:0 2px 3px #000;display:inline-block}.street-ribbon i{color:#aa8849;margin:0 9px;font-style:normal}
.community-cards{display:flex;gap:10px;justify-content:center;pointer-events:auto}
.poker-card{display:inline-flex;position:relative;width:var(--card-width);height:calc(var(--card-width)*1.39);border-radius:7px;flex-shrink:0;background:linear-gradient(130deg,#fffdf0,#e7dfc9);border:1px solid #fff6ce;box-shadow:0 3px 0 #bdb49e,0 6px 14px #00160cb3;color:#151d1b;align-items:center;justify-content:center;font-family:Georgia,serif}.card-red{color:#b92a38}.card-corner{position:absolute;top:6px;left:6px;font-size:clamp(17px,1.45vw,28px);font-weight:700;line-height:1}.card-corner i{display:block;font-size:clamp(13px,1.1vw,21px);font-style:normal;margin-top:2px}.corner-bottom{left:auto;top:auto;right:6px;bottom:6px;transform:rotate(180deg)}.card-suit{font-size:clamp(30px,2.7vw,49px);font-weight:400}.card-slot{background:#0b39293d;border:1px solid #d5bd7655;box-shadow:inset 0 0 0 4px #10473355;color:#d9b76c}.card-slot:before{content:'♠';font-size:30px;opacity:.18}.card-reverse{background:repeating-linear-gradient(45deg,#163a29 0 4px,#1a4430 4px 8px);border:2px solid #d7b575;box-shadow:inset 0 0 0 3px #112518,0 5px 8px #0007}.card-reverse img{width:70%;height:70%;object-fit:contain;opacity:.9}

/* ── ZONE POT : hiérarchie pot > side pots, au-dessus des cartes ── */
.pot-zone{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;width:max-content;pointer-events:auto}
.pot-total{position:relative;display:flex;flex-direction:column;align-items:center}.pot-total>span{font-size:7px;letter-spacing:.18em;color:#d8c7a0}.pot-total>strong{font-family:Cinzel,serif;font-size:clamp(19px,2vw,34px);color:#ffe8ae;text-shadow:0 2px 6px #000;line-height:1.1}
.side-pots{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;max-width:500px}.side-pots>span{background:#071d15d8;border:1px solid #cba45d55;border-radius:999px;padding:4px 10px;font-size:7px;color:#c6b286;letter-spacing:.05em}.side-pots b{color:#f0d79e;margin-left:5px;font-size:9px}

/* ── MAIN HERO ── */
.hero-hand .poker-card{width:calc(var(--card-width)*1.16);height:calc(var(--card-width)*1.61)}.hero-hand .poker-card:first-child{transform:rotate(-9deg) translateY(3px)}.hero-hand .poker-card:last-child{transform:rotate(9deg) translateY(3px)}.hand-folded{opacity:.45;filter:saturate(.5)}.hand-empty{font-size:8px;letter-spacing:.2em;color:#ab9a72}

/* ── WINNER ── */
.winner-announcement{position:absolute;left:50%;top:105%;transform:translateX(-50%);width:110%;padding:9px 20px;background:linear-gradient(90deg,transparent,#563c12ef,transparent);color:#ffe6a2;display:flex;flex-direction:column;gap:4px;animation:winner-light .5s ease-out;z-index:6}.winner-announcement>span{font-size:9px;letter-spacing:.25em}.winner-announcement b{font-family:Cinzel,serif;font-size:18px}.winner-announcement small{font-size:8px}.seat-winner .seat-identity{border-color:#ffedae;box-shadow:0 0 24px #e6ba4566}.victory-spark{position:absolute;right:-18px;top:-22px;color:#ffe7a5;font-size:24px;animation:winner-light .6s ease-out}

/* ── OUTILS SOCIAUX ── */
.table-social-tools{position:absolute;left:3%;bottom:10px;display:flex;align-items:center;gap:12px;z-index:7}.table-social-tools button{padding:10px 12px;font-size:9px}.spectator-counter{font-size:8px;color:#d3be92;letter-spacing:.06em}.action-notification{position:absolute;right:3%;bottom:16px;max-width:34%;font-size:10px;color:#ddc798;text-shadow:0 1px 4px black;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.table-drawer{position:absolute;right:2%;top:10%;bottom:7%;width:320px;z-index:20;background:#0a1b15f5;border:1px solid #bfa162;border-radius:9px;padding:20px;box-shadow:0 12px 45px #0009;display:none;overflow-y:auto}.drawer-open{display:block;animation:dialogue-in .2s ease-out}.drawer-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.drawer-heading h2{font-size:17px;color:#e5ca90}.table-drawer h3{font-size:13px;color:#e5ca90;margin:20px 0 12px}.table-drawer p{font-size:11px;line-height:1.7;color:#c6b799}.scene-chat{height:42%;min-height:100px;overflow:auto;border-top:1px solid #ad8f4a44}.scene-chat p{padding:8px 0;border-bottom:1px solid #ad8f4a22;overflow-wrap:anywhere}.scene-chat small{font-size:8px;color:#8b987e}.scene-chat b{color:#efcd8d}.scene-chat-entry{display:flex;gap:6px;margin-top:12px}.scene-chat-entry input{min-width:0;font-size:11px;padding:9px}.scene-emotes{display:flex;gap:6px;justify-content:space-between;margin-top:12px}.scene-emotes button{border:1px solid #bd9c5544;background:#163024;border-radius:5px;min-width:34px;min-height:34px;font-size:19px}.scene-history{font-size:9px}.scene-history p{font-size:9px;border-bottom:1px solid #8f753a22;padding:4px 0}
.tip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 12px}.tip-grid .button{justify-content:center}.tip-note{margin-top:6px}

/* ── CONTRÔLES ── */
.scene-controls{min-height:216px;padding:10px 3% 16px;background:linear-gradient(#09150dd9,#050c08fa);border-top:1px solid #c09b4d55;position:relative;z-index:8;box-shadow:0 -12px 45px #030a0566}.action-caption{height:27px;display:flex;align-items:center;justify-content:center;gap:20px;font-size:10px;color:#b8aa87;letter-spacing:.05em}.your-turn{color:#ffe3a3;font-weight:700}.action-clock{font-size:11px;color:#f0c77e;min-width:30px}.command-cluster{display:flex;justify-content:center;align-items:center;gap:24px;margin:4px auto 0;max-width:1030px}.round-action{height:132px;width:132px;flex-shrink:0;border-radius:50%;border:2px solid #d79779;display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;color:#ffe3d1;background:radial-gradient(circle at 40% 22%,#b35551,#4d151c 78%);box-shadow:inset 0 0 0 5px #390b0f99,inset 0 0 0 6px #df827b66,0 5px 0 #180605,0 9px 23px #000a;transition:filter .15s,transform .15s}.round-action>span{font-size:24px;line-height:1}.round-action>b{font-family:Cinzel,Georgia,serif;font-size:21px}.round-action>small{font-size:9px}.call-action{border-color:#83d6c4;color:#d3fff0;background:radial-gradient(circle at 40% 22%,#378d82,#10473c 78%);box-shadow:inset 0 0 0 5px #063b32aa,inset 0 0 0 6px #8cddd266,0 5px 0 #041b12,0 9px 23px #000a}.raise-action{border-color:#ffe5a6;color:#35220d;background:radial-gradient(circle at 40% 22%,#ffe5a4,#b37c2d 85%);box-shadow:inset 0 0 0 5px #78552455,inset 0 0 0 6px #ffedba66,0 5px 0 #38210b,0 9px 23px #000a}.round-action:hover:not(:disabled){filter:brightness(1.2);transform:translateY(-3px)}.round-action:disabled{filter:saturate(.35);opacity:.5;cursor:not-allowed}.betting-console{width:430px;max-width:100%;padding:13px 18px 6px;border:1px solid #ac8d4755;background:linear-gradient(130deg,#223223cc,#0c1c14bb);border-radius:8px}.bet-input-row{display:flex;justify-content:space-between;gap:16px;align-items:center}.bet-input-row label{font-size:9px;letter-spacing:.1em;color:#dfc68f}.bet-input-row label span{display:block;font-size:7px;color:#9f926e;margin-top:4px}.bet-input-row input{width:160px;max-width:48%;background:#08180fee;border:1px solid #c4a56b66;color:#ffe5a9;border-radius:4px;font-family:Cinzel,serif;font-size:21px;text-align:right;padding:6px 10px}.bet-slider{width:100%;accent-color:#e4c27d;margin:12px 0;height:18px;cursor:pointer}.bet-presets{display:flex;gap:5px;flex-wrap:wrap}.bet-presets button{flex:1;white-space:nowrap;border:1px solid #a6905355;border-radius:3px;background:#192b1fe8;color:#decba1;font-size:8px;min-height:29px;padding:5px 6px}.bet-presets .allin-shortcut{color:#ffe3a4;border-color:#d6b46b88;background:#78572577}.bet-presets button:hover:not(:disabled){background:#75603788}.betting-console input:disabled,.bet-presets button:disabled{opacity:.4;cursor:not-allowed}.bet-limit{font-size:7px;color:#a49874;margin-top:8px;text-align:center}

/* ── ANIMATIONS ── */
.deal-in{animation:card-deal .5s both;animation-delay:var(--deal-delay)}.reveal-in{animation:card-reveal .45s both;animation-delay:var(--deal-delay)}
@keyframes card-deal{from{opacity:0;translate:0 -140px;rotate:-15deg}to{opacity:1;translate:0 0;rotate:0deg}}@keyframes card-reveal{from{opacity:0;scale:.1 1}to{opacity:1;scale:1}}@keyframes chip-travel{from{translate:0 -25px;scale:.7}to{translate:0 0;scale:1}}@keyframes chips-slide{from{opacity:.3}to{opacity:1}}@keyframes active-halo{50%{box-shadow:0 0 15px #e5b75d44}}@keyframes winner-light{from{opacity:0;filter:brightness(2)}to{opacity:1;filter:brightness(1)}}@keyframes dialogue-in{from{opacity:0;translate:0 -5px}to{opacity:1;translate:0 0}}

/* ── RÉACTION ── */
.scene-reaction{position:absolute;left:3%;top:3%;z-index:8;padding:10px 16px;border:1px solid #e0bb6b77;background:#123323e8;border-radius:20px;font-size:14px;color:#ffde98;box-shadow:0 4px 12px #0006;animation:dialogue-in .25s ease-out}

/* ── FLYING CHIPS ── */
.flying-chip{position:absolute;left:var(--origin-x);top:var(--origin-y);z-index:9;pointer-events:none;animation:chip-to-pot .65s ease-in both}
@keyframes chip-to-pot{0%{left:var(--origin-x);top:var(--origin-y);opacity:1}85%{left:50%;top:25%;opacity:1}100%{left:50%;top:25%;opacity:0}}

/* ── AUDIO ── */
.audio-settings{width:100%;color:#f4dfb4}.audio-settings .setting-row{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap;padding:15px 0;border-bottom:1px solid #c6a76b33}.audio-settings h3{margin:0}.audio-settings p,.audio-settings small{font-size:11px;color:#b8aa91}.audio-volume label{min-width:150px;flex:1}.audio-volume input{accent-color:#d8b76d;width:160px;max-width:45%}.audio-volume output{font-size:12px;min-width:42px;text-align:right}.audio-settings select{max-width:100%}

/* ── CONNEXION ── */
.connection-status{padding:8px 18px;text-align:center;color:#ffe49e;font-size:12px;background:rgba(9,21,19,.94);border-bottom:1px solid rgba(255,228,158,.18)}
.resume-panel{margin-bottom:18px;padding:20px}.resume-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px}

/* ── COSMÉTIQUES ── */
.seat-avatar.cosmetic-frame-gold{border:3px double #ffe7a3;box-shadow:0 0 0 2px #ad792c,0 0 16px #ddb45066}
.cosmetic-back-royal .card-reverse{background:repeating-linear-gradient(45deg,#571426 0 4px,#752c3a 4px 8px)}
.cosmetic-back-dragon .card-reverse{background:radial-gradient(ellipse,#ae7c24,#173c2c 70%);border-color:#ffe8a3}
.cosmetic-victory-gold .victory-spark{color:#ffe8ac;text-shadow:0 0 15px #ffbd37;animation:royal-victory 1.3s ease-in-out infinite}
@keyframes royal-victory{50%{transform:scale(1.45) rotate(25deg);filter:drop-shadow(0 0 10px #ffc44d)}}
html[data-motion=reduced] .cosmetic-victory-gold .victory-spark{animation:none}

/* ── GRID LAYOUT DESKTOP ── */
@media(min-width:701px){
 /* Three direct children only: header, stage, controls. The former connection banner was removed. */
 .poker-scene{height:100dvh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
 .poker-scene>.table-stage{height:100%;min-height:0;margin:0 auto;grid-row:2}
 .poker-scene>.scene-controls{grid-row:3}
}

/* ── RESPONSIVE 1001-1450px ── */
@media(max-width:1450px){
 .scene-header{height:64px;padding:9px 2%;gap:20px}.scene-brand{font-size:18px}.scene-brand img{width:42px;height:42px}.scene-table-title h1{font-size:15px}.scene-tools button{font-size:8px;padding:9px 11px}.table-stage{height:calc(100dvh - 260px)}.scene-controls{min-height:196px;padding-top:8px}.command-cluster{gap:19px}.round-action{width:112px;height:112px}.round-action>b{font-size:19px}.round-action>span{font-size:19px}.betting-console{width:385px;padding:11px 15px 6px}.seat-identity{padding:8px;gap:8px}.seat-avatar{width:42px;height:42px;font-size:13px}.turn-ring{inset:-5px;width:52px;height:52px}.seat-stack{font-size:15px}.seat-name{font-size:9px}.dealer-bubble b{font-size:9px}.opponent-cards .poker-card{width:29px;height:41px}.opponent-cards img{width:23px;height:23px}.community-cards{gap:8px}.table-social-tools{bottom:7px;gap:9px}.table-social-tools button{font-size:8px;padding:9px}.spectator-counter{font-size:7px}.action-notification{bottom:12px;font-size:8px}.winner-announcement b{font-size:14px}
 
 
 
 
 
}

/* ── RESPONSIVE ≤1000px ── */
@media(max-width:1000px){
 .scene-table-title{display:none}.scene-brand{margin-right:auto}.scene-header{gap:10px}.scene-tools{gap:5px}.scene-tools button{padding:9px;font-size:7px}.poker-scene{--seat-width:128px;--card-width:46px}.table-stage{min-height:420px}.round-action{width:94px;height:94px}.command-cluster{gap:12px}.betting-console{width:340px}.seat-avatar{width:34px;height:34px}.turn-ring{width:44px;height:44px}.seat-stack{font-size:13px}.seat-status{font-size:5px}.table-drawer{width:290px}.table-social-tools{bottom:4px}.action-notification{display:none}
 
 
 
 
 
 
 
}

/* ── RESPONSIVE ≤700px ── */
@media(max-width:700px){
 .poker-scene{--seat-width:108px;--card-width:36px}.scene-header{height:auto;min-height:62px;flex-wrap:wrap;justify-content:center;padding:8px 12px;gap:7px}.scene-brand{font-size:15px;margin-right:0}.scene-brand img{width:33px;height:33px}.scene-tools button{min-height:32px;padding:7px}.table-stage{min-height:490px;height:65dvh;max-height:620px}
 .dealer-bubble{min-width:130px;padding:4px 8px}.dealer-bubble b{font-size:7px}
 
 .seat-identity{gap:5px;padding:6px;border-radius:7px}.seat-avatar{width:28px;height:28px;font-size:10px}.turn-ring{width:38px;height:38px}.seat-name{font-size:8px}.seat-stack{font-size:11px}.seat-status{font-size:5px;letter-spacing:0}.seat-avatar small{font-size:5px;padding:1px 3px;bottom:-4px}.opponent-cards .poker-card{width:23px;height:32px}.opponent-cards img{width:18px;height:18px}.opponent-cards .card-corner{font-size:9px;top:2px;left:2px}.opponent-cards .card-suit{font-size:12px}.opponent-cards .card-corner i{font-size:7px}
 .community-cards{gap:5px}.poker-card{border-radius:4px}.card-corner{font-size:13px;top:3px;left:3px}.card-corner i{font-size:10px}.corner-bottom{left:auto;right:3px;top:auto;bottom:3px}.card-suit{font-size:25px}.street-ribbon{font-size:6px}.board-header{gap:4px;margin:3px 0 5px}.pot-zone{gap:3px}.pot-total>strong{font-size:21px}.pot-total>span{font-size:6px}.side-pots{max-width:100%}.side-pots>span{font-size:5px;padding:3px 6px}.side-pots b{font-size:6px}
 
 
 
 
 
 
 
 
 .chip-pile{scale:.7;width:18px}
 .table-social-tools{left:10px;right:10px;justify-content:space-between;bottom:2px;gap:5px;flex-wrap:wrap}.table-social-tools button{font-size:6px;padding:7px}.spectator-counter{font-size:6px}
 .scene-reaction{top:14%;left:8px;padding:5px 9px;font-size:9px}
 .scene-controls{min-height:250px;padding:8px 12px 16px}.action-caption{font-size:8px;height:30px;letter-spacing:0;gap:7px}.command-cluster{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;justify-items:center;max-width:500px}.round-action{width:81px;height:81px;grid-row:1;gap:3px}.round-action>b{font-size:16px}.round-action>small{font-size:7px}.round-action>span{font-size:16px}.betting-console{grid-row:2;grid-column:1/-1;width:100%;padding:10px 12px}.raise-action{grid-column:3}.call-action{grid-column:2}.bet-input-row input{font-size:18px;padding:4px 8px}.bet-slider{margin:6px 0}.bet-presets button{font-size:7px;min-height:32px}.bet-limit{font-size:6px}.table-drawer{right:10px;left:10px;top:8%;bottom:8%;width:auto}.winner-announcement{top:106%;padding:8px}.winner-announcement b{font-size:12px}.empty-seat{gap:4px}.empty-seat .seat-avatar{width:25px;height:25px}.empty-seat .seat-name{font-size:6px}
 .felt-badge{height:20px;min-width:20px;font-size:7px}
}


/* Single table-relative coordinate system. Stage chooses scale, shell preserves image ratio.
   All sizes inside the shell use its container width; no viewport-based scene offsets. */
.table-shell{position:absolute;left:50%;top:50%;width:min(86cqw,calc(100cqh*1448/1086/.84));max-width:92%;aspect-ratio:1448/1086;transform:translate(-50%,-50%);z-index:1;container-type:size;--seat-width:clamp(120px,21cqw,190px);--card-width:clamp(34px,5cqw,52px)}
.felt-layer,.seats-layer{position:absolute;inset:0;pointer-events:none}
.felt-layer{--pot-target-y:32%;z-index:2}.seats-layer{z-index:4}
.felt-layer:has(.pots-dense){--pot-target-y:34%}
.scene-seat{pointer-events:auto}
.dealer-host{position:absolute;left:50%;top:8%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;z-index:5;pointer-events:none}
.dealer-figure{width:17cqw;height:9.5cqw;position:relative;filter:drop-shadow(0 5px 12px #000b)}
.dealer-bubble{margin-top:-5px;max-width:28cqw;padding:4px 9px;white-space:normal;line-height:1.15}
.dealer-bubble b{font-size:clamp(7px,1.1cqw,10px)}
.scene-board{--board-y:39.5%;position:absolute;inset:0;transform:none;z-index:2;text-align:center;display:block;pointer-events:none}
.pot-zone{position:absolute;left:50%;top:var(--pot-target-y);transform:translate(-50%,-50%);width:52%;gap:.4cqw;justify-content:flex-start}
.pot-total>span{font-size:clamp(9px,1.1cqw,11px);line-height:1.1}
.pot-total>strong{font-size:clamp(26px,4cqw,40px);line-height:1.05}
.pot-total>.scene-bet{display:none}
.side-pots{display:flex;flex-wrap:wrap;gap:4px;width:100%;max-width:none}
.side-pots>span{padding:.4cqw .65cqw;font-size:clamp(8px,1cqw,11px);line-height:1.15;letter-spacing:0;white-space:nowrap}
.side-pots b{font-size:clamp(9px,1.2cqw,12px);margin-left:3px}
.board-header{margin:0;gap:0;line-height:1.1}
.street-ribbon{font-size:clamp(8px,.95cqw,10px);line-height:1.1}
.community-cards{position:absolute;left:50%;top:var(--board-y);transform:translateX(-50%);gap:1cqw}
/* Dense pots preserve the same dragon anchor, with a compact second row. */
.scene-board.pots-dense{--board-y:44%}
.pots-dense .pot-zone{width:60%}
.pots-dense .pot-total>strong{font-size:clamp(26px,3.2cqw,29px)}
.pots-dense .pot-total>span{font-size:clamp(8px,.9cqw,9px)}
.pots-dense .side-pots>span{font-size:clamp(7px,.85cqw,9px)}
.pots-dense .side-pots b{font-size:clamp(8px,1cqw,10px)}
.hero-hand{position:absolute;left:50%;top:66%;transform:translate(-50%,-50%);display:flex;gap:7px;z-index:5;pointer-events:auto}
.felt-bet{position:absolute;transform:translate(-50%,-50%);z-index:3}
.scene-bet{display:flex;align-items:center;gap:5px;font-size:clamp(7px,1.2cqw,10px);color:#ffdf9e;white-space:nowrap;background:#091c14dd;padding:4px 7px;border:1px solid #b89a5755;border-radius:20px}
.felt-badge{height:clamp(18px,3cqw,24px);min-width:clamp(18px,3cqw,24px)}
.seat-identity{padding:5px;gap:7px}
.seat-avatar{width:clamp(28px,5cqw,44px);height:clamp(28px,5cqw,44px);font-size:clamp(10px,1.9cqw,16px)}
.seat-text{gap:2px}
.seat-name{font-size:clamp(10px,1.5cqw,13px);line-height:1.1}
.seat-stack{font-size:clamp(15px,2.3cqw,21px);line-height:1.1}
.seat-status{line-height:1.1}
.turn-ring{width:calc(100% + 12px);height:calc(100% + 12px);inset:-6px}
.opponent-cards .poker-card{width:3.9cqw;height:5.4cqw}
.position-3 .opponent-cards,.position-4 .opponent-cards{top:auto;bottom:calc(100% + 4px)}
.card-corner{font-size:clamp(13px,2.3cqw,21px)}
.card-corner i{font-size:clamp(10px,1.8cqw,16px)}
.card-suit{font-size:clamp(25px,4.3cqw,39px)}
.winner-announcement{left:50%;top:calc(var(--board-y) + var(--card-width)*1.39 + 5px);transform:translateX(-50%);padding:4px 10px;gap:5px;width:60%;flex-direction:row;align-items:center;justify-content:center;line-height:1.1}
.winner-announcement b{font-size:clamp(11px,1.8cqw,16px)}
.winner-announcement b{max-width:55%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.winner-announcement small{white-space:nowrap;font-size:7px}
.winner-announcement>span{font-size:7px}
@keyframes chip-to-pot{0%{left:var(--origin-x);top:var(--origin-y);opacity:1}85%{left:50%;top:var(--pot-target-y);opacity:1}100%{left:50%;top:var(--pot-target-y);opacity:0}}
@media(max-width:700px){
 .table-stage{height:490px;min-height:490px;max-height:none}
 .table-shell{width:84cqw;max-width:none;--seat-width:clamp(68px,19cqw,112px);--card-width:6.1cqw}
 .seat-avatar{display:none}.seat-identity{padding:5px;gap:3px}.seat-stack{font-size:10px}.seat-name{font-size:7px}
 .dealer-bubble{min-width:0}.side-pots{grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}
 .side-pots>span{font-size:4px;padding:2px}.side-pots b{font-size:5px}
 .pot-zone{height:15cqw}.pot-total>strong{font-size:16px}.scene-bet{font-size:6px;padding:2px 4px;gap:2px}
 .chip-pile{scale:.65;width:15px}.hero-hand{top:69%}.board-header{margin:2px 0 4px}
}

@media(prefers-reduced-motion:reduce){.poker-scene *,.poker-scene *:before{animation:none!important;transition:none!important}}
@media(min-width:1001px) and (max-width:1450px){.table-stage{height:calc(100dvh - 269px)}}

/* Community-card typography: keep card geometry and the approved board scale intact. */
.community-cards .card-corner{font-family:Georgia,'Times New Roman',serif;font-size:clamp(12px,1.7cqw,16px);line-height:1;letter-spacing:0;top:3%;left:9%;display:flex;align-items:center;gap:2px}
.community-cards .card-corner i{font-family:Arial,sans-serif;font-size:clamp(9px,1cqw,10px);line-height:1;margin-top:0;display:inline}
.community-cards .corner-bottom{top:auto;left:auto;right:9%;bottom:3%}
.community-cards .card-suit{font-family:Arial,sans-serif;font-size:clamp(18px,2.6cqw,24px);line-height:1}

/* Strong contrast on the dragon emblem, without changing pot geometry. */
.pot-total>span{color:#fff4d2;background:#06140fee;border:1px solid #c4a26288;border-radius:5px;padding:3px 8px;text-shadow:0 1px 2px #000;font-weight:800;letter-spacing:.1em}
.pot-total>strong{color:#fff4d2;text-shadow:0 2px 3px #000,0 0 5px #000,1px 0 #10241a,-1px 0 #10241a}
.scene-controls{position:relative}

/* A single strength bar immediately beneath the local player panel. */
.hand-analysis{position:absolute;left:50%;top:calc(100% + 7px);transform:translateX(-50%);width:100%;height:12px;padding:0;margin:0;pointer-events:auto;z-index:8}
.hand-analysis[hidden]{display:none}
.hand-strength-track{position:relative;width:100%;height:12px;overflow:hidden;border:1px solid #d7b575a6;border-radius:99px;background:#081710ee;box-shadow:inset 0 2px 4px #000a,0 2px 5px #0008}
.hand-strength-fill{display:block;width:var(--hand-strength,0%);height:100%;border-radius:inherit;background:linear-gradient(to bottom,hsl(var(--hand-hue,0) 65% 57%),hsl(var(--hand-hue,0) 65% 34%));box-shadow:inset 0 1px 1px #ffffff66;transition:width .3s ease,background .3s ease}
.hand-strength-track.pending{opacity:.5}
.seat-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}
@media(max-width:600px){.hand-analysis,.hand-strength-track{height:9px}.scene-tools{gap:4px}.scene-tools button{padding:8px 6px}}
@media(prefers-reduced-motion:reduce){.hand-strength-fill{transition:none}}

.hand-analysis{height:auto}.hand-combination{display:block;margin-top:5px;color:#ffe5aa;text-align:center;font-family:Cinzel,Georgia,serif;font-size:clamp(8px,1.2cqw,12px);font-weight:700;line-height:1.25;letter-spacing:.035em;text-shadow:0 1px 3px #000,0 0 6px #000;pointer-events:none}
.table-victory{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:clamp(270px,48cqw,530px);max-width:84%;z-index:30;pointer-events:none}
.victory-plaque{border:1px solid #ebc775;border-radius:12px;background:linear-gradient(135deg,#10261ff7,#05120ff7);padding:12px 17px;box-shadow:0 12px 25px #0009,inset 0 0 0 3px #bc955333;color:#f9e5b7;text-align:center}
.victory-kicker{display:block;font-size:clamp(7px,.9cqw,10px);font-weight:700;letter-spacing:.19em;color:#bda06c;margin-bottom:7px}
.victory-result{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid #c5a25b33}
.victory-identity{flex:1;min-width:0;text-align:left}.victory-identity strong{display:block;font-family:Cinzel,Georgia,serif;font-size:clamp(12px,1.8cqw,19px);overflow-wrap:anywhere}.victory-identity b{display:block;font-size:clamp(11px,1.5cqw,16px);color:#ffe6a3;margin:3px 0}.victory-identity small{display:block;font-size:clamp(9px,1.2cqw,13px);color:#c9d9c6;line-height:1.2}
.victory-cards{display:flex;gap:4px;flex-shrink:0}.victory-cards .poker-card{width:clamp(26px,3.5cqw,38px);height:clamp(36px,4.87cqw,53px);border-radius:4px}.victory-cards .card-corner{font-size:10px;top:3px;left:3px}.victory-cards .card-corner i{font-size:7px;margin-top:1px}.victory-cards .corner-bottom{left:auto;top:auto;right:3px;bottom:3px}.victory-cards .card-suit{font-size:19px}
.victory-enter .victory-plaque{animation:victory-drop 780ms both;animation-delay:var(--victory-elapsed,0ms)}
.victory-cards-enter{animation:victory-cards-slide 700ms both;animation-delay:var(--victory-elapsed,0ms)}
.victory-leaving{animation:victory-fade 380ms forwards;animation-delay:var(--victory-fade-elapsed,0ms)}
.victory-cards .card-corner{font-size:8px}.victory-cards .card-corner i{display:none}.victory-cards .card-suit{font-size:14px}
.victory-many .victory-plaque{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.victory-many .victory-kicker{grid-column:1/-1}.victory-many .victory-result{gap:6px}.victory-many .victory-identity strong{font-size:12px}.victory-many .victory-identity b{font-size:10px}.victory-many .victory-identity small{font-size:9px}.victory-many .victory-cards .poker-card{width:26px;height:36px}
.table-victory.victory-many{width:clamp(340px,75cqw,640px);max-width:90%}.victory-many .victory-identity strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.victory-many .victory-plaque{padding:8px 12px}.victory-many .victory-kicker{margin-bottom:4px}.victory-many .victory-result{padding:4px 0}.victory-many .victory-identity strong{font-size:11px;line-height:1.1}.victory-many .victory-identity b{margin:2px 0;line-height:1.1}.victory-many .victory-identity small{line-height:1.1}
@keyframes victory-drop{0%{opacity:0;transform:translateY(-90px) scale(.97)}50%{opacity:1}66.667%{transform:translateY(0) scale(1)}80%{transform:translateY(-9px) scale(1.015)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes victory-cards-slide{0%{opacity:0;transform:translate(var(--victory-from-x,0px),var(--victory-from-y,40px)) rotate(-7deg)}20%{opacity:1}100%{opacity:1;transform:translate(0,0) rotate(0)}}
@keyframes victory-fade{to{opacity:0;filter:blur(2px)}}
@media(prefers-reduced-motion:reduce){.victory-enter .victory-plaque,.victory-cards-enter,.victory-leaving{animation:none!important}}
