:root{--motion-fast:180ms;--motion-base:320ms;--motion-slow:720ms;--ease-premium:cubic-bezier(.2,.65,.3,1);--reveal-distance:22px}
.motion-item{--motion-delay:0ms}
[data-motion-order="1"]{--motion-delay:70ms}[data-motion-order="2"]{--motion-delay:140ms}[data-motion-order="3"]{--motion-delay:210ms}[data-motion-order="4"]{--motion-delay:280ms}[data-motion-order="5"]{--motion-delay:350ms}
.motion-enabled .motion-item{opacity:0;transform:translateY(var(--reveal-distance));transition:opacity var(--motion-slow) var(--ease-premium) var(--motion-delay),transform var(--motion-slow) var(--ease-premium) var(--motion-delay)}
.motion-enabled .motion-item.reveal-in{opacity:1;transform:none}
.motion-enabled .motion-item .eyebrow::before{transform:scaleX(.35);transform-origin:left;transition:transform var(--motion-slow) var(--ease-premium)}
.motion-enabled .motion-item.reveal-in .eyebrow::before{transform:scaleX(1)}
.process-grid{position:relative}
@media(min-width:1101px){
 .process-grid::before{content:'';position:absolute;inset:-16px 0 auto;height:1px;background:var(--line);transform-origin:left;transition:transform var(--motion-slow) var(--ease-premium)}
 .motion-enabled .process-grid:not(.reveal-in)::before{transform:scaleX(0)}
 .motion-enabled .process-grid.motion-item{transform:none;opacity:1}
}
.motion-enabled .faith-moment cite{opacity:0;transition:opacity var(--motion-slow) var(--ease-premium) 180ms}
.motion-enabled .faith-moment .reveal-in cite{opacity:1}
.about-pull{font-size:clamp(1.5rem,2.2vw,2rem);line-height:1.35;max-width:26rem}
.button,.text-link,.criteria>div,.flexible-uses>li{transition:color var(--motion-base),background-color var(--motion-base),border-color var(--motion-base)}
.button .arrow,.text-link .arrow{transition:transform var(--motion-base) var(--ease-premium)}
.text-link{position:relative}
.text-link::after{content:'';position:absolute;inset:auto 0 -1px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform var(--motion-base) var(--ease-premium)}
.text-link:focus-visible::after{transform:scaleX(1)}
.header-panel nav:not(.languages) a[aria-current="location"]{border-bottom-color:var(--bronze)}
@media(hover:hover) and (pointer:fine){
 .button:hover .arrow,.text-link:hover .arrow{transform:translateX(4px)}
 .text-link:hover::after{transform:scaleX(1)}
 .criteria>div:hover,.flexible-uses>li:hover{border-color:var(--bronze);color:var(--navy)}
 .criteria>div:hover .index{color:var(--navy)}
 .service h3{transition:transform var(--motion-base) var(--ease-premium)}
 .service-number{opacity:.8;transition:opacity var(--motion-base),border-color var(--motion-base)}
 .service p{opacity:.9;transition:opacity var(--motion-base)}
 .service:hover h3{transform:translateX(3px)}
 .service:hover .service-number,.service:hover p{opacity:1;border-color:var(--bronze)}
}
@keyframes hero-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes hero-settle{from{transform:scale(1.018)}to{transform:scale(1)}}
@keyframes scroll-line{0%{transform:scaleY(.55);opacity:.55}100%{transform:scaleY(1);opacity:1}}
.motion-enabled .hero-copy>.eyebrow,.motion-enabled .hero-copy h1 span,.motion-enabled .hero-copy>.lead,.motion-enabled .hero-copy>.actions{animation:hero-enter var(--motion-slow) var(--ease-premium) both}
.motion-enabled .hero-copy h1 span:first-child{animation-delay:70ms}
.motion-enabled .hero-copy h1 span+span{animation-delay:140ms}
.motion-enabled .hero-copy>.lead{animation-delay:210ms}
.motion-enabled .hero-copy>.actions{animation-delay:280ms}
@media(min-aspect-ratio:6/5) and (min-width:768px){.motion-enabled .hero-stage>.project-figure img{animation:hero-settle 1400ms var(--ease-premium) both}}
.motion-enabled .hero-scroll>span[aria-hidden]{animation:scroll-line 1400ms var(--ease-premium) alternate 2}
@media(max-width:767px){
 :root{--reveal-distance:12px;--motion-slow:560ms}
 .motion-item[data-motion-order]{--motion-delay:0ms}
}
@media(prefers-reduced-motion:reduce){
 .motion-item,.motion-enabled .motion-item,.motion-enabled .faith-moment cite{opacity:1!important;transform:none!important;transition:none!important}
 .hero-copy>*{animation:none!important}
 .text-link::after,.process-grid::before{transform:none!important}
}
