/* ==========================================================================
   Kamai Event — Révélation des titres mot par mot (blur-in).
   transforms / opacity / filter uniquement (60fps).
   HOME : l'état caché est posé par GSAP (inline) → sans JS, titres visibles.
   PAGE PRIX (tarifs.html) : pas de GSAP → état caché + cascade en CSS,
   armés uniquement sous .js-split (classe posée par le script inline).
   Dépend de css/tokens.css.
   ========================================================================== */

/* Le mot : inline-block pour autoriser translate/blur sans casser le wrap. */
.rvl-word{ display:inline-block; will-change:auto; }

/* ---- Page Prix : h1 « Grille tarifaire » animé en CSS pur ---- */
.js-split .tarifs__head h1 .rvl-word{
  opacity:0; transform:translateY(.18em); filter:blur(8px);
  animation:rvlBlurIn .9s cubic-bezier(.22,.61,.36,1) forwards;
  animation-delay:calc(var(--i,0) * .12s + .1s);
}
@keyframes rvlBlurIn{
  to{ opacity:1; transform:none; filter:blur(0); }
}

/* ---- Mouvement réduit : titres nets, aucune animation (home ET page Prix) ---- */
@media (prefers-reduced-motion: reduce){
  .rvl-word,
  .js-split .tarifs__head h1 .rvl-word{
    opacity:1 !important; transform:none !important; filter:none !important;
    animation:none !important; will-change:auto !important;
  }
}
