/* Home media mounts during the shell bootstrap. Keep its final geometry in a
   stylesheet that loads before the router so production can never paint the
   browser's default video box and then snap to the finished crop. */
.home-thinking-video {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100dvh;
  object-fit: cover;
  object-position: center top;
  pointer-events: none;
}

.home-fallback-image,
.home-attention-video {
  z-index: 0;
  opacity: 0;
  transition: opacity 240ms ease-out;
}
/* The supplied still is framed slightly tighter and higher than frame zero of
   the video. These measured offsets align the portrait while black remains the
   safe area behind the media. */
.home-fallback-image {
  inset: 2.58dvh auto auto -0.6%;
  width: 101.2%;
  height: 101.2dvh;
}
.home-fallback-image.is-ready,
.home-attention-video.is-ready { opacity: 1; }
.home-thought-video { z-index: 1; opacity: 0; }

@media (prefers-reduced-motion: reduce) {
  .home-fallback-image,
  .home-attention-video { transition: none; }
}
