/* Scroll-reveal + micro-interactions */

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .8s var(--ease), transform .8s var(--ease);
  will-change: opacity, transform;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal--delay-1 { transition-delay: .08s; }
.reveal--delay-2 { transition-delay: .16s; }
.reveal--delay-3 { transition-delay: .24s; }
.reveal--delay-4 { transition-delay: .32s; }
.reveal--delay-5 { transition-delay: .40s; }
.reveal--delay-6 { transition-delay: .48s; }

.reveal--left  { transform: translate3d(-24px, 0, 0); }
.reveal--left.is-visible { transform: translate3d(0,0,0); }
.reveal--right { transform: translate3d(24px, 0, 0); }
.reveal--right.is-visible { transform: translate3d(0,0,0); }
.reveal--zoom  { transform: scale(.96); opacity: 0; }
.reveal--zoom.is-visible { transform: scale(1); opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal--left, .reveal--right, .reveal--zoom {
    opacity: 1; transform: none; transition: none;
  }
  .marquee__track, .hero__bg { animation: none !important; }
}

/* Simple fade in for on-load elements */
.fade-in { animation: fade-in .8s var(--ease) both; }
@keyframes fade-in {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Number counter pulse */
.counted { animation: count-pop .6s var(--ease-out); }
@keyframes count-pop {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.04); }
  100% { transform: scale(1); }
}
