* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 30% 20%, #1f1952 0%, #0d1029 45%, #05060f 100%);
  overflow: hidden;
  font-family: Arial, sans-serif;
}

.scene {
  position: relative;
  width: min(80vw, 560px);
  aspect-ratio: 1 / 1;
  display: grid;
  place-items: center;
  isolation: isolate;
}

.aura {
  position: absolute;
  border-radius: 50%;
  filter: blur(34px);
  z-index: -2;
  animation: auraFloat 7s ease-in-out infinite;
}

.aura-one {
  width: 62%;
  height: 62%;
  background: rgba(61, 228, 255, 0.55);
  left: 8%;
  top: 18%;
}

.aura-two {
  width: 58%;
  height: 58%;
  background: rgba(157, 99, 255, 0.5);
  right: 8%;
  bottom: 16%;
  animation-delay: -2.3s;
}

.orbit {
  position: absolute;
  border-radius: 50%;
  border: 3px solid transparent;
  background: linear-gradient(#0b0d1d, #0b0d1d) padding-box,
    conic-gradient(from 0deg, #33f0ff, #8b5dff, #ff5bd6, #33f0ff) border-box;
  box-shadow: 0 0 26px rgba(90, 181, 255, 0.35);
}

.orbit-outer {
  width: 100%;
  height: 100%;
  animation: spin 3.8s linear infinite;
}

.orbit-inner {
  width: 76%;
  height: 76%;
  animation: spinReverse 2.6s linear infinite;
}

.logo-shell {
  width: 58%;
  height: 58%;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.03));
  border: 1px solid rgba(255, 255, 255, 0.42);
  box-shadow: inset 0 3px 18px rgba(255, 255, 255, 0.2), 0 14px 40px rgba(15, 23, 65, 0.65);
  position: relative;
  overflow: hidden;
  animation: pulse 2.1s ease-in-out infinite;
}

.logo-shell::before {
  content: "";
  position: absolute;
  width: 170%;
  height: 34%;
  left: -35%;
  top: 8%;
  background: linear-gradient(
    105deg,
    rgba(255, 255, 255, 0) 18%,
    rgba(255, 255, 255, 0.7) 45%,
    rgba(255, 255, 255, 0) 72%
  );
  transform: rotate(-24deg);
  animation: shimmer 2.8s ease-in-out infinite;
}

.spinner-text {
  font-size: clamp(1.1rem, 4.8vw, 2.35rem);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: linear-gradient(92deg, #ecffff, #89f8ff 30%, #c6a8ff 55%, #ffabf2 80%, #ffffff);
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  text-shadow: 0 0 18px rgba(139, 250, 255, 0.45);
  animation: textShift 3s linear infinite;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@keyframes spinReverse {
  from {
    transform: rotate(360deg);
  }
  to {
    transform: rotate(0deg);
  }
}

@keyframes pulse {
  0%,
  100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.045);
  }
}

@keyframes shimmer {
  0% {
    transform: rotate(-24deg) translateX(-68%);
  }
  50% {
    transform: rotate(-24deg) translateX(24%);
  }
  100% {
    transform: rotate(-24deg) translateX(112%);
  }
}

@keyframes auraFloat {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  50% {
    transform: translate3d(0, -10px, 0) scale(1.07);
  }
}

@keyframes textShift {
  to {
    background-position: 200% center;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
  }
}
