:root {
  --paper:#fbfaf7; --cream:#f1ede4; --ink:#292721; --muted:#6f6a61; --sage:#78886b; --sage-dark:#5f7054; --line:#d9d2c6; --white:#fff; --danger:#8b3f35;
  --serif:Georgia,"Times New Roman",serif; --sans:"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box} html{scroll-behavior:smooth;background:var(--paper)} body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased} a{color:inherit;text-decoration:none} img{display:block;width:100%;height:100%;object-fit:cover} button,input,textarea,select{font:inherit} ::selection{background:var(--sage);color:#fff}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--sage-dark);outline-offset:3px}
.site-shell{display:grid;grid-template-columns:clamp(410px,36vw,560px) minmax(0,1fr);min-height:100vh}.profile-panel{position:sticky;top:0;height:100vh;overflow-y:auto;padding:42px clamp(30px,3vw,52px);background:var(--cream);border-right:1px solid var(--line);scrollbar-width:thin}.main-content{min-width:0}.profile-copy h1{margin:0;font:400 clamp(46px,4.4vw,70px)/.98 var(--serif);letter-spacing:-.025em}.profile-copy h1 em{display:block;color:var(--sage-dark);font-weight:400}.brand-mark{display:inline-block;margin:0 0 30px}.brand-logo{display:inline-grid;width:max-content;gap:.5rem;color:var(--ink)}.brand-logo__word{display:inline-flex;align-items:baseline;font:300 1.12rem/1 var(--sans);letter-spacing:.29em;white-space:nowrap}.brand-logo__green{margin-left:.04em;color:var(--sage-dark);font-weight:400;letter-spacing:.18em}.brand-logo__descriptor{display:grid;grid-template-columns:38px auto;gap:10px;align-items:center;color:var(--muted);font-size:.56rem;font-weight:500;letter-spacing:.25em;line-height:1;text-transform:uppercase;white-space:nowrap}.brand-logo__descriptor i{display:block;height:1px;background:var(--sage)}.brand-logo--compact{gap:0}.brand-logo--compact .brand-logo__word{font-size:.76rem}.brand-logo--compact .brand-logo__descriptor{display:none}.profile-copy>p:not(.profile-role){max-width:430px;margin:0 0 13px;color:var(--muted);font-size:.92rem}.profile-role{max-width:410px;margin:15px 0 0;color:#765f53;font:italic 1.16rem/1.35 var(--serif)}.eyebrow{margin:0 0 20px;color:var(--sage-dark);font-size:.68rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}.short-rule{display:block;width:42px;height:1px;margin:26px 0;background:var(--sage)}
.portrait-frame{display:block;width:min(100%,320px);aspect-ratio:3/4;margin:30px 0 24px;overflow:hidden;border-radius:4px;background:#ddd}.portrait-frame img{object-position:50% 12%}.practice-year{margin:0 0 22px}.practice-year strong{display:block;color:var(--sage-dark);font:400 1.65rem var(--serif)}.practice-year span{color:var(--muted);font-size:.72rem}.profile-nav{display:flex;flex-wrap:wrap;gap:7px 20px;padding:12px 0 24px}.profile-nav a{color:var(--muted);font:italic 1rem var(--serif);transition:color .2s}.profile-nav a:hover{color:var(--sage-dark)}
.hero-section{position:relative;min-height:92vh;display:grid;place-items:center;overflow:hidden;background:#455042}.hero-picture{position:absolute;inset:0}.hero-picture:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,27,20,.18),rgba(21,27,20,.58))}.hero-picture img{object-position:center}.hero-overlay{position:relative;z-index:2;padding:40px;text-align:center;color:#fff}.hero-overlay h2{margin:0;font:italic 400 clamp(50px,7vw,100px)/.97 var(--serif);letter-spacing:-.025em}.hero-overlay p{margin:26px 0 0;font-size:.73rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase}
.content-section{padding:clamp(72px,8vw,120px) clamp(28px,6vw,92px)}.section-tint{background:var(--cream)}.section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.85fr);gap:48px;align-items:end;margin-bottom:48px}.section-heading .eyebrow{margin-bottom:12px}.section-heading h2,.contact-intro h2{margin:0;font:400 clamp(45px,5.5vw,76px)/1 var(--serif);letter-spacing:-.02em}.section-heading>p,.section-heading>div>p:not(.eyebrow),.contact-intro>p:not(.eyebrow){max-width:540px;margin:0;color:var(--muted)}.text-link{display:inline-block;margin-top:16px;color:var(--sage-dark);font:italic 1.03rem var(--serif);border-bottom:1px solid #a9b39f}
.horizontal-gallery{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(310px,42vw);gap:22px;padding-bottom:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--sage) transparent}.gallery-item{scroll-snap-align:start}.gallery-image{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:4px}.gallery-item>div{display:grid;grid-template-columns:42px 1fr;padding-top:15px}.gallery-item span{color:var(--sage);font-family:var(--serif)}.gallery-item h3{margin:0;font:400 1.65rem var(--serif)}.gallery-item p{grid-column:2;margin:1px 0 0;color:var(--muted);font-size:.75rem}
.projects-list{display:grid;gap:82px}.project-row{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:clamp(32px,5vw,68px);align-items:center}.project-row:nth-child(even) .project-image-link{order:2}.project-image-link,.project-image{display:block;aspect-ratio:16/10;overflow:hidden;border-radius:5px}.project-copy{padding-right:22px}.project-year,.article-meta{margin:0 0 11px;color:var(--sage-dark);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}.project-copy h3{margin:0 0 16px;font:400 clamp(38px,4.5vw,62px)/1.03 var(--serif)}.project-copy>p:not(.project-year):not(.project-services){margin:0;color:var(--muted)}.project-services{margin:18px 0 0;color:#837d73;font-size:.78rem}.project-index{position:absolute;top:-28px;right:0;color:#c5bcaf;font:italic 1.05rem var(--serif)}
.article-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.article-card{overflow:hidden;border:1px solid var(--line);border-radius:5px;background:#fff}.article-image{display:block;aspect-ratio:4/3;overflow:hidden}.article-card-copy{padding:25px}.article-card h2,.article-card h3{margin:0 0 13px;font:400 1.75rem/1.1 var(--serif)}.article-card-copy>p:not(.article-meta){margin:0;color:var(--muted);font-size:.86rem}.principles-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:44px}.principles-grid article{padding-top:20px;border-top:1px solid var(--line)}.principles-grid span{color:#a8b39e;font:italic 2rem var(--serif)}.principles-grid h3{margin:8px 0;font:400 1.7rem var(--serif)}.principles-grid p{margin:0;color:var(--muted)}.quote-section{padding:clamp(86px,10vw,150px) clamp(30px,8vw,130px);text-align:center}.quote-section blockquote{max-width:900px;margin:0 auto;font:italic 400 clamp(30px,4.5vw,58px)/1.3 var(--serif)}.quote-section cite{display:block;margin-top:25px;color:var(--sage-dark);font-size:.7rem;font-style:normal;letter-spacing:.15em;text-transform:uppercase}
.contact-section{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr);gap:clamp(45px,7vw,100px);background:var(--cream)}.contact-intro .eyebrow{margin-bottom:12px}.contact-intro>p:not(.eyebrow){margin-top:22px}.lead-form{display:grid;gap:22px}.lead-form label>span:first-child{display:block;margin-bottom:7px;color:#5f5b54;font-size:.78rem;line-height:1.35}.lead-form input:not([type=checkbox]),.lead-form textarea{width:100%;border:1px solid var(--line);border-radius:3px;background:rgba(255,255,255,.72);padding:13px 14px;color:var(--ink);outline:none}.lead-form input:focus,.lead-form textarea:focus{border-color:var(--sage);box-shadow:0 0 0 3px rgba(120,136,107,.13)}.consent-row{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start}.consent-row input{width:17px;height:17px;margin-top:4px;accent-color:var(--sage-dark)}.consent-row span{margin:0!important;font-size:.74rem!important}.consent-row a{color:var(--sage-dark);text-decoration:underline;text-underline-offset:2px}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.button{border:1px solid transparent;border-radius:3px;padding:12px 17px;cursor:pointer;transition:background .2s,color .2s,border .2s}.button--primary{background:var(--sage-dark);color:#fff}.button--primary:hover{background:#53634a}.button--quiet{border-color:var(--line);background:transparent;color:var(--ink)}.button--wide{width:100%;padding:15px}.form-status{margin:0;font-size:.84rem}.form-status--sent{color:#46633f}.form-status--error{color:var(--danger)}.captcha-note{margin:-8px 0 0;color:var(--muted);font-size:.68rem}
.site-footer{display:grid;grid-template-columns:1fr auto auto;gap:34px;align-items:center;padding:30px clamp(28px,6vw,92px);border-top:1px solid var(--line);background:var(--paper);color:var(--muted);font-size:.72rem}.site-footer div{display:flex;gap:18px;align-items:center}.site-footer nav{display:flex;flex-wrap:wrap;gap:8px 18px}.site-footer a:hover{color:var(--sage-dark)}.cookie-banner{position:fixed;z-index:100;right:22px;bottom:22px;width:min(520px,calc(100vw - 44px));padding:20px;border:1px solid var(--line);border-radius:5px;background:rgba(251,250,247,.98);box-shadow:0 18px 50px rgba(42,39,33,.17)}.cookie-banner p{margin:0 0 14px;font-size:.82rem}.cookie-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.cookie-actions .button{padding:9px 12px;font-size:.75rem}.cookie-actions a{color:var(--sage-dark);font-size:.74rem;text-decoration:underline}
.inner-page{min-height:100vh}.inner-header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px clamp(24px,6vw,90px);border-bottom:1px solid var(--line);background:var(--paper)}.inner-brand{display:inline-flex}.inner-header nav{display:flex;gap:22px;color:var(--muted);font-size:.82rem}.inner-hero{padding:clamp(70px,9vw,130px) clamp(24px,10vw,160px) 60px}.inner-hero .eyebrow{margin-bottom:14px}.inner-hero h1{max-width:1000px;margin:0;font:400 clamp(48px,7vw,92px)/1 var(--serif);letter-spacing:-.03em}.inner-hero>p:not(.eyebrow){max-width:680px;margin:24px 0 0;color:var(--muted);font-size:1.05rem}.inner-body{padding:0 clamp(24px,10vw,160px) clamp(80px,10vw,150px)}.inner-image{display:block;width:100%;max-height:760px;aspect-ratio:16/9;margin-bottom:60px;overflow:hidden;border-radius:5px}.rich-text{max-width:760px;margin:0 auto;font:400 1.12rem/1.8 var(--serif);color:#45413a}.rich-text h2{margin:2.3em 0 .7em;color:var(--ink);font:400 2rem/1.15 var(--serif)}.rich-text h3{margin:2em 0 .6em;color:var(--ink);font:400 1.5rem var(--serif)}.rich-text p{white-space:pre-line}.legal-warning{max-width:760px;margin:0 auto 28px;padding:15px 18px;border:1px solid #d3b56b;background:#fff8df;color:#665524;font-size:.82rem}.cards-page{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:0 clamp(24px,6vw,90px) 100px}
@media(max-width:1500px){.section-heading,.contact-section{grid-template-columns:1fr;gap:24px}.contact-section .lead-form{max-width:760px}}
@media(max-width:1180px){.site-shell{grid-template-columns:360px minmax(0,1fr)}.profile-panel{padding:32px 28px}.article-grid,.cards-page{grid-template-columns:1fr 1fr}.project-row{grid-template-columns:1fr}.project-row:nth-child(even) .project-image-link{order:0}}
@media(max-width:780px){.site-shell{display:block}.profile-panel{position:relative;height:auto;padding:30px 24px}.profile-copy h1{font-size:clamp(44px,14vw,66px)}.portrait-frame{width:min(100%,360px)}.hero-section{min-height:72vh}.hero-overlay{padding:24px}.hero-overlay h2{font-size:clamp(45px,14vw,76px)}.section-heading,.contact-section{grid-template-columns:1fr;gap:24px}.content-section{padding:66px 24px}.horizontal-gallery{grid-auto-columns:82vw}.article-grid,.principles-grid,.cards-page{grid-template-columns:1fr}.projects-list{gap:56px}.site-footer{grid-template-columns:1fr;gap:14px;padding:28px 24px}.inner-header{align-items:flex-start}.inner-header nav{flex-wrap:wrap;justify-content:flex-end;gap:8px 14px}.inner-hero,.inner-body,.cards-page{padding-left:24px;padding-right:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
