/* ================================================================
   ANIMATIONS — Animaciones de scroll (IntersectionObserver)
   ================================================================ */

[data-animate] {
  opacity: 0;
  transition: opacity 0.75s ease, transform 0.75s cubic-bezier(0.4, 0, 0.2, 1);
}

[data-animate="fade-up"]    { transform: translateY(44px); }
[data-animate="fade-left"]  { transform: translateX(-44px); }
[data-animate="fade-right"] { transform: translateX(44px); }
[data-animate="zoom-in"]    { transform: scale(0.90); }

@media (max-width: 960px) {
  [data-animate="fade-left"]  { transform: translateX(-20px); }
  [data-animate="fade-right"] { transform: translateX(20px); }
}

[data-animate].animated { opacity: 1; transform: none; }

[data-delay="100"] { transition-delay: 0.1s; }
[data-delay="200"] { transition-delay: 0.2s; }
[data-delay="300"] { transition-delay: 0.3s; }
[data-delay="400"] { transition-delay: 0.4s; }
[data-delay="500"] { transition-delay: 0.5s; }
