:root{--bg:#0e0f11;--fg:#d8d9dc;--strong:#fff;--muted:#8b929b;--line:#23252a;--link-line:#555;--chip:#1a1c20;color-scheme:dark}:root[data-theme=light]{--bg:#fff;--fg:#2a2b2e;--strong:#0e0f11;--muted:#666b73;--line:#e6e7ea;--link-line:#bbb;--chip:#f2f3f5;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#fff;--fg:#2a2b2e;--strong:#0e0f11;--muted:#666b73;--line:#e6e7ea;--link-line:#bbb;--chip:#f2f3f5;color-scheme:light}}body{background:var(--bg);color:var(--fg);margin:0;font:16px/1.7 system-ui,-apple-system,Segoe UI,sans-serif}.wrap{max-width:720px;margin:0 auto;padding:0 24px 96px}.wrap.wide{max-width:880px}header.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:28px 0 72px;font-size:14px;display:flex}header.top .n{color:var(--strong);font-weight:600;text-decoration:none}header.top nav{align-items:center;gap:20px;display:flex}header.top nav a{color:var(--muted);text-decoration:none}header.top nav a.on{color:var(--strong)}.theme{border:1px solid var(--line);color:var(--fg);cursor:pointer;background:0 0;border-radius:6px;padding:6px;display:flex}.theme svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.theme .moon,:root[data-theme=light] .theme .sun{display:none}:root[data-theme=light] .theme .moon{display:block}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .theme .sun{display:none}:root:not([data-theme=dark]) .theme .moon{display:block}}h1{color:var(--strong);letter-spacing:-.02em;margin:0 0 20px;font-size:36px;font-weight:600;line-height:1.2}h1 span{color:var(--muted)}h2{color:var(--strong);letter-spacing:-.01em;margin:64px 0 12px;font-size:24px;font-weight:600}h3{color:var(--strong);margin:36px 0 8px;font-size:18px}a{color:var(--strong);text-decoration-color:var(--link-line);text-underline-offset:3px}.lead{font-size:18px}.links{flex-wrap:wrap;gap:8px 20px;margin-top:32px;font-size:15px;display:flex}.hero{align-items:center;gap:32px;margin-bottom:20px;display:flex}.hero img{object-fit:cover;object-position:50% 22%;border-radius:50%;flex:none;width:132px;height:132px}.hero h1{margin:0}.k{color:var(--muted);margin:56px 0 8px;font-size:13px}.sel{border-top:1px solid var(--line)}.sel a{border-bottom:1px solid var(--line);color:var(--fg);padding:14px 0;text-decoration:none;display:block}.sel a b{color:var(--strong);font-weight:600;display:block}.sel a span{color:var(--muted);font-size:14px}.sel a:hover b{text-decoration:underline}figure{margin:28px auto}figure.w-md{max-width:600px}figure.w-sm{max-width:540px}figure.w-xs{max-width:420px}figure.fig img{box-sizing:border-box;border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;height:auto;padding:12px;display:block}figure a{display:block}figcaption{color:var(--muted);margin-top:10px;font-size:14px;line-height:1.55}.pub{border-bottom:1px solid var(--line);padding:12px 0;font-size:15px}.pub .y{color:var(--muted);margin-right:12px;font:13px ui-monospace,Consolas,monospace}.pub a{color:var(--fg);text-decoration:none}.pub a:hover{text-decoration:underline}.toc{color:var(--muted);font-size:14px}.toc a{color:var(--muted);margin-right:16px}.fc{padding-left:18px}.fc li{margin:6px 0}.fc span{color:var(--muted);margin-left:6px;font-size:14px}.crumb{margin:0 0 16px;font-size:14px}.crumb a{color:var(--muted);text-decoration:none}.note{color:var(--muted);margin-top:16px;font-size:14px}.note a{color:var(--muted)}.proj{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--fg);grid-template-columns:200px 1fr;gap:24px;padding:24px 0;text-decoration:none;display:grid}.proj img{aspect-ratio:4/3;object-fit:cover;border-radius:6px;width:100%;height:auto;display:block}.proj b{color:var(--strong);margin-bottom:4px;font-size:19px;line-height:1.35;display:block}.proj .m{color:var(--muted);margin:0 0 8px;font-size:14px}.proj p{margin:0}.proj:hover b{text-decoration:underline}.cv-role{grid-template-columns:1fr auto;gap:0 16px;margin:20px 0 0;display:grid}.cv-role b{color:var(--strong)}.cv-role .when{color:var(--muted);white-space:nowrap;font-size:14px}.cv-role .org{color:var(--muted);grid-column:1/-1;font-size:15px}.cv-role p{grid-column:1/-1;margin:4px 0 0}footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:80px;padding-top:20px;font-size:13px;display:flex}footer a{color:var(--muted)}.intro{color:var(--muted);margin:0}.chips{flex-wrap:wrap;gap:8px;margin:28px 0 0;display:flex}.chips button{background:var(--chip);color:var(--fg);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:4px 14px;font:14px system-ui,sans-serif}.chips button[aria-pressed=true]{background:var(--strong);color:var(--bg);border-color:var(--strong)}.year{color:var(--muted);letter-spacing:-.03em;margin:48px 0 0;font-size:44px;font-weight:700;line-height:1}.entry{border-bottom:1px solid var(--line);grid-template-columns:110px 1fr;gap:20px;padding:22px 0;display:grid}.entry .d{color:var(--muted);padding-top:2px;font-size:14px}.entry h3{margin:0 0 10px;font-size:18px;font-weight:600;line-height:1.35}.entry h3 a{color:var(--strong);text-decoration:none}.entry h3 a:hover{text-decoration:underline}.strip{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.strip img{aspect-ratio:1;object-fit:cover;border-radius:3px;width:100%;height:auto;display:block}.more{color:var(--muted);margin-top:6px;font-size:13px}.more .c{margin-left:10px}[hidden]{display:none!important}.post .text,.post>p,.post>.video{max-width:680px;margin-left:auto;margin-right:auto}.post h1{margin:24px 0 8px;font-size:40px;line-height:1.15}.post p{font-size:18px;line-height:1.75}.post .meta{color:var(--muted);margin:0 0 28px;font-size:15px}.post .back{color:var(--muted);font-size:14px;text-decoration:none}.post p:has(>img){max-width:none;margin:36px 0}.post p>img{border-radius:6px;width:auto;max-width:100%;height:auto;max-height:85vh;margin:0 auto;display:block}.post .video{aspect-ratio:16/9;margin:36px auto;position:relative}.post .video iframe{border:0;border-radius:6px;width:100%;height:100%;position:absolute;inset:0}.pager{border-top:1px solid var(--line);justify-content:space-between;gap:24px;margin-top:56px;padding-top:20px;font-size:15px;display:flex}.pager a{color:var(--strong);text-decoration:none}.pager small{color:var(--muted);display:block}@media (width<=600px){header.top{padding-bottom:48px}h1{font-size:30px}.hero{flex-direction:column;align-items:flex-start;gap:20px}.hero img{width:104px;height:104px}.proj{grid-template-columns:1fr;gap:12px}.entry{grid-template-columns:1fr;gap:4px}.year{font-size:34px}.post h1{font-size:30px}}.sel a:last-child,.entry:last-of-type,.proj{border-bottom:0}
