@keyframes intro-line {
  0% { width: 0; opacity: 0; }
  35% { opacity: 1; }
  100% { width: min(760px, 92vw); opacity: 0.25; }
}

@keyframes intro-logo {
  from { transform: scale(0.96); filter: brightness(0.18) saturate(0.55); opacity: 0; }
  to { transform: scale(1); filter: brightness(0.9) saturate(1.05); opacity: 1; }
}

@keyframes intro-tag {
  from { transform: translateY(8px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

@keyframes sweep {
  to { transform: translateX(150%) skewX(-18deg); }
}

@keyframes hero-breathe {
  from { transform: scale(1.025) translate3d(0, 0, 0); }
  to { transform: scale(1.055) translate3d(-0.5%, -0.25%, 0); }
}

@keyframes film-sweep {
  0%, 22% { transform: translateX(-70%); opacity: 0; }
  42% { opacity: 1; }
  76%, 100% { transform: translateX(55%); opacity: 0; }
}

@keyframes signal {
  0%, 100% { opacity: 0.35; box-shadow: 0 0 0 rgba(115, 255, 69, 0); }
  50% { opacity: 1; box-shadow: 0 0 24px rgba(115, 255, 69, 0.45); }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .intro {
    display: none;
  }

  [data-reveal] {
    transform: none;
    opacity: 1;
  }
}
