/* Fxtriangle mobile headline ticker: scrolling only where motion is permitted.
   Standalone stylesheet loaded by the shared ticker partial, after the existing site CSS. */
@media (max-width: 767.98px) and (prefers-reduced-motion: no-preference) {
  .fx-live-ribbon .fx-live-ribbon-inner { min-width: 0; }
  .fx-live-ribbon .fx-live-ribbon-window {
    min-width: 0;
    overflow: hidden !important;
    overscroll-behavior-x: contain;
    touch-action: pan-y;
  }
  .fx-live-ribbon .fx-live-ribbon-track.fx-ticker-mobile-ready {
    display: flex;
    flex: 0 0 auto;
    width: max-content !important;
    max-width: none !important;
    overflow: visible !important;
    padding-right: 0 !important;
    animation: fx-mobile-headline-scroll var(--fx-mobile-duration, 75s) linear infinite !important;
    will-change: transform;
  }
  .fx-live-ribbon .fx-live-ribbon-headline { flex: 0 0 auto; }
  .fx-live-ribbon:focus-within .fx-live-ribbon-track.fx-ticker-mobile-ready {
    animation-play-state: paused;
  }
  @media (hover: hover) and (pointer: fine) {
    .fx-live-ribbon:hover .fx-live-ribbon-track.fx-ticker-mobile-ready {
      animation-play-state: paused;
    }
  }
  @media (hover: none) {
    /* A touch on the ribbon must not leave it stuck in :hover pause mode. */
    .fx-live-ribbon:hover .fx-live-ribbon-track.fx-ticker-mobile-ready:not(:focus-within) {
      animation-play-state: running;
    }
  }
}
@keyframes fx-mobile-headline-scroll {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(var(--fx-mobile-shift, -50%), 0, 0); }
}
@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) {
  .fx-live-ribbon .fx-live-ribbon-window {
    overflow-x: auto !important;
    touch-action: pan-x pan-y;
    -webkit-overflow-scrolling: touch;
  }
  .fx-live-ribbon .fx-live-ribbon-track {
    width: max-content !important;
    max-width: none !important;
    animation: none !important;
    transform: none !important;
  }
}
/* Short labels reserve more readable headline space on narrow phones.
   Both labels retain their original link destinations and accessible text. */
@media (max-width: 480px) {
  .fx-live-ribbon .fx-live-ribbon-label {
    font-size: 0 !important;
    letter-spacing: 0 !important;
    padding: 0 9px !important;
    gap: 5px;
  }
  .fx-live-ribbon .fx-live-ribbon-label::after {
    content: "LIVE";
    font-size: 10px;
    letter-spacing: .06em;
  }
  .fx-live-ribbon .fx-live-ribbon-all {
    font-size: 0 !important;
    padding: 0 8px !important;
    gap: 4px;
  }
  .fx-live-ribbon .fx-live-ribbon-all::before {
    content: "All";
    font-size: 11px;
  }
  .fx-live-ribbon .fx-live-ribbon-all span { font-size: 12px; }
}
