.stack-marquee {
    overflow: hidden;
}

.stack-marquee__lane {
    overflow: hidden;
}

.stack-marquee__lane + .stack-marquee__lane {
    margin-top: var(--stack-marquee-row-gap);
}

.stack-marquee__track {
    display: flex;
    width: max-content;
    animation: stack-marquee var(--stack-marquee-duration) linear infinite;
    will-change: transform;
}

.stack-marquee__lane--reverse .stack-marquee__track {
    animation-name: stack-marquee-reverse;
}

.stack-marquee__group {
    display: flex;
    flex: none;
    gap: var(--stack-marquee-gap);
    padding-inline-end: var(--stack-marquee-gap);
}

@keyframes stack-marquee {
    to { transform: translate3d(-50%, 0, 0); }
}

@keyframes stack-marquee-reverse {
    from { transform: translate3d(-50%, 0, 0); }
    to { transform: translate3d(0, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
    .stack-marquee__track {
        width: 100%;
        animation: none;
        transform: none;
        will-change: auto;
    }

    .stack-marquee__group {
        width: 100%;
        flex-wrap: wrap;
        justify-content: center;
        padding-inline-end: 0;
    }

    .stack-marquee__group[aria-hidden="true"] {
        display: none;
    }

    .stack-marquee--rail .stack-marquee__track,
    .stack-marquee--rail .stack-marquee__group {
        width: max-content;
    }

    .stack-marquee--rail .stack-marquee__group {
        flex-wrap: nowrap;
        justify-content: flex-start;
    }
}
