:root{
  --bg:#f1efe9;
  --ink:#171716;
  --muted:#78756f;
  --line:#cfcbc2;
  --max:1600px;
  --pad:clamp(22px,3.4vw,58px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,Arial,sans-serif;font-size:14px;line-height:1.45}
a{color:inherit;text-decoration:none}
img{max-width:100%}
figure{margin:0}
.topbar{position:fixed;inset:0 0 auto 0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:22px var(--pad);mix-blend-mode:multiply;background:linear-gradient(to bottom,rgba(241,239,233,.94),rgba(241,239,233,0));backdrop-filter:blur(4px)}
.brand{font-weight:600;letter-spacing:.08em;font-size:17px}
nav{display:flex;gap:26px;font-size:12px;letter-spacing:.08em}
nav a,.text-link,.footer-links a{border-bottom:1px solid transparent;transition:border-color .25s}
nav a:hover,.text-link:hover,.footer-links a:hover{border-color:currentColor}
.section-pad{width:min(100%,var(--max));margin:auto;padding-left:var(--pad);padding-right:var(--pad)}
.eyebrow{font-size:11px;letter-spacing:.14em;margin:0 0 20px;text-transform:uppercase}
h1,h2,h3,p{margin-top:0}

/* HERO */
.hero{min-height:100vh;display:grid;grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);gap:clamp(32px,4vw,72px);align-items:end;padding-top:110px;padding-bottom:var(--pad)}
.hero-copy{align-self:center;padding-bottom:0;position:relative;z-index:2;min-width:0}
h1{font-family:Manrope,Inter,sans-serif;font-weight:300;font-size:clamp(58px,5.65vw,108px);line-height:.92;letter-spacing:-.058em;margin-bottom:34px;white-space:normal;max-width:100%}
.hero-sub{max-width:430px;font-family:Manrope,Inter,sans-serif;font-weight:300;font-size:clamp(18px,1.55vw,28px);line-height:1.25}
.hero-actions{display:flex;gap:28px;margin-top:36px;flex-wrap:wrap}
.text-link{font-size:11px;letter-spacing:.1em}
.image-frame,.project-image{background:#d7d3ca;overflow:hidden;position:relative}
.hero-frame{height:min(84vh,930px)}
.hero-frame img,.project-image img,.portrait img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .8s cubic-bezier(.22,.61,.36,1)}
.hero-frame img{object-position:center 53%}

/* WORK */
.work{padding-top:165px;padding-bottom:170px}
.section-head{display:flex;justify-content:space-between;align-items:end;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:58px}
.section-head .eyebrow{margin:0}.muted{margin:0;color:var(--muted);font-size:12px}
.case{margin-bottom:160px}
.case:last-child{margin-bottom:0}
.case-title{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}
.case-title h2{font-weight:500;font-size:14px;letter-spacing:.02em;margin:0}
.case-title span{font-size:11px;color:var(--muted)}
.project-image{margin:0}
.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:var(--pad)}
.secondary-row{margin-top:var(--pad)}
.ratio-4-5{aspect-ratio:4/5}
.ratio-3-2{aspect-ratio:3/2}
.ratio-5-4{aspect-ratio:5/4}
.ratio-square{aspect-ratio:1/1}
.project-image img{object-position:center center}
.case:hover .project-image img{transform:scale(1.012)}
.durbuy-main{aspect-ratio:16/9}
.durbuy-main img{object-position:center 58%}
.olse-project-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:var(--pad);align-items:end}
.olse-portrait{aspect-ratio:2/3;width:100%}
.lakeside-pair img{object-position:center center}
.collection-grid figure{margin:0}
.collection-grid figcaption{margin-top:10px;font-size:10px;letter-spacing:.12em;color:var(--muted)}
.collection-grid .ratio-5-4 img{object-position:center 47%}

/* ABOUT */
.about{display:grid;grid-template-columns:1.22fr .78fr;gap:8vw;padding-top:150px;padding-bottom:155px;border-top:1px solid var(--line);align-items:start}
.about-copy h2{font-family:Manrope,Inter,sans-serif;font-weight:300;font-size:clamp(40px,4.8vw,78px);line-height:1.04;letter-spacing:-.043em;margin:0 0 64px;max-width:1020px}
.about-body{max-width:650px}.about-body p{font-size:16px;margin:0}
.portrait{aspect-ratio:4/5}
.portrait img{object-position:50% 35%}

