/* Entradas ligeras: solo opacidad y transform, propiedades aceleradas por el navegador. */
.reveal{opacity:0;transform:translate3d(0,30px,0);will-change:opacity,transform;transition:opacity .7s cubic-bezier(.22,.7,.2,1),transform .85s cubic-bezier(.22,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.reveal.reveal--card{transform:translate3d(0,24px,0) scale(.985)}
.reveal.reveal--image{transform:translate3d(0,18px,0) scale(.988)}
.reveal.is-visible{opacity:1;transform:translate3d(0,0,0) scale(1);will-change:auto}
/* En móvil no hay desplazamiento: solo un fundido breve para que el scroll se sienta natural. */
@media(max-width:800px){.reveal,.reveal.reveal--card,.reveal.reveal--image{opacity:0;transform:translate3d(0,14px,0);will-change:opacity,transform;transition:opacity .52s ease-out,transform .6s cubic-bezier(.22,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}.reveal.is-visible{opacity:1;transform:translate3d(0,0,0);will-change:auto}}
@media(hover:hover){.product-card,.info-card,.mark-card,.timeline li,.contact-options a{transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s cubic-bezier(.2,.8,.2,1),border-color .35s}.product-card:hover,.info-card:hover,.mark-card:hover,.timeline li:hover,.contact-options a:hover{transform:translate3d(0,-7px,0);box-shadow:0 20px 38px rgba(30,42,14,.15)}.contact-options a:hover{border-color:var(--lime)}.product-card:focus-visible,.contact-options a:focus-visible{outline:3px solid var(--lime);outline-offset:4px}}
@media(prefers-reduced-motion:reduce){.reveal,.reveal.reveal--card,.reveal.reveal--image{opacity:1;transform:none;transition:none;will-change:auto}}
