:root {
  --motion-duration-fast: 150ms;
  --motion-duration-standard: 300ms;
  --motion-duration-slow: 600ms;
  --motion-duration-extra-slow: 1200ms;
  --motion-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Unify common transitions */
.btn,
.about-card,
.project-card,
.cert-item,
.skill-badge,
.tech-badge,
.aside-nav a,
.style-switcher,
.colors span,
.social-link,
.stat-item {
  transition: transform var(--motion-duration-standard) var(--motion-ease-standard),
              box-shadow var(--motion-duration-standard) var(--motion-ease-standard),
              opacity var(--motion-duration-standard) var(--motion-ease-standard);
  will-change: transform, opacity;
}

/* Tame the logo animations to be subtle and consistent */
.section-aside .logo::before,
.section-aside .logo::after {
  animation: none !important;
  opacity: 0.4;
}

.section-aside .logo a {
  /* One-time entrance only, no infinite gradient cycling */
  animation: logoFadeIn var(--motion-duration-slow) var(--motion-ease-standard) both !important;
  background-size: 200% 200%;
  text-shadow: none;
  filter: drop-shadow(0 2px 6px rgba(37, 99, 235, 0.15));
}

.section-aside .logo a:hover {
  transform: translateY(-1px) scale(1.02) !important;
  filter: none !important;
}

.section-aside .logo a span,
.section-aside .logo .logo-subtitle,
.section-aside .logo .logo-top-line,
.section-aside .logo .logo-bottom-line,
.section-aside .logo .logo-badge {
  animation: none !important;
}

.section-aside .logo .logo-badge {
  box-shadow: none !important;
}

/* Reduce intensity of hover lifts across cards */
.about-card:hover,
.project-card:hover,
.cert-item:hover,
.timeline-item:hover {
  transform: translateY(-4px) scale(1.01) !important;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12) !important;
}

/* Keep buttons crisp without aggressive motion */
.btn:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 18px rgba(37, 99, 235, 0.25) !important;
}

/* Disable heavy decorative effects not essential to UX */
.cursor-trail { display: none !important; }

/* Respect user Reduced Motion preference */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  * {
    animation: none !important;
    transition: none !important;
  }
}

