/* Page-level custom styles — kept small. */

:root {
  /* Lift the accessibility FAB above the sticky mobile CTA bar on mobile. */
  --a11y-bottom: 80px;
}

@media (min-width: 768px) {
  :root { --a11y-bottom: 24px; }
}

/* Avoid the sticky CTA overlapping the last section's content on mobile. */
@media (max-width: 767px) {
  body { padding-bottom: 64px; }
}

/* Marquee ticker — seamless loop. Wrapped in motion guard. */
.marquee {
  animation: marquee 38s linear infinite;
  will-change: transform;
}
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Hero brass thread: slow one-shot draw-in, respects reduced motion. */
.thread-draw {
  stroke-dasharray: 600;
  stroke-dashoffset: 600;
}

@media (prefers-reduced-motion: no-preference) {
  .thread-draw {
    animation: thread 2.2s ease-out .2s forwards;
  }
}
@keyframes thread {
  to { stroke-dashoffset: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .marquee { animation: none; transform: translateX(0); }
  .thread-draw { stroke-dashoffset: 0; }
}
