:root{--text:#111827;--muted:#6b7280;--accent:#2f4fd1;--accent-soft:#eef2ff;--border:#e5e7eb;--background:#ffffff;--code-bg:#f3f4f6;--serif:Charter,"Iowan Old Style",Georgia,serif}*{box-sizing:border-box}html{border-top:4px solid var(--accent)}::selection{background:var(--accent-soft)}body{max-width:40rem;margin:0 auto;padding:2.5rem 1rem;background:var(--background);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:1.0625rem;line-height:1.6}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.25}h1{font-size:2rem;letter-spacing:-.01em}h2{font-size:1.25rem;margin-top:2.5rem}img{max-width:100%;height:auto}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:var(--code-bg)}code{padding:.1em .3em;border-radius:3px}pre{padding:1rem;overflow-x:auto;border-radius:4px}pre code{padding:0}blockquote{margin:1.5rem 0;padding:.5rem 1rem;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 4px 4px 0;color:var(--text)}blockquote p{margin:0}hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}main>h2{margin-top:3rem;font-family:inherit;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}article{line-height:1.75}article h1{margin-bottom:.25rem}.site-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;padding-bottom:1rem;margin-bottom:2.5rem;border-bottom:1px solid var(--border)}.site-name{font-size:1.25rem;font-weight:600;text-decoration:none}.site-name,.tagline{font-family:var(--serif);color:var(--text)}.tagline{margin:0;font-size:1.4rem;line-height:1.45}.site-header nav{display:flex;gap:1.25rem}.site-header nav a{color:var(--muted);text-decoration:none}.site-header nav a:hover{color:var(--accent);text-decoration:underline}.site-footer{margin-top:4rem;padding-top:1rem;border-top:1px solid var(--border);font-size:.875rem}.site-footer,.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--accent)}.muted{color:var(--muted)}.post-list{list-style:none;padding:0}.post-list li{padding:.85rem 0;border-bottom:1px solid var(--border)}.post-list li>a{font-family:var(--serif);font-size:1.125rem;font-weight:600;text-decoration:none}.post-list li>a:hover{text-decoration:underline}.post-list time{display:block;color:var(--muted);font-size:.875rem}.post-list p{margin:.25rem 0 0;color:var(--muted)}.project-list{list-style:none;padding:0}.project-list li{padding:.6rem 0;border-bottom:1px solid var(--border)}.project-list a{font-weight:600;text-decoration:none}.project-list a:hover{text-decoration:underline}.project-list span{display:block;color:var(--muted);font-size:.95rem}