/* Preserve the original compositions inside the existing animated layouts. */
img[data-photo] { object-position: center; }
.snap-slide .section-image img[data-photo],
.showcase-portfolio .section-image img[data-photo],
.showcase-gallery .section-image img[data-photo],
.section-thumb img[data-photo],
.thumb-slide-img img[data-photo] { object-fit: contain; }
.snap-slide .section-image { transform: none; }
.snap-slide { background: #131719; }
.snap-slide .section-image img[data-photo] { padding: 36px 0; box-sizing: border-box; }
.showcase-portfolio .img-mask,
.showcase-gallery .img-mask,
.section-thumb,
.thumb-slide-img { background: #171b1c; }
.showcase-portfolio .clapat-item::before { padding-top: 133.333%; }
.showcase-portfolio .section-image { transform: none; }
.showcase-portfolio .section-image img[data-photo] { height: 100%; }
.col-img-wrapper img[data-photo] { object-fit: contain; background: #171b1c; }
.landing-video .content-video-wrapper img[data-photo] { object-fit: contain; position: relative; width: 100%; height: auto; }
#hero-bg-image[role="img"] { background-size: contain; background-repeat: no-repeat; background-color: #171b1c; }
.full-frame { margin: 0 auto; max-width: 960px; }
.full-frame a { display: block; }
.full-frame-image { display: block; width: 100%; height: auto; object-fit: contain; }
.full-frame figcaption { font-size: 14px; margin-top: 20px; line-height: 1.5; }
.photo-description { margin: 28px auto; max-width: 640px; text-align: center; }
.photograph-story .button-box { text-align: center; }
.photo-archive-link { display: inline-block; padding: 14px 0; border-bottom: 1px solid currentColor; }
a:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
@media (max-width: 767px) {
  .snap-slide .section-image img[data-photo] { padding: 72px 0 100px; }
  .photograph-story { padding-left: 20px; padding-right: 20px; }
  .snap-slider-captions .slide-title { max-width: 65vw; line-height: 1.25; }
}

/* Highlights uses a WebGL canvas, so size its stage to the photographs. */
body:has(.highlights-gallery) #canvas-slider { width: min(75vh, 100vw); left: 50%; transform: translateX(-50%); }
.highlights-gallery .external-titles .slide-title { font-size:clamp(22px,4vw,64px); white-space:nowrap; max-width:94vw; }

/* Biography and social destinations remain readable on narrow screens. */
.bio-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:clamp(24px,6vw,100px); }
.biography p { font-size:clamp(17px,1.35vw,22px); line-height:1.75; max-width:65ch; }
.biography h3 { margin:36px 0 16px; }
.bio-kicker { font-size:14px!important; letter-spacing:.08em; text-transform:uppercase; }
.profile-links { display:flex; flex-wrap:wrap; gap:12px 24px; margin:0; list-style:none; }
.profile-links a { text-decoration:underline; text-underline-offset:5px; }
footer .socials-wrap { width:auto; max-width:65%; height:auto; }
footer .socials { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 18px; opacity:1; height:auto; top:auto; transform:none; position:relative; }
footer .socials li { opacity:1; transform:none; margin:0; height:auto; }
footer .socials li a { font-size:12px; }
footer .socials-icon, footer .socials-text { display:none; }
img[data-photo] { user-select:none; -webkit-user-drag:none; }
.slide-link:focus-visible { position:absolute; inset:0; z-index:15; outline:3px solid #fff; outline-offset:-5px; }
#message { margin:20px 0; }
@media(max-width:767px) { .bio-grid {grid-template-columns:1fr;} footer .socials-wrap {max-width:100%;} footer .socials {justify-content:center;} }
@media(max-width:1024px) {
  .showcase-portfolio .section-thumb { display:none; }
  .showcase-portfolio .slide-caption { padding:14px 18px; background:linear-gradient(transparent,rgba(0,0,0,.72)); color:#fff; }
  .showcase-portfolio .slide-caption .slide-title { max-width:65%; line-height:1.25; }
  .showcase-portfolio .slide-caption .slide-cat { font-size:13px; line-height:1.4; text-align:right; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .has-animation, .caption-timeline { transition:none!important; }
}

/* Editorial layouts share the portfolio's typography and full-image framing. */
.collection-intro { max-width:760px; margin:0 auto 70px; padding:0 24px; text-align:center; }
.collection-intro p { font-size:18px; line-height:1.6; }
.collection-intro a, .story-connections a, .journal-backlinks a { text-decoration:underline; text-underline-offset:5px; }
.journal-introduction { max-width:800px; margin:0 auto 80px; }
.journal-introduction h2, .journal-about h2, .home-journal h2 { font-size:clamp(32px,4.5vw,64px); line-height:1.12; letter-spacing:-.03em; }
.journal-introduction p, .journal-about p, .home-journal p { font-size:clamp(18px,1.5vw,23px); line-height:1.65; max-width:65ch; }
.journal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:80px 48px; }
.journal-card { min-width:0; }
.journal-card-image { display:block; background:#171b1c; }
.journal-card-image .journal-photo { width:100%; height:auto; aspect-ratio:4/5; object-fit:contain; display:block; }
.journal-card-copy { padding:26px 0; }
.journal-card h2 { font-size:clamp(27px,2.8vw,42px); line-height:1.15; margin:14px 0 20px; letter-spacing:-.03em; }
.journal-card p { line-height:1.65; }
.journal-read { display:inline-block; padding:10px 0; border-bottom:1px solid currentColor; }
.journal-about { border-top:1px solid #888; margin-top:80px; padding:60px 0 0; }
.journal-essay { max-width:1200px; margin:0 auto; }
.journal-byline { font-size:14px; line-height:1.6; margin-bottom:28px; }
.journal-lead { font-size:clamp(23px,3vw,36px); line-height:1.5; max-width:34ch; margin:0 auto 70px; }
.journal-figure { margin:50px auto; max-width:900px; }
.journal-figure a { display:block; background:#171b1c; }
.journal-figure .journal-photo { width:100%; max-height:85vh; object-fit:contain; display:block; }
.journal-figure figcaption { font-size:14px; line-height:1.5; margin-top:16px; }
.journal-figure figcaption, .full-frame figcaption { position:static; color:inherit; background:transparent; padding:0; }
.journal-prose { max-width:680px; margin:50px auto 75px; }
.journal-prose h2 { font-size:clamp(28px,3vw,44px); line-height:1.2; margin-bottom:20px; }
.journal-prose p { font-size:clamp(18px,1.5vw,22px); line-height:1.85; }
.journal-backlinks, .story-connections { display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px; margin:60px auto; max-width:900px; padding:0 24px; }
@media(max-width:767px) {
 .journal-grid { grid-template-columns:1fr; gap:32px; }
 .journal-introduction { margin-bottom:45px; }
 .journal-lead { margin-bottom:40px; }
 .journal-prose { margin:35px auto 50px; }
 .journal-figure { margin:35px auto; }
}

/* A semantic title for the immersive Highlights gallery without changing its layout. */
.collection-screen-reader-title { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
