:root{--bg:#fafafa;--surface:#f0f0f0;--ink:#0a0a0a;--ink-2:#666;--line:#e0e0e0;--accent:#0a0a0a;--on-accent:#fafafa;--term-bg:#0a0a0a;--term-line:#0a0a0a;--term-ink:#ededed;--term-muted:#6e6e6e;--term-accent:#fff;--term-key:#fff;--term-str:#a8a8a8;--term-num:#d4d4d4;--serif:"Instrument Serif", Georgia, "Times New Roman", serif;--sans:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Geist Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--max:1080px;--gutter:clamp(16px, 5vw, 40px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0a0a0a;--surface:#161616;--ink:#ededed;--ink-2:#8f8f8f;--line:#262626;--accent:#ededed;--on-accent:#0a0a0a;--term-bg:#000;--term-line:#262626;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0a0a0a;--surface:#161616;--ink:#ededed;--ink-2:#8f8f8f;--line:#262626;--accent:#ededed;--on-accent:#0a0a0a;--term-bg:#000;--term-line:#262626;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.6;transition:background-color .2s,color .2s}body,figure,h1,h2,h3,ol,p,pre,ul{margin:0}ol,ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}::selection{background:var(--accent);color:var(--on-accent)}.mono{font-family:var(--mono)}.small{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);font-size:12px;font-weight:400}.accent{color:var(--accent)}.page{max-width:var(--max);padding:0 var(--gutter);margin:0 auto}.nav{z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;display:flex;position:sticky;top:0}.brand{font-size:14px;font-weight:500}.nav nav{color:var(--ink-2);align-items:center;gap:clamp(12px,3vw,28px);font-size:13px;display:flex}.nav nav a:hover,.theme{color:var(--ink)}.theme{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;place-items:center;width:32px;height:32px;padding:0;transition:transform .3s,border-color .2s;display:grid}.theme:hover{border-color:var(--ink-2);transform:rotate(180deg)}.hero{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(32px,6vw,72px);padding:clamp(48px,10vw,120px) 0 clamp(40px,7vw,80px);display:grid}.eyebrow,.hero{align-items:center}.eyebrow{color:var(--ink-2);gap:10px;margin-bottom:20px;font-size:13px;display:inline-flex}.dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 50%,transparent);border-radius:50%;animation:2.4s ease-out infinite pulse}@keyframes pulse{70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}h1{font-family:var(--serif);letter-spacing:-.02em;font-size:clamp(56px,10vw,112px);font-weight:400;line-height:.92}h1 em{color:var(--accent)}.lede{max-width:34ch;color:var(--ink-2);margin-top:28px;font-size:clamp(18px,2vw,21px);line-height:1.5}.cta{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.btn{border:1px solid var(--ink);border-radius:999px;align-items:center;gap:8px;padding:12px 20px;font-size:15px;font-weight:500;transition:background-color .15s,color .15s,transform .15s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn.primary,.btn:not(.primary):hover{background:var(--ink);color:var(--bg)}.terminal{background:var(--term-bg);color:var(--term-ink);border:1px solid var(--term-line);border-radius:14px;font-size:13px;line-height:1.7;transition:transform .3s;overflow:hidden;transform:rotate(1.2deg);box-shadow:inset 0 1px #ffffff0a,0 30px 60px -30px #00000073}.terminal:hover{transform:rotate(0)}.term-bar{border-bottom:1px solid #ffffff0f;align-items:center;gap:6px;padding:12px 16px;display:flex}.term-bar i{background:#3a3833;border-radius:50%;width:10px;height:10px}.term-bar i:first-child{background:var(--term-accent)}.term-bar span{color:var(--term-muted);margin-left:auto;font-size:11px}.terminal pre{white-space:pre;padding:18px 20px 22px;font-family:inherit;overflow-x:auto}.muted,.prompt{color:var(--term-muted)}.k{color:var(--term-key)}.s{color:var(--term-str)}.n{color:var(--term-num)}.caret{vertical-align:-2px;background:var(--term-ink);width:8px;height:15px;margin-left:4px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.fact{flex-direction:column;gap:4px;padding:28px 24px 28px 0;display:flex}.fact+.fact{border-left:1px solid var(--line);padding-left:24px}.fact-value{font-family:var(--serif);font-size:clamp(40px,5vw,56px);line-height:1}.fact-label{color:var(--ink-2);max-width:22ch;font-size:14px}.section{grid-template-columns:200px minmax(0,1fr);gap:24px 48px;padding:clamp(56px,8vw,96px) 0 0;scroll-margin-top:64px;display:grid}.section-title{font-family:var(--serif);font-size:36px;font-weight:400;line-height:1}.section-title .mono{color:var(--accent);margin-bottom:10px;font-size:12px;display:block}h3{font-size:18px;font-weight:600;line-height:1.35}.company{font-size:15px}.company,.when{color:var(--ink-2)}.when{white-space:nowrap;font-size:13px}.jobs{flex-direction:column;display:flex}.job{border-top:1px solid var(--line);grid-template-columns:150px minmax(0,1fr);gap:8px 24px;padding:28px 0;display:grid}.job:first-child{border-top:0;padding-top:4px}.job .when{padding-top:3px}.summary{margin-top:10px;font-size:15px}.projects{flex-direction:column;gap:16px;margin-top:18px;display:flex}.project{padding-left:20px;position:relative}.project:before{content:"→";color:var(--accent);font-family:var(--mono);font-size:13px;position:absolute;top:2px;left:0}.project h4{margin:0;font-size:15px;font-weight:600;line-height:1.4}.project p{color:var(--ink-2);margin-top:2px;font-size:15px}.tags{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.tags li{border:1px solid var(--line);color:var(--ink-2);border-radius:4px;padding:1px 8px;font-size:11px}.other-projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.other-projects>li{border:1px solid var(--line);border-radius:12px;padding:18px 20px}.op-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;display:flex}.op-head h3{overflow-wrap:anywhere;font-size:16px}.op-head a:hover{text-underline-offset:3px;text-decoration:underline}.stack{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 40px;display:grid}.stack h3{margin-bottom:14px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips li{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 12px;font-size:14px}.edu li{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:24px;padding:20px 0;display:flex}.edu li:first-child{border-top:0;padding-top:4px}.contact>:not(.section-title){grid-column:2}.contact-lede{color:var(--ink-2);font-size:18px}.email{font-family:var(--serif);overflow-wrap:anywhere;background:linear-gradient(var(--accent),var(--accent)) no-repeat 0 100% /0 2px;justify-self:start;font-size:clamp(30px,6vw,64px);line-height:1.1;transition:background-size .35s}.email:hover{background-size:100% 2px}.links{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.links a{border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:2px;min-width:200px;padding:14px 18px;transition:border-color .15s,background-color .15s;display:flex}.links a:hover{border-color:var(--ink-2);background:var(--surface)}.footer{border-top:1px solid var(--line);color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:clamp(72px,10vw,128px);padding:24px 0 32px;font-size:12px;display:flex}@media (width<=860px){.hero{grid-template-columns:minmax(0,1fr)}.terminal{transform:none}.section{grid-template-columns:minmax(0,1fr)}.contact>:not(.section-title){grid-column:1}.stack{grid-template-columns:minmax(0,1fr);gap:24px}}@media (width<=600px){.nav nav a{display:none}.facts{grid-template-columns:minmax(0,1fr)}.fact,.fact+.fact{border-left:0;padding:20px 0}.fact+.fact{border-top:1px solid var(--line)}.job,.other-projects{grid-template-columns:minmax(0,1fr)}.edu li{flex-direction:column;gap:4px}.links a{flex:100%}.terminal{font-size:12px}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
