.page-outline{position:fixed;right:20px;top:50%;transform:translateY(-50%);width:205px;max-height:70vh;z-index:80;padding:16px 10px;border:1px solid #bfa16b40;border-radius:16px;background:#fffdf8ed;backdrop-filter:blur(18px);box-shadow:0 16px 50px #37281312;font:12px/1.4 system-ui,sans-serif;color:#574a38}.page-outline[hidden]{display:none}.page-outline__toggle{display:block;border:0;background:none;color:#8c6a33;font:600 10px/1.4 system-ui;letter-spacing:.1em;text-transform:uppercase;text-align:left;padding:4px 10px 14px;cursor:pointer}.page-outline__list{display:grid;max-height:58vh;overflow-y:auto;scrollbar-width:thin}.page-outline__list a{display:flex;align-items:center;gap:10px;padding:10px;border-radius:8px;color:#807363;text-decoration:none;border-left:2px solid transparent;transition:color .2s,background .2s}.page-outline__list a>span:last-child{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.page-outline__number{font-size:9px;font-variant-numeric:tabular-nums;opacity:.6}.page-outline__list a:hover,.page-outline__list a[aria-current]{color:#5b421e;background:#f0e6d4;border-color:#ad8542}.page-outline a:focus-visible,.page-outline button:focus-visible{outline:2px solid #a47b36;outline-offset:2px}main h2,main h3{scroll-margin-top:115px}@media(max-width:1680px){.page-outline{top:auto;bottom:24px;right:18px;transform:none;width:auto;max-width:280px;padding:8px}.page-outline__toggle{padding:8px 12px}.page-outline__list{display:none}.page-outline.is-open .page-outline__list{display:grid;max-height:50vh}}@media(prefers-reduced-motion:reduce){.page-outline *{transition:none!important}}
.page-outline{z-index:900}
.page-outline[data-side=left]{left:20px;right:auto}
.page-outline[data-style=graphic]{width:56px;padding:12px 6px;background:#fffaf1e8}
.page-outline[data-style=graphic] .page-outline__toggle{font-size:0;padding:8px;text-align:center}
.page-outline[data-style=graphic] .page-outline__toggle:after{content:'☷';font-size:20px}
.page-outline[data-style=graphic] .page-outline__list a{position:relative;min-height:32px;justify-content:center;padding:6px}
.page-outline[data-style=graphic] .page-outline__list a>span:last-child{display:none}
.page-outline[data-style=graphic] .page-outline__number{font-size:11px;opacity:1;border:1px solid #cdb78e;border-radius:50%;width:24px;height:24px;display:grid;place-items:center}
.page-outline[data-style=graphic] a[aria-current] .page-outline__number{background:#9d783f;color:white}
.page-outline[data-style=graphic]:hover,.page-outline[data-style=graphic]:focus-within{width:235px}
.page-outline[data-style=graphic]:hover .page-outline__list a,.page-outline[data-style=graphic]:focus-within .page-outline__list a{justify-content:flex-start}
.page-outline[data-style=graphic]:hover .page-outline__list a>span:last-child,.page-outline[data-style=graphic]:focus-within .page-outline__list a>span:last-child{display:block}
@media(max-width:1680px){.page-outline{bottom:calc(100px + env(safe-area-inset-bottom))}}

.page-outline__list ol{list-style:none;margin:0;padding:0}.page-outline__list ol ol{margin-left:12px;border-left:1px solid #dfd2bb;padding-left:4px}
.page-outline__list a[data-level="1"]{font-weight:600}.page-outline__list a[data-level="2"]{font-size:11px;font-weight:400;padding-block:7px}
.page-outline__mode{border:1px solid #d8c6a5;border-radius:7px;background:#f7f0e3;color:#886b3c;padding:6px 8px;margin:0 8px 10px;font:11px/1.4 system-ui;cursor:pointer}
.page-outline[data-style=graphic]{width:86px}.page-outline[data-style=graphic] .page-outline__mode{font-size:9px;margin:0 0 8px;padding:5px}
.page-outline[data-style=graphic] .page-outline__list ol ol{margin-left:8px;padding-left:0}
.page-outline[data-style=graphic] .page-outline__list a[data-level="2"] .page-outline__number{width:8px;height:8px;font-size:0;background:#d9c7a8;border:0}
.page-outline[data-style=graphic] .page-outline__list a[data-level="2"][aria-current] .page-outline__number{background:#956925;box-shadow:0 0 0 4px #b58a4033}
.page-outline__rail{display:none}
.page-outline[data-style=graphic],.page-outline[data-style=graphic]:hover,.page-outline[data-style=graphic]:focus-within{width:40px;padding:0;background:none;border:0;box-shadow:none;backdrop-filter:none;overflow:visible}
.page-outline[data-style=graphic] .page-outline__toggle{display:none}
.page-outline[data-style=graphic] .page-outline__mode{width:40px;font-size:8px;padding:4px 2px;margin:0 0 14px;opacity:.6;background:#fffdf8e6}
.page-outline[data-style=graphic] .page-outline__list{display:none!important}
.page-outline[data-style=graphic] .page-outline__rail{display:block;position:relative;height:300px;width:40px}
.page-outline__rail:before{content:'';position:absolute;left:19px;top:32px;bottom:28px;width:1px;background:linear-gradient(#bb9757,#518b85,#ddd5c9)}
.page-outline__percent{position:absolute;top:0;left:50%;transform:translateX(-50%);padding:4px 7px;border-radius:20px;background:#fffdf8;color:#5e675f;box-shadow:0 4px 18px #29352812;font:600 10px/1.2 system-ui}
.page-outline__dot{position:absolute;left:0;width:40px;height:24px;transform:translateY(-50%);display:grid;place-items:center;text-decoration:none}
.page-outline__dot[hidden]{display:none}.page-outline__dot:before{content:'';width:5px;height:5px;border:1px solid #c8c4b9;background:#fffdf8;border-radius:50%;transition:transform .22s,background .22s}
.page-outline__dot[aria-current]:before{width:8px;height:8px;background:#ad8547;border-color:#ad8547;box-shadow:0 0 0 4px #ad85471f}
.page-outline__dot>span{position:absolute;right:44px;top:50%;width:max-content;max-width:260px;padding:10px 14px;border-radius:12px;background:#fffdfa;box-shadow:0 8px 30px #342c211a;color:#4c4437;font:600 12px/1.45 system-ui;opacity:0;pointer-events:none;transform:translate(14px,-50%) scale(.92);transform-origin:right center;transition:opacity .24s,transform .3s cubic-bezier(.2,.8,.2,1)}
.page-outline__dot[data-caption=main]>span{opacity:1;transform:translate(0,-50%) scale(1)}
.page-outline__dot[data-caption=near]>span{opacity:.42;transform:translate(5px,-50%) scale(.87);font-weight:400}
.page-outline[data-side=left] .page-outline__dot>span{right:auto;left:44px;transform-origin:left center}
@media(max-width:1680px){.page-outline[data-style=graphic]{top:50%;bottom:auto;transform:translateY(-50%)}.page-outline__dot>span{max-width:min(240px,65vw)}}
