@media (prefers-reduced-motion: no-preference) {
  [data-reveal] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  [data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
  }
  [data-reveal="fade"] { transform: none; }

  [data-reveal-group] > * { transition-delay: calc(var(--i, 0) * 90ms); }
}

@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}
.float { animation: float 5s ease-in-out infinite; }

@keyframes pulseRing {
  0% { box-shadow: 0 0 0 0 rgba(26, 169, 104, 0.35); }
  100% { box-shadow: 0 0 0 16px rgba(26, 169, 104, 0); }
}
.pulse-ring { animation: pulseRing 2.4s ease-out infinite; }

.marquee-track {
  display: flex;
  gap: var(--space-xl);
  animation: marquee 28s linear infinite;
  width: max-content;
}
@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
