/* Editorial photography: open compositions rather than framed cards. */
.gallery-page{overflow:clip;background:var(--obsidian)}
.home-intro-centered em{font-style:italic;color:var(--gold-bright);font-weight:500}
.gallery-hero{display:block;text-align:center;padding-block:60px 20px}
.gallery-hero-copy h1{font-size:clamp(3.7rem,6.5vw,6.5rem);line-height:.98;letter-spacing:-.055em;margin:0 0 22px;font-weight:500}
.gallery-hero-copy p{max-width:420px;color:var(--stone);line-height:1.6;margin:0 auto}
.gallery-hero-photos{display:grid;grid-template-columns:1.2fr .85fr;gap:18px;align-items:start}
.gallery-photo{margin:0;min-width:0;cursor:zoom-in;outline-offset:6px}
.gallery-photo:focus-visible{outline:2px solid var(--gold-bright)}
.photo-window{overflow:hidden;aspect-ratio:3/4;background:var(--charcoal)}
.photo-window img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.gallery-photo figcaption{display:none}
.hero-primary .photo-window{aspect-ratio:3/4}
.hero-secondary{margin-top:90px}
.hero-secondary .photo-window{aspect-ratio:2/3}
.gallery-edit{padding-block:60px 110px;scroll-margin-top:120px}
.gallery-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding-bottom:40px;border-bottom:1px solid var(--gold-line)}
.gallery-page h2{font-size:clamp(2.7rem,5vw,5rem);font-weight:500;line-height:1.05;letter-spacing:-.035em;margin:0}
.gallery-section-heading p{color:var(--stone);line-height:1.8;margin:0}
.gallery-diptych{display:grid;grid-template-columns:1.25fr .85fr;gap:9vw;align-items:start;margin-block:65px 100px}
.edit-primary .photo-window{aspect-ratio:4/5}
.edit-secondary{padding-top:130px}
.gallery-triptych{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;align-items:start}
.photo-low{padding-top:85px}
.gallery-ribbon{padding-block:75px 95px;background:var(--obsidian-deep);overflow:hidden}
.gallery-ribbon-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:45px}
.gallery-ribbon-heading h2{font-size:clamp(2.5rem,4.5vw,4.5rem)}
.ribbon-hint{font-size:.8rem;color:var(--stone)}
.gallery-ribbon-viewport{overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--gold-line) transparent;padding:26px 0 30px;outline-offset:-3px}
.gallery-ribbon-drift{width:100%}
.gallery-ribbon.motion-ready .gallery-ribbon-drift{width:calc(100% + 80px);margin-left:-40px}
.gallery-ribbon-track{display:flex;width:max-content}
.ribbon-photo{flex:none;width:clamp(220px,23vw,330px);margin:0 22px 0 0}
.ribbon-photo:nth-child(even){padding-top:34px}
.ribbon-photo .photo-window{aspect-ratio:3/4}
.gallery-ribbon [aria-hidden="true"]{display:none}
.gallery-ribbon.motion-ready [aria-hidden="true"]{display:block}
.gallery-ribbon.motion-ready .gallery-ribbon-viewport{overflow-x:hidden}
.gallery-ribbon.motion-ready .gallery-ribbon-heading{display:none}
.gallery-ribbon.motion-ready .gallery-ribbon-track{animation:galleryLoop 48s linear infinite;animation-play-state:paused}
.gallery-ribbon.motion-active .gallery-ribbon-track{animation-play-state:running}
.gallery-ribbon-viewport:focus-within .gallery-ribbon-track,.gallery-ribbon.is-interacting .gallery-ribbon-track{animation-play-state:paused!important}
.gallery-ribbon-viewport.is-keyboard-browsing .gallery-ribbon-track{animation:none!important}
.gallery-ribbon-viewport.is-keyboard-browsing{overflow-x:auto!important}
.gallery-ribbon-viewport.is-keyboard-browsing .gallery-ribbon-drift{transform:none!important;margin-left:0;width:100%}
.gallery-ribbon-viewport.is-keyboard-browsing [aria-hidden="true"]{display:none!important}
body.lightbox-open .gallery-ribbon-track,body.menu-open .gallery-ribbon-track{animation-play-state:paused!important}
@media (hover:hover){.gallery-ribbon-viewport:hover .gallery-ribbon-track{animation-play-state:paused}}
@keyframes galleryLoop{to{transform:translateX(-50%)}}
.gallery-experience{display:grid;grid-template-columns:.7fr 1.3fr;gap:7vw;align-items:center;padding-block:120px}
.gallery-experience-copy p{margin:26px 0;color:var(--stone);line-height:1.8;max-width:340px}
.gallery-experience-photos{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:center}
.photo-complete .photo-window{aspect-ratio:auto;background:none}
.photo-complete img{height:auto;object-fit:contain}
.experience-secondary{display:grid;gap:40px}
.gallery-shop{position:relative;overflow:hidden}
.gallery-shop-image{aspect-ratio:16/9;overflow:hidden}
.gallery-shop-image img{display:block;width:100%;height:100%;object-fit:cover}
.gallery-shop::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 30%,rgba(6,7,8,.86))}
.gallery-shop-copy{position:absolute;bottom:clamp(30px,5vw,70px);left:0;right:0;z-index:1}
.gallery-shop-copy h2{font-size:clamp(2.7rem,6vw,6rem)}
.gallery-shop-copy p{margin:16px 0 24px;color:var(--cream)}
/* Home-page typography shares the same clear, open rhythm. */
.home-intro-centered{text-align:center;max-width:820px}
.home-intro-centered h2{font-size:clamp(2.6rem,5vw,4.8rem);font-weight:500;line-height:1.07;letter-spacing:-.03em;margin:0 0 28px}
.home-intro-centered p{max-width:650px;margin:0 auto;color:var(--stone);line-height:1.8}
.home-work .split-head{align-items:baseline;margin-bottom:40px;gap:26px}
.home-work .section-title{font-weight:500;letter-spacing:-.035em;font-size:clamp(2.7rem,5vw,4.5rem);line-height:1.05}
.home-closing-photo{overflow:hidden;aspect-ratio:16/9;background:var(--obsidian)}
.home-closing-photo img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:900px){
  .gallery-hero{padding-block:38px 18px}
  .gallery-hero-copy h1{font-size:clamp(3.6rem,12vw,5.6rem);margin-bottom:18px}
  .gallery-hero-copy p{font-size:.9rem}
  .gallery-hero-photos{grid-template-columns:1fr 1fr;gap:12px}
  .gallery-hero-photos .photo-window{aspect-ratio:3/4}
  .hero-secondary{margin-top:26px}
  .gallery-edit{padding-block:24px 48px}
  .gallery-page h2{font-size:clamp(2.3rem,7.8vw,3.8rem)}
  .gallery-section-heading{align-items:flex-start;flex-direction:column;gap:20px;padding-bottom:28px}
  .gallery-diptych{gap:12px;margin-block:30px 34px;grid-template-columns:1fr 1fr}
  .gallery-diptych .photo-window{aspect-ratio:3/4}
  .edit-secondary{padding-top:24px}
  .gallery-triptych{gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery-triptych .photo-low{padding-top:0}
  .gallery-triptych .gallery-photo:last-child{grid-column:1/-1;width:100vw;margin:16px calc(50% - 50vw) 0;padding-top:0}
  .gallery-triptych .gallery-photo:last-child .photo-window{aspect-ratio:4/5}
  .gallery-ribbon{padding-block:55px 50px}
  .gallery-ribbon-heading{align-items:flex-start;flex-direction:column;gap:22px;margin-bottom:22px}
  .gallery-ribbon-heading h2{max-width:500px}
  .ribbon-photo{width:clamp(200px,52vw,300px);margin-right:16px}
  .gallery-experience{grid-template-columns:1fr;gap:30px;padding-block:48px}
  .gallery-experience-copy p{max-width:500px}
  .gallery-experience-photos{grid-template-columns:1fr;gap:16px}
  .gallery-experience-photos .photo-complete{width:min(100%,460px);margin-inline:auto}
  .experience-secondary{grid-template-columns:1fr 1fr;gap:12px}
  .gallery-shop-image{aspect-ratio:4/5}
  .gallery-shop-image img{object-position:42% center}
  .gallery-shop-copy p{font-size:.85rem}
  .home-work .split-head{flex-direction:row;flex-wrap:nowrap;align-items:baseline;gap:12px;margin-bottom:30px}
  .home-work .section-title{font-size:clamp(1.85rem,7vw,2.7rem)}
  .home-work .split-head > .text-link{flex-shrink:0}
  .home-closing-photo{aspect-ratio:4/3}
}
@media (max-width:420px){
  .gallery-diptych{gap:12px}
  .gallery-hero-photos .hero-secondary{margin-top:20px}
}
@media (prefers-reduced-motion:reduce){
  html:not(.force-motion) .gallery-ribbon [aria-hidden="true"]{display:none}
  html:not(.force-motion) .gallery-ribbon-track{animation:none!important}
}

.home-intro{padding-block:clamp(60px,7vw,90px)}
.home-work{padding-top:clamp(35px,4vw,55px)}

/* The introduction leads straight into the moving photo ribbon. */
.gallery-hero + .gallery-ribbon{padding-top:8px;background:var(--obsidian)}
.gallery-hero + .gallery-ribbon .gallery-ribbon-heading{justify-content:center;margin-bottom:8px}
.gallery-edit > .gallery-hero-photos{max-width:900px;margin:48px auto 0}
@media (max-width:900px){
  .gallery-hero + .gallery-ribbon .gallery-ribbon-heading{align-items:center;gap:0}
  .gallery-edit > .gallery-hero-photos{margin-top:30px}
}
