/* Stage 8A: consistent saved framing in every card photo viewport.
   The image must fill the actual clipping box; percentage height on a flex child
   otherwise resolves differently across Garage, Collection, and View Build. */
.asm-card .asm-card-photo,
.asm-hub-foil .asm-hub-photo-frame {
  position:relative!important;
  overflow:hidden!important;
  min-width:0;
  min-height:0;
}
.asm-card .asm-card-photo > img,
.asm-hub-foil .asm-hub-photo-frame > img {
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  margin:0!important;
  object-fit:cover!important;
  /* Inline saved object-position and scale are intentionally authoritative. */
  transform-origin:center center!important;
  transition:none!important;
  will-change:auto;
}
/* The editor uses a portrait photo window. Preserve that ratio for My Vehicles. */
#owned-grid .asm-hub-foil .asm-hub-photo-frame {
  width:100%;
  aspect-ratio:3 / 3.5!important;
  height:auto!important;
  max-height:none!important;
}
