/* ===== Animaciones por scroll (repetibles) ===== */
.reveal{
  opacity: 0;
  will-change: opacity, transform;
  transition:
    opacity 1.4s ease,
    transform 1.4s cubic-bezier(.22,.9,.2,1);

  /* ✅ evita “saltos” raros con transform */
  transform-origin: center;
}

/* ✅ evita scroll horizontal por transforms */
html, body { overflow-x: clip; } /* mejor que hidden si el navegador lo soporta */
@supports not (overflow-x: clip){
  html, body { overflow-x: hidden; }
}

/* ===== Desktop / general ===== */
.reveal.from-left{  transform: translate3d(-120px,0,0); }
.reveal.from-right{ transform: translate3d(120px,0,0); }
.reveal.from-bottom{transform: translate3d(0,70px,0); }
.reveal.zoom-text{  transform: scale(.92); }

/* Visible */
.reveal.is-visible{
  opacity: 1;
  transform: none;
}

/* ===== ✅ MÓVIL: NO mover lateral (para que no “des-centre”) ===== */
@media (max-width: 640px){
  /* En móvil convierte left/right a slide desde abajo */
  .reveal.from-left,
  .reveal.from-right{
    transform: translate3d(0,18px,0);
  }

  .reveal.from-bottom{ transform: translate3d(0,18px,0); }
  .reveal.zoom-text{ transform: scale(.97); }

  /* Un poco más rápido en móvil */
  .reveal{
    transition:
      opacity .9s ease,
      transform .9s cubic-bezier(.22,.9,.2,1);
  }
}

/* Accesibilidad */
@media (prefers-reduced-motion: reduce){
  .reveal{
    opacity: 1;
    transform: none;
    transition: none;
  }
}
