/* animations.css — scroll reveals + micro-animations */

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--dur-slow) var(--ease-out),
              transform var(--dur-slow) var(--ease-out);
  will-change: opacity, transform;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-stagger > * {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 500ms var(--ease-out),
              transform 500ms var(--ease-out);
  will-change: opacity, transform;
}
.reveal-stagger.is-visible > *:nth-child(1) { transition-delay: 0ms;   }
.reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 120ms; }
.reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 240ms; }
.reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 360ms; }
.reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 480ms; }
.reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 600ms; }
.reveal-stagger.is-visible > * {
  opacity: 1;
  transform: translateY(0);
}

/* Hero scroll-indicator chevron */
.scroll-indicator {
  position: absolute;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  color: var(--color-pale);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  opacity: 0.7;
  pointer-events: none;
  animation: chevron-bounce 2.4s infinite var(--ease-out);
}
.scroll-indicator svg { display: block; }

@keyframes chevron-bounce {
  0%, 100% { transform: translate(-50%, 0); opacity: 0.7; }
  50%      { transform: translate(-50%, 6px); opacity: 1; }
}

/* Process timeline connector animation (desktop horizontal) */
.process-connector {
  position: relative;
  height: 1px;
  margin: 0 12px;
  flex: 1;
  align-self: center;
}
.process-connector::after {
  content: '';
  position: absolute;
  inset: 0;
  border-top: 1px dashed var(--color-accent);
  width: 0%;
  transition: width 800ms var(--ease-out);
}
.process-section.is-visible .process-connector::after { width: 100%; }
.process-section.is-visible .process-connector:nth-of-type(2)::after { transition-delay: 150ms; }
.process-section.is-visible .process-connector:nth-of-type(4)::after { transition-delay: 300ms; }
.process-section.is-visible .process-connector:nth-of-type(6)::after { transition-delay: 450ms; }
