:root{--bg:#f7f7f5;--surface:#fff;--ink:#16181d;--ink-2:#2a2e36;--muted:#4a4f5a;--faint:#5c6270;--line:#e3e3df;--line-strong:#cfcfca;--dark:#16181d;--dark-line:#3a3e47;--accent:#2447d6;--sans:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Geist Mono", ui-monospace, Menlo, monospace;--pad:clamp(20px, 5vw, 56px);--section:clamp(48px, 7vw, 88px)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.6}a{color:#1f2937}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}.container{max-width:1120px;padding:0 var(--pad);margin:0 auto}.mono{font-family:var(--mono)}.site-header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:28px 0;display:flex}.brand{min-height:44px;color:var(--ink);align-items:center;gap:12px;font-weight:600;text-decoration:none;display:flex}.brand-mark{background:var(--dark);width:36px;height:36px;color:var(--bg);font-family:var(--mono);border-radius:9px;justify-content:center;align-items:center;font-size:14px;font-weight:500;display:inline-flex}.nav{flex-wrap:wrap;gap:4px;font-size:15px;display:flex}.nav a{border-radius:8px;padding:10px 14px;text-decoration:none}.nav a.cta{background:var(--dark);color:var(--bg);padding:10px 16px}.nav a.cta:hover{background:#2a2e36}.btn{border-radius:10px;align-items:center;gap:8px;min-height:48px;padding:0 22px;font-size:16px;font-weight:500;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{color:#fff;filter:brightness(1.1)}.btn-secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line-strong)}.hero{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:center;gap:clamp(40px,6vw,80px);padding:clamp(64px,10vw,128px) 0 clamp(56px,8vw,104px);display:grid}.hero-copy{flex-direction:column;gap:28px;display:flex}.eyebrow{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0;font-size:13px}.hero h1{letter-spacing:-.035em;margin:0;font-size:clamp(42px,6vw,68px);font-weight:600;line-height:1.04}.lede{max-width:34em;color:var(--muted);margin:0;font-size:19px}.actions{flex-wrap:wrap;gap:12px;padding-top:4px;display:flex}.terminal{background:var(--dark);color:#e8e9ec;font-family:var(--mono);border-radius:16px;padding:28px 28px 32px;font-size:14px;line-height:1.8;overflow-x:auto;box-shadow:0 1px #0000000a,0 24px 48px -24px #16181d59}.dots{gap:8px;padding-bottom:20px;display:flex}.dots span{background:var(--dark-line);border-radius:50%;width:11px;height:11px}.terminal .c{color:#8a90a0}.terminal .k{color:#8fb0ff}.terminal .v{color:#f2b880}.terminal hr{background:#2c3038;border:0;height:1px;margin:18px 0}.rows{grid-template-columns:120px 1fr;gap:6px 16px;display:grid}.rows dt{color:#8a90a0}.rows dd{margin:0}.section{padding:var(--section) 0;border-top:1px solid var(--line)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:32px;display:flex}.section h2{letter-spacing:-.02em;margin:0;font-size:32px;font-weight:600}.section-head a{align-items:center;min-height:44px;font-size:15px;display:inline-flex}.posts{margin:0;padding:0;list-style:none}.posts li{border-top:1px solid var(--line)}.posts li:last-child{border-bottom:1px solid var(--line)}.post-row{color:var(--ink);grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:8px 32px;padding:24px 0;text-decoration:none;display:grid}.post-meta{font-family:var(--mono);color:var(--faint);padding-top:4px;font-size:13px}.post-main{flex-direction:column;grid-column:span 2;gap:6px;display:flex}.post-title{letter-spacing:-.01em;font-size:21px;font-weight:600}.post-row:hover .post-title{color:var(--accent)}.post-desc{color:var(--muted);font-size:16px}.empty{color:var(--muted);border-top:1px solid var(--line);margin:0;padding:24px 0}.draft-badge{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:#92400e;background:#fef3c7;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:11px}.project-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px;display:grid}.project-card{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:14px;flex-direction:column;gap:14px;padding:28px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.project-card:hover{border-color:var(--line-strong);color:var(--ink);transform:translateY(-2px)}.project-card svg{color:var(--accent)}.project-title{font-size:20px;font-weight:600}.project-blurb{color:var(--muted);flex-grow:1;font-size:16px}.project-tags{font-family:var(--mono);color:var(--faint);font-size:13px}.about{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:40px;display:grid}.about-body{flex-direction:column;grid-column:span 2;gap:18px;max-width:40em;display:flex}.about-body p{color:var(--muted);margin:0}.about-body p:first-child{color:var(--ink-2);font-size:19px}@media (width<=760px){.about-body,.post-main{grid-column:auto}}.contact{margin:0 0 var(--section);background:var(--dark);color:var(--bg);border-radius:20px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px;padding:clamp(36px,5vw,56px);display:flex}.contact h2{letter-spacing:-.02em;margin:0;font-size:30px;font-weight:600}.contact p{color:#b9bdc7;margin:0}.contact-copy{flex-direction:column;gap:8px;max-width:32em;display:flex}.contact-links{flex-wrap:wrap;gap:12px;display:flex}.contact .btn-light{background:var(--bg);color:var(--ink)}.icon-btn{border:1px solid var(--dark-line);width:48px;height:48px;color:var(--bg);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:#fff;border-color:#6b7180}.site-footer{border-top:1px solid var(--line);color:var(--faint);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:28px 0 40px;font-size:14px;display:flex}.article{max-width:42em;padding:var(--section) 0;margin:0 auto}.article header{border-bottom:1px solid var(--line);margin-bottom:32px;padding-bottom:32px}.article h1{letter-spacing:-.03em;margin:12px 0;font-size:clamp(34px,5vw,48px);line-height:1.1}.article .lede{font-size:19px}.prose{color:var(--ink-2);font-size:18px;line-height:1.75}.prose h2{letter-spacing:-.02em;color:var(--ink);margin:2em 0 .5em;font-size:26px}.prose h3{color:var(--ink);margin:1.6em 0 .4em;font-size:21px}.prose a{color:var(--accent)}.prose code{font-family:var(--mono);background:#ececea;border-radius:5px;padding:2px 6px;font-size:.88em}.prose pre{border-radius:12px;padding:20px;font-size:14px;line-height:1.6;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.prose blockquote{border-left:3px solid var(--line-strong);color:var(--muted);margin:1.5em 0;padding-left:20px}.prose img{border-radius:10px;max-width:100%;height:auto}.back{align-items:center;min-height:44px;font-size:15px;display:inline-flex}
