:root{--menu-open-duration:900ms;--menu-close-duration:650ms;--menu-open-easing:cubic-bezier(0.16,1,0.3,1);--menu-close-easing:cubic-bezier(0.7,0,0.84,0)}.menu-open{transform:translateY(0);opacity:1;pointer-events:auto}.menu-closed{transform:translateY(-100%);opacity:1;pointer-events:none}.menu-animate.menu-open{transition:transform var(--menu-open-duration) var(--menu-open-easing),opacity calc(var(--menu-open-duration) * .7) ease-out}.menu-animate.menu-closed{transition:transform var(--menu-close-duration) var(--menu-close-easing),opacity calc(var(--menu-close-duration) * .6) ease-in}@media (min-width:1024px){.menu-closed,.menu-open{transform:none;opacity:1;pointer-events:auto}.menu-animate.menu-closed,.menu-animate.menu-open{transition:none}}:root{--enter-duration:800ms;--enter-easing:cubic-bezier(0.22,1,0.36,1);--enter-distance:30px;--enter-delay:0ms;--enter-step:100ms}.enter{animation:enter-up var(--enter-duration) var(--enter-easing) both;animation-delay:var(--enter-delay)}@keyframes enter-up{0%{opacity:0;transform:translateY(var(--enter-distance))}to{opacity:1;transform:translateY(0)}}:root{--reveal-duration:400ms;--reveal-easing:cubic-bezier(0.16,1,0.3,1);--reveal-scale:1.08;--reveal-delay:0ms;--reveal-step:70ms}.reveal{opacity:0;transform:scale(var(--reveal-scale));transform-origin:center;will-change:opacity,transform}.reveal.is-visible{animation:reveal-in var(--reveal-duration) var(--reveal-easing) both;animation-delay:var(--reveal-delay)}.reveal.is-hidden{animation:reveal-out var(--reveal-duration) var(--reveal-easing) both;animation-delay:var(--reveal-delay)}@keyframes reveal-in{0%{opacity:0;transform:scale(var(--reveal-scale))}to{opacity:1;transform:scale(1)}}@keyframes reveal-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(var(--reveal-scale))}}:root{--scroll-reveal-duration:800ms;--scroll-reveal-easing:cubic-bezier(0.22,1,0.36,1);--scroll-reveal-distance:30px;--scroll-reveal-delay:0ms;--scroll-reveal-x:0px;--scroll-reveal-y:0px}.scroll-reveal{opacity:0;transform:translate(var(--scroll-reveal-x),var(--scroll-reveal-y));will-change:opacity,transform}.scroll-reveal.is-visible{animation:scroll-reveal var(--scroll-reveal-duration) var(--scroll-reveal-easing) both;animation-delay:var(--scroll-reveal-delay)}@keyframes scroll-reveal{0%{opacity:0;transform:translate(var(--scroll-reveal-x),var(--scroll-reveal-y))}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.enter,.menu-closed,.menu-open,.reveal,.scroll-reveal{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}