.app-loader {
  display: flex;
  justify-content: center;
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:
    radial-gradient(circle at top, rgba(88, 151, 255, 0.18), transparent 42%),
    radial-gradient(circle at bottom, rgba(132, 84, 255, 0.24), transparent 38%),
    linear-gradient(180deg, #111729 0%, #0b1020 100%);
  z-index: 9999;
  opacity: 1;
  visibility: visible;
  transition: opacity 220ms ease, visibility 220ms ease;
}

body.app-ready .app-loader {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.app-loader__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  padding: 32px;
}

.app-loader__logo-wrap {
  width: min(34vw, 132px);
  height: min(34vw, 132px);
  display: flex;
  align-items: center;
  justify-content: center;
  filter: drop-shadow(0 18px 40px rgba(0, 0, 0, 0.28));
}

.app-loader__logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.app-loader__spinner {
  width: 42px;
  height: 42px;
  border: 3px solid rgba(255, 255, 255, 0.16);
  border-top-color: rgba(255, 255, 255, 0.92);
  border-radius: 999px;
  animation: app-loader-spin 0.85s linear infinite;
}

@keyframes app-loader-spin {
  to {
    transform: rotate(360deg);
  }
}
