:root{--ink:#111d39;--blue:#08056e;--cream:#f5f3ec;--orange:#d45b24;--line:#d6d7d6;--muted:#5b6270;--pad:clamp(1.2rem,5vw,5rem)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:7rem}body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:1rem;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{max-width:100%;display:block;object-fit:cover}h1,h2,h3,p{margin:0}p+p{margin-top:1rem}h1,h2,h3{line-height:1.03;font-weight:500;letter-spacing:-.055em}h1{font-size:clamp(3rem,7vw,7rem)}h2{font-size:clamp(2.5rem,5.2vw,5.5rem)}h3{font-size:clamp(1.5rem,2.4vw,2.4rem)}em{font-family:Georgia,'Times New Roman',serif;font-weight:400}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:6px}::selection{background:#eec866;color:var(--ink)}.header{position:sticky;top:0;z-index:30;background:rgba(245,243,236,.97);display:flex;align-items:center;gap:2rem;justify-content:space-between;padding:.8rem var(--pad);border-bottom:1px solid var(--line)}.brand{width:12.8rem;flex-shrink:0}.brand img{width:100%;height:5.4rem;object-fit:contain;mix-blend-mode:multiply}.header nav{display:flex;align-items:center;gap:clamp(1rem,2.2vw,2.5rem);font-size:.9rem}.header nav a{position:relative;padding:.6rem 0}.header nav a:after{content:'';position:absolute;height:1px;bottom:.2rem;left:0;width:0;background:currentColor;transition:width .25s}.header nav a:hover:after{width:100%}.nav-contact{font-weight:bold}.phone{font-size:.8rem;white-space:nowrap;border:1px solid #b6bbc4;border-radius:2rem;padding:.65rem 1rem}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:.69rem;font-weight:bold;line-height:1.7;margin-bottom:1.5rem}.lead{font-size:clamp(1.15rem,1.5vw,1.5rem);line-height:1.5;max-width:43rem}.muted,.caption{color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;padding:1rem 1.4rem;background:var(--ink);color:white;font-size:.88rem;line-height:1.4;border:1px solid var(--ink);margin-top:2rem;transition:background .25s,color .25s;max-width:100%;text-align:left}.button span{font-size:1.4rem;transition:transform .25s}.button:hover{background:var(--orange);border-color:var(--orange)}.button:hover span{transform:translate(3px,-3px)}.text-link{display:inline-block;font-size:.9rem;border-bottom:1px solid;margin-top:1.5rem;padding-bottom:.3rem}.skip{position:fixed;top:-10rem;left:1rem;z-index:100;background:white;padding:1rem}.skip:focus{top:1rem}.intro{background:var(--ink);color:var(--cream);position:relative}.js .intro{height:175svh}.intro-sticky{min-height:calc(100svh - 7rem);padding:2rem var(--pad);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:sticky;top:7rem;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:3rem 3rem}.intro-top,.intro-bottom{display:flex;justify-content:space-between;gap:1rem;align-items:center;font-size:.7rem;position:relative;z-index:4}.intro-top .eyebrow{margin:0}.intro-top a{border-bottom:1px solid #ffffff70;padding:.3rem 0}.intro-copy{position:absolute;top:23%;left:var(--pad);z-index:2;max-width:35%}.intro-copy>span{font-size:1rem}.intro-copy h1{font-size:clamp(3rem,5.6vw,6rem);margin-top:1rem}.intro-copy em{color:#f1bd86}.logo-stage{position:relative;margin:2rem 0 2rem 42%;width:58%;aspect-ratio:1800/1050;display:flex;align-items:center}.logo-build{width:100%;padding:1rem;background:white;box-shadow:0 2rem 5rem #0003;transform:rotate(-3deg);position:relative;z-index:2}.logo-build>svg{display:block;width:100%;height:auto}.blueprint{position:absolute;inset:0;display:none}.blueprint svg{width:100%;height:100%;fill:none;stroke:#f1bd86;stroke-width:3}.blueprint .measure{stroke:#ffffff66;stroke-width:1;stroke-dasharray:10 10}.stage-note{position:absolute;bottom:0;right:0;text-transform:uppercase;letter-spacing:.16em;font-size:.6rem}.intro-bottom{margin-top:1rem;opacity:.7}.intro-progress{height:3px;background:var(--orange);position:absolute;bottom:0;left:0;width:0}.js .blueprint{display:block}.js .logo-build{background:transparent;box-shadow:none;transform:none}.js .logo-build>svg>rect{opacity:0}.js .logo-build svg g{opacity:0}.js .logo-build svg #logo-support-left,.js .logo-build svg #logo-support-right{transform-box:fill-box;transform-origin:bottom;transform:scaleY(0)}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:48rem}.hero-copy{padding:6rem var(--pad) 3rem;display:flex;flex-direction:column;align-items:flex-start}.hero h2{font-size:clamp(2.8rem,4.8vw,5rem);margin-bottom:2rem}.hero .lead{max-width:30rem}.hero-caption{margin-top:auto;padding-top:4rem;display:flex;justify-content:space-between;gap:1rem;width:100%;font-size:.63rem;text-transform:uppercase;letter-spacing:.08em}.hero-image{position:relative;min-height:35rem;overflow:hidden}.hero-image>img{height:100%;width:100%}.image-label{position:absolute;bottom:2rem;left:2rem;background:var(--cream);padding:.8rem 1rem;font-size:.8rem}.statement{padding:8rem var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:3rem}.statement>.eyebrow{grid-column:1/-1}.statement h2{font-size:clamp(3.1rem,6.5vw,7rem)}.statement>div{max-width:29rem;align-self:end;justify-self:end;font-size:1.1rem}.statement>div p+p{margin-top:3rem}.statement em{color:var(--orange)}.explorer{background:#e9e7df;padding:6rem var(--pad)}.section-heading{display:grid;grid-template-columns:1fr auto;align-items:end;gap:1rem;margin-bottom:3rem}.section-heading .eyebrow{grid-column:1/-1;margin:0}.section-heading .button{align-self:end}.explore-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:5rem;align-items:center}.service-list{border-top:1px solid #aeb2b7}.service-link{display:grid;grid-template-columns:2.3rem 1fr auto;align-items:center;gap:.8rem;font-size:clamp(1.1rem,1.8vw,1.8rem);line-height:1.3;padding:1.7rem 0;border-bottom:1px solid #aeb2b7;transition:color .25s,padding .25s}.service-link .num{font-size:.65rem;letter-spacing:.1em}.service-link:hover,.service-link:focus-visible{color:var(--orange);padding-left:.5rem}.service-preview{height:35rem;position:relative;overflow:hidden;clip-path:polygon(0 8%,100% 0,100% 92%,0 100%)}.service-preview img{height:100%;width:100%;transition:transform .6s}.service-preview:hover img{transform:scale(1.04)}.service-preview>span{position:absolute;bottom:12%;left:1rem;right:1rem;background:#111d39df;color:white;font-size:.7rem;padding:.6rem 1rem}.roof-transition{position:relative;background:var(--ink);color:white;min-height:42rem;padding:12rem var(--pad) 7rem;text-align:center;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center}.roof-transition svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--orange);stroke-width:50;opacity:.8;pointer-events:none}.roof-transition h2,.roof-transition p{z-index:1}.roof-transition h2{font-size:clamp(3rem,6vw,6rem)}.roof-transition>p:last-child{max-width:28rem;margin-top:2rem}.featured{padding:7rem var(--pad)}.project-cover{display:block;position:relative;overflow:hidden}.project-cover>img{width:100%;height:43rem;transition:transform .7s}.project-cover:hover>img{transform:scale(1.03)}.project-cover>span{position:absolute;bottom:0;left:0;right:0;padding:4rem 2rem 2rem;color:white;background:linear-gradient(transparent,#000c);display:grid;grid-template-columns:1fr auto}.project-cover b{font-size:2rem;font-weight:500;line-height:1.2}.project-cover small{grid-row:2;letter-spacing:.08em;margin-top:.5rem}.project-cover i{grid-column:2;grid-row:1/3;font-size:3rem;align-self:end;font-style:normal}.project-pair{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-top:4rem;align-items:start}.project-pair a:last-child{padding-top:6rem}.project-pair img{width:100%;height:25rem;transition:filter .3s}.project-pair a:hover img{filter:brightness(1.1)}.project-pair h3{margin:1.4rem 0 .6rem}.project-pair p{font-size:.8rem}.about-teaser{display:grid;grid-template-columns:1.2fr 1fr;background:#dcded6}.about-teaser>img{width:100%;height:100%;min-height:35rem}.about-teaser>div{padding:5rem var(--pad)}.about-teaser p:not(.eyebrow){margin-top:2rem}.cta{background:var(--orange);color:white;padding:7rem var(--pad);text-align:center}.cta h2{font-size:clamp(3rem,7vw,7rem)}.cta .button{background:var(--cream);border-color:var(--cream);color:var(--ink)}.cta .button:hover{background:var(--ink);color:white;border-color:var(--ink)}.location{display:grid;grid-template-columns:1fr 1.2fr;gap:4rem;padding:6rem var(--pad);background:#efeee8}.location h2{font-size:clamp(2.5rem,4vw,4rem);margin-bottom:2rem}.location address{font-style:normal;margin-top:1.5rem}.map-shell{min-height:25rem;position:relative;background:#e0e3db;display:flex;align-items:stretch;overflow:hidden}.map-placeholder{padding:2rem;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background-image:linear-gradient(35deg,transparent 48%,#ffffff50 49%,#ffffff50 51%,transparent 52%),linear-gradient(100deg,transparent 48%,#ffffff50 49%,#ffffff50 51%,transparent 52%);background-size:8rem 8rem}.map-placeholder p{font-size:.8rem;max-width:28rem;margin-top:1rem}.map-placeholder h3{font-size:2rem}.map-placeholder .button{margin-top:1.4rem}.map-placeholder>a{font-size:.7rem;text-decoration:underline;margin-top:1rem}.map-symbol{font-size:3rem;line-height:1;margin-bottom:1rem}.map-shell iframe{width:100%;height:100%;min-height:25rem;border:0}.unload-map{position:absolute;bottom:.6rem;left:.6rem;padding:.5rem 1rem;background:white;border:1px solid var(--ink);font-size:.75rem}footer{padding:4rem var(--pad) 1.5rem;background:var(--ink);color:var(--cream)}.footer-top{display:flex;justify-content:space-between;gap:3rem;margin-bottom:4rem}.footer-top>p{font-size:clamp(2rem,3.5vw,3.5rem);line-height:1.1;letter-spacing:-.04em}.footer-top>p span{color:#f1bd86}.footer-top>div{display:flex;flex-direction:column;gap:.8rem;align-self:end;font-size:1.1rem;overflow-wrap:anywhere}.footer-bottom{border-top:1px solid #ffffff40;padding-top:1.4rem;display:flex;justify-content:space-between;gap:2rem;font-size:.65rem}.footer-bottom>div{display:flex;gap:1.5rem}.page-heading{padding:6rem var(--pad) 5rem}.page-heading .lead{margin-top:2.5rem}.page-heading em{color:var(--orange)}.anchor-nav{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:3rem}.anchor-nav a{border:1px solid #afb3b8;padding:.7rem 1rem;border-radius:2rem;font-size:.8rem}.anchor-nav a:hover{background:var(--ink);color:white}.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:5rem;padding:5rem var(--pad);border-top:1px solid var(--line);scroll-margin-top:1rem;align-items:start}.service-detail:nth-child(odd){background:#e9e7df}.service-detail:nth-child(odd) .detail-image{order:2}.detail-image{position:sticky;top:9rem}.detail-image img{width:100%;max-height:40rem;min-height:25rem}.detail-copy h2{font-size:clamp(2.5rem,4vw,4rem);margin-bottom:2rem}.detail-copy .lead{font-size:1.15rem;margin-bottom:2rem}details{border-top:1px solid #adb2ba;padding:1rem 0}summary{cursor:pointer;font-weight:bold;line-height:1.4;padding:.3rem 0}details p{font-size:.95rem;line-height:1.7;padding-top:.8rem}details[open]{padding-bottom:1.5rem}.project-detail{padding:4rem var(--pad) 6rem;border-top:1px solid var(--line)}.project-detail:nth-child(odd){background:#e8e7df}.project-title{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem 4rem;margin-bottom:3rem}.project-title .eyebrow{grid-column:1/-1;margin:0}.project-title h2{font-size:clamp(2.5rem,4vw,4rem)}.project-title p{align-self:end;max-width:30rem}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.gallery-1{grid-template-columns:1fr}.gallery-3 a:first-child{grid-column:1/-1}.gallery img{width:100%;height:32rem}.gallery-1 img{height:auto;max-height:55rem;object-fit:contain;background:#dcded6}.zoom-image{position:relative;overflow:hidden}.zoom-image img{transition:transform .5s}.zoom-image:hover img{transform:scale(1.025)}.zoom-image>span{position:absolute;bottom:1rem;right:1rem;background:var(--cream);padding:.6rem 1rem;font-size:.75rem}.about-story{display:grid;grid-template-columns:1.15fr 1fr;gap:5rem;padding:1rem var(--pad) 6rem;align-items:center}.about-story img{width:100%}.about-story h2{font-size:clamp(2.5rem,4vw,4rem);margin-bottom:2rem}.about-story .lead{margin-bottom:2rem}.caption{font-size:.7rem;margin-top:1rem;line-height:1.6}.workshop{background:var(--ink);color:white;display:grid;grid-template-columns:1.1fr 1fr;gap:5rem;padding:6rem var(--pad);align-items:center}.workshop h2{font-size:clamp(2.5rem,4vw,4rem);margin-bottom:2rem}.workshop .button{background:var(--cream);color:var(--ink);border-color:var(--cream)}.workshop img{width:100%;height:35rem}.about-site{display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding:5rem var(--pad)}.about-site img{width:100%;height:25rem}.about-site p{grid-column:1/-1}.contact-heading{padding:5rem var(--pad);background:var(--ink);color:white}.contact-heading h1{font-size:clamp(3rem,7vw,7.5rem)}.contact-heading em{color:#f1bd86}.contact-options{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-top:4rem}.contact-options a{display:grid;grid-template-columns:1fr auto;padding:1.5rem 0;border-top:1px solid #ffffff60;gap:.8rem}.contact-options span{font-size:.75rem;text-transform:uppercase;letter-spacing:.15em}.contact-options strong{grid-row:2;font-size:clamp(1.1rem,2.4vw,2.4rem);line-height:1.3;font-weight:400;overflow-wrap:anywhere}.contact-options i{grid-column:2;grid-row:1/3;font-size:2rem}.contact-note{padding:5rem var(--pad)}.contact-note h2{font-size:clamp(2.5rem,4vw,4rem);margin-bottom:2rem}.legal{max-width:64rem;padding:5rem var(--pad);margin:auto;overflow-wrap:anywhere}.legal h1{font-size:clamp(3rem,6vw,5rem);margin-bottom:3rem}.legal h2{font-size:1.5rem;letter-spacing:-.02em;margin:2.5rem 0 1rem;line-height:1.3}.legal p{margin-bottom:1.2rem}.legal a{text-decoration:underline}.notice{padding:1.5rem;background:#e7e4d8;margin:2rem 0}.notice h2{margin-top:0}.notice blockquote{margin:1rem 0;overflow-wrap:anywhere;font-size:.9rem}dialog{border:0;padding:1rem;background:var(--cream);max-width:min(94vw,85rem);max-height:94svh;color:var(--ink)}dialog::backdrop{background:#07101aeb}dialog img{max-height:78svh;max-width:100%;object-fit:contain;margin:auto}dialog form{display:flex;justify-content:flex-end;margin-bottom:.5rem}dialog button{background:transparent;border:1px solid var(--ink);padding:.5rem 1rem}dialog p{font-size:.8rem;margin-top:.5rem}body:has(dialog[open]){overflow:hidden}
@media(min-width:1500px){.intro-sticky{min-height:calc(100svh - 7rem)}.logo-stage{max-width:55rem}}
@media(max-width:1100px){.phone{display:none}.explore-grid{gap:2rem}.header{gap:1rem}.service-detail,.about-story,.workshop{gap:2.5rem}.intro-sticky{top:7rem}.hero{min-height:40rem}.hero-copy{padding-top:4rem}.hero-image{min-height:32rem}}
@media(max-width:760px){html{scroll-padding-top:1rem}.header{position:relative;flex-wrap:wrap;justify-content:center;padding:.7rem 1.2rem}.brand{width:10rem}.brand img{height:4.5rem}.header nav{width:100%;justify-content:center;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.77rem}.header nav a{padding:.4rem 0}.intro-sticky{top:0;min-height:100svh;padding:1.5rem var(--pad)}.js .intro{height:160svh}.intro-top{font-size:.65rem;align-items:flex-start}.intro-top .eyebrow{max-width:12rem;font-size:.6rem}.intro-copy{position:relative;top:auto;left:auto;max-width:100%;margin-top:3rem}.intro-copy h1{font-size:clamp(3rem,13vw,5rem)}.logo-stage{margin:2rem 0 3rem;width:100%;min-height:13rem}.logo-build{padding:.4rem}.stage-note{font-size:.5rem;bottom:-1.2rem}.intro-bottom{font-size:.6rem;align-items:flex-end}.intro-bottom>span:first-child{max-width:9rem}.scroll-hint{max-width:8rem;text-align:right}.hero,.statement,.explore-grid,.about-teaser,.location,.service-detail,.about-story,.workshop{grid-template-columns:1fr}.hero-copy{padding-top:4rem;padding-bottom:3rem}.hero-image{min-height:0;height:32rem}.hero-caption{padding-top:3rem}.statement{padding:4rem var(--pad);gap:2rem}.statement>.eyebrow{grid-column:auto}.statement>div{justify-self:start}.statement>div p+p{margin-top:2rem}.explorer,.featured{padding:4rem var(--pad)}.section-heading{grid-template-columns:1fr;gap:1.5rem}.section-heading .text-link,.section-heading .button{justify-self:start;margin-top:0}.service-preview{height:24rem;margin-top:1.5rem}.service-link{padding:1.4rem 0}.roof-transition{min-height:32rem;padding:7rem var(--pad)}.roof-transition svg{width:170%;left:-35%}.project-cover>img{height:28rem}.project-cover b{font-size:1.5rem}.project-cover>span{padding:4rem 1.2rem 1.2rem}.project-cover small{font-size:.65rem}.project-pair{gap:2rem;grid-template-columns:1fr;margin-top:2rem}.project-pair a:last-child{padding-top:0}.project-pair img{height:25rem}.about-teaser>img{min-height:0;height:22rem}.about-teaser>div{padding:3rem var(--pad)}.cta{padding:4rem var(--pad)}.location{padding:4rem var(--pad);gap:2rem}.map-shell{min-height:24rem}.map-placeholder{padding:1.5rem}.footer-top,.footer-bottom{flex-direction:column;gap:2rem}.footer-top>div{align-self:start;font-size:.9rem}.footer-bottom{gap:1rem}.footer-bottom>div{flex-wrap:wrap;gap:1rem}footer{padding-top:3rem}.page-heading{padding:3rem var(--pad)}.service-detail{padding:3rem var(--pad)}.service-detail:nth-child(odd) .detail-image{order:0}.detail-image{position:relative;top:auto}.detail-image img{min-height:0;max-height:30rem}.project-title{grid-template-columns:1fr;gap:1rem}.gallery{grid-template-columns:1fr}.gallery-3 a:first-child{grid-column:auto}.gallery img{height:auto;max-height:35rem;object-fit:contain}.project-detail{padding:3rem var(--pad)}.about-story{padding:1rem var(--pad) 3rem}.workshop{padding:3rem var(--pad)}.workshop img{height:25rem}.about-site{grid-template-columns:1fr;padding:3rem var(--pad)}.about-site img{height:auto}.about-site p{grid-column:auto}.contact-heading{padding:3rem var(--pad)}.contact-options{grid-template-columns:1fr;gap:1.5rem;margin-top:3rem}.contact-options strong{font-size:clamp(1rem,5.5vw,1.8rem)}.contact-note{padding:3rem var(--pad)}.legal{padding:3rem var(--pad)}.image-label{left:1rem;bottom:1rem}.anchor-nav a{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .intro{height:auto}.intro-sticky{position:relative;top:auto}.js .logo-build{background:white}.js .logo-build svg g{opacity:1!important;transform:none!important;clip-path:none!important}.js .logo-build>svg>rect{opacity:1!important}.blueprint{display:none!important}.intro-copy{opacity:1!important;transform:none!important}.roof-transition svg{transform:none!important}}
[hidden]{display:none!important}html:not(.js) .load-map{display:none}
@media(min-width:761px) and (max-height:650px){.header{position:relative}.intro-sticky{top:0;min-height:100svh}.intro-copy h1{font-size:clamp(2.4rem,5vw,4rem)}.logo-stage{width:45%;margin-left:55%}.intro-copy{top:20%}.detail-image{position:relative;top:auto}}
h1,h2,h3{overflow-wrap:anywhere;hyphens:auto}.header nav a{min-height:2.75rem;display:inline-flex;align-items:center}.service-link{min-height:3rem}
.contact-photo{padding:0 var(--pad) 4rem}.contact-photo img{width:100%;max-height:35rem;object-fit:cover}
