@keyframes float-scene{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-12px) rotate(-6deg)}}
@keyframes float-label{0%,100%{translate:0 0}50%{translate:0 -8px}}
@keyframes hero-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes wave-breathe{0%,100%{transform:scaleY(.8)}50%{transform:scaleY(1)}}
@keyframes loading-pulse{0%,100%{opacity:.6}50%{opacity:1}}
@media(prefers-reduced-motion:no-preference){.hero-copy{animation:hero-enter .8s ease both}.hero-art{animation:hero-enter 1.1s ease both}.voxel-scene{animation:float-scene 9s ease-in-out infinite}.art-label{animation:float-label 8s ease-in-out infinite}.art-label-voice{animation-delay:-4s}.voice-home .waveform i{animation:wave-breathe 3s ease-in-out infinite}.voice-home .waveform i:nth-child(3n){animation-delay:-1s}.motion-ready .reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}.motion-ready .reveal.visible{opacity:1;transform:translateY(0)}.is-loading{animation:loading-pulse 1.5s ease-in-out infinite}html{view-transition-name:root}@view-transition{navigation:auto}::view-transition-old(root){animation:hero-enter .15s reverse ease}::view-transition-new(root){animation:hero-enter .25s ease}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1!important;transform:none!important}}
