/* ON Motion Kit — animaciones fluidas y accesibles. Copia a site/ y enlázalo; úsalo con on-motion.js. */
:root { --ease-out: cubic-bezier(.16, 1, .3, 1); --ease-in-out: cubic-bezier(.65, 0, .35, 1); }
html { scroll-behavior: smooth; }
[data-reveal] { opacity: 0; transform: translateY(20px); transition: opacity .6s var(--ease-out), transform .6s var(--ease-out); transition-delay: var(--d, 0s); will-change: opacity, transform; }
[data-reveal="left"] { transform: translateX(-32px); }
[data-reveal="right"] { transform: translateX(32px); }
[data-reveal="zoom"] { transform: scale(.94); }
[data-reveal].is-in { opacity: 1; transform: none; }
.js-off [data-reveal] { opacity: 1; transform: none; }
/* Portada: entrada solo con CSS (no depende de JS ni del scroll), rápida para no retrasar la lectura */
@keyframes on-enter { from { opacity: 0; transform: translateY(14px); } }
[data-enter] { animation: on-enter .5s var(--ease-out) both; animation-delay: var(--d, 0s); }
[data-enter="2"] { --d: .08s; } [data-enter="3"] { --d: .16s; } [data-enter="4"] { --d: .24s; }
[data-parallax] { will-change: transform; }
.header { transition: background-color .4s var(--ease-out), box-shadow .4s var(--ease-out), padding .4s var(--ease-out), backdrop-filter .4s; }
.header.is-scrolled { backdrop-filter: saturate(1.4) blur(14px); box-shadow: 0 10px 30px -18px rgba(0,0,0,.35); }
.btn-lift { transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out), background-color .2s; }
.btn-lift:hover { transform: translateY(-2px); }
.btn-lift:active { transform: scale(.97); transition-duration: .1s; }
.img-zoom { overflow: hidden; }
.img-zoom img { transition: transform 1.2s var(--ease-out); }
.img-zoom:hover img { transform: scale(1.05); }
@keyframes on-float { 50% { transform: translateY(-8px); } }
.float { animation: on-float 6s var(--ease-in-out) infinite; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  [data-reveal], [data-enter] { opacity: 1; transform: none; }
}
