/* Stable first paint: content remains visible even when observers are delayed. */
.reveal {
  opacity: 1;
  transform: none;
  transition: none;
  animation: appear .7s ease both;
}

.delay-1 { animation-delay: .12s; }

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

body { overflow-x: hidden; }
.hero-copy, .hero-visual { min-width: 0; }

@media (max-width: 560px) {
  .hero-copy { width: 100%; max-width: calc(100vw - 28px); overflow: hidden; }
  .hero h1 { width: 100%; max-width: 100%; font-size: 37px; overflow-wrap: anywhere; word-break: break-all; }
  .hero .lead { width: 100%; overflow-wrap: anywhere; }
  .hero-visual { width: 100%; overflow: hidden; }
  .audio-card { width: calc(100% - 24px); }
  .doc-card { right: 8px; width: 270px; }
}
