/* Smooth fade-in animation for all pages */
body {
  opacity: 0;
  transition: opacity 0.6s ease-in-out;
}
body.loaded {
  opacity: 1;
}
window.addEventListener('load', () => {
  document.body.classList.add('loaded');
});

/* Dark Mode Theme */
.dark-mode {
  background-color: #121212;
  color: #eaeaea;
}

.dark-mode .navbar,
.dark-mode footer {
  background-color: #1e1e1e !important;
}

.dark-mode .card,
.dark-mode .p-4,
.dark-mode .bg-light {
  background-color: #222 !important;
  color: #eaeaea !important;
}

.dark-mode .card:hover {
  box-shadow: 0 4px 20px rgba(255, 255, 255, 0.1);
}

.dark-mode .btn-primary {
  background-color: #0d6efd;
}

.theme-toggle button {
  width: 50px;
  height: 50px;
  font-size: 1.4rem;
}

/* Page fade-in */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
section {
  animation: fadeIn 0.7s ease-in-out;
}