#app {
  height: 100%;
}

.fantastic-admin-home {
  position: fixed;
  z-index: 10000;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  user-select: none;
  color: #f7f2ff;
  background:
    radial-gradient(circle at 50% 46%, rgb(190 64 236 / 14%), transparent 27%),
    radial-gradient(circle at 18% 16%, rgb(118 64 236 / 10%), transparent 25%),
    #110b18;
}

.fantastic-admin-home::before {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgb(255 255 255 / 2.5%) 1px, transparent 1px),
    linear-gradient(90deg, rgb(255 255 255 / 2.5%) 1px, transparent 1px);
  background-size: 48px 48px;
  content: '';
  mask-image: radial-gradient(circle at center, #000, transparent 72%);
}

.loading-orbit {
  position: relative;
  display: grid;
  width: 112px;
  height: 112px;
  place-items: center;
}

.loading-orbit__glow {
  position: absolute;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #bd4bf1;
  filter: blur(26px);
  opacity: 0.42;
  animation: loading-pulse 1.8s ease-in-out infinite;
}

.loading-orbit__ring {
  position: absolute;
  border-radius: 50%;
}

.loading-orbit__ring--outer {
  inset: 3px;
  border: 1px solid rgb(221 151 255 / 18%);
  border-top-color: #d86cff;
  border-right-color: rgb(216 108 255 / 55%);
  animation: loading-spin 1.7s linear infinite;
}

.loading-orbit__ring--inner {
  inset: 14px;
  border: 1px solid rgb(118 232 255 / 16%);
  border-bottom-color: #7be7ff;
  animation: loading-spin-reverse 1.25s linear infinite;
}

.loading-orbit__brand {
  position: relative;
  font: 800 22px/1 Arial, sans-serif;
  letter-spacing: -1px;
  color: #f2ceff;
  text-shadow: 0 0 15px rgb(216 108 255 / 70%);
}

.loading-title {
  margin-top: 18px;
  font: 700 21px/1.2 Arial, sans-serif;
  letter-spacing: 0.08em;
}

.loading-subtitle {
  margin-top: 10px;
  color: rgb(235 222 241 / 58%);
  font: 13px/1.5 Arial, sans-serif;
  letter-spacing: 0.08em;
}

.loading-dots::after {
  display: inline-block;
  width: 1.2em;
  overflow: hidden;
  vertical-align: bottom;
  content: '...';
  animation: loading-dots 1.4s steps(4, end) infinite;
}

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

@keyframes loading-spin-reverse {
  to { transform: rotate(-360deg); }
}

@keyframes loading-pulse {
  0%, 100% { opacity: 0.28; transform: scale(0.88); }
  50% { opacity: 0.52; transform: scale(1.12); }
}

@keyframes loading-dots {
  0% { width: 0; }
  100% { width: 1.2em; }
}

@media (prefers-reduced-motion: reduce) {
  .loading-orbit__ring,
  .loading-orbit__glow,
  .loading-dots::after {
    animation: none;
  }
}
