.kate-marquee {
    --kate-marquee-duration: 25s;
    overflow: hidden;
    width: 100%;
    position: relative;
}
.kate-marquee__track {
    display: flex;
    width: max-content;
    animation-duration: var(--kate-marquee-duration);
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    will-change: transform;
}
.kate-marquee__group {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    gap: 32px;
    padding-inline: 16px;
}
.kate-marquee__item {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    white-space: nowrap;
    gap: 32px;
}
.kate-marquee__link {
    color: inherit;
    text-decoration: none;
    display: inline-flex;
}
.kate-marquee__text,
.kate-marquee__separator {
    display: inline-flex;
    align-items: center;
    line-height: 1;
}
.kate-marquee__image,
.kate-marquee__image img {
    display: block;
}
.kate-marquee__image img {
    width: 220px;
    height: 140px;
    object-fit: cover;
}
.kate-marquee--pause:hover .kate-marquee__track {
    animation-play-state: paused;
}
.kate-marquee--left .kate-marquee__track {
    animation-name: kate-marquee-left;
}
.kate-marquee--right .kate-marquee__track {
    animation-name: kate-marquee-right;
}
.kate-marquee--vertical .kate-marquee__track {
    flex-direction: column;
    height: max-content;
}
.kate-marquee--vertical .kate-marquee__group {
    flex-direction: column;
    padding-block: 16px;
    padding-inline: 0;
}
.kate-marquee--vertical .kate-marquee__item {
    flex-direction: column;
}
.kate-marquee--up .kate-marquee__track {
    animation-name: kate-marquee-up;
}
.kate-marquee--down .kate-marquee__track {
    animation-name: kate-marquee-down;
}
@keyframes kate-marquee-left {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
@keyframes kate-marquee-right {
    from { transform: translateX(-50%); }
    to { transform: translateX(0); }
}
@keyframes kate-marquee-up {
    from { transform: translateY(0); }
    to { transform: translateY(-50%); }
}
@keyframes kate-marquee-down {
    from { transform: translateY(-50%); }
    to { transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .kate-marquee__track {
        animation: none !important;
        transform: none !important;
    }
}
