/* ====================================================
   DAMEYO — animations.css
   Keyframes et classes de révélation au scroll

   Sommaire :
     1.  Keyframes globaux
     2.  Classes .reveal (scroll reveal)
     3.  Délais utilitaires
==================================================== */


/* ====================================================
   1. KEYFRAMES GLOBAUX
==================================================== */

/* Pulsation de l'indicateur de scroll */
@keyframes scrollPulse {
  0%,  100% { opacity: 0.2; transform: scaleY(0.8); }
  50%        { opacity: 1;   transform: scaleY(1);   }
}

/* Fondu entrant (panneaux menu) */
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* Pulsation du badge "Limité" */
@keyframes badgePulse {
  0%,  100% { box-shadow: 0 0 0 0 rgba(245, 166, 35, 0.6); }
  50%        { box-shadow: 0 0 0 8px rgba(245, 166, 35, 0); }
}

/* Apparition du tampon Halal (scale + rotation) */
@keyframes stampIn {
  0%   { opacity: 0; scale: 0.4; rotate: -15deg; }
  60%  { scale: 1.08; rotate: -3deg;   }
  80%  { scale: 0.97; rotate: -4.5deg; }
  100% { opacity: 1; scale: 1;   rotate: -4deg;  }
}

/* Lévitation douce du tampon Halal */
@keyframes stampFloat {
  0%,  100% { transform: rotate(-4deg) translateY(0px);  }
  50%        { transform: rotate(-3.5deg) translateY(-5px); }
}

/* Balancement de l'emoji ☪️ */
@keyframes iconSwing {
  0%,  100% { transform: rotate(0deg);   }
  25%        { transform: rotate(-12deg); }
  75%        { transform: rotate(10deg);  }
}


/* ====================================================
   2. CLASSES DE RÉVÉLATION AU SCROLL
   État initial : invisible
   Classe .visible ajoutée par animations.js via
   IntersectionObserver quand l'élément entre en vue
==================================================== */

.reveal {
  opacity     : 0;
  transform   : translateY(40px);
  transition  : opacity 0.7s ease, transform 0.7s ease;
  will-change : opacity, transform;
}

.reveal--left  { transform: translateX(-60px); }
.reveal--right { transform: translateX(60px);  }

/* État visible */
.reveal.visible {
  opacity   : 1;
  transform : translate(0);
}


/* ====================================================
   3. DÉLAIS UTILITAIRES
==================================================== */

.delay-1 { transition-delay: 0.15s; }
.delay-2 { transition-delay: 0.30s; }
.delay-3 { transition-delay: 0.45s; }
