/* FUNFOR.YOU luxury theme bridge.
 * Cosmetic only: theme artwork and material styling never touch game state. */
:root {
  --luxury-accent:#168c81;
  --luxury-gold:#d4a84f;
  --luxury-ivory:#fff8df;
  --luxury-black:#030806;
  --luxury-gold-cta:url('/assets/luxury-themes-20/shared/gold-cta.png');
}

html[data-luxury-theme] body {
  --accent:var(--luxury-accent);
  --party-emerald:var(--luxury-accent);
}

.theme-mascot-unavailable,
body.theme-without-mascot #squishyMascots,
body.theme-without-mascot .turn-banner:not(.turn-banner-fallback) img {
  display:none !important;
}

/* Theme pickers use the supplied table art as the source-of-truth preview. */
.theme-grid,
.casino-inline-theme-grid {
  grid-template-columns:repeat(auto-fit,minmax(128px,1fr)) !important;
}

.theme-option,
.casino-inline-theme-card {
  border-color:color-mix(in srgb,var(--luxury-accent) 34%,#b99342) !important;
  background:
    linear-gradient(155deg,rgba(255,255,255,.035),transparent 38%),
    linear-gradient(180deg,#10271f,#020d09) !important;
  box-shadow:inset 0 1px 0 rgba(255,244,202,.16),0 8px 18px rgba(0,0,0,.42);
}

.theme-option.selected,
.casino-inline-theme-card.selected {
  border-color:#f1cb65 !important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--luxury-accent) 38%,transparent),0 0 22px rgba(235,187,75,.38) !important;
}

.theme-preview-image,
.casino-inline-theme-card img {
  object-fit:contain !important;
}

/* The supplied backdrops are images, never elastic CSS skins. */
#pokerScreen .desktop-poker-frame,
#pokerScreen .mobile-poker-frame,
#blackjackScreen .theme-frame,
#casinoTableGameScreen .theme-frame {
  object-fit:contain !important;
  object-position:center !important;
  pointer-events:none !important;
}

#blackjackScreen.blackjack-reference .blackjack-table.card-game-stage {
  background:#00140e !important;
}

#casinoTableGameScreen[data-game="baccarat"] .casino-game-stage,
#casinoTableGameScreen[data-game="pok_deng"] .casino-game-stage,
#casinoTableGameScreen[data-game="sic_bo"] .casino-game-stage,
#casinoTableGameScreen[data-game="sic-bo"] .casino-game-stage,
#casinoTableGameScreen[data-game="6-and-1"] .casino-game-stage,
#casinoTableGameScreen[data-game="six_and_one"] .casino-game-stage,
#casinoTableGameScreen[data-game="thai_hi_lo"] .casino-game-stage {
  background-color:#00140e !important;
  background-image:var(--luxury-table-desktop) !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
  background-size:contain !important;
}

@media (max-width:767px) {
  #casinoTableGameScreen[data-game="baccarat"] .casino-game-stage,
  #casinoTableGameScreen[data-game="pok_deng"] .casino-game-stage,
  #casinoTableGameScreen[data-game="sic_bo"] .casino-game-stage,
  #casinoTableGameScreen[data-game="sic-bo"] .casino-game-stage,
  #casinoTableGameScreen[data-game="6-and-1"] .casino-game-stage,
  #casinoTableGameScreen[data-game="six_and_one"] .casino-game-stage,
  #casinoTableGameScreen[data-game="thai_hi_lo"] .casino-game-stage {
    background-image:var(--luxury-table-portrait) !important;
  }
}

/* The surround sits behind the authoritative live rotor, preserving pockets,
 * ball motion and the exact result geometry. */
#casinoTableGameScreen[data-game="roulette"] .roulette-wheel {
  overflow:visible !important;
}

#casinoTableGameScreen[data-game="roulette"] .luxury-roulette-surround {
  position:absolute;
  inset:-19%;
  z-index:0;
  display:block;
  width:138%;
  height:138%;
  object-fit:contain;
  filter:drop-shadow(0 12px 18px rgba(0,0,0,.72));
  pointer-events:none;
  user-select:none;
}

