:root{--bg:#131010;--bg2:#1a1717;--fg:#e8e4e0;--dim:#8f8a86;--line:#2c2828;--acc:#f0ece8;--note:#1c2457;--noteb:#3b4bb0}
[data-theme=light]{--bg:#fdfcfc;--bg2:#f4f2f1;--fg:#201d1d;--dim:#6e6a67;--line:#e4e0de;--acc:#000;--note:#eef1ff;--noteb:#9aa8f0}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{background:var(--bg);color:var(--fg);font:14px/1.75 "IBM Plex Mono",ui-monospace,Menlo,monospace}
a{color:inherit;text-decoration-color:var(--dim);text-underline-offset:3px}a:hover{text-decoration-color:var(--fg)}
.top{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;height:56px;padding:0 20px;background:var(--bg);border-bottom:1px solid var(--line)}
.brand{display:flex;gap:10px;align-items:center;text-decoration:none;font-weight:700;font-size:20px;letter-spacing:-.02em}
.brand img{border-radius:50%;object-fit:cover;border:1px solid var(--line)}
.tools{display:flex;gap:18px;align-items:center;color:var(--dim)}.tools a{text-decoration:none}.tools a:hover{color:var(--fg)}
#theme{font:inherit;background:none;color:var(--dim);border:1px solid var(--line);border-radius:4px;padding:4px 10px;cursor:pointer}#theme:hover{color:var(--fg)}
.layout{display:grid;grid-template-columns:240px minmax(0,760px) 200px;gap:40px;max-width:1340px}
.side{position:sticky;top:57px;height:calc(100vh - 57px);overflow:auto;border-right:1px solid var(--line);padding:18px 0}
.side a{display:block;padding:3px 18px;text-decoration:none;color:var(--fg);border-left:2px solid transparent}
.side a:hover{background:var(--bg2)}.side a.on{border-left-color:var(--fg);background:var(--bg2);font-weight:600}
.grp{font-weight:600;margin:18px 18px 4px;color:var(--fg)}
main{padding:32px 0 40px}
section{padding-bottom:44px}
.title{display:flex;gap:16px;align-items:center;margin-bottom:28px}
.avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:1px solid var(--line);padding:2px}
h1{font-size:26px;font-weight:600;line-height:1.2}.sub{color:var(--dim)}
h2{font-size:18px;font-weight:600;margin-bottom:14px;padding-bottom:6px;border-bottom:1px solid var(--line)}
h3{font-size:14px;font-weight:600}
p{margin-bottom:14px}b{font-weight:600}
.note{background:var(--note);border:1px solid var(--noteb);padding:14px 18px;margin-bottom:22px}.note span{font-weight:700;font-size:12px;margin-right:8px}
.term{background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:14px 18px;font:inherit;font-size:13px;overflow-x:auto;white-space:pre}.d{color:var(--dim)}
.list{padding-left:20px}.list li{margin:4px 0}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.card{border:1px solid var(--line);border-radius:6px;padding:16px;text-decoration:none;transition:border-color .2s}.card:hover{border-color:var(--dim)}
.card code{font-weight:600}.card p{color:var(--dim);margin:8px 0 0;font-size:13px}
code{background:var(--bg2);border:1px solid var(--line);border-radius:3px;padding:0 4px;font-size:12.5px}.card code{background:none;border:0;padding:0;font-size:14px}
.exp{border-left:1px solid var(--line);padding:2px 0 6px 18px;margin-bottom:22px}
.eh{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.eh span{color:var(--dim);font-size:13px}
.who{color:var(--dim);font-size:13px;margin-bottom:6px}.exp ul{padding-left:18px}.exp li{margin:4px 0}
table{width:100%;border-collapse:collapse}td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}td:first-child{color:var(--dim);white-space:nowrap;width:90px}
footer{color:var(--dim);font-size:12px;border-top:1px solid var(--line);padding-top:16px}
.toc{position:sticky;top:57px;align-self:start;padding-top:32px;font-size:13px}.toc p{margin-bottom:10px}.toc a{display:block;color:var(--dim);text-decoration:none;padding:2px 0}.toc a:hover,.toc a.on{color:var(--fg);font-weight:600}
@media (max-width:1100px){.layout{grid-template-columns:220px minmax(0,1fr);padding-right:24px}.toc{display:none}}
@media (max-width:760px){.layout{display:block;padding:0 18px}.side{display:none}.cards{grid-template-columns:1fr}.tools a{display:none}main{padding-top:24px}}
.pp{margin:12px 0 4px;font-size:12px;font-weight:600;color:var(--dim);text-transform:uppercase;letter-spacing:.08em}
.papers{list-style:none;padding:0!important}.papers li{padding-left:16px;position:relative}.papers li::before{content:"→";position:absolute;left:0;color:var(--dim)}
.papers span{font-size:11px;color:var(--dim);border:1px solid var(--line);border-radius:3px;padding:0 5px;margin-left:4px;white-space:nowrap}
.note code{background:none;border:0;font-weight:600}
tr.yr th{text-align:left;font-weight:600;padding:16px 10px 4px;border-bottom:1px solid var(--line)}tr.yr:first-child th{padding-top:0}
.tg{font-size:11px;color:var(--dim);border:1px solid var(--line);border-radius:3px;padding:0 5px;margin-left:4px;white-space:nowrap}
.rm{display:block;margin-top:10px;font-size:11.5px;color:var(--dim)}.card{display:flex;flex-direction:column}.card p{flex:1}
