/* Media boxes follow source dimensions. Avoid grid/flex stretch and independent axes. */
main img {
  display: block;
  max-width: 100%;
  height: auto;
  aspect-ratio: var(--image-ratio, auto);
  object-fit: contain;
  align-self: start;
}
main figure { min-width: 0; align-self: start; }
.zoom { height: auto; align-self: start; }
.zoom img { height: auto; object-fit: contain; }
.hero-visual { align-self: center; width: 100%; }
.hero-visual img { width: 100%; height: auto; aspect-ratio: var(--image-ratio); object-fit: contain; }
.full-figure, .space-figure { max-width: 1120px; margin-inline: auto; }
.full-figure img { width: 100%; height: auto; }
.global-gallery .media-stage, .vip-gallery .media-stage { max-width: 900px; width: 100%; }
.global-gallery .zoom img, .vip-gallery .zoom img {
  width: auto;
  max-width: 100%;
  max-height: 560px;
  height: auto;
  margin-inline: auto;
  object-fit: contain;
}
.global-gallery .zoom, .vip-gallery .zoom { background: #08110d; }
.image-pair, .gallery, .accuracy-figures { align-items: start; }
.experience-intro>figure img { width: 100%; height: auto; }
.editorial-split>figure { align-self: center; }
.award-history img { width: auto; max-width: 100%; height: 105px; aspect-ratio: auto; margin-inline: auto; object-fit: contain; }
.network-stage>img { aspect-ratio: auto; }
.lesson-visual figure img, .operation-panel figure img, .app-media img { height: auto; object-fit: contain; }
#dialog-image { width: auto; height: auto; aspect-ratio: auto; object-fit: contain; }
@media(min-width:701px) {
  .hero-visual { max-width: 720px; justify-self: end; }
  .hero-visual img { width: auto; max-width: 100%; max-height: 510px; height: auto; margin-left: auto; }
}
@media(max-width:700px) {
  .full-figure { max-width: 100%; }
  .global-gallery .zoom img, .vip-gallery .zoom img { max-height: 400px; }
  .hero-visual { max-width: 100%; }
  .award-history img { height: 90px; }
}
