.ml-factory-image-band { position: relative; }
.ml-video-peek {
  position: absolute;
  z-index: 1;
  right: clamp(20px, 4.7vw, 71px);
  bottom: clamp(20px, 4.7vw, 71px);
  width: clamp(160px, 23vw, 340px);
  aspect-ratio: 16 / 9;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 8px;
  background: #171715;
  color: white;
  cursor: pointer;
  box-shadow: 0 8px 28px #0005;
}
.ml-video-peek video { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.ml-video-peek span { position: absolute; inset: auto 0 0; padding: 10px; background: linear-gradient(transparent,#000b); font: 500 13px/1.4 sans-serif; text-align: left; }
.ml-video-peek:focus-visible { outline: 3px solid white; outline-offset: 4px; }
.ml-experience .ml-map-pill { left: clamp(20px, 4.7vw, 71px); right: auto; }
.ml-video-dialog { position: fixed; inset: 0; width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #080808; }
.ml-video-dialog::backdrop { background: #080808; }
.ml-video-dialog[open] { display: grid; place-items: center; }
.ml-video-dialog video { width: 100%; height: 100%; object-fit: contain; }
.ml-video-close { position: absolute; z-index: 2; top: max(20px, env(safe-area-inset-top)); right: 20px; width: 48px; height: 48px; border: 1px solid #fff8; border-radius: 50%; background: #111b; color: white; font: 32px/1 sans-serif; cursor: pointer; }
.ml-video-sound { position: absolute; z-index: 2; top: max(20px, env(safe-area-inset-top)); left: 20px; min-height: 44px; padding: 10px 16px; border: 1px solid #fff8; border-radius: 24px; background: #111d; color: white; font: 14px/1.4 sans-serif; cursor: pointer; }
.ml-video-sound:disabled { cursor: default; color: #ddd; }
@media (max-width: 600px) {
  .ml-video-peek { width: min(42vw, 190px); right: 16px; bottom: 20px; }
  .ml-experience .ml-map-pill { left: 16px; bottom: 20px; padding: 0 12px; gap: 6px; min-height: 44px; font-size: 12px; }
}
