@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Inter+Tight:wght@400;500;600;700&family=JetBrains+Mono:wght@500;600;700&display=swap";:root{--bg:#f4f3ee;--ink:#0a0a0a;--ink-2:#444;--ink-3:#666;--rule:#0a0a0a;--accent:#c7322c;--hero-size:168px;--container-pad:48px}html,body{background:var(--bg);color:var(--ink);margin:0;padding:0;font-family:Inter Tight,Inter,system-ui,sans-serif}*{box-sizing:border-box}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}.nav{padding:20px var(--container-pad);border-bottom:1px solid var(--rule);background:var(--bg);z-index:5;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:sticky;top:0}.nav-mark{letter-spacing:-.02em;font-family:JetBrains Mono,monospace;font-size:18px;font-weight:700}.nav-mark .dot{color:var(--accent)}.nav-links{gap:32px;font-size:13px;font-weight:500;display:flex}.nav-meta{text-align:right;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;font-family:JetBrains Mono,monospace;font-size:11px}section{padding:96px var(--container-pad)}.hero{padding:80px var(--container-pad) 0}.hero-grid{grid-template-columns:1.4fr 1fr;align-items:end;gap:64px;display:grid}.kicker{text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);margin-bottom:32px;font-family:JetBrains Mono,monospace;font-size:12px}.hero h1{font-size:var(--hero-size);letter-spacing:-.045em;margin:0;font-weight:600;line-height:.88}.hero h1 .pt{color:var(--accent)}.hero-meta{grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px;font-family:JetBrains Mono,monospace;font-size:12px;display:grid}.hero-meta div{flex-direction:column;gap:4px;display:flex}.hero-meta span{color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.hero-meta b{font-weight:600}.hero-right{padding-bottom:24px}.hero-lede{margin:0;font-size:22px;font-weight:400;line-height:1.4}.hero-lede em{color:var(--accent);font-style:italic;font-weight:500}.hero-refs{color:var(--ink-2);flex-direction:column;gap:8px;margin-top:32px;font-family:JetBrains Mono,monospace;font-size:12px;display:flex}.hero-rule{background:var(--rule);height:1px;margin-top:80px}.sh{grid-template-columns:auto auto 1fr;align-items:center;gap:24px;margin-bottom:48px;display:grid}.sh-n{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600}.sh-l{text-transform:uppercase;letter-spacing:.18em;font-size:14px;font-weight:600}.sh-r{background:var(--rule);height:1px}.bio{grid-template-columns:1fr 2fr;gap:64px;display:grid}.bio.no-photo{grid-template-columns:1fr;max-width:880px}.photo-slot{aspect-ratio:4/5;border:1px solid var(--rule);color:var(--ink-3);background:repeating-linear-gradient(45deg, transparent 0 12px, color-mix(in oklab, var(--ink) 4%, transparent) 12px 13px);flex-direction:column;justify-content:center;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:12px;display:flex}.photo-caption{color:var(--ink-3);letter-spacing:.1em;margin-top:12px;font-family:JetBrains Mono,monospace;font-size:10px}.bio-body{color:var(--ink-2);font-size:17px;line-height:1.65}.bio-body p{margin:0 0 16px}.bio-body .lead{color:var(--ink);margin-top:0;font-size:24px;font-weight:500;line-height:1.4}.bio-body strong{color:var(--ink);font-weight:600}.stack-grid{border-top:1px solid var(--rule);border-left:1px solid var(--rule);grid-template-columns:repeat(5,1fr);display:grid}.stack-col{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);min-height:280px;padding:24px 20px}.stack-head{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:16px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.stack-list{flex-direction:column;gap:8px;margin:0;padding:0;font-size:15px;list-style:none;display:flex}.exp-list{margin:0;padding:0;list-style:none}.exp-row{border-top:1px solid var(--rule);grid-template-columns:120px 1fr;gap:48px;padding:32px 0;display:grid}.exp-years{color:var(--ink-3);font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.6}.exp-role{letter-spacing:-.02em;margin:0;font-size:28px;font-weight:600}.exp-org{color:var(--ink-3);margin-top:4px;font-family:JetBrains Mono,monospace;font-size:14px}.exp-desc{max-width:720px;color:var(--ink-2);margin-top:12px;font-size:16px;line-height:1.6}.exp-bullets{color:var(--ink-2);flex-direction:column;gap:8px;max-width:760px;margin:16px 0 0;padding-left:18px;font-size:15px;line-height:1.55;display:flex}.exp-bullets strong{color:var(--ink);font-weight:600}.exp-stack{border-top:1px dashed var(--rule);color:var(--ink-3);max-width:760px;margin-top:16px;padding-top:12px;font-family:JetBrains Mono,monospace;font-size:12px}.work-table{border:1px solid var(--rule)}.work-row{border-top:1px solid var(--rule);grid-template-columns:60px 80px 2.4fr 2fr 1.4fr;align-items:start;gap:16px;padding:20px 24px;font-size:14px;display:grid}.work-head{text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);background:color-mix(in oklab, var(--ink) 4%, transparent);border-top:none;font-family:JetBrains Mono,monospace;font-size:11px}.work-n{color:var(--accent);font-family:JetBrains Mono,monospace;font-weight:600}.work-year{color:var(--ink-3);font-family:JetBrains Mono,monospace}.work-title{flex-direction:column;gap:4px;font-size:16px;font-weight:600;display:flex}.work-title small{color:var(--ink-3);font-size:13px;font-weight:400}.work-stack{color:var(--ink-2);font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.5}.work-role{color:var(--ink-3);font-size:13px}.work-feature{background:color-mix(in oklab, var(--ink) 3%, transparent);border-top:none;grid-template-columns:60px 80px 1fr;align-items:start;gap:24px;padding:32px;display:grid}.work-feature-body h3{letter-spacing:-.02em;margin:0 0 16px;font-size:24px;font-weight:700}.work-feature-list{color:var(--ink-2);flex-direction:column;gap:8px;margin:0;padding-left:18px;font-size:15px;line-height:1.55;display:flex}.work-feature-meta{border-top:1px dashed var(--rule);color:var(--ink-3);flex-wrap:wrap;gap:24px;margin-top:20px;padding-top:16px;font-family:JetBrains Mono,monospace;font-size:12px;display:flex}.ai-grid{border-top:1px solid var(--rule);border-left:1px solid var(--rule);grid-template-columns:repeat(3,1fr);display:grid}.ai-block{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);color:var(--ink-2);padding:32px;font-size:15px;line-height:1.6}.ai-block h4{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin:0 0 16px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600}.ai-block ul,.ai-block ol{margin:0;padding-left:18px}.ai-block li{margin-bottom:8px}.contact{background:var(--ink);color:var(--bg);padding:96px var(--container-pad) 32px;margin-top:64px}.contact-grid{grid-template-columns:1.5fr 1fr;align-items:start;gap:64px;display:grid}.contact-kicker{color:var(--accent);text-transform:uppercase;letter-spacing:.12em;margin-bottom:24px;font-family:JetBrains Mono,monospace;font-size:12px}.contact-title{letter-spacing:-.04em;margin:0;font-size:88px;font-weight:600;line-height:.95}.contact-list{margin:0;padding:0;font-family:JetBrains Mono,monospace;font-size:14px;list-style:none}.contact-list li{border-bottom:1px solid #333;gap:16px;padding:12px 0;display:flex}.contact-list li span{color:#888;text-transform:uppercase;letter-spacing:.08em;width:80px;font-size:11px}.contact-list li a{border-bottom:1px solid var(--accent);padding-bottom:2px}.foot{color:#888;text-transform:uppercase;letter-spacing:.1em;border-top:1px solid #444;justify-content:space-between;margin-top:80px;padding-top:24px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}@media (width<=1100px){:root{--hero-size:112px;--container-pad:32px}.hero-grid,.contact-grid,.bio{grid-template-columns:1fr;gap:40px}.stack-grid,.ai-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=760px){:root{--hero-size:64px;--container-pad:20px}.nav{grid-template-columns:1fr;gap:14px;position:static}.nav-links{flex-wrap:wrap;gap:14px 18px}.nav-meta{text-align:left}section{padding:64px var(--container-pad)}.hero{padding-top:48px}.hero-grid,.contact-grid,.bio,.exp-row{grid-template-columns:1fr;gap:24px}.hero-meta,.sh{grid-template-columns:1fr;gap:12px}.stack-grid,.ai-grid{grid-template-columns:1fr}.contact-title{font-size:56px}.foot{flex-direction:column;gap:12px}.contact-list li{flex-direction:column;gap:6px}.contact-list li span{width:auto}}
