#loading-overlay.fade-out {
  opacity: 0;
  pointer-events: none;
}

.loading-container {
  backdrop-filter: blur(12px);
  text-align: center;
  transform: scale(0.95);
  opacity: 0;
  animation: containerFadeIn 0.8s ease-out forwards;
}

@keyframes containerFadeIn {
  0% {opacity: 0; transform: scale(0.85);}
  60% {opacity: 1; transform: scale(1.02);}
  100% {opacity: 1; transform: scale(1);}
}

.loading-spinner span {
  width: 8px;
  height: 30px;
  background: #2196f3;
  border-radius: 4px;
  display: inline-block;
  animation: wave 1.4s infinite cubic-bezier(0.45, 0, 0.55, 1);
  transform-origin: bottom;
  opacity: 0.2;
}

.loading-spinner span:nth-child(1){animation-delay:0s;}
.loading-spinner span:nth-child(2){animation-delay:0.1s;}
.loading-spinner span:nth-child(3){animation-delay:0.2s;}
.loading-spinner span:nth-child(4){animation-delay:0.3s;}
.loading-spinner span:nth-child(5){animation-delay:0.4s;}

@keyframes wave {
  0%   {transform:scaleY(0.6);opacity:0.3;}
  20%  {transform:scaleY(1.3);opacity:1;}
  50%  {transform:scaleY(0.8);opacity:0.6;}
  80%  {transform:scaleY(1.2);opacity:1;}
  100% {transform:scaleY(0.6);opacity:0.3;}
}

.loading-text {
  font-size: 1.1rem;
  font-weight: 600;
  background: linear-gradient(
    90deg,
    #0869C8 0%,
    #42a5f5 40%,
    #0869C8 80%
  );
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: shimmerMove 2s linear infinite;
  letter-spacing: 0.5px;
  margin: 0 !important;
}

@keyframes shimmerMove {
  0% {
    background-position: 200% center;
  }
  100% {
    background-position: -200% center;
  }
}