/* ============================================================
   GiroFeliz — Illustrated Visuals (no real casino photos)
   All visuals are CSS/SVG illustrated, Google PPC safe
   ============================================================ */

/* ─── HERO ILLUSTRATED PANEL ───────────────────────────── */
.hero-illustration {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 100vh;
  background: linear-gradient(145deg, #0f1f1a 0%, #0a3028 40%, #0d1f38 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.hero-illustration::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 30% 40%, rgba(20,128,106,0.2) 0%, transparent 50%),
    radial-gradient(circle at 75% 65%, rgba(232,160,32,0.12) 0%, transparent 45%);
  pointer-events: none;
}

/* Floating emoji orbs */
.hero-orbs {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.orb {
  position: absolute;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: orbFloat linear infinite;
  font-size: 2.2rem;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,0.4));
}
.orb-1  { width:80px; height:80px; top:12%; left:15%; animation-duration:7s; animation-delay:0s; }
.orb-2  { width:60px; height:60px; top:28%; left:72%; animation-duration:9s; animation-delay:-2s; }
.orb-3  { width:90px; height:90px; top:55%; left:20%; animation-duration:8s; animation-delay:-4s; }
.orb-4  { width:55px; height:55px; top:70%; left:60%; animation-duration:6s; animation-delay:-1s; }
.orb-5  { width:70px; height:70px; top:15%; left:45%; animation-duration:10s; animation-delay:-3s; }
.orb-6  { width:50px; height:50px; top:80%; left:35%; animation-duration:7.5s; animation-delay:-5s; }
.orb-7  { width:65px; height:65px; top:40%; left:82%; animation-duration:8.5s; animation-delay:-2.5s; }
.orb-8  { width:75px; height:75px; top:65%; left:78%; animation-duration:9.5s; animation-delay:-1.5s; }

/* Center main illustration */
.hero-center-illus {
  position: relative;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.illus-main-circle {
  width: 220px;
  height: 220px;
  border-radius: 50%;
  background: linear-gradient(145deg, #1a5c46, #0d3a2a);
  border: 3px solid rgba(232,160,32,0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 6rem;
  box-shadow: 0 0 60px rgba(20,128,106,0.3), 0 0 120px rgba(232,160,32,0.1), 0 20px 60px rgba(0,0,0,0.5);
  animation: pulseGlow 3s ease-in-out infinite;
  position: relative;
}
.illus-main-circle::before {
  content: '';
  position: absolute;
  inset: -8px;
  border-radius: 50%;
  border: 2px dashed rgba(232,160,32,0.2);
  animation: rotateSlow 20s linear infinite;
}
.illus-ring {
  position: absolute;
  inset: -20px;
  border-radius: 50%;
  border: 1.5px dashed rgba(20,128,106,0.25);
  animation: rotateSlow 30s linear infinite reverse;
}
.illus-ring-dots {
  position: absolute;
  inset: -32px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Small floating emojis around main */
.illus-tag {
  background: rgba(232,160,32,0.12);
  border: 1px solid rgba(232,160,32,0.3);
  color: var(--amber);
  font-family: var(--ff-display);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 6px 18px;
  border-radius: var(--r-full);
}

/* ─── ILLUSTRATED STRIP ─────────────────────────────────── */
.illus-strip {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 4px;
  overflow: hidden;
}
.illus-strip-panel {
  height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  transition: transform 0.4s ease;
}
.illus-strip-panel:hover { transform: scale(1.02); z-index: 2; }
.illus-strip-panel:first-child { border-radius: var(--r-lg) 0 0 var(--r-lg); }
.illus-strip-panel:last-child  { border-radius: 0 var(--r-lg) var(--r-lg) 0; }

/* Panel 1 — Slots themed (fruits/stars) */
.strip-slots {
  background: linear-gradient(135deg, #1a0d2e, #2d1060, #1a0d2e);
}
.strip-slots::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 50%, rgba(155,92,246,0.25) 0%, transparent 65%);
}

/* Panel 2 — Stars/achievement */
.strip-stars {
  background: linear-gradient(135deg, #0a1f14, #0d3828, #0a1f14);
}
.strip-stars::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 50%, rgba(20,128,106,0.3) 0%, transparent 65%);
}

/* Panel 3 — Fun/celebration */
.strip-fun {
  background: linear-gradient(135deg, #1a0a00, #2e1800, #1a1a00);
}
.strip-fun::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 50%, rgba(232,160,32,0.2) 0%, transparent 65%);
}

.strip-emoji-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 20px;
  max-width: 100%;
}
.strip-emoji-item {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 14px;
  width: 100%;
  max-width: 64px;
  aspect-ratio: 1;
  justify-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.9rem;
  animation: emojiPop 0.5s ease both, emojiFloat 3s ease-in-out infinite;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.strip-emoji-item:nth-child(2) { animation-delay: 0.1s, 0.4s; }
.strip-emoji-item:nth-child(3) { animation-delay: 0.2s, 0.8s; }
.strip-emoji-item:nth-child(4) { animation-delay: 0.15s, 0.2s; }
.strip-emoji-item:nth-child(5) { animation-delay: 0.05s, 0.6s; }
.strip-emoji-item:nth-child(6) { animation-delay: 0.25s, 1s; }
.strip-emoji-item:nth-child(7) { animation-delay: 0.3s, 0.3s; }
.strip-emoji-item:nth-child(8) { animation-delay: 0.1s, 0.7s; }
.strip-emoji-item:nth-child(9) { animation-delay: 0.2s, 0.5s; }
.strip-label {
  position: absolute;
  bottom: 16px;
  left: 0; right: 0;
  text-align: center;
  font-family: var(--ff-display);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.35);
  z-index: 3;
}

