/* All motion timing is declared here, once. Components use tokens only. */
:root{--anim-duration-legacy-8000:8s;
 --anim-duration-fast:200ms;--anim-duration-base:300ms;--anim-duration-slow:450ms;
 --anim-duration-breath:12s;--anim-duration-hero:14s;--anim-duration-line:1200ms;
 --anim-duration-underline:250ms;--anim-duration-reduced:0.01ms;
 --anim-ease-out:cubic-bezier(0.22,1,0.36,1);--anim-ease-in-out:cubic-bezier(0.65,0,0.35,1);
 --anim-delay-step:80ms;--anim-lift:-2px;--anim-fade-offset:16px;--anim-arrow-offset:3px;
}
.anim-fade-up.anim-pending{opacity:0;transform:translateY(var(--anim-fade-offset))}
.anim-fade-up{transition:opacity var(--anim-duration-slow) var(--anim-ease-out),transform var(--anim-duration-slow) var(--anim-ease-out);transition-delay:calc(var(--anim-index,0)*var(--anim-delay-step))}
.anim-fade-up.is-visible{opacity:1;transform:translateY(0)}
.anim-card-hover{transition:transform var(--anim-duration-fast) var(--anim-ease-out)}
.anim-fade-up.anim-card-hover{transition:opacity var(--anim-duration-slow) var(--anim-ease-out),transform var(--anim-duration-slow) var(--anim-ease-out);transition-delay:calc(var(--anim-index,0)*var(--anim-delay-step))}
.anim-card-hover:hover{transform:translateY(var(--anim-lift));border-color:#7A8450!important}
.anim-arrow{display:inline-block;transition:transform var(--anim-duration-fast) var(--anim-ease-out)}
a:hover .anim-arrow,.anim-card-hover:hover .anim-arrow,a:focus-visible .anim-arrow{transform:translateX(var(--anim-arrow-offset))}
.anim-underline{position:relative;display:inline-block}
.anim-underline::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:#A87122;transform:scaleX(0);transform-origin:left;transition:transform var(--anim-duration-underline) var(--anim-ease-out)}
a:hover .anim-underline,a:focus-visible .anim-underline{text-decoration:none}
a:hover .anim-underline::after,a:focus-visible .anim-underline::after{transform:scaleX(1)}
.anim-breath.is-running{animation:lw-breath var(--anim-duration-breath) var(--anim-ease-in-out) 1}
@keyframes lw-breath{0%,100%{transform:scale(.72)}50%{transform:scale(1)}}
.is-home .home-organic-art{animation:lw-hero var(--anim-duration-hero) var(--anim-ease-in-out) infinite alternate;transform-origin:right center}
@keyframes lw-hero{from{transform:translateY(0) scale(1)}to{transform:translateY(-16px) scale(1.015)}}
.anim-line{transform:scaleY(0);transform-origin:top;transition:transform var(--anim-duration-line) var(--anim-ease-out)}
.anim-line.is-visible{transform:scaleY(1)}
.anim-progress{transform:scaleX(var(--reading-progress,0));transform-origin:left}
.reading-progress{background:#7A8450}
/* Motion preferences belong here. No component repeats this media query. */
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:var(--anim-duration-reduced)!important;animation-iteration-count:1!important;transition-duration:var(--anim-duration-reduced)!important;transition-delay:0s!important;scroll-behavior:auto!important}
 .anim-fade-up.anim-pending,.anim-fade-up,.reveal,.directory-card.reveal-ready{opacity:1!important;transform:none!important;filter:none!important}
 .anim-line{transform:scaleY(1)!important}
 .anim-breath,.is-home .home-organic-art,.emotion-orbit::before,.emotion-orbit::after{animation:none!important;transform:none!important}
 .anim-card-hover:hover,.anim-card-hover:hover .anim-arrow,a:hover .anim-arrow,a:focus-visible .anim-arrow{transform:none!important}
 .anim-underline::after{transition:none!important}
}

@supports(animation-timeline:scroll()){.native-scroll-progress{animation:lw-progress var(--anim-duration-base) linear both;animation-timeline:scroll(root)}@keyframes lw-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}}
