/* Global startup splash screen */

.splash-screen {
  width: 100vw;
  height: 100vh;
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, 0.28);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.global-loader-content {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-width: 170px;
  padding: 18px 20px;
  border-radius: 14px;
  background: rgba(15, 23, 42, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.22);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
}

.splash-screen .spinner {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(to right, #6571ff 10%, rgba(0, 0, 0, 0) 42%);
  animation: splashLoading 1.2s linear infinite;
  transform: translateZ(0);
  position: relative;
}

.splash-screen .spinner::before {
  width: 50%;
  height: 50%;
  background: #6571ff;
  border-radius: 100% 0 0 0;
  position: absolute;
  top: 0;
  left: 0;
  content: '';
}

.splash-screen .spinner::after {
  background: rgba(15, 23, 42, 0.96);
  width: 76%;
  height: 76%;
  border-radius: 50%;
  content: '';
  margin: auto;
  position: absolute;
  inset: 0;
}

.global-loader-brand {
  color: #fff;
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);
  animation: splashSpring 1s cubic-bezier(0.34, 1.56, 0.64, 1) infinite;
}

@keyframes splashLoading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes splashSpring {
  0% {
    transform: translateY(0) scale(1);
  }
  30% {
    transform: translateY(-8px) scale(1.06);
  }
  55% {
    transform: translateY(0) scale(0.98);
  }
  75% {
    transform: translateY(-3px) scale(1.02);
  }
  100% {
    transform: translateY(0) scale(1);
  }
}

[data-bs-theme="dark"] .splash-screen {
  background: rgba(7, 13, 25, 0.45);
}
