/* Seamless infinite marquee: exactly two identical copies of the text side
   by side, translated by -50% (or +50% for RTL) of the doubled track's own
   width — landing precisely where the second copy starts, so the loop can
   never show a gap regardless of how short or long the text is. */
.aok-marquee,.aok-marquee *{font-weight:400!important}
.aok-marquee{position:relative;width:100%;overflow:hidden;white-space:nowrap}
.aok-marquee-track{display:inline-flex;white-space:nowrap;will-change:transform}
.aok-marquee-track span{display:inline-flex;flex:none;padding-inline-end:60px}
.aok-marquee-track.aok-m-ltr{animation-name:aok-marquee-ltr}
.aok-marquee-track.aok-m-rtl{animation-name:aok-marquee-rtl}
.aok-marquee-track{animation-timing-function:linear;animation-iteration-count:infinite}
.aok-marquee.aok-m-paused .aok-marquee-track{animation-play-state:paused}
@keyframes aok-marquee-ltr{from{transform:translateX(0)}to{transform:translateX(calc(-1 * var(--aok-marquee-shift)))}}
@keyframes aok-marquee-rtl{from{transform:translateX(0)}to{transform:translateX(var(--aok-marquee-shift))}}
@media (prefers-reduced-motion:reduce){.aok-marquee-track{animation:none}}
