:root{
  --sage:#6D806C; --sage-deep:#56664F; --brand:#2E5656;
  --cream:#F7F5F0; --charcoal:#323232;
  --stone:#D8D3C8; --gold:#C4A76A;
  --bg:var(--cream); --ink:var(--charcoal); --ink-soft:#5A5A55;
  --rule:rgba(109,128,108,.3);
  --gutter:clamp(1.35rem,4.5vw,5rem);
  --chapter:clamp(2.75rem,4.5vw,5rem);
  --f-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  --f-display:'Cormorant Garamond',Georgia,'Times New Roman',serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:var(--cream);--ink:var(--charcoal);}}
:root[data-theme="dark"]{--bg:var(--cream);--ink:var(--charcoal);}
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);
  font-size:clamp(1rem,.97rem + .16vw,1.06rem);font-weight:300;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;display:block;}
a{color:inherit;}
::selection{background:var(--stone);color:var(--charcoal);}
:focus-visible{outline:2px solid var(--sage);outline-offset:4px;}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:300;letter-spacing:-.012em;margin:0;text-wrap:balance;}
h1{font-size:clamp(2.8rem,1.5rem + 5.2vw,6.6rem);line-height:1.02;}
h2{font-size:clamp(1.9rem,1.28rem + 2.6vw,3.5rem);line-height:1.06;}
h3{font-size:clamp(1.4rem,1.12rem + 1.2vw,2.1rem);line-height:1.18;}
p{margin:0 0 1.1em;} p:last-child{margin-bottom:0;}
.lede{font-family:var(--f-display);font-size:clamp(1.35rem,1.05rem + 1.35vw,2rem);line-height:1.32;font-weight:300;}
.wrap{max-width:84rem;margin-inline:auto;padding-inline:var(--gutter);}
.chapter{padding-block:var(--chapter);}
section[id],figure[id]{scroll-margin-top:clamp(4.5rem,8vh,6.5rem);}
.two-col{display:grid;grid-template-columns:1fr;gap:clamp(1.4rem,2.8vw,3.25rem);
  margin-top:clamp(1.25rem,2.4vw,2rem);align-items:start;}
@media (min-width:56rem){.two-col{grid-template-columns:1.05fr .95fr;}}

/* Header */
.masthead{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;
  justify-content:space-between;gap:1.5rem;padding:.85rem var(--gutter);
  transition:background .45s ease,box-shadow .45s ease,padding .45s ease;}
.masthead.is-lifted{background:rgba(247,245,240,.95);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--rule);padding-block:.65rem;}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--cream);transition:color .45s ease;}
.brand .wordmark{font-family:var(--f-display);font-weight:400;line-height:.94;
  font-size:clamp(1.45rem,2.3vw,2.05rem);letter-spacing:.01em;}
.is-lifted .brand{color:var(--brand);}
.brand .logo{height:clamp(46px,5.5vw,66px);width:auto;display:block;transition:height .45s ease;}
.is-lifted .brand .logo{height:clamp(40px,4.6vw,54px);}
.masthead nav{display:flex;align-items:center;gap:clamp(1rem,2vw,2.2rem);}
.masthead nav a{text-decoration:none;font-size:.95rem;color:var(--cream);opacity:.9;
  padding-block:.3rem;border-bottom:1px solid transparent;
  transition:color .45s ease,opacity .25s ease,border-color .25s ease;}
.is-lifted nav a{color:var(--ink-soft);opacity:1;}
.masthead nav a:hover{opacity:1;border-bottom-color:var(--gold);}
.masthead nav a.call{color:var(--cream);opacity:1;border:1px solid rgba(247,245,240,.55);
  border-radius:999px;padding:.45rem 1.25rem;}
.is-lifted nav a.call{color:var(--sage);border-color:var(--sage);}
.masthead nav a.call:hover{background:var(--sage);color:var(--cream);border-color:var(--sage);}
@media (max-width:52rem){.nav-hide{display:none;}}

