/* Small, theme-aware return control with a reading-progress ring. */
.scroll-top{--scroll-progress:0;position:fixed;right:max(28px,env(safe-area-inset-right));bottom:max(28px,env(safe-area-inset-bottom));z-index:100;width:56px;height:56px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:var(--bg);color:var(--ink);cursor:pointer;transition:none;isolation:isolate}
.scroll-top[hidden],body:has(dialog[open]) .scroll-top,.has-entry-loader .scroll-top{display:none}
.scroll-top-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none;fill:none;stroke-width:1.5}
.scroll-top-track{stroke:var(--line)}
.scroll-top-progress{stroke:var(--amber);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--scroll-progress))}
.scroll-top-arrow{display:grid;place-items:center;transform:rotate(-90deg)}
.scroll-top-arrow svg{width:23px;height:23px;display:block}
.scroll-top:hover{background:var(--ink);color:var(--bg)}
.scroll-top:focus-visible{outline:2px solid var(--amber);outline-offset:5px}
@media(max-width:767px){.scroll-top{width:48px;height:48px;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom))}.scroll-top-arrow svg{width:21px;height:21px}}
@media(forced-colors:active){.scroll-top{border:1px solid ButtonText}.scroll-top-progress{stroke:Highlight}}
/* Native scrolling is preserved; only its platform-dependent visual is replaced. */
html,body{scrollbar-width:none!important}
html::-webkit-scrollbar,body::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
.site-scroll-rail{position:fixed;top:0;right:0;height:100dvh;width:1px;z-index:90;pointer-events:none}
.site-scroll-thumb{position:absolute;top:0;right:0;width:1px;background:var(--muted);border-radius:1px}
.contact-panel-open .site-scroll-rail{visibility:hidden}
