.page-index{position:fixed;left:14px;top:50%;transform:translateY(-50%);z-index:80;width:164px;padding:15px 12px;background:#10251f;color:#f4f3eb;border:1px solid #4a5f4f;border-radius:6px;box-shadow:0 7px 24px #0819113d}
.page-index-title{display:block;margin:0 0 12px;padding:0 6px;color:#c7a65e;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.page-index-links{display:flex;flex-direction:column;gap:2px;max-height:min(62vh,540px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c7a65e transparent}
.page-index-links a{display:block;padding:8px 9px;border-left:2px solid transparent;border-radius:0 4px 4px 0;font-size:12px;line-height:1.35;color:#d7e1d6;text-decoration:none;transition:color .15s,background .15s,border-color .15s}
.page-index-links a:hover{background:#243e31;color:#fff}
.page-index-links a[aria-current=location]{background:#2b4332;color:#f7e4ae;border-color:#c7a65e;font-weight:700}
.page-index a:focus-visible,.page-index button:focus-visible{outline:3px solid #e4c878;outline-offset:2px}
.page-index-toggle{display:none}
@media(min-width:1200px){body.has-page-index main,body.has-page-index footer{margin-left:190px}}
@media(max-width:1199px){
 .page-index{top:auto;bottom:18px;left:14px;transform:none;width:auto;padding:0;border:0;background:transparent;box-shadow:none}
 .page-index-title{display:none}
 .page-index-toggle{display:flex;align-items:center;gap:8px;padding:11px 14px;min-height:44px;border:1px solid #667963;border-radius:5px;background:#10251f;color:#f4f3eb;box-shadow:0 5px 20px #08191135;font:inherit;font-size:12px;font-weight:600;line-height:1.3;cursor:pointer}
 .page-index-links{display:none;position:absolute;left:0;bottom:calc(100% + 8px);width:min(265px,85vw);max-height:55vh;padding:12px;background:#10251f;border:1px solid #4a5f4f;border-radius:6px;box-shadow:0 8px 26px #0b1d1740}
 .page-index.is-open .page-index-links{display:flex}
}
@media(max-width:767px){
 .page-index{top:50%;bottom:auto;left:0;width:min(270px,76vw);padding:18px 14px;background:#10251f;border:1px solid #4a5f4f;border-left:0;border-radius:0 7px 7px 0;box-shadow:0 8px 32px #0b1d1748;transform:translate(calc(-100% + var(--page-index-drag, 0px)),-50%);transition:transform .24s ease}
 .page-index.is-open{transform:translate(var(--page-index-drag, 0px),-50%)}
 .page-index.is-dragging{transition:none}
 .page-index-title{display:block;margin-bottom:12px;padding:0 8px}
 .page-index-toggle{position:absolute;left:100%;top:50%;transform:translateY(-50%);display:block;width:44px;height:64px;min-height:44px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:#c7a65e;font-size:0;touch-action:pan-y;user-select:none;-webkit-user-select:none}
 .page-index-toggle::before{content:'';position:absolute;left:0;top:0;width:29px;height:64px;background:#10251f;border:1px solid #728468;border-left:0;border-radius:0 6px 6px 0;box-shadow:4px 3px 12px #0b1d1733}
 .page-index-toggle::after{content:'›';position:absolute;left:0;top:50%;width:29px;transform:translateY(-53%);font:400 25px/1 Arial,sans-serif;text-align:center;color:#e3c67e}
 .page-index.is-open .page-index-toggle::after{content:'‹'}
 .page-index-links,.page-index.is-open .page-index-links{display:flex;position:static;width:auto;max-height:min(58vh,480px);padding:0;border:0;border-radius:0;box-shadow:none;visibility:hidden}
 .page-index.is-open .page-index-links{visibility:visible}
 .page-index-links a{padding:10px 10px;font-size:14px}
 body.nav-open .page-index{visibility:hidden;pointer-events:none}
}
@media(prefers-reduced-motion:reduce){.page-index{transition:none}}

/* Desktop: a slim index rail opens over the page on hover or keyboard focus. */
@media(min-width:768px) and (hover:hover) and (pointer:fine){
 body.has-page-index main,body.has-page-index footer{margin-left:0}
 .page-index{top:50%;bottom:auto;left:0;width:42px;padding:14px 0;overflow:hidden;border:1px solid #536b56;border-left:0;border-radius:0 6px 6px 0;background:#10251f;box-shadow:2px 5px 16px #08191138;transform:translateY(-50%);transition:width .22s ease,box-shadow .22s ease}
 .page-index:hover,.page-index:focus-within{width:210px;box-shadow:4px 8px 24px #1d302930}
 .page-index-toggle{display:none}
 .page-index-title{display:block;width:180px;height:0;margin:0;overflow:hidden;opacity:0;white-space:nowrap;transition:opacity .16s ease}
 .page-index:hover .page-index-title,.page-index:focus-within .page-index-title{height:auto;margin:0 0 12px;padding:0 14px;opacity:1}
 .page-index-links,.page-index.is-open .page-index-links{display:flex;position:static;width:200px;max-height:min(62vh,540px);padding:0;border:0;background:transparent;box-shadow:none;overflow-y:auto;scrollbar-width:none}
 .page-index-links::-webkit-scrollbar{width:0}
 .page-index-links a{position:relative;box-sizing:border-box;width:200px;min-height:36px;padding:9px 10px 9px 42px;border-left:0;border-radius:0 5px 5px 0}
 .page-index-links a::before{content:'';position:absolute;left:15px;top:50%;width:9px;height:9px;transform:translateY(-50%);border:1px solid #8ba088;border-radius:2px;background:#425d49;transition:background .15s,border-color .15s,box-shadow .15s}
 .page-index-links a:hover::before,.page-index-links a:focus-visible::before{border-color:#e3c67e;background:#c7a65e}
 .page-index-links a[aria-current=location]::before{border-color:#f4d58a;background:#d8ba6d;box-shadow:0 0 8px #e5c879a0}
 .page-index-links a:focus-visible{outline-offset:-3px}
}
@media(prefers-reduced-motion:reduce){.page-index,.page-index-title,.page-index-links a::before{transition:none}}
