/* ============================================================
   scroll-animations.css — Animações on-scroll zero dependência
   Substitui AOS (~14KB) por CSS puro + Intersection Observer
   GPU-accelerated: usa apenas transform + opacity
   ============================================================ */

/* Estado inicial — elementos invisíveis até entrarem na viewport */
[data-scroll] {
  opacity: 0;
  transition-property: opacity, transform;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  transition-duration: 700ms;
  will-change: opacity, transform;
}

/* Estado ativo — quando IO detecta visibilidade */
[data-scroll].is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

/* ---- Tipos de animação ---- */

/* fade (só opacidade) */
[data-scroll="fade"] {
  transform: none;
}

/* fade-up */
[data-scroll="fade-up"] {
  transform: translate3d(0, 40px, 0);
}

/* fade-down */
[data-scroll="fade-down"] {
  transform: translate3d(0, -40px, 0);
}

/* fade-left */
[data-scroll="fade-left"] {
  transform: translate3d(40px, 0, 0);
}

/* fade-right */
[data-scroll="fade-right"] {
  transform: translate3d(-40px, 0, 0);
}

/* zoom-in */
[data-scroll="zoom-in"] {
  transform: scale(0.9);
}

/* zoom-out */
[data-scroll="zoom-out"] {
  transform: scale(1.1);
}

/* ---- Delays (data-scroll-delay="100") ---- */
[data-scroll-delay="50"]  { transition-delay: 50ms; }
[data-scroll-delay="100"] { transition-delay: 100ms; }
[data-scroll-delay="150"] { transition-delay: 150ms; }
[data-scroll-delay="200"] { transition-delay: 200ms; }
[data-scroll-delay="250"] { transition-delay: 250ms; }
[data-scroll-delay="300"] { transition-delay: 300ms; }
[data-scroll-delay="400"] { transition-delay: 400ms; }
[data-scroll-delay="500"] { transition-delay: 500ms; }
[data-scroll-delay="600"] { transition-delay: 600ms; }

/* ---- Durações customizadas ---- */
[data-scroll-duration="300"] { transition-duration: 300ms; }
[data-scroll-duration="500"] { transition-duration: 500ms; }
[data-scroll-duration="900"] { transition-duration: 900ms; }
[data-scroll-duration="1200"] { transition-duration: 1200ms; }

/* ---- Acessibilidade ---- */
@media (prefers-reduced-motion: reduce) {
  [data-scroll] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
