/* Short pages fill the viewport; longer pages retain their natural height. */
body{min-height:100vh;min-height:100svh;display:flex;flex-direction:column}
.site-header,.site-footer{flex-shrink:0}
main{flex:1 0 auto}

/* Opt-in only after the equivalent, accessible overlay control exists. */
html.overlay-scroll{scrollbar-width:none}
html.overlay-scroll::-webkit-scrollbar{display:none;width:0;height:0}
.page-scroll{position:fixed;right:0;width:18px;z-index:17;touch-action:none;user-select:none;cursor:pointer;border-radius:4px}
.page-scroll[hidden]{display:none}
.page-scroll-thumb{position:absolute;left:9px;top:0;width:3px;min-height:44px;border-radius:3px;background:#93836d;box-shadow:0 0 0 1px #faf8f333;transition:width .16s,left .16s,background .16s}
.page-scroll:hover .page-scroll-thumb,.page-scroll:focus-visible .page-scroll-thumb,.page-scroll.is-dragging .page-scroll-thumb{left:5px;width:7px;background:var(--accent)}
.page-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;background:#20221f33}
body.menu-open .page-scroll,body:has(dialog[open]) .page-scroll{visibility:hidden}
@media(pointer:coarse){.page-scroll{width:14px}.page-scroll-thumb{left:9px;width:3px}}
@media(prefers-reduced-motion:reduce){.page-scroll-thumb{transition:none}}
@media(forced-colors:active){html.overlay-scroll{scrollbar-width:auto}html.overlay-scroll::-webkit-scrollbar{display:initial;width:auto;height:auto}.page-scroll{display:none}}
@media print{.page-scroll{display:none}body{display:block;min-height:0}}
