/* ============================================================
   UTILITIES — reveal animations, helpers
   ============================================================ */

/* ============== REVEAL ANIMATIONS ============== */
.reveal {
  opacity: 0;
  transition:
    opacity 800ms var(--ease-out),
    transform 800ms var(--ease-out);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.reveal[data-reveal="up"]    { transform: translateY(36px); }
.reveal[data-reveal="down"]  { transform: translateY(-28px); }
.reveal[data-reveal="left"]  { transform: translateX(-36px); }
.reveal[data-reveal="right"] { transform: translateX(36px); }
.reveal[data-reveal="zoom"]  { transform: scale(0.96); }

.reveal.is-visible {
  opacity: 1;
  transform: translate(0, 0) scale(1);
}

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  .hero__floater { animation: none !important; }
  .hero__scroll span { animation: none !important; }
}

/* ============== HELPERS ============== */
.text-center { text-align: center; }
.mt-0 { margin-top: 0 !important; }
.mb-0 { margin-bottom: 0 !important; }

/* Print */
@media print {
  .site-header, .mobile-menu, .hero__scroll, .hero__floater,
  .site-footer__social, .resources__cta, .contact-form, .burger { display: none !important; }
  body { background: #fff; color: #000; }
  .section { padding-block: 1rem; }
  a { text-decoration: underline; }
}
