/* jump rail: pops up on the right after you pick a section, or when you scroll back up past the top nav. fades out when you leave it alone */
.jr{position:fixed;z-index:60;right:max(6px,env(safe-area-inset-right));top:50%;
 display:flex;flex-direction:column;gap:4px;max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
 overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;padding:5px;
 background:var(--paper);border:2px solid var(--ink);box-shadow:3px 3px 0 rgba(58,20,99,.35);
 opacity:0;visibility:hidden;pointer-events:none;transform:translate(14px,-50%);
 transition:opacity .35s ease,transform .35s ease,visibility 0s linear .35s}
.jr::-webkit-scrollbar{display:none}
.jr.on{opacity:1;visibility:visible;pointer-events:auto;transform:translate(0,-50%);transition:opacity .18s ease,transform .18s ease,visibility 0s}
.jr a{display:flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;
 border:2px solid var(--ink);background:var(--paper);text-decoration:none;color:var(--ink)}
.jr a:nth-child(even){background:var(--butter)}
.jr a[aria-current="true"]{background:var(--pinkp);box-shadow:inset 0 0 0 2px var(--hot)}
.jr a:focus-visible{outline:3px solid var(--hot);outline-offset:1px}
.jr .ak{--s:min(calc(28 / var(--w)),calc(28 / var(--h)));animation:none;transform:none}
@media(prefers-reduced-motion:reduce){.jr,.jr.on{transform:translate(0,-50%)}}
