/* Sentinel site — shared enhancements.
   Scroll-reveal is gated on html.reveal-ready (added by js/site.js) so content is
   never hidden if JS fails to load or prefers-reduced-motion is set. */
html.reveal-ready .reveal {
  opacity: 0;
  transform: translateY(28px);
  will-change: opacity, transform;
}
html.reveal-ready .reveal.reveal-in {
  opacity: 1;
  transform: none;
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Global mobile sweep: the mockups are desktop-first, so cap the largest type and
   the 120px section gaps on small screens. Pages with their own responsive sizes
   (e.g. the home hero uses text-4xl on mobile) are unaffected — these only catch
   raw, unprefixed utilities. */
@media (max-width: 640px) {
  .text-display-lg { font-size: 40px !important; line-height: 46px !important; }
  .text-headline-xl { font-size: 30px !important; line-height: 38px !important; }
  .py-section-gap { padding-top: 56px !important; padding-bottom: 56px !important; }
  .pt-section-gap { padding-top: 48px !important; }
  .pb-section-gap { padding-bottom: 56px !important; }
  .mt-section-gap { margin-top: 48px !important; }
  .mb-section-gap { margin-bottom: 40px !important; }
}
