/* ── Gallery art → in-game cinematic scene (matches lobby cards) ── */
#game-screen,
#roulette-screen,
#setup-screen,
#reels-screen,
#blackjack-screen,
#baccarat-screen,
#starfall-screen {
  position: relative;
  overflow: hidden;
  flex-direction: column;
}

#blackjack-screen .game-scene-content {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

#starfall-screen .game-scene-content {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

#reels-screen .game-scene-content {
  flex: 1;
  min-height: 0;
}

.game-scene {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.game-scene-img {
  position: absolute;
  inset: -2%;
  width: 104%;
  height: 104%;
  object-fit: cover;
  object-position: center 30%;
  display: block;
  animation: scene-ken-burns 24s ease-in-out infinite alternate;
}

@keyframes scene-ken-burns {
  from { transform: scale(1.02) translateY(0); }
  to { transform: scale(1.08) translateY(-1.5%); }
}

.game-scene-vignette {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(13, 17, 23, 0.5) 0%, rgba(13, 17, 23, 0.12) 35%, rgba(13, 17, 23, 0.65) 100%),
    radial-gradient(ellipse 90% 80% at 50% 40%, transparent 0%, rgba(0, 0, 0, 0.45) 100%);
}

.game-scene-fx {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.game-scene .fx-glow {
  box-shadow: inset 0 0 80px rgba(255, 193, 7, 0.08);
  animation: fx-glow-breathe 3s ease-in-out infinite;
}

.game-scene .fx-embers {
  background: linear-gradient(0deg, rgba(229, 57, 53, 0.35) 0%, transparent 50%);
  opacity: 0.5;
  animation: fx-ember-pulse 2.4s ease-in-out infinite;
}

.game-scene .fx-shimmer {
  background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, 0.08) 48%, transparent 65%);
  animation: fx-shimmer-sweep 5s ease-in-out infinite;
}

.game-scene .fx-sparks {
  opacity: 0.4;
  animation: fx-spark-twinkle 2s ease-in-out infinite;
}

.scene-fx-fire .fx-embers,
.scene-fx-fire .fx-sparks,
.scene-fx-jackpot .fx-embers,
.scene-fx-jackpot .fx-sparks { opacity: 0.75; }

.scene-fx-electric .fx-glow {
  box-shadow: inset 0 0 60px rgba(124, 77, 255, 0.15);
}

.scene-fx-crystal .fx-glow {
  box-shadow: inset 0 0 70px rgba(180, 140, 255, 0.18);
}

.scene-fx-gold .fx-embers {
  background: linear-gradient(0deg, rgba(255, 193, 7, 0.3) 0%, transparent 45%);
  opacity: 0.65;
}

.scene-fx-stars .fx-sparks { opacity: 0.7; }

.game-scene-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

/* Glass HUD on top of gallery */
.has-gallery-scene .game-header,
.has-gallery-scene .rl-top,
.has-gallery-scene .rl-history-bar,
.has-gallery-scene .rl-footer {
  background: rgba(13, 17, 23, 0.55);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-color: rgba(255, 193, 7, 0.25);
}

.has-gallery-scene .game-header {
  border-bottom: 1px solid rgba(255, 193, 7, 0.2);
}

.has-gallery-scene #game-screen .table-felt {
  border-color: rgba(255, 193, 7, 0.45);
  box-shadow:
    inset 0 0 50px rgba(0, 0, 0, 0.4),
    0 0 40px rgba(124, 77, 255, 0.15),
    0 12px 40px rgba(0, 0, 0, 0.5);
}

.has-gallery-scene .action-panel {
  background: rgba(13, 17, 23, 0.65);
  border-color: rgba(255, 193, 7, 0.25);
}

.has-gallery-scene .speech-bubble {
  background: rgba(13, 17, 23, 0.62);
  border-color: rgba(255, 193, 7, 0.2);
}

.setup-scene-content {
  align-items: center;
  justify-content: center;
}

.has-gallery-scene .setup-wrap {
  background: rgba(13, 17, 23, 0.72);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 193, 7, 0.25);
  border-radius: 16px;
  margin: 16px;
  padding: 20px;
  max-width: 420px;
  width: calc(100% - 32px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
}

.has-gallery-scene #reels-screen .reels-frame {
  background: rgba(0, 0, 0, 0.35);
}