[data-reveal] {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity var(--transition-reveal), transform var(--transition-reveal);
  transition-delay: var(--reveal-delay, 0ms);
}

[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

@keyframes heroGlowPulse {
  0%, 100% { opacity: 0.85; }
  50% { opacity: 1; }
}

.hero__bg {
  animation: heroGlowPulse 9s ease-in-out infinite;
}

@keyframes ctaBannerZoom {
  0% { transform: scale(1); }
  100% { transform: scale(1.08); }
}

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

@media (prefers-reduced-motion: reduce) {
  [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .hero__bg {
    animation: none;
  }

  .cta-banner__bg {
    animation: none;
  }

  .marquee__track {
    animation: none;
  }

  .testimonials-column__track {
    animation: none;
  }

  .testimonials-columns {
    max-height: 720px;
    overflow-y: auto;
  }

  .testimonial-card[aria-hidden="true"] {
    display: none;
  }

  * {
    scroll-behavior: auto !important;
  }

  .card:hover,
  .btn--primary:hover {
    transform: none;
  }

  .org-node.is-active-node .org-node__pulse,
  .org-chart__row--agents .org-node:hover .org-node__pulse {
    animation: none;
  }

  .org-chart__row--agents .org-node:hover .agent-node {
    transform: none;
  }

  .org-chart__beam-flow {
    display: none;
  }

  .mobile-menu {
    transition: none;
  }

  .faq-item__answer {
    transition: none;
  }

  .faq-item[open] .faq-item__answer {
    grid-template-rows: 1fr;
  }

  .demo-step {
    animation: none;
    opacity: 1;
    transform: none;
  }
}
