/* Legendary Flix — base layer (2026-10-05): motion tokens, keyboard parity,
   reduced-motion guard, touch targets. Loaded by every public page, before
   the page's own styles. Doctrine: Second Brain Operations/wiki/concepts/site-fundamentals.md */

/* ── one motion scale ───────────────────────────────────────────────────
   Two durations, one entrance curve, one exit curve. Every transition and
   animation on the site routes through these tokens — consistency is what
   reads as expensive. */
:root {
  --dur-1: 0.25s;                            /* exits, hovers, small moves */
  --dur-2: 0.6s;                             /* entrances, reveals */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1); /* entrances (expo-out) */
  --ease-in: cubic-bezier(0.55, 0, 1, 0.45); /* exits */
}

/* ── keyboard parity ──────────────────────────────────────────────────── */
:focus-visible {
  outline: 2px solid #c24a2a;
  outline-offset: 3px;
  border-radius: 2px;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 10000;
  background: #c24a2a;
  color: #fff;
  padding: 14px 22px;
  font-size: 1rem;
  font-weight: 600;
  border-radius: 0 0 8px 0;
  text-decoration: none;
}
.skip-link:focus {
  left: 0;
}

/* ── touch targets: 44px footer links without layout change ───────────── */
footer a,
.footer-col a,
.footer-bottom a {
  /* 15px pads a ~14px line to the 44px floor (12px measured 39px on an SE) */
  display: inline-block;
  padding: 15px 0;
  margin: -15px 0;
}

/* homepage video-card mute buttons were 40x40 */
.pcard-mute {
  min-width: 44px;
  min-height: 44px;
}

/* ── reduced motion: one guard that stills everything CSS-driven ────────
   Fires only for visitors whose OS asks for reduced motion. GSAP-driven
   pages additionally collapse their tweens via lfReducedMotion() below
   (wired inline next to the gsap include). */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