/* ─── GAME ILLUSTRATED CARDS ────────────────────────────── */
/* Slots illustrated panel */
.game-illus-slots {
  background: linear-gradient(135deg, #140826, #261050, #0d0d2e);
  position: relative;
  overflow: hidden;
  height: 100%;
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.game-illus-slots::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 25% 30%, rgba(155,92,246,0.2) 0%, transparent 50%),
    radial-gradient(circle at 75% 70%, rgba(232,160,32,0.12) 0%, transparent 45%);
}

.slot-machine-illus {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.slm-cabinet {
  background: linear-gradient(180deg, #2a1560 0%, #1a0d3d 100%);
  border: 2px solid rgba(232,160,32,0.4);
  border-radius: 18px;
  padding: 14px 16px 18px;
  box-shadow: 0 0 40px rgba(155,92,246,0.3), 0 8px 24px rgba(0,0,0,0.5);
  position: relative;
}
.slm-cabinet::before {
  content: '★  GIRO FELIZ  ★';
  position: absolute;
  top: -1px; left: 50%; transform: translateX(-50%);
  background: linear-gradient(90deg, var(--amber), #f5c842);
  color: #1a0030;
  font-family: var(--ff-display);
  font-size: 0.5rem;
  font-weight: 800;
  letter-spacing: 2px;
  padding: 3px 10px;
  border-radius: 0 0 8px 8px;
  white-space: nowrap;
}
.slm-screen {
  background: rgba(0,0,0,0.5);
  border: 2px solid rgba(232,160,32,0.25);
  border-radius: 10px;
  padding: 10px;
  display: flex;
  gap: 6px;
  margin-bottom: 10px;
}
.slm-reel {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(232,160,32,0.2);
  border-radius: 8px;
  width: 56px;
  height: 66px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  animation: slmSpin 2.5s ease-in-out infinite;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.4);
}
.slm-reel:nth-child(2) { animation-delay: 0.3s; }
.slm-reel:nth-child(3) { animation-delay: 0.6s; }
.slm-btn-row { display: flex; justify-content: center; }
.slm-btn {
  background: linear-gradient(180deg, #e83a3a, #a01010);
  border: 2px solid rgba(255,100,100,0.4);
  border-radius: 50%;
  width: 36px;
  height: 36px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.slm-lights {
  display: flex;
  justify-content: center;
  gap: 6px;
}
.slm-light {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  animation: blinkLight 1s ease-in-out infinite;
}
.slm-light:nth-child(1) { background: #ff4444; }
.slm-light:nth-child(2) { background: var(--amber); animation-delay: 0.2s; }
.slm-light:nth-child(3) { background: #44ff88; animation-delay: 0.4s; }
.slm-light:nth-child(4) { background: #4488ff; animation-delay: 0.6s; }
.slm-light:nth-child(5) { background: #ff44ff; animation-delay: 0.8s; }

/* Stars floating around machine */
.slm-stars {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.slm-star {
  position: absolute;
  font-size: 1.2rem;
  animation: starDrift 4s ease-in-out infinite;
  opacity: 0.6;
}
.slm-star:nth-child(1) { top:10%; left:8%; animation-delay:0s; }
.slm-star:nth-child(2) { top:20%; right:12%; animation-delay:0.5s; }
.slm-star:nth-child(3) { bottom:25%; left:12%; animation-delay:1s; }
.slm-star:nth-child(4) { bottom:15%; right:8%; animation-delay:1.5s; }
.slm-star:nth-child(5) { top:45%; left:4%; animation-delay:0.8s; }
.slm-star:nth-child(6) { top:35%; right:5%; animation-delay:1.2s; }

/* Poker illustrated panel */
.game-illus-poker {
  background: linear-gradient(135deg, #061a0e, #0a2d18, #041208);
  position: relative;
  overflow: hidden;
  height: 100%;
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.game-illus-poker::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 40%, rgba(20,128,106,0.25) 0%, transparent 55%),
    radial-gradient(circle at 20% 80%, rgba(232,160,32,0.08) 0%, transparent 40%);
}

.poker-table-illus {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.pt-felt {
  width: 240px;
  height: 130px;
  background: radial-gradient(ellipse at 50% 40%, #1e7a40 0%, #0d4020 100%);
  border-radius: 999px;
  border: 4px solid rgba(255,255,255,0.1);
  position: relative;
  box-shadow: 0 8px 30px rgba(0,0,0,0.6), inset 0 2px 6px rgba(255,255,255,0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.pt-felt::before {
  content: '';
  position: absolute;
  inset: 8px;
  border-radius: 999px;
  border: 1.5px solid rgba(255,255,255,0.07);
}
.pt-cards {
  display: flex;
  gap: 3px;
  align-items: flex-end;
}
.pt-card {
  width: 34px;
  height: 48px;
  background: #fff;
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 900;
  box-shadow: 0 3px 8px rgba(0,0,0,0.4);
  animation: ptCardPop 3s ease-in-out infinite;
  position: relative;
}
.pt-card:nth-child(1) { transform: rotate(-12deg); }
.pt-card:nth-child(2) { transform: rotate(-6deg); animation-delay: 0.2s; }
.pt-card:nth-child(3) { transform: rotate(0deg); animation-delay: 0.4s; }
.pt-card:nth-child(4) { transform: rotate(6deg); animation-delay: 0.6s; }
.pt-card:nth-child(5) { transform: rotate(12deg); animation-delay: 0.8s; }
.pt-card.r { color: #dc2626; }
.pt-card.b { color: #111; }
.pt-chips-row {
  display: flex;
  gap: 8px;
  margin-top: 4px;
}
.pt-chip {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 3px solid rgba(255,255,255,0.2);
  box-shadow: 0 3px 8px rgba(0,0,0,0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  animation: chipSpin 4s linear infinite;
}
.pt-chip:nth-child(2) { animation-delay: -1s; }
.pt-chip:nth-child(3) { animation-delay: -2s; }
.pt-chip.red  { background: radial-gradient(circle, #ef4444, #7f1d1d); }
.pt-chip.blue { background: radial-gradient(circle, #3b82f6, #1e3a8a); }
.pt-chip.gold { background: radial-gradient(circle, var(--amber), #a05000); }

/* Floating decorative emojis */
.pt-floats {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.pt-float {
  position: absolute;
  font-size: 1.4rem;
  animation: ptFloat 5s ease-in-out infinite;
  opacity: 0.55;
}
.pt-float:nth-child(1) { top:8%;  left:6%;   animation-delay:0s; }
.pt-float:nth-child(2) { top:18%; right:10%; animation-delay:0.7s; }
.pt-float:nth-child(3) { bottom:22%; left:8%;  animation-delay:1.4s; }
.pt-float:nth-child(4) { bottom:12%; right:6%; animation-delay:0.4s; }
.pt-float:nth-child(5) { top:48%; left:3%;   animation-delay:1s; }
.pt-float:nth-child(6) { top:55%; right:4%;  animation-delay:1.8s; }

/* ─── ANIMATIONS ─────────────────────────────────────────── */
@keyframes orbFloat {
  0%   { transform: translateY(0) rotate(0deg); opacity:0.7; }
  25%  { transform: translateY(-15px) rotate(5deg); }
  50%  { transform: translateY(-8px) rotate(-3deg); opacity:0.9; }
  75%  { transform: translateY(-20px) rotate(4deg); }
  100% { transform: translateY(0) rotate(0deg); opacity:0.7; }
}
@keyframes pulseGlow {
  0%,100% { box-shadow: 0 0 40px rgba(20,128,106,0.25), 0 0 80px rgba(232,160,32,0.08), 0 20px 60px rgba(0,0,0,0.5); }
  50%      { box-shadow: 0 0 60px rgba(20,128,106,0.4), 0 0 120px rgba(232,160,32,0.15), 0 20px 60px rgba(0,0,0,0.5); }
}
@keyframes rotateSlow {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
@keyframes emojiPop {
  from { opacity:0; transform:scale(0.5); }
  to   { opacity:1; transform:scale(1); }
}
@keyframes emojiFloat {
  0%,100% { transform:translateY(0); }
  50%     { transform:translateY(-6px); }
}
@keyframes slmSpin {
  0%,100% { transform:translateY(0); }
  30%     { transform:translateY(-6px) scale(1.05); }
  60%     { transform:translateY(3px); }
}
@keyframes blinkLight {
  0%,100% { opacity:1; transform:scale(1); }
  50%     { opacity:0.3; transform:scale(0.8); }
}
@keyframes starDrift {
  0%,100% { transform:translateY(0) rotate(0deg); opacity:0.6; }
  50%     { transform:translateY(-12px) rotate(180deg); opacity:0.9; }
}
@keyframes ptCardPop {
  0%,100% { transform:translateY(0); }
  50%     { transform:translateY(-5px); }
}
@keyframes chipSpin {
  0%   { transform:rotate(0deg); }
  100% { transform:rotate(360deg); }
}
@keyframes ptFloat {
  0%,100% { transform:translateY(0) scale(1); opacity:0.55; }
  50%     { transform:translateY(-10px) scale(1.1); opacity:0.75; }
}

/* ─── CONTEXT: inside .game-h-img wrapper ───────────────── */
/* Ensures illustrations fill the card panel completely */
.game-h-img.game-illus-slots,
.game-h-img.game-illus-poker {
  width: 100%;
  min-height: 320px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ─── CONTEXT: inside .game-card-visual wrapper (index.html) */
.game-card-visual .game-illus-slots,
.game-card-visual .game-illus-poker {
  position: absolute;
  inset: 0;
  min-height: unset;
  height: 100%;
  width: 100%;
  border-radius: inherit;
}

/* Responsive */
@media (max-width:900px) {
  .illus-strip { grid-template-columns:1fr; gap:4px; }
  .illus-strip-panel { height:180px; border-radius:0 !important; }
  .illus-strip-panel:first-child { border-radius:var(--r-lg) var(--r-lg) 0 0 !important; }
  .illus-strip-panel:last-child  { border-radius:0 0 var(--r-lg) var(--r-lg) !important; }
}
@media (max-width:768px) {
  .hero-illustration { min-height:360px; }
  .illus-main-circle { width:160px; height:160px; font-size:4rem; }
  .orb { font-size:1.4rem; }
}
@media (max-width:480px) {
  .strip-emoji-grid { gap: 8px; padding: 16px; }
  .strip-emoji-item { max-width: 52px; font-size: 1.5rem; }
}
