/* Reveal on scroll */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s cubic-bezier(.22,.9,.3,1), transform .9s cubic-bezier(.22,.9,.3,1); }
.reveal.is-in { opacity: 1; transform: translateY(0); }

/* Keyframes */
@keyframes floatY {
  0%, 100% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-30px) translateX(20px); }
}
@keyframes scrollLine {
  0% { transform: translateY(-100%); }
  100% { transform: translateY(250%); }
}
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes heroZoom {
  from { transform: scale(1.12); }
  to { transform: scale(1); }
}
.hero__img { animation: heroZoom 2.4s cubic-bezier(.22,.9,.3,1) both; }

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
  .reveal { opacity: 1; transform: none; }
}