/* Photographs */
.ph{position:relative;overflow:hidden;
  background:radial-gradient(120% 90% at 25% 15%,rgba(216,211,200,.85) 0%,rgba(109,128,108,.55) 55%,rgba(86,102,79,.75) 100%);}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.ph img.failed{opacity:0;}

/* Hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;isolation:isolate;}
.hero .ph{position:absolute;inset:0;z-index:-2;}
.hero .ph img{object-position:50% 26%;}
.hero::before{content:'';position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(50,50,50,.44) 0%,rgba(50,50,50,.06) 32%,rgba(50,50,50,.12) 55%,rgba(50,50,50,.66) 100%);}
.hero-inner{width:100%;padding:0 var(--gutter) clamp(3.5rem,8vh,6.5rem);max-width:84rem;margin-inline:auto;color:var(--cream);}
.hero h1{max-width:17ch;text-shadow:0 1px 40px rgba(40,42,38,.35);}
.hero-sub{margin-top:clamp(1.2rem,2.5vh,2rem);max-width:32rem;font-size:1.05rem;
  color:rgba(247,245,240,.93);text-shadow:0 1px 24px rgba(40,42,38,.45);}
.scroll-cue{margin-top:clamp(1.75rem,4vh,2.75rem);display:block;width:3.5rem;height:1px;background:rgba(247,245,240,.5);}
.reveal{opacity:0;transform:translateY(14px);animation:rise 1.4s cubic-bezier(.16,.84,.34,1) forwards;}
.reveal.d1{animation-delay:.15s}.reveal.d2{animation-delay:.4s}.reveal.d3{animation-delay:.6s}
@keyframes rise{to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.reveal{animation:none;opacity:1;transform:none;}}

/* Opening */
.opening h2{max-width:22ch;}
.questions{padding-left:clamp(1.1rem,2vw,1.9rem);border-left:1px solid var(--gold);
  font-family:var(--f-display);font-style:italic;
  font-size:clamp(1.28rem,1.02rem + 1.05vw,1.85rem);line-height:1.34;color:var(--sage-deep);}
.questions p{margin-bottom:.55em;}
.emphatic strong{font-weight:500;color:var(--ink);}
.full-line{margin-top:clamp(1.6rem,2.6vw,2.4rem);padding-top:clamp(1.4rem,2.2vw,2rem);border-top:1px solid var(--rule);}
.full-line .lede{color:var(--sage-deep);max-width:none;}

/* Plate */
.plate{position:relative;min-height:min(88svh,48rem);display:flex;align-items:flex-end;isolation:isolate;margin:0;}
.plate .ph{position:absolute;inset:0;z-index:-2;}
.plate .ph img{object-position:50% 30%;}
.plate::before{content:'';position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(50,50,50,.04) 45%,rgba(50,50,50,.62) 100%);}
.plate figcaption{width:100%;max-width:84rem;margin-inline:auto;
  padding:0 var(--gutter) clamp(2.5rem,6vh,4.5rem);
  font-family:var(--f-display);font-style:italic;
  font-size:clamp(1.6rem,1.1rem + 2.1vw,3rem);line-height:1.22;color:var(--cream);
  text-shadow:0 1px 30px rgba(40,42,38,.4);}
.plate figcaption span{display:block;max-width:22ch;}

/* Process */
.process-intro{margin-top:clamp(1rem,2vw,1.6rem);}
.process-intro .lede{color:var(--sage-deep);max-width:32ch;}
.eight{margin-top:.6rem;font-family:var(--f-display);
  font-size:clamp(1.25rem,1.02rem + .95vw,1.7rem);color:var(--ink);}
.steps{margin-top:clamp(1.6rem,2.6vw,2.4rem);display:grid;grid-template-columns:1fr;
  gap:clamp(.85rem,1.4vw,1.25rem);}
@media (min-width:46rem){.steps{grid-template-columns:1fr 1fr;}}
@media (min-width:76rem){.steps{grid-template-columns:1fr 1fr 1fr;}.step.span2{grid-column:span 2;}}
.step{position:relative;border:1px solid var(--rule);padding:clamp(1.1rem,1.8vw,1.55rem);
  display:flex;flex-direction:column;gap:.35rem;}
