html.motion-ready .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1);transition-delay:var(--delay,0ms)}
html.motion-ready .reveal.is-visible{opacity:1;transform:none}
html.motion-ready .hero-reveal{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1);transition-delay:var(--delay,0ms)}
html.motion-ready.page-ready .hero-reveal{opacity:1;transform:none}
html.motion-ready .hero:before{animation:hero-breathe 16s ease-in-out infinite alternate}
html.motion-ready .inner-hero{animation:banner-settle 1.2s ease-out both}
@keyframes hero-breathe{from{transform:scale(1.015)}to{transform:scale(1.045)}}
@keyframes banner-settle{from{background-position:54% 50%;opacity:.72}to{background-position:50% 50%;opacity:1}}
.project,.all-project{transition:transform .45s cubic-bezier(.22,.61,.36,1),box-shadow .45s,opacity .35s}.project:hover,.all-project:hover{transform:translateY(-6px);box-shadow:0 22px 42px rgba(0,0,0,.22)}
.site-footer .brand img{filter:brightness(0) invert(1)}
 .project-meta,.all-project-meta{display:none}
html.motion-ready .all-project.filter-reveal{opacity:0;transform:translateY(20px);transition:opacity .55s cubic-bezier(.22,.61,.36,1),transform .55s cubic-bezier(.22,.61,.36,1);transition-delay:var(--filter-delay,0ms)}
html.motion-ready .all-project.filter-reveal.filter-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html.motion-ready .reveal,html.motion-ready .hero-reveal{opacity:1;transform:none;transition:none}html.motion-ready .hero:before,html.motion-ready .inner-hero{animation:none}.project,.all-project{transition:none}}
