:root{--bg:#f7f7f4;--fg:#1d1f21;--muted:#61666b;--accent:#d9480f;--card:#fff;--line:#e3e3de;--note:#fff4e6;--note-line:#f5c08a}
@media (prefers-color-scheme:dark){:root{--bg:#141618;--fg:#e8e8e3;--muted:#9a9fa4;--accent:#ff8a4c;--card:#1c1f22;--line:#2c3034;--note:#2a2119;--note-line:#7a4a22}}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font:17px/1.7 "Segoe UI",Roboto,Helvetica,Arial,sans-serif}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:820px;margin:0 auto;padding:0 16px}
header{border-bottom:1px solid var(--line);padding:18px 0;background:var(--bg)}
header .wrap{display:flex;justify-content:space-between;align-items:center;gap:10px 20px;flex-wrap:wrap}
.logo{font-weight:700;font-size:20px;color:var(--fg)}.logo span{color:var(--accent)}
nav{display:flex;flex-wrap:wrap;gap:4px 16px}
nav a{color:var(--muted);font-size:15px}
main{padding:36px 0 60px}
h1{font-size:34px;line-height:1.2;margin:0 0 10px}
h2{margin:44px 0 10px;font-size:26px;line-height:1.3;padding-top:8px;border-top:1px solid var(--line)}
h3{margin:28px 0 6px;font-size:20px}
.lead{color:var(--muted);margin-top:0;font-size:18px}
.post{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px 22px;margin:16px 0}
.post h3{margin:0 0 6px;font-size:21px}.post h3 a{color:var(--fg)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px 0}
.grid .post{margin:0}
.meta{color:var(--muted);font-size:14px}
.toc{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 20px;margin:20px 0}
.toc ol{margin:6px 0;padding-left:22px}.toc b{font-size:15px}
.note{background:var(--note);border-left:4px solid var(--note-line);border-radius:6px;padding:12px 16px;margin:16px 0}
pre{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px;overflow-x:auto;font-size:14px;line-height:1.5}
code{font-family:Consolas,"JetBrains Mono",monospace;font-size:.92em}
.table{overflow-x:auto;margin:14px 0}
table{border-collapse:collapse;width:100%;font-size:15px}td,th{border:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}th{background:var(--card)}
footer{border-top:1px solid var(--line);color:var(--muted);font-size:14px;padding:20px 0}
@media (max-width:600px){h1{font-size:28px}h2{font-size:22px}body{font-size:16px}}
