@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:opsz,wght,SOFT@9..144,400..700,0..100&display=swap');

:root { --ink:#26332b; --ink-2:#172019; --paper:#f0ede5; --paper-deep:#dfd9cd; --moss:#aab38e; --clay:#cb6b46; --line:rgba(38,51,43,.23); --mono:"DM Mono", monospace; --serif:"Fraunces", Georgia, serif; --wrap:1240px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--serif); font-size:16px; line-height:1.5; }
body.nav-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
img { display:block; width:100%; }
.wrap { width:min(calc(100% - 40px), var(--wrap)); margin-inline:auto; }
.section { padding-block:clamp(80px,10vw,152px); }
.sr-only { clip:rect(0,0,0,0); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute; white-space:nowrap; width:1px; }
.skip-link { position:fixed; left:12px; top:-80px; z-index:100; padding:12px 16px; background:var(--paper); color:var(--ink); font:500 12px var(--mono); }
.skip-link:focus { top:12px; }
:focus-visible { outline:3px solid var(--clay); outline-offset:4px; }

.site-header { position:absolute; inset:0 0 auto; z-index:10; width:min(calc(100% - 40px), var(--wrap)); height:86px; margin:auto; display:flex; align-items:center; justify-content:space-between; color:#fff; border-bottom:1px solid rgba(255,255,255,.28); }
.wordmark { font:600 clamp(17px,2vw,22px)/1 var(--serif); letter-spacing:.095em; white-space:nowrap; }
.primary-nav { display:flex; gap:clamp(19px,2.2vw,36px); align-items:center; font:400 11px/1.2 var(--mono); letter-spacing:.035em; }
.primary-nav > a:not(.nav-cta) { padding-block:15px; }
.primary-nav > a:not(.nav-cta):hover { color:var(--paper-deep); }
.nav-cta { border:1px solid rgba(255,255,255,.65); padding:12px 14px; }
.nav-cta:hover { background:#fff; color:var(--ink); }
.nav-toggle { display:none; width:44px; min-height:44px; border:0; background:none; color:inherit; padding:10px 0 10px 12px; cursor:pointer; }
.nav-toggle span:not(.sr-only) { display:block; height:1px; width:25px; margin:5px 0; background:currentColor; }

.hero { min-height:720px; height:100svh; max-height:950px; position:relative; overflow:hidden; display:flex; align-items:flex-end; color:#fff; background:var(--ink); }
.hero-image { position:absolute; inset:0; height:100%; object-fit:cover; object-position:68% center; }
.hero-wash { position:absolute; inset:0; background:linear-gradient(90deg,rgba(18,29,23,.76) 0%,rgba(18,29,23,.41) 42%,rgba(18,29,23,.12) 83%),linear-gradient(0deg,rgba(15,24,19,.65),transparent 34%); }
.hero-content { position:relative; padding-bottom:clamp(110px,14vh,148px); }
.kicker { display:flex; align-items:center; gap:10px; margin:0 0 21px; font:400 10px/1.35 var(--mono); letter-spacing:.085em; text-transform:uppercase; }
.kicker > span:first-child { width:24px; height:1px; background:currentColor; opacity:.8; }
.kicker--ink { color:var(--ink); }
.hero h1 { margin:0; max-width:800px; font-weight:500; font-size:clamp(55px,9.8vw,147px); letter-spacing:-.06em; line-height:.84; }
.hero-descriptor { margin:17px 0 0; font:400 11px/1.3 var(--mono); letter-spacing:.12em; text-transform:uppercase; }
.hero-slogan { max-width:355px; margin:28px 0 0; font-size:clamp(20px,2.2vw,29px); line-height:1.17; }
.hero-actions { display:flex; gap:28px; align-items:center; margin-top:38px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:20px; min-height:51px; padding:13px 18px; font:500 10px/1.2 var(--mono); letter-spacing:.035em; text-transform:uppercase; transition:background .2s,color .2s,border .2s; }
.button--light { background:var(--paper); color:var(--ink); }
.button--light:hover { background:var(--clay); color:#fff; }
.button--ink { background:var(--ink); color:#fff; }
.button--ink:hover { background:var(--clay); }
.inline-link { display:inline-flex; align-items:center; gap:11px; border-bottom:1px solid var(--ink); padding-bottom:4px; font:500 10px/1.25 var(--mono); letter-spacing:.04em; text-transform:uppercase; }
.inline-link:hover { color:var(--clay); border-color:var(--clay); }
.inline-link--light { border-color:rgba(255,255,255,.75); color:#fff; }
.inline-link--light:hover { color:var(--paper-deep); border-color:var(--paper-deep); }
.hero-foot { position:absolute; bottom:28px; left:0; right:0; display:flex; justify-content:space-between; font:400 9px/1.3 var(--mono); letter-spacing:.1em; }
.hero-foot p { margin:0; }
.demo-label { color:var(--paper-deep); }

.section-heading { display:grid; grid-template-columns:1fr 2fr; gap:30px; margin-bottom:56px; }
.section-heading .kicker { align-self:start; padding-top:10px; }
h2 { font-weight:450; font-size:clamp(39px,5.2vw,74px); line-height:.96; letter-spacing:-.055em; margin:0; }
h2 em { color:var(--clay); font-weight:400; }
.section-heading > div > p { max-width:455px; margin:29px 0 0; font-size:18px; line-height:1.45; }
.portfolio-grid { display:grid; grid-template-columns:1.09fr .91fr .91fr; gap:clamp(16px,2.5vw,34px); align-items:start; }
.property:nth-child(2) { margin-top:90px; }.property:nth-child(3) { margin-top:37px; }
.property-image { overflow:hidden; background:var(--paper-deep); aspect-ratio:4/5; }
.property:first-child .property-image { aspect-ratio:3/4; }
.property-image img { height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.property:hover .property-image img { transform:scale(1.035); }
.property-copy { padding-top:18px; }
.property-copy > p { margin:0 0 10px; color:#606a5c; font:400 9px/1.3 var(--mono); letter-spacing:.095em; }
.property h3 { margin:0; font-size:clamp(22px,2.2vw,30px); font-weight:450; line-height:1.05; letter-spacing:-.04em; }
.property dl { margin:16px 0 20px; padding-block:13px; display:flex; flex-wrap:wrap; gap:7px 14px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font:400 10px/1.35 var(--mono); }
.property dt,.property dd { margin:0; }.property dd { color:#747868; }
.property-link { font:500 10px/1.2 var(--mono); letter-spacing:.04em; text-transform:uppercase; border-bottom:1px solid var(--ink); padding-bottom:4px; }.property-link:hover { color:var(--clay); border-color:var(--clay); }
.portfolio-note { border-top:1px solid var(--line); margin-top:58px; padding-top:17px; display:flex; gap:30px; justify-content:space-between; align-items:center; }.portfolio-note p { max-width:530px; margin:0; font-size:14px; line-height:1.4; }.portfolio-note strong { font-family:var(--mono); font-size:10px; text-transform:uppercase; }

.approach { background:var(--ink); color:#fff; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }.approach-image { min-height:690px; overflow:hidden; }.approach-image img { height:100%; object-fit:cover; object-position:60% center; filter:saturate(.76); }.approach-copy { padding:clamp(78px,9vw,140px) clamp(30px,8vw,130px); max-width:700px; }.approach-copy > p:not(.kicker) { max-width:438px; margin:26px 0 44px; font-size:19px; line-height:1.48; }.process-list { list-style:none; padding:0; margin:0; border-top:1px solid rgba(255,255,255,.27); }.process-list li { padding-block:19px; display:grid; grid-template-columns:48px 1fr; border-bottom:1px solid rgba(255,255,255,.27); }.process-list span { color:var(--moss); font:400 10px var(--mono); }.process-list p { margin:0; font-size:16px; line-height:1.35; }

.advisor { display:grid; grid-template-columns:1.05fr 1.55fr 1fr; gap:clamp(30px,5vw,75px); align-items:center; }.advisor-stamp { width:min(20vw,230px); aspect-ratio:1; display:grid; place-items:center; position:relative; border:1px solid var(--ink); border-radius:50%; }.advisor-stamp span { font-size:clamp(58px,7vw,106px); letter-spacing:-.13em; transform:translateX(-.06em); }.advisor-stamp i { position:absolute; inset:10px; border:1px dashed rgba(38,51,43,.4); border-radius:50%; }.advisor-copy .kicker { margin-bottom:17px; }.advisor-copy h2 { font-size:clamp(35px,4.1vw,58px); }.advisor-role { margin:8px 0 20px; font:400 10px var(--mono); text-transform:uppercase; letter-spacing:.07em; }.advisor-copy > p:last-child { max-width:400px; margin-bottom:0; font-size:17px; line-height:1.45; }.advisor-actions { align-self:end; display:flex; flex-direction:column; align-items:flex-start; gap:20px; }.button b { font-weight:400; color:var(--moss); }

.contact { background:var(--moss); color:var(--ink); padding-block:clamp(74px,9vw,130px); }.contact-inner { display:grid; grid-template-columns:1.15fr .85fr; gap:80px; }.contact h2 { margin-bottom:39px; }.contact h2 em { color:var(--ink); }.contact .button--light { background:var(--ink); color:#fff; }.contact .button--light:hover { background:var(--clay); }.contact-detail { display:grid; gap:34px; align-content:end; }.contact-detail > div { padding-top:16px; border-top:1px solid rgba(38,51,43,.45); }.contact h3 { margin:0 0 13px; font:400 10px var(--mono); letter-spacing:.07em; text-transform:uppercase; }.contact address { max-width:270px; margin-bottom:18px; font-style:normal; font-size:18px; line-height:1.33; }.contact dl { margin:0; font-size:16px; }.contact dl div { display:flex; justify-content:space-between; gap:16px; padding-block:4px; }.contact dt,.contact dd { margin:0; }.contact dd { text-align:right; }

.site-footer { padding-block:27px 85px; display:flex; gap:22px; justify-content:space-between; align-items:center; font:400 10px/1.3 var(--mono); letter-spacing:.025em; }.wordmark--footer { color:var(--ink); }.site-footer p { margin:0; }.site-footer > a:last-child { border-bottom:1px solid var(--ink); padding-bottom:4px; }.site-footer > a:last-child:hover { color:var(--clay); border-color:var(--clay); }.mobile-cta { display:none; }

@media (max-width:760px) { .wrap { width:min(calc(100% - 32px), var(--wrap)); }.site-header { width:min(calc(100% - 32px), var(--wrap)); height:72px; }.primary-nav { position:fixed; z-index:-1; inset:0; background:var(--ink); padding:95px 30px 30px; flex-direction:column; align-items:flex-start; gap:10px; transform:translateY(-105%); transition:transform .25s ease; }.primary-nav.is-open { transform:translateY(0); }.primary-nav a:not(.nav-cta) { font-size:21px; padding:11px 0; }.nav-cta { margin-top:17px; }.nav-toggle { display:block; z-index:2; }.hero { min-height:700px; max-height:none; height:100svh; }.hero-image { object-position:66% center; }.hero-wash { background:linear-gradient(90deg,rgba(18,29,23,.77),rgba(18,29,23,.17) 130%),linear-gradient(0deg,rgba(15,24,19,.72),transparent 40%); }.hero-content { padding-bottom:105px; }.hero h1 { font-size:clamp(52px,17.2vw,78px); }.hero-slogan { font-size:22px; margin-top:24px; }.hero-actions { margin-top:31px; gap:18px; flex-wrap:wrap; }.inline-link { font-size:9px; }.hero-foot { bottom:20px; }.hero-foot p:first-child { display:none; }.hero-foot { justify-content:flex-end; }.section-heading { display:block; margin-bottom:39px; }.section-heading .kicker { padding-top:0; }.section-heading > div > p { margin-top:22px; font-size:16px; }.portfolio-grid { grid-template-columns:1fr; gap:38px; }.property:nth-child(2),.property:nth-child(3) { margin-top:0; }.property,.property:first-child { display:grid; grid-template-columns:1.04fr .96fr; align-items:start; gap:16px; }.property-image,.property:first-child .property-image { aspect-ratio:4/5; }.property-copy { padding-top:0; }.property h3 { font-size:24px; }.property dl { display:block; margin-block:13px; padding-block:10px; }.property dd { margin-top:5px; }.portfolio-note { display:block; margin-top:42px; }.portfolio-note .inline-link { margin-top:17px; }.approach { display:flex; flex-direction:column; }.approach-image { min-height:345px; height:54vw; }.approach-copy { padding:67px 24px 82px; }.approach-copy > p:not(.kicker) { font-size:17px; margin-block:23px 35px; }.advisor { grid-template-columns:94px 1fr; gap:22px; }.advisor-stamp { width:94px; grid-row:span 2; }.advisor-stamp span { font-size:48px; }.advisor-copy h2 { font-size:40px; }.advisor-copy > p:last-child { font-size:16px; }.advisor-actions { grid-column:2; align-self:start; }.contact-inner { grid-template-columns:1fr; gap:54px; }.contact h2 { font-size:45px; }.contact-detail { gap:27px; }.site-footer { padding:25px 0 94px; display:grid; grid-template-columns:1fr auto; gap:19px; }.site-footer p { grid-column:1/-1; grid-row:2; font-size:9px; }.site-footer > a:last-child { justify-self:end; }.mobile-cta { display:flex; position:fixed; z-index:20; left:12px; right:12px; bottom:11px; min-height:53px; align-items:center; justify-content:center; gap:9px; background:var(--clay); color:#fff; box-shadow:0 8px 24px rgba(16,25,18,.25); font:500 10px var(--mono); letter-spacing:.04em; text-transform:uppercase; }.mobile-cta span { color:var(--paper-deep); font-size:12px; } }
@media (max-width:390px) { .property,.property:first-child { gap:12px; }.property h3 { font-size:22px; }.property-copy > p { font-size:8px; }.advisor { grid-template-columns:78px 1fr; }.advisor-stamp { width:78px; }.advisor-stamp span { font-size:39px; }.hero-actions .button { padding-inline:15px; }.contact h2 { font-size:40px; } }
@media (max-width:760px) { .primary-nav { visibility:hidden; }.primary-nav.is-open { visibility:visible; }.primary-nav a:not(.nav-cta) { min-height:44px; display:flex; align-items:center; }.nav-cta { min-height:44px; display:inline-flex; align-items:center; }.hero { min-height:640px; }.hero-content { padding-bottom:88px; }.hero-actions .inline-link { min-height:44px; align-items:center; }.mobile-cta { bottom:max(11px, env(safe-area-inset-bottom)); transform:translateY(calc(100% + 24px)); transition:transform .2s ease; pointer-events:none; }.mobile-cta.is-visible { transform:translateY(0); pointer-events:auto; } }
@media (max-width:760px) and (max-height:640px) { .hero { min-height:0; }.hero-content { padding-bottom:73px; }.hero h1 { font-size:clamp(46px,14vw,58px); }.hero-slogan { margin-top:16px; font-size:20px; }.hero-actions { margin-top:20px; }.hero-foot { display:none; } }
@media (max-width:760px) and (max-height:540px) and (orientation:landscape) { .site-header { height:62px; }.primary-nav { padding-top:80px; }.hero-content { padding-bottom:16px; }.hero h1 { font-size:clamp(40px,7vw,48px); }.hero-descriptor { margin-top:8px; }.hero-slogan { margin-top:10px; font-size:17px; }.hero-actions { margin-top:10px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.primary-nav,.property-image img { transition:none; } }
