@property --border-angle {
  syntax: '<angle>';
  inherits: false;
  initial-value: 0deg;
}

@keyframes borderSweep {
  to { --border-angle: 360deg; }
}


.fade-in {
  animation: fadeIn var(--dur-med) var(--ease) both;
}

.slide-up {
  animation: slideUp var(--dur-med) var(--ease) both;
}

.reveal-card {
  animation: revealCard var(--dur-fast) var(--ease) both;
}

.stagger > * {
  animation: slideUp var(--dur-med) var(--ease) both;
}

.stagger > *:nth-child(1) { animation-delay: 40ms; }
.stagger > *:nth-child(2) { animation-delay: 80ms; }
.stagger > *:nth-child(3) { animation-delay: 120ms; }
.stagger > *:nth-child(4) { animation-delay: 160ms; }
.stagger > *:nth-child(5) { animation-delay: 200ms; }
.stagger > *:nth-child(6) { animation-delay: 240ms; }
.stagger > *:nth-child(7) { animation-delay: 280ms; }

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

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

@keyframes revealCard {
  from {
    opacity: 0;
    transform: translateY(6px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.workflow-node {
  animation: slideUp 400ms var(--ease) both;
}

.workflow-track .workflow-node:nth-child(1) { animation-delay: 0ms; }
.workflow-track .workflow-node:nth-child(3) { animation-delay: 50ms; }
.workflow-track .workflow-node:nth-child(5) { animation-delay: 100ms; }
.workflow-track .workflow-node:nth-child(7) { animation-delay: 150ms; }
.workflow-track .workflow-node:nth-child(9) { animation-delay: 200ms; }
.workflow-track .workflow-node:nth-child(11) { animation-delay: 250ms; }
.workflow-track .workflow-node:nth-child(13) { animation-delay: 300ms; }
.workflow-track .workflow-node:nth-child(15) { animation-delay: 350ms; }
.workflow-track .workflow-node:nth-child(17) { animation-delay: 400ms; }
.workflow-track .workflow-node:nth-child(19) { animation-delay: 450ms; }

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .scan-pulse,
  .card::before,
  .hero-panel::before {
    animation: none;
  }

  .scan-pulse {
    animation: none;
    border-top-color: var(--color-primary);
  }
}
