:root {
  --a11y-bottom: 72px; /* lifts the a11y fab above the sticky mobile CTA */
}

/* Mobile sticky CTA safe-area padding */
.sticky-cta { padding-bottom: env(safe-area-inset-bottom, 0px); }

/* Push footer content above sticky CTA on mobile (already handled via footer pb-28) */

/* Marquee — infinite scroll (paused when reduced motion) */
.marquee { overflow: hidden; }
.marquee-track {
  animation: marquee-scroll 28s linear infinite;
  will-change: transform;
}
@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-100%); }
}

/* Slow hero SVG spin (motion-safe only) */
@media (prefers-reduced-motion: no-preference) {
  .hero-spin {
    animation: hero-spin 60s linear infinite;
    transform-box: fill-box;
  }
}
@keyframes hero-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* Sticker rotation for a hand-placed feel */
.sticker {
  transform: rotate(-3deg);
  transform-origin: center;
}

/* Reduced-motion respects */
@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation: none !important; }
  .hero-spin     { animation: none !important; }
}

/* Give headline tighter optical leading in serif */
h1, h2, h3 { text-wrap: balance; }
