/* Motion & a11y */

.reveal {
  animation: rise 0.7s var(--ease) both;
}

.reveal-delay-1 { animation-delay: 0.08s; }
.reveal-delay-2 { animation-delay: 0.16s; }
.reveal-delay-3 { animation-delay: 0.24s; }
.reveal-delay-4 { animation-delay: 0.32s; }
.reveal-delay-5 { animation-delay: 0.4s; }

@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes drift {
  from { transform: translate(0, 0) scale(1); }
  to { transform: translate(4%, 6%) scale(1.08); }
}

@keyframes sheen {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.55; transform: scale(0.85); }
}

@keyframes train-node-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(109, 255, 200, 0.45); }
  50% { box-shadow: 0 0 0 10px rgba(109, 255, 200, 0); }
}

@keyframes train-unlock {
  0% { transform: scale(0.96); filter: brightness(1.35); }
  60% { transform: scale(1.02); }
  100% { transform: scale(1); filter: brightness(1); }
}

@media (prefers-reduced-motion: reduce) {
  .bg__blob,
  .logo__text,
  .eyebrow__dot,
  .reveal,
  .train-progress__fill,
  .train-step--current .train-step__node,
  .train-step--flash .train-step__card {
    animation: none !important;
  }

  .train-progress__fill {
    width: var(--p, 0%);
  }

  .section-link,
  .tool-list a,
  .nav a,
  .back {
    transition: none;
  }

  .section-link:hover,
  .tool-list a:hover {
    transform: none;
  }
}
