/* Shared micro-interactions: hover lift + scroll reveal. GPU-only props (transform/opacity). */

a.btn-dark, a.btn-outline, a.btn-green, a.btn-primary, a.btn-ghost,
a.btn-secondary, a.btn, #site-nav .nav-cta, .btn-download, .legal-link {
  transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease, opacity 0.2s ease, color 0.2s ease;
}
a.btn-dark:hover, a.btn-outline:hover, a.btn-green:hover, a.btn-primary:hover,
a.btn-ghost:hover, a.btn-secondary:hover, a.btn:hover, #site-nav .nav-cta:hover,
.btn-download:hover, .legal-link:hover {
  transform: translateY(-2px);
}
a.btn-dark:active, a.btn-outline:active, a.btn-green:active, a.btn-primary:active,
a.btn-ghost:active, a.btn-secondary:active, a.btn:active, #site-nav .nav-cta:active,
.btn-download:active, .legal-link:active {
  transform: translateY(0);
}

.division-item, .app-card, .lesson-card, .legal-card, .article-card, .insight-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.division-item:hover { transform: translateX(4px); }
.app-card:hover, .legal-card:hover { transform: translateY(-4px); }
.lesson-card:not(.locked):hover { transform: translateY(-3px); }

.division-link, .list-link {
  transition: gap 0.2s ease, color 0.2s ease;
}

#site-nav .nav-logo img {
  transition: transform 0.25s ease;
}
#site-nav .nav-logo:hover img {
  transform: scale(1.06) rotate(-2deg);
}

/* Scroll reveal */
.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  a.btn-dark, a.btn-outline, a.btn-green, a.btn-primary, a.btn-ghost,
  a.btn-secondary, a.btn, #site-nav .nav-cta, .btn-download, .legal-link,
  .division-item, .app-card, .lesson-card, .legal-card, #site-nav .nav-logo img {
    transition: none !important;
  }
}
