@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner{border-style:solid;border-color:var(--border);border-top-color:var(--primary);border-radius:50%;animation:1s linear infinite spin}.spinner.small{border-width:2px;width:16px;height:16px}.spinner.medium{border-width:2px;width:20px;height:20px}.spinner.large{border-width:3px;width:32px;height:32px}@keyframes scale-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.8)}to{transform:scale(1)}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.loading-spinner-container{--spinner-size:50px;--border-width:calc(var(--spinner-size) * .03);justify-content:center;align-items:center;display:flex;overflow:hidden}.loading-spinner-container.inline{display:inline-flex}.loading-spinner-container.fullscreen{background-color:#00000080;width:100%;height:100%;position:absolute;top:0;left:0}.loading-spinner-overlay{z-index:9999;background-color:#282c34cc;flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100svh;display:flex;position:fixed;top:0;left:0}.loading-spinner-text{color:var(--primary);margin-top:20px;font-size:1.5rem;font-weight:700}.spinner-ring{border-style:solid;border-color:#0000;border-width:var(--border-width);border-radius:50%;position:absolute}.spinner-ring:first-child{width:var(--spinner-size);height:var(--spinner-size);border-top-color:var(--primary);animation:1.25s linear infinite spin}.spinner-ring:nth-child(2){width:calc(var(--spinner-size) * .85);height:calc(var(--spinner-size) * .85);border-top-color:var(--interactive-normal);animation:1s linear infinite reverse spin}.spinner-ring:nth-child(3){width:calc(var(--spinner-size) * .7);height:calc(var(--spinner-size) * .7);border-top-color:var(--background-tertiary);animation:.75s linear infinite spin}.spinner-ring:nth-child(4){width:calc(var(--spinner-size) * .55);height:calc(var(--spinner-size) * .55);border-top-color:var(--status-positive);animation:.5s linear infinite reverse spin}@keyframes rainbow{0%{filter:hue-rotate()}to{filter:hue-rotate(360deg)}}.rainbow-gradient{background-blend-mode:soft-light;background:radial-gradient(circle,red,#ff7f00,#ff0,#0f0,#00f,indigo,#8b00ff 20%,#0000 25%) 50%/20% 20%;animation:10s linear infinite rainbow}@keyframes coinSpin{0%{transform:rotateY(0)}50%{transform:rotateY(180deg)}to{transform:rotateY(360deg)}}
