/* Section rail: frosted-glass dot nav fixed on the right; labels slide out on hover/focus.
   Markup (place outside page-scoped wrappers so their resets don't apply):
     <nav class="section-rail" data-after=".hero" aria-label="Page sections" style="--rail-accent:#143D6C">
       <a href="#id"><span>Label</span><i></i></a> ...
     </nav>
   The rail fades in once the [data-after] element is mostly scrolled past. Theme it with
   --rail-accent / --rail-ink / --rail-font. Class names avoid Bootstrap's `.show` (display:block !important). */
nav.section-rail{--rail-accent:#143D6C;--rail-ink:#56677E;--rail-font:system-ui,-apple-system,"Segoe UI",sans-serif;
  position:fixed;right:20px;top:50%;z-index:900;display:flex;flex-direction:column;align-items:flex-end;flex-wrap:nowrap;gap:2px;
  width:auto;height:auto;margin:0;padding:8px;border-radius:22px;box-sizing:border-box;
  background:rgba(255,255,255,.42);backdrop-filter:blur(16px) saturate(170%);-webkit-backdrop-filter:blur(16px) saturate(170%);
  border:1px solid rgba(255,255,255,.65);box-shadow:0 8px 32px rgba(11,35,64,.14),inset 0 1px 0 rgba(255,255,255,.7);
  opacity:0;pointer-events:none;transform:translate(12px,-50%);transition:opacity .25s ease,transform .25s ease,background .2s}
nav.section-rail.is-visible{opacity:1;pointer-events:auto;transform:translate(0,-50%)}
nav.section-rail a{display:flex;align-items:center;justify-content:flex-end;gap:0;margin:0;padding:7px;border-radius:999px;text-decoration:none;
  font:600 14px/1.2 var(--rail-font);letter-spacing:normal;text-transform:none;color:var(--rail-ink);white-space:nowrap;transition:background .2s,color .2s,gap .25s,padding .25s}
nav.section-rail a span{display:block;max-width:0;opacity:0;overflow:hidden;font:inherit;color:inherit;transition:max-width .3s ease,opacity .2s ease}
nav.section-rail a i{display:block;flex:none;width:8px;height:8px;border-radius:50%;background:var(--rail-accent);opacity:.35;transition:opacity .2s,transform .2s}
nav.section-rail a:hover i{opacity:1}
nav.section-rail a.on i{opacity:1;transform:scale(1.5)}
nav.section-rail:hover,nav.section-rail:focus-within{background:rgba(255,255,255,.78)}
nav.section-rail:hover a,nav.section-rail:focus-within a{gap:12px;padding-left:14px}
nav.section-rail:hover a span,nav.section-rail:focus-within a span{max-width:180px;opacity:1}
nav.section-rail a:hover,nav.section-rail a.on,nav.section-rail a:focus-visible{color:var(--rail-accent)}
nav.section-rail:hover a:hover{background:rgba(11,35,64,.07)}
nav.section-rail a:focus-visible{outline:2px solid var(--rail-accent);outline-offset:1px}
@media (max-width:600px){nav.section-rail{right:8px;padding:5px}nav.section-rail a{padding:6px}}
@media (prefers-reduced-motion:reduce){nav.section-rail,nav.section-rail a,nav.section-rail a span{transition:none}}
