@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3) translate(100%)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1) translate(0)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}.notification-toast{animation:slideInRight .3s ease-out}.notification-toast.removing{animation:slideOutRight .3s ease-in}.notification-toast.bounce{animation:bounceIn .5s cubic-bezier(.68,-.55,.265,1.55)}.notification-toast.shake{animation:shake .5s ease-in-out}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.badge-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes badgePop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.badge-pop{animation:badgePop .3s ease-out}@keyframes typingDot{0%,60%,to{transform:translateY(0);opacity:.7}30%{transform:translateY(-10px);opacity:1}}.typing-dot{animation:typingDot 1.4s infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes breathe{0%,to{opacity:1;box-shadow:0 0 #22c55eb3}50%{opacity:.8;box-shadow:0 0 0 8px #22c55e00}}.status-online{animation:breathe 2s ease-in-out infinite}@keyframes pulseRing{0%{transform:scale(.8);opacity:1}to{transform:scale(1.4);opacity:0}}.status-pulse:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;background:inherit;animation:pulseRing 1.5s cubic-bezier(.215,.61,.355,1) infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fade-in{animation:fadeIn .3s ease-in}.fade-out{animation:fadeOut .3s ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.scale-in{animation:scaleIn .2s ease-out}.scale-out{animation:scaleOut .2s ease-in}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.message-slide-in{animation:messageSlideIn .3s ease-out}.cursor-move{transition:all .1s ease-out}@keyframes cursorHover{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.cursor-hover{animation:cursorHover .5s ease-in-out}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner{animation:spin 1s linear infinite}@keyframes dotPulse{0%,80%,to{opacity:.3}40%{opacity:1}}.dot-pulse{animation:dotPulse 1.4s ease-in-out infinite}.dot-pulse:nth-child(2){animation-delay:.2s}.dot-pulse:nth-child(3){animation-delay:.4s}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-500{animation-delay:.5s}.animate-fast{animation-duration:.15s}.animate-normal{animation-duration:.3s}.animate-slow{animation-duration:.5s}.animate-slower{animation-duration:1s}
