/* Equal physical card size within each component, including portrait artwork.
   Position the untouched source inside a square viewport, excluding its gutters. */
.card-image-frame {
  display: block;
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  flex-shrink: 0;
}

.card-image-frame > .card-image-frame__source {
  position: absolute;
  display: block;
  max-width: none;
  max-height: none;
  object-fit: fill;
}
