@keyframes arrive { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes map-arrive { from { opacity: 0; transform: translateY(18px) rotate(1deg); } to { opacity: 1; transform: translateY(0) rotate(0); } }
.hero-copy { animation: arrive .75s ease-out both; }
.evidence-map { animation: map-arrive .85s .12s ease-out both; }
.reveal-ready { opacity: 0; transform: translateY(20px); transition: opacity .65s ease, transform .65s ease; }
.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal-ready { opacity: 1; transform: none; }
}
