/* Scroll-reveal: elements start hidden, .in-view added by JS via IntersectionObserver */
.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);
}
.reveal.in-view { opacity: 1; transform: translateY(0); }

.reveal-stagger > * {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .6s ease, transform .6s ease;
}
.reveal-stagger.in-view > * { opacity: 1; transform: translateY(0); }
.reveal-stagger.in-view > *:nth-child(1) { transition-delay: .02s; }
.reveal-stagger.in-view > *:nth-child(2) { transition-delay: .08s; }
.reveal-stagger.in-view > *:nth-child(3) { transition-delay: .14s; }
.reveal-stagger.in-view > *:nth-child(4) { transition-delay: .2s; }
.reveal-stagger.in-view > *:nth-child(5) { transition-delay: .26s; }
.reveal-stagger.in-view > *:nth-child(6) { transition-delay: .32s; }

/* Hero background drift — slow ambient parallax, not distracting */
@keyframes drift {
  0%   { transform: translate3d(0,0,0) scale(1.02); }
  50%  { transform: translate3d(-1.2%, -1%, 0) scale(1.05); }
  100% { transform: translate3d(0,0,0) scale(1.02); }
}
.hero-bg svg { animation: drift 26s ease-in-out infinite; }

@keyframes seal-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
.seal-lg svg { animation: seal-spin 40s linear infinite; }

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
.hero h1, .hero .eyebrow, .hero-lede, .hero .btn {
  animation: fadeIn .9s ease both;
}
.hero .eyebrow { animation-delay: 0s; }
.hero h1 { animation-delay: .08s; }
.hero-lede { animation-delay: .18s; }
.hero .btn { animation-delay: .28s; }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
  .reveal, .reveal-stagger > * { opacity: 1; transform: none; }
}
