/*
 * Generated first-paint theme from public theme API.
 * Contains only public background and primary colour values.
 */
:root,
html[data-theme="light"],
html.light:not([data-theme="dark"]) {
  --boot-background: #ffffff;
  --boot-primary: #2563eb;
}

html[data-theme="dark"],
html.dark:not([data-theme="light"]) {
  --boot-background: #1f2023;
  --boot-primary: #46ece9;
}

html,
body {
  background: var(--boot-background);
}

.atmosphere-spa-loader {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--boot-background);
}

.atmosphere-spa-loader__dots {
  display: inline-flex;
  gap: 8px;
}

.atmosphere-spa-loader__dot {
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--boot-primary);
  animation: atmosphere-spa-loader-dot 1.2s ease-in-out infinite;
}

.atmosphere-spa-loader__dot:nth-child(2) { animation-delay: 0.15s; }
.atmosphere-spa-loader__dot:nth-child(3) { animation-delay: 0.3s; }

@keyframes atmosphere-spa-loader-dot {
  0%, 80%, 100% { opacity: 0.2; transform: scale(0.7); }
  40% { opacity: 1; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .atmosphere-spa-loader__dot {
    animation: none;
    opacity: 1;
    transform: none;
  }
}
