.will-reveal{opacity:0;transform:translate3d(0,52px,0) scale(.985);transition:opacity 1s ease,transform 1.2s cubic-bezier(.16,1,.3,1);will-change:transform,opacity}
.will-reveal.is-revealed{opacity:1;transform:translate3d(0,0,0) scale(1)}
.mini-project:nth-child(2),.tool-list article:nth-child(even),.credential-grid article:nth-child(even){transition-delay:.16s}.tool-list article:nth-child(3),.credential-grid article:nth-child(3){transition-delay:.24s}.tool-list article:nth-child(4),.credential-grid article:nth-child(4){transition-delay:.32s}
.hero-art img{animation:hero-pan 15s ease-in-out infinite alternate}.project-visual img{animation:project-pan 13s ease-in-out infinite alternate}.mini-project img{animation:project-pan 16s ease-in-out infinite alternate}
button,.scroll-cue,.nav-cta{transition:transform .22s cubic-bezier(.16,1,.3,1),background-color .22s ease,color .22s ease,box-shadow .22s ease}
button:hover,button:focus-visible,.scroll-cue:hover,.scroll-cue:focus-visible,.nav-cta:hover,.nav-cta:focus-visible{transform:translateY(-3px) scale(1.045);box-shadow:0 10px 22px rgba(0,0,0,.18)}
button:active,.scroll-cue:active,.nav-cta:active{transform:translateY(0) scale(.98)}
@keyframes hero-pan{from{object-position:46% 47%}to{object-position:54% 54%}}
@keyframes project-pan{from{transform:scale(1.02) translate3d(-.8%,.4%,0)}to{transform:scale(1.08) translate3d(.8%,-.5%,0)}}
@media (prefers-reduced-motion: reduce){.will-reveal{opacity:1;transform:none;transition:none}.hero-art img,.project-visual img,.mini-project img{animation:none}button,.scroll-cue,.nav-cta{transition:none}}
