:root{--bg:#0d0f12;--bg-raised:#14171c;--fg:#e8eaed;--fg-muted:#9aa3ad;--fg-faint:#6b747e;--accent:#5ee0b0;--accent-dim:#2a8d6c;--rule:#23272e;--font-sans:ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--measure:68ch;--gutter:1.5rem}:root[data-theme=light]{--bg:#fbfbf9;--bg-raised:#fff;--fg:#16191d;--fg-muted:#555e68;--fg-faint:#858e98;--accent:#0f7a57;--accent-dim:#8fd9c0;--rule:#e3e3de}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#fbfbf9;--bg-raised:#fff;--fg:#16191d;--fg-muted:#555e68;--fg-faint:#858e98;--accent:#0f7a57;--accent-dim:#8fd9c0;--rule:#e3e3de}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:17px;line-height:1.65}.wrap{max-width:var(--measure);padding-inline:var(--gutter);margin-inline:auto}a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:640;line-height:1.2}h1{font-size:clamp(2rem,6vw,3.1rem)}h2{font-size:1.05rem;font-weight:600}p{margin:0 0 1.1rem}.mono{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-faint);font-size:.78rem}.site-head{border-bottom:1px solid var(--rule);padding-block:1.4rem}.site-head .wrap{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.brand{font-family:var(--font-mono);letter-spacing:.02em;color:var(--fg);font-size:.95rem;font-weight:600;text-decoration:none}.brand span{color:var(--accent)}.hero{padding-block:clamp(3.5rem,11vw,7rem) clamp(2.5rem,7vw,4.5rem)}.hero h1{text-wrap:balance;margin-bottom:1.5rem}.lede{color:var(--fg-muted);max-width:54ch;font-size:clamp(1.05rem,2.4vw,1.2rem)}section{border-top:1px solid var(--rule);padding-block:clamp(2.5rem,7vw,4rem)}.sec-label{margin-bottom:2rem}.stack{gap:2.2rem;display:grid}.item h3{flex-wrap:wrap;align-items:baseline;gap:.6rem;margin-bottom:.5rem;font-size:1.12rem;display:flex}.item p{color:var(--fg-muted);max-width:58ch;margin:0}.item .tag{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent-dim);white-space:nowrap;border-radius:999px;padding:.1rem .5rem;font-size:.68rem}.contact-grid{gap:.6rem;display:grid}.contact-row{border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:baseline;gap:1rem;padding-block:.55rem;display:flex}.contact-row dt{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-faint);min-width:6.5rem;font-size:.72rem}.contact-row dd{margin:0}.site-foot{border-top:1px solid var(--rule);color:var(--fg-faint);padding-block:2rem 3rem;font-size:.85rem}.site-foot .wrap{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}@media (width<=480px){:root{--gutter:1.15rem}body{font-size:16px}}.prose{max-width:60ch}.prose p{color:var(--fg-muted)}.prose p.lead-in{color:var(--fg)}.entries{gap:1.8rem;max-width:62ch;display:grid}.entry h3{flex-wrap:wrap;align-items:baseline;gap:.65rem;margin-bottom:.35rem;font-size:1.05rem;display:flex}.entry h3 a{color:var(--fg);text-decoration:none}.entry h3 a:hover{color:var(--accent);text-decoration:underline}.entry .when{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-faint);white-space:nowrap;font-size:.68rem}.entry p{color:var(--fg-muted);margin:0;font-size:.97rem}.links{gap:.1rem;max-width:48ch;display:grid}.links a{border-bottom:1px solid var(--rule);color:var(--fg);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;padding-block:.7rem;text-decoration:none;display:flex}.links a:hover{color:var(--accent)}.links .what{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-faint);font-size:.72rem}.links a:hover .what{color:var(--accent)}.nav{align-items:baseline;gap:1.2rem;display:flex}.nav a{color:var(--fg-muted);font-size:.9rem;text-decoration:none}.nav a:hover{color:var(--accent)}
