@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes progress {
  from { width: 100%; }
  to { width: 0%; }
}

.animate-fade-in-up {
  animation: fadeInUp 0.3s ease-out forwards;
}

.animate-progress {
  animation: progress 10s linear forwards;
}

/* bg-login — URL injected via data-bg-url on <body> by JS */
.bg-login {
  background-image: var(--bg-login-url);
  background-repeat: no-repeat;
  background-size: cover;
  background-attachment: fixed;
  background-position: center;
}

.carousel-image { filter: brightness(0.7); }

.form-input { transition: all 0.3s ease; }
.form-input:focus { box-shadow: 0 0 0 2px rgba(128, 0, 0, 0.3); }
