/* Keep image interactions inside their own sections. */
.gallery-grid{position:relative!important}
.gallery-grid:has(.image-card.is-expanded) .image-card:not(.is-expanded){display:block!important;opacity:.28!important;filter:grayscale(.35)!important}
.gallery-grid .image-card.is-expanded{display:block!important;position:absolute!important;inset:9% 15%!important;z-index:2!important;grid-area:auto!important;box-shadow:0 0 0 100vmax rgba(0,0,0,.08)!important}
.gallery-grid .image-card.is-expanded img{object-fit:contain!important;object-position:center!important;background:#111!important}
.session{min-height:0!important}
.session-strips{height:clamp(400px,42vw,520px)!important;min-height:0!important}
.portrait-strip.is-expanded img{object-fit:contain!important;object-position:center!important;background:#111!important}
.portrait-strip.is-expanded:hover img,.portrait-strip.is-expanded:focus-visible img{transform:none!important}
.session{height:100svh!important;max-height:920px!important;overflow:hidden!important;padding:2.5rem 6vw!important;align-items:stretch!important}
.session-strips{height:calc(100svh - 5rem)!important;max-height:840px!important}.session-details{padding:0 0 0 4vw!important;align-self:center!important}.session h2{font-size:clamp(3rem,4.6vw,5rem)!important;margin-bottom:1rem!important}.session .price{margin:.4rem 0!important}.session ul{margin:1rem 0!important}.session li{padding:.42rem 0!important}.session .fine-print{margin:1rem 0!important}
/* Desktop compositions stay within one viewport: the photo walls begin below the header
   and use only the supplied vertical files. */
@media(min-width:801px){
  .hero{height:100svh!important;min-height:730px!important;max-height:none!important;padding-top:8rem!important;padding-bottom:2.5rem!important}
  .hero-strips{top:8rem!important;bottom:2.5rem!important}
  .session{height:100svh!important;min-height:730px!important;max-height:none!important}
  .session-strips{height:calc(100svh - 5rem)!important}
}

/* A 1920 × 1080 desktop is the reference canvas.  Each editorial stop fills the
   visible browser canvas instead of spilling into a second screen. */
@media(min-width:1200px) and (min-height:800px){
  .manifesto{height:100svh!important;min-height:0!important;padding:3.25vh 9vw 0!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) minmax(12rem,24vh)!important;align-items:stretch!important}
  .manifesto .eyebrow{align-self:end!important;margin-bottom:.6rem!important}
  .manifesto-grid{align-self:center!important}
  .gallery-section{height:100svh!important;min-height:0!important;overflow:hidden!important;padding:3.25vh 4.5vw!important;display:flex!important;flex-direction:column!important}
  .gallery-section .section-heading{flex:0 0 auto!important;margin:0 0 2.25vh!important}
  .gallery-grid{flex:1 1 auto!important;min-height:0!important;grid-auto-rows:minmax(0,1fr)!important}
  .brand{height:100svh!important;min-height:0!important;overflow:hidden!important;padding:1.25rem 6vw 1.5rem!important}
  .brand-content-grid{height:68vh!important;min-height:0!important}
  .brand-copy{padding-top:2.25rem!important}
  .brand-gallery{height:100%!important;min-height:0!important}
  .brand-list{margin-top:1.5rem!important}
  .closing{height:100svh!important;min-height:0!important;padding:0 2rem!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}
}

.manifesto-rail{display:none}
@media(min-width:1200px) and (min-height:800px){
  .manifesto-rail{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:.65rem!important;min-height:0!important;padding-top:1rem!important}
  .manifesto-rail figure{margin:0!important;min-width:0!important;overflow:hidden!important;background:#111!important}
  .manifesto-rail img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;transition:opacity .22s ease!important}
  .manifesto-rail figure:nth-child(2) img{object-position:center 38%!important}
  .manifesto-rail figure:nth-child(4) img{object-position:center 20%!important}
}

/* First-panel type hierarchy and strip focal points. */
@media(min-width:801px){
  .site-header .wordmark{width:22vw!important;min-width:20rem!important;height:4.75rem!important;display:flex!important;flex-direction:column!important;justify-content:center!important;font-family:"Archivo Black",Arial Black,sans-serif!important;letter-spacing:-.075em!important;line-height:.72!important}
  .site-header .wordmark span{font-size:clamp(2.25rem,3.2vw,3.6rem)!important}
  .site-header .wordmark em{font-family:"Archivo Black",Arial Black,sans-serif!important;font-size:clamp(.85rem,1.1vw,1.25rem)!important;font-style:normal!important;letter-spacing:.02em!important;text-align:left!important;margin-top:.32rem!important}
  .site-header nav a,.site-header .header-cta{font-size:.8rem!important;line-height:1!important;text-transform:uppercase!important;letter-spacing:.09em!important}
  .hero-actions .button,.hero-actions .text-link{font-family:"DM Mono",monospace!important;font-size:.82rem!important;font-weight:500!important;line-height:1!important;letter-spacing:.07em!important;text-transform:uppercase!important}
  .hero-actions .text-link{padding:1rem 0!important;border-bottom-width:1px!important}
  .hero-note{font-size:.8rem!important;line-height:1.2!important;text-transform:uppercase!important;letter-spacing:.065em!important}
  .hero-strips .portrait-strip:nth-child(3) img{object-position:57% center!important}
  .hero-strips .portrait-strip:nth-child(5) img{object-position:24% center!important}
}
.brand-summary{background:#111!important;color:#fff!important;min-height:28rem!important;padding:3rem!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important;font-family:"DM Mono",monospace!important}
.brand-summary p,.brand-summary span{font-size:.78rem!important;letter-spacing:.08em!important;line-height:1.6!important;margin:0!important}
.brand-summary strong{font-family:"Archivo Black",Arial Black,sans-serif!important;font-size:clamp(2rem,4vw,4.5rem)!important;letter-spacing:-.07em!important;line-height:.9!important;color:#008cff!important}
@media(max-width:800px){.session{height:auto!important;max-height:none!important;padding:4rem 1.35rem!important;overflow:visible!important}.session-strips{height:400px!important}.brand-summary{min-height:22rem!important}}
