/* Content-only animations: subtle fade-in-up on scroll */
.content-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.content-reveal.revealed {
  opacity: 1;
  transform: none;
}

/* Optional delays for staggering */
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .content-reveal { transition: none; transform: none; opacity: 1; }
}

/* -------------------------------------------------
   Universal hover effects for cards/components
   Targets: .custom-block, .custom-block-overlay, .custom-block-topics-listing, .topics-detail-block
   ------------------------------------------------- */
.custom-block,
.custom-block-overlay,
.custom-block-topics-listing,
.topics-detail-block {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  will-change: transform, box-shadow;
}

.custom-block:hover,
.custom-block-overlay:hover,
.custom-block-topics-listing:hover,
.topics-detail-block:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 32px rgba(0,0,0,0.12);
}

/* Slight emphasis for images inside hovered cards */
.custom-block:hover img,
.custom-block-overlay:hover img,
.custom-block-topics-listing:hover img,
.topics-detail-block:hover img {
  filter: saturate(1.05) contrast(1.02);
  transition: filter 0.25s ease;
}

/* Keyboard accessibility: apply hover style on focus-visible */
.custom-block:focus-visible,
.custom-block-overlay:focus-visible,
.custom-block-topics-listing:focus-visible,
.topics-detail-block:focus-visible {
  outline: 2px solid #80d0c7;
  outline-offset: 3px;
  transform: translateY(-6px);
  box-shadow: 0 16px 32px rgba(0,0,0,0.12);
}
