.page-enter {
  animation: pageEnter 0.3s var(--ease) both;
}

@keyframes pageEnter {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}

.stagger-item {
  animation: pageEnter 0.35s var(--ease) both;
  animation-delay: calc(var(--stagger-index, 0) * 60ms);
}

.card-hover {
  transition: transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease), border-color var(--duration) var(--ease);
}

.card-hover:hover {
  transform: translateY(-2px);
  border-color: var(--glass-border-strong);
  box-shadow: var(--glass-shadow), var(--glass-glow);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .ambient-bg::before,
  .ambient-bg::after {
    animation: none;
  }
}
