.priviot-loader {
  --loader-color: #7c35ff;
  --loader-size: 112px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 16px; padding: 24px; text-align: center;
  color: #f7f4fb; font-family: Inter, Geist, ui-sans-serif, system-ui, sans-serif;
}
.priviot-loader--sm { --loader-size: 48px; gap: 10px; padding: 12px; }
.priviot-loader--lg { --loader-size: 144px; }
.priviot-loader__rings { display: block; position: relative; width: var(--loader-size); height: var(--loader-size); flex-shrink: 0; }
.priviot-loader__rings i {
  position: absolute; inset: 0; border-radius: 50%;
  background: conic-gradient(from 0deg, transparent, var(--loader-color) 120deg, #7c35ff 235deg, transparent 360deg);
  -webkit-mask: radial-gradient(circle, transparent 57%, #000 59%, #000 63%, transparent 65%);
  mask: radial-gradient(circle, transparent 57%, #000 59%, #000 63%, transparent 65%);
  animation: priviot-ring-spin 2.5s linear infinite;
}
.priviot-loader__rings i:nth-child(2) { inset: 13%; opacity: .65; animation-duration: 3s; animation-direction: reverse; }
.priviot-loader__rings i:nth-child(3) { inset: -12%; opacity: .35; animation-duration: 4s; background: conic-gradient(transparent 270deg, var(--loader-color), transparent 330deg); }
.priviot-loader__rings i:nth-child(4) { inset: -24%; opacity: .25; animation-duration: 3.5s; background: conic-gradient(transparent 300deg, var(--loader-color), transparent 340deg); }
.priviot-loader__title { margin: 0; max-width: 28rem; font-size: 1rem; font-weight: 500; line-height: 1.5; }
.priviot-loader__subtitle { margin: -6px 0 0; max-width: 28rem; font-size: .875rem; color: #bcb5c9; line-height: 1.6; }
.priviot-loader--sm .priviot-loader__title { font-size: .875rem; }
.priviot-loader[data-state="error"] { color: #f7f4fb; }
@keyframes priviot-ring-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .priviot-loader__rings i { animation: none; } }
