/* Utilities */
.mt-0 { margin-top: 0; } .mt-1 { margin-top: var(--spacing-sm); } .mt-2 { margin-top: var(--spacing-md); } .mt-3 { margin-top: var(--spacing-lg); }
.mb-0 { margin-bottom: 0; } .mb-1 { margin-bottom: var(--spacing-sm); } .mb-2 { margin-bottom: var(--spacing-md); } .mb-3 { margin-bottom: var(--spacing-lg); }
.text-center { text-align: center; }
.flex-actions { display: flex; flex-wrap: wrap; gap: 0.8rem; align-items: center; }
.rounded { border-radius: var(--radius-lg); overflow: hidden; }
.shadow { box-shadow: var(--shadow-lg); }
.hide-mobile { } @media (max-width: 760px) { .hide-mobile { display: none !important; } }

/* Fade-up on scroll (site.js adds .is-visible). Content is visible without JS. */
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity var(--transition-slow), transform var(--transition-slow); }
.js .reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .js .reveal { opacity: 1; transform: none; transition: none; } }
