body {
  margin: 0;
}

html {
  overflow: hidden scroll;
}

#loading-bg {
  position: fixed; /* Changed from absolute for better coverage */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--initial-loader-bg, #fff);
  block-size: 100vh; /* Changed to vh for better viewport handling */
  inline-size: 100%;
  z-index: 9999;
}

.loading {
  position: absolute; /* Changed to absolute */
  box-sizing: border-box;
  block-size: 80px; /* Increased size */
  inline-size: 80px;
  opacity: 1;
  animation: fadeOut 0.5s ease-out forwards 3s; /* Fade out loader when logo starts appearing */
}

.loading .effect-1,
.loading .effect-2,
.loading .effect-3 {
  position: absolute;
  box-sizing: border-box;
  border: 2px solid transparent; /* Thinner border for modern look */
  border-radius: 50%;
  block-size: 100%;
  inline-size: 100%;
  border-inline-start: 2px solid var(--initial-loader-color, #7C4DFF); /* Changed color to a modern purple */
  border-block-start: 2px solid var(--initial-loader-color, #7C4DFF); /* Added top border for better effect */
}

.loading .effect-1 {
  animation: rotate 1.5s cubic-bezier(0.4, 0, 0.2, 1) infinite; /* Smoother animation */
}

.loading .effect-2 {
  animation: rotate-opacity 1.5s cubic-bezier(0.4, 0, 0.2, 1) infinite 0.2s;
  scale: 0.8; /* Added scale for nested effect */
}

.loading .effect-3 {
  animation: rotate-opacity 1.5s cubic-bezier(0.4, 0, 0.2, 1) infinite 0.4s;
  scale: 0.6; /* Added scale for nested effect */
}

.loading .effects {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Optional: Add a subtle pulse effect to the entire loader */
@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(0.95); }
}

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

@keyframes rotate-opacity {
  0% {
    opacity: 0.6;
    transform: rotate(0deg);
  }
  100% {
    opacity: 1;
    transform: rotate(360deg);
  }
}

.loading-logo {
  position: absolute; /* Position absolutely */
  width: 120px; /* Adjust size to match your needs */
  height: auto;
  opacity: 0;
  animation: fadeIn 0.5s ease-in forwards 3.4s; /* Slightly longer delay for smoother transition */
}

/* Add fade-in animation */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: scale(0.8); /* Start slightly smaller */
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
    transform: scale(1);
  }
  to {
    opacity: 0;
    transform: scale(1.4);
  }
}