body{background:var(--ink)}
main{overflow:clip;background:var(--paper)}
.header{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(53,39,31,.08);background:rgba(246,241,233,.92);backdrop-filter:blur(16px)}
.scene{position:relative;isolation:isolate}
.hero{overflow:hidden}
.hero-copy{position:relative;z-index:2}
.hero-visual{clip-path:inset(0 100% 0 0);transition:clip-path 1.25s cubic-bezier(.22,1,.36,1)}
.loaded .hero-visual{clip-path:inset(0)}
.hero-visual img{height:112%;top:-6%;transform:translate3d(0,var(--shift,0),0) scale(1.08);will-change:transform}
.hero-copy>*{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1)}
.loaded .hero-copy>*{opacity:1;transform:none}
.loaded .hero-copy>*:nth-child(2){transition-delay:.12s}
.loaded .hero-copy>*:nth-child(3){transition-delay:.22s}
.loaded .hero-copy>*:nth-child(4){transition-delay:.3s}
.loaded .hero-copy>*:nth-child(5){transition-delay:.38s}
.principles{background:var(--paper);position:relative;z-index:3}
.approach{grid-template-columns:1.05fr .62fr .92fr;gap:5%;align-items:start;background:var(--paper)}
.approach-heading{position:sticky;top:130px}
.approach-photo{position:relative;margin:0;overflow:hidden;min-height:570px;box-shadow:0 28px 65px rgba(53,39,31,.16)}
.approach-photo img{position:absolute;inset:-5% 0;width:100%;height:110%;object-fit:cover;transform:translate3d(0,var(--shift,0),0) scale(1.04);will-change:transform}
.approach-photo:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(37,25,18,.7))}
.approach-photo figcaption{position:absolute;z-index:1;left:25px;right:25px;bottom:22px;color:#f5eadc;font-family:Georgia,serif;font-size:1.15rem;font-style:italic;line-height:1.35}
.approach-text{padding-top:96px}
.treatments{z-index:2;box-shadow:0 -24px 70px rgba(53,39,31,.08)}
.interlude{height:min(86vh,920px);min-height:650px;overflow:hidden;background:#211812;color:#f6f1e9}
.interlude>img{position:absolute;inset:-10% 0;width:100%;height:120%;object-fit:cover;transform:translate3d(0,var(--shift,0),0) scale(1.06);will-change:transform}
.interlude-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(29,19,13,.9) 0%,rgba(29,19,13,.57) 38%,rgba(29,19,13,.05) 76%),linear-gradient(0deg,rgba(29,19,13,.55),transparent 45%)}
.interlude-copy{position:absolute;z-index:2;left:7%;top:50%;max-width:580px;transform:translateY(-50%)}
.interlude-copy .eyebrow{color:#d6b990;margin-bottom:24px}
.interlude-copy h2{font-size:clamp(3.8rem,6.6vw,7.4rem);line-height:.98}
.interlude-copy h2 em{color:#d0b28d}
.interlude-copy>p:last-child{margin-top:30px;color:#e5d7c8;font-size:1.05rem}
.interlude-index{position:absolute;z-index:2;right:4%;bottom:28px;font-size:.75rem;letter-spacing:.16em;color:#e2cdb1}
.first{background:var(--paper);z-index:3}
.where{grid-template-columns:1fr 1.15fr;background:var(--paper);padding-bottom:0}
.where-photo{grid-column:1/-1;position:relative;overflow:hidden;height:min(62vw,650px);min-height:470px;margin:75px -7vw 0}
.where-photo img{position:absolute;inset:-6% 0;width:100%;height:112%;object-fit:cover;object-position:center 56%;transform:translate3d(0,var(--shift,0),0) scale(1.05);will-change:transform}
.where-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(38,26,18,.76),rgba(38,26,18,.08) 65%),linear-gradient(0deg,rgba(38,26,18,.38),transparent 45%)}
.where-photo figcaption{position:absolute;z-index:1;left:7%;bottom:9%;color:#fff5e6}
.where-photo figcaption span{font-size:.75rem;letter-spacing:.16em}
.where-photo figcaption p{font-family:Georgia,serif;font-style:italic;font-size:clamp(2.2rem,4vw,4.5rem);line-height:1.05;margin-top:14px}
.contact{padding:0;background:#211812;overflow:hidden}
.contact:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 15%,rgba(188,147,97,.18),transparent 38%),linear-gradient(135deg,transparent 0 49.8%,rgba(255,255,255,.04) 50%,transparent 50.2%);background-size:auto,90px 90px}
.contact-inner{position:relative;padding:120px 7%}
.js .reveal{opacity:0;transform:translateY(48px);transition:opacity .85s ease var(--delay,0ms),transform 1s cubic-bezier(.22,1,.36,1) var(--delay,0ms)}
.js .reveal.is-visible{opacity:1;transform:none}
.js .interlude-copy.reveal{transform:translateY(calc(-50% + 48px))}
.js .interlude-copy.reveal.is-visible{transform:translateY(-50%)}

@media(max-width:1150px){
  .approach{grid-template-columns:1fr .72fr}
  .approach-heading{position:static}
  .approach-photo{grid-row:1/3;grid-column:2;min-height:620px}
  .approach-text{padding-top:15px;grid-column:1}
}
@media(max-width:650px){
  .header{position:relative;backdrop-filter:none}
  .hero-visual{clip-path:inset(0 0 100% 0)}
  .loaded .hero-visual{clip-path:inset(0)}
  .hero-visual img{object-position:58% center}
  .approach{grid-template-columns:1fr;gap:32px}
  .approach-photo{grid-row:auto;grid-column:auto;min-height:500px}
  .approach-text{grid-column:auto;padding-top:4px}
  .interlude{min-height:610px;height:78vh}
  .interlude>img{object-position:68% center}
  .interlude-shade{background:linear-gradient(0deg,rgba(29,19,13,.92) 0%,rgba(29,19,13,.57) 58%,rgba(29,19,13,.1) 100%)}
  .interlude-copy{left:7%;right:7%;top:auto;bottom:72px;transform:none}
  .interlude-copy h2{font-size:3.6rem}
  .interlude-copy>p:last-child br{display:none}
  .interlude-index{display:none}
  .js .interlude-copy.reveal{transform:translateY(48px)}
  .js .interlude-copy.reveal.is-visible{transform:none}
  .where-photo{margin:38px -7vw 0;height:540px;min-height:0}
  .where-photo img{object-position:63% center}
  .where-photo figcaption{bottom:8%}
  .where-photo figcaption p{font-size:2.55rem}
  .contact-inner{padding:82px 7%}
}
@media(prefers-reduced-motion:reduce){
  .hero-visual,.hero-copy>*,.js .reveal{opacity:1;transform:none;clip-path:none;transition:none}
  .hero-visual img,.approach-photo img,.interlude>img,.where-photo img{transform:scale(1.04)}
}

/* Keep location copy and image caption inside the section's measured height. */
html{scroll-padding-top:calc(var(--sticky-header-height,110px) + 24px)}
.where{row-gap:0;column-gap:8%;align-items:start}
.where>*,.locations>*{min-width:0}
.where-photo{display:flex;align-items:flex-end;height:auto;min-height:clamp(470px,48vw,650px);padding:48px 7%;margin-top:60px}
.where-photo figcaption{position:relative;left:auto;right:auto;bottom:auto;max-width:100%;overflow-wrap:break-word}
.where-photo figcaption p{line-height:1.15}
@media(max-width:1050px){.where{column-gap:5%}}
@media(max-width:650px){
 html{scroll-padding-top:24px}
 .where{grid-template-columns:minmax(0,1fr);row-gap:30px}
 .where-photo{margin-top:8px;min-height:500px;padding:36px 7%}
}
