.ioi-text-marquee {
    --ioi-text-gap: 36px;
    --ioi-text-items-per-view: 7;
    --ioi-text-fade-width: 60px;
    width: 100%;
    overflow: hidden;
    box-sizing: border-box;
}

.ioi-text-marquee__track {
    display: flex;
    width: max-content;
    animation-name: ioi-text-marquee-scroll;
    animation-duration: 30s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    will-change: transform;
}

.ioi-text-marquee__group {
    display: flex;
    align-items: center;
    flex: none;
    gap: var(--ioi-text-gap);
    padding-right: var(--ioi-text-gap);
}

.ioi-text-marquee__item {
    flex: 0 0 calc(
        (var(--ioi-text-marquee-width, 100vw) - ((var(--ioi-text-items-per-view) - 1) * var(--ioi-text-gap))) /
        var(--ioi-text-items-per-view)
    );
    min-width: 0;
    white-space: nowrap;
    text-align: center;
    line-height: 1;
}

.ioi-text-marquee__item a {
    color: inherit;
    text-decoration: none;
}

.ioi-text-marquee__separator {
    margin-left: var(--ioi-text-gap);
}

.ioi-text-marquee--pause:hover .ioi-text-marquee__track {
    animation-play-state: paused;
}

.ioi-text-marquee--right .ioi-text-marquee__track {
    animation-direction: reverse;
}

.ioi-text-marquee--fade {
    -webkit-mask-image: linear-gradient(
        90deg,
        transparent 0,
        #000 var(--ioi-text-fade-width),
        #000 calc(100% - var(--ioi-text-fade-width)),
        transparent 100%
    );
    mask-image: linear-gradient(
        90deg,
        transparent 0,
        #000 var(--ioi-text-fade-width),
        #000 calc(100% - var(--ioi-text-fade-width)),
        transparent 100%
    );
}

.ioi-text-marquee__empty {
    padding: 16px;
    border: 1px dashed #c8c8c8;
    text-align: center;
    font-size: 13px;
}

@keyframes ioi-text-marquee-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
    .ioi-text-marquee__track {
        animation: none !important;
        transform: none !important;
    }
}