.motion-ready .site-header{animation:header-in .7s cubic-bezier(.2,.8,.2,1) both}
.motion-ready .hero-kicker{animation:hero-in .75s .12s cubic-bezier(.2,.8,.2,1) both}
.motion-ready .hero-lockup{animation:hero-lockup-in 1.05s .18s cubic-bezier(.16,1,.3,1) both}
.motion-ready .hero-bottom{animation:hero-in .8s .42s cubic-bezier(.2,.8,.2,1) both}
.motion-ready .hero-texture{animation:fabric-drift 11s ease-in-out infinite alternate}
.motion-ready .hero:after{animation:grain-walk .7s steps(2,end) infinite}
.motion-ready [data-reveal]{opacity:0;transform:translateY(42px);transition:opacity .72s cubic-bezier(.2,.8,.2,1),transform .72s cubic-bezier(.2,.8,.2,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready [data-reveal].is-visible{opacity:1;transform:none}
.motion-ready .case-list article,.motion-ready .timeline article,.motion-ready .capability-grid article{transition-property:opacity,transform,background-color,color}
.motion-ready .case-list article:hover,.motion-ready .timeline article:hover,.motion-ready .capability-grid article:hover{background:var(--white);color:var(--black)}
.motion-ready .case-list article:hover p,.motion-ready .timeline article:hover p,.motion-ready .capability-grid article:hover p{color:#3f3f3f}
.button{position:relative;overflow:hidden;transition:background-color .18s,color .18s,transform .18s}
.button:hover{transform:translateY(-2px)}
.site-header nav a,.header-contact{transition:opacity .18s}
.site-header nav a:hover,.header-contact:hover{opacity:.58}
@keyframes header-in{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}
@keyframes hero-in{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes hero-lockup-in{from{opacity:0;transform:scale(.88);filter:blur(10px)}to{opacity:1;transform:scale(1);filter:blur(0)}}
@keyframes fabric-drift{0%{transform:translate3d(-1.3%,0,0) scale(1.03)}100%{transform:translate3d(1.3%,-1%,0) scale(1.07)}}
@keyframes grain-walk{0%{transform:translate(0,0)}25%{transform:translate(-1%,1%)}50%{transform:translate(1%,-1%)}75%{transform:translate(1%,1%)}100%{transform:translate(-1%,-1%)}}
@media(prefers-reduced-motion:reduce){.motion-ready *{animation:none!important;transition:none!important}.motion-ready [data-reveal]{opacity:1!important;transform:none!important}}
