@font-face{font-family:'Baccarat Brush';src:url('/fonts/gwang-brush.ttf?v=2026091908') format('truetype');font-display:swap;unicode-range:U+5149}
.baccarat-room{width:100%;min-width:0;max-width:1500px;margin:0 auto;padding:20px 28px 40px;box-sizing:border-box;color:#f0e8d8}.baccarat-top{display:flex;align-items:center;gap:14px;margin-bottom:14px}.baccarat-top h1{font-size:19px;margin:0 0 4px}.baccarat-top span{font-size:11px;color:#ab9d87}.baccarat-top button{margin-left:auto}.baccarat-back{color:#d7ba80;font-size:32px;text-decoration:none}.baccarat-room button{cursor:pointer;font:inherit}.baccarat-top button,.baccarat-wallet>button,#baccarat-rules button{color:#dfc898;background:#29221b;border:1px solid #665032;border-radius:6px;padding:9px 13px;font-size:12px}.baccarat-room button:focus-visible{outline:2px solid #f0c775;outline-offset:3px}.baccarat-room button:disabled{opacity:.45;cursor:not-allowed}
.baccarat-stage{height:470px;position:relative;overflow:hidden;border:1px solid #7c5831;border-radius:16px 16px 0 0;background:linear-gradient(90deg,#22150fbd,#51331d55,#22150fcc),var(--baccarat-background,linear-gradient(#282116,#18130e)) center/cover}.baccarat-window{position:absolute;top:-145px;left:-65px;width:550px;height:550px;border:16px solid #3d2717;border-radius:50%;background:repeating-linear-gradient(0deg,transparent 0 57px,#45351faa 58px 63px),repeating-linear-gradient(90deg,transparent 0 57px,#45351faa 58px 63px),radial-gradient(circle,#c2a46588,#4d351c55);box-shadow:0 0 80px #ba914621}.baccarat-wall-mark{position:absolute;right:12%;top:48px;font:100px 'Baccarat Brush',serif;color:#c5a06845}.baccarat-dealer{position:absolute;left:50%;top:6px;transform:translateX(-50%);width:320px;height:384px;transform-origin:center bottom}.baccarat-round{position:absolute;top:17px;left:20px;display:flex;flex-direction:column;gap:7px;font-size:11px;color:#e2c48b;text-shadow:0 2px 4px #000}
.baccarat-felt{position:absolute;bottom:-60px;left:-5%;width:110%;height:270px;border-radius:50% 50% 0 0 / 35% 35% 0 0;border-top:12px solid #765539;box-shadow:0 -5px 0 #b99150,0 -12px 25px #0005;background:radial-gradient(ellipse at 50% 0,#8b3037,#4a121c 80%)}.baccarat-felt:before{content:'';position:absolute;inset:12px 3%;border-top:1px solid #cdb27a70;border-radius:50%}.baccarat-felt-brand{position:absolute;top:12px;left:0;right:0;text-align:center;color:#d0ac6c55;font:11px Georgia,serif;letter-spacing:5px}
.baccarat-hands{position:relative;display:flex;justify-content:center;gap:80px;margin-top:28px}.baccarat-hand{width:210px;text-align:center}.baccarat-hand h2{font:14px Georgia,serif;letter-spacing:3px;color:#e2d1a7;margin:0 0 12px}.baccarat-hand h2 b{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;margin-left:9px;background:#18181877;border-radius:50%;letter-spacing:0;color:white;font-size:19px}.baccarat-cards{display:flex;justify-content:center;gap:7px;min-height:83px}.baccarat-card{width:49px;height:73px;border:1px solid #bead8b;background:#f4eddd;border-radius:5px;color:#252c30;display:flex;flex-direction:column;align-items:center;justify-content:center;font:23px Georgia,serif;box-shadow:0 5px 8px #0005;animation:card-deal .65s cubic-bezier(.2,.65,.2,1) both}.baccarat-card.red{color:#a8343d}
.baccarat-control-header{display:flex;align-items:center;gap:14px;min-height:45px;padding:0 16px;background:#191914;border:1px solid #55432b;font-size:12px}.baccarat-control-header>strong{color:#dbbc74;font-size:21px}.baccarat-control-header>span:last-child{margin-left:auto;color:#e3c481}.baccarat-bets{display:grid;grid-template-columns:1fr 1.5fr 1fr 1.5fr 1fr;gap:2px;background:#9b80484d;padding:2px}.baccarat-bets button{min-height:103px;border:1px solid #cdb98044;padding:12px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#f4ebdc;background:#29241e;transition:filter .15s}.baccarat-bets .bet-player{background:linear-gradient(120deg,#153f67,#162d4b)}.baccarat-bets .bet-banker{background:linear-gradient(120deg,#672731,#40151e)}.baccarat-bets .bet-tie{background:#203f2b}.baccarat-bets button:not(:disabled):hover{filter:brightness(1.3)}.baccarat-bets button span{font-size:14px}.baccarat-bets button small{font-size:11px;color:#c9bba1}.baccarat-bets button b{font-size:14px;color:#f0d49b}.baccarat-wallet{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:16px;background:#191714;border:1px solid #493b29;border-top:0}.baccarat-wallet>div:first-child{min-width:125px}.baccarat-wallet small{display:block;font-size:10px;color:#ae9f87;margin-bottom:5px}.baccarat-wallet strong{font-size:19px}.baccarat-wallet em{font:20px 'Baccarat Brush',serif;color:#d04346}.baccarat-chips{display:flex;gap:12px;flex:1;justify-content:center}.baccarat-chips button{width:46px;height:46px;flex-shrink:0;border:4px dashed #dfcfa6;border-radius:50%;background:#792e37;color:#fff;font-size:10px;box-shadow:0 3px 0 #0007}.baccarat-chips button:nth-child(2){background:#245647}.baccarat-chips button:nth-child(3){background:#345a78}.baccarat-chips button:nth-child(4){background:#69512b}.baccarat-chips button[aria-pressed=true]{outline:2px solid #f8d787;outline-offset:4px;transform:translateY(-3px)}.baccarat-limit{width:100%;text-align:center;font-size:10px;color:#ad9d81}
.baccarat-road-panel{min-width:0;overflow:hidden;border:1px solid #5a4930;border-radius:6px;background:#f5f0e3}.baccarat-road-panel h3{margin:0;padding:6px 9px;font-size:11px;color:#d4c6ad;background:#24201b}.road-scroll{overflow-x:auto;scrollbar-width:thin}.baccarat-road{position:relative;min-width:100%;height:108px;background:repeating-linear-gradient(0deg,transparent 0 17px,#b5b6b950 17px 18px),repeating-linear-gradient(90deg,transparent 0 17px,#b5b6b950 17px 18px)}.road-cell{position:absolute;width:14px;height:14px;border:2px solid #d23e44;border-radius:50%;box-sizing:border-box;color:#d23e44;font-size:8px;display:flex;align-items:center;justify-content:center}.road-cell.player,.road-cell.blue{border-color:#2972b9;color:#2972b9}.road-cell.tie{border-color:#368851;color:#368851}.road-bead .road-cell{background:currentColor}.road-bead .road-cell span{color:#fff;font:bold 8px sans-serif}.road-small .road-cell{background:currentColor}.road-cockroach .road-cell{border:0;border-radius:0;background:linear-gradient(125deg,transparent 42%,currentColor 43% 57%,transparent 58%)}.road-cell .tie-mark{position:absolute;width:14px;height:2px;background:#308d48;transform:rotate(-45deg)}.road-cell .tie-count{position:absolute;bottom:-4px;right:-3px;font:bold 8px sans-serif;color:#236132;background:#f5f0e3}.road-pair{position:absolute;width:4px;height:4px;border-radius:50%;background:#c83238;left:-3px;top:-3px}.road-pair.player-pair{background:#226cbc;left:auto;top:auto;right:-3px;bottom:-3px}
#baccarat-rules{max-width:570px;width:calc(100% - 40px);box-sizing:border-box;background:#221e18;color:#e4d8c5;border:1px solid #9d804a;border-radius:12px;padding:26px}#baccarat-rules::backdrop{background:#000a}#baccarat-rules h2{font-size:20px;text-align: center;padding-bottom: 15px;border-bottom: 1px solid #ab9d87;margin-bottom: 10px;}#baccarat-rules p{font-size:13px;line-height:1.8}#baccarat-toast{position:absolute;right:100px;top:50px;z-index:10000;padding:14px 20px;border-radius:9px;background:#292018;color:#f1d5a1;border:1px solid #a27e41;max-width:calc(100vw - 70px);font-size:13px}#baccarat-toast:empty{display:none}
@keyframes card-deal{from{opacity:0;transform:translate(var(--deal-x,70px),-90px) rotate(25deg) scale(.65)}to{opacity:1;transform:none}}
@media(max-width:760px){.baccarat-room{padding:12px 10px 28px}.baccarat-stage{height:385px}.baccarat-dealer{width:270px;height:324px;top:6px}.baccarat-window{width:350px;height:350px;top:-85px;left:-100px}.baccarat-wall-mark{right:7%;font-size:65px}.baccarat-felt{height:225px;bottom:-45px}.baccarat-hands{gap:25px;margin-top:30px}.baccarat-hand{width:150px}.baccarat-hand h2{font-size:11px;letter-spacing:1px}.baccarat-card{width:35px;height:55px;font-size:19px}.baccarat-cards{gap:5px}.baccarat-round{font-size:9px;left:10px;top:12px}.baccarat-bets button span{font-size:11px}.baccarat-bets button{min-height:90px}.baccarat-wallet{gap:12px;padding:14px 10px}.baccarat-wallet>div:first-child{min-width:100px}.baccarat-chips{gap:9px;justify-content:flex-end}.baccarat-chips button{width:37px;height:37px;font-size:9px;border-width:3px}.baccarat-control-header{font-size:10px;gap:8px}.baccarat-top span{font-size:10px}.baccarat-top h1{font-size:17px}}
@media(prefers-reduced-motion:reduce){.baccarat-dealer{animation:none}.baccarat-card{animation:none}}

.banker-hand{--deal-x:-70px}
.baccarat-hand{position:relative}

@media(max-width:380px){.baccarat-hands{gap:12px}.baccarat-hand{width:135px}}

.baccarat-bets button{min-height:148px}
.baccarat-bets .bet-chip-stack{--placed-chip-size:clamp(18px,calc(var(--bet-height)*.3),32px);position:relative;display:block;width:var(--placed-chip-size);height:calc(var(--placed-chip-size) + 6px);flex-shrink:0;pointer-events:none}
.bet-placed-chip{position:absolute;bottom:0;left:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--placed-chip-size);height:var(--placed-chip-size);border:2px dashed #e8d6a6;border-radius:50%;background:#792e37;color:#fff;font:700 clamp(6px,calc(var(--placed-chip-size)*.25),8px) sans-serif;box-shadow:0 2px 0 #261917,0 3px 5px #0008,inset 0 0 0 1px #ffffff40;transform:translateY(calc(var(--chip-layer)*-2px));animation:bet-chip-place .28s ease-out both}
.bet-placed-chip.chip-500{background:#245647}.bet-placed-chip.chip-1000{background:#345a78}.bet-placed-chip.chip-5000{background:#69512b}
.baccarat-bets button.has-stake{border-color:#daba76;box-shadow:inset 0 0 20px #e4bc5420}
.baccarat-bets button.has-stake:disabled{opacity:1}
@keyframes bet-chip-place{from{opacity:0;translate:0 14px;scale:.8}to{opacity:1;translate:0 0;scale:1}}
@media(max-width:760px){.baccarat-bets button{min-height:139px}}
@media(prefers-reduced-motion:reduce){.bet-placed-chip{animation:none}}

/* Compact table console: bead plate / betting oval / four analytical roads. */
.baccarat-dashboard{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,1.3fr) minmax(0,1fr);align-items:center;gap:12px;padding:12px 10px 6px;background:linear-gradient(180deg,#251b20,#151413);border-inline:1px solid #55432b}
.baccarat-bead-board,.baccarat-derived-board{min-width:0}
.baccarat-derived-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#b5b5b5;border:1px solid #b5b5b5;border-radius:7px;overflow:hidden}
.baccarat-derived-board .road-big{grid-column:1/-1}
.baccarat-derived-board .baccarat-road-panel{border:0;border-radius:0}
.baccarat-road-panel{background:#faf9f5;border-color:#cac4bc}
.baccarat-road-panel h3{font-size:9px;line-height:14px;padding:1px 6px;background:#e9e5df;color:#4c4640;font-weight:500}
.baccarat-road{--road-size:18px;height:calc(var(--road-size)*6);background:repeating-linear-gradient(0deg,transparent 0 calc(var(--road-size) - 1px),#b7b9bd70 calc(var(--road-size) - 1px) var(--road-size)),repeating-linear-gradient(90deg,transparent 0 calc(var(--road-size) - 1px),#b7b9bd70 calc(var(--road-size) - 1px) var(--road-size))}
.road-big .baccarat-road{--road-size:10px}.road-bigEye .baccarat-road,.road-small .baccarat-road,.road-cockroach .baccarat-road{--road-size:8px}
.road-cell{width:calc(var(--road-size) - 2px);height:calc(var(--road-size) - 2px)}
.baccarat-derived-board .road-cell{border-width:1px}.baccarat-derived-board .road-cell .tie-mark{width:8px;height:1px}.baccarat-derived-board .road-pair{width:3px;height:3px;left:-1px;top:-1px}.baccarat-derived-board .road-pair.player-pair{left:auto;top:auto;right:-1px;bottom:-1px}
.baccarat-dashboard .baccarat-bets{gap:0;padding:0;overflow:visible;border:1px solid #a8875566;border-radius:80px;background:#15241e;grid-template-columns:.75fr 1.15fr 1fr 1.15fr .75fr;box-shadow:inset 0 0 20px #0006,0 5px 18px #0004}
.baccarat-dashboard .baccarat-bets button{min-width:0;min-height:146px;padding:14px 2px 10px;border:0;border-right:1px solid #d0ad6240;gap:5px}
.baccarat-dashboard .baccarat-bets button:last-child{border-right:0}
.baccarat-dashboard .baccarat-bets button span{font-size:11px}.baccarat-dashboard .baccarat-bets button small{font-size:9px}.baccarat-dashboard .baccarat-bets button b{font-size:11px}
.baccarat-dashboard .baccarat-bets .bet-player,.baccarat-dashboard [data-bet=playerPair]{background:linear-gradient(135deg,#164472,#102840)}
.baccarat-dashboard .baccarat-bets .bet-banker,.baccarat-dashboard [data-bet=bankerPair]{background:linear-gradient(225deg,#752833,#3e1923)}
.baccarat-dashboard .baccarat-bets .bet-tie{background:radial-gradient(ellipse at top,#397b3b,#163d26);border-radius:55% 55% 0 0 / 30% 30% 0 0;border:1px solid #b3a56680}
.baccarat-dashboard .baccarat-bets button:disabled{opacity:1;color:#c0b7a5}.baccarat-dashboard .baccarat-bets button.has-stake{box-shadow:inset 0 0 0 1px #e8c36e,inset 0 0 22px #e8c36e35}
@media(max-width:1100px){.baccarat-dashboard{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.baccarat-dashboard .baccarat-bets{grid-column:1/-1;grid-row:1;width:100%;max-width:560px;justify-self:center}.baccarat-bead-board{grid-column:1}.baccarat-derived-board{grid-column:2}}
@media(max-width:480px){.baccarat-dashboard{gap:6px;padding:8px 6px}.baccarat-dashboard .baccarat-bets button span{font-size:10px}.baccarat-dashboard .baccarat-bets button b{font-size:10px}}

/* The betting console rises independently of the dealer, cards and road panels. */
.baccarat-stage{height:510px}.baccarat-dealer{width:350px;height:420px;top:4px}.baccarat-felt{height:295px;bottom:-60px;border-radius:50% 50% 0 0 / 42% 42% 0 0}.baccarat-hands{margin-top:36px}
.baccarat-dashboard{align-items:end;position:relative;padding-top:0;perspective:1000px}
.baccarat-betting-console{position:relative;z-index:4;min-width:0;opacity:0;visibility:hidden;pointer-events:none;transform-origin:center bottom}
.baccarat-betting-console.is-open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.baccarat-betting-banner{text-align:center;padding:7px 10px;background:linear-gradient(90deg,#214c31,#35894a,#214c31);border:1px solid #80ba6866;border-radius:7px 7px 0 0;color:#f1ffe9;font-size:12px;letter-spacing:1px}
.baccarat-dashboard .baccarat-bets{width:100%;box-sizing:border-box;border-radius:65px 65px 35px 35px;transform-origin:center bottom}
.baccarat-chip-tray{display:flex;align-items:center;justify-content:center;gap:14px;padding:16px 8px 8px;background:linear-gradient(#171917ee,#11100ee8);border-radius:0 0 14px 14px}
.baccarat-chip-tray .baccarat-chips{flex:0 1 auto;justify-content:center;gap:10px}.baccarat-chip-tray .baccarat-chips button{width:39px;height:39px;font-size:9px}
.baccarat-chip-tray #baccarat-cancel{padding:7px;border:1px solid #756240;border-radius:6px;background:#282219;color:#dfc898;font-size:10px;white-space:nowrap}
.baccarat-dashboard .baccarat-bead-board,.baccarat-dashboard .baccarat-derived-board{margin-bottom:14px}
@media(max-width:1100px){.baccarat-betting-console{grid-column:1/-1;grid-row:1;justify-self:center;width:min(100%,560px)}.baccarat-dashboard .baccarat-bets{max-width:none}.baccarat-dashboard .baccarat-bead-board,.baccarat-dashboard .baccarat-derived-board{margin-bottom:0}}
@media(max-width:760px){.baccarat-stage{height:400px}.baccarat-dealer{width:280px;height:336px;top:6px}.baccarat-felt{height:235px;bottom:-45px}.baccarat-hands{margin-top:30px}.baccarat-chip-tray{gap:10px}.baccarat-chip-tray .baccarat-chips{gap:8px}.baccarat-chip-tray .baccarat-chips button{width:35px;height:35px}.baccarat-betting-banner{font-size:11px}}
@media(prefers-reduced-motion:reduce){}

/* Fit the complete game into the shell's remaining viewport height. */
.baccarat-page .baccarat-room{height:100%;min-height:0;max-width:none;flex:1;display:flex;flex-direction:column;padding:8px 16px;overflow:auto}
.baccarat-top h1{font-size:17px}.baccarat-top span{font-size:10px}
.baccarat-room>.baccarat-stage{height:auto;min-height:160px;flex:1 1 0;container-type:size}
/* Asset elbows sit at roughly 76% of the portrait height. Use the same
   geometry for the portrait and the centre of the table's back edge. */
.baccarat-stage{--dealer-height:min(88cqh,432px);--dealer-top:3cqh;--table-edge:calc(var(--dealer-top) + min(66.88cqh,328.32px))}
.baccarat-stage .baccarat-dealer{height:var(--dealer-height);width:min(73.5cqh,360px);max-width:none;top:var(--dealer-top)}
.baccarat-stage .baccarat-felt{top:var(--table-edge);height:auto;bottom:-8%;border-top-width:8px}
.baccarat-stage .baccarat-hands{margin-top:2cqh;gap:clamp(18px,6vw,80px)}
.baccarat-stage .baccarat-hand{width:clamp(125px,20vw,210px)}
.baccarat-stage .baccarat-hand h2{margin-bottom:5px;font-size:clamp(10px,3cqh,14px)}
.baccarat-stage .baccarat-card{height:clamp(32px,16cqh,73px);width:clamp(23px,11cqh,49px);font-size:clamp(14px,5cqh,23px)}

.baccarat-stage .baccarat-cards{min-height:0}

.baccarat-room>.baccarat-control-header{flex:0 0 30px;min-height:30px}.baccarat-control-header>strong{font-size:18px}
.baccarat-room>.baccarat-dashboard{flex:0 0 auto;padding:0 8px;gap:10px;align-items:end}
.baccarat-dashboard .baccarat-bets button{min-height:116px;padding:5px 2px;gap:3px}
.baccarat-betting-banner{padding:4px 8px;font-size:11px}.baccarat-chip-tray{padding:7px 8px}.baccarat-chip-tray .baccarat-chips button{height:34px;width:34px}
.baccarat-dashboard .baccarat-bead-board,.baccarat-dashboard .baccarat-derived-board{margin-bottom:0}
.baccarat-room>.baccarat-wallet{flex:0 0 auto;padding:6px 12px;gap:8px;flex-wrap:nowrap;justify-content:space-between}
.baccarat-wallet small{display:inline;margin:0 8px 0 0}.baccarat-wallet strong,.baccarat-wallet em{font-size:16px}.baccarat-limit{width:auto;font-size:9px}
@media(max-width:1100px){.baccarat-room>.baccarat-dashboard{gap:5px}.baccarat-betting-console{max-width:500px}.baccarat-dashboard .road-scroll{zoom:.8}}
@media(max-width:760px){.baccarat-page .baccarat-room{padding:5px 6px}.baccarat-top h1{font-size:15px}.baccarat-top span{font-size:9px}.baccarat-dashboard .baccarat-bets button{min-height:100px}.baccarat-betting-banner{padding:3px}.baccarat-chip-tray{padding:6px}.baccarat-wallet small{font-size:9px}.baccarat-limit{font-size:8px}.baccarat-stage .baccarat-hand h2 b{width:20px;height:20px;font-size:14px}}
@media(max-height:650px){.baccarat-top span{display:none}.baccarat-dashboard{zoom:.8}.baccarat-room>.baccarat-stage{min-height:120px}}

/* Stage overlay header reserves no height in the game layout. */
.baccarat-stage>.baccarat-top{position:absolute;inset:0 0 auto;z-index:6;display:flex;align-items:center;gap:10px;margin:0;padding:10px 14px;background:linear-gradient(#0009,transparent);text-shadow:0 1px 4px #000;pointer-events:none}
.baccarat-stage>.baccarat-top a,.baccarat-stage>.baccarat-top button{pointer-events:auto}
.baccarat-stage .baccarat-back{display:flex;align-items:center;justify-content:center;width:30px;height:30px;flex:0 0 30px;border:1px solid #e3d2ae66;border-radius:50%;background:#14110e88;font-size:25px;line-height:1}
.baccarat-stage .baccarat-top h1{font-size:15px;margin:0}.baccarat-stage .baccarat-top span{display:none}
.baccarat-stage .baccarat-top button{padding:6px 10px;font-size:11px;background:#211b14bb}
.baccarat-stage .baccarat-round{top:55px;left:16px;gap:4px;font-size:10px}
@media(max-width:760px){.baccarat-stage>.baccarat-top{padding:7px 9px;gap:7px}.baccarat-stage .baccarat-top h1{font-size:13px}.baccarat-stage .baccarat-top button{font-size:10px;padding:5px 8px}.baccarat-stage .baccarat-round{top:46px;left:10px;font-size:9px}}

/* Fixed road positions: raise/enlarge the board for betting, settle it on close. */
.baccarat-betting-console{opacity:1;visibility:visible;pointer-events:auto;align-self:center;transform-origin:center center}
.baccarat-betting-console .baccarat-betting-banner{position:absolute;bottom:100%;left:0;right:0;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .35s,visibility 0s .35s;pointer-events:none}
.baccarat-betting-console.is-open .baccarat-betting-banner{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.baccarat-chip-tray{position:absolute;top:100%;left:0;right:0;max-height:none;padding-block:7px;opacity:0;visibility:hidden;overflow:visible;transform:translateY(14px);transition:opacity .2s,transform .35s,visibility 0s .35s}
.baccarat-wallet.is-open .baccarat-chip-tray{opacity:1;visibility:visible;transform:none;transition-delay:0s}
@media(prefers-reduced-motion:reduce){.baccarat-betting-console,.baccarat-betting-console .baccarat-betting-banner{transition:none}}
.baccarat-countdown{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;width:72px;height:72px;border-radius:50%;background:#10150de8;box-shadow:0 4px 20px #0006;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#e2edb4;pointer-events:none}
.baccarat-countdown[hidden]{display:none}.baccarat-countdown svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);fill:none;stroke-width:4}
.countdown-track{stroke:#ffffff25}.countdown-progress{stroke:#a8d861;stroke-dasharray:100;stroke-dashoffset:0;stroke-linecap:round;transition:stroke-dashoffset .25s linear}
.baccarat-countdown strong{font-size:28px;line-height:30px;font-variant-numeric:tabular-nums}.baccarat-countdown small{font-size:10px}.baccarat-countdown.is-ending{color:#ffd497}.is-ending .countdown-progress{stroke:#efaa51}
.baccarat-phase-overlay{position:absolute;right:16px;top:55px;color:#ddc493;font-size:10px;text-shadow:0 1px 4px #000;z-index:5}
@media(max-width:760px){.baccarat-countdown{width:58px;height:58px}.baccarat-countdown strong{font-size:23px;line-height:25px}.baccarat-phase-overlay{right:10px;top:46px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.baccarat-chip-tray,.baccarat-dashboard .baccarat-bets,.countdown-progress{transition:none}}

/* Five distinct felt panels and a fan-shaped chip selector. */
.baccarat-dashboard .baccarat-bets{grid-template-columns:.65fr 1.15fr 1fr 1.15fr .65fr;gap:3px;padding:4px;background:#171714;border:1px solid #b5914355;border-radius:60px;overflow:visible}
.baccarat-dashboard .baccarat-bets button{position:relative;border:1px solid #397bb0;box-shadow:inset 0 0 16px #08121c44;border-radius:0;justify-content:center;padding:6px 3px;gap:3px}
.baccarat-dashboard .baccarat-bets .bet-player{background:linear-gradient(110deg,#163d69,#102b4b);border-color:#3282bd}
.baccarat-dashboard .baccarat-bets .bet-banker{background:linear-gradient(250deg,#831b24,#4e1019);border-color:#c4403a}
.baccarat-dashboard .baccarat-bets [data-bet=playerPair]{border-radius:60px 0 0 60px;background:#123351;border-color:#276792;justify-content:center}
.baccarat-dashboard .baccarat-bets [data-bet=bankerPair]{border-radius:0 60px 60px 0;background:#641820;border:1px solid #a83632;justify-content:center}
.baccarat-dashboard .baccarat-bets .bet-tie{border-radius:999px 999px 0 0;background:radial-gradient(ellipse at top,#207424,#123d18);border:2px solid #80913e;box-shadow:inset 0 0 0 2px #143814}
.baccarat-dashboard .baccarat-bets button>span:first-child{font-size:12px;font-weight:600;color:#f5ecd9;order:1}.baccarat-dashboard .baccarat-bets button>small{order:2}.baccarat-dashboard .baccarat-bets button>[data-stake]{order:4}.baccarat-dashboard .baccarat-bets .bet-chip-stack{order:3;position:absolute;top:50%;transform:translateY(-50%)}
.baccarat-dashboard .baccarat-bets .bet-pair>span:first-child{font-size:10px;word-break:keep-all}
.baccarat-betting-console .baccarat-betting-banner{background:linear-gradient(90deg,#208523,#39ae20,#208523);border:1px solid #7ccb4566;border-radius:2px;padding:4px 8px;color:#fff;font-size:10px;letter-spacing:.5px}
.baccarat-chip-tray{background:linear-gradient(#141411ee,#0c0d0ae8);gap:8px;padding-inline:6px}
.baccarat-chip-tray .baccarat-chips{display:flex;align-items:center;justify-content:center;gap:8px}
.baccarat-chip-tray .baccarat-chips button{position:relative;inset:auto;margin:0;opacity:1;transform:none}
.baccarat-wallet.is-open .baccarat-chips button{opacity:1;transform:none}
.baccarat-chip-tray .baccarat-chips button[aria-pressed=true]{transform:none;outline:2px solid #ffe48a;outline-offset:3px;box-shadow:0 0 14px #ffd77966,0 3px 0 #0007}
@media(max-width:760px){.baccarat-dashboard .baccarat-bets button>span:first-child{font-size:10px}.baccarat-dashboard .baccarat-bets .bet-pair>span:first-child{font-size:9px}.baccarat-chip-tray #baccarat-cancel{padding:5px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.baccarat-chip-tray .baccarat-chips button{transition:none}}

.baccarat-flying-chip{position:fixed;top:0;left:0;z-index:10010;pointer-events:none;display:flex;align-items:center;justify-content:center;width:34px;height:34px;box-sizing:border-box;border:3px dashed #e8d6a6;border-radius:50%;background:#792e37;color:#fff;font:700 9px sans-serif;box-shadow:0 3px 8px #0008;will-change:transform}
.baccarat-flying-chip.chip-500{background:#245647}.baccarat-flying-chip.chip-1000{background:#345a78}.baccarat-flying-chip.chip-5000{background:#69512b}

/* Persistent footer: wallet / six centred selectable chips / lobby. */
.baccarat-room>.baccarat-wallet{display:grid;grid-template-columns:minmax(160px,1fr) minmax(340px,1.5fr) minmax(70px,1fr);align-items:center;min-height:66px;gap:8px;padding:6px 10px}
.baccarat-money-summary{display:flex;align-items:center;gap:8px}.baccarat-money-summary>div{min-width:80px;/*border:1px solid #6e614544;*//*border-radius:22px;*//*padding:5px 10px;*/text-align:center}.baccarat-money-summary small{display:block;margin:0 0 2px}.baccarat-money-summary strong{font-size:13px;white-space:nowrap;    border: 1px solid #6e614544;padding: 5px 10px;border-radius: 25px;}
.baccarat-wallet .baccarat-chip-tray{position:relative;inset:auto;width:100%;height:50px;max-height:none;padding:0;background:none;display:flex;justify-content:center;gap:8px}
.baccarat-wallet.is-open .baccarat-chip-tray{padding:0}
.baccarat-chip-tray .baccarat-chips{flex:0 0 auto;width:auto;height:48px}
.baccarat-chip-tray .baccarat-chips button{width:32px;height:32px;font-size:8px}
.baccarat-chip-tray #baccarat-cancel,.baccarat-chip-tray #baccarat-repeat-double{width:30px;height:30px;flex:0 0 30px;padding:0;border-radius:50%;border:1px solid #aa9874;background:#262420;color:#ecdfc3;font-size:20px;line-height:1}
.baccarat-chip-tray #baccarat-repeat-double{font-size:15px}
.baccarat-chips button[data-chip="50"],.bet-placed-chip.chip-50,.baccarat-flying-chip.chip-50{background:#54646e}
.baccarat-chips button[data-chip="100"]{background:#792e37}.baccarat-chips button[data-chip="500"]{background:#245647}.baccarat-chips button[data-chip="1000"]{background:#345a78}.baccarat-chips button[data-chip="5000"]{background:#69512b}.baccarat-chips button[data-chip="10000"],.bet-placed-chip.chip-10000,.baccarat-flying-chip.chip-10000{background:#64457b}
.baccarat-lobby-link{justify-self:end;padding:9px 15px;border:1px solid #756847;border-radius:24px;text-decoration:none;color:#e7d5a5;font-size:12px;white-space:nowrap}
.baccarat-betting-console{margin-bottom:0}
.baccarat-lobby{flex:1;min-width:0;overflow:auto;padding:10px 26px;color:#eee4cf}.baccarat-lobby-heading{margin-bottom:24px}.baccarat-lobby-heading a{color:#d1b77d;text-decoration:none;font-size:12px}.baccarat-lobby-heading h1{font-size:27px;margin:12px 0}.baccarat-lobby-heading p{font-size:13px;color:#b9af9d}.baccarat-lobby-heading>span{font-size:11px;color:#998b73}
.baccarat-table-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}.baccarat-table-card{overflow:hidden;background:#1b1915;border:1px solid #564630;border-radius:13px;color:inherit;text-decoration:none;transition:border-color .2s,transform .2s}.baccarat-table-card:hover{border-color:#d3b776;transform:translateY(-3px)}.baccarat-table-card:focus-visible{outline:2px solid #e4c67f;outline-offset:3px}
.baccarat-table-art{position:relative;height:160px;overflow:hidden;background:linear-gradient(90deg,#102a3dbb,#132b3980,#10233099),url("/gmae/hwatu-background.webp?v=2026092050") right center/auto 100% no-repeat,radial-gradient(ellipse at 45% 25%,#314c57,#101e29);text-align:center}.baccarat-table-art img{height:190px;width:auto;object-fit:contain;margin-top:8px}.baccarat-table-art>span{position:absolute;top:40px;left:12px;color:#f1dbab;font:600 11px Georgia,serif;letter-spacing:2px;text-shadow:0 1px 4px #000,0 0 8px #0008;pointer-events:none}
.baccarat-table-copy .dealer-profile>span{font-size:11px;color:#bdc892}
@media(max-width:900px){.baccarat-room>.baccarat-wallet{grid-template-columns:1fr auto;gap:3px;min-height:90px}.baccarat-money-summary{grid-column:1;grid-row:2}.baccarat-lobby-link{grid-column:2;grid-row:2}.baccarat-wallet .baccarat-chip-tray{grid-column:1/-1;grid-row:1;height:45px}.baccarat-money-summary>div{padding:2px 9px}.baccarat-money-summary small{display:inline;margin-right:5px}.baccarat-table-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.baccarat-lobby{padding:14px}.baccarat-table-art{height:135px}}

.baccarat-table-copy{padding:0}
.baccarat-lobby-road-heading,.baccarat-lobby-road-footer{display:flex;justify-content:space-between;gap:6px;padding:7px 9px;font-size:10px;line-height:1.3}
.baccarat-lobby-road-heading{background:#e7e3db;color:#4b4740}.baccarat-table-copy .baccarat-lobby-road-heading span{font-size:10px;color:inherit}.baccarat-lobby-road-heading [data-table-phase]{opacity:.8}
.baccarat-table-copy .road-scroll{background:#faf9f5;overflow:hidden;overflow-anchor:none;scroll-behavior:auto;scrollbar-width:none}.baccarat-table-copy .road-scroll::-webkit-scrollbar{display:none;width:0;height:0}.lobby-bead-road{--road-size:14px;height:84px}.lobby-bead-road .road-cell{border-width:1.5px}.baccarat-table-copy .lobby-bead-road .road-cell>span{color:#fff;font:bold 8px sans-serif}
.baccarat-table-copy .baccarat-lobby-road-footer span{font-size:10px;color:#c8b68f}.baccarat-table-copy .baccarat-lobby-road-footer span:last-child{color:#e7c780}

/* Table-only atmosphere; ornaments stay behind the dealer and the felt. */
.baccarat-garden{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.garden-pine{position:absolute;bottom:12%;width:clamp(190px,33%,470px);aspect-ratio:600/520;opacity:.9;filter:saturate(.65)}
.garden-pine-left{left:-5%}.garden-pine-right{right:-5%;transform:scaleX(-1)}
.garden-pine img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.pine-trunk{clip-path:polygon(0 68%,100% 68%,100% 100%,0 100%)}
.pine-crown{clip-path:polygon(0 0,100% 0,100% 76%,0 76%);transform-origin:25% 76%;animation:pine-branch-sway 14s ease-in-out infinite alternate}
.garden-pine-right .pine-crown{animation-duration:19s;animation-delay:-7s}
.garden-petals{position:absolute;inset:0}.garden-petals i{position:absolute;left:var(--petal-x);top:-20px;width:var(--petal-size);height:calc(var(--petal-size)*1.25);background:var(--baccarat-petal,none) center/contain no-repeat;opacity:0;animation:garden-petal-fall var(--petal-duration) linear var(--petal-delay) infinite}
@keyframes pine-branch-sway{from{transform:rotate(-.6deg)}to{transform:rotate(.8deg)}}
@keyframes garden-petal-fall{0%{transform:translate3d(0,-15px,0) rotate(0);opacity:0}12%{opacity:.25}50%{transform:translate3d(calc(var(--petal-drift)*-.3),50cqh,0) rotate(160deg);opacity:.3}88%{opacity:.18}100%{transform:translate3d(var(--petal-drift),105cqh,0) rotate(330deg);opacity:0}}
.baccarat-stage .baccarat-window{opacity:.65}.baccarat-stage .baccarat-dealer{z-index:1}.baccarat-stage .baccarat-felt{z-index:2}.baccarat-stage .baccarat-round{z-index:5}
@media(max-width:760px){.garden-pine{opacity:.18;bottom:20%;width:45%}.garden-petals i:nth-child(n+13){display:none}}
@media(prefers-reduced-motion:reduce){.pine-crown{animation:none}.garden-petals{display:none}}

.baccarat-motion-paused .baccarat-stage *{animation-play-state:paused!important}

/* A complete character is drawn per frame, with one common canvas scale. */
.baccarat-stage:has(.frame-dealer){--dealer-height:min(118cqh,122.666cqw);--table-edge:calc(2cqh + min(66cqh,68.61cqw))}
.baccarat-stage .frame-dealer{width:min(88.5cqh,92cqw);height:var(--dealer-height);top:2cqh;animation:none;z-index:4;pointer-events:none}
/* Camera composition: elbows at the back rail, cards lying on the felt. */
.baccarat-stage .baccarat-felt{border-radius:50% 50% 0 0 / 12% 12% 0 0;border-top-width:6px}
.baccarat-stage .baccarat-felt-brand{top:5px;font-size:9px}
.baccarat-stage .baccarat-hands{gap:5cqw;margin-top:3cqh;transform-origin:50% 25%;z-index:4}
.baccarat-stage .baccarat-hand{width:15cqw;min-width:92px;max-width:200px}
.baccarat-stage .baccarat-hand h2{font-size:clamp(9px,1.25cqw,16px);letter-spacing:2px;margin-bottom:0}
.baccarat-stage .baccarat-card{width:clamp(24px,3.8cqw,52px);height:clamp(35px,5.5cqw,75px);flex-shrink:0;border-radius:3px;box-shadow:0 2px 3px #0006}
.baccarat-stage .baccarat-countdown{top:calc(var(--table-edge) - 12cqh);width:clamp(40px,5cqw,65px);height:clamp(40px,5cqw,65px)}
.baccarat-countdown small{display:none}

.baccarat-road-stats{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:5px 4px;background:#21171a;color:#f3e8dc;font-size:10px;min-height:24px;box-sizing:border-box}
.road-stat{display:inline-flex;gap:3px;align-items:center;white-space:nowrap}.road-stat b{font-size:10px;font-variant-numeric:tabular-nums}
.stat-dot{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font:bold 8px sans-serif;color:white;background:#398859}
.stat-dot.player{background:#2877b9}.stat-dot.banker{background:#c53745}
.stat-pair{width:13px;height:13px;background:#ede7dc;border-radius:50%;position:relative;display:inline-block}.stat-pair:after{content:'';width:5px;height:5px;position:absolute;border-radius:50%;background:#c53745;left:0;top:0}.stat-pair.player:after{background:#2877b9;left:auto;top:auto;right:0;bottom:0}
.road-asks{display:flex;gap:4px;margin-left:auto}.road-ask{display:inline-flex;align-items:center;gap:3px;padding:3px 5px;border-radius:12px;background:#18344e}.road-ask.banker{background:#571f2b}.road-ask b{font-size:9px}
.ask-mark{box-sizing:border-box;width:7px;height:7px;display:inline-block;color:#dd4757;border:1px solid currentColor;border-radius:50%}.ask-mark.blue{color:#3c91e1}.ask-mark.ask-small{background:currentColor}.ask-mark.ask-cockroach{border:0;border-radius:0;background:linear-gradient(130deg,transparent 40%,currentColor 42% 58%,transparent 60%)}.ask-mark.is-empty{opacity:.2;color:#ccc}
.baccarat-room>.baccarat-wallet{position:relative}
@media(max-width:760px){.baccarat-stage .baccarat-hands{gap:10cqw;margin-top:5cqh}.baccarat-stage .baccarat-hand{width:28cqw}.baccarat-stage .baccarat-countdown{top:calc(var(--table-edge) + 5cqh)}.baccarat-road-stats{gap:3px;font-size:9px}.road-asks{width:100%;justify-content:flex-end}.baccarat-stage .baccarat-card{font-size:16px}.baccarat-stage .baccarat-hand h2{letter-spacing:0}}

/* Three reserved table positions: dealing never recenters an existing card. */
.baccarat-stage .baccarat-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));justify-content:initial;gap:5px}
/* Reserve the player's draw card on the left without moving the first two cards later. */
#player-cards>.baccarat-card-slot[data-slot="0"]{grid-area:1/2}
#player-cards>.baccarat-card-slot[data-slot="1"]{grid-area:1/3}
#player-cards>.baccarat-card-slot[data-slot="2"]{grid-area:1/1}
.baccarat-card-slot{display:flex;align-items:flex-start;justify-content:center;min-width:0;min-height:clamp(35px,5.5cqw,75px)}
.baccarat-stage .baccarat-card{box-sizing:border-box;max-width:100%;animation:none}
.baccarat-card.is-face-down{background:#101216;border:1px solid #34373d;box-shadow:0 1px 0 #07090b,0 3px 5px #0008}.baccarat-card .card-print{display:block;width:100%;height:100%;overflow:hidden;flex-shrink:0;border-radius:inherit}.baccarat-card .card-back-print{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:inherit;background:#191d23 url("/gmae/cards/black-facets.svg?v=2026092135") center/100% 100%}.baccarat-card .card-back-print img{display:block;width:100%;height:auto;object-fit:contain;pointer-events:none;opacity:.8;filter:brightness(.65) saturate(.7)}.baccarat-card.is-revealed{background:#161a20;border-color:#3b4149;box-shadow:0 1px 0 #07090b,0 3px 5px #0008}
.baccarat-card.is-revealed{animation:card-turn .32s ease}
@keyframes card-turn{from{transform:scaleX(.05)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.baccarat-card.is-revealed{animation:none}}

/* Percentage-only overlay for visible previews and selected table media. */
.baccarat-asset-loader{position:absolute;inset:10px;z-index:20;box-sizing:border-box;border:1px solid #75603a;border-radius:16px 16px 0 0;background:radial-gradient(ellipse at 50% 35%,#3e2921,#110e0d 72%);display:grid;place-items:center;color:#ecd7ab;text-align:center;padding:24px}
.baccarat-asset-loader[hidden]{display:none}
.baccarat-asset-loader>div{width:min(440px,100%)}
.baccarat-loader-brand{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px}
.baccarat-loader-icon{display:block;width:56px;height:56px;object-fit:contain}
.baccarat-loader-wordmark{display:block;width:clamp(140px,38vw,200px);height:auto;object-fit:contain}
.baccarat-asset-loader output{display:block;margin:12px 0;font-size:15px;font-variant-numeric:tabular-nums}
.baccarat-asset-loader progress{width:100%;height:12px;accent-color:#c7a767;margin-top:22px}
.baccarat-asset-loader button{padding:10px 24px;background:#6b3038;color:#fff0cc;border:1px solid #b59053;border-radius:8px;cursor:pointer}
.dealer-assets-loading{overflow:hidden}.dealer-assets-loading #lobby-main{visibility:hidden}
.baccarat-table-art img{height:265px;width:199px;max-width:100%;object-fit:contain;margin-top:0}

/* Card columns share the dealer image scale at every viewport size. */
.baccarat-stage .baccarat-hands{gap:calc(var(--dealer-height)*.035);margin-top:2cqh}
.baccarat-stage .baccarat-hand{width:calc(var(--dealer-height)*.22);min-width:0;max-width:none}
.baccarat-stage .baccarat-card{width:calc(var(--dealer-height)*.067);height:calc(var(--dealer-height)*.094);font-size:clamp(11px,3cqh,21px)}

.baccarat-stage .baccarat-cards{gap:2px}

/* Continuous dealers: cool backdrop matches the keyed edge and fixed card plane. */
.baccarat-page .baccarat-stage{background:linear-gradient(90deg,#102a3dde,#203b4bb8,#102a3dde),var(--baccarat-background) center/cover}
.baccarat-page .baccarat-window{opacity:.3}
.baccarat-page .garden-pine{filter:saturate(.55)}

.baccarat-page .frame-dealer[data-action="idle"] img{animation:wan-dealer-breath 6s ease-in-out infinite;transform-origin:50% 65%}
@keyframes wan-dealer-breath{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.004)}}
@media(prefers-reduced-motion:reduce){.baccarat-page .frame-dealer img{animation:none!important}}

/* Stable table composition: scale uniformly for narrow screens, never by game phase. */
.baccarat-room>.baccarat-stage{flex:0 0 560px;height:560px;min-height:560px}
.baccarat-stage:has(.frame-dealer){--dealer-height:min(608px,116cqw);--dealer-top:20px;--table-edge:calc(var(--dealer-top) + var(--dealer-height)*.49)}
.baccarat-stage .frame-dealer{width:calc(var(--dealer-height)*.75);height:var(--dealer-height);top:calc(var(--dealer-top) + var(--dealer-height)*var(--dealer-seat-offset,0))}
.baccarat-stage .baccarat-felt{left:50%;top:var(--table-edge);bottom:auto;width:calc(var(--dealer-height)*1.9);height:calc(var(--dealer-height)*.57);transform:translateX(-50%);border:0;border-radius:0;box-shadow:none;background:var(--baccarat-table,none) center top/100% 100% no-repeat}
.baccarat-stage .baccarat-felt:before{display:none}
.baccarat-stage .baccarat-felt-brand{top:calc(var(--dealer-height)*.36);font-size:9px}
.baccarat-stage .baccarat-hands{gap:max(8px,calc(var(--dealer-height)*.07 - 12px));margin-top:calc(var(--dealer-height)*.15);transform:none;transition:none}
.baccarat-stage .baccarat-hand{width:calc(var(--dealer-height)*.33 + 12px);min-width:0;max-width:none;padding:5px 4px;box-sizing:border-box}
/* Align the printed label with the two initial card columns, excluding the third-card space.
   Equal outside tracks keep the score from shifting the label's center. */
.baccarat-stage .baccarat-hand h2{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:6px;width:calc((100% - 6px)*126/211 + 3px);margin:0 0 4px;font-size:clamp(10px,1.3cqw,14px);letter-spacing:1px;white-space:nowrap;transform:none}
.baccarat-stage .player-hand h2{margin-left:auto}
.baccarat-stage .banker-hand h2{margin-right:auto}
.baccarat-stage .baccarat-hand h2 .baccarat-felt-label{grid-column:2;grid-row:1;justify-self:center}
.baccarat-stage .baccarat-hand h2 b{margin:0;grid-row:1}
.baccarat-stage .player-hand h2 b{grid-column:1;justify-self:end}
.baccarat-stage .banker-hand h2 b{grid-column:3;justify-self:start}
.baccarat-stage .baccarat-cards{gap:3px;transform:perspective(900px) rotateX(58deg) skewX(var(--card-slant));transform-origin:center top}
.baccarat-stage .baccarat-card{width:calc(var(--dealer-height)*.0945);height:calc(var(--dealer-height)*.1275);font-size:clamp(18px,3cqw,27px);position:relative;isolation:isolate;filter:brightness(var(--card-exposure,1));box-shadow:var(--card-shadow-x,0px) var(--card-shadow-y,3px) 4px #0009,0 1px 1px #000b}
/* Fixed overhead light: the two hands face the same central source.
   Sideways third cards compensate for their 90-degree rotation. */
.baccarat-stage .baccarat-card::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;background:radial-gradient(ellipse 130% 110% at var(--card-light-x,50%) var(--card-light-y,-15%),rgb(255 236 200 / var(--card-gloss,.2)),#fff5df06 62%,#0002 100%),linear-gradient(var(--card-sheen-angle,145deg),#fff8e70a,transparent 42%,#00000018);box-shadow:inset 0 1px 0 #fff1df30,inset 0 -1px 0 #0008}
#player-cards>[data-slot="0"]{--card-light-x:115%;--card-gloss:.18;--card-exposure:1;--card-shadow-x:-1.5px;--card-sheen-angle:145deg}
#player-cards>[data-slot="1"]{--card-light-x:65%;--card-gloss:.25;--card-exposure:1.06;--card-shadow-x:-.5px;--card-sheen-angle:155deg}
#banker-cards>[data-slot="0"]{--card-light-x:35%;--card-gloss:.25;--card-exposure:1.06;--card-shadow-x:.5px;--card-sheen-angle:205deg}
#banker-cards>[data-slot="1"]{--card-light-x:-15%;--card-gloss:.18;--card-exposure:1;--card-shadow-x:1.5px;--card-sheen-angle:215deg}
#player-cards>[data-slot="2"]{--card-light-x:-15%;--card-light-y:-25%;--card-gloss:.16;--card-exposure:.96;--card-shadow-x:3px;--card-shadow-y:2px;--card-sheen-angle:55deg}
#banker-cards>[data-slot="2"]{--card-light-x:-15%;--card-light-y:125%;--card-gloss:.16;--card-exposure:.96;--card-shadow-x:3px;--card-shadow-y:-2px;--card-sheen-angle:125deg}
.baccarat-stage .baccarat-card-slot{min-height:calc(var(--dealer-height)*.1275)}
/* The third draw card stays sideways before and after its reveal. */
.baccarat-stage .player-hand .baccarat-cards{--card-slant:-18deg;grid-template-columns:85fr 63fr 63fr}
.baccarat-stage .banker-hand .baccarat-cards{--card-slant:18deg;grid-template-columns:63fr 63fr 85fr}
.baccarat-stage .baccarat-card-slot[data-slot="2"]{align-items:center}
.baccarat-stage .baccarat-card-slot[data-slot="2"]>.baccarat-card{width:calc(var(--dealer-height)*.0945);height:auto;aspect-ratio:63/85;max-width:none;flex-shrink:0;rotate:90deg}
/*.baccarat-stage .baccarat-countdown{top:calc(var(--table-edge) + var(--dealer-height)*.14)}*/

/* The betting surface grows upward; labels and the lower edge retain their size/position. */
.baccarat-betting-console{--bet-height:var(--board-height);--bet-growth:32px;height:var(--bet-height);transform:none;transition:none}
.baccarat-dashboard .baccarat-bets{position:absolute;left:0;right:0;bottom:0;height:var(--bet-height);transition:height .35s ease,opacity .25s ease,filter .25s ease}
.baccarat-betting-console.is-open .baccarat-bets{height:calc(var(--bet-height) + var(--bet-growth))}
.baccarat-dashboard .baccarat-bets button{min-height:0;height:100%;box-sizing:border-box;overflow:visible}
.baccarat-dashboard .bet-chip-stack{overflow:visible;z-index:2}
.baccarat-dashboard .baccarat-bets [data-bet]{justify-content:center}
.baccarat-betting-console:not(.is-open) .baccarat-bets{opacity:.4;filter:saturate(.35);pointer-events:none}
.baccarat-betting-console .baccarat-betting-banner{bottom:calc(var(--bet-height) + var(--bet-growth) + 10px)}

.baccarat-dashboard .baccarat-bets,.baccarat-betting-console:not(.is-open) .baccarat-bets{transform:none}
.baccarat-stage .baccarat-tools{margin-left:auto;display:flex;gap:8px;align-items:center}
.baccarat-stage .baccarat-tools button{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;padding:0;margin:0;border:1px solid #d8c9a877;border-radius:50%;background:#141b20bf;color:#eee3c9;font:700 19px Georgia,serif}
#baccarat-dealer-sound svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#baccarat-dealer-sound[aria-pressed=true] .sound-muted,#baccarat-dealer-sound[aria-pressed=false] .sound-waves{display:none}
#baccarat-rules{position:fixed;inset:0;margin:auto;max-height:calc(100dvh - 40px);overflow:auto}
.baccarat-dashboard{--board-height:158px}
.baccarat-room>.baccarat-dashboard{grid-template-columns:minmax(0,.72fr) minmax(380px,1.3fr) minmax(0,1fr);align-items:center;overflow:visible;z-index:6}
.baccarat-bead-board,.baccarat-derived-board{height:var(--board-height);box-sizing:border-box}
.baccarat-bead-board .baccarat-road-panel{height:100%;box-sizing:border-box}
.baccarat-derived-board{grid-template-rows:24px 72px 60px;gap:0}
.baccarat-derived-board .road-big .baccarat-road{--road-size:12px}
.baccarat-derived-board .road-bigEye .baccarat-road,.baccarat-derived-board .road-small .baccarat-road,.baccarat-derived-board .road-cockroach .baccarat-road{--road-size:10px}
.baccarat-bead-board .baccarat-road{--road-size:26px}
.baccarat-dashboard .road-scroll{overflow-x:auto;overflow-y:hidden;overflow-anchor:none;scroll-behavior:auto;scrollbar-width:none;zoom:1}
.baccarat-bead-board .road-scroll{overflow-x:hidden}
.baccarat-dashboard .road-scroll::-webkit-scrollbar{display:none;width:0;height:0}
.baccarat-road-stats{flex-wrap:nowrap;gap:4px;padding:2px 4px;overflow:hidden}
.road-asks{width:auto;justify-content:flex-end}
@media(max-width:1100px){.baccarat-room>.baccarat-dashboard{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);row-gap:28px}.baccarat-betting-console{grid-column:1/-1;grid-row:1}.baccarat-bead-board{grid-column:1;grid-row:2}.baccarat-derived-board{grid-column:2;grid-row:2}}
@media(max-width:760px){.baccarat-room>.baccarat-stage{flex-basis:430px;height:430px;min-height:430px}.baccarat-road-stats{gap:2px;font-size:8px}.road-stat{gap:1px}.road-stat b{font-size:8px}.stat-dot{width:11px;height:11px}.stat-pair{width:10px;height:10px}.road-asks{gap:2px}.road-ask{padding:2px;gap:1px}.road-ask b{font-size:8px}.ask-mark{width:5px;height:5px}}

@media(prefers-reduced-motion:reduce){.baccarat-betting-console{transition:none}}

/* Centered dealer and wide table, matching the supplied live-table references. */
.baccarat-room>.baccarat-dashboard{background-color:#651e29;background-image:repeating-linear-gradient(0deg,transparent 0 2.5px,#14060a0a 2.5px 3px),repeating-linear-gradient(90deg,transparent 0 2.5px,#e8b7aa05 2.5px 3px);border-top:0}
.baccarat-stage{border-bottom:0}
@media(min-width:1101px){
 .baccarat-page .baccarat-room{container-type:inline-size;flex:1 1 0;width:100%;max-width:calc((100dvh - 88px)*1.73);height:auto;min-height:0;padding:10px;overflow:visible}
 .baccarat-room>.baccarat-stage{flex:0 0 auto;aspect-ratio:100/43;height:auto;min-height:0}
 /* Raise the dealer and table together; lower panels retain their layout positions. */
 .baccarat-stage:has(.frame-dealer){--dealer-height:53cqw;--dealer-top:-1cqw;--table-edge:calc(var(--dealer-top) + var(--dealer-height)*.49)}

 .baccarat-room>.baccarat-dashboard{--board-height:9cqw;height:var(--board-height);grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1fr)}
 .baccarat-derived-board{grid-template-rows:24px repeat(2,minmax(0,1fr))}
 .baccarat-derived-board .baccarat-road{--road-size:calc((var(--board-height) - 26px)/12)}
 .baccarat-derived-board .road-big .baccarat-road,.baccarat-derived-board .road-bigEye .baccarat-road,.baccarat-derived-board .road-small .baccarat-road,.baccarat-derived-board .road-cockroach .baccarat-road{--road-size:calc((var(--board-height) - 26px)/12)}
 .baccarat-bead-board .baccarat-road{--road-size:calc((var(--board-height) - 2px)/6)}
 .baccarat-betting-console{--bet-growth:2.5cqw}
 .baccarat-room>.baccarat-wallet{height:6cqw;min-height:0;box-sizing:border-box;background:linear-gradient(#651e29,#211416);border-top:0}
}
@media(prefers-reduced-motion:reduce){.baccarat-dashboard .baccarat-bets{transition:none}}

.baccarat-stage .baccarat-back svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Continuous dealers share one fixed stage; only the sakura veil moves during change. */
.dealer-profile{display:flex;flex-wrap:wrap;align-items:center;gap:5px 12px;margin:0 0 10px;padding:10px 12px 0;color:#dbc8a5;font-size:12px}.dealer-profile strong{font-size:16px;color:#f2dfb8;font-weight: 600;}
.dealer-change{position:absolute;inset:0;z-index:12;pointer-events:none;overflow:hidden;display:grid;place-items:center}.dealer-change[hidden]{display:none}.dealer-change>span{position:relative;z-index:2;padding:13px 32px;border:1px solid #d2b57480;border-radius:8px;background:#1e1724bc;color:#fff3d4;font-size:clamp(18px,2cqw,28px);letter-spacing:.12em;text-shadow:0 2px 8px #000}
/* Individual diagonal paths and local flutter, without a solid color veil. */
.dealer-change-petals{position:absolute;inset:0;opacity:.35;transition:opacity 450ms}
.dealer-change.is-veiled .dealer-change-petals{opacity:1}
.dealer-change-petals i{position:absolute;left:var(--x);top:-15%;width:var(--size);height:calc(var(--size)*1.3);animation:dealer-sakura var(--duration) linear infinite;animation-delay:var(--delay)}
.dealer-change-petals em{display:block;width:100%;height:100%;background:var(--baccarat-petal) center/contain no-repeat;animation:dealer-sakura-flutter var(--flutter) ease-in-out infinite alternate;animation-delay:var(--delay)}
@keyframes dealer-sakura{
 0%{transform:translate(0,-5cqh) rotate(0deg);opacity:0}
 12%{opacity:.9}
 30%{transform:translate(calc(var(--drift)*.3 + var(--sway)),35cqh) rotate(calc(var(--spin)*.25))}
 60%{transform:translate(calc(var(--drift)*.6 - var(--sway)),72cqh) rotate(calc(var(--spin)*.65));opacity:.95}
 85%{opacity:.8}
 100%{transform:translate(var(--drift),125cqh) rotate(var(--spin));opacity:0}
}
@keyframes dealer-sakura-flutter{from{transform:translateX(-8px) rotate(-25deg) scaleX(.45)}to{transform:translateX(8px) rotate(30deg) scaleX(1)}}
.baccarat-stage .frame-dealer{transition:opacity 350ms ease}
@media(prefers-reduced-motion:reduce){.dealer-change-petals i,.dealer-change-petals em{animation:none}.dealer-change-petals{display:none}.baccarat-stage .frame-dealer{transition:none}}
/* Continue the same photographed surface below the stage, including the near rail. */
@media(min-width:1101px){
 .baccarat-room>.baccarat-dashboard{background:#651e29 var(--baccarat-table,none) center calc(-1cqw + 53cqw*.49 - 43cqw)/calc(53cqw*1.9) calc(53cqw*.57) no-repeat}
 .baccarat-room>.baccarat-wallet{background:#1c1615 var(--baccarat-table,none) center calc(-1cqw + 53cqw*.49 - 52cqw)/calc(53cqw*1.9) calc(53cqw*.57) no-repeat}
}

/* The result band replaces the timer at its exact center height. */
.baccarat-stage{--baccarat-notice-top:calc(var(--table-edge) - 12cqh)}
.baccarat-stage .baccarat-countdown,.baccarat-stage .baccarat-announcement{top:var(--baccarat-notice-top)}
.baccarat-announcement{--result-band-height:clamp(24px,2.4cqw,34px);--result-color:35 127 198;position:absolute;left:50%;transform:translateX(-50%);margin-top:calc(var(--result-band-height)/-2);z-index:8;width:clamp(180px,27cqw,360px);max-width:90%;pointer-events:none;text-align:center;color:#fff;text-shadow:0 1px 3px #0009}
.baccarat-announcement[hidden]{display:none}
.baccarat-announcement>strong{display:flex;align-items:center;justify-content:center;height:var(--result-band-height);font-size:clamp(13px,1.4cqw,19px);font-weight:600;letter-spacing:.1em;background:linear-gradient(90deg,transparent,rgb(var(--result-color) / .88) 24% 76%,transparent);box-sizing:border-box;position:relative}
.baccarat-announcement>strong::before,.baccarat-announcement>strong::after{content:"";position:absolute;left:0;right:0;height:4px;pointer-events:none;background:linear-gradient(90deg,transparent 0%,#08080840 12%,#080808d9 30%,#080808ed 50%,#080808d9 70%,#08080840 88%,transparent 100%)}
.baccarat-announcement>strong::before{top:-2px}
.baccarat-announcement>strong::after{bottom:-2px}
.baccarat-announcement[data-outcome="banker"]{--result-color:185 41 51}
.baccarat-announcement[data-outcome="tie"]{--result-color:43 136 78}
.baccarat-announcement #baccarat-my-result{position:absolute;top:calc(100% + 7px);left:0;right:0;white-space:pre-line;font-size:clamp(13px,1.5cqw,20px);line-height:1.45;font-weight:600;color:#f5dfab;text-shadow:0 2px 5px #000,0 0 10px #000}
#baccarat-my-result:empty{display:none}
@media(max-width:760px){.baccarat-stage{--baccarat-notice-top:calc(var(--table-edge) + 5cqh)}}

/* Lobby, table and loading share the same bounded area beside the site sidebar. */
.baccarat-frame{position:relative;isolation:isolate;display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;width:100%;margin:0 auto;padding:10px;box-sizing:border-box;overflow:hidden}
.baccarat-frame>.baccarat-lobby{width:100%;box-sizing:border-box;min-height:0;border:1px solid #75603a;border-radius:16px 16px 0 0;background:radial-gradient(ellipse at 50% 0,#30261d,#110f0e 75%,url(/game/lobby_bg.webp)right center / auto 100% no-repeat, radial-gradient(ellipse at 45% 25%, #314c57, #101e29))}
.baccarat-page .baccarat-frame>.baccarat-room{width:100%;max-width:none;padding:0;overflow:auto}
@media(min-width:1101px){.baccarat-frame{max-width:calc((100dvh - 88px)*1.73)}.baccarat-page .baccarat-frame>.baccarat-room{overflow:visible}}
@media(max-width:760px){.baccarat-frame{padding:5px 6px}.baccarat-frame>.baccarat-asset-loader{inset:5px 6px}}

/* Reserve the same room for balances from zero through 100,000,000 光. */
.baccarat-money-summary{gap:8px}
.baccarat-money-summary>div{flex:0 0 132px;width:132px;min-width:132px;box-sizing:border-box;padding:0;text-align:right}
.baccarat-money-summary small{display:block;margin:0 0 2px;text-align:center;font-weight:600;color:#e4cfa5;text-shadow:0 1px 2px #000}
.baccarat-money-summary strong{display:block;box-sizing:border-box;width:100%;text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:480px){.baccarat-money-summary{gap:4px}.baccarat-money-summary>div{flex-basis:120px;width:120px;min-width:120px}.baccarat-money-summary strong{padding-left:6px;padding-right:6px}}

.baccarat-bets .bet-name{display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1.15}
.baccarat-bets .bet-hanzi{font-family:serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.1}
@media(max-width:760px){.baccarat-bets .bet-hanzi{font-size:17px}}

/* Align the opaque waist edge of each dealer with the common back rail. */
.baccarat-stage .frame-dealer[data-dealer-id="2"]{--dealer-seat-offset:.017}
.baccarat-stage .frame-dealer[data-dealer-id="3"]{--dealer-seat-offset:-.010}
.baccarat-stage .frame-dealer[data-dealer-id="4"]{--dealer-seat-offset:.006}
.baccarat-stage .frame-dealer[data-dealer-id="5"]{--dealer-seat-offset:.019}
.baccarat-stage .frame-dealer[data-dealer-id="6"]{--dealer-seat-offset:-.020}
.baccarat-stage .frame-dealer[data-dealer-id="7"]{--dealer-seat-offset:-.010}
.baccarat-stage .frame-dealer[data-dealer-id="9"]{--dealer-seat-offset:-.005}
.baccarat-stage .frame-dealer[data-dealer-id="10"]{--dealer-seat-offset:.014}

/* Printed felt lettering shares the cards' outward perspective; scores stay readable. */
.baccarat-stage .baccarat-felt-label{display:inline-block;font:bold clamp(15px,1.95cqw,21px) Georgia,serif;letter-spacing:1.4px;transform:perspective(160px) rotateX(38deg) skewX(var(--label-slant));transform-origin:center top;text-shadow:0 1px 1px #38101766}
.baccarat-stage .player-hand{--label-slant:-12deg}
.baccarat-stage .banker-hand{--label-slant:12deg}