.step-head{display:flex;align-items:baseline;gap:.7rem;}
.step-n{font-family:var(--f-display);font-style:italic;font-size:1.75rem;line-height:1;color:var(--gold);flex:0 0 auto;}
.step h3{font-size:clamp(1.22rem,1.06rem + .5vw,1.5rem);font-weight:500;color:var(--charcoal);letter-spacing:-.005em;}
.step p{font-size:.92rem;line-height:1.5;color:var(--ink-soft);margin-bottom:.55em;}
.step .onward{margin-top:auto;padding-top:.85rem;align-self:flex-end;color:var(--gold);font-size:1.1rem;line-height:1;}
.step.final{background:rgba(216,211,200,.45);border-color:transparent;}
.step.final p{color:var(--ink);}
.step-photo{margin-top:.9rem;}
.step-photo .ph{aspect-ratio:16/9;}
@media (min-width:76rem){
  .step-photo{flex:1 1 auto;display:flex;min-height:7rem;}
  .step-photo .ph{aspect-ratio:auto;width:100%;height:100%;min-height:7rem;}
}
.appraisal-split{display:grid;grid-template-columns:1fr;gap:.8rem clamp(1.5rem,3vw,2.5rem);margin-top:.2rem;}
@media (min-width:40rem){.appraisal-split{grid-template-columns:1fr 1fr;}}
.appraisal-split h4{font-size:1rem;color:var(--sage-deep);margin-bottom:.25em;
  font-family:var(--f-body);font-weight:500;letter-spacing:.03em;}
.appraisal-split p{margin-bottom:0;}
.aside-note{margin:clamp(1.4rem,2.2vw,2rem) 0 0;max-width:none;
  font-family:var(--f-display);font-size:clamp(1.22rem,1rem + .9vw,1.7rem);
  line-height:1.3;color:var(--sage-deep);}
.aside-note.strong{color:var(--ink);font-weight:500;
  font-size:clamp(1.35rem,1.05rem + 1.15vw,2rem);
  margin-top:clamp(.6rem,1vw,.9rem);}

/* Why */
.field{background:var(--sage);color:var(--cream);padding-bottom:0;}
.field h2{color:var(--cream);max-width:26ch;}
.reasons{margin-top:clamp(1.75rem,3vw,2.75rem);display:grid;grid-template-columns:1fr;
  gap:clamp(1.5rem,2.6vw,2.4rem) clamp(2rem,4vw,4rem);}
@media (min-width:52rem){.reasons{grid-template-columns:1fr 1fr;}}
.reason{padding-top:1.1rem;border-top:1px solid rgba(247,245,240,.26);}
.reason h3{color:var(--cream);margin-bottom:.4em;}
.reason p{color:rgba(247,245,240,.9);font-size:.97rem;line-height:1.58;}
.reason.wide{grid-column:1/-1;}
.bleed{margin-top:clamp(2rem,3.5vw,3rem);width:100vw;margin-left:50%;transform:translateX(-50%);}
.bleed .ph{aspect-ratio:21/9;}
@media (max-width:52rem){.bleed .ph{aspect-ratio:4/3;}}