#casinoTableGameScreen[data-game="roulette"] .roulette-wheel-bowl,
#casinoTableGameScreen[data-game="roulette"] .roulette-rotor,
#casinoTableGameScreen[data-game="roulette"] .roulette-ball-orbit,
#casinoTableGameScreen[data-game="roulette"] .roulette-spindle {
  position:absolute;
}

/* Dice cups are decorative cover art; real dice remain separate DOM nodes. */
#casinoTableGameScreen[data-game="chui-niu"] .dice-cup img,
.cup-dice-app .your-cup img,
.cup-dice-app .player-cup-avatar img {
  object-fit:contain !important;
  filter:drop-shadow(0 14px 20px rgba(0,0,0,.72)) drop-shadow(0 0 14px color-mix(in srgb,var(--luxury-accent) 35%,transparent));
}

/* Live denomination text stays readable regardless of decorative chip art. */
.shared-chip-tray > .chip-option {
  position:relative !important;
  isolation:isolate;
}

.shared-chip-tray > .chip-option.luxury-chip-material-only .luxury-chip-value {
  position:absolute !important;
  z-index:5 !important;
  left:50% !important;
  bottom:8% !important;
  display:grid !important;
  place-items:center;
  min-width:62% !important;
  min-height:28% !important;
  margin:0 !important;
  padding:1px 5px !important;
  transform:translateX(-50%);
  border:1px solid rgba(132,94,32,.88) !important;
  border-radius:999px !important;
  color:#15130e !important;
  background:linear-gradient(180deg,#fffef4,#e8dfc9) !important;
  box-shadow:0 2px 4px rgba(0,0,0,.66) !important;
  font:900 clamp(14px,1.55vw,25px)/1 Arial,sans-serif !important;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.04em;
  white-space:nowrap;
  pointer-events:none;
}

/* Supplied chip PNGs already contain their denomination. Never draw a second
 * cream value plate over the artwork; retain the text only for CSS fallback
 * chips used by themes without an image. */
.shared-chip-tray > .chip-option:not(.luxury-chip-material-only) .luxury-chip-value {
  display:none !important;
}

.shared-chip-tray > .chip-option.luxury-chip-material-only {
  border:3px solid #d8b565 !important;
  border-radius:50% !important;
  background:
    repeating-conic-gradient(rgba(255,255,255,.5) 0 8deg,transparent 8deg 31deg),
    radial-gradient(circle at 35% 28%,color-mix(in srgb,var(--luxury-accent) 82%,white),var(--luxury-accent) 46%,#09130f 72%) !important;
  box-shadow:inset 0 2px 3px rgba(255,255,255,.45),inset 0 -4px 6px rgba(0,0,0,.62),0 5px 8px rgba(0,0,0,.65) !important;
}

/* Tangible controls with stable action colours. */
#pokerScreen .controls-row .action-button,
#blackjackScreen .controls-row .action-button,
#casinoTableGameScreen button:not(.roulette-bet-anchor):not(.roulette-straight-target),
.party-stage button {
  box-shadow:inset 0 2px 0 rgba(255,255,255,.18),inset 0 -4px 7px rgba(0,0,0,.42),0 3px 0 rgba(24,14,4,.72) !important;
}

#pokerScreen .controls-row .action-button:enabled:active,
#blackjackScreen .controls-row .action-button:enabled:active,
#casinoTableGameScreen button:enabled:active,
.party-stage button:enabled:active {
  transform:translateY(2px) scale(.985);
}

#pokerScreen .controls-row .action-button:focus-visible,
#blackjackScreen .controls-row .action-button:focus-visible,
#casinoTableGameScreen button:focus-visible,
.party-stage button:focus-visible {
  outline:3px solid #fff !important;
  outline-offset:3px !important;
}

/* Party Wheel keeps its server-built SVG wedges. Only the stationary frame,
 * pointer and button artwork changes with the selected visual family. */
html[data-luxury-theme] .wheel-frame[data-art-ready] {
  position:relative;
  width:100%;
  aspect-ratio:1;
  padding:0 !important;
  overflow:hidden;
  border:0 !important;
  border-radius:0 !important;
  background:none !important;
  box-shadow:none !important;
}

html[data-luxury-theme] .wheel-frame[data-art-ready] > .wheel-frame-art {
  position:absolute;
  inset:0;
  z-index:5;
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
}

html[data-luxury-theme] .wheel-frame[data-art-ready] .wheel-rotor {
  position:absolute;
  z-index:2;
  top:18%;
  left:18%;
  width:64%;
  height:64%;
}

html[data-luxury-theme] .wheel-frame[data-art-ready] .wheel-centre {
  z-index:6;
  inset:42%;
}

html[data-luxury-theme] .wheel-pointer[data-art-ready] {
  z-index:8;
  top:0;
  width:18%;
  height:auto;
  aspect-ratio:1;
  filter:drop-shadow(0 7px 8px rgba(0,0,0,.72));
}

html[data-luxury-theme] .wheel-pointer[data-art-ready]::before,
html[data-luxury-theme] .wheel-pointer[data-art-ready]::after,
html[data-luxury-theme] .wheel-pointer[data-art-ready] > span {
  display:none !important;
}

html[data-luxury-theme] .wheel-pointer[data-art-ready] > img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

html[data-luxury-theme] .wheel-panel.is-spinning .wheel-pointer[data-art-ready] {
  animation:none !important;
}

html[data-luxury-theme] .spin-button[data-art-ready] {
  position:relative;
  display:block;
  width:min(100%,410px);
  min-width:0;
  aspect-ratio:3 / 1;
  min-height:44px;
  margin:2px auto 0;
  padding:0 14% !important;
  overflow:visible;
  border:0 !important;
  color:#251503 !important;
  background:none !important;
  box-shadow:none !important;
  filter:drop-shadow(0 10px 14px rgba(0,0,0,.55));
}

html[data-luxury-theme] .spin-button[data-art-ready] > img {
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
}

html[data-luxury-theme] .spin-button[data-art-ready] > span { display:none; }
html[data-luxury-theme] .spin-button[data-art-ready] strong,
html[data-luxury-theme] .spin-button[data-art-ready] small {
  position:absolute;
  z-index:1;
  left:15%;
  width:70%;
  color:#251503;
  line-height:1;
  text-align:center;
  text-shadow:0 1px rgba(255,255,255,.45);
  white-space:nowrap;
}

html[data-luxury-theme] .spin-button[data-art-ready] strong {
  top:43%;
  transform:translateY(-50%);
  font-size:clamp(17px,1.45vw,24px);
}

html[data-luxury-theme] .spin-button[data-art-ready] small {
  top:61%;
  font-size:clamp(7px,.55vw,9px);
}

/* Final shared betting-rail repair. Baccarat and Pok Deng both render the
 * same six square PNG buttons, so one bounded rule fixes both pages. */
#casinoTableGameScreen[data-game="baccarat"] .baccarat-table-chip-tray,
#casinoTableGameScreen[data-game="pok_deng"] #pokDengChips {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:clamp(8px,.8vw,14px) !important;
  width:100% !important;
  overflow:visible !important;
}

#casinoTableGameScreen[data-game="baccarat"] .baccarat-table-chip-tray > .chip-option,
#casinoTableGameScreen[data-game="pok_deng"] #pokDengChips > .chip-option {
  flex:0 0 clamp(66px,4.6vw,86px) !important;
  width:clamp(66px,4.6vw,86px) !important;
  min-width:clamp(66px,4.6vw,86px) !important;
  max-width:86px !important;
  height:clamp(66px,4.6vw,86px) !important;
  min-height:clamp(66px,4.6vw,86px) !important;
  max-height:86px !important;
  padding:1px !important;
  border:0 !important;
  border-radius:50% !important;
  background:transparent !important;
  box-shadow:none !important;
}

