/* Let the header paint its own rounded edge; a soft ceiling sits behind the glass. */
.site-header{--ujra-header-top:8px;--ujra-header-radius:32px}
.site-header,body[data-theme='dark'] .site-header{
 padding-top:var(--ujra-header-top)!important;
 backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
.site-header::before{
 content:'';position:absolute;inset:0 0 auto;
 height:calc(var(--ujra-header-top) + var(--ujra-header-radius) + 32px);
 background:linear-gradient(to bottom,var(--u-bg) 0,var(--u-bg) calc(var(--ujra-header-top) + var(--ujra-header-radius)),transparent 100%);
 /* The header is already a stacking context. This stays above page content,
    but below its glass and shadow, so there is only one antialiased curve. */
 z-index:-1;pointer-events:none;
}
.header-shell.container{border-radius:var(--ujra-header-radius)}
body:not([data-theme=dark]) .site-header .header-shell.container{background:var(--u-glass)!important}

.scroll-top{
 position:fixed;right:max(24px,env(safe-area-inset-right));bottom:calc(26px + env(safe-area-inset-bottom));z-index:60;
 display:grid;place-items:center;width:60px;height:60px;padding:0;
 border:1px solid var(--u-line);border-radius:50%;background:var(--u-card);color:var(--u-accent-text);
 box-shadow:var(--u-soft-shadow),inset 0 1px 0 #fff2;cursor:pointer;
 transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.scroll-top[hidden]{display:none!important}
.scroll-top .scroll-top__arrow{width:23px;height:23px;stroke-width:1.7}
.scroll-top .scroll-top__ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}
.scroll-top__track,.scroll-top__fill{fill:none;stroke-width:2.2}
.scroll-top__track{stroke:var(--u-line)}
.scroll-top__fill{stroke:var(--u-accent);stroke-linecap:round}
.scroll-top:focus-visible{outline:2px solid var(--u-accent-text);outline-offset:4px}
@media(hover:hover){.scroll-top:hover{transform:translateY(-3px);border-color:var(--u-accent);box-shadow:var(--u-float-shadow)}}
.scroll-top:active{transform:translateY(0)}
body.lux-modal-open .scroll-top,body:has([role=dialog][aria-modal=true]:not([hidden]):not([aria-hidden=true])) .scroll-top{visibility:hidden;pointer-events:none}
@media(max-width:980px){.site-header{--ujra-header-radius:25px}}
@media(max-width:760px){
 .scroll-top{right:max(14px,env(safe-area-inset-right));bottom:calc(84px + var(--mobile-dock-gap));width:44px;height:44px}
}
@media(prefers-reduced-motion:reduce){.scroll-top{transition:none}}
@media print{.scroll-top{display:none!important}}
