@font-face{font-family:Editorial;src:url('/fonts/editorial.woff2') format('woff2');font-display:swap;font-weight:400}@font-face{font-family:Sans;src:url('/fonts/sans.woff2') format('woff2');font-display:swap;font-weight:100 900}
:root{--forest:#193d2b;--deep:#102e21;--accent:#417e14;--ivory:#f6f5ee;--stone:#e8e6dc;--ink:#233329;--muted:#5c685f;--line:#c9cfc4;--lime:#cbdda5;--serif:Editorial,Georgia,serif;--sans:Sans,'Helvetica Neue',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:115px}body{margin:0;color:var(--ink);background:var(--ivory);font-family:var(--sans);font-size:16px;line-height:1.65}button,input,select,textarea{font:inherit}a{color:inherit}a,button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button,a,input,textarea,select,summary{touch-action:manipulation}img{display:block;max-width:100%;object-fit:cover}svg{width:24px;height:24px;flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}h1,h2{font-family:var(--serif);line-height:1.04;letter-spacing:-.028em}h2{font-size:clamp(44px,4.7vw,68px)}h3{line-height:1.2}em{font-style:normal;color:var(--accent)}p{line-height:1.7}p+p{margin-top:18px}a{text-decoration:none}a:hover{text-decoration:none}button{color:inherit;border:0;background:none}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex="0"]:focus-visible{outline:3px solid #82a844;outline-offset:5px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:1px}[hidden]{display:none!important}.section{padding:100px max(5vw,24px);max-width:1600px;margin:auto}.eyebrow{display:block;font-size:11px;font-weight:650;letter-spacing:.15em;line-height:1.6;text-transform:uppercase;margin-bottom:22px}.fine{font-size:12px;color:var(--muted);line-height:1.7}.fine a{text-decoration:underline;text-underline-offset:3px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;padding:18px 25px;min-height:56px;background:var(--forest);color:white;font-size:13px;font-weight:600;border-radius:3px;transition:background .2s,transform .2s;line-height:1.4}.button:hover{background:#28503a;transform:translateY(-2px)}.button svg{width:19px}.button.light{color:var(--deep);background:var(--ivory)}.button.light:hover{background:var(--lime)}.button.small{padding:14px 20px;font-size:12px;gap:18px;min-height:46px}.text-link{display:inline-flex;gap:28px;align-items:center;font-size:13px;font-weight:600;padding:12px 0;border-bottom:1px solid currentColor;min-height:44px}.text-link svg{width:22px;transition:transform .2s}.text-link:hover svg{transform:translateX(5px)}.skip{position:fixed;top:-100px;left:15px;z-index:100;background:white;padding:12px;color:var(--forest)}.skip:focus{top:12px}.header{height:104px;padding:12px 4.4vw;display:flex;justify-content:space-between;align-items:center;gap:24px;background:var(--ivory);position:sticky;top:0;z-index:30;border-bottom:1px solid rgba(25,61,43,.08)}.brand{display:flex;align-items:center;gap:18px;flex-shrink:0}.logo{width:117px;height:auto;object-fit:contain;mix-blend-mode:multiply}.brand span{font-size:8px;letter-spacing:.13em;line-height:1.6;color:var(--forest);border-left:1px solid var(--line);padding-left:14px}.desktop-nav{display:flex;gap:26px;font-size:12px}.desktop-nav a{padding:14px 0;position:relative}.desktop-nav a:after{content:'';position:absolute;bottom:8px;left:0;right:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s}.desktop-nav a:hover:after{transform:scaleX(1)}.header-actions{display:flex;align-items:center;gap:25px}.header-phone{font-size:12px}.icon-button{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;font-size:24px;line-height:1;background:transparent}.icon-button:hover{background:var(--stone)}#menu-toggle{display:none}#mobile-nav{position:absolute;top:100%;left:0;right:0;background:var(--ivory);border-top:1px solid var(--line);padding:15px 24px 24px;box-shadow:0 15px 20px #17382415}#mobile-nav a{display:block;padding:10px 5px;font-size:17px}.hero{position:relative;min-height:680px;height:min(780px,calc(100svh - 104px));color:var(--ivory);background:var(--deep);overflow:hidden}.hero-photo{position:absolute;right:0;top:0;width:73%;height:100%;object-position:center 48%;animation:hero-photo .55s ease-out both}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#102e21 0%,#102e21fa 22%,#102e219d 46%,#102e2115 80%)}.hero-content{position:relative;z-index:1;padding:92px 5.5vw 100px;max-width:920px;animation:hero-copy .45s .06s ease-out both}.hero-content .eyebrow{font-size:10px;color:#e0e9d6;margin-bottom:32px}.hero h1{font-size:clamp(60px,6.7vw,96px);line-height:.99;max-width:740px}.hero h1 em{color:#d1dfb6}.hero-content>p{font-size:18px;margin-top:25px;color:#e4e9dd}.hero-actions{display:flex;align-items:center;gap:35px;margin-top:35px}.hero .text-link{border-bottom-color:#b5c5b188}.hero-bottom{position:absolute;bottom:28px;left:5.5vw;right:5.5vw;display:flex;justify-content:space-between;padding-top:20px;border-top:1px solid #ffffff40;font-size:9px;letter-spacing:.14em;z-index:2}.hero-bottom a{letter-spacing:.02em;font-size:12px}.intro{display:grid;grid-template-columns:44% 1fr;gap:9%;align-items:center;padding-top:110px;padding-bottom:110px}.intro-photo{position:relative;max-height:540px;overflow:hidden;clip-path:inset(0 round 2px)}.intro-photo img{width:100%;height:540px;object-position:50% 54%;transition:transform .5s}.intro-photo:hover img{transform:scale(1.025)}.photo-label{position:absolute;bottom:25px;left:24px;background:#f6f5eeea;padding:10px 14px;font-size:9px;letter-spacing:.1em}.intro-copy h2{font-size:clamp(43px,4.3vw,62px);margin-bottom:30px}.intro-copy>p{color:var(--muted);max-width:480px;font-size:15px}.experience{margin-top:40px;border-top:1px solid var(--line);padding-top:25px;display:flex;align-items:center;gap:20px}.experience strong{font-family:var(--serif);font-size:70px;font-weight:400;line-height:1;color:var(--forest)}.experience strong span{font-size:42px}.experience>span{font-size:10px;letter-spacing:.08em;line-height:1.9}.experience svg{width:50px;height:50px;margin-left:auto;color:var(--accent)}.services{background:var(--stone);max-width:none}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:60px;margin-bottom:55px}.section-heading>p{max-width:325px;color:var(--muted);font-size:14px;padding-bottom:5px}.service-explorer{display:grid;grid-template-columns:40% 1fr;gap:50px;align-items:stretch}.service-options{display:flex;flex-direction:column;justify-content:center}.service-options button{display:flex;align-items:center;gap:24px;text-align:left;border-bottom:1px solid #bbc3b8;padding:27px 12px 27px 0;min-height:145px;position:relative;transition:background .2s,padding .2s}.service-options button:first-child{border-top:1px solid #bbc3b8}.service-options button>span{font-size:11px;color:var(--muted);align-self:flex-start;padding-top:8px}.service-options h3{font-family:var(--serif);font-size:37px}.service-options p{font-size:12px;color:var(--muted);margin-top:7px}.service-options svg{margin-left:auto;transform:rotate(-35deg);width:27px}.service-options button[aria-selected="true"]{color:var(--forest);padding-left:15px;background:#ffffff55}.service-options button[aria-selected="true"]:before{content:'';position:absolute;left:0;top:25px;bottom:25px;width:2px;background:var(--accent)}.service-options button:hover{background:#ffffff44}.service-panel{position:relative;min-height:490px;height:100%;overflow:hidden;animation:panel-in .28s ease-out}.service-panel>img{width:100%;height:100%;position:absolute;inset:0;object-position:center 50%}.service-panel:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#112c20e8)}.service-caption{position:absolute;bottom:30px;left:30px;right:30px;z-index:2;color:white}.service-caption .eyebrow{font-size:9px;margin-bottom:12px;color:#e1e9d5}.service-caption ul{margin:0 0 20px;padding-left:16px;font-size:13px;line-height:1.9}.service-caption .text-link{gap:38px}.commercial-panel{background:#204632}.commercial-panel:after{display:none}.commercial-panel .service-caption h3{font-family:var(--serif);font-size:45px}.commercial-panel .service-caption p{max-width:360px;margin:15px 0}.stone-diagram{color:#b1ca8766;position:absolute;top:5px;left:0;width:100%}.stone-diagram svg{width:100%;height:250px;stroke-width:1.2}.service-route-links{display:flex;gap:32px;margin-top:28px;justify-content:flex-end;font-size:12px}.service-route-links a{padding:8px 0}.service-route-links a:hover{text-decoration:underline}.portfolio{padding-bottom:65px}.gallery-filters{display:flex;gap:10px;margin-bottom:32px;flex-wrap:wrap}.gallery-filters button{font-size:12px;padding:12px 18px;border-radius:2px;min-height:44px;border:1px solid var(--line);transition:background .2s}.gallery-filters button[aria-pressed="true"]{background:var(--forest);border-color:var(--forest);color:var(--ivory)}.gallery-filters button:hover{border-color:var(--forest)}.gallery-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:35px 40px;align-items:start}.gallery-item{margin:0}.gallery-item.item-0{grid-column:1/-1}.gallery-item.item-0 img{height:600px;object-position:center 47%}.gallery-item.item-1{margin-top:35px}.gallery-item.item-2 img{height:520px}.gallery-item.item-3 img{height:540px}.gallery-item.item-4{margin-top:65px}.gallery-item img{height:520px;width:100%;transition:transform .6s}.gallery-open{display:block;position:relative;overflow:hidden;width:100%;padding:0;border-radius:2px}.gallery-open:hover img{transform:scale(1.025)}.gallery-enlarge{position:absolute;right:18px;bottom:18px;display:grid;place-items:center;width:44px;height:44px;background:var(--ivory);border-radius:50%;font-size:23px}.gallery-item figcaption{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:15px}.gallery-item figcaption>span{font-family:var(--serif);font-size:24px}.gallery-item figcaption small{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.portfolio-note{margin-top:28px}.gallery-grid.filtered{grid-template-columns:repeat(2,1fr)}.gallery-grid.filtered .gallery-item{grid-column:auto;margin-top:0}.gallery-grid.filtered img{height:450px}.process{padding-top:80px}.process .section-heading{margin-bottom:50px}.process-line{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:0;gap:32px;position:relative;margin:0}.process-line:before{content:'';position:absolute;top:60px;height:1px;left:0;right:0;background:var(--line);transform-origin:left;transform:scaleX(var(--process-progress,1));transition:transform 1.2s ease}.process-line li{position:relative}.process-number{display:flex;justify-content:space-between;align-items:flex-start;padding:0 0 25px;position:relative;color:var(--forest)}.process-number:after{content:'';position:absolute;bottom:0;left:0;width:6px;height:6px;border-radius:50%;background:var(--accent);transform:translateY(50%)}.process-number span{font-size:12px;letter-spacing:.08em}.process-number svg{width:38px;height:38px}.process-line h3{margin-top:30px;font-size:17px;font-weight:550;max-width:180px;min-height:42px}.process-line p{margin-top:12px;font-size:13px;color:var(--muted);max-width:230px}.process-line li:hover h3{color:var(--accent)}.snow{position:relative;padding:90px 8vw;display:flex;align-items:center;justify-content:center;gap:80px;background:#e9eee9;overflow:hidden;border-top:1px solid #dbe3d9;border-bottom:1px solid #dbe3d9}.snow h2{font-size:65px}.snow h2 em{color:#59735d}.snow p{font-size:15px;margin-top:18px;color:#56685c}.snow-mark{color:#789578;z-index:1}.snow-mark svg{width:130px;height:130px}.snow .text-link{margin-top:20px}.snow-detail{display:inline-block;margin-left:24px;font-size:11px;padding:12px 0}.snow-landscape{position:absolute;bottom:-220px;right:-80px;width:850px;height:280px;border:1px solid #a5bba277;border-radius:50%;transform:rotate(-10deg)}.reviews{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.reviews>div:first-child p{margin-top:25px;font-size:14px;color:var(--muted)}.rating{border-left:1px solid var(--line);padding-left:75px}.google-word{font-size:16px;letter-spacing:.01em;color:var(--muted)}.rating-score{font-family:var(--serif);font-size:95px;line-height:1.2;color:var(--forest);display:flex;align-items:center;gap:30px}.rating-score>span{font-family:var(--sans);font-size:20px;letter-spacing:.12em;color:var(--accent)}.rating p{font-weight:550;font-size:14px;margin-top:6px}.rating small{font-size:11px;display:block;color:var(--muted);margin-top:15px;line-height:1.8}.rating .text-link{display:flex;max-width:215px;margin-top:25px}.leave-review{display:block;font-size:11px;color:var(--muted);padding:12px 0;min-height:44px}.areas{background:var(--forest);color:var(--ivory);display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;max-width:none}.areas em{color:var(--lime)}.area-graphic{position:relative;border:1px solid #ffffff20;border-radius:50% 50% 2px 2px;overflow:hidden;min-height:340px}.area-graphic svg{width:100%;height:400px;color:#d0dda2;stroke:#cfdda445;stroke-width:1}.area-graphic .coast{stroke:#d2deb388;stroke-width:2}.area-graphic .map-dot{fill:var(--lime)}.area-graphic text{fill:#e2e9d6;stroke:none;font-family:var(--sans);font-size:12px;letter-spacing:.12em}.area-graphic .map-ocean{font-size:10px;fill:#e2e9d688}.area-graphic small{display:block;text-align:center;font-size:10px;color:#cfdbcb;position:absolute;bottom:12px;left:0;right:0}.area-copy p{font-size:14px;color:#d0dccd;max-width:380px;margin-top:24px}.area-copy ul{display:grid;grid-template-columns:1fr 1fr;list-style:none;padding:0;margin:30px 0 0;max-width:400px;gap:10px 20px;font-size:14px}.area-copy li{border-bottom:1px solid #ffffff25;padding-bottom:9px}.area-copy li:first-child{color:var(--lime)}.area-copy .fine{font-size:11px;margin-top:25px}.faq{display:grid;grid-template-columns:1fr 1.2fr;gap:100px;border-bottom:1px solid var(--line)}.accordion details{border-bottom:1px solid var(--line)}.accordion details:first-child{border-top:1px solid var(--line)}.accordion summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;font-size:15px;font-weight:500;padding:23px 0;list-style:none}.accordion summary::-webkit-details-marker{display:none}.accordion summary span{font-size:22px;font-weight:400;transition:transform .2s}.accordion details[open] summary span{transform:rotate(45deg)}.accordion details p{font-size:14px;color:var(--muted);padding:0 35px 23px 0;line-height:1.8}.contact{display:grid;grid-template-columns:1fr 1.05fr;gap:100px;padding-top:110px;padding-bottom:110px}.contact-copy>p{margin-top:25px;max-width:380px;font-size:14px;color:var(--muted)}.direct-contact{margin-top:35px;max-width:410px}.direct-contact>a{display:block;border-top:1px solid var(--line);padding:16px 0;font-size:11px;color:var(--muted)}.direct-contact>a:last-child{border-bottom:1px solid var(--line)}.direct-contact span{display:flex;justify-content:space-between;align-items:center;color:var(--forest);margin-top:5px;font-size:15px;gap:15px}.direct-contact svg{width:20px}.contact-copy .fine{font-size:12px}.contact form{padding:35px;background:#eeeee5;border:1px solid #dce1d3;border-radius:3px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field{margin-bottom:18px}.field label{display:block;font-size:12px;font-weight:550;margin-bottom:8px}.field input,.field textarea,.field select{width:100%;background:#fbfbf5;color:var(--ink);border:1px solid #c6cebd;border-radius:2px;padding:12px 14px;font-size:14px;min-height:48px;transition:border-color .2s,box-shadow .2s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #417e1410}.field textarea{resize:vertical;min-height:120px}.field input[aria-invalid="true"],.field textarea[aria-invalid="true"],.field select[aria-invalid="true"]{border-color:#a83e29}.error{display:block;color:#963824;font-size:12px;min-height:0;margin-top:4px}.error:empty{display:none}fieldset{padding:0;border:0;margin:0 0 20px}legend{font-size:12px;font-weight:550;padding:0;margin-bottom:10px}.contact-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.contact-options label{position:relative;cursor:pointer}.contact-options input{position:absolute;opacity:0;width:100%;height:100%;margin:0}.contact-options span{display:flex;justify-content:center;padding:11px 4px;border:1px solid #c6cebd;background:#fbfbf5;font-size:12px;border-radius:2px;min-height:46px}.contact-options input:checked+span{background:var(--forest);color:white;border-color:var(--forest);box-shadow:inset 0 0 0 2px #8fa682}.contact-options input:checked+span:before{content:'✓';margin-right:5px}.contact-options input:focus-visible+span{outline:3px solid #82a844;outline-offset:3px}.form-submit{width:100%;margin:4px 0 17px}.honeypot{position:absolute;left:-10000px}.future-note{font-size:12px;background:#dce7d3;padding:12px;border-left:2px solid var(--accent);margin-bottom:15px}#form-status:not(:empty){margin-top:20px;padding:15px;border:1px solid #bdcba6;background:#f8f9f2;font-size:14px}#form-status.failure{border-color:#c98876;color:#873925}.footer{background:var(--stone);padding:60px 5vw 25px;border-top:1px solid #d1d8c8}.footer-top{display:grid;grid-template-columns:.7fr 1fr 1.4fr 1fr;gap:45px}.footer-brand .logo{width:155px}.footer-top>p{font-family:var(--serif);font-size:30px;line-height:1.13}.footer .eyebrow{font-size:8px;margin-bottom:14px}.footer-top>div>p{font-size:12px;margin-bottom:10px;line-height:1.9}.footer-top>div>a{display:block;font-size:12px;margin:5px 0;overflow-wrap:anywhere}.footer small{font-size:10px;color:var(--muted)}.social{display:flex;gap:18px;font-size:10px;margin-top:18px}.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:45px;padding-top:20px;border-top:1px solid #c2ccbb;font-size:10px}.footer-bottom>div{display:flex;gap:25px}.mobile-contact{display:none}.breadcrumb{display:block;font-size:11px;color:var(--muted);margin-bottom:50px;min-height:30px}.detail-hero{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;padding:70px 5vw 80px;background:var(--stone)}.detail-hero>div:first-child{max-width:630px}.detail-hero h1{font-size:clamp(50px,5.8vw,83px)}.detail-hero p{margin-top:25px;font-size:15px;color:var(--muted)}.detail-hero .button{margin-top:30px}.detail-hero>img{height:560px;width:100%;border-radius:2px}.detail-illustration{min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#dce4d5;border-radius:50% 50% 2px 2px;color:var(--accent)}.detail-illustration svg{width:150px;height:150px;stroke-width:.65}.detail-illustration span{font-size:9px;margin-top:30px;color:var(--muted);text-transform:uppercase;letter-spacing:.2em}.future-hero{background:#e9eee9}.detail-content{display:grid;grid-template-columns:1fr 1.5fr;gap:100px}.detail-content aside h2{font-size:40px;margin-bottom:25px}.detail-content aside ul{padding-left:17px;margin:0 0 30px;color:var(--muted);font-size:14px;line-height:2.3}.detail-prose>section{margin-bottom:40px}.detail-prose h2{font-size:37px;line-height:1.15;margin-bottom:17px}.detail-prose p{font-size:15px;color:var(--muted);line-height:1.9}.resource-callout{display:block;position:relative;padding:26px 60px 26px 25px;background:var(--stone);border-left:2px solid var(--accent);margin-top:40px}.resource-callout .eyebrow{font-size:9px;margin-bottom:9px}.resource-callout h3{font-family:var(--serif);font-size:26px}.resource-callout svg{position:absolute;right:25px;top:50%;transform:translateY(-50%)}.resource-callout:hover{background:#e1e5d6}.related{padding-top:0;padding-bottom:50px;display:flex;flex-wrap:wrap;align-items:center;gap:30px}.related .eyebrow{margin:0}.related a{font-size:14px;border-bottom:1px solid var(--line);padding:12px 0;display:flex;gap:20px}.article-heading{text-align:center;padding-top:70px;padding-bottom:55px;max-width:1120px}.article-heading .breadcrumb{margin-bottom:32px}.article-heading h1{font-size:clamp(47px,5.8vw,82px)}.article-heading>p{max-width:720px;margin:25px auto 0;font-size:17px;color:var(--muted);line-height:1.8}.byline{display:block;font-size:11px;color:var(--muted);margin-top:25px}.article-photo{max-width:1000px;margin:0 auto 60px;padding:0 24px}.article-photo img{height:500px;width:100%}.article-photo figcaption{font-size:11px;color:var(--muted);padding-top:12px}.article-body{max-width:790px;margin:0 auto;padding:0 24px 90px}.article-body>section{margin-bottom:40px}.article-body h2{font-size:37px;line-height:1.15;margin:30px 0 18px}.article-body p{font-size:16px;line-height:1.9;color:var(--muted)}.article-body a:not(.button):not(.resource-callout){text-decoration:underline;text-underline-offset:4px}.article-body>.button{margin:32px 0}.article-body .resource-callout h3{font-size:28px}.resource-heading{padding-bottom:50px}.resource-heading h1{font-size:85px}.resource-heading p{margin-top:25px;color:var(--muted);max-width:460px}.resource-list{padding-top:0}.resource-list>a{display:flex;align-items:center;gap:40px;border-top:1px solid var(--line);padding:36px 0}.resource-list>a:last-child{border-bottom:1px solid var(--line)}.resource-list>a>span{align-self:flex-start;font-size:11px;padding-top:8px}.resource-list h2{font-size:37px}.resource-list p{font-size:14px;color:var(--muted);margin-top:15px;max-width:760px}.resource-list svg{margin-left:auto}.not-found,.confirmation{min-height:65vh}.not-found h1,.confirmation h1{font-size:80px}.not-found p,.confirmation p{max-width:480px;margin:25px 0}.not-found .text-link{margin-left:25px}dialog{border:1px solid #cad5bd;border-radius:4px;padding:45px;color:var(--ink);background:var(--ivory);max-width:min(580px,calc(100vw - 32px));width:100%}dialog::backdrop{background:#0b2114e8;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:14px;top:14px;z-index:10;background:var(--ivory)}dialog h2{font-size:45px;margin:25px 0 20px}dialog p{font-size:14px}#text-dialog .button{margin-top:25px}#copy-number{margin-left:20px}#copy-status{margin-top:15px}#gallery-dialog{width:min(1200px,calc(100vw - 40px));max-width:none;padding:18px 18px 0;background:var(--deep);color:var(--ivory);border:1px solid #657867;max-height:95svh;overflow:auto}.lightbox-image-wrap{height:calc(86svh - 85px);min-height:260px;display:flex;justify-content:center}.lightbox-image-wrap img{height:100%;width:100%;object-fit:contain}.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;text-align:center;padding:17px 4px;gap:20px}.lightbox-bottom p{font-size:15px}.lightbox-bottom span{font-size:10px;color:#c3d4b9}.lightbox-bottom .icon-button{color:var(--ivory);border-color:#6b836d}.lightbox-bottom .icon-button:hover{color:var(--deep)}@keyframes hero-photo{from{transform:scale(1.035);opacity:1}to{transform:scale(1);opacity:1}}@keyframes hero-copy{from{transform:translateY(15px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes panel-in{from{opacity:.65;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes frost{from{transform:rotate(-12deg) scale(.92);opacity:.5}to{transform:rotate(0) scale(1);opacity:1}}.reveal-ready{opacity:1;transform:translateY(15px);transition:opacity .7s ease,transform .7s ease}.reveal-ready.in-view{opacity:1;transform:none}.snow.in-view .snow-mark{animation:frost 1.4s ease-out}.process.observed{--process-progress:0}.process.in-view{--process-progress:1}
@media(min-width:1600px){.hero-content{padding-left:max(5.5vw,calc((100vw - 1424px)/2))}.services .section-heading,.service-explorer,.service-route-links,.areas>div{max-width:1420px}.services .section-heading,.service-explorer,.service-route-links{margin-left:auto;margin-right:auto}.hero-photo{object-position:center 55%}}
@media(max-width:1200px){.header-phone{display:none}.desktop-nav{gap:20px}.brand span{display:none}.header-actions{gap:15px}.header{padding-left:4vw;padding-right:4vw}.intro{gap:7%}.section{padding-left:5vw;padding-right:5vw}.section-heading{gap:40px}.contact,.faq{gap:55px}.service-options h3{font-size:32px}.footer-top{gap:25px;grid-template-columns:.7fr 1fr 1.5fr 1.1fr}.footer-brand .logo{width:125px}.footer-top>p{font-size:26px}.rating{padding-left:50px}.gallery-item.item-0 img{height:530px}.hero h1{font-size:84px}.hero-content{padding-top:80px}}
@media(max-width:950px){.desktop-nav{display:none}#menu-toggle{display:flex}.header{height:90px}.logo{width:105px}.hero{height:720px;min-height:640px}.hero-photo{width:83%}.hero-shade{background:linear-gradient(90deg,#102e21fa,#102e21bd 45%,#102e2133)}.hero-content{padding-top:85px}.hero h1{font-size:79px}.intro-copy h2{font-size:48px}.experience{gap:12px}.experience>span{font-size:9px}.service-explorer{gap:30px;grid-template-columns:42% 1fr}.service-options h3{font-size:30px}.service-options button{gap:15px}.service-route-links{gap:20px;justify-content:flex-start}.gallery-item img,.gallery-item.item-2 img,.gallery-item.item-3 img{height:410px}.gallery-item.item-0 img{height:460px}.process-line{gap:25px}.process-line h3{font-size:15px;min-height:40px}.snow{gap:45px;padding:70px 5vw}.snow h2{font-size:51px}.snow-mark svg{width:95px}.reviews{gap:40px}.rating{padding-left:30px}.rating-score{font-size:80px;gap:15px}.rating-score>span{font-size:16px}.areas{gap:40px}.area-graphic svg{height:320px}.area-graphic{min-height:320px}.area-copy h2{font-size:46px}.faq{gap:40px;grid-template-columns:.85fr 1.2fr}.faq h2{font-size:48px}.contact{gap:40px}.contact h2{font-size:49px}.contact form{padding:25px}.form-row{grid-template-columns:1fr;gap:0}.footer-top{grid-template-columns:1fr 1fr;gap:35px}.footer-bottom{align-items:flex-start;flex-wrap:wrap}.detail-hero{gap:5%;padding-top:50px}.detail-hero h1{font-size:60px}.detail-hero>img{height:510px}.detail-content{gap:55px;grid-template-columns:.7fr 1.3fr}.detail-content aside h2{font-size:32px}.detail-prose h2{font-size:33px}.article-photo img{height:450px}}
@media(max-width:700px){html{scroll-padding-top:90px}.section{padding:65px 24px}.eyebrow{font-size:9px;letter-spacing:.13em;margin-bottom:20px}h2{font-size:46px}.header{height:79px;padding:8px 20px;gap:12px}.logo{width:90px}.header-actions{gap:10px}.header-actions>.button{font-size:10px;gap:0;padding:12px 12px;min-height:44px}.header-actions>.button svg{display:none}#menu-toggle{width:44px;height:44px;border-radius:2px;border-color:transparent}.hero{height:710px;min-height:650px}.hero-photo{width:100%;height:100%;object-position:62% 50%}.hero-shade{background:linear-gradient(90deg,#102e21b8,#102e2145),linear-gradient(0deg,#102e21ef 0%,#102e21c9 48%,#102e2140 100%)}.hero-content{padding:140px 24px 100px}.hero-content .eyebrow{font-size:9px;letter-spacing:.09em;margin-bottom:26px}.hero h1{font-size:clamp(53px,9.3vw,65px);line-height:1.04}.hero-content>p{font-size:15px;margin-top:24px}.hero-actions{gap:23px;align-items:flex-start;flex-wrap:wrap;margin-top:30px}.hero-actions .button{font-size:12px;gap:25px;padding:16px 20px;min-height:54px}.hero-actions .text-link{font-size:12px;gap:13px;min-height:54px}.hero-bottom{bottom:25px;left:24px;right:24px;font-size:8px;letter-spacing:.06em;display:block}.hero-bottom>a{display:none}.intro{grid-template-columns:1fr;gap:37px}.intro-photo{order:2;max-height:420px}.intro-photo img{height:420px;object-position:center 52%}.intro-copy h2{font-size:47px;line-height:1.05;margin-bottom:24px}.intro-copy>p{font-size:14px}.experience{margin-top:28px;padding-top:20px;gap:20px}.experience strong{font-size:63px}.experience>span{font-size:9px}.experience svg{width:40px;height:40px}.photo-label{left:15px;bottom:18px;font-size:8px}.section-heading{display:block;margin-bottom:32px}.section-heading h2{font-size:47px}.section-heading>p{font-size:14px;margin-top:23px;max-width:350px}.service-explorer{display:block}.service-options{margin-bottom:24px}.service-options button{padding:20px 12px 20px 0;min-height:100px;gap:17px}.service-options h3{font-size:30px}.service-options h3 br{display:none}.service-options p{font-size:11px}.service-options button>span{font-size:10px;padding-top:5px}.service-options svg{width:23px}.service-panel{height:450px;min-height:450px}.service-caption{left:24px;right:24px;bottom:26px}.service-caption .eyebrow{font-size:8px}.service-caption ul{font-size:13px}.service-route-links{flex-direction:column;gap:0;margin-top:20px}.service-route-links a{padding:12px 0;border-bottom:1px solid #c6cebd;min-height:44px}.gallery-filters{gap:7px;margin-bottom:25px}.gallery-filters button{font-size:11px;padding:10px 12px}.gallery-grid,.gallery-grid.filtered{display:block}.gallery-item,.gallery-item.item-1,.gallery-item.item-4{margin:0 0 35px}.gallery-item img,.gallery-item.item-2 img,.gallery-item.item-3 img,.gallery-grid.filtered img{height:420px}.gallery-item.item-0 img{height:330px;object-position:center}.gallery-item figcaption{gap:10px;margin-top:12px}.gallery-item figcaption>span{font-size:24px;line-height:1.2}.gallery-item figcaption small{font-size:9px}.portfolio-note{font-size:10px;margin-top:0}.portfolio{padding-bottom:35px}.process-line{display:block;padding-left:0}.process-line:before{top:0;bottom:0;height:auto;width:1px;left:20px;right:auto;transform:scaleY(var(--process-progress,1));transform-origin:top}.process-line li{padding:0 0 35px 64px;min-height:120px}.process-line li:last-child{padding-bottom:0}.process-number{position:static;padding:0;display:block}.process-number span{position:absolute;left:0;top:0;font-size:10px;width:41px;text-align:center;background:var(--ivory);padding:7px 0}.process-number:after{left:18px;bottom:auto;top:50px;width:5px;height:5px}.process-number svg{position:absolute;right:0;top:5px;width:32px;height:32px}.process-line h3{margin-top:5px;min-height:0;max-width:230px;font-size:16px;padding-right:25px}.process-line p{font-size:13px;max-width:230px;line-height:1.8;margin-top:10px}.process .section-heading{margin-bottom:40px}.snow{padding:60px 24px;display:block}.snow-mark svg{width:66px;height:66px}.snow-mark{margin-bottom:22px}.snow h2{font-size:48px}.snow p{font-size:14px;max-width:350px}.snow-detail{display:block;margin:10px 0 0;padding:12px 0}.snow-landscape{right:-550px;bottom:-170px}.reviews{grid-template-columns:1fr;gap:32px}.rating{border-left:0;border-top:1px solid var(--line);padding:25px 0 0}.rating-score{font-size:86px;gap:28px}.rating-score>span{font-size:18px}.areas{grid-template-columns:1fr;gap:36px}.area-copy{order:0}.area-graphic{order:1;min-height:250px}.area-graphic svg{height:270px}.area-copy h2{font-size:47px}.area-copy ul{font-size:13px;gap:10px 18px}.faq{grid-template-columns:1fr;gap:32px}.faq h2{font-size:47px}.accordion summary{font-size:14px;padding:21px 0;min-height:64px}.accordion details p{font-size:13px;padding-right:20px}.contact{grid-template-columns:1fr;gap:35px}.contact h2{font-size:49px}.contact-copy>p{font-size:14px}.direct-contact span{font-size:14px}.contact form{padding:24px 19px}.contact-options span{font-size:11px}.field input,.field select,.field textarea{font-size:16px}.contact form .fine{font-size:11px}.footer{padding:42px 24px 85px}.footer-top{grid-template-columns:1fr;gap:28px}.footer-top .footer-brand .logo{width:135px}.footer-top>p{font-size:32px}.footer-top>.footer-brand{position:absolute;right:24px}.footer-top>p{padding-right:140px;min-height:88px;font-size:29px}.footer-top>div>a{font-size:13px;padding:4px 0}.footer .eyebrow{font-size:9px}.footer-top>div>p{font-size:13px}.footer-bottom{display:block;margin-top:35px;padding-top:25px}.footer-bottom>div{flex-wrap:wrap;gap:16px 22px;margin-top:16px}.footer-bottom>a{display:block;margin-top:15px;padding:12px 0}.social{font-size:12px;gap:24px}.social a{padding:12px 0}.mobile-contact{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:stretch;z-index:25;background:var(--ivory);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.mobile-contact a{display:flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:14px 15px;font-size:11px;border-right:1px solid var(--line)}.mobile-contact a:last-child{flex:1;background:var(--forest);color:white;border:0}.mobile-contact a svg{width:18px}.detail-hero{grid-template-columns:1fr;padding:40px 24px 45px;gap:35px}.breadcrumb{margin-bottom:25px}.detail-hero h1{font-size:57px}.detail-hero p{font-size:14px}.detail-hero>img{height:390px}.detail-illustration{min-height:250px}.detail-illustration svg{width:100px;height:100px}.detail-content{grid-template-columns:1fr;gap:45px}.detail-content aside{padding-bottom:25px;border-bottom:1px solid var(--line)}.detail-content aside h2{font-size:36px}.detail-prose h2{font-size:35px}.detail-prose p{font-size:14px}.related{padding-top:0;gap:15px}.related .eyebrow{width:100%}.article-heading{padding-top:45px;padding-bottom:40px}.article-heading h1{font-size:49px}.article-heading>p{font-size:15px;text-align:left}.byline{font-size:10px}.article-photo{padding:0 24px;margin-bottom:35px}.article-photo img{height:330px}.article-photo figcaption{font-size:10px}.article-body{padding-bottom:65px}.article-body h2{font-size:34px}.article-body p{font-size:15px;line-height:1.85}.resource-heading h1{font-size:60px}.resource-list{padding-top:0}.resource-list>a{gap:20px;padding:28px 0}.resource-list h2{font-size:30px;line-height:1.1}.resource-list p{font-size:13px}.resource-list svg{width:20px}.not-found h1,.confirmation h1{font-size:59px}.not-found .text-link{display:flex;margin:20px 0}.not-found,.confirmation{min-height:70vh}.resource-callout{padding:23px 50px 23px 20px}.resource-callout h3{font-size:25px}.resource-callout svg{right:18px}dialog{padding:50px 24px 24px}dialog h2{font-size:39px}#copy-number{margin:15px 0 0;display:flex}#gallery-dialog{padding:8px 8px 0;width:calc(100vw - 20px)}.lightbox-image-wrap{height:calc(80svh - 95px)}.lightbox-bottom{gap:10px}.lightbox-bottom p{font-size:13px}.lightbox-bottom .icon-button{width:44px;height:44px}}
@media(max-width:380px){.header{padding-left:15px;padding-right:12px}.hero-actions{gap:16px}.hero-actions .button{padding-left:17px;padding-right:17px;gap:14px}.hero-actions .text-link{gap:8px}.hero h1{font-size:53px}.hero-content .eyebrow{font-size:8px}.contact-options span{font-size:10px}.footer-top>p{font-size:26px}.footer-top>.footer-brand .logo{width:118px}.direct-contact span{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal-ready{opacity:1;transform:none}.hero-photo{transform:none!important}.process-line:before{transform:none!important}.gallery-open:hover img,.intro-photo:hover img{transform:none}.snow-mark{transform:none!important}}
.area-graphic text{letter-spacing:.02em;font-size:13px;text-transform:none}.area-graphic .map-grid{stroke:#cfdda423}.area-graphic .braintree-dot{fill:var(--lime);stroke:#fff;stroke-width:2}.depth-photo{will-change:transform}.hero-photo.depth-active{animation:none;transform:translateY(var(--depth-y,0px)) scale(1.045)}
@media(prefers-reduced-motion:reduce){.depth-photo{will-change:auto}.hero-photo.depth-active{transform:none!important}}
.footer-top>div>a{min-height:44px;display:flex;align-items:center;margin:0}.footer-bottom>div>a{min-height:44px;display:inline-flex;align-items:center}.social a{min-height:44px;display:inline-flex;align-items:center}.footer-bottom>a{min-height:44px;display:inline-flex;align-items:center}

.review-carousel{grid-column:1/-1;max-width:880px;width:100%;margin:10px auto 0;padding-top:40px;border-top:1px solid var(--line);text-align:center;touch-action:pan-y}.review-slide{margin:0}.review-slide blockquote{font-family:var(--serif);font-size:38px;line-height:1.25;margin:0 0 25px}.review-slide figcaption{font-size:13px}.review-slide figcaption small{display:block;font-size:10px;color:var(--muted);margin-top:10px}.review-controls{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:28px}.review-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:1px}.review-dots button{width:44px;height:44px;display:grid;place-items:center}.review-dots button span{width:6px;height:6px;background:#a3b294;border-radius:50%}.review-dots button[aria-pressed="true"] span{background:var(--forest);width:20px;border-radius:4px}.review-carousel>p{font-size:11px;margin-top:10px;color:var(--muted)}@media(max-width:700px){.review-slide blockquote{font-size:29px}.review-controls{gap:15px}}
@media(max-width:700px){.hero-photo{animation:none;transform:none}}

/* October 2026 review: the shared editorial system stays in style.css. */
:root{--header-height:104px}
html{scroll-padding-top:calc(var(--header-height) + 12px)}
.header{height:auto;min-height:104px;padding:0 3.5vw;display:block}
.header-main{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:104px}
.header .brand span{display:none}.header .desktop-nav{gap:22px;font-size:13px}.header-actions{gap:12px}
.header .button.small{font-size:13px;white-space:nowrap}.snow-nav,.snow-nav-mobile{display:flex;align-items:center;gap:9px;min-height:44px;background:#e8eee7;border:1px solid #cbd8c6;color:#294731;padding:10px 12px;border-radius:3px;font-size:13px;line-height:1.45;white-space:nowrap}.snow-nav svg,.snow-nav-mobile svg{width:19px;height:19px;color:#557455}.snow-nav:hover,.snow-nav-mobile:hover{background:#dce8d7}.snow-nav-mobile{display:none}.snow-divider{padding:0 2px}
.hero{height:min(780px,calc(100svh - var(--header-height)));min-height:650px}.hero-media{position:absolute;inset:0 0 0 auto;width:73%;overflow:hidden}.hero-depth{position:absolute;inset:-18px 0;transform:translate3d(0,var(--hero-depth,0px),0)}.hero-layer{position:absolute;inset:0;opacity:0;transition:opacity 1050ms ease;pointer-events:none}.hero-layer.is-active{opacity:1}.hero-layer picture{display:block;height:100%}.hero-image{width:100%;height:100%;object-fit:cover;object-position:50% 50%;transform:scale(1.01)}.hero-layer.is-active .hero-image{animation:scene-drift 9s linear both;animation-play-state:var(--scene-play,running)}
@keyframes scene-drift{from{transform:scale(1.01)}to{transform:scale(1.035)}}
.hero-content{padding-top:80px;padding-bottom:110px;animation:none}.hero-content .eyebrow{font-size:11px;margin-bottom:27px}.hero-content>p{font-size:18px;margin-top:22px}.hero-snow{display:inline-flex;align-items:center;gap:9px;margin-top:20px;padding:5px 0;min-height:44px;color:#e0e9d6;font-size:13px}.hero-snow>svg{width:17px;height:17px}.hero-snow>svg:last-child{width:15px;margin-left:4px}.hero-snow:hover span{text-decoration:underline;text-underline-offset:5px}.hero-actions{margin-top:17px}.hero-controls{position:absolute;bottom:23px;right:5vw;z-index:3;display:flex;align-items:center;gap:18px;font-size:12px}.hero-controls>span{letter-spacing:.08em;color:#e5eadd}.hero-controls button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;color:var(--ivory)}.hero-controls button svg{width:19px;height:19px}.hero-controls .icon-button{width:44px;height:44px;border-color:#e3e8d870}.hero-controls button:hover{background:#163c2cca}.hero-controls button:focus-visible{outline-color:#d0dfa7}
.intro-copy>p{font-size:16px}.experience>span{font-size:14px;letter-spacing:0}.experience strong{opacity:1}.experience.in-view strong{animation:experience-enter .6s ease both}@keyframes experience-enter{from{transform:translateY(8px)}to{transform:none}}
.service-explorer{grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);gap:5vw}.service-map{position:relative;min-width:0;padding-left:36px}.service-root{display:flex;align-items:center;gap:14px;font-size:16px;font-weight:550;padding:0 0 28px;position:relative}.service-root-dot{display:grid;place-items:center;width:44px;height:44px;border:1px solid #a6b59d;border-radius:50%;background:var(--stone);position:relative;z-index:1;color:var(--forest)}.service-root-dot svg{width:23px;height:23px}.service-connections{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.service-connections path{stroke:#a6b59d;stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset 900ms ease,stroke .2s,stroke-width .2s}.service-map.paths-ready:not(.in-view) .service-connections path{stroke-dashoffset:1}.service-connections path.is-selected{stroke:var(--accent);stroke-width:2.4}.service-options{position:relative;margin-left:32px;margin-bottom:0}.service-options button{min-height:86px;padding:17px 15px 17px 0;gap:16px}.service-options button:first-child{border-top:0}.service-options button[aria-selected=true]{padding-left:12px}.service-options button[aria-selected=true]:before{top:16px;bottom:16px}.service-options h3{font-size:clamp(26px,2.35vw,34px)}.service-options button>.service-node-dot{display:grid;place-items:center;align-self:center;padding:0;font-size:10px;width:31px;height:31px;flex-shrink:0;border:1px solid #a6b59d;border-radius:50%;background:var(--stone);color:var(--forest)}.service-options button[aria-selected=true]>.service-node-dot{background:var(--forest);border-color:var(--forest);color:var(--ivory)}.service-options button:hover>.service-node-dot{border-color:var(--accent);outline:2px solid #a4bb8b55;outline-offset:3px}.service-options svg{width:21px;height:21px}.service-branches{padding:22px 0 0 48px;position:relative}.service-subservices ul{padding:0 0 0 19px;margin:0;display:grid;gap:7px;font-size:16px;line-height:1.5}.service-subservices li::marker{color:var(--accent)}.service-subservices li a{display:inline-flex;align-items:center;min-height:44px}.service-subservices li a:hover{text-decoration:underline;text-underline-offset:4px}.service-estimate{font-size:14px;margin-top:16px}.service-panel{min-height:590px}.commercial-scope{position:absolute;top:48%;left:35px;color:var(--ivory);font-family:var(--serif);font-size:42px;max-width:320px;line-height:1.1}.service-caption .text-link{font-size:15px}
.process-line:before{transition:none;background:var(--accent)}.process-line li{min-width:0}.process-line button{display:block;width:100%;padding:0;text-align:left;min-height:125px;position:relative}.process-title{display:block;font-size:17px;font-weight:550;line-height:1.4;margin-top:28px;max-width:200px}.process-line li.is-current .process-number span{font-weight:750}.process-line li.is-current .process-number:after{width:12px;height:12px;border:2px solid var(--ivory);outline:1px solid var(--accent)}.process-line button:hover .process-title{color:var(--accent)}.process-note{margin-top:25px;max-width:630px;font-size:16px;color:var(--muted);min-height:28px}
.snow .snow-season{font-family:var(--serif);font-size:34px;line-height:1.2;margin-top:12px;color:#455f49}.snow-detail{font-size:13px;min-height:44px;position:relative;z-index:1}.snow-detail svg{width:16px;height:16px;vertical-align:middle;margin-left:7px}.snow-mark{position:relative}.snow-mark svg path{stroke-dasharray:1;stroke-dashoffset:0}.snow.motion-ready:not(.in-view) .snow-mark svg path{stroke-dashoffset:1}.snow.in-view .snow-mark svg path{transition:stroke-dashoffset 1.2s ease}.snow-light{position:absolute;right:10%;bottom:-130px;width:500px;height:190px;border:1px solid #a5bba255;border-radius:50%;transform:rotate(-10deg);pointer-events:none}.rating p{font-size:16px}.rating small{margin-top:6px;font-size:12px}.rating .text-link{margin-top:17px}.rating-score{font-size:85px}
.areas{gap:7vw;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr)}.area-copy{grid-column:2;grid-row:1}.area-graphic{grid-column:1;grid-row:1;border:0;border-radius:0;min-height:0;overflow:visible}.area-graphic svg{display:block;width:100%;height:auto;overflow:visible;stroke:none}.area-graphic text{font-size:16px;letter-spacing:0;font-weight:500;fill:#f1f4e5;stroke:none;pointer-events:none}.area-grid{transform:translateY(var(--grid-y,0px))}.map-grid{stroke:#cdddb227;stroke-width:1}.area-arc{stroke:#c5d89866;stroke-width:1.4;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--map-progress,1))}.map-compass{stroke:#cdddb277}.area-graphic .map-compass text{font-size:12px;fill:#cdddb299}.map-connections path{stroke:#d2e3a5;stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:1}.map-hit{fill:transparent;pointer-events:all}.map-dot{transition:transform .18s;transform-box:fill-box;transform-origin:center}.map-ring{stroke:#dfedbd;stroke-width:1.5;opacity:0;transition:opacity .18s,transform .18s;transform-box:fill-box;transform-origin:center}.map-marker{cursor:pointer;outline:0!important}.map-marker.is-selected .map-ring{opacity:1;transform:scale(1.13)}.map-marker.is-selected .map-dot{transform:scale(1.35)}.map-marker:focus-visible .map-ring{opacity:1;stroke-width:3;stroke-dasharray:3 2;transform:scale(1.45)}.map-marker:focus-visible .map-label{font-weight:750;text-decoration:underline}.area-copy ul{margin-top:25px;max-width:440px;gap:8px 12px}.area-copy li{border:0;padding:0;color:inherit!important}.town-controls button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 10px;text-align:left;font-size:16px;border:1px solid #d1dfc330;border-radius:2px}.town-controls button[aria-pressed=true]{border-color:#d1dfad;color:var(--lime);background:#ffffff0a}.town-indicator{width:7px;height:7px;border-radius:50%;background:#b8c9a6;flex-shrink:0}.town-controls button[aria-pressed=true] .town-indicator{background:var(--lime);outline:1px solid var(--lime);outline-offset:3px}.town-controls button:hover{background:#ffffff10}.area-inquiry{margin-top:20px;font-size:14px}.areas button:focus-visible,.areas a:focus-visible{outline-color:var(--lime)}
.contact{gap:7vw;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}.direct-contact>.contact-number{font-family:var(--serif);font-size:35px;line-height:1.2;color:var(--forest);padding:16px 0 5px;border:0}.contact-shortcuts{display:flex;gap:22px;align-items:center;margin-bottom:14px}.contact-shortcuts a{display:flex;align-items:center;gap:8px;min-height:44px;font-size:16px}.direct-contact>.contact-email{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:15px;color:var(--ink);overflow-wrap:anywhere}.contact-copy .contact-hours{font-size:14px;line-height:1.7;margin-top:22px}.contact-hours span{font-size:12px}.contact form{padding:28px}.form-row{grid-template-columns:1fr 1fr;gap:18px}.field{margin-bottom:15px}.field label{font-size:14px;margin-bottom:6px}.field input,.field textarea,.field select{font-size:16px;min-height:48px;padding:10px 12px}.field textarea{min-height:100px}.contact-labels{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;min-height:44px}.contact-labels>label{margin:0}.reply-choice{display:flex;align-items:center;gap:8px;margin:0;position:relative;padding-left:0}.reply-choice legend{float:left;font-size:12px;font-weight:400;margin:0 7px 0 0;line-height:44px}.reply-choice>div{display:flex}.reply-choice label{margin:0;position:relative;cursor:pointer}.reply-choice input{position:absolute;inset:0;width:100%;height:100%;min-height:0;opacity:0;margin:0;padding:0}.reply-choice span{display:grid;place-items:center;padding:8px 12px;min-width:56px;min-height:44px;font-size:13px;font-weight:500;border:1px solid #bbc8b5}.reply-choice label:first-child span{border-radius:3px 0 0 3px}.reply-choice label:last-child span{border-radius:0 3px 3px 0;border-left:0}.reply-choice input:checked+span{background:var(--forest);color:var(--ivory);box-shadow:inset 0 -3px 0 #8aa16d}.reply-choice input:focus-visible+span{outline:3px solid #82a844;outline-offset:3px}.project-notes{margin:0 0 12px;border-bottom:1px solid var(--line)}.project-notes summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;min-height:44px;font-size:14px;padding:5px 0;list-style:none}.project-notes summary::-webkit-details-marker{display:none}.project-notes summary svg{width:19px;height:19px}.project-notes[open] summary svg{transform:rotate(45deg)}.project-notes .field{margin-top:10px}.form-submit{font-size:16px;margin:0 0 12px;min-height:50px}.form-privacy{font-size:12px;line-height:1.6}.error{font-size:13px}#form-status:not(:empty){font-size:16px;margin-top:16px}.future-note{font-size:14px;margin-bottom:12px}.mobile-contact svg{width:16px;height:16px}.mobile-contact a{display:flex;align-items:center;justify-content:center;gap:6px}
.photo-reveal.motion-ready{clip-path:inset(6% 3% round 2px);transition:clip-path 850ms ease}.photo-reveal.in-view{clip-path:inset(0 round 2px)}.photo-reveal img{transform:translate3d(0,var(--photo-depth,0px),0) scale(1.04)}
@media(max-width:1200px) and (min-width:951px){.header-main{gap:15px}.header{padding:0 2.5vw}.header .logo{width:100px}.header .desktop-nav{gap:16px}.header .button.small{padding:12px 14px;gap:12px}.snow-nav{font-size:12px;padding:10px}.hero h1{font-size:clamp(65px,6.7vw,86px)}}
@media(max-width:1050px){.header .desktop-nav{display:none}#menu-toggle{display:flex}}
@media(max-width:950px){.header{padding:0 24px;min-height:0}.header-main{min-height:80px}.snow-nav{display:none}.snow-nav-mobile{display:flex;border-radius:0;margin:0 -24px;padding:8px 24px;justify-content:center;border-left:0;border-right:0;border-bottom:0;min-height:44px;font-size:13px}.snow-nav-mobile>svg:last-child{margin-left:auto}.snow-nav-mobile>span{margin:auto}.header .logo{width:100px}.hero{min-height:630px;height:720px}.hero h1{font-size:76px}.hero-media{width:83%}.hero-content{padding-top:80px}.service-explorer{gap:30px}.service-map{padding-left:24px}.service-options{margin-left:22px}.service-options button{gap:12px}.service-options h3{font-size:28px}.service-branches{padding-left:34px}.service-subservices ul{font-size:16px}.service-panel{min-height:610px}.areas{gap:30px}.area-copy h2{font-size:45px}.contact-labels{flex-wrap:wrap;align-items:flex-start;flex-direction:column;gap:0}.contact form{padding:24px}.form-row{grid-template-columns:1fr;gap:0}.contact h2{font-size:49px}}
@media(max-width:700px){
 :root{--header-height:116px}.header{padding:0 18px}.header-main{min-height:72px;gap:12px}.header .logo{width:85px}.header-actions{gap:7px}.header-actions>.button{font-size:12px;padding:10px 12px;min-height:44px}.snow-nav-mobile{margin:0 -18px;padding:7px 18px;font-size:12px;gap:7px}.snow-nav-mobile>svg{width:17px;height:17px}.snow-divider{padding:0}.header .brand{gap:0}
 .hero{height:620px;min-height:570px}.hero-media{width:100%}.hero-depth{inset:0}.hero-shade{background:linear-gradient(90deg,#102e21ce,#102e2165),linear-gradient(0deg,#102e21eb,#102e2185 70%,#102e2150)}.hero-content{padding:70px 24px 94px;max-width:100%}.hero-content .eyebrow{font-size:10px;margin-bottom:22px;letter-spacing:.11em}.hero h1{font-size:clamp(47px,14.6vw,62px);line-height:1.02;max-width:100%}.hero-content>p{font-size:16px;margin-top:20px}.hero-snow{margin-top:12px;font-size:12px;gap:6px}.hero-snow>svg:last-child{display:none}.hero-actions{flex-direction:column;align-items:flex-start;gap:5px;margin-top:14px}.hero-actions .button{font-size:14px;min-height:50px;padding:14px 18px;gap:25px}.hero-actions .text-link{font-size:14px;min-height:44px;gap:22px;padding:10px 0}.hero-controls{right:24px;bottom:16px;gap:14px}
 .section{padding:64px 24px}.intro-copy h2,.section-heading h2{font-size:clamp(39px,11.6vw,48px)}.intro-copy>p{font-size:16px}.experience>span{font-size:14px}.experience strong{font-size:63px}.intro-photo img{height:390px}.service-explorer{display:flex;flex-direction:column;gap:28px}.service-map{padding-left:14px}.service-root{gap:12px;padding-bottom:20px}.service-options{margin-left:20px}.service-options button{min-height:78px;padding:15px 12px 15px 0;gap:13px}.service-options h3{font-size:clamp(25px,7.3vw,30px)}.service-options button>.service-node-dot{width:28px;height:28px;font-size:10px}.service-options button[aria-selected=true]{padding-left:10px}.service-options button[aria-selected=true]:before{top:14px;bottom:14px}.service-options svg{width:18px}.service-branches{padding:22px 0 0 33px}.service-subservices ul{font-size:16px;gap:6px}.service-subservices li a{min-height:44px}.service-estimate{margin-top:12px;font-size:14px}.service-panel{height:390px;min-height:390px}.commercial-scope{font-size:36px;left:24px}.service-caption .text-link{font-size:15px}.gallery-filters button{font-size:13px;padding:10px 12px}
 .process .section-heading{margin-bottom:32px}.process-line li{padding:0;min-height:0}.process-line:before{left:20px;top:0;bottom:0}.process-line button{position:relative;padding:12px 40px 22px 64px;min-height:90px}.process-number span{top:12px;font-size:12px;line-height:24px}.process-number svg{top:15px;right:0;width:30px;height:30px}.process-number:after{left:18px;top:61px}.process-title{font-size:17px;margin-top:0;max-width:240px}.process-note{font-size:16px;margin-top:14px}.process-line li.is-current .process-number:after{left:15px;top:58px}
 .snow{padding:60px 24px;gap:24px;align-items:flex-start;justify-content:flex-start}.snow h2{font-size:43px}.snow .snow-season{font-size:27px}.snow-mark{margin-top:8px}.snow-mark svg{width:48px;height:48px}.snow .text-link{font-size:14px;margin-top:17px;gap:17px}.snow-detail{display:flex;align-items:center;margin-left:0;padding:10px 0;font-size:13px}.snow-landscape{right:-500px}.rating p{font-size:16px}.rating-score{font-size:78px}.rating-score>span{font-size:17px}.rating .text-link{font-size:14px}
 .areas{display:flex;flex-direction:column;gap:0;align-items:stretch;padding-bottom:64px}.area-copy{display:contents}.area-copy>.eyebrow{order:0}.area-copy>h2{order:1;font-size:clamp(39px,11.6vw,48px)}.area-graphic{order:2;margin:28px 0 24px;min-height:0}.area-graphic svg{height:auto;width:100%;overflow:visible}.area-graphic text{font-size:18px}.map-compass{display:none}.area-copy ul{order:3;max-width:none;width:100%;margin:0;gap:8px 10px}.area-copy .area-inquiry{order:4;margin-top:18px;align-self:flex-start}.town-controls button{min-height:46px;font-size:16px;padding:8px 9px}.map-ring,.map-dot{transition:none}
 .contact{display:flex;flex-direction:column;gap:32px;padding-top:64px;padding-bottom:64px}.contact h2{font-size:clamp(43px,12vw,49px)}.direct-contact{margin-top:23px}.direct-contact>.contact-number{font-size:33px}.direct-contact>.contact-email{font-size:14px}.contact-copy .contact-hours{font-size:14px;margin-top:18px}.contact form{padding:20px}.form-row{grid-template-columns:1fr;gap:0}.field label{font-size:14px}.field{margin-bottom:13px}.contact-labels{flex-direction:column;align-items:flex-start;min-height:69px;gap:0}.contact-labels>label{line-height:24px}.reply-choice legend{font-size:12px}.reply-choice span{min-height:44px;font-size:14px;padding:8px 16px;min-width:65px}.form-privacy{font-size:12px}.form-submit{font-size:16px}.project-notes summary{font-size:14px}.future-note{font-size:13px}.mobile-contact{height:58px;position:static;z-index:25}.mobile-contact a{font-size:12px;min-height:58px}.mobile-contact a:last-child{font-size:12px}.footer{padding-bottom:30px}.accordion summary{font-size:16px}.accordion details p{font-size:16px}.detail-hero p,.detail-prose p,.article-body p,.article-heading>p{font-size:16px}.photo-reveal img{transform:none}
}
@media(max-width:350px){.header{padding:0 16px}.header .logo{width:77px}.header-main{gap:8px}.header-actions{gap:4px}.header-actions>.button{font-size:12px;padding:10px}.snow-nav-mobile{margin:0 -16px;padding:7px 16px;font-size:12px}.hero-content{padding:60px 20px 95px}.hero h1{font-size:46px}.hero{height:585px}.hero-snow{font-size:12px}.section{padding-left:20px;padding-right:20px}.contact form{padding:16px}.form-row{gap:10px}.field label{font-size:13px}.field input{padding:10px}.service-options h3{font-size:25px}.snow{padding-left:20px;padding-right:20px;gap:14px}.snow h2{font-size:39px}.snow-mark svg{width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-layer{transition:none}.hero-layer.is-active .hero-image{animation:none;transform:none}.hero-depth{transform:none}.service-connections path{transition:none;stroke-dashoffset:0!important}.map-ring,.map-dot{transition:none}.area-grid{transform:none}.area-arc{stroke-dashoffset:0}.photo-reveal.motion-ready{clip-path:inset(0 round 2px);transition:none}.photo-reveal img{transform:none}.experience.in-view strong{animation:none}.snow-mark svg path{transition:none!important;stroke-dashoffset:0!important}.process-line:before{transform:none}}

.hero:not(.sequence-ready) .hero-layer{transition:none}.hero:not(.sequence-ready) .hero-layer.is-active .hero-image{animation:none}

/* Organic garden system · faithful photographs, independent motion layers. */
:root{--scene-fade:800ms}
.hero{height:auto;min-height:800px;isolation:isolate;overflow:hidden;background:#102e21}
.hero-media{inset:0;width:100%}.hero-depth{inset:-14px 0;transform:translate3d(0,var(--hero-depth,0px),0)}
.hero-layer{transition:opacity var(--scene-fade) ease}.hero-layer picture{position:absolute;inset:0;max-width:1920px;margin:auto;height:100%}
.hero-image{position:absolute;right:0;top:0;width:var(--photo-width,78%);max-width:var(--photo-max,1600px);height:100%;object-fit:cover;object-position:var(--photo-desktop,53% 48%);transform:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 13%,#000);mask-image:linear-gradient(90deg,transparent,#000 13%,#000)}
.hero-layer.is-active .hero-image{animation:none}.hero:not(.sequence-ready) .hero-layer.is-active .hero-image{animation:none}
.hero-shade{max-width:1920px;margin:auto;z-index:1;background:linear-gradient(90deg,#102e21 0%,#102e21fa 20%,#102e21bc 39%,#102e2130 60%,#102e2100 83%),linear-gradient(0deg,#102e2177,transparent 27%,transparent 80%,#102e2122)}
.hero-content{z-index:3;max-width:1600px;width:100%;margin:auto;padding:88px clamp(24px,5.5vw,80px) 180px;animation:none}
.hero h1{font-size:clamp(65px,6.7vw,96px);line-height:1.02;max-width:750px}.hero-line{display:block;transform-origin:left center}

.hero-controls{z-index:6;bottom:calc(var(--hero-fade-height,200px) + 24px);right:max(5vw,calc((100vw - 1600px)/2 + 80px));gap:15px}



.hero-opening .brand .logo{animation:brand-arrival 900ms ease both}
.hero.is-entering .hero-line{animation:title-arrival 750ms cubic-bezier(.2,.65,.3,1) both}.hero.is-entering .hero-line:nth-child(2){animation-delay:65ms}.hero.is-entering .hero-line:nth-child(3){animation-delay:130ms}
.hero.is-entering .hero-actions{animation:action-arrival 800ms 120ms ease both}.hero.is-entering .hero-layer.is-active .hero-image{animation:photo-arrival 1250ms cubic-bezier(.2,.65,.3,1) both;animation-play-state:var(--scene-play,running)}
.hero.sequence-ready .hero-layer.is-active .hero-image{animation:photo-settle 5300ms ease-out both;animation-play-state:var(--scene-play,running)}
@keyframes brand-arrival{from{opacity:.78}to{opacity:1}}@keyframes title-arrival{from{opacity:.72;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes action-arrival{from{opacity:.85;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes photo-arrival{from{transform:scale(1.025)}to{transform:scale(1)}}@keyframes photo-settle{from{transform:scale(1.016)}to{transform:scale(1)}}
/* Decorative movement is local to each section and activated by visibility/budget. */
.intro,.services,.portfolio,.snow,.areas,.contact{position:relative;isolation:isolate}.services,.snow,.areas{overflow:hidden}.intro,.portfolio,.contact{overflow:clip}
.ambient{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;color:#8ea754;--ambient-play:paused;--wind-x:110px;--wind-y:16px;opacity:1;contain:paint}
.ambient.ambient-running{--ambient-play:running}.breeze-pointer{position:absolute;inset:-12px;transform:translate3d(var(--pointer-x,0px),var(--pointer-y,0px),0);transition:transform 700ms cubic-bezier(.2,.6,.3,1)}
.ambient-particle{position:absolute;display:block;width:30px;height:18px;opacity:0;transform-origin:center;animation:leaf-breeze var(--leaf-duration,9s) var(--leaf-delay,0s) cubic-bezier(.22,.62,.45,1) infinite;animation-play-state:var(--ambient-play);color:inherit}
.ambient-particle>svg{display:block;width:100%;height:100%;overflow:visible}.leaf-vein{stroke:#f5f4dd;stroke-width:1;fill:none;opacity:.48}
.ambient .particle-1{left:4%;top:18%;width:25px}.ambient .particle-2{right:3%;bottom:12%;width:35px;--wind-x:-94px;--wind-y:-24px}
.ambient-hero{color:#a9bf73;z-index:2;--wind-x:-160px;--wind-y:38px}.ambient-hero .particle-1{left:auto;right:7%;top:8%;width:37px}.ambient-hero .particle-2{right:2%;top:28%;bottom:auto;width:24px}.ambient-hero .particle-3{right:7%;bottom:24%;width:38px}.ambient-hero .particle-4{right:17%;top:3%;width:28px;--wind-x:80px;--wind-y:28px}.ambient-hero .particle-5{right:0;bottom:40%;width:32px}.ambient-hero .particle-6{left:49%;bottom:17%;width:20px;--wind-x:72px;--wind-y:-22px}.ambient-hero .particle-7{left:1%;bottom:21%;width:24px;--wind-x:75px;--wind-y:-15px}.ambient-hero .particle-8{right:27%;top:7%;width:21px;--wind-x:124px;--wind-y:-12px}
.wind-lines{position:absolute;right:-30px;bottom:10%;width:min(53%,650px);height:52%;opacity:0;overflow:visible;animation:wind-arrival 12s 1.8s ease infinite;animation-play-state:var(--ambient-play)}.wind-lines path{stroke:currentColor;stroke-width:1.2;stroke-dasharray:1;stroke-dashoffset:1;animation:wind-draw 12s 1.8s ease infinite;animation-play-state:var(--ambient-play)}.wind-lines path+path{opacity:.48;animation-delay:2s}
@keyframes leaf-breeze{0%{opacity:0;transform:translate3d(0,0,0) rotate(var(--leaf-rotation)) scale(.85)}12%{opacity:.7}35%{opacity:.62;transform:translate3d(calc(var(--wind-x)*.38),calc(var(--wind-y) - 24px),0) rotate(18deg) scale(1)}70%{opacity:.55;transform:translate3d(calc(var(--wind-x)*.84),calc(var(--wind-y)*.3),0) rotate(56deg) scale(.9)}100%{opacity:0;transform:translate3d(var(--wind-x),var(--wind-y),0) rotate(83deg) scale(.8)}}
@keyframes wind-arrival{0%,44%,100%{opacity:0}10%,28%{opacity:.28}}@keyframes wind-draw{0%{stroke-dashoffset:1}28%,100%{stroke-dashoffset:0}}
.hero.is-entering .ambient-particle{animation:opening-gust 1250ms var(--leaf-delay) ease-out both;animation-play-state:var(--ambient-play)}.hero.is-entering .wind-lines{animation:opening-wind 1250ms ease both}.hero.is-entering .wind-lines path{animation:wind-draw 1250ms ease both}
@keyframes opening-gust{from{opacity:.5;transform:translate3d(-22px,14px,0) rotate(-22deg)}45%{opacity:.78;transform:translate3d(32px,-20px,0) rotate(17deg)}to{opacity:.15;transform:translate3d(85px,8px,0) rotate(48deg)}}@keyframes opening-wind{0%,100%{opacity:0}30%,65%{opacity:.32}}
.ambient-quiet .wind-lines{width:44%;right:-8%;bottom:2%;height:40%;color:#769451}.ambient-quiet .ambient-particle{color:#7e9955}.intro>.ambient .particle-1{left:1%;top:12%}.intro>.ambient .particle-2{right:1%;bottom:12%}.portfolio>.ambient .particle-1{left:1%;top:8%}.portfolio>.ambient .particle-2{right:1%;bottom:3%}.services>.ambient .particle-1{left:2%;top:37%}.services>.ambient .particle-2{right:1%;bottom:3%}.areas>.ambient{color:#bad493}.areas>.ambient .particle-1{left:1%;top:10%}.areas>.ambient .particle-2{right:2%;bottom:3%}.areas>.ambient .wind-lines{bottom:0;right:-5%;color:#bbd396}
.ambient-contact{z-index:-1;color:#97aa71}.ambient-contact .particle-1{left:1%;top:68%}.ambient-contact .particle-2{right:1%;bottom:5%}.ambient-contact .wind-lines{left:-8%;right:auto;bottom:8%;width:32%;height:34%}
html.animations-hidden .ambient *{animation-play-state:paused!important}html.animations-hidden .breeze-pointer{transition:none;transform:none}
/* Three related frames. The full photograph remains available in the lightbox. */
.frame-leaf{border-radius:62% 38% 62% 12% / 35% 55% 45% 12%;overflow:hidden}.frame-arc{border-radius:50% 50% 5% 5% / 26% 26% 4% 4%;overflow:hidden}.frame-opposite{border-radius:clamp(50px,7vw,105px) 10px clamp(50px,7vw,105px) 10px;overflow:hidden}
.intro-photo.frame-leaf{clip-path:none;max-height:570px;transition:border-radius 450ms ease}.intro-photo.frame-leaf img{height:570px;object-position:48% 68%;transform:translate3d(0,var(--photo-depth,0px),0) scale(1.018)}
.photo-reveal.motion-ready{clip-path:none;transition:none}.photo-reveal.in-view{clip-path:none}.photo-reveal.in-view img{animation:frame-arrival 850ms ease both}.intro-photo:hover img{transform:translate3d(0,var(--photo-depth,0px),0) scale(1.025)}
.intro-photo.frame-leaf:hover{border-radius:58% 42% 59% 14% / 33% 52% 44% 14%}.experience strong{min-width:124px;flex-shrink:0}.experience strong .experience-value{font-size:inherit;display:inline-block;min-width:1.6ch;text-align:right}.experience.in-view strong{animation:none}
@keyframes frame-arrival{from{opacity:.88;transform:translate3d(0,10px,0) scale(1.025)}to{opacity:1;transform:translate3d(0,var(--photo-depth,0px),0) scale(1.018)}}
.service-panel{animation:service-arrival 450ms ease both}.service-panel>img{object-position:52% 60%;transform:none}.service-panel.frame-arc:after{inset:55% 0 0}.service-panel.frame-opposite:after{inset:55% 0 0}.service-traveller{color:var(--accent);opacity:0}.service-options button{border-radius:15px}.service-options button[aria-selected=true]:before{border-radius:3px}.service-root-dot{border-radius:55% 45% 53% 47%}.service-subservices,.service-map,.section-heading,.service-panels{position:relative;z-index:3}.service-explorer{position:relative;z-index:3}.service-options button:hover{transform:none}
@keyframes service-arrival{from{opacity:.76;transform:translateY(8px)}to{opacity:1;transform:none}}
.environment-photo{position:absolute;pointer-events:none;z-index:0;overflow:hidden;transform:translate3d(0,var(--environment-y,0px),0)}.environment-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);opacity:.2}.environment-services{width:min(650px,53vw);height:380px;bottom:-40px;left:-70px;border-radius:50% 60% 0 0;mask-image:linear-gradient(0deg,#000,transparent 94%);mix-blend-mode:multiply}.environment-services img{object-position:40% 60%}.environment-areas{width:min(1000px,80vw);height:235px;right:-50px;bottom:-35px;mask-image:linear-gradient(0deg,#000,transparent 95%);mix-blend-mode:luminosity}.environment-areas img{opacity:.24;object-position:center 80%}
.area-copy,.area-graphic{position:relative;z-index:3}.town-controls button{background:#193d2be8;border-radius:11px}.town-controls button[aria-pressed=true]{background:#244a35}.town-controls button:hover{background:#31583e}.map-marker.is-selected .map-ring{animation:town-accent 700ms ease-out}.areas:not(.motion-visible) .map-marker .map-ring{animation-play-state:paused}
@keyframes town-accent{0%{opacity:.5;transform:scale(.95)}60%{opacity:1;transform:scale(1.2)}100%{opacity:1;transform:scale(1.13)}}
.gallery-open{border:0;transition:border-radius 400ms ease;isolation:isolate}.gallery-item img{transition:transform 650ms ease;transform:none}.gallery-open:hover img{transform:scale(1.03)}.gallery-open.frame-opposite:hover{border-radius:80px 14px 80px 14px}.gallery-enlarge{right:26px;bottom:25px;border-radius:50%;background:#163b2bdd}.gallery-item.motion-ready.in-view{animation:gallery-arrival 600ms var(--item-delay,0ms) ease both}
@keyframes gallery-arrival{from{opacity:.82;transform:translateY(14px)}to{opacity:1;transform:none}}
.gallery-filters button{border-radius:999px;font-size:14px;min-width:44px}.button{border-radius:15px}.button.small{border-radius:12px}.contact form{border-radius:32px 16px 32px 16px}.field input,.field select,.field textarea{border-radius:10px}.field input:focus,.field textarea:focus,.field select:focus{background:#fffef7;box-shadow:0 0 0 3px #417e1418}.reply-choice label:first-child span{border-radius:10px 0 0 10px}.reply-choice label:last-child span{border-radius:0 10px 10px 0}.form-submit{border-radius:14px;transition:background .2s,transform .2s}.form-submit:active{transform:translateY(1px)}
#form-status:not(:empty){border-radius:12px}.project-notes summary{border-radius:8px}.project-notes summary:focus-visible{outline-offset:2px}.process-line:before{height:2px;border-radius:999px}.process-line li.is-current .process-number svg{animation:process-accent 500ms ease-out}.process-line button{border-radius:12px}.rating.motion-ready.in-view .rating-score{animation:rating-arrival 750ms ease both}.rating.motion-ready.in-view .rating-score>span{animation:rating-arrival 850ms 80ms ease both}
@keyframes process-accent{from{transform:scale(.92)}65%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes rating-arrival{from{opacity:.8;transform:translateY(8px)}to{opacity:1;transform:none}}
.accordion-icon{width:22px;height:22px;transition:transform 250ms ease}.accordion details[open] .accordion-icon{transform:rotate(45deg)}.accordion-answer{overflow:hidden}.accordion summary{border-radius:8px}.accordion summary:focus-visible{outline-offset:2px}
.detail-hero>img.frame-opposite{border-radius:90px 12px 90px 12px;object-position:54% 58%}.article-photo img.frame-arc{border-radius:45% 45% 5% 5% / 24% 24% 4% 4%;object-position:50% 60%}.article-photo figcaption{padding-left:8px}
/* Winter is a seasonal vector atmosphere; no past snow-removal work is implied. */
.snow{background:#e9f0ec;min-height:380px;padding:94px 8vw;gap:60px}.winter-atmosphere{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.9;pointer-events:none}.snow>div:not(.ambient){position:relative;z-index:3}.snow-mark svg{width:120px;height:120px;stroke-width:1.25;color:#6a9187}.snow-mark svg path{transition:stroke-dashoffset 1100ms ease}.snow .snow-season{font-size:38px;color:#4e6b61}.snow-landscape,.snow-light{display:none}.snow .text-link{position:relative;z-index:3}.ambient-winter{color:#7b9e97;z-index:1;--wind-x:70px;--wind-y:-4px}.ambient-winter .ambient-particle{height:28px;width:28px;animation-name:winter-drift}.ambient-winter .particle-1{left:4%;top:15%;width:19px}.ambient-winter .particle-2{right:7%;bottom:17%;width:28px}.ambient-winter .particle-3{right:22%;top:12%;width:19px}.ambient-winter .wind-lines{width:38%;height:65%;bottom:10%;right:0}.frost-line{stroke-dasharray:1;stroke-dashoffset:0}.snow.motion-ready:not(.in-view) .frost-line{stroke-dashoffset:1}.snow.in-view .frost-line{transition:stroke-dashoffset 1400ms ease}.winter-current{opacity:.5}
@keyframes winter-drift{0%{opacity:0;transform:translate3d(0,0,0) rotate(-9deg)}16%{opacity:.52}40%{transform:translate3d(20px,-9px,0) rotate(5deg)}75%{opacity:.5;transform:translate3d(48px,3px,0) rotate(15deg)}100%{opacity:0;transform:translate3d(70px,-4px,0) rotate(21deg)}}
html.animations-hidden .hero-image{animation-play-state:paused!important}
@media(min-width:1921px){.hero-image{-webkit-mask-image:linear-gradient(90deg,transparent,#000 13%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 13%,#000 90%,transparent)}.hero h1{font-size:96px}.hero{min-height:850px}}
@media(max-width:950px){.hero{height:auto;min-height:750px}.hero-content{padding-top:75px;padding-bottom:165px}.hero h1{font-size:76px}.hero-shade{background:linear-gradient(90deg,#102e21f7,#102e21c2 40%,#102e2130 80%)}.service-panel{min-height:630px}.snow{padding:76px 5vw;gap:40px}.snow-mark svg{width:92px;height:92px}.environment-services{width:65vw}.environment-areas{width:88vw;height:190px}}
@media(max-width:700px){
 .hero{height:auto;min-height:640px}.hero-content{padding:60px 24px 170px}.hero h1{font-size:clamp(46px,14.6vw,62px);line-height:1.02}.hero-content .eyebrow{margin-bottom:22px}.hero-content>p{margin-top:19px;font-size:16px}.hero-content .hero-snow{font-size:12px;margin-top:11px}.hero-actions{margin-top:14px}.hero-media{width:100%}.hero-depth{inset:0}.hero-layer picture{max-width:none}.hero-image{width:100%;max-width:none;object-position:var(--photo-mobile,49% 53%);-webkit-mask-image:none;mask-image:none}
 .hero-shade{background:linear-gradient(90deg,#102e21b8,#102e2140 80%),linear-gradient(0deg,#102e21f2 4%,#102e216b 42%,#102e2140 82%,#102e2130)}.hero-controls{right:24px;bottom:calc(var(--hero-fade-height,200px) + 24px);gap:10px;font-size:11px}.hero-controls button svg{width:17px}.hero-controls .icon-button{width:44px;height:44px}
 .ambient{--wind-x:54px;--wind-y:8px}.ambient-hero .particle-1{right:2%;top:8%;width:26px}.ambient-hero .particle-2{right:1%;top:27%;width:20px}.ambient-hero .particle-3{right:3%;bottom:22%;width:29px}.ambient-hero .particle-4{right:12%;top:2%;width:20px}.ambient-hero .particle-5,.ambient-hero .particle-6,.ambient-hero .particle-7,.ambient-hero .particle-8{display:none}.ambient-hero .wind-lines{width:67%;height:45%;right:-20px;bottom:18%}.ambient-quiet .particle-2,.ambient-contact .particle-2,.ambient-winter .particle-3{display:none}.ambient-quiet .particle-1{left:0!important;width:20px;--wind-x:42px;--wind-y:4px}.ambient-quiet .wind-lines{width:48%;right:-15%;height:30%;bottom:0}.ambient-contact .particle-1{left:0;top:70%;width:20px}.ambient-contact .wind-lines{width:55%;left:-25%}
 .intro-photo.frame-leaf{max-height:415px}.intro-photo.frame-leaf img{height:415px;object-position:49% 66%;transform:scale(1.015)}.frame-leaf{border-radius:57% 43% 61% 10% / 32% 48% 40% 10%}.frame-opposite{border-radius:60px 9px 60px 9px}.frame-arc{border-radius:50% 50% 5% 5% / 22% 22% 4% 4%}.service-panel{height:420px;min-height:420px}.service-caption{left:26px;right:26px;bottom:29px}.service-options button{border-radius:12px}.gallery-open.frame-opposite:hover{border-radius:60px 9px 60px 9px}.gallery-filters button{font-size:13px}
 .environment-services{width:100%;height:280px;bottom:-20px;left:-90px}.environment-services img{opacity:.16}.environment-areas{width:120%;height:180px;right:-20px;bottom:0}.environment-areas img{opacity:.18}.area-copy{position:static}.process-line:before{width:2px;height:auto}.process-line button{padding-right:36px}.process-number svg{right:2px}.snow{padding:64px 24px;min-height:370px;gap:22px;align-items:center}.snow-mark svg{width:54px;height:54px}.snow h2{font-size:43px}.snow .snow-season{font-size:28px}.snow .text-link{font-size:14px;gap:18px}.snow-detail{font-size:13px}.winter-atmosphere{opacity:.8}.snow .frost-line{opacity:.6}.ambient-winter .particle-1{left:4%;top:9%;width:15px}.ambient-winter .particle-2{right:2%;bottom:7%;width:21px}.ambient-winter .wind-lines{width:56%;height:30%;right:-14px;bottom:6%}
 .contact form{border-radius:25px 12px 25px 12px}.contact{overflow:clip}.detail-hero>img.frame-opposite{border-radius:65px 10px 65px 10px}.article-photo img.frame-arc{border-radius:42% 42% 5% 5% / 20% 20% 4% 4%}.photo-reveal.in-view img{animation:frame-arrival-mobile 750ms ease both}
}
@keyframes frame-arrival-mobile{from{opacity:.88;transform:translateY(8px) scale(1.025)}to{opacity:1;transform:scale(1.015)}}
@media(max-width:350px){.hero-content{padding:54px 20px 166px}.hero h1{font-size:46px}.hero-controls{right:20px;gap:8px}.hero .hero-snow{font-size:12px}.snow{padding-left:20px;padding-right:20px;gap:14px}.snow h2{font-size:39px}.snow .snow-season{font-size:26px}.snow-mark svg{width:42px;height:42px}}
@media(max-width:950px) and (max-height:500px) and (orientation:landscape){
 .header-main{min-height:64px}.header .logo{width:78px}.hero{min-height:475px}.hero-content{display:grid;grid-template-columns:1.05fr 1fr;gap:0 25px;padding:28px 34px 146px}.hero-content>.eyebrow{grid-column:1/-1;margin-bottom:13px}.hero h1{grid-column:1;grid-row:2/5;font-size:clamp(41px,6.1vw,51px)}.hero-content>p{grid-column:2;grid-row:2;margin-top:0;font-size:16px}.hero-content>.hero-snow{grid-column:2;grid-row:3;margin-top:3px;font-size:11px;max-width:240px;white-space:normal}.hero-actions{grid-column:2;grid-row:4;flex-direction:column;align-items:flex-start;margin-top:8px;gap:0}.hero-actions .button{min-height:46px;font-size:13px;padding:12px 16px}.hero-actions .text-link{font-size:13px;min-height:44px;padding:8px 0}.hero-image{width:83%;max-width:none}.hero-controls{bottom:75px;right:34px}.ambient-hero .particle-5,.ambient-hero .particle-6,.ambient-hero .particle-7,.ambient-hero .particle-8{display:none}
}
@media(prefers-reduced-motion:reduce){
 .ambient{display:none}.breeze-pointer{transform:none}.hero.is-entering .hero-line,.hero.is-entering .hero-actions,.hero.is-entering .hero-image,.hero.sequence-ready .hero-image,.hero-opening .brand .logo{animation:none!important;transform:none!important;opacity:1!important}.hero-layer{transition:none}.hero-image{transform:none}.hero-depth,.environment-photo{transform:none!important}.photo-reveal.in-view img{animation:none;transform:none}.gallery-item.motion-ready.in-view,.service-panel,.rating.motion-ready.in-view .rating-score,.rating.motion-ready.in-view .rating-score>span,.process-line li.is-current .process-number svg,.map-marker.is-selected .map-ring{animation:none!important;transform:none}.gallery-open,.accordion-icon{transition:none}.frost-line,.snow-mark svg path{transition:none!important;stroke-dashoffset:0!important}.intro-photo.frame-leaf:hover{border-radius:62% 38% 62% 12% / 35% 55% 45% 12%}.gallery-open:hover img{transform:none}
}
.ambient:not(.ambient-budgeted){visibility:hidden}.hero.is-entering .ambient-particle{animation-duration:1120ms;animation-delay:var(--opening-delay,0ms)}
.process-track{position:relative}.process-route{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.process-route path{stroke:var(--accent);stroke-width:1.7;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--process-progress,1))}.process-track.route-ready .process-line:before{display:none}
#lightbox-image{object-fit:contain;border-radius:0;clip-path:none;mask:none;-webkit-mask:none;transform:none}
@media(prefers-reduced-motion:reduce){.process-route path{stroke-dashoffset:0}}

.gallery-enlarge svg{width:20px;height:20px;transform:rotate(-35deg)}

.gallery-enlarge{color:var(--ivory)}.footer a svg,.leave-review svg,.review-slide figcaption svg,.article-body>p>a svg,.article-body>a svg{display:inline-block;width:16px;height:16px;vertical-align:middle;margin-left:3px}

/* Allocate animation objects only to the current visible ambient budget. */
.ambient-particle,.wind-lines,.wind-lines path{animation:none}
.ambient-budgeted .ambient-particle{animation:leaf-breeze var(--leaf-duration,9s) var(--leaf-delay,0s) cubic-bezier(.22,.62,.45,1) infinite;animation-play-state:var(--ambient-play)}
.ambient-budgeted .wind-lines{animation:wind-arrival 12s 1.8s ease infinite;animation-play-state:var(--ambient-play)}
.ambient-budgeted .wind-lines path{animation:wind-draw 12s 1.8s ease infinite;animation-play-state:var(--ambient-play)}
.ambient-budgeted .wind-lines path+path{animation-delay:2s}
.ambient-winter.ambient-budgeted .ambient-particle{animation-name:winter-drift}
.hero.is-entering .ambient-budgeted .ambient-particle{animation:opening-gust 1120ms var(--opening-delay,0ms) ease-out both;animation-play-state:var(--ambient-play)}
.hero.is-entering .ambient-budgeted .wind-lines{animation:opening-wind 1250ms ease both;animation-play-state:var(--ambient-play)}
.hero.is-entering .ambient-budgeted .wind-lines path{animation:wind-draw 1250ms ease both;animation-play-state:var(--ambient-play)}
/* Final composition: a continuous ivory transition and one editorial gallery. */
:root{--hero-fade-height:200px}
.hero{min-height:850px}.hero-content{padding-bottom:230px}.hero-fade{position:absolute;inset:auto 0 0;height:var(--hero-fade-height);z-index:5;pointer-events:none;background:linear-gradient(180deg,#f6f5ee00 0%,#f6f5ee20 18%,#f6f5ee75 42%,#f6f5eec9 66%,#f6f5eef5 86%,var(--ivory) 100%)}
.intro{padding-top:80px}
/* Shared rows include captions, so the right pair ends at the main card baseline. */
#projects .gallery-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(2,clamp(285px,25vw,390px)) auto;gap:28px;align-items:stretch}
#projects .gallery-item{margin:0;min-width:0;display:flex;flex-direction:column;grid-column:auto;grid-row:auto}
#projects .gallery-grid[data-count="5"] .item-0{grid-column:1/9;grid-row:1/3}
#projects .gallery-grid[data-count="5"] .item-1{grid-column:9/13;grid-row:1}
#projects .gallery-grid[data-count="5"] .item-2{grid-column:9/13;grid-row:2}
#projects .gallery-grid[data-count="5"] .item-3{grid-column:1/7;grid-row:3}
#projects .gallery-grid[data-count="5"] .item-4{grid-column:7/13;grid-row:3}
#projects .gallery-open{flex:1;min-height:0;display:block;position:relative;border:1px solid #ffffffc9;border-radius:28px;background:#edf0e6;box-shadow:0 8px 18px #193d2b0c,0 1px 2px #193d2b1c,inset 0 1px 0 #fff;transition:box-shadow 240ms ease;overflow:hidden}
#projects .gallery-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;transform:none;transition:transform 450ms ease}
#projects .gallery-item[data-image="retaining-wall"] img{object-position:50% 50%}
#projects .gallery-item[data-image="pool-pavers"] img,#projects .gallery-item[data-image="garden-4"] img{object-fit:contain;object-position:center;background:linear-gradient(135deg,#f5f6ef,#e5eadf)}
#projects .gallery-grid[data-count="5"] .item-3 .gallery-open,#projects .gallery-grid[data-count="5"] .item-4 .gallery-open{flex:none;aspect-ratio:4/3}
#projects .gallery-item figcaption{min-height:64px;margin:0;padding:14px 5px 4px;display:flex;align-items:center;justify-content:space-between;gap:14px}
#projects .gallery-item figcaption>span{font-size:clamp(21px,1.8vw,25px);line-height:1.15}
#projects .gallery-item figcaption small{font-size:9px;letter-spacing:.08em;line-height:1.6;flex-shrink:0}
#projects .gallery-enlarge{right:16px;bottom:16px;width:44px;height:44px;color:var(--forest);border:1px solid #ffffffe6;background:#f6f5eedb;backdrop-filter:blur(6px);box-shadow:0 2px 7px #102e2126}
#projects .gallery-enlarge svg{width:20px;height:20px}
#projects .gallery-filters button{background:#f6f5eec9;box-shadow:0 3px 6px #193d2b08,inset 0 1px 0 #fff;border-color:#d2d9ca}
#projects .gallery-filters button[aria-pressed="true"]{background:var(--forest);color:var(--ivory);border-color:var(--forest);box-shadow:0 3px 7px #193d2b20}
#projects .gallery-grid:not([data-count="5"]){grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;max-width:100%;margin-inline:auto}
#projects .gallery-grid:not([data-count="5"]) .gallery-item{grid-column:auto;grid-row:auto}
#projects .gallery-grid:not([data-count="5"]) .gallery-open{aspect-ratio:4/3;flex:none}
#projects .gallery-grid[data-count="1"]{grid-template-columns:minmax(0,1fr);width:min(100%,800px)}
#projects .gallery-item.motion-ready.in-view{animation:gallery-arrival 420ms var(--item-delay,0ms) ease both}
@media(hover:hover){#projects .gallery-open:hover img{transform:scale(1.02)}#projects .gallery-open:hover{box-shadow:0 10px 22px #193d2b13,0 1px 2px #193d2b22,inset 0 1px 0 #fff}}
/* Real, measurable nodes anchor the curved process route at every breakpoint. */
.process-line{z-index:1}.process-number:after{display:none}.process-dot{position:absolute;left:0;bottom:-4px;width:8px;height:8px;border-radius:50%;border:1px solid var(--accent);background:var(--ivory);transition:background 200ms,box-shadow 200ms}
.process-line li.is-revealed .process-dot{background:var(--accent)}.process-line li.is-current .process-dot{box-shadow:0 0 0 4px #417e1426}
.process-line li:not(.is-revealed) .process-number{opacity:.6}.process.is-complete .process-line li:last-child .process-dot{animation:node-finish 650ms ease-out}
@keyframes node-finish{0%{box-shadow:0 0 0 1px #9cbd6240}55%{box-shadow:0 0 0 8px #9cbd6248}100%{box-shadow:0 0 0 0 #9cbd6200}}
.map-connections path{stroke-dashoffset:0;transition:stroke 200ms,stroke-width 200ms}.areas.map-animated .map-connections path{stroke-dashoffset:1}
.map-connections path.is-highlighted{stroke:#edf6cd;stroke-width:2.2}.area-grid{transform:none;opacity:calc(.3 + .7 * min(var(--map-progress,1) * 2.5,1))}.map-marker .map-dot{opacity:calc(.18 + .82 * var(--town-reveal,1))}
/* Botanical forms stay at the edges; only the visible section budget animates. */
.ambient .ambient-particle{left:var(--leaf-x)!important;top:var(--leaf-y)!important;right:auto!important;bottom:auto!important;width:var(--leaf-size)!important;height:calc(var(--leaf-size) * .64);display:block;opacity:.6}
.ambient .depth-far{filter:none;color:#829c60}.ambient .depth-near{color:#b3c982}.ambient-quiet .depth-near{color:#83a454}
.ambient-contact .ambient-particle{left:1%!important;top:calc(69% + var(--leaf-y) * .2)!important}
.botanical-ornament{position:absolute;bottom:0;right:-2%;width:46%;height:220px;stroke:currentColor;stroke-width:1;fill:none;opacity:.24;overflow:visible}
.botanical-ornament .botanical-arc{stroke-dasharray:1;stroke-dashoffset:0}.ambient-hero .botanical-ornament{bottom:22%;height:240px;width:38%;opacity:.27}
.ambient-quiet .botanical-ornament{width:34%;height:160px;right:-5%;opacity:.2}.ambient-contact .botanical-ornament{left:-12%;right:auto;width:35%;height:170px;opacity:.18}
.organic-wash{position:absolute;right:-12%;bottom:-12%;width:36%;height:32%;border-radius:65% 35% 73% 27%/63% 53% 47% 37%;background:currentColor;opacity:.055;transform:rotate(-18deg)}
.ambient-hero .organic-wash{bottom:28%;right:-18%;height:43%;opacity:.04}.ambient-contact .organic-wash{left:-20%;right:auto;bottom:5%;width:38%;height:32%;opacity:.05}
.ambient-budgeted .trail-0{animation:leaf-curve-a var(--leaf-duration) var(--leaf-delay) cubic-bezier(.32,.02,.25,1) infinite;animation-play-state:var(--ambient-play)}
.ambient-budgeted .trail-1{animation:leaf-curve-b var(--leaf-duration) var(--leaf-delay) cubic-bezier(.32,.02,.25,1) infinite;animation-play-state:var(--ambient-play)}
.ambient-budgeted .trail-2{animation:leaf-curve-c var(--leaf-duration) var(--leaf-delay) cubic-bezier(.32,.02,.25,1) infinite;animation-play-state:var(--ambient-play)}
.ambient-winter.ambient-budgeted .ambient-particle{animation-name:winter-drift}
.ambient-budgeted .botanical-ornament{animation:botanical-breath 16s ease infinite;animation-play-state:var(--ambient-play)}
@keyframes botanical-breath{0%,100%{opacity:.16}45%{opacity:.28}75%{opacity:.22}}
@keyframes leaf-curve-a{0%{opacity:.25;transform:translate3d(0,0,0) rotate(var(--leaf-rotation))}12%{opacity:.8}38%{transform:translate3d(calc(var(--wind-x)*.36),calc(var(--wind-y) - 24px),0) rotate(24deg)}63%{opacity:.75;transform:translate3d(calc(var(--wind-x)*.9),calc(var(--wind-y)*.4),0) rotate(58deg)}86%{opacity:.65;transform:translate3d(var(--wind-x),var(--wind-y),0) rotate(63deg)}100%{opacity:.25;transform:translate3d(var(--wind-x),var(--wind-y),0) rotate(65deg)}}
@keyframes leaf-curve-b{0%{opacity:.2;transform:translate3d(0,0,0) rotate(-18deg) scale(.82)}15%{opacity:.6}35%{transform:translate3d(calc(var(--wind-x)*.2),16px,0) rotate(9deg) scale(.9)}65%{opacity:.6;transform:translate3d(calc(var(--wind-x)*.8),calc(var(--wind-y) - 14px),0) rotate(-28deg) scale(.94)}88%,100%{opacity:.35;transform:translate3d(var(--wind-x),var(--wind-y),0) rotate(-35deg) scale(.9)}}
@keyframes leaf-curve-c{0%{opacity:.3;transform:translate3d(0,0,0) rotate(14deg)}18%{opacity:.75}48%{transform:translate3d(calc(var(--wind-x)*.65),calc(var(--wind-y) + 18px),0) rotate(42deg)}72%{opacity:.65;transform:translate3d(calc(var(--wind-x)*.94),calc(var(--wind-y) - 4px),0) rotate(60deg)}88%,100%{opacity:.3;transform:translate3d(var(--wind-x),var(--wind-y),0) rotate(64deg)}}
html:not([data-motion]) .ambient{visibility:visible}html:not([data-motion]) .ambient-particle:nth-of-type(n+5){display:none}
@media(min-width:1921px){:root{--hero-fade-height:220px}.hero{min-height:900px}.hero-content{padding-bottom:250px}}
@media(max-width:1100px) and (min-width:701px){#projects .gallery-grid[data-count="5"]{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none}#projects .gallery-grid[data-count="5"] .gallery-item{grid-column:auto;grid-row:auto}#projects .gallery-grid[data-count="5"] .gallery-open{aspect-ratio:4/3;flex:none}#projects .gallery-grid[data-count="5"] .item-4{grid-column:1/-1;width:calc(50% - 14px);justify-self:center}}
@media(max-width:950px){.hero{min-height:800px}.hero-content{padding-bottom:230px}}
@media(max-width:700px){
 :root{--hero-fade-height:120px}.hero{min-height:680px;height:auto}.hero-content{padding:60px 24px 220px}.hero-controls{bottom:calc(var(--hero-fade-height) + 24px);right:24px}.intro{padding-top:60px}
 #projects .gallery-grid,#projects .gallery-grid:not([data-count="5"]){grid-template-columns:minmax(0,1fr);grid-template-rows:none;gap:24px;width:100%}
 #projects .gallery-grid[data-count="5"] .gallery-item{grid-column:auto;grid-row:auto;width:100%}
 #projects .gallery-grid .gallery-open{flex:none;aspect-ratio:4/3;border-radius:22px}
 #projects .gallery-grid .gallery-item[data-image="pool-pavers"] .gallery-open,#projects .gallery-grid .gallery-item[data-image="garden-4"] .gallery-open{aspect-ratio:1}
 #projects .gallery-item figcaption{min-height:72px;padding:13px 3px 4px;gap:12px}#projects .gallery-item figcaption>span{font-size:23px}#projects .gallery-item figcaption small{font-size:9px}
 .process-line button{min-height:82px;padding:12px 40px 18px 60px}.process-dot{left:16px;top:56px;bottom:auto}.process-number{position:static}.process-title{font-size:17px;max-width:240px}
 .ambient-hero .ambient-particle{display:block;max-width:29px;--wind-x:36px!important;--wind-y:12px!important}
 .ambient-hero .ambient-particle:nth-of-type(n+11){display:none}
 .ambient-hero .particle-5{--leaf-x:1%!important;--leaf-y:68%!important}.ambient-hero .particle-6{--leaf-x:95%!important;--leaf-y:55%!important}.ambient-hero .particle-7{--leaf-x:2%!important;--leaf-y:3%!important}.ambient-hero .particle-8{--leaf-x:95%!important;--leaf-y:68%!important}.ambient-hero .particle-9{--leaf-x:87%!important;--leaf-y:2%!important}
 .ambient-quiet .ambient-particle{max-width:25px}.ambient-quiet .particle-3,.ambient-quiet .particle-4,.ambient-contact .particle-3,.ambient-winter .particle-4,.ambient-winter .particle-5{display:none}.ambient-quiet .particle-2{display:block;--leaf-x:97%!important;--leaf-y:89%!important}
 .ambient-winter .particle-3{display:block}.botanical-ornament,.ambient-quiet .botanical-ornament{width:48%;height:140px;right:-12%;opacity:.24}.ambient-hero .botanical-ornament{width:56%;height:150px;bottom:21%;right:-15%}.ambient-contact .botanical-ornament{left:-20%;width:40%}
 .organic-wash{width:53%;height:24%;right:-30%}.ambient-winter .ambient-particle{height:var(--leaf-size)}
}
@media(max-width:350px){.hero-content{padding:54px 20px 220px}.hero-controls{right:20px}#projects .gallery-item figcaption>span{font-size:21px}#projects .gallery-item figcaption{gap:8px}}
@media(max-width:950px) and (max-height:500px) and (orientation:landscape){:root{--hero-fade-height:100px}.hero{min-height:475px}.hero-content{padding:28px 34px 170px}.hero-controls{bottom:calc(var(--hero-fade-height) + 20px);right:34px}.ambient-hero .ambient-particle:nth-of-type(n+11){display:none}}
@media(prefers-reduced-motion:reduce){
 .ambient{display:block!important;visibility:visible!important}.ambient *{animation:none!important;transition:none!important}.ambient .ambient-particle{opacity:.5;transform:rotate(var(--leaf-rotation))}.ambient-hero .ambient-particle:nth-of-type(n+5),.ambient-quiet .ambient-particle:nth-of-type(n+4),.ambient-contact .ambient-particle:nth-of-type(n+4){display:none}.ambient .wind-lines{opacity:.18}.ambient .wind-lines path{stroke-dashoffset:0}.map-connections path,.areas.map-animated .map-connections path{stroke-dashoffset:0!important}.gallery-item.motion-ready.in-view,.process.is-complete .process-dot{animation:none!important}#projects .gallery-open:hover img{transform:none}.area-grid,.map-marker .map-dot{opacity:1}
}
@media(max-width:700px){.process-line button{padding-left:86px}.process-number>span{left:48px;width:26px;padding:0;background:transparent}.process-dot{top:26px}.process-title{font-size:16px}}
#projects .gallery-grid,#projects .gallery-filters,.intro-copy,.intro-photo{position:relative;z-index:3}
.ambient:not(.ambient-budgeted) .ambient-particle,.ambient:not(.ambient-budgeted) .wind-lines,.ambient:not(.ambient-budgeted) .wind-lines path,.ambient:not(.ambient-budgeted) .botanical-arc{animation:none!important}

.ambient:not(.ambient-budgeted){content-visibility:hidden}.ambient-budgeted .ambient-particle{will-change:transform,opacity}.ambient-budgeted .botanical-ornament{will-change:opacity}
@media(prefers-reduced-motion:reduce){.ambient{content-visibility:visible!important}.ambient .ambient-particle,.ambient .botanical-ornament{will-change:auto}}
html:not([data-motion]) .ambient{content-visibility:auto}
/* Accessible text remains available to screen readers without duplicating visible copy. */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
