/* =========================
   REVEAL ANIMATIONS (SAFE)
   Solo anima lo que tenga .reveal
   ========================= */

/* Base: fade + slide up sutil */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity .7s ease, transform .7s ease;
  will-change: opacity, transform;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Variantes opcionales (por si querés usar en imágenes o cosas puntuales) */
.reveal-left {
  opacity: 0;
  transform: translateX(-50px);
  transition: opacity .8s ease, transform .8s ease;
  will-change: opacity, transform;
}

.reveal-left.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.reveal-right {
  opacity: 0;
  transform: translateX(50px);
  transition: opacity .8s ease, transform .8s ease;
  will-change: opacity, transform;
}

.reveal-right.is-visible {
  opacity: 1;
  transform: translateX(0);
}

/* Accesibilidad */
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal-left,
  .reveal-right {
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}