:root{--dark:#36302a;--cream:#ede5da;--white:#f6f3ec;--tan:#b9a590}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--dark);color:var(--white);font-family:'Public Sans',Arial,sans-serif;font-weight:300;font-size:20.456px;line-height:1.3}img{display:block;width:100%;object-fit:cover}h1,h2,p{margin:0}a{color:inherit}header{position:fixed;top:0;left:0;right:0;padding:10px 22px 10px 28px;display:flex;align-items:center;justify-content:space-between;z-index:10;transition:transform .35s}header.away{transform:translateY(-110%)}.logo{width:115px;height:115px;object-fit:contain}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--tan);color:var(--dark);padding:17px 22px;border-radius:15px;text-decoration:none;font-size:14px;transition:filter .2s}.button:hover{filter:brightness(1.1)}.skip{position:fixed;left:15px;top:-100px;z-index:30;background:var(--cream);color:var(--dark);padding:12px}.skip:focus{top:12px}.hero{height:713px;position:relative;clip-path:polygon(0 0,100% 0,100% 88.2%,75% 100%,0 88.2%)}.hero-image{position:absolute;height:100%;object-position:center 50%}.hero:after{content:'';position:absolute;inset:0;background:rgba(54,48,42,.72)}.hero-copy{position:relative;z-index:1;text-align:center;padding-top:214px}.hero h1{font-size:clamp(80px,8.86vw,150px);line-height:.744;font-weight:600;letter-spacing:-.065em;max-width:920px;margin:auto}.hero h1 span{display:block}.hero-copy p{font-size:27px;font-weight:600;letter-spacing:-1.1px;margin:94px 20px 0}.about{padding:135px 0 207px}.mission{max-width:850px;margin-left:21.9%;font-size:25.64px;font-weight:700;line-height:1.3;letter-spacing:-.7px}.accent{color:var(--tan)}.about-grid{position:relative;margin:68px auto 0;width:80.6%;height:766px}.living{position:absolute;left:0;top:164px;width:44.5%;height:563px}.kitchen{position:absolute;right:0;top:0;width:34.4%;height:276px}.stars{position:absolute;width:25%;height:285px;object-fit:contain;left:47%;top:86px;opacity:.5}.about-copy{position:absolute;left:50.5%;top:454px;width:55%;letter-spacing:-.65px}.about-copy p+p{margin-top:17px}.services{height:973px;background:var(--cream);color:var(--dark);position:relative;padding-top:123px;overflow:hidden}.marquee{position:absolute;top:120px;left:0;width:100%;z-index:2;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent)}.marquee-track{display:flex;width:max-content;gap:.6em;font-size:138px;font-weight:600;line-height:1.4;letter-spacing:-6px;animation:marquee 26s linear infinite}.marquee-track span{white-space:nowrap}.services-inner{position:relative;width:80.6%;height:750px;margin:auto}.bathroom{position:absolute;left:65.7%;top:0;width:29.4%;height:563px}.porch{position:absolute;left:40.4%;top:369px;width:34.4%;height:317px}.services-copy{position:absolute;left:0;top:247px;width:42%}.services h2{font-size:68.84px;line-height:.88;font-weight:600;letter-spacing:-3.7px}.services h2 span{display:block}.underline{position:relative;width:max-content}.underline:after{content:'';position:absolute;left:-2%;bottom:-8px;width:104%;height:7px;border-top:4px solid var(--tan);border-radius:50%;transform:rotate(-1deg)}.services-copy p{margin-top:26px;max-width:395px;letter-spacing:-.5px}.aaron{padding:118px 0 216px;clip-path:polygon(0 0,100% 0,100% 88.7%,75% 100%,0 88.7%);background:var(--dark);position:relative;z-index:1;margin-bottom:-85px}.aaron-inner{display:grid;grid-template-columns:395px 350px;gap:69px;margin:auto;max-width:802px}.portrait{height:395px;clip-path:polygon(4% 6%,50% 0,96% 6%,100% 50%,96% 94%,50% 100%,4% 94%,0 50%)}.aaron h2{font-size:127.6px;line-height:.744;letter-spacing:-7px;color:var(--tan);font-weight:600;margin:20px 0 35px}.aaron p{letter-spacing:-.6px}.aaron .button{margin-top:20px;min-height:72px;width:221px;font-size:17px;font-weight:800}footer{padding:190px 9.7% 40px;background:var(--dark)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%}footer h2{font-size:98px;line-height:1;white-space:pre-line;color:var(--tan);letter-spacing:-5px}.copyright{font-size:15.27px;margin-top:100px}.lp-form h2{display:none}.lp-fields{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:20px}.lp-fields legend{font-size:14px;margin-bottom:20px}.lp-field{grid-column:1/-1}.lp-field:nth-of-type(1),.lp-field:nth-of-type(2){grid-column:auto}.lp-field label{display:block;margin-bottom:8px;font-size:16px}.lp-input{width:100%;padding:13px;background:var(--cream);border:1px solid var(--tan);font:inherit;color:var(--dark)}textarea.lp-input{min-height:130px}input[type=checkbox]{width:auto}.lp-submit{border:0;background:var(--tan);border-radius:15px;padding:17px 22px;font-weight:800;margin-top:20px}.lp-status{font-size:14px;margin:16px 0}footer .button{margin-top:20px}.reveal{transition:opacity .6s ease,translate .6s ease}.reveal.waiting{opacity:0;translate:0 25px}@keyframes marquee{to{transform:translateX(calc(-50% - .3em))}}@media(min-width:1600px){.hero{height:50vw}.about-grid{max-width:1400px}}@media(max-width:767px){body{font-size:18px;line-height:1.3}header{display:none}.hero{height:653px;clip-path:polygon(0 0,100% 0,100% 96.3%,75% 100%,0 96.3%)}.hero-image{object-position:50% 50%}.hero-copy{padding-top:218px}.hero h1{font-size:80px;line-height:.745;letter-spacing:-4.6px;width:290px}.hero h1 span{max-width:270px;margin:auto}.hero-copy p{font-size:21px;line-height:1;letter-spacing:-.8px;margin:14px 28px 0}.about{padding:69px 23px 69px}.mission{margin:0;font-size:20px;line-height:1.36;letter-spacing:-.5px}.about-grid{display:flex;flex-direction:column;width:100%;height:auto;margin:12px 0 0}.living,.stars,.about-copy,.kitchen{position:static;width:100%;height:auto}.living{height:374px;object-fit:cover;order:0}.stars{order:1;width:210px;height:195px;align-self:center;margin:22px 0 43px}.about-copy{order:2;letter-spacing:-.5px}.kitchen{order:3;height:270px;margin-top:12px}.about-copy p+p{margin-top:17px}.services{height:auto;padding:140px 23px 75px}.marquee{top:19px}.marquee-track{font-size:78px;letter-spacing:-3px}.services-inner{width:100%;height:auto;display:flex;flex-direction:column}.bathroom,.porch,.services-copy{position:static}.bathroom{width:74%;height:304px;align-self:center}.porch{width:100%;height:198px;margin-top:46px}.services-copy{width:100%;margin-top:47px}.services h2{font-size:44px;letter-spacing:-2px;line-height:.9}.services-copy p{font-size:18px;margin-top:20px}.underline:after{bottom:-5px;border-width:3px}.aaron{padding:70px 23px 125px;margin-bottom:-35px}.aaron-inner{display:flex;flex-direction:column;gap:35px}.portrait{width:100%;height:auto;aspect-ratio:1}.aaron h2{font-size:80px;letter-spacing:-4px;max-width:300px;margin:0 0 25px}.aaron .button{height:60px;min-height:60px}footer{padding:100px 23px 30px}.contact-grid{display:block}footer h2{font-size:64px;margin-bottom:45px;letter-spacing:-3px}.copyright{margin-top:70px;font-size:13px}.lp-fields{gap:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.waiting{opacity:1;translate:none}}
.next-section{position:fixed;z-index:20;left:50%;bottom:0;transform:translateX(-50%);width:280px;height:calc(76px + env(safe-area-inset-bottom,0px));padding:0 0 env(safe-area-inset-bottom,0px);border:0;border-radius:0;background:transparent;color:var(--white);filter:drop-shadow(0 -5px 10px #0003);cursor:pointer;display:grid;place-items:center;transition:filter .2s}
.next-section:before{content:'';position:absolute;inset:0;background:#a45134;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 280 76' preserveAspectRatio='none'%3E%3Cpath d='M0 76C100 76 103 0 140 0S180 76 280 76Z'/%3E%3C/svg%3E") center/100% 100% no-repeat;transition:background .2s}
.next-section[hidden]{display:none}.next-section:hover{filter:drop-shadow(0 -7px 12px #0005)}.next-section:hover:before{background:#884029}.next-section:focus-visible{outline:3px solid var(--white);outline-offset:4px}
.next-section-arrow{position:relative;width:2px;height:27px;background:currentColor;animation:next-arrow-nudge 2.2s ease-in-out infinite;transition:translate .2s}.next-section-arrow:after{content:'';position:absolute;bottom:0;left:-6px;width:12px;height:12px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}.next-section:hover .next-section-arrow{translate:0 4px}
@media(max-width:767px){.next-section{width:min(240px,85vw);height:calc(64px + env(safe-area-inset-bottom,0px));bottom:0}}

@keyframes next-arrow-nudge{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(7px)}45%{transform:translateY(-2px)}}
.next-section{animation:next-tab-appear .75s cubic-bezier(.22,1,.36,1) both}
@keyframes next-tab-appear{from{transform:translate(-50%,100%);opacity:0}to{transform:translate(-50%,0);opacity:1}}

.next-section.is-leaving{pointer-events:none;animation:next-tab-disappear .75s cubic-bezier(.64,0,.78,0) both}
@keyframes next-tab-disappear{from{transform:translate(-50%,0);opacity:1}to{transform:translate(-50%,100%);opacity:0}}

/* Keep the hero behind the scrolling sections; carry its angled edge with the brown panel. */
.hero{position:sticky;top:0;z-index:0;clip-path:none}
.about{position:relative;z-index:1;background:var(--dark);--fold-depth:84.134px}
.about:before{content:'';position:absolute;left:0;right:0;bottom:calc(100% - 1px);height:calc(var(--fold-depth) + 1px);background:var(--dark);clip-path:polygon(0 0,75% 100%,100% 0,100% 100%,0 100%)}
.services,.testimonials,footer{position:relative;z-index:1}
.testimonials{background:var(--dark)}
@media(min-width:1600px){.about{--fold-depth:5.9vw}}
@media(max-width:767px){.about{--fold-depth:24.161px}}
@media(prefers-reduced-motion:reduce){.hero{position:relative}}

/* Keep the fourth arrow stop within a screen, allowing growth for enlarged text. */
.services{height:auto;min-height:100svh;padding:clamp(20px,4svh,40px) 9.7% calc(96px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:clamp(18px,3svh,32px)}
.services .marquee{position:relative;top:auto;left:auto;width:calc(100% + 24.07%);margin-left:-12.035%;flex-shrink:0}
.services .marquee-track{font-size:clamp(48px,10svh,110px);line-height:1.15;letter-spacing:-.045em}
.services-inner{position:static;width:100%;height:auto;flex:1;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr) minmax(0,1fr);gap:4%;align-items:center}
.services .bathroom,.services .porch{position:static;width:100%;height:clamp(180px,49svh,540px);margin:0}
.services .bathroom{grid-column:2;grid-row:1}
.services .porch{grid-column:3;grid-row:1;height:clamp(150px,35svh,390px);align-self:end}
.services-copy{position:static;grid-column:1;grid-row:1;width:100%;margin:0}
.services h2{font-size:clamp(34px,min(4.4vw,7svh),64px);letter-spacing:-.045em;line-height:.98;overflow-wrap:normal}
.services .underline{width:fit-content;max-width:100%}
.services-copy p{font-size:clamp(17px,2.5svh,21px);line-height:1.35;margin-top:24px}
@media(max-width:767px){
 .services{padding:22px 23px calc(86px + env(safe-area-inset-bottom,0px));gap:20px}
 .services .marquee{width:calc(100% + 46px);margin-left:-23px}
 .services .marquee-track{font-size:clamp(38px,7svh,64px)}
 .services-inner{grid-template-columns:1fr 1fr;gap:22px 14px;align-content:center}
 .services .bathroom,.services .porch{grid-row:1;height:clamp(110px,25svh,230px);align-self:auto}
 .services .bathroom{grid-column:1}
 .services .porch{grid-column:2}
 .services-copy{grid-column:1/-1;grid-row:2}
 .services h2{font-size:clamp(30px,min(8.6vw,5.5svh),42px)}
 .services-copy p{font-size:17px;margin-top:18px;max-width:none}
}

/* Keep contact visible and legible over both photographs and light sections. */
header{pointer-events:none}
header > a{pointer-events:auto}
header.away{transform:none}
header > a:first-child{transition:transform .35s}
header.away > a:first-child{transform:translateY(-150%)}
header:focus-within > a:first-child{transform:none}
header .button{min-width:144px;min-height:54px;padding:16px 28px;background:var(--cream);border:2px solid var(--dark);border-radius:999px;font-size:17px;font-weight:700;box-shadow:0 4px 18px #0004;transition:background .2s,box-shadow .2s}
header .button:hover{background:var(--white);filter:none;box-shadow:0 6px 22px #0005}
header .button:focus-visible{outline:3px solid var(--white);outline-offset:3px}
@media(max-width:767px){
 header{display:flex;justify-content:flex-end;padding:calc(14px + env(safe-area-inset-top,0px)) 16px 14px}
 header > a:first-child{display:none}
 header .button{min-width:124px;min-height:48px;padding:12px 24px;font-size:16px}
}

/* Two distinct arrow stops, each sized around the available screen. */
.about,.experience{min-height:100svh;padding:clamp(36px,7svh,80px) 9.7% calc(90px + env(safe-area-inset-bottom,0px));display:grid;align-items:center}
.experience{position:relative;z-index:1;background:var(--dark)}
.purpose-grid,.experience-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:7%;width:100%;max-width:1400px;margin:auto}
.purpose-copy{display:grid;gap:clamp(18px,4svh,40px)}
.about .mission{margin:0;max-width:none;font-size:clamp(20px,2vw,28px)}
.about .living{position:static;width:100%;height:clamp(260px,65svh,620px)}
.about .stars{position:static;width:clamp(130px,15vw,220px);height:clamp(90px,16svh,160px);margin:0;justify-self:center;object-fit:contain}
.experience .about-copy{position:static;width:100%;font-size:clamp(18px,1.5vw,22px)}
.experience .kitchen{position:static;width:100%;height:clamp(260px,60svh,560px);margin:0}
@media(max-width:767px){
 .about,.experience{padding:30px 23px calc(82px + env(safe-area-inset-bottom,0px))}
 .purpose-grid,.experience-grid{grid-template-columns:1fr;gap:22px}
 .purpose-copy{gap:12px}
 .about .mission{font-size:18px;line-height:1.36}
 .about .living{height:clamp(140px,25svh,230px)}
 .about .stars{width:110px;height:65px}
 .experience .about-copy{font-size:17px;line-height:1.35}
 .experience .kitchen{height:clamp(130px,22svh,210px)}
}

/* A compact final screen with a clear email option beside the enquiry form. */
#contact{min-height:100svh;padding:90px 9.7% max(24px,env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;justify-content:center;gap:clamp(20px,4svh,40px)}
.contact-grid{width:100%;max-width:1200px;margin:auto;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:7%;align-items:center}
.contact-intro h2{font-size:clamp(48px,min(6.8vw,12svh),98px);letter-spacing:-.05em;margin:0;line-height:.98}
.contact-intro .button{margin-top:24px;min-height:48px;font-weight:700}
.contact-form{min-width:0}
#contact .lp-fields{gap:12px 16px;min-width:0}
#contact .lp-fields legend{margin-bottom:14px;line-height:1.3}
#contact .lp-field{min-width:0}
#contact .lp-field label{margin-bottom:5px;font-size:15px}
#contact .lp-input{padding:10px 12px;font-size:16px;line-height:1.25;min-height:42px;border-radius:4px}
#contact textarea.lp-input{min-height:90px;height:90px;resize:vertical}
#contact input[type=checkbox]{min-height:0;width:18px;height:18px;margin:0;accent-color:var(--tan)}
#contact .lp-field:has(input[type=checkbox]){display:flex;align-items:center;gap:10px}
#contact .lp-field:has(input[type=checkbox]) label{margin:0;order:1}
#contact .lp-submit{margin-top:14px;min-height:44px;padding:12px 20px}
#contact .lp-status:empty{display:none}
#contact .copyright{width:100%;max-width:1200px;margin:0 auto;font-size:13px}
@media(max-width:767px){
 #contact{padding:84px 23px max(20px,env(safe-area-inset-bottom,0px));gap:20px}
 .contact-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;margin:auto 0}
 .contact-intro h2{font-size:clamp(32px,8vw,54px);white-space:normal;line-height:1;letter-spacing:-.04em}
 .contact-intro .button{margin-top:12px;min-height:44px;padding:12px 18px}
 #contact .lp-fields{gap:10px 12px}
 #contact .lp-fields legend{margin-bottom:10px;font-size:13px}
 #contact textarea.lp-input{height:76px;min-height:76px}
 #contact .copyright{font-size:12px}
}

/* Persistent site navigation and a distinct footer. */
.site-header{height:80px;padding:6px 5%;background:transparent;border-bottom:0;pointer-events:none}
.site-header > a,.site-header .header-actions{pointer-events:auto}
.site-header > a:first-child,.site-header.away > a:first-child{display:block;transform:none}
.site-header .logo{width:68px;height:68px}
.header-nav{display:flex;align-items:center;gap:clamp(18px,3vw,40px);font-size:16px;font-weight:600}
.header-nav > a{text-decoration:none}
.header-nav > a:not(.button):hover{text-decoration:underline;text-underline-offset:5px}
.header-nav a:focus-visible,.footer-brand:focus-visible{outline:2px solid var(--cream);outline-offset:5px}
#purpose,#experience,#services{padding-top:max(96px,7svh)}
#contact{position:relative;z-index:1;background:var(--dark)}
#contact h2{white-space:pre-line;color:var(--tan)}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 5%;border-top:1px solid #b9a59060;background:var(--dark)}
.footer-brand{font-size:16px;font-weight:600;text-decoration:none}
.site-footer .copyright{margin:0;font-size:12px;line-height:1.5}
@media(max-width:767px){
 .site-header{height:72px;justify-content:space-between;padding:4px 16px}
 .site-header .logo{width:60px;height:60px}
 .header-nav{gap:14px;font-size:13px}
 .site-header .button{min-width:0;min-height:44px;padding:10px 16px;font-size:14px}
 #purpose,#experience,#services{padding-top:88px}
 #contact h2{white-space:normal}
 .site-footer{flex-direction:column;align-items:flex-start;gap:12px;padding:24px 23px}
}

/* Navigation swings around the top-right corner. */
.header-actions{display:flex;align-items:center;gap:14px}
.menu-toggle,.menu-close{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;padding:12px;border:1px solid var(--tan);border-radius:50%;background:transparent;color:var(--cream);cursor:pointer}
.menu-toggle:hover,.menu-close:hover{background:#b9a59026}
.menu-toggle:focus-visible,.menu-close:focus-visible,.drawer-nav a:focus-visible{outline:3px solid var(--tan);outline-offset:5px}
.hamburger{width:22px;height:16px;border-top:2px solid currentColor;border-bottom:2px solid currentColor;position:relative}
.hamburger:after{content:'';position:absolute;left:0;right:0;top:5px;border-top:2px solid currentColor}
.site-menu{position:fixed;inset:0 0 0 auto;margin:0;width:min(440px,100%);max-width:100%;height:100dvh;max-height:100%;padding:28px 32px;border:0;border-left:1px solid #b9a59060;background:var(--dark);color:var(--cream);box-shadow:-16px 0 60px #0004;overflow-y:auto;overscroll-behavior:contain}
.site-menu{transform-origin:top right}
.site-menu[open]{animation:drawer-enter .2s cubic-bezier(.2,.8,.2,1) both}
.site-menu::backdrop{background:#0008;animation:drawer-backdrop-in .2s ease-out both}
.site-menu.is-closing{animation:drawer-exit .15s cubic-bezier(.4,0,1,1) both;pointer-events:none}
.site-menu.is-closing::backdrop{animation:drawer-backdrop-out .15s ease-in both}
.menu-top{display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:16px;font-weight:600}
.close-icon{position:relative;width:22px;height:22px}
.menu-close{position:absolute;left:var(--close-left);top:var(--close-top);width:var(--close-size,48px);height:var(--close-size,48px)}
.menu-top{min-height:48px;padding-right:calc(32px + 5vw)}
.close-icon:before,.close-icon:after{content:'';position:absolute;top:10px;left:0;width:22px;border-top:2px solid currentColor;transform:rotate(45deg)}
.close-icon:after{transform:rotate(-45deg)}
.drawer-nav{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-top:60px}
.drawer-nav>a:not(.button){padding:20px 0;border-bottom:1px solid #b9a59060;font-size:36px;text-decoration:none}
.drawer-nav>a:hover{color:var(--tan)}
.drawer-nav>.button{margin-top:24px;font-size:18px;font-weight:700;min-height:54px}
.drawer-nav>.button:hover{color:var(--dark)}
/* Preserve page width when the menu locks scrolling and hides the scrollbar. */
html{scrollbar-gutter:stable}
html.menu-open{overflow:hidden}
@keyframes drawer-enter{from{transform:rotate(-90deg)}to{transform:rotate(0deg)}}
@keyframes drawer-exit{to{transform:rotate(-90deg)}}
@keyframes drawer-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes drawer-backdrop-out{from{opacity:1}to{opacity:0}}
@media(max-width:767px){.header-actions{gap:10px}.menu-toggle{width:44px;height:44px}.site-menu{padding:20px 24px}}

/* Portfolio entry above the right-hand services photograph. */
.services .portfolio-preview{grid-column:3;grid-row:1;align-self:end;min-width:0}
.portfolio-trigger{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:48px;margin:0 0 18px;padding:12px 0;border:0;border-bottom:1px solid var(--dark);background:transparent;color:var(--dark);font:600 16px 'Public Sans',Arial,sans-serif;text-align:left;cursor:pointer}
.portfolio-trigger:hover{color:#79624e}
.portfolio-arrow{width:28px;height:12px;position:relative;flex-shrink:0;transition:transform .2s}
.portfolio-arrow:before{content:'';position:absolute;left:0;right:0;top:5px;border-top:1.5px solid currentColor}
.portfolio-arrow:after{content:'';position:absolute;right:1px;top:1px;width:9px;height:9px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg)}
.portfolio-trigger:hover .portfolio-arrow{transform:translateX(4px)}
.portfolio-panel{position:fixed;inset:0 0 0 auto;margin:0;width:min(600px,100%);max-width:100%;height:100dvh;max-height:100%;padding:32px;border:0;background:var(--cream);color:var(--dark);box-shadow:-16px 0 60px #0004;overflow-y:auto;overscroll-behavior:contain}
.portfolio-panel[open]{animation:portfolio-enter .24s cubic-bezier(.2,.8,.2,1) both}
.portfolio-panel::backdrop{background:#0008;animation:drawer-backdrop-in .24s ease-out both}
.portfolio-panel.is-closing{animation:portfolio-exit .18s ease-in both;pointer-events:none}
.portfolio-panel.is-closing::backdrop{animation:drawer-backdrop-out .18s ease-in both}
.portfolio-top{display:flex;justify-content:space-between;align-items:center;gap:20px}
.portfolio-top h2{font-size:clamp(32px,5vw,48px);letter-spacing:-.045em}
.portfolio-close{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;border:1px solid var(--dark);border-radius:50%;background:transparent;color:var(--dark);cursor:pointer}
.portfolio-close:hover{background:var(--tan)}
.portfolio-trigger:focus-visible,.portfolio-close:focus-visible{outline:2px solid var(--dark);outline-offset:5px}
.portfolio-empty{margin-top:60px;padding:32px 0;border-top:1px solid #36302a40;font-size:18px;line-height:1.5}
html.portfolio-open{overflow:hidden}
@keyframes portfolio-enter{from{transform:translateX(100%)}to{transform:translateX(0)}}
@keyframes portfolio-exit{to{transform:translateX(100%)}}
@media(max-width:767px){.services .portfolio-preview{grid-column:2;grid-row:1}.services .bathroom{align-self:end}.portfolio-trigger{font-size:14px;gap:10px;margin-bottom:12px}.portfolio-panel{padding:24px}}

/* Warm palette retained with the original site shapes and layout. */
:root{--dark:#292724;--cream:#f0e9df;--white:#fffaf3;--tan:#e5a080}
.hero:after{background:rgba(41,39,36,.72)}
.experience{background:#3a3530}
.menu-toggle,.menu-close{background:var(--dark);border-color:var(--tan);color:var(--white)}
.menu-toggle:hover,.menu-close:hover{background:#494039}
.site-menu,.site-footer{border-color:#e5a08044}
.drawer-nav>a:not(.button){border-bottom-color:#e5a08044}
.portfolio-empty{border-top-color:#29272433}
#contact .lp-input{background:var(--white);border-color:#ac9382}

/* Reserved call action beside Contact, pending a real phone number. */
.site-header .call-button{gap:8px;min-width:100px;font-family:inherit;background:var(--tan);cursor:not-allowed;opacity:1}
.site-header .call-button:hover{background:var(--tan);box-shadow:0 4px 18px #0004}
.call-button svg{flex-shrink:0}
@media(max-width:767px){.site-header .call-button{min-width:0;padding:10px 12px}.header-actions{gap:8px}}
@media(max-width:359px){.site-header{padding-inline:10px}.site-header .logo{width:48px;height:48px}.site-header .button{padding-inline:10px}.header-actions{gap:6px}}

/* Independently clipped pieces preserve the original editable star artwork. */
#purpose .star-assembly{display:flex;align-items:center;justify-content:center;pointer-events:none}
#purpose .star-canvas{position:relative;height:100%;aspect-ratio:1500/1390;flex:none}
#purpose .star-flight,#purpose .star-orbit{position:absolute;inset:0}
#purpose .star-orbit img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;transform-origin:var(--star-center);clip-path:var(--star-clip)}
#purpose .star-piece-1{--star-center:50.7% 24%;--star-clip:inset(4% 31.8% 59.8% 33.6%);--arrival:0s}
#purpose .star-piece-2{--star-center:78.5% 45%;--star-clip:inset(26.5% 4.4% 38% 61.6%);--arrival:.22s}
#purpose .star-piece-3{--star-center:67.7% 80%;--star-clip:inset(61.7% 15% 3% 50.7%);--arrival:.44s}
#purpose .star-piece-4{--star-center:34% 80%;--star-clip:inset(61.3% 49.3% 3% 16.6%);--arrival:.66s}
#purpose .star-piece-5{--star-center:23% 45%;--star-clip:inset(27% 59.8% 38.3% 5.3%);--arrival:.88s}
#purpose .stars-pending .star-flight{opacity:0}
#purpose .stars-active .star-flight{animation:purpose-star-arrive 2.8s cubic-bezier(.16,.7,.25,1) var(--arrival) both}
#purpose .stars-active .star-orbit{animation:purpose-star-orbit 36s linear 3.7s infinite,purpose-star-assemble 2.8s cubic-bezier(.16,.7,.25,1) var(--arrival) backwards}
#purpose .stars-active .star-orbit img{animation:purpose-star-upright 36s linear 3.7s infinite,purpose-star-counter 2.8s cubic-bezier(.16,.7,.25,1) var(--arrival) backwards}
@keyframes purpose-star-arrive{from{opacity:0;transform:translateX(45vw)}20%{opacity:1}to{opacity:1;transform:translateX(0)}}
@keyframes purpose-star-assemble{from{transform:rotate(-150deg)}to{transform:rotate(0deg)}}
@keyframes purpose-star-counter{from{transform:rotate(150deg)}to{transform:rotate(0deg)}}
@keyframes purpose-star-orbit{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes purpose-star-upright{from{transform:rotate(0deg)}to{transform:rotate(-360deg)}}
@media(prefers-reduced-motion:reduce){#purpose .star-assembly .star-flight{opacity:1}}

/* Clear contact actions and concise commitments, within the established shapes. */
.hero-actions{display:flex;align-items:center;justify-content:center;gap:24px;margin:28px 24px 0;flex-wrap:wrap}
.hero-actions .button{min-height:50px;font-weight:700;border-radius:999px;font-size:16px}
.text-link{font-size:16px;text-underline-offset:5px;padding:12px 0}
.confidence{position:relative;z-index:1;background:var(--cream);color:var(--dark);padding:64px 9.7%}
.confidence h2,.testimonials>h2{font-size:clamp(28px,3.4vw,46px);line-height:1.12;letter-spacing:-.035em;max-width:760px}
.confidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:36px}
.confidence-grid article{border-top:2px solid #a45134;padding-top:18px}
.confidence-grid h3{font-size:21px;margin:0 0 12px;font-weight:600}
.confidence-grid p{font-size:17px;line-height:1.6}
.testimonials{padding:64px 9.7%}
.testimonials[hidden]{display:none}
.testimonials [data-lp-trust-list]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:28px;margin-top:32px}
.testimonials article{border-top:1px solid var(--tan);padding-top:24px}
.testimonials blockquote{margin:0 0 20px;font-size:22px;line-height:1.5}
.testimonials article p,.testimonials article a{font-size:16px;line-height:1.6}
.testimonials article a{display:inline-block;margin-top:16px}
.contact-guidance{font-size:18px;line-height:1.6;margin-top:24px;max-width:440px}
.contact-address{display:block;width:fit-content;max-width:100%;overflow-wrap:anywhere;font-size:16px;margin-top:18px;text-underline-offset:5px;padding-block:8px}
.form-notice{font-size:16px;line-height:1.5;margin-bottom:22px;border-left:3px solid var(--tan);padding-left:16px}
:where(a,button,input,textarea):focus-visible{outline:3px solid #a45134;outline-offset:5px}
section[id]{scroll-margin-top:84px}
@media(max-width:767px){
 .site-header{background:var(--dark);border-bottom:1px solid #e5a08033}
 .hero{position:relative;height:auto;min-height:610px;padding-bottom:82px}
 .hero-copy{padding-top:165px}
 .hero h1{font-size:clamp(58px,16vw,90px);width:auto;line-height:.94;letter-spacing:-.055em;padding-inline:20px}
 .hero h1 span{max-width:none}
 .hero-copy p{font-size:20px;line-height:1.45;letter-spacing:-.4px;margin:28px 24px 0}
 .hero-actions{flex-direction:column;gap:6px;margin-top:24px}
 .hero-actions .button{width:100%;max-width:340px;padding-inline:14px}
 .confidence{padding:48px 23px}
 .confidence-grid{grid-template-columns:1fr;gap:24px;margin-top:28px}
 .about,.experience,.services,#contact{min-height:0}
 .about .mission,.experience .about-copy,.services-copy p,.aaron p{line-height:1.6;letter-spacing:0}
 .purpose-copy{overflow:clip}
 .testimonials{padding:48px 23px}
 #contact{padding-bottom:90px}
 .contact-grid{gap:36px}
 .site-footer{padding-bottom:90px}
}

/* Live Google reviews use the approved SDK, preserving full text and attribution. */
.google-reviews{padding:64px 9.7%;background:var(--cream);color:var(--dark)}
.google-reviews[hidden]{display:none}
.google-reviews>h2{font-size:clamp(28px,3.4vw,46px);line-height:1.12;letter-spacing:-.035em;margin-bottom:32px}
.google-reviews [data-lp-trust-list]>p{font-size:16px;line-height:1.6;margin:12px 0}
.google-reviews a{text-underline-offset:4px;overflow-wrap:anywhere}
.google-reviews [data-lp-trust-list]>a{display:inline-block;margin-top:20px;font-size:17px;padding-block:8px}
.google-reviews .lp-google-reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:24px;margin-top:28px}
.google-reviews .lp-google-review{min-width:0;background:var(--white);border-top:3px solid #a45134;border-radius:0 0 16px 16px;padding:24px}
.google-reviews .lp-google-review p,.google-reviews .lp-google-review>a{font-size:15px;line-height:1.6;margin-top:16px}
.google-reviews .lp-google-review>a{display:inline-block}
.google-reviews .lp-google-review blockquote{margin:20px 0;font-size:18px;line-height:1.65;white-space:pre-line;overflow-wrap:anywhere}
.google-reviews .lp-google-author{display:flex;align-items:center;gap:12px;font-size:17px;font-weight:600}
.google-reviews .lp-google-author img{width:40px;height:40px;border-radius:50%;flex-shrink:0}
.google-reviews .lp-google-attribution{padding:10px 10px 5px;width:fit-content;margin-bottom:16px}
.google-reviews .lp-google-attribution img{height:18px;width:auto;max-width:none;object-fit:contain}
.google-reviews-policies{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:28px;font-size:13px;line-height:1.6}
.google-reviews-policies a{padding-block:8px}
@media(max-width:767px){.google-reviews{padding:48px 23px}.google-reviews .lp-google-reviews{grid-template-columns:1fr}}
