/* Motion — intentional, respects reduced motion */

@keyframes wl-fade-up {
  from {
    opacity: 0;
    transform: translateY(1.25rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes wl-logo-in {
  from {
    opacity: 0;
    transform: scale(0.88);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes wl-trend-draw {
  from {
    stroke-dashoffset: 480;
    opacity: 0;
  }
  to {
    stroke-dashoffset: 0;
    opacity: 1;
  }
}

@keyframes wl-spin {
  to { transform: rotate(360deg); }
}

@keyframes wl-pulse-line {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.55; }
}

@keyframes wl-stage-in {
  from {
    opacity: 0;
    transform: scale(0.94) translateY(1rem);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@keyframes wl-bar-rise {
  from {
    transform: scaleY(0.15);
    opacity: 0;
  }
  to {
    transform: scaleY(1);
    opacity: 1;
  }
}

@keyframes wl-spark-draw {
  from {
    stroke-dashoffset: 520;
    opacity: 0;
  }
  to {
    stroke-dashoffset: 0;
    opacity: 1;
  }
}

.hero__brand {
  animation: wl-logo-in var(--wl-duration-slow) var(--wl-ease) both;
}

.hero__title {
  animation: wl-fade-up var(--wl-duration-slow) var(--wl-ease) 120ms both;
}

.hero__lead {
  animation: wl-fade-up var(--wl-duration-slow) var(--wl-ease) 220ms both;
}

.hero .btn-row {
  animation: wl-fade-up var(--wl-duration-slow) var(--wl-ease) 320ms both;
}

.hero__channels {
  animation: wl-fade-up var(--wl-duration-slow) var(--wl-ease) 400ms both;
}

.hero__stage {
  animation: wl-stage-in 900ms var(--wl-ease) 180ms both;
}

.hero__spark path[stroke] {
  stroke-dasharray: 520;
  stroke-dashoffset: 520;
  animation: wl-spark-draw 1.4s var(--wl-ease) 0.45s forwards;
}

.hero__kpi {
  opacity: 0;
  animation: wl-fade-up var(--wl-duration-slow) var(--wl-ease) both;
}

.hero__kpi:nth-child(1) { animation-delay: 500ms; }
.hero__kpi:nth-child(2) { animation-delay: 580ms; }
.hero__kpi:nth-child(3) { animation-delay: 660ms; }
.hero__kpi:nth-child(4) { animation-delay: 740ms; }

[data-reveal] {
  opacity: 0;
  transform: translateY(1.5rem);
  transition:
    opacity var(--wl-duration-slow) var(--wl-ease),
    transform var(--wl-duration-slow) var(--wl-ease);
}

[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

[data-reveal-stagger] > * {
  opacity: 0;
  transform: translateY(1rem);
  transition:
    opacity var(--wl-duration-slow) var(--wl-ease),
    transform var(--wl-duration-slow) var(--wl-ease);
}

[data-reveal-stagger].is-visible > *:nth-child(1) { transition-delay: 0ms; }
[data-reveal-stagger].is-visible > *:nth-child(2) { transition-delay: 80ms; }
[data-reveal-stagger].is-visible > *:nth-child(3) { transition-delay: 160ms; }
[data-reveal-stagger].is-visible > *:nth-child(4) { transition-delay: 240ms; }
[data-reveal-stagger].is-visible > *:nth-child(5) { transition-delay: 320ms; }
[data-reveal-stagger].is-visible > *:nth-child(6) { transition-delay: 400ms; }
[data-reveal-stagger].is-visible > *:nth-child(7) { transition-delay: 480ms; }
[data-reveal-stagger].is-visible > *:nth-child(8) { transition-delay: 560ms; }

[data-reveal-stagger].is-visible > * {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce), (pointer: coarse), (max-width: 768px) {
  html {
    scroll-behavior: auto;
  }

  .hero__brand,
  .hero__title,
  .hero__lead,
  .hero .btn-row,
  .hero__channels,
  .hero__stage,
  .hero__kpi,
  .hero__bars span,
  .hero__spark path[stroke] {
    animation: none !important;
  }

  .hero__kpi {
    opacity: 1;
  }

  .hero__spark path[stroke] {
    stroke-dashoffset: 0;
    opacity: 1;
  }

  .hero__bars span {
    opacity: 1;
    transform: none;
  }

  [data-reveal],
  [data-reveal-stagger] > * {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .btn--primary:hover {
    transform: none;
  }
}
