/* Reference coordinates are kept in one proportional plane: 779 x 320. */
.casino-table{container-type:size;--field-width:min(70cqw,141.2cqh);--field-height:min(28.755cqw,58cqh)}
.playing-field{position:absolute;left:50%;top:28%;width:var(--field-width);height:var(--field-height);transform:translateX(-48.84467266%);container-type:inline-size}
/* The source cloth is split at 50%; the SVG divider is x380.5 of 779. */
#card-shoe-origin{position:absolute;left:88.3%;top:11.4%;width:1px;height:1px;pointer-events:none}
.table-brand{top:1%;height:30%;display:block}
.table-brand img{height:100%;max-height:100%;min-height:0;object-fit:contain}
.bonus-spot .spot-stake{top:74%}
/* Match visible medallions, rather than their differently padded PNG canvases.
   Sevens: 1140x990 at (198,0) in 1536x1024; Poker: 1309x1099 at (31,22)
   in 1374x1145. Keep the Sevens contain fit as the common reference. */
.poker-spot{container-type:size}
.poker-spot>.bonus-illustration,.poker-spot>.segment-shape-effect{
 --bonus-reference-width:min(100cqw,150cqh);
 inset:auto!important;left:50%!important;top:50%!important;
 width:var(--bonus-reference-width)!important;height:calc(var(--bonus-reference-width)/1.2)!important;max-width:none;
 transform-box:border-box;transform-origin:0 0;
 transform:scale(.7790417303,.8058106802) translate(-49.8908296943%,-51.5608486613%);
}
.bonus-result,.status-bar .has-result #status-message{padding:4px 9px;border:1px solid #b9944a55;border-radius:8px;background:#140d08bf;color:#ffe7aa;font:600 clamp(10px,.85vw,14px)/1.35 Arial,sans-serif;text-align:center;text-shadow:0 1px 3px #000;pointer-events:none}
.bonus-result{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);width:max-content;max-width:58%}
.bonus-result.no-payout{color:#d3c1a1;white-space:nowrap;max-width:100%}
.field-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;filter:drop-shadow(0 2px 2px #0009)}
.field-art path{stroke:url(#gold-metal);stroke-width:3;stroke-linejoin:round;vector-effect:non-scaling-stroke;fill:#0000000d}
.field-art .red-outline{fill:#9506130a}.field-art .black-outline{fill:#0001}.mobile-field{display:none}
/* The card overlay spans the felt; only the SLAM card takes pointer input. */
.playing-field .deal-zone{left:0;width:100%;top:0;height:100%;display:block;pointer-events:none}
.playing-field .bet-prompt{
  position:absolute;left:50%;top:28%;transform:translate(-50%,-50%);z-index:50;
  width:max-content;max-width:90%;padding:12px 22px;border:1px solid #eac56b;border-radius:9px;
  background:linear-gradient(135deg,#19140bf5,#080807f5);box-shadow:0 5px 24px #000b,inset 0 1px #fff2ad22;
  color:#ffedb0;font:700 clamp(11px,2cqw,20px)/1.2 Arial,sans-serif;letter-spacing:.06em;text-align:center;
  text-shadow:0 2px 2px #000;pointer-events:none;
}
@media(max-width:600px) and (orientation:portrait){.playing-field .bet-prompt{top:19%;padding:10px 14px;font-size:clamp(11px,3cqw,15px)}}
.playing-field .slam-slot{pointer-events:auto}
.playing-field .hand{position:absolute;top:15.2%;width:24.5%;transform-origin:50% 50%}
.playing-field .red-hand{left:17.5%;transform:rotate(3deg) skewX(-5deg)}
.playing-field .black-hand{left:55.8%;transform:rotate(-3deg) skewX(5deg)}
.playing-field .cards{gap:5%;padding:0}
.playing-field .card-slot{aspect-ratio:.84;border:2px solid #e5bc61;border-radius:5px;box-shadow:inset 0 0 1px #fff0b0,0 0 1px #9a5e15}
.playing-field .red-hand .card-slot,.playing-field .black-hand .card-slot{transform:none}
.playing-field .red-hand .empty-face{color:#b8001899}
.hand-cards{position:relative}
.hand-score{position:absolute;top:52%;width:6cqw;height:6cqw;border:2px solid #fff8eb;border-radius:5px;background:#100e0d69;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 2px 9px #0006;color:white}
.red-hand .hand-score{left:-12cqw;transform:translateY(-50%) skewX(5deg) rotate(-3deg)}
.black-hand .hand-score{right:-12cqw;transform:translateY(-50%) skewX(-5deg) rotate(3deg)}
.hand-score>small{font:700 .85cqw/1.4 Arial,sans-serif;letter-spacing:.08cqw;color:#fff8eb}
.hand-score .score{background:none;border:0;border-radius:0;color:white;min-width:0;height:auto;font:700 3cqw/1.1 Arial,sans-serif;font-variant-numeric:tabular-nums;margin-top:1px}
.playing-field .hand-heading{margin-top:1.05cqw;font:bold 2.3cqw/1 Georgia,serif;letter-spacing:0}
.playing-field .hand-heading img{display:block;height:1em;width:auto;max-width:100%;object-fit:contain;pointer-events:none}
.hand-score{translate:0 var(--score-clearance,0px)}
.playing-field .hand-caption{display:block;margin-top:.25cqw;font-size:1.2cqw;letter-spacing:.05cqw;line-height:1}
.playing-field .slam-area{position:absolute;left:44.74467266%;top:14%;width:8.2%;text-align:center}
.playing-field .slam-area>strong,.playing-field .slam-area>small{position:relative;left:50%;width:max-content;max-width:none;transform:translateX(-50%);margin-left:0;margin-right:0;white-space:nowrap;filter:blur(.3px)}
.playing-field .slam-area>strong{margin-top:1cqw;font-size:1.6cqw;line-height:1;letter-spacing:0;color:#fff;text-align:center}
.playing-field .slam-area>small{margin-top:.3cqw;font-size:1.03cqw;letter-spacing:0;line-height:1.15;color:#fff;text-align:center}
.playing-field .slam-slot{aspect-ratio:66/80;isolation:isolate;transform-style:flat}
.playing-field .slam-slot.ready,.playing-field .slam-slot.ready:hover{animation:none;transform:none;perspective:none;overflow:visible;box-shadow:inset 0 0 2px #fff0b0,0 0 7px 1px #ffbd56a6}
.playing-field .slam-slot.ready:after{content:"";position:absolute;inset:-2px;border:2px solid #fff5ce;border-radius:inherit;box-shadow:0 0 7px 2px #fff2bb,0 0 19px 7px #ffbb43e6,0 0 32px 10px #ed850e80,inset 0 0 6px #ffdc88;opacity:1;pointer-events:none;z-index:2;animation:slam-breathe 2.8s ease-in-out infinite}
@keyframes slam-breathe{
 0%,100%{opacity:.4;box-shadow:0 0 3px 1px #fff2bb,0 0 8px 2px #ffbb43a6,0 0 14px 3px #ed850e40,inset 0 0 3px #ffdc88}
 50%{opacity:1;box-shadow:0 0 7px 2px #fff2bb,0 0 19px 7px #ffbb43e6,0 0 32px 10px #ed850e80,inset 0 0 6px #ffdc88}
}
.casino-table.reduced-motion .slam-slot.ready:after{animation:none;opacity:.75}
.playing-field .slam-slot.is-placeholder{border:2px solid #fff0bf;border-radius:5px;background:#090604aa;box-shadow:0 0 3px #fff6cd,0 0 8px 1px #ff941be6,inset 0 0 5px #ff8f29b3;animation:none}
.slam-marker-art{position:absolute;width:90%;height:64%;max-width:none;left:5%;top:18%;display:block;pointer-events:none;filter:drop-shadow(0 0 2px #ff9c36)}
.playing-field .main-betting{left:0;width:100%;top:42.8125%;height:55%;display:grid;grid-template-columns:48.01026958% 1.668806162% 50.32092426%}
.playing-field .side-name{top:58%;left:59.4%;right:auto;width:17.15cqw;background:none;transform:translate(calc(-50.427% - 6px),calc(-54.787% - 4px));filter:none;pointer-events:none}
.playing-field .side-name img{display:block;width:100%;height:auto}
.playing-field .red-spot .side-name{aspect-ratio:1521/1034}
.playing-field .black-spot .side-name{aspect-ratio:1681/935;top:58%;left:36.9%;right:auto;width:21.66cqw;transform:translate(calc(-51.011% + 1px),calc(-53.690% - 3px))}
.playing-field .side-symbol{display:none}
.playing-field .black-spot .side-symbol{left:40%}
.playing-field .main-amount{top:54.61%;right:9%;transform:translateY(-10%)}
.playing-field .black-spot .main-amount{right:auto;left:9%}
.playing-field .main-spot.selected .side-name{filter:none}
.playing-field .main-amount .empty-wager-label{display:none}
.wager-profit{display:block;margin-top:5px;text-align:center;color:#fff2aa;font:700 10px/1.2 Arial,sans-serif;white-space:nowrap;text-shadow:0 2px 3px #000}
.casino-table .status-bar{top:97.25%;left:18%;width:64%;min-height:0;transform:translateY(-50%);gap:2px;flex-direction:column}
.casino-table .status-bar p{line-height:1.2}
/* Keep the original line height so the Net / Details link stays on the rim. */
.casino-table .status-bar #status{position:relative;width:100%;height:1.2em}
.status-bar .has-result #status-message{position:absolute;left:50%;top:50%;width:max-content;max-width:100%;transform:translate(-50%,calc(-50% - 15px))}
.casino-table .status-bar .text-button{padding:0;line-height:1.2}
.table-bottom{justify-content:center}
@media(max-width:1100px){
 .casino-table{--field-width:min(82cqw,141.2cqh);--field-height:min(33.685cqw,58cqh)}
 .table-brand{top:1%;height:30%}
}
/* Actual visible medallion/caption bounds now own score clearance on resize;
   there are no viewport-width guesses for outboard score positions. */
@media(max-width:760px){
 .casino-table{--field-width:min(96cqw,141.2cqh);--field-height:min(39.435cqw,58cqh)}
 .playing-field{top:34%}
 .table-brand{top:5%;height:26%}.bonus-spot{top:20%;height:17%}
 .hand-score{border-width:1.5px}.hand-score>small{font-size:1cqw}.hand-score .score{font-size:3.2cqw}
}
@media(max-width:520px){
 .game-stage{min-height:1000px}.casino-table{height:1000px}
 .table-brand{top:6%;height:16%}.bonus-spot{top:20%;height:12%}
 .bonus-result{top:calc(100% + 2px);max-width:100%;font-size:8px;padding:3px 5px;line-height:1.25}
 .status-bar .has-result #status-message{font-size:8px;padding:3px 5px;line-height:1.25}
 .playing-field{left:2%;width:96%;top:33%;height:58%;transform:none}
 .desktop-field{display:none}.mobile-field{display:block}.field-art path{stroke-width:2}
 .playing-field .deal-zone{left:14%;width:72%;top:3%;height:auto;display:grid;grid-template-columns:1fr;gap:12px}
 .playing-field .hand{position:relative;top:auto;left:auto;width:100%;transform:none}
 .playing-field .cards{gap:8%;padding:0}.playing-field .card-slot{aspect-ratio:5/7}
 .playing-field .slam-slot{aspect-ratio:66/80}
 .playing-field .hand-heading{font-size:15px;margin-top:10px}.playing-field .hand-caption{font-size:6px;margin-top:4px}
 .playing-field .slam-area{position:relative;left:auto;top:auto;width:60px;margin:0 auto;display:block}
 .playing-field .slam-area>strong{margin:8px 0 0;font-size:10px;line-height:1.1;text-align:center;white-space:nowrap}.playing-field .slam-area>small{margin:3px 0 0;font-size:7px;line-height:1.1;text-align:center;white-space:nowrap}
 .hand-score{width:min(33px,9.2cqw);height:46px}.red-hand .hand-score{left:-13.33cqw;transform:translateY(-50%)}.black-hand .hand-score{right:-13.33cqw;transform:translateY(-50%)}
 .hand-score>small{font-size:6px;letter-spacing:.5px}.hand-score .score{font-size:min(22px,6.1cqw)}
 .playing-field .main-betting{top:70.9090909%;height:23.03030303%;grid-template-columns:48.88888889% 2.22222222% 48.88888889%}
 .playing-field .side-name{top:54%;width:25.64cqw}.playing-field .black-spot .side-name{top:54%;width:30.39cqw}
 .playing-field .main-amount{top:63.3%;right:7%}.playing-field .black-spot .main-amount{left:6%}
 .casino-table .status-bar{top:97.25%;left:10%;width:80%}
 .round-actions,.side-selector{left:50%}.wallet,.total-bet{min-width:87px}
 .round-button>small{display:block;font-size:5px;letter-spacing:0;margin-top:0}
 .wager-profit{font-size:8px;margin-top:3px}
}

/* Publisher wordmark stays inside the dark strip above the felt's gold edge. */
.topbar .wordmark{position:absolute;top:2px;left:24px;width:auto;height:clamp(36px,calc(6.4dvh - 9.6px),48px);aspect-ratio:200/67;filter:none}
.topbar nav{margin-left:auto}
@media(max-width:1100px){.topbar .wordmark{left:16px}}
@media(max-width:760px){.topbar .wordmark{left:10px;height:32px}}
