:root{--paper:#f7f7f2;--white:#fff;--ink:#25352e;--secondary:#5a625b;--forest:#26362e;--moss:#dee1d6;--line:#cbd0c6;--on-dark:#f7f7ee;--gutter:clamp(24px,6.4vw,124px);--display:'Barlow',Arial,sans-serif;--body:'Manrope',Arial,sans-serif;--header-height:133px;font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 24px)}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{cursor:default;opacity:.3}img{display:block;width:100%;height:auto}svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}p{margin:0 0 24px}h1,h2,h3{font-family:var(--display);font-weight:300;line-height:1.07;margin:0;text-transform:uppercase}h2{font-size:clamp(42px,4.5vw,74px);letter-spacing:-.03em;text-wrap:balance}h3{font-size:32px;letter-spacing:-.025em}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #798d75;outline-offset:5px}a,button{touch-action:manipulation}::selection{background:#d7dec8;color:#20372c}.container{width:100%;max-width:1680px;margin-inline:auto;padding-inline:var(--gutter)}.eyebrow{font-size:11px;font-weight:500;line-height:1.5;letter-spacing:.16em;text-transform:uppercase;display:block}.text-link{display:inline-flex;position:relative;align-items:center;min-height:44px;font-size:13px;font-weight:500;line-height:1.5;padding-block:9px}.text-link:after{content:'';position:absolute;bottom:6px;left:0;right:0;border-bottom:1px solid currentColor;transform-origin:left;transition:transform .3s}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:55px;padding:14px 23px;border:1px solid transparent;font-size:13px;font-weight:500;line-height:1.4;transition:background .25s,color .25s,border-color .25s;white-space:nowrap}.primary{background:var(--forest);color:var(--on-dark);border-color:var(--forest)}.button svg{width:19px;height:19px;transition:transform .25s}.skip-link{position:fixed;z-index:100;top:0;left:16px;transform:translateY(-110%);padding:12px 24px;background:var(--forest);color:white}.skip-link:focus{transform:translateY(0)}
.header{position:sticky;top:0;background:var(--white);z-index:20;box-shadow:0 1px 0 #25352e12}.utility{min-height:35px;border-bottom:1px solid #eeefea;margin-inline:34px;display:flex;align-items:center;justify-content:space-between;font-size:10px;line-height:1.6;letter-spacing:.09em;text-transform:uppercase}.utility>div{display:flex;gap:30px}.utility a{padding:7px 0}.utility a:last-child{border-bottom:1px solid var(--ink)}.masthead{height:98px;display:grid;grid-template-columns:1fr 350px 1fr;align-items:center;padding:0 6.4%;gap:64px}.brand{display:block;width:350px;max-width:100%;justify-self:center}.brand img{height:auto}.masthead nav{display:flex;gap:40px;font-size:12px;letter-spacing:.1em;text-transform:uppercase}.masthead nav a{padding-block:14px}.nav-left{justify-content:flex-end}.nav-right{justify-content:flex-start}.masthead nav a:after{content:'';height:1px;background:currentColor;display:block;transform:scaleX(0);transform-origin:left;transition:transform .25s}.menu-toggle,.mobile-call{display:none}
.hero{position:relative;margin:0 18px;max-width:1920px;height:min(75vw,calc(100svh - 152px));min-height:560px;max-height:900px;overflow:hidden;background:var(--forest);color:var(--on-dark)}.hero-image{height:100%;object-fit:cover;object-position:50% 53%}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,31,24,.22),transparent 28%,rgba(14,27,20,.08) 44%,rgba(14,27,20,.69) 85%,rgba(14,27,20,.8))}.hero-location{position:absolute;top:30px;left:32px;text-shadow:0 1px 8px #0008;font-size:10px}.hero-content{position:absolute;bottom:100px;left:24px;right:24px;text-align:center}.hero h1{font-size:clamp(38px,4.15vw,68px);letter-spacing:-.025em;line-height:1.12;text-wrap:balance}.phone-break{display:none}.hero-actions{display:flex;align-items:center;justify-content:center;gap:31px;margin-top:31px}.hero .primary{background:var(--paper);color:var(--ink);border-color:var(--paper)}.hero-call{font-size:13px;border-bottom:1px solid #ffffff9c;padding:10px 0}.hero-bottom{position:absolute;bottom:22px;left:32px;right:32px;display:flex;justify-content:space-between;align-items:center;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.hero-bottom>a{display:flex;align-items:center;gap:20px;min-height:40px}.hero-bottom>a span{font-size:23px;font-family:Arial;font-weight:normal}.hero-bottom>span{width:180px}.hero-bottom>span:last-child{text-align:right}
.introduction{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(60px,9vw,170px);padding-block:117px 124px}.intro-statement{font-family:var(--display);font-weight:300;font-size:clamp(30px,2.7vw,43px);letter-spacing:-.015em;line-height:1.24}.intro-copy{max-width:480px;padding-top:5px}.intro-copy p{font-size:15px;line-height:1.8}.intro-copy .secondary{color:var(--secondary);font-size:13px;margin-top:27px}.intro-copy .text-link{margin-top:0}.services{background:#fff;padding-block:100px 120px;border-top:1px solid #e7e9e2}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:70px;margin-bottom:65px}.section-heading .eyebrow{margin-bottom:20px}.section-heading>p{max-width:250px;font-size:14px;color:var(--secondary);margin:0 0 5px}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px 55px}.service-card:nth-child(even){transform:translateY(100px)}.service-grid{padding-bottom:100px}.photo-frame{display:block;position:relative;overflow:hidden;background:#bec7bb}.photo-frame img{height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.65,.3,1)}.service-card .photo-frame{aspect-ratio:1.26}.service-card:nth-child(even) .photo-frame{aspect-ratio:1.26}.photo-control{position:absolute;bottom:20px;right:20px;background:#fff;color:var(--ink);width:46px;height:46px;display:grid;place-items:center;transition:background .25s,color .25s}.service-body{padding-top:25px}.service-body h3{margin-bottom:15px}.service-body p{font-size:14px;color:var(--secondary);max-width:460px;margin-bottom:11px}.service-body .text-link{font-size:12px}.service-card:nth-child(3) h3{max-width:380px}
.projects{background:var(--forest);color:var(--on-dark);padding-block:110px 65px;overflow:hidden}.projects-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:60px;margin-bottom:55px}.projects-heading .eyebrow{color:#c1cbbb;margin-bottom:18px}.projects-heading>div:last-child{display:flex;align-items:center;gap:60px}.projects-heading p{font-size:13px;max-width:255px;color:#d3d9ce;margin:0}.rail-controls{display:flex;gap:10px}.circle-button{height:46px;width:46px;background:transparent;border:1px solid #869489;border-radius:50%;padding:0;display:grid;place-items:center;transition:background .25s,color .25s}.circle-button[data-rail="-1"] svg{transform:rotate(180deg)}.project-rail{display:flex;gap:32px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-padding-inline:var(--gutter);padding:0 var(--gutter) 10px;outline-offset:-5px}.project-rail::-webkit-scrollbar{display:none}.project-card{flex:0 0 min(72vw,1080px);scroll-snap-align:start;min-width:0}.project-card:last-child{margin-right:0}.project-card .photo-frame{aspect-ratio:1.88}.project-card .photo-control{background:var(--paper)}.project-caption{display:grid;grid-template-columns:.75fr 1fr;gap:40px;padding-top:26px}.project-caption h3{font-size:36px;text-transform:none;letter-spacing:0}.project-caption p{font-size:13px;line-height:1.7;color:#d7ded1;max-width:490px;margin:0}.projects-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:44px}.project-tabs{display:flex;gap:25px;flex-wrap:wrap}.project-tabs button{background:none;border:0;border-bottom:1px solid transparent;color:#c0cbbc;padding:12px 0;font-size:11px;line-height:1.5;letter-spacing:.08em;text-transform:uppercase}.project-tabs button[aria-pressed=true]{color:white;border-color:#e3eadc}.projects-bottom .text-link{font-size:12px;white-space:nowrap}
.about{padding-block:140px;display:grid;grid-template-columns:1.12fr 1fr;gap:clamp(65px,9vw,140px);align-items:center}.about-photo{align-self:stretch;display:flex;flex-direction:column;justify-content:center}.about-photo img{aspect-ratio:.91;object-fit:cover;object-position:47% 50%}.image-caption{font-size:10px;text-transform:uppercase;letter-spacing:.12em;margin-top:14px;color:var(--secondary)}.about-copy .eyebrow{margin-bottom:20px}.about-copy h2{font-size:clamp(43px,4.3vw,68px);margin-bottom:38px}.about-copy>p{font-size:14px;line-height:1.9}.about-copy>p+p{color:var(--secondary)}.about-copy .text-link{margin-top:6px}.consultation{padding:90px 0 100px;background:var(--moss)}.consultation-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:100px;margin-top:33px}.consultation h2{font-size:clamp(46px,5.1vw,78px);line-height:1.05}.consultation-copy{max-width:425px;padding-top:7px}.consultation-copy p{font-size:14px}.consultation-copy p+p{font-size:12px;color:#586452}.consultation .primary{margin-top:8px}.contact-alternatives{display:flex;gap:30px;margin-top:14px}.footer{background:#fff;padding-block:80px 24px}.footer-grid{display:grid;grid-template-columns:1.1fr 1fr .45fr;gap:75px;align-items:start}.footer-brand img{max-width:370px}.footer-brand p{font-size:11px;margin-top:26px;color:var(--secondary)}.footer-details{display:flex;flex-direction:column;font-size:13px;gap:8px}.footer-details a{overflow-wrap:anywhere}.footer-details address{font-style:normal;color:var(--secondary);margin-top:19px;font-size:12px;line-height:1.8}.footer nav{display:flex;flex-direction:column;align-items:flex-start;font-size:11px;text-transform:uppercase;letter-spacing:.06em;gap:4px}.footer nav a{padding-block:4px;min-height:30px}.footer-bottom{display:flex;justify-content:space-between;margin-top:65px;padding-top:22px;font-size:10px;color:var(--secondary);position:relative}.footer-bottom:before{content:'';position:absolute;left:var(--gutter);right:var(--gutter);top:0;border-top:1px solid #e0e3d9}.footer-bottom>a{padding:7px 0;margin-top:-7px}.mobile-actions{display:none}
/* Native top-layer dialogs retain keyboard isolation and work at any page scroll. */
dialog{color:var(--ink);background:var(--paper);border:0;padding:0;max-width:none;max-height:none;overscroll-behavior:contain}dialog:not([open]){display:none}dialog::backdrop{background:#12241bcc;backdrop-filter:blur(6px)}.dialog-top{height:86px;padding:20px 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:5}.close-button{width:46px;height:46px;border:1px solid var(--line);background:transparent;display:grid;place-items:center;position:relative;flex-shrink:0}.close-button span{position:absolute;width:18px;height:1px;background:currentColor;transform:rotate(45deg)}.close-button span+span{transform:rotate(-45deg)}.menu-dialog{inset:0;width:100%;height:100dvh;margin:0;overflow:auto}.menu-dialog nav{padding:40px var(--gutter) 22px;display:flex;flex-direction:column}.menu-dialog nav>a{font-family:var(--display);font-weight:300;font-size:clamp(42px,7vw,80px);border-bottom:1px solid var(--line);line-height:1.35;padding:12px 0;text-transform:uppercase}.menu-contact{display:flex;align-items:flex-start;flex-direction:column;gap:9px;padding:22px var(--gutter) 55px;font-size:14px}.menu-contact p{color:var(--secondary);font-size:12px;margin-top:10px}.contact-dialog{width:min(1250px,calc(100% - 72px));height:calc(100dvh - 60px);margin:auto;overflow-y:auto}.contact-layout{padding:52px 55px 65px;display:grid;grid-template-columns:.85fr 1fr;gap:85px}.contact-intro h2{font-size:56px;margin:21px 0 25px}.contact-intro>p{font-size:13px;line-height:1.8}.direct-contact{display:grid;gap:20px;margin:27px 0 35px;font-size:13px}.direct-contact span{font-size:12px;color:var(--secondary);overflow-wrap:anywhere}.contact-intro>img{aspect-ratio:1.5;object-fit:cover}.form-field{display:flex;flex-direction:column;margin-bottom:23px}.form-field label,legend{font-size:12px;font-weight:500;margin-bottom:8px;line-height:1.5}.form-field label span{font-size:10px;font-weight:400;color:var(--secondary)}input:not([type=checkbox]),textarea{width:100%;border:0;border-bottom:1px solid #a9b3a4;background:transparent;border-radius:0;padding:7px 0 11px;color:var(--ink);font-size:16px;line-height:1.5;min-width:0}textarea{resize:vertical;min-height:90px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:25px}.form-row .form-field{margin-bottom:0}.field-note{font-size:10px;color:var(--secondary);margin:8px 0 24px}.field-error{color:#933b2c;font-size:12px;line-height:1.5;display:block}.field-error:not(:empty){margin-top:8px}[aria-invalid=true]{border-color:#933b2c!important}fieldset{padding:0;margin:0 0 27px;border:0;min-width:0}legend{margin-bottom:13px}.feature-options{display:flex;flex-wrap:wrap;gap:8px}.feature-options label{display:flex;cursor:pointer;position:relative;min-height:39px}.feature-options input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}.feature-options span{display:block;padding:9px 11px;border:1px solid #c0c8bb;font-size:10px;line-height:1.5}.feature-options input:checked+span{background:var(--forest);color:white;border-color:var(--forest)}.feature-options input:focus-visible+span{outline:2px solid #798d75;outline-offset:3px}.honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.privacy{font-size:10px;margin:12px 0 0;color:var(--secondary)}.form-response{padding:19px;border:1px solid #aaac97;background:#e6e7db;font-size:13px;margin-top:22px}.form-response a{text-decoration:underline}.detail-dialog{inset:0;width:100%;height:100dvh;margin:0;overflow-y:auto}.detail-body{max-width:1520px;margin:auto;padding:65px var(--gutter) 90px}.detail-heading{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end;margin-bottom:45px}.detail-heading h2{font-size:clamp(46px,5.5vw,82px)}.detail-heading .eyebrow{margin-bottom:16px}.detail-heading p{font-size:14px;max-width:510px;margin:0}.detail-gallery{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:25px}.detail-gallery figure{margin:0;min-width:0}.detail-gallery img{width:100%;height:auto;max-width:1920px;margin:auto}.detail-gallery figure:first-child{grid-column:1/-1}.detail-gallery figcaption{font-size:11px;color:var(--secondary);margin-top:12px;line-height:1.7}.detail-gallery figure:nth-child(3n){padding-top:50px}.detail-contact{border-top:1px solid var(--line);margin-top:65px;padding-top:35px;display:flex;justify-content:space-between;align-items:center;gap:24px}.detail-contact h3{font-size:32px;max-width:370px;text-wrap:balance}.service-detail-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}.service-detail-layout img{aspect-ratio:1.05;object-fit:cover}.service-detail-layout h2{font-size:60px;margin:18px 0 30px}.service-detail-layout p{font-size:14px}.service-detail-layout .button{margin-top:15px}.process-list{margin-top:70px;border-top:1px solid var(--line);padding-top:30px}.process-list h3{font-size:30px;margin-bottom:27px}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.process-grid h4{font-family:var(--display);text-transform:uppercase;font-weight:400;font-size:21px;margin:0 0 12px}.process-grid p{font-size:12px}.faq{margin-top:40px}.faq details{border-top:1px solid var(--line);padding:15px 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;font-size:15px;padding:9px 0}.faq p{font-size:13px;max-width:680px;padding-top:18px;margin:0 0 12px}.all-projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px 30px}.all-projects-grid img{aspect-ratio:1.5;object-fit:cover}.all-projects-grid h3{margin:20px 0 12px}.all-projects-grid p{font-size:13px;margin:0}.about-detail{max-width:780px}.about-detail h2{margin:22px 0 35px}.about-detail p{font-size:17px;line-height:1.9}.about-detail .button{margin-top:20px}
@media(hover:hover) and (pointer:fine){.primary:hover{background:#435745;border-color:#435745;color:white}.hero .primary:hover{background:#e2e8d8;border-color:#e2e8d8;color:var(--ink)}.button:hover svg{transform:translateX(3px)}.text-link:hover:after{transform:scaleX(.65)}.masthead nav a:hover:after{transform:scaleX(1)}.photo-frame:hover img{transform:scale(1.025)}.photo-frame:hover .photo-control{background:var(--forest);color:var(--paper)}.circle-button:hover{background:var(--paper);color:var(--forest)}.close-button:hover{background:var(--moss)}.project-tabs button:hover{color:white}.footer a:hover{text-decoration:underline;text-underline-offset:5px}.feature-options label:hover span{border-color:var(--forest)}}
@media(min-width:1956px){.hero{margin-inline:auto}}
@media(max-width:1199px){:root{--gutter:48px}.masthead{grid-template-columns:1fr 290px 1fr;gap:35px;padding-inline:45px}.brand{width:290px}.masthead nav{gap:25px;font-size:11px}.hero h1{font-size:48px}.introduction{gap:70px;padding-block:85px}.service-grid{gap:55px 35px}.service-body h3{font-size:29px}.about{gap:65px;padding-block:100px}.about-copy h2{font-size:51px}.consultation-grid{gap:50px}.footer-grid{gap:40px}.projects-heading>div:last-child{gap:30px}.contact-layout{gap:45px;padding:40px}.contact-intro h2{font-size:47px}.detail-heading{gap:40px}.service-detail-layout{gap:45px}.service-detail-layout h2{font-size:49px}}
@media(max-width:900px){:root{--gutter:32px;--header-height:93px}.utility{display:none}.masthead{height:93px;grid-template-columns:1fr 280px 1fr;padding:0 32px;gap:0}.brand{grid-column:2;width:280px}.masthead nav{display:none}.mobile-call{display:grid;place-items:center;width:44px;height:44px;grid-column:1;grid-row:1;justify-self:start}.menu-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;grid-column:3;grid-row:1;justify-self:end;width:44px;height:44px;background:transparent;border:0}.menu-toggle span{width:23px;height:1px;background:var(--ink)}.hero{height:calc(100svh - 111px);min-height:550px;max-height:820px}.hero h1{max-width:630px;margin:auto;font-size:43px}.hero-content{bottom:90px}.introduction{gap:45px}.intro-statement{font-size:31px}.intro-copy p{font-size:13px}.services{padding-block:80px}.service-grid{gap:45px 28px}.service-card:nth-child(even){transform:translateY(70px)}.service-grid{padding-bottom:70px}.service-body h3{font-size:27px}.service-body p{font-size:13px}.projects{padding-block:80px 45px}.projects-heading{gap:25px}.projects-heading>div:last-child{gap:20px}.projects-heading p{max-width:210px;font-size:12px}.project-card{flex-basis:80vw}.projects-bottom{align-items:flex-start}.project-tabs{gap:18px}.project-tabs button{font-size:10px}.about{gap:45px}.about-copy h2{font-size:44px}.about-copy>p{font-size:13px}.consultation-grid{gap:40px;grid-template-columns:1.1fr 1fr}.consultation h2{font-size:48px}.footer-grid{grid-template-columns:1fr 1fr;gap:40px 55px}.footer nav{grid-column:1/-1;flex-direction:row;gap:25px}.footer-brand img{max-width:300px}.contact-layout{grid-template-columns:1fr;gap:40px}.contact-intro>img{display:none}.contact-intro h2 br{display:none}.contact-intro>p{max-width:600px}.direct-contact{grid-template-columns:1fr 1fr;margin-bottom:0}.contact-dialog{width:calc(100% - 44px);height:calc(100dvh - 44px)}.service-detail-layout{gap:35px}.service-detail-layout h2{font-size:41px}.process-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){:root{--gutter:24px;--header-height:82px}body{font-size:15px}.masthead{height:82px;padding-inline:12px;grid-template-columns:44px minmax(0,1fr) 44px}.brand{width:248px;padding-inline:8px}.mobile-call svg{width:20px;height:20px}.hero{margin-inline:8px;min-height:570px;height:calc(100svh - 159px);max-height:760px}.hero-image{object-position:45% 50%}.hero-shade{background:linear-gradient(180deg,#15251c26,transparent 24%,#13251c14 42%,#112119cc 89%)}.hero-location{left:21px;right:21px;top:24px;font-size:9px;text-align:center;letter-spacing:.12em}.hero-content{bottom:89px;left:21px;right:21px}.hero h1{font-size:37px;line-height:1.13;letter-spacing:-.025em;max-width:420px}.phone-break{display:block}.hero-actions{margin-top:28px;gap:22px;flex-wrap:wrap}.hero .button{min-height:52px;padding:13px 17px;gap:20px;font-size:12px}.hero-call{font-size:12px}.hero-bottom{left:21px;right:21px;bottom:17px;font-size:9px}.hero-bottom>span{width:auto}.hero-bottom>span:last-child{display:none}.hero-bottom>a{gap:12px}.hero-bottom>a span{font-size:20px}.introduction{grid-template-columns:1fr;gap:30px;padding-block:67px}.intro-statement{font-size:31px;line-height:1.24;margin:0;max-width:530px}.intro-copy{max-width:none;padding:0}.intro-copy p{font-size:14px}.intro-copy .secondary{font-size:12px;margin-top:22px}.intro-copy .text-link{font-size:12px}.services{padding-block:67px 75px}.section-heading{align-items:flex-start;flex-direction:column;gap:20px;margin-bottom:35px}.section-heading .eyebrow{font-size:10px;margin-bottom:12px}.section-heading h2{font-size:44px}.section-heading>p{font-size:12px;max-width:300px}.service-grid{grid-template-columns:1fr;gap:40px;padding:0}.service-card:nth-child(even){transform:none}.service-card .photo-frame,.service-card:nth-child(even) .photo-frame{aspect-ratio:1.3}.service-body{padding-top:21px}.service-body h3{font-size:29px;max-width:290px}.service-body p{font-size:13px;margin-bottom:8px}.service-body .text-link{font-size:11px}.photo-control{height:42px;width:42px;bottom:14px;right:14px}.projects{padding-block:64px 42px}.projects-heading{margin-bottom:31px;align-items:flex-start;flex-direction:column;gap:20px}.projects-heading h2{font-size:46px}.projects-heading .eyebrow{font-size:10px;margin-bottom:12px}.projects-heading>div:last-child{justify-content:space-between;width:100%;gap:20px;align-items:center}.projects-heading p{max-width:190px;line-height:1.8;font-size:12px}.circle-button{width:42px;height:42px}.rail-controls{gap:8px}.project-rail{gap:18px}.project-card{flex:0 0 85vw}.project-card .photo-frame{aspect-ratio:1.18}.project-caption{grid-template-columns:1fr;gap:12px;padding-top:22px}.project-caption h3{font-size:32px}.project-caption p{font-size:12px;line-height:1.8;max-width:330px}.projects-bottom{margin-top:27px;flex-direction:column;gap:20px}.project-tabs{gap:7px 20px}.project-tabs button{font-size:10px;padding-block:12px}.projects-bottom .text-link{font-size:12px}.about{grid-template-columns:1fr;gap:40px;padding-block:70px}.about-photo img{aspect-ratio:1.15;object-position:50% 52%}.image-caption{font-size:9px;margin-top:10px}.about-copy .eyebrow{font-size:10px;margin-bottom:13px}.about-copy h2{font-size:48px;margin-bottom:27px}.about-copy>p{font-size:14px;line-height:1.85}.about-copy .text-link{font-size:12px}.consultation{padding-block:64px 67px}.consultation .eyebrow{font-size:10px}.consultation-grid{grid-template-columns:1fr;gap:29px;margin-top:23px}.consultation h2{font-size:47px}.consultation-copy{padding:0;max-width:none}.consultation-copy p{font-size:13px}.consultation-copy p+p{font-size:11px}.contact-alternatives{margin-top:14px;gap:30px}.footer{padding:58px 0 95px}.footer-grid{grid-template-columns:1fr;gap:32px}.footer-brand img{max-width:310px}.footer-brand p{margin:22px 0 0;font-size:11px}.footer-details{font-size:14px;gap:12px}.footer-details address{font-size:12px;margin-top:11px}.footer nav{flex-wrap:wrap;column-gap:26px;row-gap:7px;font-size:10px}.footer-bottom{margin-top:38px;font-size:9px;gap:15px}.mobile-actions{position:fixed;bottom:0;inset-inline:0;z-index:30;display:grid;grid-template-columns:.78fr 1.55fr;padding:10px 14px max(10px,env(safe-area-inset-bottom));background:#fffffffa;box-shadow:0 -1px 0 #25352e25;gap:10px}.mobile-actions>a{display:flex;justify-content:center;align-items:center;gap:8px;min-height:45px;font-size:11px;line-height:1.4}.mobile-actions>a:first-child{border:1px solid #b4bcaf}.mobile-actions>a:last-child{color:var(--on-dark);background:var(--forest)}.mobile-actions svg{width:16px;height:16px}.dialog-top{height:76px;padding:15px 24px}.dialog-top .eyebrow{font-size:10px}.close-button{width:42px;height:42px}.menu-dialog nav{padding-top:18px}.menu-dialog nav>a{font-size:43px;padding:10px 0}.menu-contact{padding-top:20px;padding-bottom:45px;font-size:13px}.menu-contact .button{font-size:12px}.contact-dialog{width:100%;height:100dvh;margin:0;inset:0}.contact-layout{padding:32px 24px 50px;gap:35px}.contact-intro .eyebrow{font-size:10px}.contact-intro h2{font-size:46px;margin-top:17px}.contact-intro h2 br{display:block}.contact-intro>p{font-size:13px}.direct-contact{grid-template-columns:1fr;gap:16px;margin-top:22px}.direct-contact>a{font-size:12px}.direct-contact span{font-size:12px}.form-row{gap:20px}.form-field label,legend{font-size:12px}.field-note{font-size:11px}.feature-options{gap:8px}.feature-options span{font-size:11px;padding:10px}.privacy{font-size:10px}.detail-body{padding-block:35px 55px}.detail-heading{grid-template-columns:1fr;gap:25px;margin-bottom:30px}.detail-heading h2{font-size:49px}.detail-heading p{font-size:13px}.detail-gallery{grid-template-columns:1fr;gap:24px}.detail-gallery figure:nth-child(3n){padding-top:0}.detail-gallery figcaption{font-size:11px}.detail-contact{flex-direction:column;align-items:flex-start;margin-top:40px}.detail-contact h3{font-size:32px}.service-detail-layout{grid-template-columns:1fr;gap:28px}.service-detail-layout img{aspect-ratio:1.3}.service-detail-layout h2{font-size:43px;margin-top:14px}.service-detail-layout p{font-size:13px}.process-list{margin-top:50px}.process-grid{grid-template-columns:1fr;gap:10px}.process-grid p{font-size:13px}.faq summary{font-size:14px}.all-projects-grid{grid-template-columns:1fr;gap:35px}.all-projects-grid h3{font-size:30px}.about-detail h2{font-size:49px}.about-detail p{font-size:15px}}
@media(max-width:360px){.brand{width:220px}.hero h1{font-size:32px}.hero-actions{gap:13px}.hero-actions .button{font-size:11px;gap:12px}.hero-call{font-size:11px}.mobile-actions{gap:7px;padding-inline:9px}.mobile-actions>a{font-size:10px}.consultation h2{font-size:41px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* Edge-to-edge film and a compact opening masthead. Header growth never shifts
   the document or resizes the film; only the fixed header itself expands. */
:root{--compact-header-height:72px;--header-height:128px}
.header{position:fixed;inset:0 0 auto;width:100%}
#main{padding-top:var(--compact-header-height)}
.header .utility{height:0;min-height:0;opacity:0;visibility:hidden;overflow:hidden;border-bottom:0;box-shadow:inset 0 -1px 0 #eeefea;transition:height 1s cubic-bezier(.45,0,.2,1),opacity .55s ease,visibility 0s linear .55s}
.header .masthead{height:var(--compact-header-height);grid-template-columns:1fr 280px 1fr;transition:height 1s cubic-bezier(.45,0,.2,1),grid-template-columns 1s cubic-bezier(.45,0,.2,1)}
.header .brand{width:268px;transition:width 1s cubic-bezier(.45,0,.2,1)}
.header-expanded .header .utility{height:35px;min-height:0;opacity:1;visibility:visible;transition-delay:0s,.2s,0s}
.header-expanded .header .masthead{height:93px;grid-template-columns:1fr 330px 1fr}
.header-expanded .header .brand{width:330px}
.hero{margin:0;max-width:none;width:100%;height:calc(100svh - var(--compact-header-height));min-height:560px;max-height:none}
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-media .hero-image,.hero-video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-video{opacity:0}
.hero-video.has-frame{opacity:1}
.hero h1{color:#fff;font-weight:400;text-shadow:0 2px 3px #000b,0 5px 18px #0008}
.hero-location,.hero-bottom,.hero-call{color:#fff;font-weight:600;text-shadow:0 1px 3px #000c,0 3px 9px #0009}
.hero-location{font-size:11px}
.hero-call{border-bottom-color:#fff}
.hero-bottom{font-size:11px}

@media(max-width:1199px) and (min-width:901px){.header .masthead{gap:30px;grid-template-columns:1fr 268px 1fr}.header-expanded .header .masthead{grid-template-columns:1fr 290px 1fr}.header-expanded .header .brand{width:290px}}
@media(max-width:900px){:root{--compact-header-height:64px;--header-height:86px}.header .utility,.header-expanded .header .utility{display:none}.header .masthead,.header-expanded .header .masthead{grid-template-columns:44px minmax(0,1fr) 44px;gap:0}.header-expanded .header .masthead{height:86px}.header .brand{width:260px}.header-expanded .header .brand{width:280px}.hero{height:calc(100svh - var(--compact-header-height));margin:0;max-height:none}.hero-location{left:26px;right:auto;font-size:10px}}
@media(max-width:600px){:root{--compact-header-height:60px;--header-height:80px}.header .brand{width:238px}.header-expanded .header .brand{width:248px}.header-expanded .header .masthead{height:80px}.hero{height:calc(100svh - var(--compact-header-height) - 65px - env(safe-area-inset-bottom,0px));min-height:520px;width:100%;margin:0}.hero-location{top:22px;left:22px;right:22px;text-align:left;font-size:9px;max-width:230px}.hero-bottom{font-size:10px}.hero-call{font-weight:600}.hero h1{font-size:36px}}
@media(max-width:360px){.header .brand,.header-expanded .header .brand{width:210px}.hero h1{font-size:32px}.hero-location{font-size:8px;max-width:190px}}
@media(prefers-reduced-motion:reduce){.header .utility,.header .masthead,.header .brand,.hero-video{transition:none}}

/* One shared motion language for browsing, panels and the approach to content. */
.reveal-word{display:inline-block}
.photo-reveal-frame{display:block;position:relative;overflow:hidden}
.photo-reveal-cover{position:absolute;inset:-1px;z-index:2;background:var(--paper);pointer-events:none}
.services .photo-reveal-cover{background:var(--white)}
.photo-reveal-prepared>img,.photo-reveal-prepared>.photo-reveal-cover{will-change:transform}
.project-rail.is-dragging,.project-rail.is-dragging a{cursor:grabbing}
.project-rail.is-dragging .photo-frame img{transform:none}
dialog[data-phase=opening]::backdrop{animation:panel-backdrop-in .6s ease both}
dialog[data-phase=closing]::backdrop{animation:panel-backdrop-out .24s ease both}
@keyframes panel-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes panel-backdrop-out{from{opacity:1}to{opacity:0}}
.close-button{transition:background-color .3s ease}
.close-button span{transition:transform .45s cubic-bezier(.22,.7,.25,1)}
.nav-left>a,.nav-right>a{position:relative}
.nav-left>a:after,.nav-right>a:after{content:'';position:absolute;bottom:6px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s cubic-bezier(.22,.7,.25,1)}
.nav-left>a:focus-visible:after,.nav-right>a:focus-visible:after{transform:scaleX(1);transform-origin:left}
.button svg,.photo-control svg{transition:transform .45s cubic-bezier(.22,.7,.25,1)}
.button:focus-visible svg,.photo-frame:focus-visible .photo-control svg{transform:translateX(4px)}
.menu-dialog nav>a{transition:color .3s ease,padding-left .5s cubic-bezier(.22,.7,.25,1)}
.menu-dialog nav>a:focus-visible{padding-left:14px}
@media(hover:hover) and (pointer:fine){
 .project-rail,.project-rail .photo-frame{cursor:grab;user-select:none;-webkit-user-select:none}
 .project-rail.is-dragging,.project-rail.is-dragging a{cursor:grabbing}
 .nav-left>a:hover:after,.nav-right>a:hover:after{transform:scaleX(1);transform-origin:left}
 .button:hover svg{transform:translateX(7px)}
 .photo-frame:hover .photo-control svg{transform:translateX(3px)}
 .menu-dialog nav>a:hover{padding-left:14px}
 .close-button:hover{background:#dce3d6}
}
@media(prefers-reduced-motion:reduce){dialog::backdrop{animation:none!important}.reveal-word{transform:none!important;clip-path:none!important;opacity:1!important}.nav-left>a:after,.nav-right>a:after,.menu-dialog nav>a,.button svg,.photo-control svg{transition:none}}
.project-rail.is-dragging{scroll-snap-type:none;scroll-behavior:auto}
