@keyframes float{0%,to{transform:translateY(0) translateX(-50%)}50%{transform:translateY(-2px) translateX(-50%)}}@keyframes speaking-pulse{0%{box-shadow:0 0 0 0 hsl(var(--green-500)/.7)}70%{box-shadow:0 0 0 10px hsl(var(--green-500)/0)}to{box-shadow:0 0 0 0 hsl(var(--green-500)/0)}}@keyframes wave{0%,to{height:4px}50%{height:12px}}@keyframes slide-in{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes glow{0%,to{box-shadow:0 0 5px hsl(var(--primary)/.5)}50%{box-shadow:0 0 20px hsl(var(--primary)/.8),0 0 30px hsl(var(--primary)/.4)}}@keyframes backdrop-fade-in{0%{backdrop-filter:blur(0);opacity:0}to{backdrop-filter:blur(10px);opacity:1}}@keyframes button-press{0%{transform:scale(1)}50%{transform:scale(.95)}to{transform:scale(1)}}.animate-float{animation:float 3s ease-in-out infinite}.animate-speaking-pulse{animation:speaking-pulse 2s infinite}.animate-wave{animation:wave 1s ease-in-out infinite}.animate-wave-delay-75{animation:wave 1s ease-in-out 75ms infinite}.animate-wave-delay-150{animation:wave 1s ease-in-out .15s infinite}.animate-slide-in{animation:slide-in .5s ease-out forwards}.animate-glow{animation:glow 2s ease-in-out infinite}.animate-backdrop-fade-in{animation:backdrop-fade-in .3s ease-out forwards}.animate-button-press{animation:button-press .1s ease-out}.control-button{transition:all .2s ease}.control-button:hover{transform:scale(1.05);box-shadow:0 4px 12px rgba(0,0,0,.15)}.control-button:active{transform:scale(.95)}.video-tile{transition:all .3s cubic-bezier(.4,0,.2,1)}.video-tile:hover{transform:scale(1.02);box-shadow:0 8px 25px rgba(0,0,0,.2)}.smooth-transition{transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-morphism{background:hsl(var(--background)/.8)}.glass-morphism,.glass-morphism-card{backdrop-filter:blur(10px);border:1px solid hsl(var(--border))}.glass-morphism-card{background:hsl(var(--card)/.95)}