/* Global Animations and Overrides */

:root {
  --transition-speed: 0.3s;
}

/* Smooth fade in on page load */
body {
  animation: fadeIn 0.5s ease-in-out;
  scroll-behavior: smooth;
}

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

/* Button Hover Animations */
button, .button, a.btn {
  transition: transform var(--transition-speed) ease, box-shadow var(--transition-speed) ease, background-color var(--transition-speed) ease;
}

button:hover, .button:hover, a.btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  cursor: pointer;
}

button:active, .button:active, a.btn:active {
  transform: translateY(0);
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* Link transitions */
a {
  transition: color var(--transition-speed) ease, opacity var(--transition-speed) ease;
}

a:hover {
  opacity: 0.8;
}

/* Fade out animation before leaving page */
.fade-out {
  animation: fadeOut 0.3s ease-in-out forwards;
}

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