@font-face{font-family:Hanken;src:url('/fonts/font-2.e9201eddf1d4.woff2') format('woff2');font-weight:400 800;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Hanken,sans-serif;background:var(--paper);color:var(--ink);line-height:1.6}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer}img{display:block;width:100%;height:auto}h1,h2,h3,p{margin:0}h1,h2{line-height:1;letter-spacing:-.045em}h1{font-size:clamp(3.7rem,7.5vw,8rem);font-weight:500}h2{font-size:clamp(2.8rem,5.5vw,5.5rem);font-weight:500}h3{font-size:1.4rem;line-height:1.2}p{max-width:60ch}p+p{margin-top:1rem}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.skip{position:absolute;top:-100px}.skip:focus{top:60px;z-index:10;background:var(--paper);padding:1rem}.wrap{width:min(1320px,90%);margin-inline:auto}.eyebrow{text-transform:uppercase;font-size:.72rem;letter-spacing:.18em;font-weight:700}.muted{opacity:.72}.demo-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:10px 5%;background:#171b1a;color:#fff;font-size:.75rem;letter-spacing:.035em}.demo-bar a{text-decoration:underline;text-underline-offset:4px}.nav{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:26px 0}.brand{font-size:1.5rem;letter-spacing:-.06em;font-weight:800;line-height:1}.brand small{display:block;font-size:.55rem;letter-spacing:.28em;margin-top:.65rem}.nav-links{display:flex;gap:2rem;font-size:.85rem}.nav-links a:hover{text-decoration:underline;text-underline-offset:7px}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:1.8rem;border:0;border-radius:100px;padding:.75rem .8rem .75rem 1.4rem;background:var(--ink);color:var(--paper);min-height:48px;font-weight:600;font-size:.9rem;transition:transform .3s cubic-bezier(.32,.72,0,1)}.btn span{display:grid;place-items:center;background:color-mix(in srgb,currentColor 15%,transparent);border-radius:50%;width:32px;height:32px}.btn:hover{transform:translateY(-3px)}.btn:active{transform:scale(.98)}.btn.alt{background:var(--accent);color:var(--ink)}.menu{display:none;position:relative}.menu summary{cursor:pointer;min-height:44px;padding:10px}.menu nav{position:absolute;right:0;top:48px;z-index:5;min-width:230px;background:var(--paper);padding:1.5rem;box-shadow:0 15px 50px #0002;border-radius:20px}.menu nav a{display:block;padding:12px 0}.hero{padding:40px 0 90px}.hero p:not(.eyebrow){font-size:1.05rem}.section{padding:110px 0}.section-head{display:flex;justify-content:space-between;gap:3rem;align-items:end;margin-bottom:50px}.section-head p{max-width:30ch}.photo-shell{padding:7px;background:color-mix(in srgb,var(--ink) 8%,transparent);border-radius:30px}.photo-shell img{border-radius:24px;object-fit:cover}.caption{display:flex;justify-content:space-between;gap:1rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;margin-top:15px}.service-list{margin-top:35px}.service-row{display:grid;grid-template-columns:60px 1fr 1fr;gap:25px;padding:28px 0;border-top:1px solid color-mix(in srgb,var(--ink) 17%,transparent);align-items:start}.service-row p{font-size:.92rem}.service-row .n{font-size:.75rem;padding-top:5px;opacity:.6}.process{display:grid;grid-template-columns:repeat(3,1fr);gap:50px}.process article{padding-top:25px;border-top:1px solid color-mix(in srgb,var(--ink) 25%,transparent)}.process h3{margin:22px 0 15px}.faq{max-width:850px;margin:35px auto 0}.faq details{border-top:1px solid color-mix(in srgb,var(--ink) 20%,transparent);padding:20px 0}.faq summary{cursor:pointer;font-size:1.15rem;padding:8px 0}.faq p{padding:15px 0}.contact-band{padding:80px 6%;border-radius:36px;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-bottom:80px}.contact-band h2{max-width:15ch}.contact-band .btn{background:var(--paper);color:var(--ink);flex-shrink:0}.footer{padding:35px 0 50px;display:flex;justify-content:space-between;gap:2rem;font-size:.8rem}.footer p{max-width:75ch}.footer a{text-decoration:underline}.reveal{animation:arrive .8s cubic-bezier(.32,.72,0,1) both}@keyframes arrive{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.residential{--paper:#f4f0e7;--ink:#253c32;--accent:#d7d6b6}.residential h1,.residential h2{font-family:'Cormorant Garamond',serif}.residential .hero-top{display:grid;grid-template-columns:1.1fr .6fr;gap:10%;align-items:end;margin:28px 0 45px}.residential h1 em{font-weight:600}.residential .hero-top p{margin:20px 0}.residential .hero-photo img{height:clamp(340px,47vw,640px)}.residential .hero{padding-bottom:30px}.residential .hero-photo{position:relative}.residential .photo-note{position:absolute;bottom:38px;left:35px;background:#f4f0e7ee;padding:20px 25px;border-radius:20px;max-width:260px;font-size:.85rem}.residential .services{display:grid;grid-template-columns:.7fr 1.3fr;gap:9%}.residential .services h2{max-width:8ch}.residential .service-row{grid-template-columns:35px 1fr}.residential .service-row p{grid-column:2}.residential .service-row h3{font-weight:500}.residential .feature{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.residential .feature img{aspect-ratio:4/5;object-fit:cover}.residential .feature h2{margin:20px 0 30px}.residential .feature .btn{margin-top:30px}.residential .tinted{background:#e7e8de}.commercial{--paper:#121a20;--ink:#edf0e8;--accent:#dafb79}.commercial .nav .btn{background:var(--accent);color:#121a20}.commercial .hero{padding-top:30px}.commercial .hero-top{display:grid;grid-template-columns:1.3fr .6fr;gap:10%;align-items:end;margin:30px 0 45px}.commercial h1{font-weight:600;font-size:clamp(4rem,8.5vw,9rem);letter-spacing:-.065em}.commercial h1 em{font-style:normal;color:var(--accent)}.commercial .hero-top p{margin:20px 0}.commercial .hero-photo img{height:520px;object-fit:cover}.commercial .photo-shell{background:#26333c}.commercial .scope-strip{display:flex;gap:2rem;justify-content:space-between;padding:25px 0;color:var(--accent);font-size:.75rem;letter-spacing:.08em}.commercial .projects{display:grid;grid-template-columns:1.25fr .75fr;gap:50px;align-items:start}.commercial .projects article:last-child{margin-top:140px}.commercial .projects img{aspect-ratio:5/4;object-fit:cover}.commercial .projects h3{margin:25px 0 10px}.commercial .process-section{background:#e5e9df;color:#162127}.commercial .contact-band{background:var(--accent);color:#162127}.commercial .contact-band .btn{background:#162127;color:#fff}.service{--paper:#f3f4f0;--ink:#152d4e;--accent:#ffcf65}.service .hero{display:grid;grid-template-columns:1.08fr .92fr;gap:5%;align-items:center;padding-top:45px}.service h1{font-weight:800;font-size:clamp(3.7rem,6.5vw,7rem);letter-spacing:-.06em;line-height:.98}.service h1 em{font-style:normal;color:#386547}.service .hero-copy>p{margin:25px 0}.service .hero-photo{position:relative;transform:rotate(2deg)}.service .hero-photo img{height:600px;object-fit:cover;object-position:75% center}.service .photo-note{position:absolute;bottom:30px;left:-30px;right:30px;background:var(--accent);border:6px solid var(--paper);border-radius:24px;padding:22px;transform:rotate(-2deg);font-weight:700}.service .help-line{font-size:.8rem!important;max-width:45ch}.service .service-options{display:grid;grid-template-columns:1fr 1fr;gap:18px}.service .service-option{padding:30px;border-radius:26px;background:#e4e9ed}.service .service-option h3{margin:20px 0 12px}.service .service-option:last-child{background:#dce8dc}.service .service-option button{margin-top:25px}.service .section-head h2{max-width:11ch}.service .reassurance{background:#152d4e;color:#f3f4f0;border-radius:40px;display:grid;grid-template-columns:1fr 1fr;gap:8%;padding:65px}.service .reassurance h2{margin:20px 0}.service .reassurance p{margin-bottom:25px}.service .reassurance li{padding:15px 0}.service .contact-band{background:#ffcf65;color:#152d4e}dialog{width:min(540px,92vw);max-height:90dvh;overflow:auto;border:0;border-radius:28px;background:var(--paper);color:var(--ink);padding:35px}dialog::backdrop{background:#0c1722b3;backdrop-filter:blur(5px)}dialog h2{font-size:2.6rem;margin:20px 0}dialog p{font-size:.9rem}.close{float:right;border:0;border-radius:50%;width:44px;height:44px;background:var(--ink);color:var(--paper)}label{display:block;margin:18px 0 8px;font-size:.85rem;font-weight:600}select,input{width:100%;min-height:48px;padding:12px;border:1px solid currentColor;border-radius:12px;background:var(--paper);color:var(--ink)}form .btn{margin-top:25px}output{display:block;margin:25px 0}dialog a{text-decoration:underline}body:has(dialog[open]){overflow:hidden}@media(max-width:760px){h1{font-size:3.8rem}.nav-links,.nav>.btn{display:none}.menu{display:block}.nav{padding:24px 0}.demo-bar{font-size:.65rem;align-items:start}.demo-bar span{max-width:24ch}.hero{padding:20px 0 55px}.section{padding:65px 0}.section-head{display:block;margin-bottom:35px}.section-head p{margin-top:22px}.residential .hero-top,.commercial .hero-top,.service .hero{grid-template-columns:1fr;gap:25px}.residential .hero-top{margin-top:0}.residential .hero-top p{margin-top:0}.residential .hero-photo img{height:390px}.residential .photo-note{left:25px;bottom:25px;padding:15px;font-size:.75rem}.residential .services,.residential .feature{grid-template-columns:1fr;gap:30px}.residential .services h2{max-width:none}.residential .feature img{aspect-ratio:4/3}.commercial h1{font-size:3.9rem}.commercial .hero-photo img{height:340px}.commercial .scope-strip{flex-wrap:wrap;gap:15px;font-size:.65rem}.commercial .projects{grid-template-columns:1fr;gap:45px}.commercial .projects article:last-child{margin-top:0}.process{grid-template-columns:1fr;gap:25px}.service-row{grid-template-columns:30px 1fr}.service-row p{grid-column:2}.service .hero-photo{transform:none;margin-top:15px}.service .hero-photo img{height:390px}.service .photo-note{left:15px;right:15px;bottom:15px;transform:none;padding:15px}.service .service-options{grid-template-columns:1fr}.service .reassurance{grid-template-columns:1fr;padding:30px;gap:15px}.contact-band{padding:40px 25px;display:block;border-radius:25px;margin-bottom:40px}.contact-band .btn{margin-top:30px}.footer{display:block}.footer p{margin-bottom:20px}.caption{font-size:.6rem}.photo-shell{border-radius:23px}.photo-shell img{border-radius:17px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.btn:hover{transform:none}}