#casinoTableGameScreen[data-game="baccarat"] .baccarat-table-chip-tray > .chip-option > img,
#casinoTableGameScreen[data-game="pok_deng"] #pokDengChips > .chip-option > img {
  display:block;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
}

#casinoTableGameScreen[data-game="baccarat"] #baccaratTableConfirm::before,
#casinoTableGameScreen[data-game="pok_deng"] #pokDengConfirm::before {
  content:'\2726';
  display:inline-block;
  margin-right:.55em;
  color:#fff0a6;
  filter:drop-shadow(0 0 5px rgba(255,211,82,.72));
}

/* The charm PNG is transparent; leaderboard hosts must not add a rectangular
 * backing or rectangular shadow around it. */
.baccarat-leaderboard .lucky-charm-attachment,
.pok-reference-leaderboard .lucky-charm-attachment,
.baccarat-leaderboard .lucky-charm-touch-target,
.pok-reference-leaderboard .lucky-charm-touch-target {
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

/* Pok Deng's history and exit are one footer row on desktop. Remove the old
 * viewport-sized gap that pushed the pair off-grid. */
@media (min-width:901px) {
  #casinoTableGameScreen[data-game="pok_deng"] .pok-reference-footer {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(180px,230px) !important;
    align-items:stretch !important;
    gap:14px !important;
    width:100% !important;
    margin:14px 0 0 !important;
  }

  #casinoTableGameScreen[data-game="pok_deng"] .pok-reference-footer > .pok-reference-history,
  #casinoTableGameScreen[data-game="pok_deng"] .pok-reference-footer > .pok-reference-exit {
    width:100% !important;
    height:100% !important;
    min-height:76px !important;
    margin:0 !important;
  }
}

