@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono/JetBrainsMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono/JetBrainsMono-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{--bg:#f7f7f3;--surface:#fff;--ink:#171a1f;--muted:#5d6673;--line:#dcded7;--accent:#245b52;--accent-soft:#e3eee9;--code:"JetBrains Mono", "SFMono-Regular", Consolas, monospace;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--sans);margin:0;line-height:1.6}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}main{width:min(1120px,100% - 40px);margin:0 auto}.topbar{z-index:10;background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);font-family:var(--code);justify-content:space-between;align-items:center;gap:24px;padding:18px 0;font-size:13px;display:flex;position:sticky;top:0}.topbar div{flex-wrap:wrap;justify-content:flex-end;gap:18px;display:flex}.brand{color:var(--accent);font-weight:500}.hero{grid-template-columns:minmax(0,1fr) 320px;align-items:end;gap:56px;min-height:calc(100vh - 68px);padding:78px 0 64px;display:grid}.kicker,.section-heading span,.entry-meta,.project-card span,.featured-project span,.signal-strip,.identity-panel dt,.identity-panel span{font-family:var(--code);letter-spacing:0}.kicker{color:var(--accent);margin:0 0 20px;font-size:14px}h1,h2,h3,p{margin-top:0}h1{letter-spacing:0;max-width:820px;margin-bottom:24px;font-size:clamp(52px,8vw,112px);line-height:.94}.lede{max-width:720px;color:var(--muted);margin-bottom:30px;font-size:clamp(19px,2.4vw,28px);line-height:1.35}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.hero-actions a,.project-card a,.featured-project a,.footer a{border:1px solid var(--line);background:var(--surface);min-height:40px;font-family:var(--code);border-radius:6px;align-items:center;padding:0 14px;font-size:13px;display:inline-flex}.identity-panel{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:18px}.identity-panel img{aspect-ratio:1;object-fit:cover;filter:grayscale(18%);border-radius:6px;width:100%;height:auto}.identity-panel p{margin:18px 0 2px;font-weight:700}.identity-panel dl{gap:14px;margin:20px 0 0;display:grid}.identity-panel dt{color:var(--muted);font-size:12px}.identity-panel dd{overflow-wrap:anywhere;margin:2px 0 0}.signal-strip{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:92px;font-size:13px;display:grid}.signal-strip span{background:var(--accent-soft);align-items:center;min-height:66px;padding:16px;display:flex}.section{border-top:1px solid var(--line);padding:88px 0}.section-heading{grid-template-columns:120px 1fr;gap:24px;margin-bottom:34px;display:grid}.section-heading span{color:var(--accent);font-size:13px}h2{letter-spacing:0;font-size:clamp(30px,4vw,56px);line-height:1}.timeline{gap:22px;display:grid}.entry{border-top:1px solid var(--line);grid-template-columns:220px 1fr;gap:28px;padding:28px 0;display:grid}.entry:first-child{border-top:0}.entry-meta{color:var(--muted);align-content:start;gap:8px;font-size:13px;display:grid}.entry-body h3,.project-card h3,.skills-grid h3,.research-layout h3{margin-bottom:4px;font-size:22px;line-height:1.2}.entry-body p{color:var(--accent);font-family:var(--code);margin-bottom:16px;font-size:14px}ul{margin:0;padding-left:18px}li{color:var(--muted);margin-bottom:9px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.featured-project{border:1px solid color-mix(in srgb, var(--accent) 34%, var(--line));background:linear-gradient(135deg,#fff 0%,#eef6f2 100%);border-radius:8px;grid-template-columns:minmax(0,1fr) 320px;gap:18px;margin-bottom:18px;padding:28px;display:grid}.featured-project span{color:var(--accent);margin-bottom:12px;font-size:12px;display:block}.featured-project h3{margin-bottom:12px;font-size:clamp(28px,4vw,44px);line-height:1}.featured-project p{max-width:720px;color:var(--muted)}.featured-project div div{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.repo-stats{align-content:start;gap:12px;margin:0;display:grid}.repo-stats div{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 78%, transparent);border-radius:6px;padding:14px}.repo-stats dt{color:var(--accent);font-family:var(--code);font-size:12px}.repo-stats dd{color:var(--muted);margin:3px 0 0}.project-card,.skills-grid article,.research-layout article{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:24px}.project-card{gap:22px;min-height:280px;display:grid}.project-card span{color:var(--accent);margin-bottom:10px;font-size:12px;display:block}.project-card p,.research-layout p{color:var(--muted)}.project-card a{align-self:end;width:max-content}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.skills-grid article div{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.skills-grid span{border:1px solid var(--line);color:var(--muted);font-family:var(--code);border-radius:999px;padding:7px 10px;font-size:12px}.research-layout{grid-template-columns:1.2fr 1fr;gap:16px;display:grid}.research-layout article:first-child{grid-column:1/-1}.research-layout p span{color:var(--muted);font-family:var(--code);margin-top:8px;font-size:13px;display:block}.footer{border-top:1px solid var(--line);justify-content:space-between;gap:18px;padding:42px 0 64px;display:flex}.footer p{max-width:520px;color:var(--muted);margin:0}@media (max-width:820px){main{width:min(100% - 28px,1120px)}.topbar{align-items:flex-start}.hero{grid-template-columns:1fr;min-height:auto;padding-top:54px}.identity-panel{max-width:420px}.signal-strip,.featured-project,.project-grid,.skills-grid,.research-layout{grid-template-columns:1fr}.section-heading,.entry{grid-template-columns:1fr;gap:14px}.section{padding:64px 0}.footer{flex-direction:column}}@media (max-width:560px){.topbar div{gap:10px 14px}h1{font-size:48px}.hero-actions a,.project-card a,.footer a{justify-content:center;width:100%}}
