@keyframes spin{to{transform:rotate(360deg)}}.spinner{animation:1s linear infinite spin}@keyframes pulse-glow{0%{box-shadow:0 0 0 0 rgba(113,113,122,.5)}100%{box-shadow:0 0 0 12px rgba(113,113,122,0)}}.playing-glow{animation:1.5s ease-out infinite pulse-glow}@keyframes ripple{0%{transform:scale(1);opacity:.8}100%{transform:scale(2.2);opacity:0}}.live-ripple{position:relative;overflow:hidden}.live-ripple::before{content:'';position:absolute;inset:0;background:rgba(161,161,170,.3);border-radius:inherit;animation:2s ease-out infinite ripple}.live-ripple-paused::before{animation:none;opacity:0}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}@keyframes slideIn{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.slide-in{animation:.4s ease-out forwards slideIn}@keyframes slideInRight{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.slide-in-right{animation:.3s ease-out forwards slideInRight}.toast-notification{pointer-events:auto;cursor:pointer}@keyframes highlightPulse{0%{background-color:rgba(113,113,122,.15);transform:scale(1)}50%{background-color:rgba(113,113,122,.25);transform:scale(1.01)}100%{background-color:transparent;transform:scale(1)}}.highlight-new{animation:2s ease-out highlightPulse}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.fade-in{animation:.3s ease-out forwards fadeIn}