@font-face{font-family:manrope;src:url(/_next/static/media/0bf677b970c21617-s.p.ttf) format("truetype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:manrope;src:url(/_next/static/media/4ca38baad642392e-s.p.ttf) format("truetype");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:manrope;src:url(/_next/static/media/6b62d7564cb689e3-s.p.ttf) format("truetype");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:manrope;src:url(/_next/static/media/13505a668b16d4bc-s.p.ttf) format("truetype");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:manrope Fallback;src:local("Arial");ascent-override:102.74%;descent-override:28.91%;line-gap-override:0.00%;size-adjust:103.76%}.__className_bce5e4{font-family:manrope,manrope Fallback}.__variable_bce5e4{--font-sans:"manrope","manrope Fallback"}:root{--background:#111313;--surface:#171a1a;--text:#eeeae1;--muted:#b6bdb9;--faint:#a0aaa4;--line:#303635;--accent:#a6bdd0;--serif:Georgia,"Times New Roman",serif;--sans:var(--font-sans),sans-serif;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:36px}body{margin:0;background:var(--background);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}::selection{background:#a6bdd0;color:#111313}a{color:inherit;text-decoration:none}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:7px;border-radius:2px}a{transition:color .18s,background .18s}a:hover{color:var(--accent)}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);font-weight:400;line-height:1.06;letter-spacing:-.025em}h3{font-weight:500;line-height:1.35}svg{display:block}img{max-width:100%}.shell{width:min(1200px,calc(100% - 112px));margin-inline:auto}.skip-link{position:fixed;top:-80px;left:16px;z-index:10;padding:10px 18px;background:var(--text);color:var(--background)}.skip-link:focus{top:12px}.skip-link:not(:focus){-webkit-clip-path:inset(50%);clip-path:inset(50%)}.site-header{height:106px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:42px}.wordmark{font-family:var(--serif);font-size:47px;line-height:1;letter-spacing:-3px;flex:1 1}.wordmark span{color:var(--accent)}.site-header nav{display:flex;align-items:center;gap:35px;height:100%;font-size:13px}.site-header nav a{position:relative;color:var(--muted);padding:15px 0}.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--text)}.site-header nav a[aria-current]:after{content:"";position:absolute;bottom:4px;left:0;width:16px;height:2px;background:var(--accent)}.resume-link{font-size:12px;border:1px solid #414947;padding:7px 16px;border-radius:3px}.resume-link span{margin-left:14px;color:var(--accent)}.tiny-label{font-size:10px;font-weight:500;letter-spacing:0;line-height:1.6;text-transform:none;color:var(--muted)}.button{display:inline-flex;align-items:center;gap:28px;background:var(--text);color:#161919;border:1px solid var(--text);border-radius:3px;padding:12px 19px;font-size:12px;font-weight:600;line-height:1.5}.button:hover{background:var(--accent);border-color:var(--accent);color:#111313}.button span{font-size:19px;line-height:1}.text-link{display:inline-flex;align-items:center;gap:15px;font-size:12px;line-height:1.6;flex-shrink:0}.text-link span{color:var(--accent);font-size:18px}.secondary{color:var(--muted)}.knowledge-map{position:relative;aspect-ratio:520/400;color:#95a6aa;isolation:isolate}.map-lines{position:absolute;inset:0;width:100%;height:100%;z-index:-1;transition:color .3s}.knowledge-map:has(.map-node:hover) .map-lines{color:var(--accent)}.map-node{position:absolute;display:flex;align-items:flex-start;gap:12px;transform:translate(-6px,-6px);font-size:13px;line-height:1.4;color:var(--text)}.map-node>span:last-child{padding:1px 3px 5px;background:var(--background);white-space:nowrap}.node-point{position:relative;width:10px;height:10px;border:1px solid var(--accent);background:var(--background);border-radius:50%;margin-top:3px;flex-shrink:0;transition:background .2s,box-shadow .2s}.map-node:focus-visible .node-point,.map-node:hover .node-point{background:var(--accent)}.node-research{left:27.3%;top:20.5%}.node-projects{left:77.5%;top:35.25%}.node-experience,.node-projects{flex-direction:row-reverse;transform:translate(calc(-100% + 6px),-6px);text-align:right}.node-experience{left:76.15%;top:78.5%}.node-interests{left:22.3%;top:76%}.node-contact{left:17.5%;top:46.75%;flex-direction:row-reverse;transform:translate(calc(-100% + 6px),-6px)}.section{padding-block:86px;border-bottom:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:38px;gap:24px}.section-heading>.text-link{margin-bottom:5px}.section-heading h2 a{display:inline-flex;align-items:center;gap:20px}.section-heading h2 a span{font-family:var(--sans);font-size:22px;color:var(--accent)}.research-list{border-top:1px solid var(--line)}.research-row:last-child{border-bottom:0}.row-arrow{font-size:22px;justify-self:end;color:var(--accent)}.experience-section{display:grid;grid-template-columns:.8fr 1.2fr;grid-gap:60px;gap:60px}.experience-section .section-heading{display:block}.experience-section .section-heading>a{margin-top:26px}.experience-row{display:grid;grid-template-columns:112px 1fr;grid-gap:24px;gap:24px;padding:28px 0;border-bottom:1px solid var(--line)}.experience-row:first-child{padding-top:0}.experience-row:last-child{border:0;padding-bottom:0}.experience-row h3{font-size:17px;letter-spacing:-.015em}.experience-row p{font-size:12px;line-height:1.9;color:var(--muted);margin-top:14px}.role{display:block;color:var(--text);font-size:11px;margin-top:7px}.role>span{color:var(--faint)}.about-section{display:grid;grid-template-columns:.83fr 1.17fr;grid-gap:100px;gap:100px;align-items:center}.portrait-wrap{max-width:390px;position:relative;align-self:stretch}.portrait{display:block;width:100%;height:100%;max-height:480px;min-height:400px;object-fit:cover;object-position:49% 50%;filter:saturate(.42);border-radius:3px;transition:filter .4s}.portrait-wrap:hover .portrait{filter:saturate(.85)}.about-copy p{color:var(--muted);font-size:13px;line-height:1.95;max-width:490px;margin-top:13px}.education{margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.education .tiny-label{font-size:8px;letter-spacing:.11em}.education h3{font-size:16px;line-height:1.6;margin-top:11px}.education>span:last-child{font-size:10px;color:var(--faint);margin-top:10px;display:block}.contact-section{padding-block:95px;display:grid;grid-template-columns:1.1fr 1fr;grid-gap:70px;gap:70px;align-items:center}.contact-links>a{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);font-size:21px;letter-spacing:-.025em;gap:12px}.contact-links>a span{color:var(--accent);font-size:22px}.contact-links .phone-link{font-size:17px;color:var(--muted)}.contact-links>div{display:flex;gap:26px;margin-top:22px;font-size:11px;color:var(--muted)}.site-footer{border-top:1px solid var(--line);padding:28px 0 35px;display:flex;align-items:center;gap:24px;font-size:10px;color:var(--faint)}.footer-name span{display:block;font-size:9px;color:var(--faint);margin-top:2px}.llms-link{font-size:9px;margin-left:8px}.index-page{padding-top:75px}.page-intro{padding-bottom:46px;border-bottom:1px solid var(--line)}.project-entry h2 a{display:flex;justify-content:space-between;align-items:center}.project-entry h2 span{font-family:var(--sans);font-size:21px;color:var(--accent)}.entry-links{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin-top:25px}.entry-links .text-link{font-size:11px}.page-end{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:44px 0 64px;font-size:12px;color:var(--muted)}.research-entry{display:grid;grid-template-columns:210px 1fr;grid-gap:52px;gap:52px;padding:46px 0;border-bottom:1px solid var(--line)}.research-entry h2 a{display:flex;align-items:center;justify-content:space-between}.research-entry h2 span{font-size:24px;font-family:var(--sans);color:var(--accent)}.byline{color:var(--faint);font-size:11px;line-height:1.8}.detail-page{padding-top:38px}.back-link{font-size:11px;color:var(--muted)}.detail-header{padding:49px 0 42px;max-width:900px}.detail-actions{display:flex;align-items:center;gap:28px;margin-top:29px;flex-wrap:wrap}.detail-header .byline{margin-top:20px}.detail-header .entry-meta{display:flex;gap:25px;align-items:center}.article-layout{display:grid;grid-template-columns:240px 1fr;grid-gap:85px;gap:85px;padding:60px 0;border-bottom:1px solid var(--line)}.prose{max-width:750px}.prose section+section{margin-top:37px}.prose h2{font-family:var(--sans);font-size:18px;font-weight:500;letter-spacing:-.01em;line-height:1.4;margin-bottom:13px}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.table-scroll{overflow-x:auto;margin-top:20px}table{width:100%;border-collapse:collapse;font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}caption{text-align:left;color:var(--muted);font-size:10px;padding-bottom:12px}td,th{padding:14px 12px;border-bottom:1px solid var(--line);font-weight:400}th:first-child{text-align:left}thead{color:var(--faint)}.prose .source-note{font-size:11px;margin-top:17px;line-height:1.85}.not-found{padding-block:130px;min-height:65vh}.not-found h1{font-size:75px;margin:20px 0}.not-found p{color:var(--muted);margin-bottom:28px}@media (max-width:1100px){.shell{width:calc(100% - 72px)}.map-node{font-size:11px}.section{padding-block:65px}.experience-section{grid-template-columns:.7fr 1.3fr;gap:35px}.experience-row{grid-template-columns:90px 1fr;gap:16px}.about-section{gap:55px}.contact-section{gap:40px}.contact-links>a{font-size:17px}.research-entry{grid-template-columns:155px 1fr;gap:35px}.article-layout{grid-template-columns:205px 1fr;gap:50px}}@media (max-width:800px){.shell{width:calc(100% - 48px)}.site-header{height:85px;gap:28px}.site-header nav{gap:23px;font-size:12px}.wordmark{font-size:42px}.map-node{font-size:10px;gap:6px}.node-point{width:8px;height:8px}.experience-section{display:block}.experience-section .section-heading{display:flex;margin-bottom:35px}.experience-section .section-heading>a{margin-top:0}.experience-row{grid-template-columns:140px 1fr;gap:20px}.about-section{gap:35px}.portrait{min-height:420px}.contact-section{gap:30px;grid-template-columns:1fr 1fr}.contact-links>a{font-size:15px}.contact-links .phone-link{font-size:14px}.contact-links>div{gap:17px;font-size:10px}.project-entry .entry-links{gap:15px}.research-entry{grid-template-columns:105px 1fr;gap:35px}.article-layout{grid-template-columns:165px 1fr;gap:35px}.site-footer{gap:18px}}@media (max-width:600px){.shell{width:calc(100% - 40px)}.site-header{height:auto;min-height:94px;flex-wrap:wrap;gap:0;position:relative;padding-top:13px;padding-bottom:11px;justify-content:space-between}.wordmark{flex:none;font-size:37px}.home-header{min-height:72px}.site-header nav{order:3;width:100%;justify-content:space-between;gap:12px;font-size:11px;height:auto;margin-top:6px}.site-header nav a{padding:9px 0}.site-header nav a[aria-current]:after{bottom:1px;width:11px}.resume-link{padding:5px 11px;font-size:10px}.resume-link span{margin-left:9px}.button{font-size:10px;padding:11px 13px;gap:15px}.knowledge-map{margin-top:40px;max-width:470px;margin-inline:auto;aspect-ratio:520/385}.map-lines{height:100%;object-fit:contain}.map-node{font-size:12px;gap:9px}.node-point{width:9px;height:9px}.section{padding-block:48px}.section-heading{align-items:flex-end;gap:12px;margin-bottom:26px}.section-heading .text-link{font-size:10px;gap:8px}.research-row .row-arrow{font-size:19px}.research-preview .section-heading{align-items:flex-start}.research-preview .section-heading>.text-link{margin-top:4px;max-width:100px;white-space:normal}.research-preview .section-heading h2{font-size:35px}.experience-section .section-heading{align-items:flex-end}.experience-row{grid-template-columns:1fr;gap:8px;padding-block:25px}.experience-row h3{font-size:17px}.experience-row p{margin-top:11px;font-size:12px}.role{font-size:10px}.about-section{display:flex;flex-direction:column-reverse;gap:30px;align-items:stretch}.about-copy p{font-size:12px}.education{margin-top:20px}.portrait-wrap{max-width:none;aspect-ratio:1.05}.portrait{height:100%;min-height:0;max-height:none;object-position:50% 43%}.contact-section{grid-template-columns:1fr;gap:25px;padding-block:50px}.contact-links>a{font-size:19px}.contact-links .phone-link{font-size:15px}.contact-links>div{font-size:11px;gap:25px}.site-footer{flex-wrap:wrap;padding:24px 0;gap:17px}.site-footer>a:not(.footer-name){font-size:9px}.site-footer .llms-link{margin-left:auto}.index-page{padding-top:42px}.page-intro{padding-bottom:30px}.project-entry .entry-links{gap:26px}.page-end{align-items:flex-start;flex-direction:column;font-size:11px;gap:15px;padding:30px 0 40px}.page-end .text-link{font-size:11px;flex-shrink:1}.research-entry{grid-template-columns:1fr;gap:19px;padding-block:30px}.research-entry .entry-links{gap:18px;margin-top:21px}.detail-page{padding-top:25px}.detail-header{padding:32px 0}.detail-header .entry-meta{gap:15px;justify-content:space-between}.detail-header .entry-meta .status{margin:0}.detail-header .byline{font-size:10px}.detail-actions{gap:22px;margin-top:24px}.detail-actions .text-link{font-size:10px}.article-layout{grid-template-columns:1fr;gap:32px;padding:32px 0}.article-layout aside{padding-bottom:23px;border-bottom:1px solid var(--line)}.prose h2{font-size:17px}.prose section+section{margin-top:28px}td,th{padding:12px 8px;font-size:10px}.table-scroll{margin-right:0}.not-found{padding-block:70px}.not-found h1{font-size:56px}}.text-link{min-height:24px}.map-node{min-height:28px}@media (max-width:600px){.knowledge-map{aspect-ratio:520/400}.node-contact{flex-direction:row;transform:translate(-6px,-6px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation:none!important;transition:none!important}}.hero{padding-block:82px;display:grid;grid-template-columns:1.12fr 1fr;grid-gap:48px;gap:48px;align-items:center;border-bottom:1px solid var(--line)}.hero h1{font-size:clamp(58px,6vw,86px);line-height:1.1;letter-spacing:-.045em}.hero-description{margin-top:25px;max-width:490px;font-size:16px;color:var(--muted);line-height:1.85}.hero-description+.hero-description{margin-top:16px}.hero-location{margin-top:18px;font-size:12px;color:var(--faint)}.about-copy h2,.contact-section h2,.section-heading h2{font-size:42px;margin:0}.about-copy h2{margin-bottom:24px}.featured-grid{display:block}.featured-project{display:grid;grid-template-columns:.8fr 1.2fr;grid-gap:48px;gap:48px;padding-block:26px;border-top:1px solid var(--line)}.project-preview-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px}.project-preview-heading h3{font-size:23px;letter-spacing:-.02em}.project-preview-heading>span{color:var(--accent)}.featured-project p{color:var(--muted);font-size:14px;line-height:1.85;max-width:590px}.tags{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:16px}.tags span{color:var(--faint);font-size:12px}.tags span+span:before{content:"·";margin-right:14px}.research-row{display:grid;grid-template-columns:1fr auto 24px;align-items:center;grid-gap:24px;gap:24px;padding:27px 0;border-bottom:1px solid var(--line)}.research-row h3{font-family:var(--serif);font-size:29px;letter-spacing:-.025em}.status{display:inline-block;font-size:12px;line-height:1.5;color:var(--accent);white-space:nowrap}.status.ongoing{color:#c4b89c}.experience-date{padding-top:4px;font-size:11px;white-space:nowrap;letter-spacing:0}.about-copy p,.experience-row p{font-size:14px}.role{font-size:12px}.education .tiny-label{font-size:12px;letter-spacing:0}.education>span:last-child,.footer-name{font-size:12px}.footer-name{margin-right:auto;color:var(--text)}.page-intro h1{font-size:68px;margin:0}.project-entry{padding-block:40px;border-bottom:1px solid var(--line)}.project-entry-copy{display:grid;grid-template-columns:.8fr 1.2fr;grid-column-gap:70px;column-gap:70px}.project-entry h2{grid-row:1/4;font-size:30px;line-height:1.3;letter-spacing:-.025em}.project-entry-copy>.entry-links,.project-entry-copy>.tags,.project-entry-copy>p{grid-column:2}.project-entry p{font-size:14px;line-height:1.85;color:var(--muted)}.research-entry{grid-template-columns:160px 1fr}.research-entry-label{padding-top:8px}.research-entry h2{font-size:36px;line-height:1.25;margin:0}.research-entry p{font-size:14px;color:var(--muted);margin-top:18px;line-height:1.85;max-width:740px}.research-entry .byline{font-size:12px;margin-top:16px;color:var(--faint)}.detail-header{max-width:1040px}.detail-header h1{font-size:clamp(40px,5.5vw,70px);margin:0 0 20px;line-height:1.15;overflow-wrap:break-word}.detail-header .byline{font-size:12px}.article-layout{border-top:1px solid var(--line)}.article-layout aside p{font-size:14px;color:var(--muted);line-height:1.85;margin:0}.project-facts{display:grid;grid-gap:22px;gap:22px;margin:0;padding:0}.project-facts dt{font-size:12px;color:var(--faint);letter-spacing:0}.project-facts dd{font-size:13px;margin:3px 0 0;overflow-wrap:anywhere}.prose p{font-size:15px;color:var(--muted);line-height:1.9}@media (max-width:1100px){.hero{padding-block:65px;gap:20px}.hero h1{font-size:64px}.project-entry-copy{column-gap:40px}.experience-row{grid-template-columns:100px 1fr}}@media (max-width:800px){.hero{grid-template-columns:1fr 1fr;gap:15px;padding-block:52px}.hero h1{font-size:54px}.hero-description{font-size:14px}.hero-location{font-size:11px}.about-copy h2,.contact-section h2,.section-heading h2{font-size:36px}.featured-project{gap:30px}.project-entry-copy{grid-template-columns:1fr 1.2fr;gap:0 30px}.project-entry h2{font-size:27px}.research-entry{grid-template-columns:110px 1fr}.research-entry h2{font-size:31px}}@media (max-width:600px){.hero{display:block;padding-block:48px 30px}.hero h1{font-size:clamp(48px,12vw,66px)}.hero-description{font-size:15px;margin-top:22px}.hero-location{font-size:11px}.button{font-size:12px}.knowledge-map{margin-top:24px}.about-copy h2,.contact-section h2,.section-heading h2{font-size:32px}.section-heading .text-link{font-size:11px}.featured-project{grid-template-columns:1fr;gap:10px;padding-block:24px}.project-preview-heading h3{font-size:21px}.featured-project p{font-size:14px}.research-row{grid-template-columns:1fr 20px;gap:10px;padding-block:23px}.research-row h3{font-size:25px}.research-row .status{grid-column:1;grid-row:2}.research-row .row-arrow{grid-column:2;grid-row:1}.experience-row{grid-template-columns:1fr}.about-copy p,.experience-row p{font-size:14px}.experience-date{font-size:11px}.role{font-size:12px}.footer-name{width:100%}.page-intro h1{font-size:48px}.project-entry{padding-block:30px}.project-entry-copy{display:block}.project-entry h2{font-size:29px;margin-bottom:15px}.project-entry .entry-links{margin-top:20px}.research-entry{grid-template-columns:1fr;gap:12px}.research-entry-label{padding:0}.research-entry h2{font-size:29px}.research-entry .byline{font-size:12px}.detail-header h1{font-size:42px}.article-layout{gap:30px}.article-layout aside p,.prose p{font-size:14px}.project-facts{gap:14px}.project-facts>div{display:block}}