/* Homepage-only progressive motion. Content is visible without JavaScript. */
.home .hero-collage-stage{overflow:clip}
/* The stage also has hero-intro; its text spacing must not offset the desktop hero. */
@media(min-width:681px){.home .hero-collage-stage{margin-top:0}}
.home .hero-collage-image{animation:inri-hero-breathe 14s ease-in-out infinite;animation-play-state:paused;transform-origin:right center}
.home .hero-breathing .hero-collage-image{animation-play-state:running}
.home .hero-intro .hero-content>.eyebrow{animation:inri-hero-welcome 450ms ease-out both}
.home .hero-intro .hero-display-title{animation:inri-hero-welcome 450ms ease-out 100ms both}
.home .hero-intro .hero-actions{animation:inri-hero-welcome 450ms ease-out 250ms both}
@keyframes inri-hero-breathe{0%,100%{scale:1}50%{scale:1.02}}
@keyframes inri-hero-welcome{from{translate:0 8px;opacity:.85}to{translate:0 0;opacity:1}}
@media(max-width:680px){
 .home .site-header.motion-header{position:fixed;transition:translate 240ms ease;background:#123e37;box-shadow:0 2px 12px #001f1a22}
 .home .site-header.motion-header.header-away{translate:0 -110%}
 .home .site-header.motion-header:focus-within{translate:0 0}
}
.home .motion-reveal{transition:opacity 450ms ease var(--motion-delay,0ms),translate 450ms cubic-bezier(.2,.65,.3,1) var(--motion-delay,0ms)}
.home .motion-reveal.motion-pending{opacity:0;translate:0 18px}
.home .motion-photo{transition:scale 800ms ease;transform-origin:center}
.home .motion-photo.motion-pending{scale:1.025}
.home #base,.home #about,.home .care-reviews-grid{overflow:clip}
.home .motion-line::before,.home .motion-line::after{transform-origin:center;transition:scale 500ms ease}
.home .motion-line.motion-pending::before,.home .motion-line.motion-pending::after{scale:0 1}
.home .steps-grid .step-number>span{transition:scale 350ms ease}
.home .steps-grid .motion-pending .step-number>span{scale:.94}
.home :is(.button,.header-phone,.mobile-team-cta,.service-card .text-link){transition:scale 120ms ease,background-color 120ms ease,border-color 120ms ease}
.home :is(.button,.header-phone,.mobile-team-cta,.service-card .text-link):active{scale:.98;border-color:#bda170}
.home #faq .motion-faq>summary::after{content:'';width:14px;height:14px;top:25px;background:linear-gradient(#80663d,#80663d) center/100% 2px no-repeat,linear-gradient(#80663d,#80663d) center/2px 100% no-repeat;transition:transform 240ms ease,background-size 240ms ease}
.home #faq .motion-faq[open]>summary::after{transform:rotate(180deg);background-size:100% 2px,2px 0}
.home #details-dialog[open]{animation:inri-dialog-in 180ms ease-out}
.home #details-dialog[open]::backdrop{animation:inri-backdrop-in 180ms ease-out}
@keyframes inri-dialog-in{from{opacity:0;scale:.98}to{opacity:1;scale:1}}
@keyframes inri-backdrop-in{from{opacity:0}to{opacity:1}}
.mobile-icon-wrap{display:contents}
.mobile-step-ring{display:none}
@media(max-width:680px){
 .home #services{overflow:clip}
 .home .mobile-card.motion-reveal,.home .mobile-step.motion-reveal{transition:none;opacity:1;translate:none}
 .home .mobile-card{--card-from:-30px}
 .home .mobile-card:nth-child(even){--card-from:30px}
 .home .mobile-card.mobile-accent-play{animation:inri-mobile-card 550ms cubic-bezier(.2,.65,.3,1) var(--accent-delay) both}
 .home .mobile-icon-wrap{display:inline-flex;position:relative;isolation:isolate;flex-shrink:0}
 .home .mobile-icon-wrap::before{content:'';position:absolute;width:44px;height:44px;left:50%;top:50%;margin:-22px;border-radius:50%;background:radial-gradient(circle,#d8b96d80, #d8b96d22 60%,transparent 72%);opacity:0;z-index:-1;pointer-events:none}
 .home .mobile-accent-play .mobile-icon-wrap::before{animation:inri-icon-glow 650ms ease-out var(--accent-delay) both}
 .home .mobile-step .step-number>span{position:relative;transition:none;scale:1}
 .home .mobile-step-ring{display:block;position:absolute;inset:-5px;width:calc(100% + 10px);height:calc(100% + 10px);overflow:visible;pointer-events:none;fill:none;stroke:#bda170;stroke-width:1.5;rotate:-90deg;opacity:0}
 .home .mobile-step.mobile-accent-play .step-number>span{animation:inri-step-pop 400ms ease-out both}
 .home .mobile-step.mobile-accent-play .mobile-step-ring{animation:inri-step-ring 650ms ease-out both}
 .home .mobile-leaves.mobile-accent-play::before{animation:inri-leaf-left 750ms ease-out both}
 .home .mobile-leaves.mobile-accent-play::after{animation:inri-leaf-right 750ms ease-out both}
 .home #details-dialog{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:100%;max-height:85vh;max-height:85dvh;border-radius:24px 24px 0 0;padding:54px 22px calc(20px + env(safe-area-inset-bottom));overflow:hidden;background:var(--cream);font-size:16px;box-sizing:border-box}
 .home #details-dialog[open]{display:flex;flex-direction:column;animation:inri-sheet-in 280ms ease-out}
 .home #dialog-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 3px}
 .home #details-dialog>.phone-button{flex-shrink:0;align-self:flex-start;margin-top:16px}
 .home #details-dialog .dialog-close{width:44px;height:44px;top:7px;right:10px}
}
@keyframes inri-mobile-card{from{opacity:0;translate:var(--card-from) 0}to{opacity:1;translate:0 0}}
@keyframes inri-icon-glow{0%{opacity:0;scale:.7}25%{opacity:1}100%{opacity:0;scale:1.15}}
@keyframes inri-step-pop{from{scale:.88}to{scale:1}}
@keyframes inri-step-ring{from{opacity:1;stroke-dasharray:100;stroke-dashoffset:100}to{opacity:1;stroke-dasharray:100;stroke-dashoffset:0}}
@keyframes inri-leaf-left{from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}
@keyframes inri-leaf-right{from{opacity:0;clip-path:inset(0 0 0 100%)}to{opacity:1;clip-path:inset(0)}}
@keyframes inri-sheet-in{from{opacity:0;translate:0 48px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){
 .home .hero-collage-image{animation:none;scale:1}
 .home .hero-intro :is(.eyebrow,.hero-display-title,.hero-actions){animation:none;translate:none;opacity:1}
 .home .site-header.motion-header{translate:none}
 .home .motion-pending{opacity:1;translate:none;scale:1}
 .home .motion-line::before,.home .motion-line::after,.home .step-number>span{scale:1!important}
}
