.loading{align-items:center;gap:var(--space-default);padding:var(--space-large);flex-direction:column;justify-content:center;display:flex}.loading--small{gap:var(--space-small);padding:var(--space-default)}.loading--large{gap:var(--space-large);padding:var(--space-xlarge)}.loading--fullscreen{height:100vh}.loading__message{color:var(--almost-white);text-align:center;margin:0;font-weight:500}.loading--small .loading__message{font-size:var(--font-size-small)}.loading--large .loading__message{font-size:var(--font-size-large)}.loading__spinner{position:relative}.loading__spinner--small{height:var(--space-xxlarge);width:var(--space-xxlarge)}.loading__spinner--medium{width:3rem;height:3rem}.loading__spinner--large{height:var(--space-xxxlarge);width:var(--space-xxxlarge)}.loading__spinner-circle{border:var(--space-xxsmall)solid var(--border-color-light);border-top:var(--space-xxsmall)solid var(--accent-color);border-radius:50%;width:100%;height:100%;animation:1s linear infinite spin}.loading__spinner--small .loading__spinner-circle{border-width:var(--space-xxxsmall);border-top-width:var(--space-xxxsmall)}.loading__spinner--large .loading__spinner-circle{border-width:.375rem}.loading__dots{align-items:center;gap:var(--space-xsmall);display:flex}.loading__dots--small{gap:var(--space-xxsmall)}.loading__dots--large{gap:var(--space-small)}.loading__dot{background-color:var(--accent-color);height:var(--space-xsmall);width:var(--space-xsmall);border-radius:50%;animation:1.4s ease-in-out infinite both bounce}.loading__dots--small .loading__dot{width:.375rem;height:.375rem}.loading__dots--large .loading__dot{height:var(--space-small);width:var(--space-small)}.loading__dot:first-child{animation-delay:-.32s}.loading__dot:nth-child(2){animation-delay:-.16s}.loading__pulse{position:relative}.loading__pulse--small{height:var(--space-xxlarge);width:var(--space-xxlarge)}.loading__pulse--medium{width:3rem;height:3rem}.loading__pulse--large{height:var(--space-xxxlarge);width:var(--space-xxxlarge)}.loading__pulse-ring{border:var(--space-xxxsmall)solid var(--accent-color);opacity:1;border-radius:50%;width:100%;height:100%;animation:2s cubic-bezier(0,.2,.8,1) infinite pulse;position:absolute;top:0;left:0}.loading__pulse-ring:nth-child(2){animation-delay:.5s}.loading__pulse-ring:nth-child(3){animation-delay:1s}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes pulse{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.loading__spinner-circle,.loading__dot,.loading__pulse-ring{animation:none}}
