:root{--rail-w:15rem;--rail-gap:2.5rem}@media (width>=1360px){html.has-page-rail main{padding-right:calc(var(--rail-w) + var(--rail-gap))!important}}.page-rail{top:calc(var(--header-height,4.5rem) + 1.75rem);right:calc(var(--rail-right,1rem) + 1rem);z-index:30;width:var(--rail-w);opacity:0;transition:opacity .5s,translate .6s cubic-bezier(.22,1,.36,1);position:fixed;translate:0 .75rem}.page-rail[hidden]{display:none}.page-rail.is-ready{opacity:1;translate:0}.page-rail__panel{max-height:calc(100vh - var(--header-height,4.5rem) - 4rem);border-left:1px solid var(--border);gap:.75rem;padding:1rem .9rem 1rem .75rem;display:grid;position:relative}.page-rail__title{color:var(--text-muted);font:600 .68rem / 1.2 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:0 0 0 1.35rem}.page-rail__track{background:var(--border);border-radius:2px;width:2px;position:absolute;top:2.65rem;bottom:1.2rem;left:1.22rem}.page-rail__fill{border-radius:inherit;background:var(--accent);transform-origin:top;transition:transform .35s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;transform:scaleY(0)}.page-rail__list{scrollbar-width:thin;gap:.1rem;margin:0;padding:0;list-style:none;display:grid;position:relative;overflow-y:auto}.page-rail__list li{z-index:1;min-width:0;animation:.45s cubic-bezier(.22,1,.36,1) both rail-in;animation-delay:calc(var(--i,0) * 45ms + .15s);position:relative}.page-rail .page-rail__link,.page-rail .page-rail__link:hover{text-decoration:none}.page-rail__link{min-width:0;color:var(--text-muted);border-radius:8px;align-items:flex-start;gap:.75rem;padding:.4rem .5rem .4rem 0;font-size:.84rem;line-height:1.35;text-decoration:none;transition:color .2s;display:flex}.page-rail__text{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;transition:transform .25s;display:-webkit-box;overflow:hidden}.page-rail__tick{border:2px solid var(--border);background:var(--bg,var(--surface));border-radius:50%;flex:none;width:.6rem;height:.6rem;margin:.3rem 0 0 .2rem;transition:transform .25s,background .25s,border-color .25s}.page-rail__link:hover{color:var(--text)}.page-rail__link:hover .page-rail__text{transform:translate(3px)}.page-rail__link:hover .page-rail__tick{border-color:var(--accent);transform:scale(1.25)}.page-rail__link.is-past .page-rail__tick{border-color:var(--accent);background:var(--accent);transform:scale(.8)}.page-rail__link.is-active{color:var(--text);font-weight:650}.page-rail__link.is-active .page-rail__tick{border-color:var(--accent);background:var(--accent);animation:2.4s ease-in-out infinite rail-breathe;transform:scale(1.15)}.page-rail__link.is-arrived .page-rail__tick{animation:.5s cubic-bezier(.34,1.56,.64,1) rail-pop,2.4s ease-in-out .5s infinite rail-breathe}.page-rail__link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.page-rail__marker{z-index:0;background:color-mix(in srgb, var(--accent) 11%, transparent);pointer-events:none;border-radius:8px;transition:transform .45s cubic-bezier(.22,1,.36,1),height .3s;position:absolute;top:0;left:1.2rem;right:0}.page-rail__panel{border-left:0;padding-left:0}.page-rail__track{top:2.4rem;bottom:.6rem;left:0}.page-rail__tick{display:none}.page-rail__list{padding-left:.9rem}.page-rail__title{margin-left:.9rem}.page-rail__link{border-radius:8px;padding:.4rem .6rem;transition:color .2s,background .3s}.page-rail__link.is-active{color:var(--text);background:color-mix(in srgb, var(--accent) 12%, transparent);font-weight:600}.page-rail__marker{display:none}@keyframes rail-in{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}@keyframes rail-breathe{0%,to{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent)}50%{box-shadow:0 0 0 7px color-mix(in srgb, var(--accent) 6%, transparent)}}@keyframes rail-pop{0%{transform:scale(.6)}60%{transform:scale(1.5)}to{transform:scale(1.15)}}@media (width<=1359px),print{.page-rail{display:none}}@media (prefers-reduced-motion:reduce){.page-rail,.page-rail__fill,.page-rail__marker,.page-rail__tick,.page-rail__text{transition:none}.page-rail__list li,.page-rail__link .page-rail__tick{animation:none!important}}
