.reveal {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 700ms var(--ease), transform 700ms var(--ease);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Cap content transition */
.cap-card.swap-out {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 220ms var(--ease), transform 220ms var(--ease);
}
.cap-card.swap-in {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 420ms var(--ease), transform 420ms var(--ease);
}

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}
