/**
 * Sprint 3 — BASE GAME SOUL
 * Production winners: living_world C, scatter_anticipation B, wheel B, jackpot C, chill B
 */

/* ===== Part 1 — Living world (winner C) ===== */

[data-world-variant="c"] .game-stage-bg-smoke {
  opacity: 0.42;
  animation: soul-smoke-drift 18s ease-in-out infinite alternate;
}

[data-world-variant="c"] .game-stage-bg-fog {
  opacity: 0.28;
  background: linear-gradient(180deg, transparent 0%, rgba(8, 12, 24, 0.35) 55%, rgba(4, 6, 14, 0.55) 100%);
}

[data-world-variant="c"] .game-stage-bg-windows {
  opacity: 0.55;
  background-image:
    linear-gradient(90deg, rgba(255, 200, 80, 0.08) 0 2px, transparent 2px 18px),
    linear-gradient(rgba(255, 200, 80, 0.06) 0 2px, transparent 2px 14px);
  background-size: 22px 100%, 100% 18px;
}

[data-world-variant="c"] .game-stage-bg-neon {
  opacity: 0.65;
  filter: blur(1px);
}

.game-stage-bg-floor-sweep {
  position: absolute;
  inset: auto 0 0 0;
  height: 28%;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255, 215, 100, 0.12), transparent);
  opacity: 0;
  transform: translateX(-120%);
}

.rc7-floor-sweep-active .game-stage-bg-floor-sweep {
  animation: soul-floor-sweep 2.2s ease-in-out forwards;
}

@keyframes soul-floor-sweep {
  0% { opacity: 0; transform: translateX(-120%); }
  20% { opacity: 0.55; }
  100% { opacity: 0; transform: translateX(120%); }
}

@keyframes soul-smoke-drift {
  from { transform: translateY(0) scale(1); opacity: 0.35; }
  to { transform: translateY(-8px) scale(1.02); opacity: 0.5; }
}

.rc7-neon-flicker .game-stage-bg-neon {
  animation: soul-neon-flicker 0.22s steps(2) 2;
}

@keyframes soul-neon-flicker {
  0%, 100% { opacity: 0.55; }
  50% { opacity: 0.95; filter: brightness(1.25); }
}

.rc7-world-micro-event .game-stage-bg-sparks {
  animation: soul-micro-spark 0.65s ease-out;
}

@keyframes soul-micro-spark {
  0% { opacity: 0; }
  40% { opacity: 0.35; }
  100% { opacity: 0; }
}

.rc7-world-scatter-pulse--tier2 .game-stage-bg-glow {
  box-shadow: inset 0 0 80px rgba(255, 180, 60, 0.18);
}

.rc7-world-scatter-pulse--tier3 .game-stage-bg-glow {
  box-shadow: inset 0 0 100px rgba(255, 120, 80, 0.28);
  animation: soul-scatter-blast-bg 0.9s ease-out;
}

@keyframes soul-scatter-blast-bg {
  0% { filter: brightness(1); }
  40% { filter: brightness(1.15); }
  100% { filter: brightness(1); }
}

/* ===== Part 2 — Scatter anticipation (winner B) ===== */

[data-scatter-variant="b"] .scatter-first-landing-pulse {
  animation: soul-scatter-first-pulse 0.52s ease-out;
}

@keyframes soul-scatter-first-pulse {
  0% { filter: brightness(1); }
  35% { filter: brightness(1.08); transform: scale(1.008); }
  100% { filter: brightness(1); transform: scale(1); }
}

[data-scatter-variant="b"].scatter-tension-active {
  box-shadow: inset 0 0 0 2px rgba(255, 180, 60, 0.12);
}

[data-scatter-variant="b"].scatter-camera-creep {
  animation: soul-scatter-creep 1.8s ease-in-out infinite alternate;
}

@keyframes soul-scatter-creep {
  from { transform: scale(1); }
  to { transform: scale(1.012); }
}

[data-scatter-variant="b"].scatter-last-reel-drag .pixi-root,
[data-scatter-variant="b"].scatter-last-reel-drag canvas {
  filter: saturate(1.08) brightness(1.04);
}

/* ===== Part 3 — Wheel (winner B) ===== */

