/* Shared game presentation; game scripts retain ownership of outcomes and controls. */
.game-modal,.game-modal * { box-sizing:border-box; }
.game-modal { padding:24px 16px !important; }
.game-modal .game-panel { width:100% !important;max-width:960px !important;padding:24px 28px !important;max-height:none !important;overflow:visible !important;background:radial-gradient(ellipse at top left,#273749 0,transparent 55%),linear-gradient(145deg,#171f2c,#0c1420) !important;border:1px solid #c9ab6755 !important;box-shadow:0 30px 100px #000a,inset 0 1px #ffffff12 !important; }
.game-panel > h2 { margin-top:0;padding:0 26px;letter-spacing:1px; }
.game-panel > p:last-child { color:#a2aab6 !important; }
.game-layout { display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:center; }
.game-layout > *, .game-controls > * { min-width:0; }
.game-table { position:relative;isolation:isolate;min-height:285px;border:8px solid #25201b;border-radius:24px;padding:34px 18px 14px;background:radial-gradient(ellipse at 45% 20%,#34776755,transparent 70%),repeating-linear-gradient(35deg,#ffffff04 0 1px,transparent 1px 3px),linear-gradient(140deg,#123e35,#09251f);box-shadow:0 10px 22px #0005,inset 0 0 0 2px #b9a16a88,inset 0 0 35px #0007;display:flex;flex-direction:column;justify-content:center; }
.game-table::before { content:'';position:absolute;inset:15px;border:1px solid #d1bb7b26;border-radius:48%;pointer-events:none;z-index:-1; }
.game-table-label { position:absolute;top:11px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:2.5px;color:#c7bd98; }
.game-table [id$="Result"] { font-size:.9rem !important;line-height:1.5;overflow-wrap:anywhere; }
.game-controls { padding:20px;border:1px solid #ffffff0d;border-radius:16px;background:linear-gradient(145deg,#ffffff06,#00000014); }
.game-controls label { line-height:1.5; }
.game-modal input[type=number] { background:#08111c99 !important;box-shadow:inset 0 2px 4px #0004; }
.game-modal button { touch-action:manipulation; }
.game-modal button:disabled { opacity:.55;cursor:wait !important; }
.game-modal button:focus-visible,.game-modal input:focus-visible,.game-modal summary:focus-visible { outline:2px solid #ffe2a0;outline-offset:3px; }
.game-modal .how-to-play { background:#ffffff04;border-color:#c9ab6733; }
.game-modal .htp-body ul { display:grid;grid-template-columns:1fr 1fr;gap:2px 28px; }
.game-note { font-size:.85rem;line-height:1.6;color:#b4bdc8; }
/* Printed card faces retain the exact rank and suit supplied by each game. */
.game-modal [data-card-label] { position:relative;border:1px solid #eee2cc !important;background:linear-gradient(125deg,#fffef8,#eeeae0) !important;box-shadow:0 2px 0 #b8b3a7,0 6px 10px #0006,inset 0 0 0 3px #fff8;font-family:Georgia,serif;flex-shrink:0; }
.game-modal [data-card-label]::before,.game-modal [data-card-label]::after { content:attr(data-card-label);position:absolute;top:3px;left:4px;font:700 9px Georgia,serif; }
.game-modal [data-card-label]::after { top:auto;left:auto;right:4px;bottom:3px;transform:rotate(180deg); }
.game-modal [data-card-back] { position:relative;color:transparent !important;border:3px solid #ece1cb !important;background:repeating-linear-gradient(45deg,#a58b5144 0 1px,transparent 1px 6px),repeating-linear-gradient(-45deg,#a58b5144 0 1px,#192d46 1px 6px) !important;box-shadow:0 3px 0 #b8b3a7,0 8px 14px #0005; }
.game-modal [data-card-back]::after { content:'\25c6';position:absolute;inset:8px;border:1px solid #cbb37499;display:grid;place-items:center;color:#cbb374;font-size:20px; }
#bjDealerCards,#bjPlayerCards { min-height:78px; }
.game-modal [id$="Cards"]:empty::before { content:'AWAITING DEAL';font-size:10px;letter-spacing:2px;color:#c7d6cc66;align-self:center; }
#diceFace,.game-modal .sb-die { border:1px solid #fff8;background:linear-gradient(145deg,#fffdf4,#d9d2bf) !important;color:#242a32 !important;box-shadow:inset 2px 3px 5px #fff,inset -4px -5px 8px #a59c8580,3px 6px 0 #aca48f,8px 14px 20px #0006 !important;font-family:Georgia,serif;font-variant-numeric:tabular-nums; }
.game-modal .sb-die { width:62px !important;height:62px !important;position:relative; }
.game-modal .sb-die[data-pips] { font-size:0 !important; }
.game-modal .sb-die[data-pips]::after { content:'';width:9px;height:9px;border-radius:50%;background:#25303a;box-shadow:var(--pips);position:absolute;left:11px;top:11px; }
.game-modal .sb-die[data-pips="1"]::after { left:25px;top:25px; }
.game-modal .sb-die[data-pips="2"] { --pips:28px 28px #25303a; }
.game-modal .sb-die[data-pips="3"] { --pips:14px 14px #25303a,28px 28px #25303a; }
.game-modal .sb-die[data-pips="4"] { --pips:28px 0 #25303a,0 28px #25303a,28px 28px #25303a; }
.game-modal .sb-die[data-pips="5"] { --pips:28px 0 #25303a,14px 14px #25303a,0 28px #25303a,28px 28px #25303a; }
.game-modal .sb-die[data-pips="6"] { --pips:28px 0 #25303a,0 14px #25303a,28px 14px #25303a,0 28px #25303a,28px 28px #25303a; }
#rlWheel { position:relative;isolation:isolate;width:200px !important;height:200px !important;background:radial-gradient(circle,#c2984a 0,#654518 25%,transparent 26%) !important;color:#fff0c2 !important;text-shadow:0 2px 3px #000;font-size:1.8rem !important; }
#rlWheel::before { content:'';position:absolute;inset:0;background:url('../images/roulette-wheel.svg') center/contain;z-index:-1;filter:drop-shadow(0 9px 8px #0009);transform:rotate(var(--wheel-angle,0deg)); }
#rlWheel::after { content:'';position:absolute;top:0;left:calc(50% - 5px);border-left:5px solid transparent;border-right:5px solid transparent;border-top:12px solid #fff2bd; }
.game-roulette:has(#rlPlayBtn:disabled) #rlWheel::before { animation:table-wheel 1.3s linear infinite; }
.game-dice:has(#dcRollBtn:disabled) #diceFace,.game-sicbo:has(#sbRollBtn:disabled) .sb-die { animation:table-dice .35s ease-in-out infinite alternate; }
#abFace { width:85px !important;height:120px !important;border-radius:9px !important;border:4px solid #eee2c9;background:repeating-linear-gradient(45deg,#b99a5844 0 1px,transparent 1px 7px),linear-gradient(135deg,#2a405d,#14263e) !important;box-shadow:3px 4px 0 #bdb3a1,7px 10px 18px #0008;color:#e0c58b; }
.game-crash .game-table { background:linear-gradient(#549bce12 1px,transparent 1px),linear-gradient(90deg,#549bce12 1px,transparent 1px),radial-gradient(ellipse at bottom left,#234d73,#0a172b);background-size:24px 24px,24px 24px,auto;border-color:#152235; }
#crMultiplierDisplay { font-size:clamp(2.5rem,5vw,4rem) !important;font-variant-numeric:tabular-nums;text-shadow:0 0 30px #ffd20033; }
.game-jackpot .game-table { background:radial-gradient(ellipse at top,#663b6855,transparent),linear-gradient(145deg,#271b35,#120e20);border-color:#4d3925; }
.game-jackpot .reel-window { background:linear-gradient(#b6ac96,#fff7e7 35%,#fff7e7 65%,#b6ac96) !important;border-color:#cfa557 !important;box-shadow:inset 0 9px 12px #0005,0 0 0 3px #614725,0 8px 15px #0008; }
.game-jackpot .reel-window::after { content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(#0005,transparent 30%,transparent 70%,#0005);border-top:1px solid #ffecb0;z-index:1; }
.game-modal#coinFlipModal .cf-stage { background:radial-gradient(ellipse at 45% 20%,#59756155,transparent 60%),repeating-linear-gradient(110deg,#ffffff03 0 1px,transparent 1px 4px),linear-gradient(150deg,#143b31,#09251f);border:6px solid #29241d;box-shadow:inset 0 0 0 1px #c9ab6788,inset 0 0 40px #0008,0 10px 20px #0005; }
#coinFlipModal .cf-controls { padding:20px;border:1px solid #ffffff0d;border-radius:16px;background:#ffffff03; }
@keyframes table-wheel { to { transform:rotate(360deg); } }
@keyframes table-dice { to { transform:translateY(-8px) rotate(7deg); } }
@media(max-width:700px) { .game-modal .game-panel { padding:22px 16px !important; } .game-layout { grid-template-columns:minmax(0,1fr);gap:16px; } .game-table { min-height:225px; } .game-controls { padding:14px; } .game-modal .htp-body ul { grid-template-columns:1fr; } #rlWheel { width:170px !important;height:170px !important; } }
@media(prefers-reduced-motion:reduce) { .game-modal *, .game-modal *::before,.game-modal *::after { animation:none !important;transition:none !important; } }

@media(min-width:701px) { .game-modal [data-card-label],.game-modal [data-card-back] { min-width:52px; } }

/* Locally hosted photographic artwork; preserve the existing card height. */
#gamesGrid .game-card-art { background:#111e2b; }
#gamesGrid .game-card-art::before { content:none; }
#gamesGrid .game-card-art::after { background:linear-gradient(180deg,#07122622,transparent 45%,#07122666); }
#gamesGrid .game-card-art img { display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .4s ease; }
#gamesGrid .game-card:hover .game-card-art img { transform:scale(1.05); }
#gamesGrid .game-card:focus-visible { outline:3px solid #ffd200;outline-offset:4px; }
@media(prefers-reduced-motion:reduce) { #gamesGrid .game-card-art img { transition:none; } #gamesGrid .game-card:hover .game-card-art img { transform:none; } }
