/* Motion: keyframes + scroll-reveal utility (compositor-friendly props only) */

@keyframes floatY {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-14px);
  }
}

@keyframes floatYSmall {
  0%,
  100% {
    transform: translateY(0) rotate(var(--tilt, 0deg));
  }
  50% {
    transform: translateY(-8px) rotate(var(--tilt, 0deg));
  }
}

@keyframes blobPulse {
  0%,
  100% {
    transform: scale(1) translate3d(0, 0, 0);
  }
  50% {
    transform: scale(1.08) translate3d(0, -1%, 0);
  }
}

@keyframes marqueeScroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

html[dir="rtl"] .marquee-track {
  animation-direction: reverse;
}

@keyframes ringSpin {
  to {
    transform: rotate(360deg);
  }
}

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity var(--duration-slow) var(--ease-out-expo),
    transform var(--duration-slow) var(--ease-out-expo);
}

.reveal.in-view {
  opacity: 1;
  transform: translateY(0);
}

.reveal-stagger > * {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--duration-slow) var(--ease-out-expo),
    transform var(--duration-slow) var(--ease-out-expo);
}

.reveal-stagger.in-view > * {
  opacity: 1;
  transform: translateY(0);
}

.reveal-stagger.in-view > *:nth-child(1) {
  transition-delay: 0ms;
}
.reveal-stagger.in-view > *:nth-child(2) {
  transition-delay: 80ms;
}
.reveal-stagger.in-view > *:nth-child(3) {
  transition-delay: 160ms;
}
.reveal-stagger.in-view > *:nth-child(4) {
  transition-delay: 240ms;
}
.reveal-stagger.in-view > *:nth-child(5) {
  transition-delay: 320ms;
}
.reveal-stagger.in-view > *:nth-child(6) {
  transition-delay: 400ms;
}

.float {
  animation: floatY 6s ease-in-out infinite;
}

.float-sm {
  animation: floatYSmall 5s ease-in-out infinite;
}

.blob {
  animation: blobPulse 10s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal-stagger > * {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .marquee-track {
    animation: none;
  }

  .float,
  .float-sm,
  .blob {
    animation: none;
  }
}
