@keyframes loading-progress{0%{width:0;opacity:.3}50%{width:70%;opacity:.8}to{width:100%;opacity:1}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 rgba(59,130,246,.4)}50%{box-shadow:0 0 0 10px rgba(59,130,246,0)}}@keyframes bounce-dots{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.loading-spinner-primary{border-color:hsl(var(--muted));border-top-color:hsl(var(--primary));animation:spin 1s linear infinite}.loading-spinner-gradient{background:conic-gradient(from 0deg,hsl(var(--primary)) 0deg,hsl(var(--primary)/.5) 90deg,transparent 180deg,transparent 1turn);border-radius:50%;animation:spin 1.5s linear infinite}.loading-progress-bar{animation:loading-progress 2s ease-in-out infinite}.fade-in-up{animation:fade-in-up .6s ease-out}.pulse-glow{animation:pulse-glow 2s infinite}.loading-dots{display:flex;gap:4px}.loading-dot{width:8px;height:8px;background-color:hsl(var(--primary));border-radius:50%;animation:bounce-dots 1.4s ease-in-out infinite both}.loading-dot:first-child{animation-delay:-.32s}.loading-dot:nth-child(2){animation-delay:-.16s}.loading-dot:nth-child(3){animation-delay:0s}@keyframes skeleton-wave{0%{transform:translateX(-100%)}50%{transform:translateX(100%)}to{transform:translateX(100%)}}.skeleton-wave{position:relative;overflow:hidden}.skeleton-wave:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.4),transparent);animation:skeleton-wave 1.6s ease-in-out infinite}@media (prefers-color-scheme:dark){.skeleton-wave:after{background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.1),transparent)}}@media (max-width:640px){.loading-progress-bar{width:200px}}.session-loader-enter{opacity:0;transform:scale(.9)}.session-loader-enter-active{opacity:1;transform:scale(1);transition:opacity .3s,transform .3s}.session-loader-exit{opacity:1;transform:scale(1)}.session-loader-exit-active{opacity:0;transform:scale(.9);transition:opacity .3s,transform .3s}