/* Announcements: the band above the home hero. Each announcement can bring
   its own color pair (--rt-an-a, --rt-an-b); without one the band runs from
   the site's ink into its primary, so it is on brand by construction. The
   content sits centered (most notices are one line and a button or two),
   and a shimmering edge top and bottom says where the band begins and ends. */
.rt-an-stack { position: relative; z-index: 3; }
.rt-an { --rt-an-a: var(--rt-ink, #1a1a1a); --rt-an-b: var(--rt-primary, #2566b6); position: relative; overflow: hidden; background: linear-gradient(120deg, var(--rt-an-a), var(--rt-an-b)); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.28), 0 0 22px rgba(255,255,255,.28), 0 6px 26px rgba(0,0,0,.28); }
.rt-an[hidden] { display: none; }
.rt-an + .rt-an { margin-top: 6px; }
/* The shimmer edges. */
.rt-an::before, .rt-an::after { content: ""; position: absolute; left: 0; right: 0; height: 3px; z-index: 2; pointer-events: none; background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.35) 25%, #fff 50%, rgba(255,255,255,.35) 75%, rgba(255,255,255,0) 100%); background-size: 60% 100%; background-repeat: no-repeat; background-color: rgba(255,255,255,.28); animation: rt-an-shimmer 3.2s linear infinite; }
.rt-an::before { top: 0; }
.rt-an::after { bottom: 0; animation-direction: reverse; }
@keyframes rt-an-shimmer { 0% { background-position: -60% 0; } 100% { background-position: 160% 0; } }
/* The glitter. Three layers under the content: the site's background image
   if it has one (a starfield), a dense field of tiny points in two sizes
   twinkling out of phase, and a soft shine that sweeps across every few
   seconds. Together they read as glitter, not as a flat gradient. */
.rt-an-stack.has-bg .rt-an { background-image: linear-gradient(120deg, color-mix(in srgb, var(--rt-an-a) 82%, transparent), color-mix(in srgb, var(--rt-an-b) 82%, transparent)), var(--rt-an-bg); background-size: auto, cover; background-position: center; }
.rt-an-sparkle, .rt-an-glitter, .rt-an-shine { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.rt-an-sparkle { opacity: .9;
  background-image:
    radial-gradient(circle, #fff 0 1.6px, rgba(255,255,255,0) 2.8px),
    radial-gradient(circle, #fff 0 1.2px, rgba(255,255,255,0) 2.2px),
    radial-gradient(circle, #fff 0 2px, rgba(255,255,255,0) 3.4px),
    radial-gradient(circle, #fff 0 1.3px, rgba(255,255,255,0) 2.3px),
    radial-gradient(circle, #fff 0 1.7px, rgba(255,255,255,0) 3px),
    radial-gradient(circle, #fff 0 1.1px, rgba(255,255,255,0) 2px),
    radial-gradient(circle, #fff 0 1.5px, rgba(255,255,255,0) 2.6px),
    radial-gradient(circle, #fff 0 1.2px, rgba(255,255,255,0) 2.2px);
  background-repeat: no-repeat;
  background-position: 4% 24%, 11% 78%, 22% 14%, 34% 66%, 47% 20%, 63% 74%, 78% 18%, 92% 70%;
  animation: rt-an-twinkle 2.4s ease-in-out infinite; }
.rt-an-glitter { opacity: .75;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.95) 0 .9px, rgba(255,255,255,0) 1.6px),
    radial-gradient(circle, rgba(255,255,255,.8) 0 .7px, rgba(255,255,255,0) 1.4px),
    radial-gradient(circle, rgba(255,255,255,.9) 0 1px, rgba(255,255,255,0) 1.8px);
  background-size: 140px 90px, 110px 70px, 190px 120px;
  background-position: 0 0, 40px 30px, 90px 10px;
  animation: rt-an-glitter 3.1s ease-in-out infinite; }
.rt-an-shine { background: linear-gradient(115deg, rgba(255,255,255,0) 35%, rgba(255,255,255,.16) 48%, rgba(255,255,255,.34) 50%, rgba(255,255,255,.16) 52%, rgba(255,255,255,0) 65%); background-size: 240% 100%; animation: rt-an-shine 6.5s ease-in-out infinite; mix-blend-mode: screen; }
@keyframes rt-an-twinkle { 0%, 100% { opacity: .45; } 50% { opacity: 1; } }
@keyframes rt-an-glitter { 0%, 100% { opacity: .35; background-position: 0 0, 40px 30px, 90px 10px; } 50% { opacity: .9; background-position: 3px -2px, 37px 33px, 93px 8px; } }
@keyframes rt-an-shine { 0% { background-position: 120% 0; } 60%, 100% { background-position: -120% 0; } }
/* Happening Today and Live Now. A one-day notice glows on its day: the
   pill appears, the sparkle brightens, the edges shimmer faster and the
   band breathes a soft glow. Inside its live hours the pill flips to Live
   Now with a blinking dot and everything steps up a notch. Game day
   energy, not a siren. */
.rt-an-pill { display: none; align-items: center; gap: .45rem; font-size: .72rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; background: rgba(255,255,255,.95); color: var(--rt-an-b); padding: .3rem .9rem; border-radius: 999px; box-shadow: 0 4px 14px rgba(0,0,0,.3); }
.rt-an-pill > span { display: none; align-items: center; gap: .45rem; }
.rt-an-pill-live i { font-size: .55rem; color: #e11d2a; animation: rt-an-blink 1.2s ease-in-out infinite; }
.rt-an-pill-today i { color: var(--rt-an-b); animation: rt-an-spin 6s linear infinite; }
.rt-an.is-today .rt-an-pill, .rt-an.is-live .rt-an-pill { display: inline-flex; }
.rt-an.is-today .rt-an-pill-today { display: inline-flex; }
.rt-an.is-live .rt-an-pill-today { display: none; }
.rt-an.is-live .rt-an-pill-live { display: inline-flex; }
.rt-an.is-today { animation: rt-an-breathe 3.2s ease-in-out infinite; }
.rt-an.is-today .rt-an-sparkle, .rt-an.is-today .rt-an-glitter { opacity: 1; animation-duration: 1.8s; }
.rt-an.is-today::before, .rt-an.is-today::after { animation-duration: 2.2s; background-color: rgba(255,255,255,.4); }
.rt-an.is-live { animation: rt-an-breathe 2.2s ease-in-out infinite; }
.rt-an.is-live .rt-an-sparkle, .rt-an.is-live .rt-an-glitter { opacity: 1; animation-duration: 1.2s; }
.rt-an.is-live .rt-an-shine { animation-duration: 3.5s; }
.rt-an.is-live::before, .rt-an.is-live::after { animation-duration: 1.5s; background-color: rgba(255,255,255,.5); }
.rt-an.is-live .rt-an-logo, .rt-an.is-today .rt-an-logo { animation: rt-an-bob 2.4s ease-in-out infinite; }
@keyframes rt-an-blink { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
@keyframes rt-an-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes rt-an-breathe { 0%, 100% { box-shadow: inset 0 0 0 1px rgba(255,255,255,.28), 0 0 22px rgba(255,255,255,.28), 0 6px 26px rgba(0,0,0,.28); } 50% { box-shadow: inset 0 0 0 1px rgba(255,255,255,.6), 0 0 44px rgba(255,255,255,.6), 0 6px 26px rgba(0,0,0,.28); } }
@keyframes rt-an-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
/* Slider: more than one in force shows one at a time and slides between them. */
.rt-an-stack.is-slider .rt-an { display: none; }
.rt-an-stack.is-slider .rt-an.is-on { display: block; }
.rt-an-stack.is-slider .rt-an + .rt-an { margin-top: 0; }
.rt-an.slide-left .rt-an-inner { animation: rt-an-in-left .45s ease-out; }
.rt-an.slide-right .rt-an-inner { animation: rt-an-in-right .45s ease-out; }
@keyframes rt-an-in-left { from { opacity: 0; transform: translateX(40px); } to { opacity: 1; transform: none; } }
@keyframes rt-an-in-right { from { opacity: 0; transform: translateX(-40px); } to { opacity: 1; transform: none; } }
.rt-an-arrow { display: none; position: absolute; top: 50%; transform: translateY(-50%); z-index: 4; width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(255,255,255,.16); color: #fff; cursor: pointer; font-size: 1rem; transition: background .15s; }
.rt-an-arrow:hover { background: rgba(255,255,255,.32); }
.rt-an-arrow--prev { left: 14px; }
.rt-an-arrow--next { right: 14px; }
.rt-an-dots { display: none; position: absolute; left: 0; right: 0; bottom: 8px; z-index: 4; justify-content: center; gap: 6px; }
.rt-an-dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.45); cursor: pointer; }
.rt-an-dot.is-on { background: #fff; width: 22px; border-radius: 999px; }
.rt-an-stack.is-slider { position: relative; }
.rt-an-stack.is-slider .rt-an-arrow, .rt-an-stack.is-slider .rt-an-dots { display: flex; align-items: center; justify-content: center; }
.rt-an-stack.is-slider .rt-an-inner { padding-bottom: 1.4rem; }
@media (prefers-reduced-motion: reduce) { .rt-an::before, .rt-an::after, .rt-an-sparkle, .rt-an-glitter, .rt-an-shine, .rt-an.is-live, .rt-an.is-today, .rt-an.is-live .rt-an-logo, .rt-an.is-today .rt-an-logo, .rt-an-pill-live i, .rt-an-pill-today i, .rt-an.slide-left .rt-an-inner, .rt-an.slide-right .rt-an-inner { animation: none; } }
.rt-an-inner { position: relative; z-index: 1; max-width: min(1440px, 94vw); margin: 0 auto; padding: .85rem 2.6rem .95rem; display: flex; flex-direction: column; align-items: center; text-align: center; gap: .45rem; }
.rt-an-icon { font-size: 1.8rem; opacity: .95; text-shadow: 0 1px 3px rgba(0,0,0,.35); }
.rt-an-logo { display: inline-flex; align-items: center; justify-content: center; background: #fff; border-radius: 12px; padding: 6px 14px; box-shadow: 0 6px 18px rgba(0,0,0,.25); }
.rt-an-logo img { display: block; height: 44px; width: auto; max-width: 180px; }
.rt-an-words { min-width: 0; text-shadow: 0 1px 3px rgba(0,0,0,.35); }
.rt-an-title { display: block; font-family: var(--rt-font-display, inherit); font-weight: var(--rt-font-display-weight, 700); font-size: 1.45rem; letter-spacing: .05em; text-transform: uppercase; line-height: 1.1; }
.rt-an-text { display: block; font-size: 1rem; opacity: .95; margin-top: .25rem; line-height: 1.35; }
.rt-an-ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin-top: .15rem; }
/* Buttons invert on the band: white pills with the band's own color as text. */
.rt-an .rt-an-btn { background: #fff !important; color: var(--rt-an-b) !important; border-color: #fff !important; box-shadow: 0 6px 18px rgba(0,0,0,.25); white-space: nowrap; }
.rt-an .rt-an-btn:hover { background: rgba(255,255,255,.88) !important; color: var(--rt-an-b) !important; }
.rt-an .rt-an-btn--map { background: rgba(255,255,255,.14) !important; color: #fff !important; border-color: rgba(255,255,255,.7) !important; box-shadow: none; }
.rt-an .rt-an-btn--map:hover { background: rgba(255,255,255,.26) !important; color: #fff !important; }
.rt-an-close { position: absolute; top: .45rem; right: .6rem; z-index: 2; background: transparent; border: 0; color: #fff; opacity: .7; font-size: 1.15rem; cursor: pointer; padding: .3rem .4rem; line-height: 1; }
.rt-an-close:hover { opacity: 1; }
@media (max-width: 768px) {
  .rt-an-stack--home .rt-an { width: 100vw; margin-left: calc(50% - 50vw); }
  .rt-an-inner { max-width: none; padding: .9rem 5vw 1rem; gap: .4rem; }
  .rt-an-arrow { width: 32px; height: 32px; font-size: .85rem; }
  .rt-an-arrow--prev { left: 6px; }
  .rt-an-arrow--next { right: 6px; }
  .rt-an-stack.is-slider .rt-an-inner { padding-left: 11vw; padding-right: 11vw; padding-bottom: 1.5rem; }
  .rt-an-logo img { height: 38px; }
  .rt-an-title { font-size: 1.2rem; }
  .rt-an-ctas { width: 100%; flex-direction: column; align-items: stretch; }
  .rt-an .rt-an-btn { width: 100%; text-align: center; padding: 12px 20px; font-size: 1.02rem; }
}
