/* ── KEYFRAMES ── */
@keyframes float-card-1 {
  0%, 100% { transform: translateX(-50%) rotate(-8deg) translateY(0px); }
  50% { transform: translateX(-50%) rotate(-10deg) translateY(-12px); }
}

@keyframes float-card-2 {
  0%, 100% { transform: translateX(-50%) rotate(4deg) translateY(0px); }
  50% { transform: translateX(-50%) rotate(6deg) translateY(-8px); }
}

@keyframes float-card-3 {
  0%, 100% { transform: translateX(-50%) rotate(-2deg) translateY(0px); }
  50% { transform: translateX(-50%) rotate(-4deg) translateY(-15px); }
}

@keyframes float-piece {
  0% {
    transform: translateY(0px) rotate(0deg);
    opacity: 0;
  }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% {
    transform: translateY(-80px) rotate(360deg);
    opacity: 0;
  }
}

@keyframes scroll-pulse {
  0%, 100% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.2); }
}

@keyframes fade-up {
  from {
    opacity: 0;
    transform: translateY(32px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fade-left {
  from {
    opacity: 0;
    transform: translateX(-40px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fade-right {
  from {
    opacity: 0;
    transform: translateX(40px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes ambient-shift {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 1; }
}

@keyframes gold-shimmer {
  0% { background-position: -200% center; }
  100% { background-position: 200% center; }
}

/* ── REVEAL CLASSES ── */
.reveal-up,
.reveal-left,
.reveal-right {
  opacity: 0;
  will-change: opacity, transform;
}

.reveal-up.is-visible {
  animation: fade-up 0.7s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.reveal-left.is-visible {
  animation: fade-left 0.7s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.reveal-right.is-visible {
  animation: fade-right 0.7s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* ── DELAY UTILITIES ── */
.delay-1 { animation-delay: 0.1s !important; }
.delay-2 { animation-delay: 0.2s !important; }
.delay-3 { animation-delay: 0.35s !important; }
.delay-4 { animation-delay: 0.5s !important; }

/* ── HERO INITIAL VISIBILITY ── */
.hero .reveal-up,
.hero .reveal-right {
  opacity: 0;
}

.hero-loaded .reveal-up {
  animation: fade-up 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.hero-loaded .reveal-right {
  animation: fade-right 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* ── SMOOTH HOVER TRANSITIONS (global) ── */
* {
  transition-property: color, background-color, border-color, box-shadow;
  transition-duration: var(--transition-fast);
}

/* reset transition for specific properties */
.game-card,
.service-card,
.testimonial-card,
.gallery-img-wrap,
.gallery-img-wrap img,
.why-img,
.btn,
.team-card,
.value-card,
.rule-card,
.mobile-menu,
.site-header,
.hamburger span {
  transition: all var(--transition-base);
}

/* ── GRADIENT ANIMATION ── */
.cta-ambient {
  animation: ambient-shift 8s ease-in-out infinite;
}

.hero-ambient {
  animation: ambient-shift 12s ease-in-out infinite;
}