:root{--text: #252a27;--bg: #f8f7f4;--accent: #477158;--selection: #dce8db;--border: #deded6;--muted: #72766e;--accent-soft: #57715e;--subtle: #666d64;--link: #354b3b;--hover-bg: #eceae3;--text-soft: #4a5049;--accent-strong: #3f684c;--faint: #a3aa9f;--panel: #f2f1ec;--code-bg: #eeeee7;--quote: #7b927c;--raised: #fff;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--text: #e3e6e0;--bg: #151816;--accent: #8fbf9c;--selection: #2c4434;--border: #2c312d;--muted: #979c94;--accent-soft: #8db29a;--subtle: #a5aaa2;--link: #b5d3bd;--hover-bg: #232824;--text-soft: #c3c7c0;--accent-strong: #9ccaa8;--faint: #666c65;--panel: #1b1f1c;--code-bg: #1f2420;--quote: #5f7d66;--raised: #232824}}:root{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.65}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}a:hover{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:var(--selection)}.shell{max-width:880px;margin:auto;padding:0 44px}.site-header{height:110px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.wordmark{white-space:nowrap;font-size:19px;font-weight:650;letter-spacing:-.7px;text-decoration:none}.wordmark span{color:var(--accent)}nav{display:flex;gap:28px;font-size:14px}nav a{text-decoration:none;color:var(--muted)}nav a.active{color:var(--text);text-decoration:underline}main{min-height:calc(100vh - 230px)}.intro{padding:84px 0 64px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:2px;color:var(--accent-soft);margin:0 0 24px}h1,h2,h3{line-height:1.15;letter-spacing:-1.5px}h1{font-size:clamp(36px,6vw,58px);font-weight:550;margin:0 0 28px}.lead{font-size:23px;line-height:1.6;letter-spacing:-.45px;max-width:690px}.bio{font-size:16px;color:var(--subtle);max-width:650px;line-height:1.9}.bio a{color:var(--link)}.avatar{display:block;width:96px;height:96px;border-radius:50%;object-fit:cover;margin-bottom:32px;border:1px solid var(--border)}.resume-link{display:inline-block;margin-top:8px;font-size:15px;font-weight:550;color:var(--link)}.social-links{display:flex;align-items:center;gap:4px}.social-links a{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;color:var(--muted);transition:color .15s,background .15s}.social-links a:hover{color:var(--text);background:var(--hover-bg)}.social-links svg{width:18px;height:18px}.site-header nav{margin-left:auto}.site-header .social-links{margin-left:22px;padding-left:18px;border-left:1px solid var(--border)}.site-footer .social-links{margin:-8px -8px -8px 0}.tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:12px 0 0}.tags li{font-size:11px;color:var(--accent-soft);background:var(--hover-bg);border-radius:4px;padding:2px 8px}.post-summary{color:var(--text-soft);max-width:690px;margin:10px 0 0}.writing{padding-bottom:70px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}.section-heading h2{font-size:20px;letter-spacing:-.5px;font-weight:550}.section-heading>a{font-size:12px;text-decoration:none;color:var(--subtle)}.post-row{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--border);padding:27px 0;text-decoration:none}.post-row:last-child{border-bottom:1px solid var(--border)}.post-title{font-size:19px;font-weight:500;letter-spacing:-.35px}.post-meta{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--muted);margin-top:10px}.arrow{color:var(--accent-soft);font-size:22px}.site-footer{border-top:1px solid var(--border);padding:30px 0;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.site-footer a{text-decoration:none}.page-heading{padding:75px 0 40px}.page-heading h1{font-size:44px}.muted{color:var(--muted)}.back-link{display:inline-block;margin-top:48px;font-size:13px;text-decoration:none;color:var(--subtle)}.article-heading{padding:30px 0}.article-heading h1{font-size:clamp(32px,5vw,48px);margin:18px 0}.prose{font-size:16px;line-height:1.85;overflow-wrap:anywhere}.prose h2{font-size:27px;margin-top:46px;letter-spacing:-.6px}.prose h3{font-size:21px;margin-top:32px;letter-spacing:-.3px}.prose a{color:var(--accent-strong)}.prose h2,.prose h3{position:relative;scroll-margin-top:32px}.prose .heading-anchor{position:absolute;right:100%;padding-right:10px;color:var(--faint);font-weight:400;text-decoration:none;opacity:0;transition:opacity .15s}.prose h2:hover .heading-anchor,.prose h3:hover .heading-anchor{opacity:1}.article{position:relative}.toc-heading,.toc-inline summary{font-size:11px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted)}.toc-heading{margin:0 0 14px}.toc-list{list-style:none;margin:0;padding:0;font-size:13px;line-height:1.45}.toc-list li{margin:0}.toc-list a{display:block;padding:5px 0 5px 14px;border-left:2px solid var(--border);color:var(--subtle);text-decoration:none;transition:color .15s,border-color .15s}.toc-list .toc-sub a{padding-left:28px;font-size:12.5px}.toc-list a:hover{color:var(--text)}.toc-list a[aria-current]{color:var(--accent-strong);border-left-color:var(--accent);font-weight:500}.toc-inline{margin:0 0 36px;padding:14px 18px;border:1px solid var(--border);border-radius:8px;background:var(--panel)}.toc-inline summary{cursor:pointer}.toc-inline[open] summary{margin-bottom:12px}.toc-rail{display:none}@media(min-width:1360px){.toc-rail{display:block;position:absolute;top:0;bottom:0;left:calc(100% + 56px);width:220px}.toc-sticky{position:sticky;top:40px;max-height:calc(100vh - 80px);overflow-y:auto}.toc-inline{display:none}}@media(max-width:420px){.site-header .social-links{display:none}}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.prose pre{padding:20px;background:var(--code-bg);border:1px solid var(--border);border-radius:5px;overflow-x:auto;font-size:12px;line-height:1.7}.prose code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:var(--code-bg);font-size:.85em;padding:2px 4px}.prose pre code{font-size:inherit;padding:0}.prose table{display:block;overflow-x:auto;border-collapse:collapse;font-size:13px;margin:25px 0}.prose th,.prose td{border-bottom:1px solid var(--border);padding:10px 14px;min-width:95px;text-align:left}.prose th{background:var(--code-bg)}.prose img,.prose video{max-width:100%;height:auto}.prose .video{margin:25px 0}.prose .video iframe{display:block;width:100%;aspect-ratio:16 / 9;border:0;border-radius:5px;background:var(--code-bg)}.prose .video figcaption{margin-top:8px;font-size:13px;color:var(--subtle)}.prose blockquote{border-left:3px solid var(--quote);padding-left:20px;margin-left:0;color:var(--subtle)}.post-nav{margin-top:60px;display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:27px 0}.post-nav-link{display:flex;flex-direction:column;gap:8px;text-decoration:none}.post-nav-link.next{grid-column:2;text-align:right}.post-nav-label{font-size:12px;color:var(--muted)}.post-nav-title{font-size:16px;font-weight:500;letter-spacing:-.3px}.article-footer{margin-top:30px;padding:30px 0 50px;display:flex;justify-content:space-between;font-size:13px}.skip-link{position:absolute;left:16px;top:-100px;background:var(--raised);padding:10px;z-index:2}.skip-link:focus{top:10px}@media(max-width:600px){.shell{padding:0 24px}.site-header{height:85px}.intro{padding:56px 0 44px}.lead{font-size:20px}.eyebrow{font-size:9px;letter-spacing:1.3px}.post-title{font-size:17px}.page-heading{padding-top:50px}.page-heading h1{font-size:36px}.prose{font-size:15px}.post-nav{grid-template-columns:1fr}.post-nav-link.next{grid-column:1}nav{gap:20px}.site-header .social-links{display:none}.social-links a{width:32px;height:32px}}
