.top-banner { position: sticky; top: 0; z-index: 81; background: #861c29; color: #fff; }
body .site-header { top: 60px; }
html:has(.top-banner) { scroll-padding-top: calc(var(--site-header-height) + 84px); }
.top-banner-inner { position: relative; display: flex; align-items: center; justify-content: center; min-height: 60px; max-width: 1440px; margin: auto; padding: 8px 190px; box-sizing: border-box; }
.top-banner-message { display: inline-flex; align-items: center; justify-content: center; gap: 14px; color: inherit; text-decoration: none; line-height: 1.35; }
.top-banner-message strong { font-size: 20px; font-weight: 700; }
.top-banner a:focus-visible { outline: 2px solid white; outline-offset: 3px; }
@media (max-width: 767px) {
  body .site-header { top: 55px; }
  html:has(.top-banner) { scroll-padding-top: calc(var(--site-header-height) + 79px); }
  .top-banner-inner { justify-content: center; gap: 8px; min-height: 55px; padding: 8px 16px; }
  .top-banner-message { gap: 7px; }
  .top-banner-message strong { font-size: 15px; }
}

@media (min-width: 961px) {
  body .case-sidebar, body .story-sidebar { top: calc(var(--site-header-height) + 92px); }
}

@keyframes top-banner-glow {
  0%, 100% { color: #fff; }
  50% { color: #ffd4a8; }
}
.top-banner-message strong { animation: top-banner-glow 2.4s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .top-banner-message strong { animation: none; } }
