/* A silent video sits exactly over the existing image. The image remains
   underneath for loading, errors, touch, reduced motion and the exit fade. */
.hero-frag-video {
  position: absolute;
  inset: 0;
  display: none;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--lab-out) var(--lab-ease);
}

.lab--home .hero-frag-video { object-position: 50% 35%; }
.lab--home [data-frag^="systems-"] .hero-frag-video { object-position: center; }

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .hero-frag-video { display: block; }
  .hero-frag.is-motion-visible .hero-frag-video {
    opacity: 1;
    transition-duration: var(--lab-in);
  }
}

.hero-frag.is-motion-suppressed .hero-frag-video {
  opacity: 0;
  transition: none;
}
