:root{color-scheme:light;--paper:#fff;--paper-soft:#fafafd;--ink:#181622;--ink-soft:#5e5a6d;--ink-faint:#898594;--line:#e8e6ee;--line-strong:#dcd9e5;--accent:#6b52c8;--accent-dark:#5038a8;--accent-soft:#f0ecff;--accent-softer:#f8f6ff;--shadow-sm:0 1px 2px #1816220d 0 6px 18px #1816220a;--shadow-lg:0 24px 70px #1f1a302e;--topbar-height:68px;--sidebar-width:286px;--toc-width:238px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--topbar-height) + 28px)}
body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
button{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit}
.skip-link{position:fixed;z-index:100;top:10px;left:10px;padding:9px 13px;border-radius:8px;background:var(--ink);color:#fff;transform:translateY(-150%);transition:transform 160ms ease}
.skip-link:focus{transform:translateY(0)}
.topbar{position:fixed;z-index:40;inset:0 0 auto 0;height:var(--topbar-height);display:flex;align-items:center;justify-content:flex-start;padding:0 24px 0 20px;border-bottom:1px solid var(--line);background:#fffffff0;backdrop-filter:blur(14px)}
.topbar__brand{display:flex;align-items:center}
.site-link{display:inline-flex;align-items:center;gap:5px;color:var(--ink);font-size:14px;font-weight:700;text-decoration:none}
.site-link:hover{color:var(--accent)}
.site-link span{color:var(--ink-faint);font-size:12px}
.menu-button{display:none;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font-size:12px;font-weight:650;cursor:pointer;margin-right:10px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr) var(--toc-width);padding-top:var(--topbar-height)}
.sidebar{position:fixed;z-index:30;top:var(--topbar-height);bottom:0;left:0;width:var(--sidebar-width);border-right:1px solid var(--line);background:var(--paper-soft);overflow:hidden}
.sidebar__inner{height:100%;display:flex;flex-direction:column;padding:18px 14px 14px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#d8d4df transparent}
.nav-tree{flex:1;padding:22px 3px 20px}
.nav-project + .nav-project{margin-top:25px}
.nav-project__title{display:flex;align-items:center;gap:8px;margin:0 8px 8px;color:var(--ink-faint);font-size:10px;font-weight:780;letter-spacing:.11em;text-transform:uppercase}
.nav-project__title::after{height:1px;flex:1;background:var(--line);content:""}
.nav-project__title span{flex:0 0 auto}
.nav-link,.nav-section__toggle{width:100%;min-height:36px;display:flex;align-items:center;gap:9px;padding:7px 9px;border:0;border-radius:8px;background:transparent;color:var(--ink-soft);font-size:13px;font-weight:560;text-align:left;text-decoration:none;cursor:pointer;transition:background 130ms ease,color 130ms ease}
.nav-link:hover,.nav-section__toggle:hover{background:#f0eef5;color:var(--ink)}
.nav-link.active{background:var(--accent-soft);color:var(--accent-dark);font-weight:700}
.nav-section__toggle span{flex:1}
.nav-section__toggle::after{width:6px;height:6px;flex:0 0 auto;margin:0 4px 0 8px;border-right:1.5px solid var(--ink-faint);border-bottom:1.5px solid var(--ink-faint);content:"";transform:rotate(-45deg);transition:transform 150ms ease}
.nav-section__toggle[aria-expanded="true"]::after{transform:rotate(45deg)}
.nav-section__children{position:relative;margin-left:16px;padding-left:9px}
.nav-section__children::before{position:absolute;inset:2px auto 5px 0;width:1px;background:var(--line);content:""}
.nav-section__children[hidden]{display:none}
.nav-section__children .nav-link{min-height:32px;padding-top:5px;padding-bottom:5px;font-size:12.5px}
.sidebar__footer{display:flex;align-items:center;gap:9px;margin:0 3px;padding:13px 10px 4px;border-top:1px solid var(--line);color:var(--ink-soft);line-height:1.3}
.sidebar__footer > span:last-child{display:flex;flex-direction:column}
.sidebar__footer strong{font-size:11px;font-weight:680}
.sidebar__footer small{color:var(--ink-faint);font-size:10px}
.status-dot{width:8px;height:8px;flex:0 0 auto;border:2px solid #c7eee7;border-radius:50%;background:#3da898;box-shadow:0 0 0 2px #e8f8f5}
.main-column{grid-column:2;min-width:0}
.content-wrap{width:min(100%,860px);margin:0 auto;padding:62px 48px 40px}
.wiki-article{min-height:58vh;outline:none}
.toc{position:fixed;z-index:10;top:var(--topbar-height);right:0;bottom:0;width:var(--toc-width);background:var(--paper)}
.toc__inner{max-height:100%;padding:58px 25px 30px 6px;overflow-y:auto}
.eyebrow{margin:0 0 13px;color:var(--ink-faint);font-size:10px;font-weight:780;letter-spacing:.11em;text-transform:uppercase}
#toc-links{display:flex;flex-direction:column}
#toc-links a{position:relative;padding:5px 0 5px 12px;border-left:1px solid var(--line);color:var(--ink-faint);font-size:12px;line-height:1.45;text-decoration:none;transition:color 130ms ease,border-color 130ms ease}
#toc-links a:hover,#toc-links a.active{border-left-color:var(--accent);color:var(--accent-dark)}
#toc-links a[data-level="3"]{padding-left:23px;font-size:11.5px}
.toc__help{display:flex;gap:10px;margin-top:28px;padding-top:18px;border-top:1px solid var(--line);color:var(--ink-faint)}
.toc__help p{display:flex;flex-direction:column;margin:0;font-size:10.5px;line-height:1.45}
.toc__help strong{margin-bottom:2px;color:var(--ink-soft);font-size:11px}
.toc-empty{color:var(--ink-faint);font-size:11px}
.loading-state{min-height:280px;display:grid;place-items:center;align-content:center;gap:15px;color:var(--ink-faint);font-size:13px}
.loading-state__mark{width:26px;height:26px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin 700ms linear infinite}
@keyframes spin {
to{transform:rotate(360deg)}
}
.sidebar-scrim{display:none}
.noscript{position:fixed;z-index:100;inset:auto 16px 16px 16px;padding:12px 16px;border-radius:10px;background:#332d45;color:#fff;text-align:center}
@media (prefers-reduced-motion: reduce) {
html{scroll-behavior:auto}
*,::before,::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}
}