/* One document, one scroll container. Kept separate so browser caches cannot retain an older scroll layer. */
html {
  block-size: auto !important;
  min-block-size: 0 !important;
  overflow-x: clip !important;
  overflow-y: auto !important;
  scrollbar-gutter: auto !important;
}

body {
  block-size: auto !important;
  min-block-size: 0 !important;
  max-inline-size: 100% !important;
  overflow: visible !important;
}

body:has(dialog[open]) {
  overflow: hidden !important;
}

main,
main > section,
footer {
  contain: none !important;
  content-visibility: visible !important;
}

/* The news strip is deliberately horizontal; it must never create a vertical scroll layer. */
.news-rail,
.news-rail-wrap {
  overflow-y: hidden !important;
}

/* The opening scene always fills the full large viewport. */
.hero {
  block-size: 100lvh !important;
  min-block-size: 100lvh !important;
}
