/* Announcement ticker — loaded only when active messages exist. */
.ann-bar {
    --ann-h: 40px;
    box-sizing: border-box;
    position: relative;
    z-index: 45;
    display: block;
    height: calc(var(--ann-h) + env(safe-area-inset-top, 0px));
    background: var(--ann-bg, transparent);
    color: var(--ann-fg, inherit);
    font-size: 15px;
    line-height: 1.2;
    overflow: visible;
    transition: height .28s ease;
}
.ann-bar.is-pinned {
    position: sticky;
    top: 0;
}
.ann-bar.is-closing {
    overflow: hidden;
}
.ann-inner {
    display: flex;
    align-items: center;
    gap: .15rem;
    height: var(--ann-h);
    margin-top: env(safe-area-inset-top, 0px);
    min-width: 0;
}
.ann-viewport {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    touch-action: pan-y;
}
.ann-track {
    display: flex;
    width: max-content;
    animation: ann-rtl var(--ann-duration, 28s) linear infinite;
    will-change: transform;
}
.ann-track[data-motion="ltr"] {
    animation-name: ann-ltr;
}
@keyframes ann-rtl {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(calc(var(--ann-shift, 50%) * -1), 0, 0); }
}
@keyframes ann-ltr {
    from { transform: translate3d(calc(var(--ann-shift, 50%) * -1), 0, 0); }
    to { transform: translate3d(0, 0, 0); }
}
.ann-seq {
    display: flex;
    align-items: center;
    flex: none;
}
.ann-item {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding-inline: .85rem;
    white-space: nowrap;
    user-select: text;
    -webkit-user-select: text;
}
.ann-item .ann-msg-icon.h-6 {
    width: 1em;
    height: 1em;
    flex: none;
}
.ann-link,
.ann-text {
    color: inherit;
    text-decoration: none;
}
.ann-link {
    color: var(--ann-link, inherit);
    text-decoration: underline;
    text-underline-offset: .15em;
}
.ann-item.has-custom .ann-link { color: inherit; }
.ann-link:hover { text-decoration-thickness: 2px; }
.ann-sep {
    display: inline-flex;
    align-items: center;
    opacity: .75;
    flex: none;
}
.ann-sep-icon {
    width: .45rem;
    height: .45rem;
    display: block;
}
.ann-toggle,
.ann-close {
    position: relative;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    margin-block: calc((var(--ann-h) - 44px) / 2);
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.ann-toggle svg,
.ann-close svg {
    width: 16px;
    height: 16px;
    display: block;
}
.ann-icon-play { display: none; }
.ann-bar.is-paused .ann-icon-pause { display: none; }
.ann-bar.is-paused .ann-icon-play { display: block; }
.ann-bar[data-pause-hover="1"]:hover .ann-track,
.ann-bar:focus-within .ann-track,
.ann-bar.is-paused .ann-track,
.ann-bar.is-holding .ann-track {
    animation-play-state: paused;
}
.ann-link:focus-visible,
.ann-toggle:focus-visible,
.ann-close:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}
html.ann-dismissed .ann-bar { display: none !important; }
html.ann-dismissed { --ann-offset: 0px !important; }

@media (max-width: 639px) {
    .ann-bar { --ann-h: 34px; font-size: 13px; }
    .ann-bar[data-show-mobile="0"] { display: none !important; }
    html:has(.ann-bar[data-show-mobile="0"]) { --ann-offset: 0px; }
}
@media (min-width: 640px) and (max-width: 1023px) {
    .ann-bar { --ann-h: 38px; font-size: 14px; }
    .ann-bar[data-show-tablet="0"] { display: none !important; }
    html:has(.ann-bar[data-show-tablet="0"]) { --ann-offset: 0px; }
}
@media (min-width: 1024px) {
    .ann-bar { --ann-h: 40px; font-size: 15px; }
    .ann-bar[data-show-desktop="0"] { display: none !important; }
    html:has(.ann-bar[data-show-desktop="0"]) { --ann-offset: 0px; }
}
.ann-bar[data-font="13"] { font-size: 13px; }
.ann-bar[data-font="14"] { font-size: 14px; }
.ann-bar[data-font="15"] { font-size: 15px; }

@media (prefers-reduced-motion: reduce) {
    .ann-track {
        animation: none !important;
        transform: none !important;
        will-change: auto;
    }
    .ann-seq[aria-hidden="true"],
    .ann-pad { display: none !important; }
    .ann-viewport {
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-x pan-y;
        overscroll-behavior-x: contain;
    }
    .ann-item { scroll-snap-align: start; }
}
