.loader{--loader-color:var(--primary-500);--loader-color-muted:var(--primary-300);--loader-bg:var(--neutral-900);z-index:99999;justify-content:center;align-items:center;display:none}.loader--active{opacity:1;transition:opacity 1s;display:flex}.loader--hiding{opacity:0}.loader--page{z-index:9999;background:var(--loader-bg);position:fixed;inset:0}.loader--contained{background:var(--loader-bg);position:fixed;inset:0}.loader__inner{justify-content:center;align-items:center;gap:var(--spacing-4);height:100%;display:flex}.loader__label{color:var(--neutral-50);font-family:var(--font-family-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:.01em;margin:0}@keyframes loader-spin{to{transform:rotate(360deg)}}@keyframes loader-spin-reverse{to{transform:rotate(-360deg)}}@keyframes loader-bounce{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}@keyframes loader-barScale{0%,40%,to{opacity:.4;transform:scaleY(.4)}20%{opacity:1;transform:scaleY(1)}}@keyframes loader-pulse{0%,to{opacity:.4;transform:scale(.6)}50%{opacity:1;transform:scale(1)}}@keyframes loader-wave{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}@keyframes loader-bounce-ball{0%{transform:translateY(0)}to{transform:translateY(-32px)}}@keyframes loader-squares{0%,80%,to{opacity:.4;transform:scale(.5)rotate(0)}40%{opacity:1;transform:scale(1)rotate(90deg)}}.loader--spinner .loader__animation{border-radius:var(--radius-full);border:3px solid #ffffff26;border-top-color:var(--loader-color);width:44px;height:44px;animation:.75s linear infinite loader-spin}.loader--dots .loader__animation{gap:var(--spacing-2);align-items:center;display:flex}.loader--dots .loader__dot{border-radius:var(--radius-full);background:var(--loader-color);width:10px;height:10px;animation:1.2s ease-in-out infinite loader-bounce}.loader--dots .loader__dot:nth-child(2){animation-delay:.2s}.loader--dots .loader__dot:nth-child(3){animation-delay:.4s}.loader--bars .loader__animation{gap:var(--spacing-1);align-items:flex-end;height:32px;display:flex}.loader--bars .loader__bar{border-radius:var(--radius-sm);background:var(--loader-color);transform-origin:bottom;width:5px;height:100%;animation:1s ease-in-out infinite loader-barScale}.loader--bars .loader__bar:first-child{animation-delay:0s}.loader--bars .loader__bar:nth-child(2){animation-delay:.1s}.loader--bars .loader__bar:nth-child(3){animation-delay:.2s}.loader--bars .loader__bar:nth-child(4){animation-delay:.3s}.loader--bars .loader__bar:nth-child(5){animation-delay:.4s}.loader--squares .loader__animation{gap:var(--spacing-2);align-items:center;display:flex}.loader--squares .loader__square{border-radius:var(--radius-sm);background:var(--loader-color);width:12px;height:12px;animation:1.2s ease-in-out infinite loader-squares}.loader--squares .loader__square:first-child{animation-delay:0s}.loader--squares .loader__square:nth-child(2){animation-delay:.2s}.loader--squares .loader__square:nth-child(3){animation-delay:.4s}.loader--pulse .loader__animation{border-radius:var(--radius-full);background:var(--loader-color);width:48px;height:48px;animation:1.4s ease-in-out infinite loader-pulse}.loader--ring .loader__animation{width:48px;height:48px;position:relative}.loader--ring .loader__ring{border-radius:var(--radius-full);border:3px solid #0000;position:absolute;inset:0}.loader--ring .loader__ring:first-child{border-top-color:var(--loader-color);animation:1s linear infinite loader-spin}.loader--ring .loader__ring:nth-child(2){border-bottom-color:var(--loader-color-muted);animation:.75s linear infinite loader-spin-reverse;inset:8px}.loader--wave .loader__animation{gap:var(--spacing-2);align-items:center;height:40px;display:flex}.loader--wave .loader__bar{border-radius:var(--radius-full);background:var(--loader-color);width:8px;height:8px;animation:1.2s ease-in-out infinite loader-wave}.loader--wave .loader__bar:first-child{animation-delay:0s}.loader--wave .loader__bar:nth-child(2){animation-delay:.15s}.loader--wave .loader__bar:nth-child(3){animation-delay:.3s}.loader--wave .loader__bar:nth-child(4){animation-delay:.45s}.loader--wave .loader__bar:nth-child(5){animation-delay:.6s}.loader--bounce-ball .loader__animation{justify-content:center;align-items:flex-end;height:48px;display:flex}.loader--bounce-ball .loader__ball{border-radius:var(--radius-full);background:var(--loader-color);width:16px;height:16px;animation:.7s cubic-bezier(.36,0,.66,-.56) infinite alternate loader-bounce-ball}
