:root{
  --bg:#F3F0E9;
  --paper:#FBF9F4;
  --ink:#171714;
  --muted:#6F6A62;
  --line:#D8D3C9;
  --sage:#717B6B;
  --lav:#D9D2E3;
  --ease:cubic-bezier(.76,0,.24,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Manrope",sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.header{position:fixed;inset:0 0 auto 0;z-index:50;height:74px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 4vw;background:rgba(243,240,233,.76);backdrop-filter:blur(18px);border-bottom:1px solid rgba(216,211,201,.65)}
.wordmark{font-family:"Prata",serif;font-size:20px}
.header nav{display:flex;gap:30px;font-size:12px}
.header nav a{opacity:.72;transition:.3s}.header nav a:hover{opacity:1}
.book-small{justify-self:end;border:1px solid var(--ink);border-radius:999px;padding:10px 17px;font-size:12px;transition:.35s var(--ease)}
.book-small:hover{background:var(--ink);color:white}
.menu{display:none;background:none;border:0}.menu span{display:block;width:22px;height:1px;background:var(--ink);margin:5px}
.hero{min-height:100vh;padding:140px 5vw 7vw;display:grid;grid-template-columns:1.1fr .9fr;gap:5vw;align-items:center}
.kicker{text-transform:uppercase;letter-spacing:.15em;font-size:10px;color:var(--muted);margin:0 0 24px}
h1,h2,blockquote{font-family:"Prata",serif;font-weight:400}
h1{font-size:clamp(58px,7.2vw,116px);line-height:.98;letter-spacing:-.045em;margin:0 0 34px;max-width:1100px}
.hero-text{font-size:18px;line-height:1.65;color:var(--muted);max-width:700px}
.hero-actions{display:flex;gap:24px;align-items:center;margin-top:42px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;min-height:52px;padding:0 25px;font-size:13px;transition:.45s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn.dark{background:var(--ink);color:#fff}
.text-link{font-size:13px;border-bottom:1px solid var(--ink);padding-bottom:4px}
.hero-image{position:relative;align-self:stretch;display:flex;align-items:flex-end}
.image-placeholder{width:100%;height:78vh;min-height:620px;background:linear-gradient(135deg,#D8D2C8,#EEE9DF 55%,#C9C1B5);display:flex;flex-direction:column;justify-content:flex-end;padding:28px;border-radius:2px}
.image-placeholder span{font-family:"Prata",serif;font-size:26px}.image-placeholder small{color:#5e5952;margin-top:5px}
.hero-caption{position:absolute;left:-36px;bottom:36px;background:var(--paper);padding:14px 18px;font-size:11px}
.manifest{padding:13vw 10vw;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.manifest p{font-family:"Prata",serif;font-size:clamp(38px,5.2vw,84px);line-height:1.16;letter-spacing:-.03em;margin:0}
.editorial-section{display:grid;grid-template-columns:170px 1fr;gap:7vw;padding:12vw 6vw}
.side-label{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.editorial-main h2,.section-top h2,.method-title h2{font-size:clamp(44px,6vw,88px);line-height:1.04;letter-spacing:-.04em;margin:0 0 50px}
.columns{display:grid;grid-template-columns:1fr 1fr;gap:5vw;max-width:1000px}
.columns p,.method-copy p{font-size:17px;color:var(--muted);line-height:1.75}
.image-story{display:grid;grid-template-columns:1.25fr .75fr;min-height:85vh}
.story-image{background:#D7D0C4}.wide-placeholder{height:100%;min-height:720px;display:flex;align-items:flex-end;padding:30px;background:linear-gradient(140deg,#D0C8BA,#E9E3D8 48%,#B6AFA3);font-size:12px;color:#625c54}
.story-note{padding:8vw;display:flex;flex-direction:column;justify-content:center}
.story-note blockquote{font-size:clamp(34px,4vw,62px);line-height:1.22;margin:0}
.work-section,.process,.materials,.faq{padding:12vw 6vw}
.section-top{max-width:1100px;margin-bottom:70px}
.work-list{border-top:1px solid var(--line)}
.work-row{display:grid;grid-template-columns:70px 1.05fr .95fr;gap:3vw;align-items:start;padding:34px 0;border-bottom:1px solid var(--line)}
.work-row>span{font-size:11px;color:var(--muted)}
.work-row h3{font-family:"Prata",serif;font-weight:400;font-size:clamp(28px,3vw,48px);line-height:1.1;margin:0}
.work-row p{margin:2px 0 0;color:var(--muted);max-width:560px}
.method{padding:12vw 6vw;background:#E7E1EB}
.method-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw;align-items:start}
.diagram{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(23,23,20,.25);border-left:1px solid rgba(23,23,20,.25)}
.diagram div{min-height:220px;border-right:1px solid rgba(23,23,20,.25);border-bottom:1px solid rgba(23,23,20,.25);padding:24px;display:flex;flex-direction:column;justify-content:space-between}
.diagram small{font-size:10px}.diagram strong{font-family:"Prata",serif;font-size:34px;font-weight:400}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.process-grid article{padding:28px 28px 65px 0;border-right:1px solid var(--line);min-height:330px}
.process-grid article+article{padding-left:28px}
.process-grid span{font-size:11px;color:var(--muted)}
.process-grid h3{font-family:"Prata",serif;font-size:30px;font-weight:400;margin:80px 0 12px}
.process-grid p{color:var(--muted);font-size:14px}
.quote-section{display:grid;grid-template-columns:.75fr 1.25fr;min-height:80vh;background:var(--ink);color:#fff}
.quote-image{display:flex;align-items:end;padding:4vw}.portrait-small{height:70vh;width:100%;background:linear-gradient(150deg,#908981,#4c4844);display:grid;place-items:center;color:#ddd}
.quote-copy{padding:8vw 7vw;display:flex;flex-direction:column;justify-content:center}
.quote-copy .kicker{color:#aaa}
.quote-copy blockquote{font-size:clamp(36px,4.6vw,72px);line-height:1.18;margin:0}
.booking{padding:12vw 6vw;display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw;align-items:start}
.booking-copy h2{font-family:"Prata",serif;font-size:clamp(48px,6vw,88px);line-height:1.02;margin:0 0 28px}
.booking-copy>p{color:var(--muted);max-width:560px}
.price-line{display:flex;justify-content:space-between;max-width:520px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:40px 0}
.price-line strong{font-family:"Prata",serif;font-size:28px;font-weight:400}
.messengers{display:flex;gap:18px;flex-wrap:wrap;font-size:12px}
.calendar{background:var(--paper);padding:38px;border-radius:2px}
.calendar-head{display:flex;justify-content:space-between;align-items:flex-start}.calendar-head small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.12em}.calendar-head strong{font-family:"Prata",serif;font-size:30px;font-weight:400}
.week,.dates{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.week{margin:34px 0 10px;font-size:10px;color:var(--muted)}
.dates span{aspect-ratio:1;display:grid;place-items:center;font-size:13px;border-radius:50%}.dates .active{background:var(--lav)}
.wide{width:100%;margin-top:30px}.hint{display:block;color:var(--muted);margin-top:12px;line-height:1.4}
.material-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.material{border-top:1px solid var(--line);padding-top:18px}.material-image{aspect-ratio:4/3;margin-bottom:22px;background:#d4cec4}.material-image.one{background:linear-gradient(145deg,#c5b9aa,#ece4d7)}.material-image.two{background:linear-gradient(145deg,#aeb3a6,#e5e4dc)}.material-image.three{background:linear-gradient(145deg,#9da7a7,#d9d1c7)}
.material span,.material small{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}
.material h3{font-family:"Prata",serif;font-weight:400;font-size:27px;line-height:1.25;min-height:170px;margin:18px 0}
.faq-list{max-width:1100px}
details{border-top:1px solid var(--line);padding:27px 0}details:last-child{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;font-family:"Prata",serif;font-size:28px}summary::-webkit-details-marker{display:none}
details p{color:var(--muted);max-width:760px}
footer{padding:7vw 6vw 100px;background:#E9E4DB}
.footer-main{display:flex;justify-content:space-between;gap:40px}.footer-main p{font-size:12px;color:var(--muted)}
.footer-nav{display:flex;gap:24px;font-size:12px}.footer-bottom{margin-top:80px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}
.mobile-cta{display:none}
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1s var(--ease)}.reveal.visible{opacity:1;transform:none}

@media(max-width:900px){
  .header{grid-template-columns:1fr auto}.header nav,.book-small{display:none}.menu{display:block}
  .hero{grid-template-columns:1fr;padding:130px 5vw 60px}.hero-image{margin-top:40px}.image-placeholder{height:70vh;min-height:520px}.hero-caption{left:16px}
  .editorial-section{grid-template-columns:1fr}.columns{grid-template-columns:1fr}.image-story{grid-template-columns:1fr}.story-note{padding:80px 6vw}
  .work-row{grid-template-columns:45px 1fr}.work-row p{grid-column:2}.method-grid{grid-template-columns:1fr}.process-grid{grid-template-columns:1fr 1fr}
  .quote-section{grid-template-columns:1fr}.portrait-small{height:55vh}.booking{grid-template-columns:1fr}.material-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  h1{font-size:48px}.hero-text{font-size:16px}.hero-actions{align-items:flex-start;flex-direction:column}.manifest{padding:100px 6vw}
  .manifest p{font-size:36px}.editorial-section,.work-section,.process,.materials,.faq,.method,.booking{padding:90px 5vw}
  .editorial-main h2,.section-top h2,.method-title h2,.booking-copy h2{font-size:42px}.image-story{min-height:auto}.wide-placeholder{min-height:520px}
  .work-row h3{font-size:30px}.diagram div{min-height:150px}.diagram strong{font-size:24px}.process-grid{grid-template-columns:1fr}.process-grid article{border-right:0;border-bottom:1px solid var(--line);padding:28px 0 40px!important;min-height:auto}.process-grid h3{margin-top:50px}
  .quote-copy{padding:80px 5vw}.quote-copy blockquote{font-size:36px}.calendar{padding:22px}.material-grid{grid-template-columns:1fr}.material h3{min-height:auto}
  .footer-main{flex-direction:column}.footer-nav{flex-wrap:wrap}.mobile-cta{display:block;position:fixed;left:12px;right:12px;bottom:12px;z-index:60}.mobile-cta a{display:block;background:var(--ink);color:#fff;padding:15px;text-align:center;border-radius:999px;font-size:13px}
  footer{padding-bottom:100px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
