/* Soft entrance choreography, inspired by the reference's image-led scrolling rhythm. */
@keyframes solace-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes solace-photo-enter{from{opacity:0;transform:translateY(15px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes solace-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.motion-enabled .hero-copy>*{animation:solace-enter .8s cubic-bezier(.2,.65,.3,1) both}
.motion-enabled .hero-copy>:nth-child(2){animation-delay:.09s}
.motion-enabled .hero-copy>:nth-child(3){animation-delay:.18s}
.motion-enabled .hero-copy>:nth-child(4){animation-delay:.27s}
.motion-enabled .hero-copy>:nth-child(5){animation-delay:.34s}
.motion-enabled .hero-photo{animation:solace-photo-enter 1.05s cubic-bezier(.2,.65,.3,1) .12s both}
.motion-enabled .hero-main{translate:0 var(--photo-drift,0px);transition:translate .15s linear}
.motion-enabled .hero-inset{animation:solace-photo-enter 1s cubic-bezier(.2,.65,.3,1) .35s both}
.motion-enabled .photo-note{animation:solace-enter .8s ease .6s both,solace-float 7s ease-in-out 1.4s infinite}
.motion-enabled .page-intro>div>*{animation:solace-enter .75s cubic-bezier(.2,.65,.3,1) both}
.motion-enabled .page-intro>div>:nth-child(2){animation-delay:.08s}
.motion-enabled .page-intro>div>:nth-child(3){animation-delay:.16s}
.motion-enabled .intro-photo{animation:solace-photo-enter .95s cubic-bezier(.2,.65,.3,1) .12s both}
.motion-enabled .reveal-pending{opacity:0;transform:translateY(24px)}
.motion-enabled .reveal-visible{animation:solace-enter .8s cubic-bezier(.2,.65,.3,1) var(--reveal-delay,0ms) both}
.motion-enabled .service-card{transition:transform .35s cubic-bezier(.2,.65,.3,1),box-shadow .35s,border-color .35s}
.motion-enabled .service-photo,.motion-enabled .intro-photo img,.motion-enabled .about-split img{transition:scale .7s cubic-bezier(.2,.65,.3,1)}
.motion-enabled .button span,.motion-enabled .header-cta span,.motion-enabled .text-link span,.motion-enabled .card-arrow{display:inline-block;transition:transform .3s cubic-bezier(.2,.65,.3,1)}
@media(hover:hover) and (pointer:fine){
 .motion-enabled .service-card:hover{animation-fill-mode:backwards;transform:translateY(-7px);border-color:#a0bf78}
 .motion-enabled .service-card:hover .service-photo{scale:1.035}
 .motion-enabled .about-split figure:hover img,.motion-enabled .intro-photo:hover img{scale:1.015}
 .motion-enabled .button:hover span,.motion-enabled .header-cta:hover span,.motion-enabled .service-card:hover .card-arrow{transform:translate(2px,-2px)}
 .motion-enabled .text-link:hover span{transform:translateX(4px)}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*:before,*:after{animation:none!important;transition:none!important}
 .reveal-pending{opacity:1!important;transform:none!important}
 .hero-main{translate:none!important}
}
@keyframes solace-word-in{from{opacity:0;transform:translateY(105%) rotate(2deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes solace-text-sheen{from{background-position:100% 50%}to{background-position:0% 50%}}
.motion-enabled .hero-copy>h1.text-animate,.motion-enabled .page-intro>div>h1.text-animate{animation:none}
.text-animate .word-mask{display:inline-block;vertical-align:bottom;overflow:hidden;padding:.02em .06em .16em;margin:-.02em -.06em -.16em;max-width:100%}
.text-animate .word-inner{display:inline-block;opacity:1;transform:none}
.motion-enabled .text-animate:not(.text-in) .word-inner{opacity:0;transform:translateY(105%)}
.motion-enabled .text-in .word-inner{animation:solace-word-in .8s cubic-bezier(.22,1,.36,1) var(--word-delay,0ms) both}
@supports(background-clip:text){
 .text-in em .word-inner{background-image:linear-gradient(110deg,#17552f 10%,#457b31 45%,#155532 80%);background-size:220% 100%;background-clip:text;-webkit-background-clip:text;color:transparent}
 .band-dark .text-in em .word-inner{background-image:linear-gradient(110deg,#d0e9a9 10%,#f4f9d9 45%,#c1dfa0 80%)}
 .motion-enabled .text-in em .word-inner{animation:solace-word-in .8s cubic-bezier(.22,1,.36,1) var(--word-delay,0ms) both,solace-text-sheen 4s ease .8s 2}
}
.motion-reduced *,.motion-reduced *:before,.motion-reduced *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.motion-reduced .reveal-pending{opacity:1!important;transform:none!important}
@media(prefers-reduced-motion:reduce){.word-inner{opacity:1!important;transform:none!important;animation:none!important}}
@media print{.reveal-pending,.word-inner{opacity:1!important;transform:none!important}*{animation:none!important;transition:none!important}}
