/* ==========================================================================
   REVEAL — aparición de bloques al hacer scroll  ·  js/ui/reveal.js
   Uso:  <div data-reveal>  ·  data-reveal="left|right|zoom"
   ========================================================================== */
[data-reveal] {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity var(--tr-lenta), transform var(--tr-lenta);
  transition-delay: var(--delay, 0s);
  will-change: opacity, transform;
}
[data-reveal].is-visible { opacity: 1; transform: none; }
[data-reveal="left"]  { transform: translateX(-36px); }
[data-reveal="right"] { transform: translateX(36px); }
[data-reveal="zoom"]  { transform: scale(.94); }
[data-reveal="left"].is-visible,
[data-reveal="right"].is-visible,
[data-reveal="zoom"].is-visible { transform: none; }

/* Entrada del hero: se dispara al cerrarse el preloader (body.is-ready) */
.hero [data-hero] {
  opacity: 0; transform: translateY(26px);
  transition: opacity .8s ease, transform .8s ease;
  transition-delay: var(--delay, 0s);
}
body.is-ready .hero [data-hero] { opacity: 1; transform: none; }
