/* v4.12: original delivery proportions, never crop or upscale a bitmap file. */
body main .supplied-photo { margin:0; min-width:0; background:none; padding:0; border:0; }
body main .supplied-photo[data-source-image] img { display:block; width:100%; height:auto; aspect-ratio:auto; object-fit:contain; position:static; }
body main .supplied-photo.project-logo { max-width:240px; margin-block:28px; }
body main .supplied-photo.project-logo[data-source-image="016"] { max-width:160px; }
body main .supplied-photo.project-logo img { height:auto; width:100%; max-width:100%; }
.gallery-opening .opening-copy { max-width:36em; }
.gallery-opening .opening-grid { align-items:center; }
.gallery-opening .actions { gap:12px 24px; margin-block:28px; }
.gallery-opening .actions a[aria-current] { font-weight:700; }
.gallery-jump { display:inline-flex; align-items:center; gap:14px; min-height:44px; margin-top:16px; }
.gallery-collection { padding-block:clamp(40px,6vw,100px); background:var(--paper,#f6f5f0); }
.gallery-masonry { --gallery-gap:34px; columns:3; column-gap:var(--gallery-gap); }
.gallery-masonry .supplied-photo { break-inside:avoid; margin-bottom:var(--gallery-gap); }
.gallery-photo-link { display:block; position:relative; color:#fff; }
.gallery-photo-link__hint { position:absolute; right:12px; bottom:12px; width:38px; height:38px; background:#0b1313c9; display:grid; place-items:center; font:400 26px/1 var(--body); }
.gallery-photo-link:focus-visible { outline:3px solid #008295; outline-offset:6px; }
.gallery-photo-link:hover .gallery-photo-link__hint { background:#008295; }
.gallery-introduction .reading { max-width:780px; margin-inline:auto; }
body main .bj-article-hero.supplied-photo { aspect-ratio:auto; overflow:visible; max-width:1280px; }
/* Preserve the title panel, without concealing any of the newly supplied crop. */
.journal-article:has(.bj-article-hero.supplied-photo) .bj-title-panel { margin-top:0; }
body .bj-card .supplied-photo, body .bj-grid .supplied-photo { aspect-ratio:auto; height:auto; }
body main [data-bj-grid] .supplied-photo { margin-bottom:24px; }
body .bj-grid .supplied-photo img { position:static; height:auto; aspect-ratio:auto; object-fit:contain; }
.gallery-lightbox { width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; border:0; padding:0; background:#090d0ef7; color:#fff; }
.gallery-lightbox::backdrop { background:#090d0e; }
.gallery-lightbox__stage { position:absolute; inset:80px 80px 40px; display:grid; place-items:center; }
.gallery-lightbox__stage img { width:100%; height:100%; min-height:0; object-fit:contain; }
.gallery-lightbox button { position:absolute; z-index:2; width:52px; height:52px; border:1px solid #ffffff66; background:#0b1313; color:#fff; font:400 28px/1 var(--body); cursor:pointer; }
.gallery-lightbox button:focus-visible { outline:3px solid #83d4d9; outline-offset:4px; }
.gallery-lightbox__close { top:18px; right:24px; }
.gallery-lightbox__previous { left:18px; top:calc(50% - 26px); }
.gallery-lightbox__next { right:18px; top:calc(50% - 26px); }
.gallery-lightbox__status { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.gallery-lightbox__error { max-width:28em; padding:24px; text-align:center; }
body:has(.gallery-lightbox[open]) { overflow:hidden; }
/* Alternative B: the delivered black portrait becomes a wide image stage.
   Text stays in the empty left area; the complete source remains visible. */
.home-opening--immersive { background:#000; padding-block:clamp(48px,5vw,72px) 0; overflow:hidden; }
.home-opening--immersive .opening-grid { position:relative; min-height:620px; align-items:center; gap:0; grid-template-columns:1.05fr 1fr; }
.home-opening--immersive .opening-heading { position:relative; z-index:1; padding-block:24px 64px; }
.home-opening--immersive .opening-heading h1 { font-size:clamp(64px,6.4vw,108px); max-width:11ch; line-height:.99; }
.home-opening--immersive .home-opening__summary { max-width:30ch; }
.home-opening--immersive .supplied-photo { align-self:end; width:155%; margin-left:-40%; }
.home-opening--immersive .supplied-photo img { width:100%; }
@media(max-width:1120px) { .gallery-masonry { columns:2; } }
@media(max-width:900px) {
 .home-opening--immersive .opening-grid { grid-template-columns:1fr; min-height:0; }
 .home-opening--immersive .opening-heading { padding:20px 0 24px; }
 .home-opening--immersive .opening-heading h1 { font-size:clamp(52px,9vw,86px); max-width:13ch; }
 .home-opening--immersive .supplied-photo { width:100%; margin:0; }
 .gallery-opening .supplied-photo { max-width:720px; }
 .gallery-masonry { --gallery-gap:26px; }
}
@media(max-width:700px) {
 .gallery-masonry { columns:1; --gallery-gap:38px; }
 .gallery-lightbox__stage { inset:84px 12px 84px; }
 .gallery-lightbox__previous,.gallery-lightbox__next { top:auto; bottom:18px; }
 .gallery-lightbox__close { right:18px; }
 .home-opening--immersive .opening-heading h1 { font-size:clamp(50px,12vw,76px); }
 .home-opening--immersive { padding-top:64px; }
}
@media(prefers-reduced-motion:reduce) { .gallery-photo-link { transition:none; } }
