html.bt-preloading,
html.bt-preloading body {
  overflow: hidden;
}

.bt-preloader {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 99999;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #082B48 0%, #0E436F 48%, #3E2856 100%);
}

html.bt-preloading .bt-preloader {
  display: flex;
}

.bt-preloader-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.bt-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.34;
}

.bt-blob-1 {
  width: 360px;
  height: 360px;
  background: #29B3B7;
  top: -120px;
  right: -80px;
  animation: btDrift1 7s ease-in-out infinite;
}

.bt-blob-2 {
  width: 300px;
  height: 300px;
  background: #603F83;
  bottom: -140px;
  left: 18%;
  animation: btDrift2 8s ease-in-out infinite;
}

.bt-blob-3 {
  width: 220px;
  height: 220px;
  background: #578CED;
  top: 58%;
  right: 22%;
  animation: btDrift3 6.5s ease-in-out infinite;
}

.bt-preloader-stage {
  position: relative;
  z-index: 1;
  animation: btStageIn 0.85s cubic-bezier(.16, 1, .3, 1) both;
}

.bt-preloader-glow {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 300px;
  height: 300px;
  margin: -150px 0 0 -150px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0.1) 42%, rgba(255, 255, 255, 0) 72%);
  animation: btGlowPulse 2.4s ease-in-out infinite;
}

.bt-preloader-mark {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 240px;
  height: 240px;
}

.bt-preloader-ring {
  position: absolute;
  border-radius: 50%;
  border: 2px solid transparent;
}

.bt-ring-outer {
  inset: 0;
  border-top-color: #29B3B7;
  border-right-color: rgba(255, 255, 255, 0.18);
  border-bottom-color: rgba(255, 255, 255, 0.08);
  border-left-color: #578CED;
  animation: btSpin 1.4s linear infinite;
}

.bt-ring-inner {
  inset: 18px;
  border-top-color: rgba(255, 255, 255, 0.12);
  border-right-color: #603F83;
  border-bottom-color: rgba(255, 255, 255, 0.08);
  border-left-color: rgba(255, 255, 255, 0.12);
  animation: btSpinReverse 2s linear infinite;
}

.bt-preloader-logo-shell {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 136px;
  height: 136px;
  animation: btLogoFloat 2.4s ease-in-out infinite;
}

.bt-preloader-logo-shell::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.82) 48%, rgba(255, 255, 255, 0.18) 74%, rgba(255, 255, 255, 0) 100%);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.45),
    0 0 42px rgba(255, 255, 255, 0.42),
    0 0 72px rgba(41, 179, 183, 0.28);
}

.bt-preloader-logo {
  position: relative;
  z-index: 1;
  display: block;
  width: auto;
  height: 118px;
  max-width: min(72vw, 280px);
  object-fit: contain;
  filter:
    drop-shadow(0 10px 22px rgba(8, 43, 72, 0.28))
    drop-shadow(0 0 18px rgba(255, 255, 255, 0.45))
    brightness(1.08)
    contrast(1.12)
    saturate(1.08);
}

.bt-preloader.exit {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.55s cubic-bezier(.16, 1, .3, 1);
}

.bt-preloader.exit .bt-preloader-stage {
  transform: scale(1.06);
  transition: transform 0.55s cubic-bezier(.16, 1, .3, 1);
}

@keyframes btStageIn {
  from {
    opacity: 0;
    transform: translateY(18px) scale(0.9);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes btDrift1 {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(-24px, 20px); }
}

@keyframes btDrift2 {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(-20px, -16px); }
}

@keyframes btDrift3 {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(16px, -14px); }
}

@keyframes btGlowPulse {
  0%, 100% {
    opacity: 0.55;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.08);
  }
}

@keyframes btLogoFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

@keyframes btSpin {
  to { transform: rotate(360deg); }
}

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

@media (max-width: 560px) {
  .bt-preloader-mark {
    width: 200px;
    height: 200px;
  }

  .bt-preloader-logo-shell {
    width: 112px;
    height: 112px;
  }

  .bt-preloader-logo {
    height: 92px;
  }

  .bt-preloader-glow {
    width: 250px;
    height: 250px;
    margin: -125px 0 0 -125px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bt-blob,
  .bt-preloader-stage,
  .bt-preloader-glow,
  .bt-preloader-logo-shell,
  .bt-preloader-logo,
  .bt-ring-outer,
  .bt-ring-inner {
    animation: none !important;
  }

  .bt-preloader-stage,
  .bt-preloader-logo-shell,
  .bt-preloader-logo {
    opacity: 1;
    transform: none;
  }
}