/* CONTACT */
.contact{padding-top:180px;padding-bottom:180px;border-top:1px solid var(--line)}
.contact h2{font-family:Manrope,Inter,sans-serif;font-weight:300;font-size:clamp(54px,7.5vw,128px);line-height:.95;letter-spacing:-.055em;margin:0 0 26px}
.contact>p:not(.eyebrow){font-size:18px;max-width:520px}
.contact-mail{display:inline-block;font-family:Manrope,Inter,sans-serif;font-size:clamp(24px,2.6vw,44px);margin:30px 0 46px;border-bottom:1px solid var(--ink)}
.cta-button{display:block;width:max-content;border:1px solid var(--ink);padding:15px 20px;font-size:11px;letter-spacing:.12em;transition:.25s}
.cta-button:hover{background:var(--ink);color:var(--bg)}
.footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding-top:24px;padding-bottom:32px;font-size:11px;letter-spacing:.05em}.footer-links{display:flex;gap:24px}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}.reveal.is-visible{opacity:1;transform:none}

@media(max-width:1120px){
  .hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px}
  h1{font-size:clamp(58px,5.3vw,84px)}
  .about{gap:5vw}
}
@media(max-width:850px){
  .topbar{padding-top:18px}
  .hero{grid-template-columns:1fr;min-height:auto;padding-top:110px;gap:34px}
  .hero-media{order:-1}
  .hero-frame{height:auto;aspect-ratio:4/5}
  .hero-frame img{object-position:center center}
  .hero-copy{align-self:auto;padding-bottom:22px}
  h1{font-size:clamp(56px,12vw,92px)}
  .work{padding-top:100px;padding-bottom:110px}
  .case{margin-bottom:105px}
  .durbuy-main{aspect-ratio:4/3}
  .about{grid-template-columns:1fr;padding-top:100px;padding-bottom:105px;gap:55px}
  .about-image{max-width:68vw}
  .contact{padding-top:120px;padding-bottom:120px}
  .olse-project-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  nav{gap:14px}
  .hero-actions{gap:18px}
  .section-head{align-items:flex-start;gap:12px;flex-direction:column;margin-bottom:34px}
  .case-title{align-items:flex-start;gap:8px;flex-direction:column}
  .grid-two,.olse-project-grid{grid-template-columns:1fr}
  .secondary-row{margin-top:22px}
  .durbuy-main{aspect-ratio:4/5}.durbuy-main img{object-position:50% 58%}
  .ratio-3-2,.ratio-5-4{aspect-ratio:4/5}
  .ratio-3-2 img,.ratio-5-4 img{object-position:center center}
  .olse-portrait{width:100%;aspect-ratio:4/5}
  .about-image{max-width:none}
  .about-copy h2{margin-bottom:42px}
  .footer{gap:20px;flex-direction:column}
  .contact-mail{word-break:break-word}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.hero-frame img,.project-image img,.portrait img{transition:none}
}

/* FAQ */
.faq{padding-top:150px;padding-bottom:155px;border-top:1px solid var(--line);display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw;align-items:start}
.faq-head h2{font-family:Manrope,Inter,sans-serif;font-weight:300;font-size:clamp(42px,4.6vw,76px);line-height:1;letter-spacing:-.045em;margin:0}
.faq-list{border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:25px 0;font-family:Manrope,Inter,sans-serif;font-weight:300;font-size:clamp(20px,1.8vw,30px);line-height:1.2;letter-spacing:-.025em}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:'+';font-family:Inter,Arial,sans-serif;font-size:22px;font-weight:300;line-height:1;color:var(--muted);transition:transform .25s ease,color .25s ease}
.faq-list details[open] summary::after{transform:rotate(45deg);color:var(--ink)}
.faq-answer{max-width:760px;padding:0 54px 28px 0;color:var(--muted)}
.faq-answer p{font-size:15px;line-height:1.6;margin:0}

@media(max-width:850px){
  .faq{grid-template-columns:1fr;gap:48px;padding-top:100px;padding-bottom:105px}
}
@media(max-width:560px){
  .faq-list summary{padding:21px 0;font-size:20px}
  .faq-answer{padding-right:20px;padding-bottom:24px}
}

/* COURTYARD RESIDENCES */
.courtyard-project-grid{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(0,.72fr);gap:var(--pad);align-items:stretch}
.courtyard-detail{aspect-ratio:4/5}
.courtyard-detail img{object-position:center 50%}
.courtyard-context-stack{display:grid;grid-template-rows:1fr 1fr;gap:var(--pad);min-height:0}
.courtyard-context{min-height:0}
.courtyard-context img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.courtyard-context-a img{object-position:center 48%}
.courtyard-context-b img{object-position:center 55%}

@media(max-width:850px){
  .courtyard-project-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)}
}
@media(max-width:560px){
  .courtyard-project-grid{grid-template-columns:1fr}
  .courtyard-context-stack{display:grid;grid-template-rows:none;gap:22px}
  .courtyard-context{aspect-ratio:4/5}
  .courtyard-detail,.courtyard-context{width:100%}
  .courtyard-context-a img,.courtyard-context-b img{object-position:center center}
}