/* Film */
.film{background:#242520;color:var(--cream);padding-block:clamp(3rem,5vw,4.5rem);}
.film-head{max-width:52rem;}
.film h2{color:var(--cream);max-width:none;}
.film-intro{color:rgba(247,245,240,.78);margin-top:.9rem;font-size:1.05rem;}
.film-intro strong{font-weight:400;color:var(--cream);}
.player{position:relative;margin-top:clamp(1.75rem,3vw,2.75rem);aspect-ratio:16/9;overflow:hidden;
  background:#151614;cursor:pointer;border:0;padding:0;width:100%;display:block;color:inherit;font:inherit;}
.player .ph{position:absolute;inset:0;}
.player .ph img{transition:transform 1.2s cubic-bezier(.16,.84,.34,1),filter .8s ease;filter:saturate(.92) brightness(.86);}
.player:hover .ph img{transform:scale(1.02);filter:saturate(1) brightness(.95);}
@media (prefers-reduced-motion:reduce){.player .ph img,.player:hover .ph img{transition:none;transform:none;}}
.player-ui{position:absolute;inset:0;display:grid;place-items:center;
  background:linear-gradient(0deg,rgba(21,22,20,.5),rgba(21,22,20,.1));}
.player-dot{width:clamp(3.2rem,6vw,4.4rem);aspect-ratio:1;border-radius:50%;
  border:1px solid rgba(247,245,240,.75);display:grid;place-items:center;
  transition:background .35s ease,border-color .35s ease;}
.player:hover .player-dot{background:var(--cream);border-color:var(--cream);}
.player-dot svg{width:.85rem;height:.95rem;fill:var(--cream);transition:fill .35s ease;transform:translateX(1px);}
.player:hover .player-dot svg{fill:#242520;}
.player iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.film-fallback{margin-top:1rem;font-size:.85rem;letter-spacing:.06em;color:rgba(247,245,240,.6);}
.film-fallback:empty{display:none;}

/* My story */
.story h2{max-width:24ch;}
.story .opening-line{margin-top:.9rem;color:var(--sage-deep);max-width:24ch;}
.story-cols{margin-top:clamp(1.4rem,2.4vw,2rem);columns:1;column-gap:clamp(2rem,4vw,4rem);}
@media (min-width:56rem){.story-cols{columns:2;}}
.story-cols p{break-inside:avoid;}
.story-figs{display:grid;grid-template-columns:1fr;gap:clamp(1rem,1.8vw,1.5rem);margin-top:clamp(1.75rem,3vw,2.5rem);}
@media (min-width:52rem){.story-figs{grid-template-columns:1fr 1fr 1fr;}}
.story-figs .ph{aspect-ratio:4/3;}
.carousel img{opacity:0;transition:opacity 1.6s ease,transform 9s linear;transform:scale(1.05);z-index:1;}
.carousel img:first-child{opacity:1;z-index:0;}
.carousel img.on{opacity:1;transform:scale(1);z-index:2;}
.carousel img.failed{opacity:0 !important;}
@media (prefers-reduced-motion:reduce){.carousel img{transition:opacity .4s ease;transform:none;}}
.sig{margin-top:clamp(1.75rem,3vw,2.5rem);font-family:var(--f-display);font-style:italic;font-size:1.35rem;color:var(--sage-deep);}
.sig span{display:block;font-family:var(--f-body);font-style:normal;font-size:.8rem;letter-spacing:.06em;color:var(--ink-soft);margin-top:.35rem;}

/* FAQ */
.faq{background:rgba(216,211,200,.34);}
.faq h2{max-width:24ch;}
.faq-list{margin-top:clamp(1.5rem,2.6vw,2.4rem);display:grid;grid-template-columns:1fr;
  column-gap:clamp(2.5rem,5vw,5rem);align-items:start;}
@media (min-width:56rem){.faq-list{grid-template-columns:1fr 1fr;}}
details{border-top:1px solid var(--rule);}
.faq-col details:last-of-type{border-bottom:1px solid var(--rule);}
summary{list-style:none;cursor:pointer;padding-block:.9rem;display:flex;align-items:baseline;
  justify-content:space-between;gap:1.25rem;font-family:var(--f-display);
  font-size:clamp(1.1rem,1rem + .5vw,1.35rem);line-height:1.24;color:var(--ink);transition:color .3s ease;}
summary::-webkit-details-marker{display:none;}
summary:hover{color:var(--sage-deep);}
.mark{flex:0 0 auto;position:relative;width:.85rem;height:.85rem;margin-top:.3rem;}
.mark::before,.mark::after{content:'';position:absolute;background:var(--gold);
  transition:transform .35s cubic-bezier(.16,.84,.34,1),opacity .35s ease;}
.mark::before{inset:50% 0 auto 0;height:1px;transform:translateY(-50%);}
.mark::after{inset:0 50% auto auto;width:1px;height:100%;transform:translateX(50%);}
details[open] .mark::after{opacity:0;transform:translateX(50%) rotate(90deg);}
details .answer{padding-bottom:1rem;color:var(--ink-soft);font-size:.94rem;line-height:1.58;}
details[open] .answer{animation:open .4s cubic-bezier(.16,.84,.34,1);}
@keyframes open{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.mark::before,.mark::after{transition:none;}details[open] .answer{animation:none;}}

/* Adjacent */
.adjacent{background:var(--sage-deep);color:var(--cream);padding-block:clamp(2.5rem,4.5vw,4rem);}
.adjacent-grid{display:grid;grid-template-columns:1fr;gap:1.1rem clamp(2rem,4vw,4rem);align-items:center;}
@media (min-width:56rem){.adjacent-grid{grid-template-columns:.85fr 1.15fr;}}
.adjacent h3{color:var(--cream);max-width:16ch;}
.adjacent p{color:rgba(247,245,240,.88);}
.adjacent a.more{display:inline-block;margin-top:.9rem;color:var(--cream);text-decoration:none;
  border-bottom:1px solid var(--gold);padding-bottom:.25rem;font-size:.95rem;}
.adjacent a.more:hover{border-bottom-color:var(--cream);}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr;gap:clamp(1.75rem,3.5vw,3.5rem);align-items:start;}
@media (min-width:56rem){.contact-grid{grid-template-columns:1.1fr .9fr;}}
.contact h2{max-width:20ch;}
.contact .lede{margin-top:.85rem;max-width:34ch;color:var(--sage-deep);}
.lines{display:grid;gap:0;margin-top:clamp(1.5rem,2.6vw,2.25rem);}
.line{display:block;padding-block:1rem;border-top:1px solid var(--rule);}
.lines .line:last-child{border-bottom:1px solid var(--rule);}
.line .k{display:block;font-size:.78rem;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:.25rem;}
.line .v{font-family:var(--f-display);font-size:clamp(1.35rem,1.05rem + 1.25vw,2rem);line-height:1.14;
  color:var(--ink);word-break:break-word;-webkit-user-select:all;user-select:all;cursor:text;}
.line .social{font-family:var(--f-body);font-size:1rem;color:var(--ink-soft);-webkit-user-select:auto;user-select:auto;}
.line .social a{text-decoration:none;border-bottom:1px solid var(--rule);padding-bottom:.15rem;transition:border-color .3s ease,color .3s ease;}
.line .social a:hover{color:var(--sage-deep);border-bottom-color:var(--gold);}
.wa{display:flex;align-items:center;gap:1.1rem;margin-top:1.35rem;text-decoration:none;}
.wa-code{flex:0 0 auto;width:clamp(5.75rem,10vw,7rem);padding:.55rem;background:var(--cream);
  border:1px solid var(--rule);color:var(--sage-deep);}
.wa-code svg{width:100%;height:auto;display:block;}
.wa-text{font-size:.95rem;color:var(--ink-soft);max-width:14rem;line-height:1.45;}
.note{margin-top:1.35rem;font-size:.92rem;color:var(--ink-soft);max-width:34rem;}
.contact .ph{aspect-ratio:4/5;}
@media (min-width:56rem) and (min-height:44rem){
  .contact{min-height:100svh;display:flex;align-items:center;}
  .contact > .wrap{width:100%;}
  .contact .ph{max-height:min(68svh,34rem);aspect-ratio:4/5;}
}

/* Footer */
footer{background:var(--charcoal);color:rgba(247,245,240,.7);padding-block:clamp(2.25rem,4vw,3.5rem);font-size:.88rem;}
footer .mark-line{font-family:var(--f-display);font-size:clamp(1.3rem,1.08rem + .9vw,1.85rem);
  color:var(--cream);line-height:1.28;max-width:32ch;}
.legal{margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid rgba(247,245,240,.14);
  font-size:.76rem;line-height:1.7;color:rgba(247,245,240,.5);}
