.campaign-carousel { max-width: min(100%,760px,calc((100svh - 330px)*1.7778)); margin-inline: auto; }
.campaign-rail { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; border-radius: 18px; }
.campaign-rail::-webkit-scrollbar { display: none; }
.campaign-rail:focus-visible { outline: 2px solid var(--white); outline-offset: -3px; }
.campaign-slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; scroll-snap-stop: always; padding-bottom: 52px; }
.case-screen .campaign-slide .film-window { max-width: 100%; }
.campaign-caption { margin-top: -36px; position: relative; pointer-events: none; color: #e1e4e8; font-size: 15px; line-height: 1.5; }
.campaign-carousel:has(.playing) .campaign-caption { visibility: hidden; }
.campaign-controls { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 8px; }
.campaign-rotation { min-height: 44px; padding: 4px 0; font-size: 14px; color: #c0c5cb; text-align: left; }
.campaign-count { font-size: 14px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.campaign-controls .gallery-controls button { width: 44px; height: 44px; }
.campaign-controls[hidden] { display: none; }
.campaign-fallback { display: flex; flex-wrap: wrap; gap: 12px; }
.campaign-panel .case-screen > p { margin-top: 8px; }
.campaign-source { display: flex; white-space: normal; }
@media (max-width: 700px) {
  .campaign-carousel { max-width: 100%; }
  .campaign-controls, .campaign-controls .gallery-controls { gap: 8px; }
  .campaign-count, .campaign-rotation { font-size: 13px; }
  .campaign-panel .case-summary { display: block; }
}
