@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner{border-radius:50%;border-style:solid;border-color:var(--border);border-top-color:var(--primary);animation:spin 1s linear infinite}.spinner.small{width:16px;height:16px;border-width:2px}.spinner.medium{width:20px;height:20px;border-width:2px}.spinner.large{width:32px;height:32px;border-width:3px}@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{display:flex;justify-content:center;align-items:center;overflow:hidden;--spinner-size: 50px;--border-width: calc(var(--spinner-size) * .03)}.loading-spinner-container.inline{display:inline-flex}.loading-spinner-container.fullscreen{width:100%;height:100%;position:absolute;top:0;left:0;background-color:#00000080}.loading-spinner-overlay{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100svh;width:100vw;position:fixed;top:0;left:0;background-color:#282c34cc;z-index:9999}.loading-spinner-text{margin-top:20px;color:var(--primary);font-size:1.5rem;font-weight:700}.spinner-ring{border-radius:50%;position:absolute;border-style:solid;border-color:transparent;border-width:var(--border-width)}.spinner-ring:nth-child(1){width:var(--spinner-size);height:var(--spinner-size);border-top-color:var(--primary);animation:spin 1.25s linear infinite}.spinner-ring:nth-child(2){width:calc(var(--spinner-size) * .85);height:calc(var(--spinner-size) * .85);border-top-color:var(--interactive-normal);animation:spin 1s linear infinite reverse}.spinner-ring:nth-child(3){width:calc(var(--spinner-size) * .7);height:calc(var(--spinner-size) * .7);border-top-color:var(--background-tertiary);animation:spin .75s linear infinite}.spinner-ring:nth-child(4){width:calc(var(--spinner-size) * .55);height:calc(var(--spinner-size) * .55);border-top-color:var(--status-positive);animation:spin .5s linear infinite reverse}@keyframes rainbow{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(360deg)}}.rainbow-gradient{background:radial-gradient(circle at center,#ff0000,#ff7f00,#ffff00,#00ff00,#0000ff,#4b0082,#8b00ff 20%,transparent 25%);animation:rainbow 10s linear infinite;background-size:20% 20%;background-position:center;background-blend-mode:soft-light}.animate-spin-slow{animation:spin 3s linear infinite}.animate-spin-slow-reverse{animation:spin 3s linear infinite reverse}@keyframes coinSpin{0%{transform:rotateY(0)}50%{transform:rotateY(180deg)}to{transform:rotateY(360deg)}}
