body {
  margin: 0;
}

html {
  overflow-x: hidden;
  overflow-y: scroll;
}

#loading-bg {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--initial-loader-bg, #fff);
  block-size: 100%;
  gap: 1.25rem 0;
  inline-size: 100%;
  transition: background-color 0.4s ease;
}

.loading-logo img {
  display: block;
  block-size: auto;
  inline-size: min(200px, 50vw);
  animation: pulse-logo 2.5s infinite ease-in-out;
  filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.04));
  transition: all 0.3s ease;
}

.loader-bar-wrapper {
  position: relative;
  width: 140px;
  height: 3px;
  background: color-mix(in srgb, var(--initial-loader-color, #7367F0) 15%, transparent);
  border-radius: 99px;
  overflow: hidden;
  margin-top: 1.25rem;
}

.loader-bar-line {
  position: absolute;
  left: -40%;
  height: 100%;
  width: 40%;
  background: var(--initial-loader-color, #7367F0);
  border-radius: 99px;
  animation: loader-slide 1.4s infinite cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 0 8px var(--initial-loader-color, rgba(115, 103, 240, 0.4));
}

/* Keyframe Animations */
@keyframes loader-slide {
  0% {
    left: -40%;
    width: 40%;
  }
  50% {
    left: 40%;
    width: 60%;
  }
  100% {
    left: 100%;
    width: 40%;
  }
}

@keyframes pulse-logo {
  0%, 100% {
    transform: scale(1);
    opacity: 0.95;
  }
  50% {
    transform: scale(1.02);
    opacity: 1;
  }
}

