/* Homepage photos share a row height while retaining their full aspect ratio. */
.home-gallery-heading { margin:0 0 1.25rem; color:var(--red); font:400 clamp(1rem,1.3vw,1.125rem)/1.5 var(--sans); letter-spacing:-.015em; }
.portraits .gallery-grid { --photo-columns:4; display:flex; flex-wrap:wrap; gap:16px; align-items:flex-start; }
.portraits .portrait-card { position:relative; min-width:0; flex:0 0 calc((100% - 48px) / 4); }
.portraits .image-wrap { aspect-ratio:auto; height:var(--photo-height,auto); border-radius:0; }
.portraits .image-wrap img { width:100%; height:var(--photo-height,auto); object-fit:contain; }
.portraits figcaption { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
@media(max-width:1100px) {
  .portraits .gallery-grid { --photo-columns:2; }
  .portraits .portrait-card { flex-basis:calc((100% - 16px) / 2); }
}
@media(max-width:540px) {
  .portraits .gallery-grid { --photo-columns:1; gap:12px; }
  .portraits .portrait-card { flex-basis:100%; }
}
