/* Motion layer for the marketing site. Every animation here is disabled
   under prefers-reduced-motion at the bottom of this file. */

@keyframes sitePulse {
  0%, 100% { transform: scale(1); opacity: 0.85; }
  50% { transform: scale(1.06); opacity: 1; }
}

@keyframes siteFlow {
  0% { stroke-dashoffset: 120; }
  100% { stroke-dashoffset: 0; }
}

@keyframes siteFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-9px); }
}

@keyframes siteAurora {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  33% { transform: translate3d(4%, -3%, 0) scale(1.08); }
  66% { transform: translate3d(-3%, 4%, 0) scale(0.95); }
}

@keyframes siteShimmerText {
  0% { background-position: 0% 50%; }
  100% { background-position: 250% 50%; }
}

@keyframes siteSheen {
  0% { background-position: 250% 0; }
  100% { background-position: -50% 0; }
}

@keyframes siteMarquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

@keyframes siteOrbit {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes siteOrbitReverse {
  0% { transform: rotate(360deg); }
  100% { transform: rotate(0deg); }
}

@keyframes siteStreamMove {
  0% { transform: translateX(-120%); }
  100% { transform: translateX(320%); }
}

@keyframes siteScanline {
  0% { top: -46px; }
  100% { top: 110%; }
}

@keyframes siteGlowPulse {
  0%, 100% { box-shadow: 0 12px 34px rgba(79, 168, 255, 0.32); }
  50% { box-shadow: 0 16px 48px rgba(79, 216, 232, 0.5); }
}

@keyframes siteBorderSweep {
  0% { background-position: 0% 0%; }
  100% { background-position: 220% 220%; }
}

/* hero */
.site-aurora span { animation: siteAurora 16s ease-in-out infinite; }
.site-aurora span:nth-child(2) { animation-duration: 21s; animation-delay: -6s; }
.site-aurora span:nth-child(3) { animation-duration: 26s; animation-delay: -12s; }

.site-gradient-text { animation: siteShimmerText 7s linear infinite; }

.site-btn-primary { animation: siteGlowPulse 3.6s ease-in-out infinite; }

.site-hero-visual .site-orbit-ring { animation: siteOrbit 26s linear infinite; }
.site-hero-visual .site-orbit-ring.r2 { animation: siteOrbitReverse 19s linear infinite; }
.site-hero-visual .site-orbit-ring.r3 { animation: siteOrbit 13s linear infinite; }

.site-vault-core { animation: siteFloat 6s ease-in-out infinite; }
.site-vault-core::after { animation: siteSheen 5.5s ease-in-out infinite; }
.site-vault-bar::before { animation: siteStreamMove 2.4s linear infinite; }

/* marquee */
.site-marquee-track { animation: siteMarquee var(--marquee-duration, 42s) linear infinite; }
.site-marquee.reverse .site-marquee-track { animation-direction: reverse; }
.site-marquee:hover .site-marquee-track { animation-play-state: paused; }

/* diagram */
.site-diagram .flow-line {
  stroke-dasharray: 120;
  animation: siteFlow 2.8s ease-in-out infinite alternate;
}

.site-diagram .pulse-node { animation: sitePulse 2.4s ease-in-out infinite; }

/* cards */
.site-feature-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.site-feature-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 54px rgba(2, 6, 18, 0.55);
}

.site-feature-card:hover::before { animation: siteBorderSweep 2.6s linear infinite; }

/* promo */
.site-promo-callout::after { animation: siteSheen 4.8s ease-in-out infinite; }
.site-promo-callout strong { animation: siteShimmerText 5s linear infinite; }

/* mockups */
.site-scanline { animation: siteScanline 5.2s ease-in-out infinite; }

.site-stream {
  position: relative;
  overflow: hidden;
  height: 6px;
  border-radius: 999px;
  background: rgba(91, 157, 255, 0.1);
  margin-top: 16px;
}

.site-stream::before {
  content: "";
  position: absolute;
  inset: 0;
  width: 40%;
  background: linear-gradient(90deg, transparent, rgba(79, 216, 232, 0.6), transparent);
  animation: siteStreamMove 2.2s linear infinite;
}

/* USA flag glow */
.site-usa-flag { animation: siteFloat 4.5s ease-in-out infinite; }

@media (prefers-reduced-motion: reduce) {
  .site-aurora span,
  .site-gradient-text,
  .site-btn-primary,
  .site-orbit-ring,
  .site-vault-core,
  .site-vault-core::after,
  .site-vault-bar::before,
  .site-marquee-track,
  .site-diagram .flow-line,
  .site-diagram .pulse-node,
  .site-feature-card,
  .site-feature-card::before,
  .site-promo-callout::after,
  .site-promo-callout strong,
  .site-scanline,
  .site-stream::before,
  .site-usa-flag,
  .reveal,
  .reveal-stagger > * {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}
