.welcome-notice-content {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    white-space: nowrap;
}

.welcome-notice-summary,
.welcome-notice-separator {
    flex: 0 0 auto;
}

.home-small-announcement-viewport {
    display: block;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-small-announcement-track {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: bottom;
    white-space: nowrap;
}

.home-small-announcement-viewport.is-rotate .home-small-announcement-track.is-entering {
    animation: homeNoticeRotateIn 240ms ease-out;
}

.home-small-announcement-viewport.is-marquee {
    flex: 1 1 auto;
    max-width: none;
    text-overflow: clip;
}

.home-small-announcement-viewport.is-marquee .home-small-announcement-track {
    max-width: none;
    overflow: visible;
    text-overflow: clip;
    padding-inline-start: 100%;
    animation: homeNoticeMarquee var(--home-notice-marquee-duration, 16s) linear infinite;
    will-change: transform;
}

@keyframes homeNoticeRotateIn {
    from { opacity: 0; transform: translateY(3px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes homeNoticeMarquee {
    from { transform: translateX(0); }
    to { transform: translateX(-100%); }
}

@media (max-width: 768px) {
    .welcome-notice-content {
        justify-content: flex-start;
    }

    .welcome-notice-summary {
        max-width: 50%;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .home-small-announcement-viewport {
        flex: 1 1 auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-small-announcement-viewport.is-marquee .home-small-announcement-track,
    .home-small-announcement-viewport.is-rotate .home-small-announcement-track.is-entering {
        animation: none;
    }
}
