@keyframes nav-viewport-in{0%{opacity:0;transform:translateY(-4px)scale(.97)}}@keyframes nav-viewport-out{to{opacity:0;transform:translateY(-4px)scale(.97)}}.nav-menu-viewport{transform-origin:top}.nav-menu-viewport[data-state=open]{animation:nav-viewport-in var(--duration-base) var(--ease-out)}.nav-menu-viewport[data-state=closed]{animation:nav-viewport-out var(--duration-fast) var(--ease-in)}@keyframes nav-from-end{0%{opacity:0;transform:translate(3rem)}}@keyframes nav-from-start{0%{opacity:0;transform:translate(-3rem)}}@keyframes nav-to-end{to{opacity:0;transform:translate(3rem)}}@keyframes nav-to-start{to{opacity:0;transform:translate(-3rem)}}.nav-menu-content[data-motion=from-end]{animation:nav-from-end var(--duration-base) var(--ease-out)}.nav-menu-content[data-motion=from-start]{animation:nav-from-start var(--duration-base) var(--ease-out)}.nav-menu-content[data-motion=to-end]{animation:nav-to-end var(--duration-base) var(--ease-in)}.nav-menu-content[data-motion=to-start]{animation:nav-to-start var(--duration-base) var(--ease-in)}@keyframes nav-fade-in{0%{opacity:0}}@keyframes nav-fade-out{to{opacity:0}}.nav-menu-indicator[data-state=visible]{animation:nav-fade-in var(--duration-fast) ease}.nav-menu-indicator[data-state=hidden]{animation:nav-fade-out var(--duration-fast) ease}@media (prefers-reduced-motion:reduce){.nav-menu-viewport,.nav-menu-content,.nav-menu-indicator{animation:none!important}}
@keyframes scene-bob{0%{transform:rotate(-2deg)translateY(-4px)}to{transform:rotate(-2deg)translateY(4px)}}.scene-tilt{animation:6s ease-in-out infinite alternate scene-bob}@keyframes scene-dot{0%,to{opacity:.5;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.scene-dot{animation:.9s ease-in-out infinite scene-dot}@media (prefers-reduced-motion:reduce){.scene-tilt{animation:none;transform:rotate(-2deg)}.scene-dot{animation:none}}
