
/* polish pass: page transition (out mirrors in) + active nav + cursor stays visible on nav + back-to-top */
html.px-leaving main,html.px-leaving footer{opacity:0;transform:translateY(20px);filter:blur(5px);transition:opacity .46s var(--ease),transform .46s var(--ease),filter .5s ease}
html.px-leaving #cursor,html.px-leaving #cursorView{opacity:0!important}
nav .link.active,.nav-drawer a.active{color:var(--blue)}
.to-top{position:fixed;right:clamp(1.1rem,3vw,2.2rem);bottom:clamp(1.1rem,3vw,2.2rem);width:48px;height:48px;border-radius:999px;background:var(--ink);color:var(--paper);border:0;display:grid;place-items:center;cursor:pointer;opacity:0;transform:translateY(14px) scale(.85);pointer-events:none;transition:opacity .45s var(--ease),transform .45s var(--ease),background .3s ease;z-index:95;box-shadow:0 10px 30px rgba(20,19,16,.22)}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{background:var(--blue)}
.to-top:hover svg{transform:translateY(-2px)}
.to-top svg{width:15px;height:15px;transition:transform .35s var(--ease)}
html.cur .to-top{cursor:none}
@media(max-width:560px){.to-top{width:44px;height:44px}}
@media (prefers-reduced-motion:reduce){html.px-leaving main,html.px-leaving footer{transition:none;opacity:1;transform:none;filter:none}.to-top{transition:opacity .2s}}
