:root{--accent:#d8cbb8;--final-gutter:clamp(18px,4vw,72px)}

/* Brand */
.brand{gap:12px}
.brand-mark{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(244,241,235,.32);color:var(--paper);font:600 .56rem/1 var(--font-ui);letter-spacing:.13em}
.site-header.scrolled .brand-mark,.project-header.scrolled .brand-mark{border-color:rgba(244,241,235,.2)}
.editorial-hero::after{content:"FS";position:absolute;z-index:0;right:clamp(14px,3vw,54px);bottom:clamp(10px,2vw,34px);color:rgba(244,241,235,.025);font:400 clamp(11rem,22vw,28rem)/.7 var(--font-display);letter-spacing:-.08em;pointer-events:none}
.editorial-hero{position:relative;isolation:isolate}
.editorial-hero>*{position:relative;z-index:1}

/* Home project chapters */
.project-chapter{position:relative;isolation:isolate;min-height:100svh;min-height:100dvh;padding:clamp(74px,8vw,126px) var(--final-gutter);overflow:hidden}
.project-chapter::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 18% 42%,color-mix(in srgb,var(--chapter-tint) 72%,transparent),transparent 46%),linear-gradient(118deg,var(--chapter-tint),#080808 68%);opacity:.88}
.project-chapter::after{content:"";position:absolute;z-index:0;left:var(--final-gutter);right:var(--final-gutter);top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(244,241,235,.22),transparent)}
.chapter-media,.chapter-copy{position:relative;z-index:1;min-width:0}
.chapter-media{overflow:visible}
.chapter-media a{position:relative;min-height:58vh}
.chapter-media .responsive-picture{transition:transform 1.1s var(--ease),opacity .45s ease;transform:translate3d(0,var(--media-shift,0),0)}
.chapter-image,.chapter-secondary-image{width:auto!important;height:auto!important;max-width:calc(100% - 24px)!important;max-height:calc(78vh - 24px)!important;object-fit:contain!important;object-position:center!important;filter:none;transition:filter .45s ease,opacity .45s ease}
.project-chapter:hover .chapter-image,.project-chapter:hover .chapter-secondary-image{filter:brightness(1.035)}
.chapter-copy{gap:20px}
.chapter-copy h3{max-width:12ch;font-size:clamp(3.8rem,6.1vw,7.2rem);line-height:.84;letter-spacing:-.055em;overflow-wrap:normal;word-break:normal;hyphens:auto}
.chapter-copy h3.title-long{font-size:clamp(3.35rem,5.25vw,6.2rem);max-width:13ch}
.chapter-copy h3.title-extra-long{font-size:clamp(2.9rem,4.6vw,5.4rem);max-width:15ch;line-height:.9}
.chapter-meta{position:relative;padding-left:24px}
.chapter-meta::before{content:"";position:absolute;left:0;top:.45em;width:10px;height:1px;background:var(--paper);opacity:.55}
.chapter-copy>p{max-width:520px;font-size:clamp(.95rem,1.1vw,1.08rem)}

.layout-classic .chapter-media,.layout-classic .chapter-copy,.layout-panorama .chapter-media,.layout-panorama .chapter-copy,.layout-diptych .chapter-media,.layout-diptych .chapter-copy,.layout-finale .chapter-media,.layout-finale .chapter-copy{order:initial}
.layout-classic{grid-template-columns:minmax(0,1.45fr) minmax(360px,.55fr)}
.layout-classic .chapter-copy{padding-right:clamp(0px,2vw,34px)}

.layout-panorama{grid-template-columns:1fr;grid-template-rows:minmax(58vh,1fr) auto;gap:clamp(34px,4vw,64px)}
.layout-panorama .chapter-media{width:100%}
.layout-panorama .chapter-media a{min-height:60vh}
.layout-panorama .chapter-image{max-width:calc(100% - 36px)!important;max-height:64vh!important}
.layout-panorama .chapter-copy{display:grid;grid-template-columns:minmax(280px,.9fr) auto minmax(320px,.7fr);align-items:end;gap:clamp(22px,4vw,72px);width:min(1420px,100%);margin:0 auto}
.layout-panorama .chapter-copy h3{max-width:10ch}
.layout-panorama .chapter-meta{align-self:end;margin-bottom:7px}
.layout-panorama .chapter-copy>p{justify-self:end}

.layout-portrait{grid-template-columns:minmax(340px,.68fr) minmax(0,1.32fr);gap:clamp(46px,8vw,140px)}
.layout-portrait .chapter-copy{order:1;align-self:center;padding-left:clamp(0px,4vw,72px)}
.layout-portrait .chapter-media{order:2;justify-items:end}
.layout-portrait .chapter-media a{width:min(920px,100%)}
.layout-portrait .chapter-image{max-height:76vh!important}
.layout-portrait .chapter-copy h3{max-width:11ch}

