@font-face{font-family:Newsreader;font-weight:400 600;font-style:normal;font-display:swap;src:url(/fonts/newsreader.woff2)format("woff2")}@font-face{font-family:Newsreader;font-weight:400 500;font-style:italic;font-display:swap;src:url(/fonts/newsreader-italic.woff2)format("woff2")}@font-face{font-family:Public Sans;font-weight:400 700;font-style:normal;font-display:swap;src:url(/fonts/public-sans.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/plex-mono-400.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/plex-mono-500.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/plex-mono-600.woff2)format("woff2")}:root{--bg:#f4f6f5;--surface:#fff;--surface-2:#e9edec;--ink:#182229;--ink-soft:#57646d;--ink-faint:#8b979d;--accent:#b54a3c;--accent-tint:#f3dad3;--accent-ink:#8f3a2f;--teal:#29677a;--teal-tint:#dce9ec;--rule:#dde3e1;--rule-strong:#c3cbc8;--shadow:#18222914}@media (prefers-color-scheme:dark){:root{--bg:#10151a;--surface:#171d23;--surface-2:#1e252c;--ink:#e7ecec;--ink-soft:#a6b2b8;--ink-faint:#6b767c;--accent:#e2897a;--accent-tint:#3a2320;--accent-ink:#efa898;--teal:#6fb6c4;--teal-tint:#1b2e33;--rule:#262e35;--rule-strong:#333d45;--shadow:#0006}}:root[data-theme=dark]{--bg:#10151a;--surface:#171d23;--surface-2:#1e252c;--ink:#e7ecec;--ink-soft:#a6b2b8;--ink-faint:#6b767c;--accent:#e2897a;--accent-tint:#3a2320;--accent-ink:#efa898;--teal:#6fb6c4;--teal-tint:#1b2e33;--rule:#262e35;--rule-strong:#333d45;--shadow:#0006}:root[data-theme=light]{--bg:#f4f6f5;--surface:#fff;--surface-2:#e9edec;--ink:#182229;--ink-soft:#57646d;--ink-faint:#8b979d;--accent:#b54a3c;--accent-tint:#f3dad3;--accent-ink:#8f3a2f;--teal:#29677a;--teal-tint:#dce9ec;--rule:#dde3e1;--rule-strong:#c3cbc8;--shadow:#18222914}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Public Sans,-apple-system,sans-serif;font-size:16px;line-height:1.6}a{color:var(--accent-ink)}a:focus-visible,summary:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:root{--nav-h:3.5rem}.top-nav{z-index:30;height:var(--nav-h);background:var(--surface);border-bottom:1px solid var(--rule);position:sticky;top:0}.top-nav-inner{justify-content:space-between;align-items:center;gap:1.5rem;max-width:1480px;height:100%;margin:0 auto;padding:0 2rem;display:flex}.top-nav-brand{color:var(--ink);white-space:nowrap;font-family:Newsreader,Georgia,serif;font-size:1.05rem;font-weight:600;text-decoration:none}.top-nav-links{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.top-nav-link{color:var(--ink-soft);white-space:nowrap;border:1px solid #0000;border-radius:100px;align-items:center;gap:.45rem;padding:.45rem .7rem;font-family:IBM Plex Mono,monospace;font-size:.76rem;text-decoration:none;display:flex}.top-nav-link:hover{color:var(--accent-ink);border-color:var(--accent-tint);background:var(--accent-tint)}.top-nav-link.is-active{color:var(--accent-ink);background:var(--accent-tint);border-color:var(--accent-tint)}.top-nav-icon{color:var(--teal);flex:none;display:inline-flex}.top-nav-link:hover .top-nav-icon,.top-nav-link.is-active .top-nav-icon{color:var(--accent-ink)}.shell{grid-template-columns:280px 1fr;align-items:start;gap:0;max-width:1480px;margin:0 auto;display:grid}.rail{top:var(--nav-h);height:calc(100vh - var(--nav-h));border-right:1px solid var(--rule);flex-direction:column;gap:1.6rem;padding:3rem 2rem 3rem 1.5rem;display:flex;position:sticky;overflow-y:auto}.rail-photo{aspect-ratio:1;object-fit:cover;border:1px solid var(--rule);width:100%;box-shadow:0 6px 20px var(--shadow);border-radius:12px}.rail h1{margin:0;font-family:Newsreader,Georgia,serif;font-size:1.65rem;font-weight:600;line-height:1.15}.rail .role{color:var(--ink-soft);margin-top:.5rem;font-size:.92rem;line-height:1.45}.rail .affil{color:var(--ink-faint);margin-top:.35rem;font-size:.82rem;line-height:1.4}.rail-links{flex-direction:column;gap:.5rem;display:flex}.rail-link{color:var(--ink);background:var(--surface);border:1px solid var(--rule);border-radius:6px;align-items:center;gap:.55rem;padding:.5rem .7rem;font-family:IBM Plex Mono,monospace;font-size:.78rem;text-decoration:none;transition:border-color .15s;display:flex}.rail-link:hover{border-color:var(--accent);color:var(--accent-ink)}.rail-icon{color:var(--teal);flex:none;display:inline-flex}.link-linkedin .rail-icon{color:#4a93b5}.link-github .rail-icon{color:var(--ink-soft)}.link-researchgate .rail-icon{color:var(--teal)}.link-scholar .rail-icon{color:var(--accent)}.rail-link:hover .rail-icon{color:var(--accent-ink)}.rail-nav{flex-direction:column;gap:.35rem;font-family:IBM Plex Mono,monospace;font-size:.74rem;display:flex}.rail-nav a{color:var(--ink-soft);align-items:center;gap:.5rem;padding:.15rem 0;text-decoration:none;display:flex}.rail-nav a:hover{color:var(--accent-ink)}.nav-icon{color:var(--teal);flex:none;display:inline-flex}.rail-nav a:hover .nav-icon{color:var(--accent)}main{min-width:0;padding:2.6rem 2.5rem 4rem 2.75rem}.intro{max-width:none;margin-bottom:2.6rem}.intro .kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:.9rem;font-family:IBM Plex Mono,monospace;font-size:.72rem}.intro h2{color:var(--ink);text-wrap:balance;margin:0 0 1.3rem;font-family:Newsreader,Georgia,serif;font-size:1.55rem;font-style:italic;font-weight:500;line-height:1.42}.intro p{color:var(--ink-soft);margin:0 0 1.05rem}.intro p:last-child{margin-bottom:0}.intro strong{color:var(--ink);font-weight:600}.block,details.block{scroll-margin-top:calc(var(--nav-h) + 1rem);margin-bottom:2.4rem}.block-head{border-bottom:1px solid var(--rule);align-items:flex-start;gap:.8rem;margin-bottom:1.1rem;padding-bottom:.9rem;display:flex}summary.block-head{cursor:pointer;list-style:none}summary.block-head::-webkit-details-marker{display:none}summary.block-head:after{content:"+";color:var(--accent);flex:none;margin-left:auto;padding-left:1rem;font-family:IBM Plex Mono,monospace;font-size:.95rem}details.block[open] summary.block-head:after{content:"−"}.block-head .idx{border-radius:10px;flex:none;justify-content:center;align-items:center;width:2.4rem;height:2.4rem;display:flex}.idx-accent{background:var(--accent-tint);color:var(--accent-ink)}.idx-teal{background:var(--teal-tint);color:var(--teal)}.block-head-text{flex:1;min-width:0}.block-head-text h3{letter-spacing:-.005em;margin:0;font-family:Newsreader,Georgia,serif;font-size:1.5rem;font-weight:600}.block-byline{color:var(--ink-soft);max-width:64ch;margin:.4rem 0 0;font-size:.88rem}.block-body{padding-top:1.1rem}.experience-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start;gap:1.2rem;display:grid}.experience-grid-single{grid-template-columns:1fr}.exp-card{border:1px solid var(--rule);background:var(--surface);box-shadow:0 2px 10px var(--shadow);border-radius:10px;padding:1.3rem 1.4rem 1.5rem}.exp-card-top{justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.9rem;display:flex}.exp-icon{border-radius:8px;flex:none;justify-content:center;align-items:center;width:2rem;height:2rem;display:inline-flex}.exp-icon-accent{background:var(--accent-tint);color:var(--accent-ink)}.exp-icon-teal{background:var(--teal-tint);color:var(--teal)}.tl-date{color:var(--ink-faint);letter-spacing:.02em;font-family:IBM Plex Mono,monospace;font-size:.72rem}.tl-role{color:var(--ink);margin:0 0 .15rem;font-family:Newsreader,Georgia,serif;font-size:1.12rem;font-weight:600}.tl-org{color:var(--ink-soft);border-bottom:1px solid var(--rule);margin-bottom:.8rem;padding-bottom:.8rem;font-size:.88rem}.tl-desc{max-width:none;color:var(--ink-soft);font-size:.9rem}.tl-desc p{margin:0 0 .7rem}.tl-desc p:last-child{margin-bottom:0}.research-grid{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));align-items:start;gap:1.2rem;display:grid}.research-grid-single{grid-template-columns:1fr}details.lab{border:1px solid var(--rule);border-top:3px solid var(--rule);background:var(--surface);box-shadow:0 2px 10px var(--shadow);border-radius:8px}details.lab.lab-accent{border-top-color:var(--accent)}details.lab.lab-teal{border-top-color:var(--teal)}details.lab summary{cursor:pointer;align-items:center;gap:.9rem;padding:1.1rem 1.3rem;list-style:none;display:flex}details.lab summary::-webkit-details-marker{display:none}.lab-icon{border-radius:8px;flex:none;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;display:inline-flex}.lab-accent .lab-icon{background:var(--accent-tint);color:var(--accent-ink)}.lab-teal .lab-icon{background:var(--teal-tint);color:var(--teal)}.lab-summary-text{flex-direction:column;gap:.2rem;min-width:0;font-family:Newsreader,Georgia,serif;font-size:1.05rem;font-weight:600;display:flex}.lab-count{color:var(--ink-faint);letter-spacing:.02em;font-family:IBM Plex Mono,monospace;font-size:.72rem;font-weight:400}details.lab summary:after{content:"+";color:var(--accent);flex:none;margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:.9rem}details.lab[open] summary:after{content:"−"}.lab-desc{color:var(--ink-soft);padding:0 1.3rem 1.1rem;font-size:.92rem}.lab-pubs{border-top:1px solid var(--rule);gap:.5rem;padding:1rem 1.3rem 1.3rem;display:grid}.pub{border-left:2px solid var(--rule);border-radius:6px;grid-template-columns:2rem 1fr;gap:.6rem;padding:.45rem .5rem;font-size:.86rem;line-height:1.55;display:grid}.lab-accent .pub:hover{border-left-color:var(--accent);background:var(--accent-tint)}.lab-teal .pub:hover{border-left-color:var(--teal);background:var(--teal-tint)}.pub .num{color:var(--ink-faint);padding-top:.15rem;font-family:IBM Plex Mono,monospace;font-size:.72rem}.pub a{color:var(--ink-soft);text-decoration-color:var(--rule-strong)}.pub a:hover{color:var(--accent-ink);text-decoration-color:var(--accent-ink)}.project-tag{letter-spacing:.05em;text-transform:uppercase;color:var(--teal);font-family:IBM Plex Mono,monospace;font-size:.68rem}.project-cta-row{flex-wrap:wrap;gap:.7rem;margin-top:auto;display:flex}.project-cta{white-space:nowrap;border:1px solid #0000;border-radius:100px;padding:.5rem .9rem;font-family:IBM Plex Mono,monospace;font-size:.76rem;text-decoration:none;display:inline-block}.project-cta-action{color:var(--accent-ink);border-color:var(--accent-tint);background:var(--accent-tint)}.project-cta-action:hover{border-color:var(--accent)}.project-cta-medium{color:var(--teal);border-color:var(--teal-tint);background:var(--teal-tint)}.project-cta-medium:hover{border-color:var(--teal)}.studies-grid{gap:1rem;display:grid}.study-card{border:1px solid var(--rule);background:var(--surface);border-radius:8px;padding:1.2rem 1.3rem}.study-desc{color:var(--ink-soft);margin:.3rem 0 .9rem;font-size:.9rem;line-height:1.55}details.study-more{border-top:1px solid var(--rule);margin-top:.2rem;padding-top:.7rem}details.study-more summary{cursor:pointer;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-faint);align-items:center;gap:.5rem;font-family:IBM Plex Mono,monospace;font-size:.74rem;font-weight:500;list-style:none;display:flex}details.study-more summary:hover{color:var(--accent-ink)}details.study-more summary::-webkit-details-marker{display:none}details.study-more summary:before{content:"+";color:var(--accent);font-family:IBM Plex Mono,monospace}details.study-more[open] summary:before{content:"−"}.study-body{padding-top:1rem}.study-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.2rem;display:grid}.study-field .k{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.4rem;font-family:IBM Plex Mono,monospace;font-size:.64rem}.study-field .v{color:var(--ink-soft);font-size:.85rem;line-height:1.55}.tag-list{flex-wrap:wrap;gap:.35rem;display:flex}.tag-pill{background:var(--surface-2);color:var(--ink-soft);white-space:nowrap;border-radius:100px;padding:.22rem .55rem;font-family:IBM Plex Mono,monospace;font-size:.68rem}footer.site-footer{border-top:1px solid var(--rule);color:var(--ink-faint);flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;gap:1rem;padding:2rem 2.5rem;font-family:IBM Plex Mono,monospace;font-size:.74rem;display:flex}.summary-card{border:1px solid var(--rule);border-top:3px solid var(--rule);background:var(--surface);color:var(--ink);box-shadow:0 2px 10px var(--shadow);border-radius:12px;align-items:center;gap:1.3rem;padding:1.5rem 1.7rem;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.summary-card:hover{border-color:var(--accent);transform:translateY(-1px)}.summary-card.tint-border-accent{border-top-color:var(--accent)}.summary-card.tint-border-teal{border-top-color:var(--teal)}.summary-card.tint-border-accent:hover,.summary-card.tint-border-teal:hover{border-top-color:var(--accent)}.summary-card-icon{border-radius:10px;flex:none;justify-content:center;align-items:center;width:3rem;height:3rem;display:flex}.summary-card-icon.tint-accent{background:var(--accent-tint);color:var(--accent-ink)}.summary-card-icon.tint-teal{background:var(--teal-tint);color:var(--teal)}.summary-card-body{flex:1;min-width:0}.summary-card-title{margin:0 0 .3rem;font-family:Newsreader,Georgia,serif;font-size:1.3rem;font-weight:600;display:block}.summary-card-meta{color:var(--ink-soft);margin:0;font-size:.9rem}.summary-card-cta{color:var(--accent-ink);white-space:nowrap;flex:none;font-family:IBM Plex Mono,monospace;font-size:.76rem}.projects-grid{grid-template-columns:1fr;gap:1.1rem;display:grid}.project-summary-card .summary-card-title{margin:.25rem 0 .35rem;font-size:1.2rem}.project-summary-card .project-tag{letter-spacing:.05em;text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:.68rem}.project-summary-card .project-tag.tag-accent{color:var(--accent-ink)}.project-summary-card .project-tag.tag-teal{color:var(--teal)}.project-summary-card .project-cta-row{flex-direction:column;flex:none;align-items:flex-end;gap:.5rem;display:flex}.page-shell{max-width:1480px;margin:0 auto}main.page-main{max-width:900px;margin:0 auto;padding:2.6rem 2.5rem 4rem}.page-header{margin-bottom:2.4rem}.page-header .kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--teal);align-items:center;gap:.5rem;margin-bottom:.7rem;font-family:IBM Plex Mono,monospace;font-size:.72rem;display:flex}.page-header h2{margin:0 0 .6rem;font-family:Newsreader,Georgia,serif;font-size:2rem;font-weight:600}.page-header p{color:var(--ink-soft);max-width:64ch;margin:0}.back-home{color:var(--ink-soft);align-items:center;gap:.4rem;margin-bottom:1.2rem;font-family:IBM Plex Mono,monospace;font-size:.76rem;text-decoration:none;display:inline-flex}.back-home:hover{color:var(--accent-ink)}@media (width<=880px){.shell{grid-template-columns:1fr}.rail{border-right:none;border-bottom:1px solid var(--rule);flex-flow:wrap;align-items:center;height:auto;padding:2rem 1.5rem;position:static}.rail-nav{display:none}main{padding:2.5rem 1.5rem 4rem}main.page-main{padding:2rem 1.5rem 3rem}.top-nav{height:auto;position:static}.top-nav-inner{flex-direction:column;align-items:flex-start;gap:.8rem;padding:1rem 1.5rem}.top-nav-links{gap:.3rem}.rail{top:0}}@media (width<=640px){.summary-card{flex-wrap:wrap;align-items:flex-start}.summary-card-body{flex:100%;order:2;min-width:0}.summary-card-cta{flex:100%;order:3;margin-top:.3rem}.project-summary-card .project-cta-row{flex-flow:wrap;flex:100%;order:3;align-items:flex-start;margin-top:.3rem}.exp-card-top{flex-wrap:wrap;row-gap:.5rem}}
