/* Right-edge reading progress, with labels on hover and keyboard focus. */
.ov-scroll-rail { position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:80;display:flex;flex-direction:column;align-items:center;padding:8px 2px;background:var(--panel);border:2px solid var(--ink);border-radius:20px;box-shadow:2px 2px 0 var(--ink); }
.ov-scroll-rail a { position:relative;width:20px;height:24px;display:grid;place-items:center; }
.ov-scroll-rail a::after { content:'';width:7px;height:7px;border:1.5px solid var(--ink);border-radius:50%;background:var(--bone); }
.ov-scroll-rail a[aria-current]::after { background:var(--hi);transform:scale(1.3); }
.ov-scroll-rail a.passed::after { background:var(--ink); }
.ov-scroll-rail a span { position:absolute;right:30px;white-space:nowrap;background:var(--panel);border:2px solid var(--ink);border-radius:5px;padding:5px 9px;font:14px var(--font-comic, 'Bangers', cursive);pointer-events:none;visibility:hidden; }
.ov-scroll-rail a:hover span,.ov-scroll-rail a:focus-visible span { visibility:visible; }
.ov-scroll-rail output { font:9px var(--font-mono, 'Space Mono', monospace);margin-top:5px; }
@media(max-width:720px) {
 .ov-scroll-rail { right:10px;padding:5px 0;border-width:1px;box-shadow:none; }
 .ov-scroll-rail a { width:14px;height:20px; }
 .ov-scroll-rail a::after { width:5px;height:5px;border-width:1px; }
 .ov-scroll-rail output { font-size:7px; }
}
.page-progress-anchor { display:block;height:0;margin:0;padding:0;border:0;pointer-events:none; }
.ov-scroll-rail { max-height:calc(100dvh - 160px); }
.ov-scroll-rail a { flex:1 1 24px;min-height:10px; }
.ov-scroll-rail a:focus-visible { outline:2px solid var(--hi);outline-offset:1px; }
.ov-scroll-rail a span { max-width:min(310px,75vw);white-space:normal;width:max-content; }
@media print { .ov-scroll-rail { display:none !important; } }
html.embed .ov-scroll-rail { display:none; }

.ov-scroll-rail[hidden] { display:none; }
