/* Layout-neutral wrapper: the original background drift keeps its own timeline. */
.page-home .hero-intro-field { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: -1; pointer-events: none; }
.hero-intro-line { display: inline-block; }
/* Keep the stage's geometry, but reserve the photograph for real fallback. */
html[data-hero-model="pending"] .vr-showcase:not(.vr-ready):not(.vr-unavailable) .vr-fallback { visibility: hidden; }
/* Replace the old unconditional entrance, including its delayed CTA fade. */
.page-home .harness-hero-copy > * { animation: none; }
@keyframes hero-intro-field {
  from { opacity: .58; transform: scale(.985); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes hero-intro-copy {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: no-preference) {
  html[data-hero-intro="running"] .hero-intro-field { animation: hero-intro-field .6s cubic-bezier(.22,1,.36,1) both; }
  html[data-hero-intro="running"] .hero-intro-line { animation: hero-intro-copy .7s cubic-bezier(.22,1,.36,1) .3s both; }
  html[data-hero-intro="running"] .hero-intro-line + br + .hero-intro-line { animation-delay: .46s; }
  html[data-hero-intro="running"] .hero-lead { animation: hero-intro-copy .55s cubic-bezier(.22,1,.36,1) .65s both; }
  @media (max-width: 720px) {
    html[data-hero-intro="running"] .hero-intro-field { animation-duration: .35s; }
    html[data-hero-intro="running"] .hero-intro-line { animation-duration: .4s; animation-delay: .175s; }
    html[data-hero-intro="running"] .hero-intro-line + br + .hero-intro-line { animation-delay: .27s; }
    html[data-hero-intro="running"] .hero-lead { animation-duration: .32s; animation-delay: .38s; }
  }
}
