@font-face{font-family:"Libre Caslon Display";src:url("fonts/libre-caslon-display-regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("fonts/instrument-sans-variable.ttf") format("truetype");font-style:normal;font-weight:300 700;font-display:swap}
:root{--ink:#242424;--ink-2:#31312f;--paper:#f9f9f9;--mist:#f1f1ef;--white:#fff;--moss:#7f8f78;--moss-dark:#56624f;--body:#4b4e49;--muted:#696c66;--line:rgba(36,36,36,.18);--display:"Libre Caslon Display",Georgia,serif;--body-font:"Instrument Sans",Arial,sans-serif;--ease:cubic-bezier(.22,1,.36,1);--gutter:max(1.25rem,4vw);--section:clamp(5.5rem,10vw,10rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body-font);line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}img{display:block;width:100%;height:auto}figure,dl,dd,p,h1,h2,h3{margin:0}a{color:inherit}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:100;background:var(--ink);color:#fff;padding:.8rem 1rem}.skip-link:focus{top:1rem}.site-header{height:92px;padding:0 var(--gutter);display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:clamp(1rem,3vw,3rem);position:absolute;inset:0 0 auto;z-index:20;color:var(--ink)}.brand,.footer-brand{display:flex;flex-direction:column;text-decoration:none;line-height:1}.brand strong,.footer-brand strong{font-weight:400;font-size:1.45rem;letter-spacing:.13em}.brand span,.footer-brand span{margin-top:.38rem;font-size:.56rem;letter-spacing:.18em;text-transform:uppercase}.desktop-nav{display:flex;gap:clamp(1rem,2.5vw,2.4rem)}.desktop-nav a{min-height:44px;display:flex;align-items:center;text-decoration:none;font-size:.74rem;letter-spacing:.07em;position:relative}.desktop-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:8px;height:1px;background:var(--moss-dark);transition:right .35s var(--ease)}.desktop-nav a:hover:after{right:0}.review-link{min-height:46px;padding:0 1.35rem;border:1px solid var(--ink);background:transparent;color:var(--ink);font:600 .7rem var(--body-font);letter-spacing:.08em;text-transform:uppercase;cursor:default}.menu-toggle{display:none;width:48px;height:48px;border:1px solid var(--ink);background:transparent}.menu-toggle span{display:block;width:20px;height:1px;background:var(--ink);margin:6px auto}.mobile-menu{position:fixed;inset:0;z-index:80;background:var(--ink);color:#fff;padding:7rem var(--gutter) 3rem}.mobile-menu nav{display:flex;flex-direction:column}.mobile-menu nav a,.mobile-menu nav button{min-height:68px;display:flex;align-items:center;border:0;border-bottom:1px solid rgba(255,255,255,.2);background:transparent;color:#fff;text-align:left;text-decoration:none;font:400 clamp(2rem,8vw,4rem)/1 var(--display)}.menu-close{position:absolute;right:var(--gutter);top:1.5rem;min-width:54px;min-height:46px;border:1px solid rgba(255,255,255,.5);background:transparent;color:#fff}.hero{min-height:100svh;display:grid;grid-template-columns:minmax(0,46fr) minmax(0,54fr) 60px;padding-top:92px;background:var(--mist);border-bottom:1px solid var(--line);overflow:hidden}.hero-copy{min-width:0;padding:clamp(3rem,7vw,7rem) clamp(2rem,5vw,5rem) clamp(2rem,4vw,4rem) var(--gutter);display:flex;flex-direction:column;justify-content:center;position:relative}.eyebrow,.section-index{color:var(--moss-dark);font-size:.68rem;font-weight:650;letter-spacing:.15em;text-transform:uppercase}.hero h1,h2,h3{font-family:var(--display);font-weight:400}.hero h1{max-width:11ch;margin:1.3rem 0 1.5rem;font-size:clamp(3.4rem,6.2vw,7rem);line-height:.89;letter-spacing:-.045em;text-wrap:balance}.hero h1 em{color:var(--moss-dark);font-style:normal}.hero-lead{max-width:40rem;color:var(--body);font-size:clamp(1rem,1.25vw,1.2rem)}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem;margin-top:2.2rem}.button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;padding:.85rem 1.35rem;border:0;text-decoration:none;font:620 .72rem var(--body-font);letter-spacing:.08em;text-transform:uppercase}.button-dark{background:var(--ink);color:#fff}.button-light{background:#fff;color:var(--ink)}.text-link{min-height:48px;display:inline-flex;align-items:center;text-underline-offset:5px;font-size:.83rem}.hero-coordinate{display:flex;gap:1.3rem;margin-top:auto;padding-top:2rem;color:var(--muted);font-size:.63rem;letter-spacing:.12em}.hero-media{position:relative;min-width:0;overflow:hidden;background:#d8dad5}.hero-media:before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,rgba(36,36,36,.04),transparent 45%,rgba(36,36,36,.36))}.hero-media img{height:100%;object-fit:cover}.hero-media figcaption{position:absolute;z-index:2;left:clamp(1.2rem,3vw,2.5rem);right:clamp(1.2rem,3vw,2.5rem);bottom:2rem;display:grid;grid-template-columns:auto 1fr auto;gap:1.5rem;align-items:end;color:#fff}.hero-media figcaption span{font-size:.63rem;letter-spacing:.11em;text-transform:uppercase}.hero-media figcaption strong{font:400 clamp(1.8rem,3vw,3.2rem)/1 var(--display)}.hero-rail{padding:1.4rem 0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;background:var(--moss);color:#fff;font-size:.63rem;letter-spacing:.12em}.hero-rail span{writing-mode:vertical-rl}.hero-rail i{width:1px;flex:1;margin:1rem 0;background:rgba(255,255,255,.55)}.section{padding:var(--section) var(--gutter)}h2{font-size:clamp(2.8rem,5.8vw,6.3rem);line-height:.94;letter-spacing:-.04em;text-wrap:balance}.intro{display:grid;grid-template-columns:.28fr 1.2fr .4fr;gap:5vw;align-items:start;background:var(--paper)}.intro-copy{max-width:940px}.intro-copy p{max-width:640px;margin:2rem 0 0 auto;color:var(--body);font-size:1.05rem}.roof-mark{height:240px;position:relative;color:var(--moss)}.roof-mark i{position:absolute;left:50%;top:50%;width:160px;height:1px;background:currentColor;transform-origin:left}.roof-mark i:first-child{transform:rotate(45deg)}.roof-mark i:nth-child(2){transform:rotate(135deg)}.roof-mark i:nth-child(3){width:1px;height:190px;transform:none}.services{background:var(--ink);color:#fff}.section-head{display:grid;grid-template-columns:.28fr 1.2fr;gap:5vw}.services .section-index,.visualize .section-index,.contact .section-index{color:#acbc9f}.section-head h2{max-width:15ch}.service-grid{margin-top:clamp(4rem,7vw,7rem);display:grid;grid-template-columns:1.15fr 1fr 1fr;border-top:1px solid rgba(255,255,255,.28);border-left:1px solid rgba(255,255,255,.28)}.service-card{min-height:480px;padding:2rem;display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.28);border-bottom:1px solid rgba(255,255,255,.28)}.service-card>span{color:#acbc9f;font-size:.7rem}.service-card h3{max-width:9ch;margin:4rem 0 1.2rem;font-size:clamp(2rem,3vw,3.5rem);line-height:1}.service-card p{max-width:34ch;color:#c8cbc4;font-size:.94rem}.service-card a,.service-card button{min-height:48px;margin-top:auto;display:flex;align-items:center;align-self:flex-start;border:0;border-bottom:1px solid rgba(255,255,255,.55);background:transparent;color:#fff;text-decoration:none;font:500 .77rem var(--body-font);cursor:default}.service-primary{background:var(--moss);color:#fff}.service-primary>span,.service-primary p{color:#fff}.plans{background:var(--mist)}.plans-heading{display:grid;grid-template-columns:.28fr 1fr .55fr;gap:5vw;align-items:end}.plans-heading>p:last-child{color:var(--body);max-width:38ch}.plan-feature{margin-top:clamp(4rem,7vw,7rem);display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);background:#fff;border:1px solid var(--line)}.plan-feature-image{min-height:620px;position:relative;overflow:hidden;background:#d5d7d1}.plan-feature-image img{height:100%;object-fit:cover;transition:opacity .25s var(--ease),transform 1s var(--ease)}.plan-feature-image span{position:absolute;left:1.2rem;top:1.2rem;padding:.55rem .8rem;background:rgba(249,249,249,.9);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase}.plan-feature-copy{padding:clamp(2rem,5vw,5rem);display:flex;flex-direction:column;justify-content:center}.plan-feature-copy>span{color:var(--moss-dark);font-size:.66rem;letter-spacing:.12em}.plan-feature-copy h3{margin:1.2rem 0;font-size:clamp(3rem,5vw,5.8rem);line-height:.9}.plan-feature-copy>p{color:var(--body)}.plan-feature-copy dl{margin-top:3rem;border-top:1px solid var(--line)}.plan-feature-copy dl div{padding:1rem 0;display:flex;justify-content:space-between;border-bottom:1px solid var(--line)}.plan-feature-copy dt{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.plan-feature-copy dd{font-weight:620}.plan-index{display:grid;grid-template-columns:repeat(5,1fr);border-left:1px solid var(--line)}.plan-index button{min-height:112px;padding:1rem;display:grid;grid-template-columns:auto 1fr;gap:.7rem;text-align:left;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:500 .88rem var(--body-font);cursor:pointer}.plan-index button span{color:var(--moss-dark);font-size:.65rem}.plan-index button small{grid-column:2;color:var(--muted);font-size:.65rem}.plan-index button.active{background:var(--ink);color:#fff}.plan-index button.active small{color:#c8cbc4}.visualize{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,.9fr);gap:7vw;background:var(--ink);color:#fff}.visualize-copy h2{max-width:12ch;margin:1rem 0 2rem}.visualize-copy>p:not(.section-index){max-width:52ch;color:#c8cbc4}.visualize ol{margin:3rem 0 0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.25)}.visualize li{padding:1.25rem 0;display:grid;grid-template-columns:40px 110px 1fr;gap:1rem;border-bottom:1px solid rgba(255,255,255,.25)}.visualize li span{color:#acbc9f;font-size:.65rem}.visualize li strong{font-weight:560}.visualize li p{color:#c8cbc4;font-size:.85rem}.plan-drawing{align-self:center;background:#fff;padding:clamp(1.2rem,3vw,2.5rem);color:var(--ink);transform:rotate(1.3deg);box-shadow:0 35px 80px rgba(0,0,0,.28)}.plan-drawing figcaption{margin-top:1rem;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase}.studio{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:7vw;align-items:center}.studio figure{position:relative}.studio figure:after{content:"";position:absolute;left:-1rem;bottom:-1rem;width:42%;height:38%;border-left:1px solid var(--moss);border-bottom:1px solid var(--moss);pointer-events:none}.studio figure img{aspect-ratio:4/5;object-fit:cover}.studio-copy h2{max-width:12ch;margin:1rem 0 2rem}.studio-copy>p:not(.section-index){max-width:58ch;color:var(--body)}.studio dl{margin-top:3rem;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.studio dl div{padding:1.2rem 1rem 1.2rem 0}.studio dt{color:var(--muted);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}.studio dd{margin-top:.5rem;font-size:.88rem}.impact{min-height:720px;display:grid;grid-template-columns:.25fr 1.25fr .65fr;gap:5vw;align-items:center;background:var(--moss);color:#fff;overflow:hidden}.impact .section-index{color:#fff}.impact h2{max-width:11ch}.impact>p:last-of-type{max-width:38ch}.impact-mark{height:400px;display:grid;grid-template-columns:1fr 1px 1fr;align-items:center;font:400 clamp(5rem,9vw,10rem)/1 var(--display)}.impact-mark i{height:100%;background:rgba(255,255,255,.5)}.impact-mark span{text-align:center}.contact{display:grid;grid-template-columns:1.2fr .6fr;gap:6vw;align-items:end;background:var(--ink);color:#fff}.contact h2{max-width:13ch;margin-top:1rem}.contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}.contact-actions p{color:#c8cbc4;font-size:.75rem}.contact-actions button{cursor:default}footer{padding:2.3rem var(--gutter);display:grid;grid-template-columns:1fr 1fr auto;gap:2rem;align-items:center;background:#191918;color:#bfc2bb;font-size:.68rem}.footer-brand strong{color:#fff}a:focus-visible,button:focus-visible{outline:3px solid #b7caa9;outline-offset:4px}@media(hover:hover) and (pointer:fine){.button-dark:hover{background:var(--moss-dark)}.plan-index button:hover:not(.active){background:#e4e5e1}.plan-feature-image:hover img{transform:scale(1.025)}}
@media(max-width:1050px){.desktop-nav{display:none}.menu-toggle{display:block}.site-header{grid-template-columns:1fr auto auto}.hero{grid-template-columns:minmax(0,47fr) minmax(0,53fr) 44px}.hero h1{font-size:clamp(3.2rem,6.4vw,5.4rem)}.hero-media figcaption{grid-template-columns:1fr}.hero-media figcaption span:last-child{display:none}.plans-heading{grid-template-columns:.35fr 1.2fr}.plans-heading>p:last-child{grid-column:2}.plan-index{grid-template-columns:repeat(3,1fr)}.impact{grid-template-columns:.3fr 1.4fr}.impact>p:last-of-type{grid-column:2}.impact-mark{display:none}}
@media(max-width:768px){.site-header{height:76px}.brand strong{font-size:1.15rem}.review-link{display:none}.hero{min-height:auto;padding-top:76px;grid-template-columns:1fr 34px;grid-template-rows:auto minmax(330px,48svh)}.hero-copy{grid-column:1;grid-row:1;padding:3.2rem 1.25rem 2.5rem}.hero h1{font-size:clamp(3rem,13vw,5rem);max-width:10ch}.hero-coordinate{display:none}.hero-media{grid-column:1;grid-row:2}.hero-rail{grid-column:2;grid-row:1/3}.hero-media figcaption{bottom:1rem}.hero-media figcaption strong{font-size:2rem}.section{padding:5.5rem 1.25rem}.intro,.section-head,.plans-heading{display:block}.intro-copy h2,.section-head h2,.plans-heading h2{margin-top:1rem}.intro-copy p{margin:1.5rem 0 0}.roof-mark{display:none}.service-grid{grid-template-columns:1fr}.service-card{min-height:380px}.service-card h3{margin-top:3rem}.plan-feature{grid-template-columns:1fr}.plan-feature-image{min-height:400px}.plan-index{display:flex;overflow-x:auto}.plan-index button{min-width:190px}.visualize{grid-template-columns:1fr}.visualize li{grid-template-columns:32px 85px 1fr}.plan-drawing{margin-top:1rem}.studio{grid-template-columns:1fr}.studio figure{max-width:520px}.studio dl{grid-template-columns:1fr}.studio dl div{border-bottom:1px solid var(--line)}.impact{min-height:auto;display:block}.impact h2{margin:1rem 0 2rem}.contact{grid-template-columns:1fr}.contact-actions{margin-top:2rem}footer{grid-template-columns:1fr;gap:1rem}.plans-heading>p:last-child{margin-top:1.5rem}}
@media(max-width:430px){.brand span{font-size:.47rem}.menu-toggle{width:44px;height:44px}.hero-actions{align-items:stretch}.hero-actions .button,.hero-actions .text-link{width:100%;justify-content:center}.hero h1{font-size:clamp(2.85rem,12.5vw,3.7rem)}.hero-media{min-height:320px}.visualize li{grid-template-columns:28px 1fr}.visualize li p{grid-column:2}.plan-feature-image{min-height:310px}.plan-feature-copy{padding:2rem 1.2rem}.studio dl{display:block}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
:root{--moss:#fce448;--moss-dark:#756400}
.service-primary{color:var(--ink)}
.service-primary>span,.service-primary p{color:var(--ink)}
.service-primary button{color:var(--ink);border-color:rgba(36,36,36,.55)}
.impact{color:var(--ink)}
.impact .section-index{color:var(--ink)}
.impact-mark i{background:rgba(36,36,36,.35)}
.hero-rail{color:var(--ink)}
.hero-rail i{background:rgba(36,36,36,.42)}
.hero-media figcaption{padding:1rem;background:rgba(24,24,23,.78);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.plan-index button.active span{color:var(--moss)}
:root{--moss:#7f8f78;--moss-dark:#56624f}
.service-primary{background:var(--moss-dark);color:#fff}
.service-primary>span,.service-primary p{color:#fff}
.service-primary button{color:#fff;border-color:rgba(255,255,255,.55)}
.impact{background:var(--moss);color:var(--ink)}
.impact .section-index{color:var(--ink)}
.impact-mark i{background:rgba(36,36,36,.35)}
.hero-rail{background:var(--moss);color:var(--ink)}
.hero-rail i{background:rgba(36,36,36,.42)}
.plan-index button.active span{color:#acbc9f}
@media(max-width:768px){.hero{height:100svh;min-height:0;grid-template-rows:minmax(0,60fr) minmax(0,40fr)}.hero-copy{min-height:0;padding:1.5rem 1.25rem}.hero h1{margin:.65rem 0 1rem}.hero-lead{font-size:.92rem}.hero-actions{margin-top:.9rem;gap:.4rem}.hero-actions .text-link{min-height:42px}.hero-media{min-height:0}}
@media(max-width:430px){.hero-media{min-height:0}}
