/* Ensure html and body occupy the full viewport */
html,
body {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  /* Center the preloader horizontally */
  align-items: center;
  /* Center the preloader vertically */
  background-color: #FFFFFF;
  /* Set the background color */
}

/* Preloader styling */
.preloader {
  display: flex;
  flex-direction: column;
  /* Stack elements vertically */
  align-items: center;
  /* Center elements horizontally */
  gap: 15px;
  /* Add spacing between the image and loader */
}

.preloader-img {
  width: 250px;
  /* Limit image width */
  height: auto;
  /* Maintain aspect ratio */
  max-width: 45vw;
  /* Constrain width relative to viewport */
  max-height: 45vh;
  /* Constrain height relative to viewport */
  animation: animloaderimg 3000ms ease-in-out infinite;
  object-fit: cover;
  /* Ensure it fits without distortion */
}

.loader {
  border: 4px solid #f3f3f3;
  border-radius: 50%;
  border-top: 4px solid #3498db;
  width: 25px;
  height: 25px;
  animation: spin 2s linear infinite;
}

@keyframes animloaderimg {
  0% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-1rem);
  }

  100% {
    transform: translateY(0);
  }
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}