:root { --fg:#1a1a1a; --muted:#6b6b6b; --rule:#e6e6e6; --link:#0b57d0; --bg:#ffffff; --max:40rem; }
@media (prefers-color-scheme: dark) { :root { --fg:#e8e8e8; --muted:#9a9a9a; --rule:#2a2a2a; --link:#8ab4f8; --bg:#111111; } }
* { box-sizing: border-box; }
html { font-size: 17px; -webkit-text-size-adjust: 100%; }
body { margin: 0 auto; padding: 2.5rem 1.25rem 4rem; max-width: var(--max); color: var(--fg); background: var(--bg);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; line-height: 1.6; }
a { color: var(--link); text-decoration: none; } a:hover { text-decoration: underline; }
header.top { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: .5rem 1rem; margin-bottom: 3rem; border-bottom: 1px solid var(--rule); padding-bottom: 1rem; }
header .name { font-weight: 600; color: var(--fg); }
nav a { margin-left: 1rem; color: var(--muted); } nav a:hover { color: var(--fg); }
h1 { font-size: 1.6rem; line-height: 1.25; margin: 0 0 1rem; } h2 { font-size: 1.15rem; margin: 2.5rem 0 .75rem; }
p, li { max-width: 38rem; }
.intro p:first-child { font-size: 1.15rem; }
ul.posts { list-style: none; padding: 0; } ul.posts li { margin: .5rem 0; }
ul.posts time, .meta { color: var(--muted); font-variant-numeric: tabular-nums; margin-right: .5rem; }
.desc { color: var(--muted); }
article p { margin: 1rem 0; } article img { max-width: 100%; }
blockquote { margin: 1rem 0; padding-left: 1rem; border-left: 2px solid var(--rule); color: var(--muted); }
code { font-size: .92em; } pre { overflow-x: auto; padding: .75rem; border: 1px solid var(--rule); }
footer { margin-top: 4rem; padding-top: 1rem; border-top: 1px solid var(--rule); color: var(--muted); font-size: .92rem; }
.fine { font-size: .8rem; }
