.reveal{opacity:0;transform:translateY(34px);transition:opacity .75s ease,transform .75s cubic-bezier(.22,1,.36,1)}
.reveal.is-visible{opacity:1;transform:none}
.reveal-delay-1{transition-delay:.08s}.reveal-delay-2{transition-delay:.16s}.reveal-delay-3{transition-delay:.24s}
.hero-image img{animation:hero-zoom 1.6s cubic-bezier(.22,1,.36,1) both}
.hero-copy .eyebrow{animation:hero-copy-in .8s .15s ease both}.hero-copy h1{animation:hero-copy-in 1s .25s cubic-bezier(.22,1,.36,1) both}.hero-copy>p:not(.eyebrow),.hero-actions{animation:hero-copy-in .9s .4s ease both}
.work-card img{transition:transform .7s cubic-bezier(.22,1,.36,1),filter .5s ease}.work-card:hover img{transform:scale(1.035);filter:contrast(1.03)}
.button,.top-cta,.contact>a{transition:transform .25s ease,background .25s ease,color .25s ease}.button:hover,.top-cta:hover,.contact>a:hover{transform:translateY(-3px)}
@keyframes nav-in{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:none}}
@keyframes hero-zoom{from{opacity:.35;transform:scale(1.09)}to{opacity:1;transform:scale(1)}}
@keyframes hero-copy-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.topbar,.hero-image img,.hero-copy .eyebrow,.hero-copy h1,.hero-copy>p:not(.eyebrow),.hero-actions{animation:none}.reveal{opacity:1;transform:none;transition:none}.work-card img,.button,.top-cta,.contact>a{transition:none}}
footer a{color:#fff;text-decoration:none;transition:color .2s ease}footer a:hover{color:var(--warm)}
