/* Homepage rhythm: short entrances, quiet interaction feedback, no new loops. */
body.home{--home-motion-ease:cubic-bezier(.22,1,.36,1)}
body.home main>section:not([data-motion-banner]) .reveal,
body.home .intro-strip .reveal{opacity:1;transform:none;transition:none}
body.home [data-home-reveal]{opacity:1}
body.home .intro-strip>span{transition:color .2s ease}
body.home .direction-tabs button{position:relative;transition:background .24s ease,color .24s ease}
body.home .direction-panel{animation:none!important}
body.home .direction-tabs button::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--home-motion-ease);pointer-events:none}
body.home .direction-tabs button[aria-selected=true]::after{transform:scaleX(1)}
body.home .direction-tabs button>svg{transition:transform .25s ease}
body.home .direction-links a{transition:background .2s ease,color .2s ease,border-color .2s ease}
body.home .direction-links a>svg{transition:transform .25s var(--home-motion-ease)}
body.home .service-card{transition:transform .3s var(--home-motion-ease),border-color .3s ease,box-shadow .3s ease}
body.home .card-visual img{transition:transform .65s var(--home-motion-ease)}
body.home .card-link svg{transition:transform .25s var(--home-motion-ease)}
body.home .service-search{transition:border-color .2s ease}
body.home .service-search:focus-within{border-color:var(--violet)}
body.home .filter,body.home .service-view button{transition:color .2s ease,background-color .2s ease,border-color .2s ease}
body.home .story-image img{transform:translateY(clamp(-10px,var(--parallax,0px),10px));transition:transform .45s ease-out}
body.home .story-copy .btn{transition:background .22s ease,color .22s ease,border-color .22s ease,transform .25s var(--home-motion-ease)}
body.home .process-step{position:relative}
body.home .process-step::before{content:"";position:absolute;top:-1px;left:0;width:82px;height:2px;background:linear-gradient(90deg,var(--violet),var(--gold));transform:scaleX(1);transform-origin:left;pointer-events:none}
body.home.home-motion-ready .process-step:not(.home-revealed)::before{transform:scaleX(.22)}
body.home.home-motion-ready .process-step::before{transition:transform .65s var(--home-motion-ease)}
body.home .process-step .num{transition:color .25s ease}
body.home .results-strip h2::after{content:"";display:block;width:110px;height:2px;margin-top:26px;background:linear-gradient(90deg,var(--gold),#f3d8e880);transform:scaleX(1);transform-origin:left}
body.home.home-motion-ready .results-strip [data-home-reveal]:not(.home-revealed) h2::after{transform:scaleX(.25)}
body.home.home-motion-ready .results-strip h2::after{transition:transform .7s var(--home-motion-ease)}
body.home .four-card{position:relative;transition:border-color .25s ease}
body.home .four-card::before{content:"";position:absolute;left:0;top:-1px;width:72px;height:2px;background:var(--violet);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--home-motion-ease);pointer-events:none}
body.home main>section:not([data-motion-banner]) .text-link{background-image:linear-gradient(currentColor,currentColor);background-size:0 1px;background-repeat:no-repeat;background-position:left bottom;transition:background-size .25s var(--home-motion-ease),color .2s ease}
body.home main>section:not([data-motion-banner]) .text-link svg{transition:transform .25s var(--home-motion-ease)}
body.home .contact-call,body.home .contact-save{transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}
body.home .contact-call svg,body.home .contact-save>svg:last-child{transition:transform .25s var(--home-motion-ease)}
body.home .contact-hub-form{transition:border-color .25s ease,box-shadow .25s ease}
body.home .contact-hub-form:focus-within{border-color:#b49bc4;box-shadow:0 0 0 3px #7944a60c}
body.home .site-footer a:not(.brand){transition:color .2s ease,text-decoration-color .2s ease}
@media(hover:hover) and (pointer:fine){
 body.home .direction-tabs button:hover>svg,body.home .direction-links a:hover>svg{transform:translate(2px,-2px)}
 body.home .service-card:hover{transform:translateY(-3px);border-color:var(--violet)}
 body.home .service-card:hover .card-visual img{transform:scale(1.025)}
 body.home .service-card:hover .card-link svg{transform:translateX(3px)}
 body.home .four-card:hover{border-color:var(--violet)}
 body.home .four-card:hover::before{transform:scaleX(1)}
 body.home main>section:not([data-motion-banner]) .text-link:hover{background-size:100% 1px}
 body.home main>section:not([data-motion-banner]) .text-link:hover svg{transform:translateX(3px)}
 body.home .contact-call:hover svg,body.home .contact-save:hover>svg:last-child{transform:translate(2px,-2px)}
}
body.home .four-card:focus-within::before{transform:scaleX(1)}
body.home .service-card:focus-visible{border-color:var(--violet)}
body.home main>section:not([data-motion-banner]) .text-link:focus-visible{background-size:100% 1px}
@media(max-width:650px){
 body.home .story-image img{transform:none}
 body.home .process-step::before{width:64px}
 body.home .results-strip h2::after{width:86px;margin-top:21px}
}
.motion-paused body.home main>section:not([data-motion-banner]) *,
.motion-paused body.home main>section:not([data-motion-banner]) *::before,
.motion-paused body.home main>section:not([data-motion-banner]) *::after,
.motion-paused body.home .intro-strip *{animation:none!important;transition:none!important}
.motion-paused body.home .story-image img{transform:none!important}
.motion-paused body.home .process-step::before,.motion-paused body.home .results-strip h2::after{transform:scaleX(1)!important}
@media(prefers-reduced-motion:reduce){
 body.home main>section:not([data-motion-banner]) *,body.home main>section:not([data-motion-banner]) *::before,body.home main>section:not([data-motion-banner]) *::after,body.home .intro-strip *,body.home .site-footer *{animation:none!important;transition:none!important}
 body.home .story-image img{transform:none!important}
 body.home .process-step::before,body.home .results-strip h2::after{transform:scaleX(1)!important}
}
@media print{body.home [data-home-reveal]{opacity:1!important;transform:none!important}body.home .process-step::before,body.home .results-strip h2::after,body.home .four-card::before{display:none}}
