@font-face{font-family:Manrope;src:url('fonts/manrope-latin.woff2') format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:Manrope;src:url('fonts/manrope-latin-ext.woff2') format('woff2');font-weight:200 800;font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF}
@font-face{font-family:Cormorant;src:url('fonts/cormorant-latin-variable.woff2') format('woff2');font-weight:300 700;font-display:swap}
:root{--surface:#f5f3ed;--surface-raised:#e9e6de;--text:#272923;--text-soft:#5e6258;--primary:#5b634b;--primary-hover:#404736;--border:#cccfc3;--font-primary:Manrope,sans-serif;--font-secondary:Cormorant,serif;--gutter:clamp(1.25rem,5vw,6rem);--section-space:clamp(4rem,8vw,8rem)}
@layer base{
body{background:var(--surface);color:var(--text);font-family:var(--font-primary);font-size:1rem;line-height:1.7;margin:0}h1,h2,h3,p{margin:0;text-wrap:pretty}h1,h2{font-family:var(--font-secondary);font-weight:400;line-height:1.04;letter-spacing:-.035em;text-wrap:balance}h1{font-size:clamp(3.5rem,6.8vw,7.5rem)}h2{font-size:clamp(2.75rem,4.5vw,5rem)}h3{font-size:1.35rem;font-weight:500;text-wrap:balance}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}img{display:block;width:100%;height:auto}a,button,input,textarea,summary{outline-offset:.35rem}a:focus-visible,button:focus-visible,summary:focus-visible{outline:.15rem solid var(--primary)}::selection{background:#d8dbc9}button{cursor:pointer}figure{margin:0}figcaption{font-size:.75rem;color:var(--text-soft);margin-top:.5rem}p{max-inline-size:65ch}main{min-block-size:50vh}}
@layer custom{
.section{padding:var(--section-space) var(--gutter)}.eyebrow{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.16em;line-height:1.7}.lead{font-size:clamp(1.05rem,1.3vw,1.3rem);line-height:1.85}.text-link{display:inline-flex;gap:2rem;align-items:center;border-bottom:.0625rem solid currentColor;padding-block:.6rem;font-size:.85rem;max-width:100%;text-wrap:balance}.text-link:hover{color:var(--primary)}.text-link--light:hover{color:#fff}.button{--button-pad:1.5rem;display:inline-flex;align-items:center;gap:var(--button-pad);background:var(--primary);color:#fff;border:0;padding:1.15rem var(--button-pad);font-size:.85rem}.button:hover{background:#404736}.skip-link{position:fixed;top:-6rem;left:1rem;background:white;padding:1rem;z-index:100}.skip-link:focus{top:1rem}
.site-header{height:7.25rem;padding-inline:var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:2rem}.wordmark{display:grid;grid-template-columns:auto auto;column-gap:.4rem;font-family:var(--font-secondary);font-size:2.7rem;line-height:.9;letter-spacing:-.04em;white-space:nowrap}.wordmark__subtitle{grid-column:1/-1;font-family:var(--font-primary);font-size:.52rem;letter-spacing:.25em;text-transform:uppercase;text-align:center;margin-top:.85rem}.navigation{display:flex;gap:clamp(1.5rem,3vw,3.25rem);font-size:.78rem}.navigation a{padding-block:.75rem}.navigation a:hover,.navigation [aria-current]{color:var(--primary);text-decoration:underline;text-underline-offset:.4rem}.menu-toggle{display:none}
.hero{position:relative;overflow:hidden;height:min(48rem,calc(100svh - 7.25rem));min-height:33rem;color:#fff;background:#5b5b4d}.hero__picture{display:block;height:100%}.hero__image{height:100%;object-fit:cover;animation:quiet-zoom 22s ease-out both}.hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,22,12,.57),rgba(15,22,12,.1) 85%),linear-gradient(0deg,rgba(10,15,8,.28),transparent 50%)}.hero__content{position:absolute;left:var(--gutter);bottom:6.5rem;max-width:45rem}.hero__content h1{max-width:9ch;margin-block:1.25rem 2rem;font-size:clamp(4.5rem,7.4vw,8.4rem);line-height:.97}.hero__note,.hero__scroll{position:absolute;bottom:1.75rem;font-size:.62rem;letter-spacing:.06em}.hero__note{left:var(--gutter)}.hero__scroll{right:var(--gutter)}
.intro{border-bottom:.0625rem solid var(--border)}.intro__grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;margin-top:2rem}.intro__grid .text-link{margin-top:2rem}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem}.section-note{font-size:.8rem;color:var(--text-soft);max-width:43rem;margin-block:1.5rem 3rem}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem 2rem}.project-card:first-child{grid-column:1/-1}.project-card__media{overflow:hidden;aspect-ratio:1.5;background:var(--surface-raised)}.project-card:first-child .project-card__media{aspect-ratio:2.05}.project-card__media img{height:100%;object-fit:cover;transition:transform .7s}.project-card:hover img{transform:scale(1.025)}.project-card__caption{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding-top:1rem}.project-card__caption h3{font-family:var(--font-secondary);font-size:2rem;margin-top:.3rem}.project-card__caption>span{font-size:1.6rem}.project-card__caption .eyebrow{color:var(--text-soft);font-size:.6rem}
.services-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:6rem;background:var(--surface-raised)}.services-section__intro h2{margin-block:1.5rem 2rem}.services-section__intro p:not(.eyebrow){font-size:.9rem;color:var(--text-soft)}.service-row{display:grid;grid-template-columns:2rem 1fr 2rem;gap:1rem;padding-block:2rem;border-top:.0625rem solid var(--border);align-items:start}.service-row:last-child{border-bottom:.0625rem solid var(--border)}.service-row__number{font-size:.65rem;margin-top:.5rem;color:var(--text-soft)}.service-row h3{font-family:var(--font-secondary);font-size:2.25rem}.service-row p{font-size:.82rem;margin-top:.4rem;color:var(--text-soft)}.service-row>span:last-child{font-size:1.4rem}.services-list{max-width:65rem;padding-top:0}.services-list>.text-link{margin-top:2rem}
.process-band{max-width:100%;text-align:center}.process-band .eyebrow,.process-band h2{margin-inline:auto}.process-band h2{max-width:15ch;margin-block:1.5rem 2rem}.process-band__steps{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;border-top:.0625rem solid var(--border);margin-top:4rem;padding-top:1.5rem;font-size:.7rem;text-align:left}.contact-band{background:#e0e3d7;text-align:center}.contact-band h2{max-width:14ch;margin:1.5rem auto}.contact-band p{margin-inline:auto;max-width:39rem}.contact-band .button{margin-top:2rem}
.site-footer{--primary:#efeee6;--primary-hover:#fff;padding:4rem var(--gutter) 1.5rem;display:grid;grid-template-columns:1fr 1fr;gap:3rem;background:#272d24;color:#efeee6;font-size:.75rem}.footer-brand{font-family:var(--font-secondary);font-size:2.7rem;line-height:1.1}.site-footer a:hover{text-decoration:underline;text-underline-offset:.3rem;text-decoration-thickness:.0625rem}.site-footer p{color:#c6cbbb;margin-top:1rem}.site-footer>div:nth-child(2){display:flex;flex-direction:column;align-items:start;gap:.7rem}.site-footer__bottom{grid-column:1/-1;display:flex;justify-content:space-between;gap:1rem;border-top:.0625rem solid #555d4c;padding-top:1.5rem;color:#c6cbbb;font-size:.65rem}
.page-heading{padding-bottom:3rem;border-bottom:.0625rem solid var(--border)}.page-heading h1{max-width:16ch;margin-top:2rem}.page-heading h1+*{margin-top:2rem}.page-heading .lead{max-width:48rem}.article-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:4rem}.article-layout:has(figure){grid-template-columns:1fr 1fr}.prose{max-width:45rem;width:100%}.prose p+p{margin-top:1.5rem}.prose h2{font-size:clamp(2rem,3vw,3rem);margin-block:3rem 1.5rem}.prose .text-link{margin-top:3rem}.project-detail>img{max-height:50rem;object-fit:cover;cursor:zoom-in}.project-detail .prose{margin-block:3rem}.faq-list{max-width:65rem}.faq{padding:1.5rem 0;border-top:.0625rem solid var(--border)}.faq:last-of-type{border-bottom:.0625rem solid var(--border)}.faq summary{list-style:none;cursor:pointer;font-family:var(--font-secondary);font-size:clamp(1.5rem,2.3vw,2.2rem);display:flex;justify-content:space-between;gap:1rem;text-wrap:balance;line-height:1.3}.faq summary::-webkit-details-marker{display:none}.faq[open] summary span{transform:rotate(45deg)}.faq p{padding-top:1.5rem;font-size:.95rem}.faq-list>.text-link{margin-top:2rem}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:5rem}.contact-layout__link{display:block;font-size:clamp(1rem,1.6vw,1.5rem);line-height:2;white-space:nowrap}.contact-layout__note{font-size:.85rem;color:var(--text-soft);max-width:27rem;margin-top:2rem}.contact-form{display:grid;gap:1.3rem}.contact-form label{display:grid;gap:.5rem;font-size:.8rem}.contact-form input,.contact-form textarea{width:100%;border:0;border-bottom:.0625rem solid #858d7a;border-radius:0;background:transparent;padding:.75rem .1rem;color:var(--text);font-size:1rem}.contact-form textarea{resize:vertical}.contact-form .button{justify-self:start}.form-note,.form-status{font-size:.75rem}.honeypot{position:absolute;left:-9999rem;width:1rem;overflow:hidden}.form-status{min-height:2rem}
@media(max-width:55rem){.site-header{height:6rem}.navigation{display:none;position:absolute;z-index:10;top:6rem;left:0;right:0;background:var(--surface);padding:2rem var(--gutter);flex-direction:column;gap:.5rem;border-bottom:.0625rem solid var(--border)}.navigation.is-open{display:flex}.navigation a{font-size:1rem;padding-block:.7rem}.menu-toggle{display:flex;align-items:center;gap:.75rem;border:0;background:transparent;font-size:.75rem;padding:.75rem 0}.menu-toggle span{font-size:1.5rem}.wordmark{font-size:2.3rem}.hero{height:calc(85svh - 6rem);min-height:31rem}.hero__content{bottom:5rem}.hero__content h1{font-size:clamp(4.25rem,13vw,6.5rem)}.intro__grid,.services-section,.article-layout:has(figure),.contact-layout{grid-template-columns:1fr;gap:2.5rem}.project-grid{gap:2rem 1.25rem}.project-card:first-child .project-card__media{aspect-ratio:1.5}.section-heading{align-items:start;flex-direction:column;gap:1rem}.process-band__steps{grid-template-columns:1fr 1fr}.contact-layout__link{font-size:1.2rem}.site-footer__bottom{flex-wrap:wrap}}
@media(max-width:35rem){.project-grid{grid-template-columns:1fr}.project-card:first-child{grid-column:auto}.hero__scroll{display:none}.hero__image{object-position:60% center}.site-footer{grid-template-columns:1fr}.site-footer__bottom{grid-column:auto;flex-direction:column}.process-band__steps{gap:1.5rem}.page-heading h1{font-size:clamp(3.3rem,12vw,4.5rem)}}
@keyframes quiet-zoom{from{transform:scale(1.06)}to{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
}
