/* ==========================================================================
   Grangers Recrutement : animations.css
   Keyframes isolées + états de révélation au défilement (IntersectionObserver)
   ========================================================================== */

/* ---------- Révélation au scroll ---------- */
[data-reveal]{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
  will-change:opacity,transform;
}
[data-reveal].is-visible{opacity:1;transform:none}

/* Délais en cascade (enfants) */
[data-reveal-stagger] > *{
  opacity:0;transform:translateY(26px);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
}
[data-reveal-stagger].is-visible > *{opacity:1;transform:none}
[data-reveal-stagger].is-visible > *:nth-child(1){transition-delay:.05s}
[data-reveal-stagger].is-visible > *:nth-child(2){transition-delay:.13s}
[data-reveal-stagger].is-visible > *:nth-child(3){transition-delay:.21s}
[data-reveal-stagger].is-visible > *:nth-child(4){transition-delay:.29s}
[data-reveal-stagger].is-visible > *:nth-child(5){transition-delay:.37s}
[data-reveal-stagger].is-visible > *:nth-child(6){transition-delay:.45s}

/* ---------- Keyframes ---------- */
@keyframes floatUp{
  from{opacity:0;transform:translateY(40px)}
  to{opacity:1;transform:none}
}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

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

@keyframes pulseGold{
  0%,100%{box-shadow:0 0 0 0 rgba(184,148,63,.45)}
  50%{box-shadow:0 0 0 10px rgba(184,148,63,0)}
}

@keyframes marquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

/* Hero : entrée séquencée */
.hero__eyebrow{animation:floatUp .7s var(--ease) both}
.hero__title{animation:floatUp .8s .1s var(--ease) both}
.hero__lead{animation:floatUp .8s .2s var(--ease) both}
.hero__search{animation:floatUp .8s .3s var(--ease) both}
.hero__paths{animation:floatUp .8s .4s var(--ease) both}

/* Badge « live » Connect Jobs */
.live-dot{animation:pulseGold 2.4s var(--ease) infinite}

/* Respect des préférences de mouvement réduit */
@media (prefers-reduced-motion:reduce){
  [data-reveal],[data-reveal-stagger] > *{opacity:1!important;transform:none!important;transition:none!important}
  .hero__eyebrow,.hero__title,.hero__lead,.hero__search,.hero__paths{animation:none}
  .marquee__track{animation:none!important}
  .live-dot{animation:none}
}
