/* Final photographic framing policy. Loaded after page-specific styles. */
.portal-page .archive-picture{overflow:hidden;background-size:cover;background-position:var(--media-focus,50% 38%)}
.portal-page .archive-picture img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover!important;object-position:var(--media-focus,50% 38%)!important}

/* Fixed photographic stages must be completely painted. */
.portal-page :is(.story-portal,.footer-photograph,.comparison,.archive-hero,.fullbleed-interlude,.history-scene-photo) .archive-picture{width:100%;height:100%}
.portal-page :is(.story-portal,.footer-photograph,.comparison,.archive-hero,.fullbleed-interlude,.history-scene-photo) .archive-picture img{width:100%;height:100%}
.portal-page :is(.story-portal,.footer-photograph,.comparison,.archive-hero,.fullbleed-interlude,.history-scene-photo) .archive-picture>img{width:100%;height:100%}
.portal-page .gallery-track .archive-picture{height:clamp(270px,31vw,460px)}
.portal-page .gallery-track .archive-picture img{height:100%;width:100%}
.portal-page .gallery-track .archive-picture>img{height:100%;width:100%}
.portal-page .history-scene-photo .image-open{height:100%}

/* Editorial ratios create a container first; the photograph then fills it. */
.portal-page .editorial-photo .archive-picture{height:auto;aspect-ratio:4/3}
.portal-page .team-grid .archive-picture,.portal-page .mosaic-item .archive-picture{height:auto;aspect-ratio:4/5}
.portal-page .mosaic-item.wide .archive-picture{aspect-ratio:16/9}
.portal-page .mosaic-item:nth-child(4n) .archive-picture{aspect-ratio:1}
.portal-page :is(.editorial-photo,.gallery-track,.team-grid,.mosaic-item) .archive-picture{overflow:hidden}
.portal-page :is(.editorial-photo,.gallery-track,.team-grid,.mosaic-item) :is(.archive-picture,.image-open){height:100%}
.portal-page :is(.editorial-photo,.gallery-track,.team-grid,.mosaic-item) .archive-picture img{width:100%;height:100%;object-fit:cover!important}
.portal-page .history-scene-photo .archive-picture img{object-position:var(--history-photo-focus,var(--media-focus,50% 35%))!important}
.portal-page .fullbleed-interlude .archive-picture img{object-position:var(--scene-focus-desktop,var(--media-focus,50% 35%))!important}
.portal-page .fullbleed-interlude .archive-picture img{object-fit:cover!important;width:100%;height:100%;min-width:100%;min-height:100%;inset:0}
.portal-page .fullbleed-interlude .archive-picture>img{object-fit:cover!important;width:100%;height:100%;min-width:100%;min-height:100%;inset:0}

/* Non-hero films also fill their stages; hero video framing remains page-specific. */
.portal-page :is(.modality-film,.plus-film) video{width:100%;height:100%;object-fit:cover!important;background:transparent}

/* Identity assets, transparent studio cutouts and the uncropped lightbox are intentional exceptions. */
.portal-page .studio-stage>img,.portal-page .lightbox-content img,.archive-brand img,.archive-footer img,.footer-photograph>div img{object-fit:contain!important}
.portal-page .lightbox-content img{width:auto;height:auto;max-width:100%;max-height:calc(100svh - 160px);object-position:center!important}

@media(max-width:680px){
 .portal-page .fullbleed-interlude .archive-picture img{object-position:var(--scene-focus-mobile,var(--media-focus,50% 35%))!important}
 .portal-page .editorial-photo .archive-picture{aspect-ratio:4/3}
 .portal-page .gallery-track .archive-picture{height:340px}
}