[data-wheel-variant="b"] .bonus-wheel-pointer-wrap {
  filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.45));
}

[data-wheel-variant="b"] .bonus-wheel-rim-img {
  filter: drop-shadow(0 0 16px rgba(255, 180, 60, 0.35));
}

[data-wheel-variant="b"] .bonus-wheel-segment.is-lit strong {
  text-shadow: 0 0 12px rgba(255, 215, 100, 0.65);
}

.bonus-wheel-tick-spark {
  position: absolute;
  width: 10px;
  height: 10px;
  margin: -5px 0 0 -5px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0%, rgba(255, 200, 80, 0.8) 40%, transparent 70%);
  pointer-events: none;
  z-index: 12;
}

[data-wheel-variant="b"] .bonus-wheel-result-banner--visible {
  text-shadow: 0 0 24px rgba(255, 215, 100, 0.55);
  font-weight: 900;
}

/* ===== Part 4 — Jackpot host (winner C) ===== */

[data-jackpot-variant="c"] .profitrolya-speech.profitrolya-speech--comic {
  border: 2px solid rgba(255, 215, 100, 0.55);
  background: rgba(12, 16, 28, 0.94);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
  border-radius: 14px 14px 14px 4px;
  padding: 0.55rem 0.75rem;
  max-width: 220px;
}

[data-jackpot-variant="c"] .profitrolya-mustache-gag {
  position: absolute;
  top: -1.2rem;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  color: #f1c40f;
  white-space: nowrap;
}

[data-jackpot-variant="c"] .jackpot-chest-grid .treasure-chest:hover {
  filter: brightness(1.12) drop-shadow(0 0 14px rgba(255, 215, 100, 0.35));
  transform: translateY(-3px);
}

[data-jackpot-variant="c"] .profitrolya-avatar-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: linear-gradient(135deg, #6c5ce7, #a29bfe);
  font-weight: 900;
  font-size: 0.75rem;
  color: #fff;
}

/* ===== Chill Dude courier (winner B) ===== */

[data-chill-variant="b"] .scatter-save-courier {
  position: absolute;
  top: 18%;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 0.35rem;
  z-index: 2;
}

[data-chill-variant="b"] .scatter-save-courier-body {
  position: relative;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(180deg, #74b9ff, #0984e3);
  box-shadow: 0 8px 20px rgba(9, 132, 227, 0.35);
}

[data-chill-variant="b"] .scatter-save-courier-face {
  position: absolute;
  inset: 18% 22%;
  border-radius: 50%;
  background: #ffeaa7;
}

[data-chill-variant="b"] .scatter-save-courier-mustache {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 28px;
  height: 8px;
  margin-left: -14px;
  border-radius: 999px;
  background: #2d3436;
}

[data-chill-variant="b"] .scatter-save-courier-wing {
  width: 22px;
  height: 32px;
  border-radius: 50% 50% 20% 20%;
  background: rgba(255, 255, 255, 0.75);
  animation: soul-courier-flap 0.45s ease-in-out infinite alternate;
}

[data-chill-variant="b"] .scatter-save-courier-bag {
  position: absolute;
  bottom: -1.2rem;
  left: 50%;
  transform: translateX(-50%);
  padding: 0.2rem 0.45rem;
  font-size: 0.58rem;
  font-weight: 900;
  background: #f1c40f;
  color: #111;
  border-radius: 4px;
}

[data-chill-variant="b"] .scatter-save-subline {
  font-size: 0.72rem;
  opacity: 0.82;
  margin-top: 0.35rem;
}

@keyframes soul-courier-flap {
  from { transform: rotate(-12deg); }
  to { transform: rotate(8deg); }
}

.scatter-save-overlay--overshoot .scatter-save-panel {
  animation: soul-chill-overshoot 0.55s ease-out;
}

@keyframes soul-chill-overshoot {
  0% { transform: translateX(-40px); opacity: 0; }
  70% { transform: translateX(8px); }
  100% { transform: translateX(0); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .rc7-floor-sweep-active .game-stage-bg-floor-sweep,
  [data-scatter-variant="b"].scatter-camera-creep,
  [data-chill-variant="b"] .scatter-save-courier-wing {
    animation: none !important;
  }
}
