@view-transition{navigation:auto}
::view-transition-old(root){animation:ac-page-out .18s ease both}
::view-transition-new(root){animation:ac-page-in .34s ease both}
@keyframes ac-page-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes ac-page-out{to{opacity:0}}

html{background:var(--ink)}
body{background:var(--paper)}
.site-header{box-shadow:0 10px 35px rgba(0,0,0,.12)}
.site-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.35;transform:scaleX(.35);transform-origin:center;transition:transform .45s ease,opacity .45s ease}
.site-header:hover:after{opacity:.65;transform:scaleX(1)}

.section-module{position:relative;isolation:isolate}
.section-module:before{content:attr(data-module);position:absolute;top:31px;right:max(24px,calc((100vw - var(--max))/2));z-index:2;pointer-events:none;color:var(--ink);font:900 11px/1 Inter,sans-serif;letter-spacing:.18em;opacity:.38}
.section-module:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(23,24,23,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(23,24,23,.035) 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(to bottom,transparent,black 18%,black 82%,transparent);opacity:.7}
.section-module>*{position:relative;z-index:1}
.junk-projects.section-module:before,.estimate.section-module:before{color:#fff}
.junk-projects.section-module:after,.estimate.section-module:after{background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px)}

.button,.header-cta,.service-card,.junk-service-feature,.junk-project-grid a,.area-check-button,.projects-link{position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}
.button:before,.header-cta:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.18) 48%,transparent 70%);transform:translateX(-130%);transition:transform .55s ease;pointer-events:none}
.button:hover:before,.header-cta:hover:before{transform:translateX(130%)}
.button:active,.header-cta:active,.service-card:active,.junk-service-feature:active{transform:translateY(1px) scale(.985)}
.button:focus-visible,.header-cta:focus-visible,.service-card:focus-visible,.junk-service-feature:focus-visible,.junk-project-grid a:focus-visible,.projects-link:focus-visible,.area-check-button:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.button[aria-busy="true"]{padding-right:52px;pointer-events:none}
.button[aria-busy="true"]:after{content:"";position:absolute;right:21px;width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ac-spin .7s linear infinite}
@keyframes ac-spin{to{transform:rotate(1turn)}}

.service-card,.junk-service-feature{transform:perspective(900px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg)) translateY(var(--card-y,0));transform-style:preserve-3d;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.service-card:before,.junk-service-feature:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(360px circle at var(--pointer-x,50%) var(--pointer-y,50%),rgba(244,185,31,.13),transparent 58%);opacity:0;transition:opacity .25s}
.service-card:hover:before,.junk-service-feature:hover:before{opacity:1}
.service-card:hover{--card-y:-5px;border-color:rgba(244,185,31,.62);box-shadow:0 20px 44px rgba(20,22,18,.1)}
.junk-service-feature:hover{--card-y:-4px;box-shadow:0 24px 58px rgba(0,0,0,.2)}

.hero-card{width:300px;padding:22px 24px 24px;clip-path:polygon(0 0,100% 0,100% 100%,16px 100%,0 calc(100% - 16px))}
.hero-card strong{font-size:22px;margin:9px 0 17px}
.hero-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:var(--ink);transform:scaleX(.28);transform-origin:left;transition:transform .4s ease}
.hero-card:hover:before{transform:scaleX(1)}

.process .steps{position:relative;overflow:hidden;background:#fff}
.process .steps:before{content:"";position:absolute;left:8%;right:8%;top:56px;height:2px;background:linear-gradient(90deg,var(--gold),var(--gold));transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.22,.7,.24,1)}
.process .steps.visible:before{transform:scaleX(1)}
.process .steps article{position:relative;background:rgba(255,255,255,.92)}
.process .steps b{position:relative;z-index:1;box-shadow:0 0 0 8px #fff}
.faq-list details{transition:border-color .25s ease,background .25s ease}
.faq-list details[open]{border-color:var(--gold);background:rgba(244,185,31,.055)}
.faq-list summary:after{transition:transform .25s ease}
.faq-list details[open] summary:after{transform:rotate(45deg)}

.estimate-form{position:relative}
.estimate-form:before,.area-check-panel:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--gold);border-radius:inherit;transform:scaleX(0);transform-origin:left;opacity:0}
.estimate-form[aria-busy="true"]:before,.area-check-panel:has(form[aria-busy="true"]):before{opacity:1;animation:ac-progress 1.15s ease-in-out infinite}
@keyframes ac-progress{0%{transform:scaleX(.08)}50%{transform:scaleX(.72)}100%{transform:translateX(100%) scaleX(.12)}}
.field-error:not(:empty){padding:11px 13px;border-left:3px solid currentColor;background:rgba(23,24,23,.045)}
#estimate-status:not(:empty),.area-check-status:not(:empty){border-radius:7px}

.assistant-launch{transition:bottom .3s ease,width .3s ease,padding .3s ease,transform .2s ease,border-color .2s ease}
.assistant-launch.hero-avoid{bottom:204px}
.assistant-launch.is-compact{width:58px;min-width:58px;padding:8px}
.assistant-launch.is-compact>span:last-child{display:none}
.assistant-launch.is-compact .assistant-launch-mark{width:40px;height:40px}
.assistant-panel{max-height:var(--assistant-height,calc(100dvh - 120px))}

.before-after-stage{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--ink)}
.before-after-stage img{width:100%;height:100%;object-fit:cover}
.before-after-before{position:absolute;inset:0;width:50%;overflow:hidden}
.before-after-before img{width:100vw;max-width:none}
.before-after-stage input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize}
.before-after-handle{position:absolute;left:50%;top:50%;translate:-50% -50%;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--gold);color:var(--ink);font-weight:900;pointer-events:none}
.project-video video{display:block;width:100%;background:var(--ink);aspect-ratio:16/9;object-fit:cover}

@media(max-width:980px){.assistant-launch.hero-avoid{bottom:118px}.hero-card{width:280px}}
@media(max-width:700px){.section-module:before{top:20px;right:20px}.section-module:after{background-size:38px 38px}.site-header:hover:after{transform:scaleX(.4)}.service-card,.junk-service-feature{transform:none!important}.service-card:hover{border-color:var(--line);box-shadow:none}.service-card:before,.junk-service-feature:before{display:none}.process .steps:before{left:49px;right:auto;top:50px;bottom:50px;width:2px;height:auto;transform:scaleY(0);transform-origin:top}.process .steps.visible:before{transform:scaleY(1)}.process .steps article{padding-left:78px}.process .steps b{position:absolute;left:27px;top:28px}.assistant-launch.hero-avoid{bottom:calc(74px + env(safe-area-inset-bottom))}.assistant-launch.is-compact{width:54px;min-width:54px;padding:6px}.hero-card{display:none}.junk-project-grid span{font-size:13px}.estimate-form{box-shadow:0 20px 55px rgba(0,0,0,.2)}}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root),.site-header:after,.button:before,.header-cta:before,.service-card,.junk-service-feature,.process .steps:before,.assistant-launch,.estimate-form:before,.area-check-panel:before{animation:none!important;transition:none!important}.process .steps:before{transform:none}.button[aria-busy="true"]:after{animation:none;border-right-color:currentColor}}