/* Keep ranks large and suits unmistakable without altering card data. */
#pokerScreen .card,
#blackjackScreen .card,
#casinoTableGameScreen .mini-casino-card {
  border-color:#b79b5c !important;
  background-color:#fffdf5 !important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.88),0 5px 10px rgba(0,0,0,.58) !important;
}

#pokerScreen .card-rank,
#blackjackScreen .card-rank {
  font-weight:1000 !important;
}

@media (max-width:600px) {
  .theme-grid,
  .casino-inline-theme-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .shared-chip-tray > .chip-option.luxury-chip-material-only .luxury-chip-value {
    bottom:5% !important;
    min-height:25% !important;
    font-size:clamp(11px,3.7vw,16px) !important;
  }

  #casinoTableGameScreen[data-game="baccarat"] .baccarat-table-chip-tray,
  #casinoTableGameScreen[data-game="pok_deng"] #pokDengChips {
    gap:clamp(3px,1vw,6px) !important;
    overflow:visible !important;
  }

  #casinoTableGameScreen[data-game="baccarat"] .baccarat-table-chip-tray > .chip-option,
  #casinoTableGameScreen[data-game="pok_deng"] #pokDengChips > .chip-option {
    flex:1 1 0 !important;
    width:clamp(46px,14vw,58px) !important;
    min-width:0 !important;
    max-width:58px !important;
    height:clamp(46px,14vw,58px) !important;
    min-height:clamp(46px,14vw,58px) !important;
    max-height:58px !important;
  }

  #casinoTableGameScreen[data-game="roulette"] .luxury-roulette-surround {
    inset:-13%;
    width:126%;
    height:126%;
  }
}

@media (prefers-reduced-motion:reduce) {
  html[data-luxury-theme] *,
  html[data-luxury-theme] *::before,
  html[data-luxury-theme] *::after {
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}


/* Pok Deng footer final alignment repair. */
@media (min-width:901px) {
  #casinoTableGameScreen[data-game="pok_deng"] .pok-reference-footer {
    align-items:start !important;
  }

  #casinoTableGameScreen[data-game="pok_deng"] .pok-reference-footer > .pok-reference-history,
  #casinoTableGameScreen[data-game="pok_deng"] .pok-reference-footer > .pok-reference-exit {
    align-self:start !important;
    height:auto !important;
    min-height:76px !important;
  }
}