.layout-diptych{grid-template-columns:1fr;grid-template-rows:auto auto;gap:clamp(42px,5vw,78px)}
.layout-diptych .chapter-media a{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);gap:clamp(12px,2vw,28px);align-items:center;min-height:58vh;width:100%}
.layout-diptych .chapter-media .responsive-picture{height:100%;display:grid;place-items:center;background:rgba(0,0,0,.14)}
.layout-diptych .chapter-image,.layout-diptych .chapter-secondary-image{max-width:calc(100% - 18px)!important;max-height:58vh!important}
.layout-diptych .chapter-copy{display:grid;grid-template-columns:minmax(300px,1.05fr) auto minmax(320px,.75fr);align-items:end;gap:clamp(22px,4vw,70px);width:min(1420px,100%);margin:0 auto}
.layout-diptych .chapter-copy>p{justify-self:end}
.layout-diptych .chapter-action{grid-column:1/-1}

.layout-finale{grid-template-columns:1fr;grid-template-rows:minmax(58vh,1fr) auto;gap:clamp(32px,4vw,64px);background:#070707}
.layout-finale::before{background:radial-gradient(circle at 70% 35%,color-mix(in srgb,var(--chapter-tint) 74%,transparent),transparent 48%),linear-gradient(150deg,#070707,var(--chapter-tint))}
.layout-finale .chapter-media a{min-height:62vh}
.layout-finale .chapter-image{max-width:calc(100% - 34px)!important;max-height:64vh!important}
.layout-finale .chapter-copy{width:min(1280px,100%);margin:0 auto;justify-items:end;text-align:right}
.layout-finale .chapter-copy h3{max-width:12ch}
.layout-finale .chapter-copy>p{max-width:480px}
.layout-finale .chapter-meta{padding-left:0;padding-right:24px}
.layout-finale .chapter-meta::before{left:auto;right:0}

/* One clear gallery action */
.chapter-media a,.gallery-card{position:relative}
.interaction-hint{position:absolute;z-index:8;left:clamp(12px,1.6vw,24px);bottom:clamp(12px,1.6vw,24px);display:flex;align-items:center;gap:8px;min-height:auto;padding:10px 0 8px;border:0;border-bottom:1px solid rgba(255,255,255,.68);background:linear-gradient(90deg,rgba(0,0,0,.66),rgba(0,0,0,.16));color:#fff;font-family:var(--font-ui);font-size:.58rem;font-weight:600;letter-spacing:.1em;line-height:1;text-transform:uppercase;white-space:nowrap;text-shadow:0 2px 18px rgba(0,0,0,.8);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);pointer-events:none;transition:gap .28s var(--ease),border-color .25s ease,opacity .25s ease}
.interaction-hint span{padding-left:10px}
.interaction-hint em{font-style:normal;color:rgba(255,255,255,.62)}
.interaction-hint strong{display:inline;min-width:0;height:auto;padding:0;border:0;font-size:inherit;font-weight:600}
.interaction-hint i{padding-right:10px;font-style:normal;font-size:.88rem;line-height:1}
.chapter-action{left:50%;transform:translateX(-50%)}
.chapter-media a:hover .chapter-action,.chapter-media a:focus-visible .chapter-action{gap:12px;transform:translateX(-50%);border-color:#fff;background:linear-gradient(90deg,rgba(0,0,0,.76),rgba(0,0,0,.24))}
.gallery-action{opacity:.82}
.gallery-card:hover .gallery-action,.gallery-card:focus-visible .gallery-action{gap:12px;opacity:1;border-color:#fff;background:linear-gradient(90deg,rgba(0,0,0,.76),rgba(0,0,0,.24))}
.gallery-card:focus-visible{outline:1px solid var(--project-accent);outline-offset:6px}
.layout-diptych .chapter-action{left:50%;bottom:18px}

/* About */
.about-section{grid-template-columns:minmax(560px,1.16fr) minmax(360px,.84fr)!important;gap:clamp(44px,7vw,112px)!important;align-items:center}
.about-photo{box-shadow:0 28px 90px rgba(0,0,0,.34)}
.about-photo::after{content:""!important;display:block!important;position:absolute;inset:auto 0 0;height:34%;background:linear-gradient(transparent,rgba(0,0,0,.82));pointer-events:none}
.about-photo-caption{position:absolute;z-index:3;left:clamp(18px,3vw,40px);right:clamp(18px,3vw,40px);bottom:clamp(16px,2vw,30px);display:flex;align-items:end;justify-content:space-between;gap:24px;padding-top:14px;border-top:1px solid rgba(255,255,255,.36);color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.75)}
.about-photo-caption strong{font:400 clamp(1.8rem,2.8vw,3.4rem)/1 var(--font-display);letter-spacing:-.035em}
.about-photo-caption span{font-size:.56rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase}
.about-copy h2{max-width:12ch!important;font-size:clamp(3.1rem,5.2vw,5.9rem)!important}
.about-copy{gap:24px}
.about-lead{max-width:15ch}
.about-facts{gap:13px}

/* Visible contact details */
.contact-grid a{grid-template-columns:minmax(90px,.22fr) minmax(0,1fr) auto;column-gap:clamp(18px,3vw,46px)}
.contact-grid .contact-label{color:var(--faint);font-size:.58rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.contact-grid .contact-value{min-width:0;font:400 clamp(1.35rem,2.9vw,3.25rem)/1.05 var(--font-display);letter-spacing:-.025em;overflow-wrap:anywhere}
.contact-grid a:hover .contact-value{color:var(--accent)}
.project-contact{align-items:start!important;display:grid!important;grid-template-columns:minmax(260px,.72fr) minmax(420px,1.28fr)!important}
.project-contact-intro{display:grid;gap:20px}
.project-contact-intro p{max-width:470px;color:var(--muted)}
.contact-details-list{border-top:1px solid var(--line)}
.contact-detail-row{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:22px;align-items:center;min-height:92px;border-bottom:1px solid var(--line);transition:padding .3s var(--ease),color .2s ease}
.contact-detail-row:hover{padding-left:12px;color:var(--project-accent)}
.contact-detail-row small{color:var(--faint);font-size:.56rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.contact-detail-row strong{min-width:0;font:400 clamp(1.25rem,2.2vw,2.45rem)/1 var(--font-display);letter-spacing:-.02em;overflow-wrap:anywhere}
.contact-detail-row i{font-style:normal}

/* Project openings and magazine galleries */
.project-opening{grid-template-columns:minmax(0,1.55fr) minmax(360px,.75fr);gap:clamp(40px,7vw,118px)}
.project-opening-copy{min-width:0}
.project-opening h1{max-width:11ch;font-size:clamp(4.2rem,7.4vw,8.4rem);line-height:.82;overflow-wrap:normal;word-break:normal;hyphens:auto}
.project-opening h1.title-long{font-size:clamp(3.7rem,6.3vw,7rem);max-width:13ch}
.project-opening h1.title-extra-long{font-size:clamp(3.15rem,5.4vw,6rem);max-width:15ch;line-height:.88}
.gallery-grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;grid-auto-flow:row dense;gap:clamp(32px,5vw,86px) clamp(12px,2vw,30px)!important;align-items:start}
.gallery-item{grid-column:span 3;min-width:0}
.gallery-item.gallery-feature-primary{grid-column:span 7}
.gallery-item.gallery-companion{grid-column:span 5;align-self:end;padding-top:clamp(36px,8vw,130px)}
.gallery-item.gallery-feature-wide{grid-column:span 6}
.gallery-item.gallery-sequence-start{margin-top:clamp(60px,10vw,170px)}
.gallery-item.gallery-ending{grid-column:span 5;justify-self:end;width:100%;margin-top:clamp(30px,6vw,90px)}
.gallery-media{background:transparent}
.gallery-image{background:var(--project-surface);transition:opacity .35s ease,filter .35s ease!important}
.gallery-card:hover .gallery-image{opacity:.94;filter:brightness(1.03)}
.gallery-note{max-width:36ch;padding-top:9px}
.gallery-item.gallery-feature-primary .gallery-note,.gallery-item.gallery-feature-wide .gallery-note{font-size:clamp(1.02rem,1.35vw,1.24rem);max-width:42ch}
.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:30px}
.gallery-heading::after{content:"";display:block;width:min(360px,34vw);height:1px;background:linear-gradient(90deg,var(--project-accent),transparent);opacity:.5}
.next-project-canvas{border:1px solid rgba(255,255,255,.08)}
.next-project-copy strong{max-width:12ch;overflow-wrap:normal;word-break:normal}

@media(max-width:1180px){
  .layout-classic,.layout-portrait{grid-template-columns:minmax(0,1.12fr) minmax(330px,.88fr);gap:clamp(36px,5vw,72px)}
  .layout-panorama .chapter-copy,.layout-diptych .chapter-copy{grid-template-columns:1fr 1fr}.layout-panorama .chapter-meta,.layout-diptych .chapter-meta{grid-column:1}.layout-panorama .chapter-copy>p,.layout-diptych .chapter-copy>p{grid-column:2;grid-row:1/3}
  .about-section{grid-template-columns:minmax(0,1fr) minmax(340px,.82fr)!important}
  .gallery-item{grid-column:span 4}.gallery-item.gallery-feature-primary{grid-column:span 8}.gallery-item.gallery-companion{grid-column:span 4}.gallery-item.gallery-feature-wide{grid-column:span 6}.gallery-item.gallery-ending{grid-column:span 6}
}

@media(max-width:820px){
  .brand-mark{width:30px;height:30px}
  .editorial-hero::after{font-size:46vw}
  .project-chapter,.layout-classic,.layout-panorama,.layout-portrait,.layout-diptych,.layout-finale{min-height:auto;grid-template-columns:1fr;grid-template-rows:auto auto;padding:78px 14px;gap:42px}
  .layout-portrait .chapter-copy,.layout-portrait .chapter-media{order:initial}
  .layout-panorama .chapter-copy,.layout-diptych .chapter-copy{display:grid;grid-template-columns:1fr;gap:20px}
  .layout-panorama .chapter-meta,.layout-diptych .chapter-meta,.layout-panorama .chapter-copy>p,.layout-diptych .chapter-copy>p{grid-column:auto;grid-row:auto;justify-self:start}
  .layout-diptych .chapter-media a{grid-template-columns:1fr;gap:12px}
  .layout-diptych .chapter-media .responsive-picture{height:auto}
  .layout-diptych .chapter-image,.layout-diptych .chapter-secondary-image{width:100%!important;max-width:100%!important;max-height:none!important}
  .layout-finale .chapter-copy{justify-items:start;text-align:left}
  .layout-finale .chapter-meta{padding-left:24px;padding-right:0}.layout-finale .chapter-meta::before{left:0;right:auto}
  .chapter-media a{min-height:0!important}
  .chapter-image,.chapter-secondary-image{width:100%!important;max-width:100%!important;max-height:none!important;transform:none!important}
  .chapter-copy h3,.chapter-copy h3.title-long,.chapter-copy h3.title-extra-long{font-size:clamp(3.7rem,16vw,6rem);max-width:13ch}
  .chapter-action{left:12px;bottom:12px;transform:none}
  .chapter-media a:hover .chapter-action,.chapter-media a:focus-visible .chapter-action{transform:none}
  .interaction-hint{left:10px;bottom:10px;font-size:.54rem;background:linear-gradient(90deg,rgba(0,0,0,.8),rgba(0,0,0,.3))}
  .about-section{grid-template-columns:1fr!important;gap:42px!important}
  .about-photo-caption{align-items:start;flex-direction:column;gap:8px}
  .about-copy h2{font-size:clamp(3rem,13vw,5rem)!important}
  .project-opening{grid-template-columns:1fr}
  .project-opening h1,.project-opening h1.title-long,.project-opening h1.title-extra-long{font-size:clamp(3.8rem,17vw,6.4rem);max-width:13ch}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:42px 12px!important}
  .gallery-item,.gallery-item.gallery-feature-primary,.gallery-item.gallery-companion,.gallery-item.gallery-feature-wide,.gallery-item.gallery-ending{grid-column:span 1;padding-top:0;margin-top:0;justify-self:stretch}
  .gallery-item.gallery-feature-primary,.gallery-item.gallery-feature-wide{grid-column:span 2}
  .project-contact{grid-template-columns:1fr!important;gap:42px!important}
  .contact-grid a{grid-template-columns:1fr auto;row-gap:8px;padding:22px 0}
  .contact-grid .contact-label{grid-column:1/-1}
  .contact-grid .contact-value{font-size:clamp(1.55rem,8vw,2.6rem)}
  .contact-detail-row{grid-template-columns:1fr auto;gap:8px;padding:20px 0}
  .contact-detail-row small{grid-column:1/-1}
  .contact-detail-row strong{font-size:clamp(1.4rem,7vw,2.2rem)}
}

@media(max-width:560px){
  .gallery-grid{grid-template-columns:1fr!important;gap:38px!important}
  .gallery-item,.gallery-item.gallery-feature-primary,.gallery-item.gallery-companion,.gallery-item.gallery-feature-wide,.gallery-item.gallery-ending{grid-column:1!important}
  .gallery-heading::after{display:none}
  .interaction-hint em,.interaction-hint strong{display:none}
}

@media(prefers-reduced-motion:reduce){
  .interaction-hint,.contact-detail-row,.chapter-media .responsive-picture{transition:none!important;transform:none!important}
}