/* ============================================
   RIHET L'BLAD - Animations
   ============================================ */

/* === Scroll Reveal === */
.reveal {
  opacity: 0;
  transform: translateY(35px);
  transition: opacity .7s cubic-bezier(.25,.8,.25,1),
              transform .7s cubic-bezier(.25,.8,.25,1);
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity .7s cubic-bezier(.25,.8,.25,1),
              transform .7s cubic-bezier(.25,.8,.25,1);
}
.reveal-left.visible {
  opacity: 1;
  transform: translateX(0);
}

.reveal-right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity .7s cubic-bezier(.25,.8,.25,1),
              transform .7s cubic-bezier(.25,.8,.25,1);
}
.reveal-right.visible {
  opacity: 1;
  transform: translateX(0);
}

/* Stagger */
.stagger-1 { transition-delay: .1s; }
.stagger-2 { transition-delay: .2s; }
.stagger-3 { transition-delay: .3s; }
.stagger-4 { transition-delay: .4s; }

/* === Hero Entrance === */
@keyframes heroFadeUp {
  from { opacity: 0; transform: translateY(25px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes heroBgZoom {
  from { transform: scale(1.08); }
  to { transform: scale(1); }
}

.hero-bg-img {
  animation: heroBgZoom 12s ease-out forwards;
}
.hero-title {
  animation: heroFadeUp .8s ease-out .3s both;
}
.hero-subtitle {
  animation: heroFadeUp .8s ease-out .55s both;
}
.hero-cta {
  animation: heroFadeUp .8s ease-out .75s both;
}

/* === Reduced Motion === */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .reveal, .reveal-left, .reveal-right {
    opacity: 1; transform: none; transition: none;
  }
}
