/* =========================================================
   SITE-WIDE LIVE EVENT + NEWS TICKER
   ========================================================= */

.site-live-strip {
    --site-ticker-font-size: .62rem;
    position: sticky;
    top: 52px;
    z-index: 96;
    width: 100%;
    border-top: 1px solid rgba(255,255,255,.08);
    border-bottom: 1px solid rgba(255,255,255,.16);
    background: rgba(5,5,5,.97);
    color: #fff;
    box-shadow: 0 8px 22px rgba(0,0,0,.24);
    backdrop-filter: blur(10px);
    animation: site-live-strip-enter 180ms cubic-bezier(.2,.75,.25,1) both;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

.site-live-strip *,
.site-live-strip *::before,
.site-live-strip *::after {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

.site-live-strip[hidden] {
    display: none !important;
}

.site-live-strip-inner {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    width: min(100%, 1600px);
    min-height: 38px;
    margin: 0 auto;
}

.site-event-stack {
    position: relative;
    z-index: 4;
    min-width: 250px;
    border-right: 1px solid rgba(255,255,255,.2);
    background:
        linear-gradient(110deg, rgba(255,74,84,.13), transparent 75%),
        #090909;
}

.site-event-primary {
    display: grid;
    width: 100%;
    min-height: 38px;
    grid-template-columns: auto auto auto;
    align-items: center;
    justify-content: start;
    gap: .5rem;
    padding: .45rem .72rem;
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
    font: 800 var(--site-ticker-font-size) "Courier New", monospace;
    letter-spacing: .035em;
    line-height: 1;
    text-align: left;
    text-transform: uppercase;
}

.site-event-primary:hover,
.site-event-primary:focus-visible,
.site-event-stack.is-open .site-event-primary {
    background: rgba(255,255,255,.045);
}

.site-event-primary:focus-visible {
    outline: 2px solid var(--accent, #ff4a54);
    outline-offset: -2px;
}

.site-event-primary-name {
    color: #fff;
    font-size: var(--site-ticker-font-size);
    line-height: 1;
    white-space: nowrap;
}

.site-event-primary-countdown {
    color: #d5d5d5;
    font-size: var(--site-ticker-font-size);
    font-variant-numeric: tabular-nums;
    line-height: 1;
    white-space: nowrap;
}

.site-event-primary-countdown[data-live="true"] {
    color: #ff6670;
}

.site-event-primary-countdown[data-live="true"]::before {
    display: inline-block;
    width: 6px;
    height: 6px;
    margin-right: .35rem;
    border-radius: 50%;
    background: #ff4a54;
    box-shadow: 0 0 0 0 rgba(255,74,84,.45);
    content: "";
    animation: site-live-pulse 1.5s ease-out infinite;
}

.site-event-more {
    display: inline-flex;
    min-width: 28px;
    height: 20px;
    align-items: center;
    justify-content: center;
    padding: 0 .35rem;
    border: 1px solid rgba(255,255,255,.26);
    border-radius: 999px;
    color: #fff;
    font-size: var(--site-ticker-font-size);
    line-height: 1;
}

.site-event-more[hidden] {
    display: none !important;
}

.site-event-drawer {
    position: absolute;
    top: calc(100% + 1px);
    left: 0;
    width: min(430px, calc(100vw - 1rem));
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.18);
    border-top: 0;
    background: #0a0a0a;
    box-shadow: 0 18px 42px rgba(0,0,0,.48);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-5px);
    transition:
        opacity 150ms ease,
        transform 190ms cubic-bezier(.2,.75,.25,1),
        visibility 0s linear 190ms;
}

.site-event-stack.is-open .site-event-drawer {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    transition-delay: 0s;
}

.site-event-drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .55rem .72rem;
    border-bottom: 1px solid rgba(255,255,255,.12);
    color: #858585;
    font: 800 .55rem "Courier New", monospace;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.site-event-list {
    display: grid;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-event-list li + li {
    border-top: 1px solid rgba(255,255,255,.09);
}

.site-event-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: .8rem;
    align-items: center;
    padding: .68rem .72rem;
    color: #fff;
    text-decoration: none;
    transition: background-color 140ms ease, transform 170ms ease;
}

.site-event-row:hover,
.site-event-row:focus-visible {
    background: rgba(255,255,255,.05);
}

.site-event-row:focus-visible {
    outline: 2px solid var(--accent, #ff4a54);
    outline-offset: -2px;
}

.site-event-row-main {
    min-width: 0;
}

.site-event-row-name {
    display: block;
    overflow: hidden;
    color: #fff;
    font: 900 .68rem "Courier New", monospace;
    letter-spacing: .035em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.site-event-row-detail {
    display: block;
    overflow: hidden;
    margin-top: .18rem;
    color: #888;
    font: 700 .54rem "Courier New", monospace;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-event-row-countdown {
    color: #cfcfcf;
    font: 900 .62rem "Courier New", monospace;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.site-event-row-countdown[data-live="true"] {
    color: #ff6670;
}

.site-news-ticker {
    display: grid;
    min-width: 0;
    grid-template-columns: auto minmax(0,1fr);
    align-items: stretch;
}

.site-news-label {
    display: flex;
    align-items: center;
    padding: 0 .65rem;
    border-right: 1px solid rgba(255,255,255,.13);
    color: var(--accent, #ff4a54);
    font: 900 var(--site-ticker-font-size) "Courier New", monospace;
    letter-spacing: .11em;
    line-height: 1;
    text-transform: uppercase;
}

.site-news-viewport {
    position: relative;
    min-width: 0;
    overflow: hidden;
    mask-image: linear-gradient(to right, transparent, #000 18px, #000 calc(100% - 18px), transparent);
}

.site-news-track {
    display: flex;
    width: max-content;
    min-height: 38px;
    align-items: center;
    animation: site-news-scroll var(--site-news-duration, 70s) linear infinite;
    animation-play-state: running !important;
    will-change: transform;
}

/* The news rail is operational information, not decorative motion. It keeps
   moving even when the site's broader Motion: Reduced preference is active. */

.site-news-sequence {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    padding-right: 2rem;
}

.site-news-item {
    display: inline-flex;
    align-items: center;
    gap: .42rem;
    color: #d7d7d7;
    font: 700 var(--site-ticker-font-size) "Courier New", monospace;
    letter-spacing: .015em;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}

.site-news-item > span {
    flex: 0 0 auto;
    font-family: "Courier New", monospace;
    font-size: var(--site-ticker-font-size) !important;
    line-height: 1 !important;
}

.site-news-item + .site-news-item::before {
    margin: 0 .65rem;
    color: #4d4d4d;
    content: "•";
}

.site-news-item-source {
    color: #777;
    font-size: var(--site-ticker-font-size) !important;
    font-weight: 900;
    letter-spacing: .055em;
    line-height: 1 !important;
    text-transform: uppercase;
}

.site-news-item:hover,
.site-news-item:focus-visible {
    color: #fff;
}

.site-news-item:focus-visible {
    outline: 1px solid var(--accent, #ff4a54);
    outline-offset: 3px;
}

.site-news-unavailable {
    color: #777;
    font: 700 var(--site-ticker-font-size) "Courier New", monospace;
    letter-spacing: .04em;
    line-height: 1;
    text-transform: uppercase;
}

@keyframes site-live-strip-enter {
    from {
        margin-bottom: -38px;
        opacity: 0;
        transform: translateY(-3px);
    }
    to {
        margin-bottom: 0;
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes site-news-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

/* Reduced-motion mode elsewhere in the shell pins transform:none !important.
   Use the independent translate property here so the information rail can
   still move without fighting that global transform rule. */
@keyframes site-news-scroll-reduced-safe {
    from { translate: 0 0; }
    to { translate: -50% 0; }
}

@keyframes site-live-pulse {
    0% { box-shadow: 0 0 0 0 rgba(255,74,84,.42); }
    70% { box-shadow: 0 0 0 7px rgba(255,74,84,0); }
    100% { box-shadow: 0 0 0 0 rgba(255,74,84,0); }
}

@media (max-width: 850px) {
    .site-live-strip {
        --site-ticker-font-size: .57rem;
        top: 57px;
    }

    .site-live-strip-inner {
        grid-template-columns: fit-content(46vw) minmax(0,1fr);
    }

    .site-event-stack {
        width: max-content;
        max-width: 46vw;
        min-width: 0;
        border-right: 0;
    }

    .site-event-primary {
        grid-template-columns: minmax(0,auto) auto auto;
        gap: .34rem;
        padding-right: .45rem;
        padding-left: .55rem;
    }

    .site-event-primary-name {
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .site-event-more {
        min-width: 24px;
        height: 18px;
        padding: 0 .28rem;
    }

    .site-news-label {
        display: none;
    }

    .site-news-ticker {
        grid-template-columns: minmax(0,1fr);
    }
}

@media (max-width: 520px) {
    .site-live-strip {
        --site-ticker-font-size: .55rem;
    }

    .site-live-strip-inner {
        grid-template-columns: max-content minmax(0,1fr);
    }

    .site-event-stack {
        width: max-content;
        max-width: none;
    }

    .site-event-primary {
        gap: .18rem;
        padding: .42rem .2rem;
    }

    .site-event-primary-name {
        max-width: 42px;
    }

    .site-event-primary-countdown {
        letter-spacing: .015em;
    }

    .site-event-more {
        min-width: 23px;
        padding: 0 .22rem;
    }

    .site-event-drawer {
        position: absolute;
        top: calc(100% + 1px);
        right: auto;
        bottom: auto;
        left: 0;
        width: min(430px, calc(100vw - .5rem));
        max-height: min(62vh, 430px);
        overflow-y: auto;
        border-top: 0;
        transform: translateY(-5px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-live-strip {
        animation: none !important;
    }

    .site-news-track {
        animation: site-news-scroll-reduced-safe var(--site-news-duration, 70s) linear infinite !important;
        animation-play-state: running !important;
    }

    .site-news-sequence:nth-child(2) {
        display: flex !important;
    }

    .site-event-primary-countdown[data-live="true"]::before {
        animation: none;
    }

    .site-event-drawer,
    .site-event-row {
        transition: none !important;
    }
}

html.reduce-motion .site-live-strip {
    animation: none !important;
}

/* Match the shell rule's body-level specificity. The shell's older reduced-
   motion override otherwise wins the cascade on desktop and pins the rail. */
html.reduce-motion body .site-news-track {
    animation: site-news-scroll-reduced-safe var(--site-news-duration, 70s) linear infinite !important;
    animation-play-state: running !important;
}

html.reduce-motion body .site-news-sequence:nth-child(2) {
    display: flex !important;
}

html.reduce-motion .site-event-primary-countdown[data-live="true"]::before {
    animation: none;
}

/* Pause the actual moving rail. CSS play-state resumes from the exact frame instead of catching up. */
.site-news-viewport:hover .site-news-track,
.site-news-viewport:focus-within .site-news-track {
    animation-play-state: paused !important;
}

html.reduce-motion body .site-news-viewport:hover .site-news-track,
html.reduce-motion body .site-news-viewport:focus-within .site-news-track {
    animation-play-state: paused !important;
}

