
@keyframes login-card-enter {
  from {
    opacity: 0;
    transform: translateY(22px) scale(0.97);
    filter: blur(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}

@keyframes login-fade-up {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes login-bg-drift {
  from {
    transform: scale(1) translate(0, 0);
  }
  to {
    transform: scale(1.06) translate(-1.2%, -0.6%);
  }
}

.login-card-enter {
  opacity: 0;
  animation: login-card-enter 0.65s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  animation-delay: 0.04s;
}

.login-fade-up {
  opacity: 0;
  animation: login-fade-up 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.login-stagger-1 {
  animation-delay: 0.14s;
}

.login-stagger-2 {
  animation-delay: 0.24s;
}

.login-stagger-3 {
  animation-delay: 0.34s;
}

.login-stagger-4 {
  animation-delay: 0.42s;
}

.login-stagger-5 {
  animation-delay: 0.5s;
}

.login-bg-drift {
  animation: login-bg-drift 28s ease-in-out infinite alternate;
  will-change: transform;
}

