/* Native scrolling is untouched between boundaries. Only the boundary paint moves. */
.rb-page-viewport{ display:flow-root; overflow:clip; }
/* Continue the moving footer's paint below its box. The stable viewport clips
   this decorative tail, so it cannot add scroll range or cover another section. */
.rb-page-viewport > footer.footer{ position:relative; }
.rb-page-viewport > footer.footer::after{
  content:""; position:absolute; top:calc(100% - 1px); left:0; right:0;
  height:100vmax; background:inherit; pointer-events:none;
}
.preview-spacer{ background:var(--deep,#0c1830); }
/* At the document's bottom, native overscroll reveals the same dark canvas.
   The body's original light gradient stays intact; at the top this is removed. */
html[data-rb-footer-end]{ background:var(--deep,#0c1830); }
html[data-rb-mode="native"]{ overscroll-behavior:contain; }
html[data-rb-mode="custom"],html[data-rb-mode="off"]{ overscroll-behavior:none; }
[data-rb-scroll~="x"]{ overscroll-behavior-x:contain; }
[data-rb-scroll~="y"]{ overscroll-behavior-y:contain; }
html[data-rb-mode="custom"] [data-rb-scroll~="x"],
html[data-rb-mode="off"] [data-rb-scroll~="x"]{ overscroll-behavior-x:none; }
html[data-rb-mode="custom"] [data-rb-scroll~="y"],
html[data-rb-mode="off"] [data-rb-scroll~="y"]{ overscroll-behavior-y:none; }
html[data-rb-modal]{ overflow:hidden !important; }
:is(dialog[open],[aria-modal="true"],.zoom.on,.modal.on,.modal.is-open){ overscroll-behavior:contain; }
