:root{--bg:#f7f9fc;--fg:#141c2e;--muted:#56617a;--line:#dce3ef;--accent:#1f3a6e;--hover:#3f63c9;--tag:#e6ecf8;--oa:#2b6e46}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e1526;--fg:#e4eaf6;--muted:#9aa7c2;--line:#25314c;--accent:#93b2f4;--hover:#b9cdfa;--tag:#1a2643;--oa:#79d29f}}
a:hover{color:var(--hover)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.6 "Source Serif 4",Georgia,serif}
a{color:var(--accent)}.wrap{max-width:1120px;margin:0 auto;padding:40px 16px 0;display:grid;grid-template-columns:230px minmax(0,1fr);gap:48px}
main{min-width:0;max-width:780px}footer{max-width:1120px;margin:0 auto;padding:0 16px}
aside{position:sticky;top:24px;align-self:start;max-height:calc(100vh - 48px);overflow:auto;font:14px/1.45 system-ui,sans-serif}
aside .who{font:600 16px/1.3 "Source Serif 4",Georgia,serif;color:var(--fg);text-decoration:none;display:block;margin-bottom:14px}
aside ul{list-style:none;margin:0;padding:0}aside li{margin:2px 0}aside a{color:var(--fg);text-decoration:none;display:flex;justify-content:space-between;gap:8px;padding:3px 8px;border-radius:4px}
aside a:hover{background:var(--tag);color:var(--hover)}aside .n{color:var(--muted);font-variant-numeric:tabular-nums}aside .grp{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:16px 8px 4px}
aside ul.sub a{padding-left:20px;font-size:13px;color:var(--muted)}aside .ext{margin-top:16px;border-top:1px solid var(--line);padding-top:10px}
h2[id]{scroll-margin-top:16px}
@media (max-width:820px){.wrap{display:block;padding-top:20px}aside{position:static;max-height:none;margin-bottom:24px;border-bottom:1px solid var(--line);padding-bottom:12px}aside ul.sub{display:none}aside ul.toc{display:flex;flex-wrap:wrap;gap:4px}aside .grp{display:none}aside .ext{display:none}}
h1{font-size:2rem;margin:0 0 4px;line-height:1.2}h2{font-size:1.3rem;margin:40px 0 12px;border-bottom:1px solid var(--line);padding-bottom:6px}
h3{font-size:1.05rem;margin:0 0 4px}.muted{color:var(--muted)}
.pub{padding:12px 0;border-bottom:1px solid var(--line)}.pub p{margin:2px 0}.meta{font:14px/1.5 system-ui,sans-serif;color:var(--muted)}
.tag{display:inline-block;font:12px/1.4 system-ui,sans-serif;background:var(--tag);padding:1px 8px;border-radius:10px;margin:4px 6px 0 0;text-decoration:none;color:var(--fg)}
.tag.oa{color:var(--oa)}.box{border:1px solid var(--line);padding:14px 16px;border-radius:6px;margin:16px 0}
footer{margin-top:48px;padding-bottom:40px;font:13px/1.5 system-ui,sans-serif;color:var(--muted)}
ul.plain{padding-left:18px}code{font-size:.85em}
