:root{color-scheme:light;--bg:#f7f8f8;--surface:#fff;--surface-strong:#eef2f3;--surface-warm:#f7f1e5;--ink:#171b20;--muted:#65717d;--line:#dfe5e7;--teal:#0f625f;--teal-dark:#0a4643;--plum:#6e4660;--gold:#815e16;--blue:#2d5f91;--shadow:0 10px 28px #171b2012;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-padding-top:74px}body{background:var(--bg);color:var(--ink);margin:0;font-size:15px;line-height:1.55}img{max-width:100%;display:block}a{color:var(--teal);text-underline-offset:.18em;text-decoration-thickness:.08em}a:hover{color:var(--plum)}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:0;line-height:1.12}h1{max-width:16ch;margin-bottom:.75rem;font-size:clamp(1.85rem,3.4vw,2.85rem)}h2{max-width:22ch;margin-bottom:.75rem;font-size:clamp(1.25rem,2.2vw,1.8rem)}h3{margin-bottom:.3rem;font-size:1.08rem}.site-header{z-index:10;backdrop-filter:blur(18px);background:#fbfbfaeb;border-bottom:1px solid #d8dedbd6;justify-content:space-between;align-items:center;gap:1.25rem;min-height:60px;padding:.6rem clamp(1rem,4vw,2rem);display:flex;position:sticky;top:0}.brand{color:var(--ink);white-space:nowrap;align-items:center;gap:.75rem;font-size:.95rem;font-weight:720;text-decoration:none;display:inline-flex}.brand-mark{background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:1.85rem;height:1.85rem;font-size:.72rem;display:grid}.site-nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:clamp(.5rem,2vw,1.25rem);display:flex}.site-nav a{color:var(--muted);font-size:.88rem;font-weight:680;text-decoration:none}.site-nav a[aria-current=page]{color:var(--ink)}.language-switch{border-left:1px solid var(--line);padding-left:.75rem}.section-shell{width:min(1080px,100% - 2rem);margin-inline:auto;padding-block:clamp(1.5rem,3.2vw,2.75rem)}.hero{grid-template-columns:minmax(0,1fr) minmax(210px,280px);align-items:center;gap:clamp(1.5rem,4vw,3.25rem);min-height:auto;padding-block:clamp(1.5rem,3.2vw,2.75rem);display:grid}.hero-copy{max-width:780px}.lead{color:#313a44;max-width:700px;font-size:clamp(.98rem,1.6vw,1.1rem);line-height:1.58}.eyebrow{color:var(--plum);letter-spacing:.07em;text-transform:uppercase;margin-bottom:.55rem;font-size:.7rem;font-weight:800}.hero-actions{flex-wrap:wrap;gap:.8rem;margin-top:1.35rem;display:flex}.button{border:1px solid var(--line);border-radius:8px;justify-content:center;align-items:center;min-height:38px;padding:.55rem .85rem;font-size:.9rem;font-weight:720;text-decoration:none;display:inline-flex}.button.primary{background:var(--teal);border-color:var(--teal);color:#fff}.button.primary:hover{background:var(--teal-dark);color:#fff}.button.secondary{background:var(--surface);color:var(--ink)}.portrait-panel{align-self:stretch;margin:0}.portrait-panel img{aspect-ratio:1;object-fit:cover;width:100%;box-shadow:var(--shadow);border-radius:8px}.portrait-panel figcaption{color:var(--muted);justify-content:space-between;gap:1rem;margin-top:.75rem;font-size:.82rem;display:flex}.portrait-panel strong{color:var(--ink)}.portrait-panel span{text-align:right}.split-section{grid-template-columns:minmax(260px,.7fr) minmax(320px,1fr);gap:clamp(1.5rem,4vw,3rem);display:grid}.prose{color:#313a44;font-size:.98rem}.section-heading{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.25rem;display:flex}.section-heading h2{margin-bottom:0}.content-section{border-top:1px solid var(--line);scroll-margin-top:74px}.section-intro{max-width:720px;margin-bottom:1.1rem}.section-intro h2{max-width:34ch;margin-bottom:.45rem;font-size:clamp(1.08rem,1.65vw,1.32rem)}.section-intro p:not(.eyebrow){color:#313a44;max-width:680px;margin-bottom:0;font-size:.95rem;line-height:1.5}.section-continuation{padding-top:0}.compact-heading{margin-bottom:.8rem}.compact-heading h3{margin-bottom:0}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.project-grid.featured{grid-template-columns:repeat(3,minmax(0,1fr))}.project-list{gap:.7rem;display:grid}.project-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;flex-direction:column;min-height:100%;display:flex;overflow:hidden;box-shadow:0 8px 18px #20252b09}.project-media{border-bottom:1px solid var(--line);background:#eef2ef;place-items:center;min-height:148px;display:grid}.project-media img{object-fit:cover;width:100%;height:165px}.project-card:first-child .project-media img{object-fit:contain;height:auto;max-height:110px;padding:1.5rem}.project-media img[src$=\.svg]{object-fit:contain;height:165px;padding:1rem}.project-body{flex-direction:column;flex:1;padding:1rem;font-size:.92rem;display:flex}.project-list .project-card{grid-template-columns:minmax(150px,210px) minmax(0,1fr);min-height:0;display:grid}.project-list .project-media{border-right:1px solid var(--line);border-bottom:0;min-height:100%}.project-list .project-media img{height:100%;min-height:150px}.project-list .project-media img[src$=\.svg],.project-list .project-card:first-child .project-media img{height:auto;max-height:96px;padding:1rem}.project-list .project-body{padding:.9rem 1rem}.project-list .project-body>p:not(.eyebrow,.project-subtitle){margin-bottom:.7rem}.project-subtitle{color:var(--gold);margin-bottom:.7rem;font-weight:720}.resource-list{gap:.65rem;display:grid}.resource-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(160px,.32fr);gap:1rem;padding:.9rem 1rem;display:grid;box-shadow:0 8px 18px #20252b08}.resource-card p{color:#313a44;margin-bottom:.55rem;font-size:.9rem}.resource-card .compact-list{color:#313a44;font-size:.88rem}.resource-card .tag-list{justify-content:flex-end;margin-top:0}.resource-card .inline-links{justify-content:flex-end}.compact-list{margin:0;padding-left:1rem}.compact-list li+li{margin-top:.25rem}.tag-list{flex-wrap:wrap;gap:.35rem;margin-top:.75rem;display:flex}.tag-list span{color:#34424b;background:#f7faf8;border:1px solid #cad6d2;border-radius:999px;align-items:center;min-height:24px;padding:.15rem .45rem;font-size:.75rem;font-weight:680;display:inline-flex}.inline-links{flex-wrap:wrap;gap:.65rem;margin-top:auto;padding-top:.8rem;font-size:.9rem;font-weight:720;display:flex}.focus-section{grid-template-columns:minmax(260px,.75fr) minmax(320px,1fr);gap:clamp(1.5rem,4vw,3rem);display:grid}.focus-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.focus-item{border-left:3px solid var(--teal);background:var(--surface);align-items:center;min-height:54px;padding:.75rem .9rem;display:flex;box-shadow:0 8px 24px #20252b0d}.focus-item:nth-child(2n){border-left-color:var(--plum)}.focus-item:nth-child(3n){border-left-color:var(--gold)}.focus-item span{font-weight:760}.page-hero{padding-bottom:clamp(1.25rem,3vw,2.25rem)}.page-hero h1{max-width:22ch;font-size:clamp(1.65rem,3vw,2.35rem)}.page-hero+.section-shell{padding-top:.75rem}.research-list{padding-top:1.25rem}.stack-list{gap:.65rem;display:grid}.paper-item,.plain-card,.timeline-item,.contact-link{background:var(--surface);border:1px solid var(--line);border-radius:8px}.paper-item{grid-template-columns:minmax(0,1fr) auto;gap:1rem;padding:1rem;display:grid}.paper-item p,.plain-card p,.timeline-item p{color:var(--muted)}.meta-line{font-size:.9rem;font-weight:700;color:var(--gold)!important}.two-column-lists{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.9rem;display:grid}.plain-card{padding:1rem}.plain-card+.plain-card{margin-top:.65rem}.cv-hero{justify-content:space-between;align-items:end;gap:1.25rem;display:flex}.timeline{gap:.75rem;display:grid}.timeline-item{grid-template-columns:155px minmax(0,1fr);gap:1rem;padding:1rem;display:grid}.timeline-date{color:var(--plum);font-weight:820}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.contact-link{color:var(--ink);gap:.35rem;padding:1rem;text-decoration:none;display:grid}.contact-link span{color:var(--muted);font-size:.92rem}.contact-link strong{overflow-wrap:anywhere}.site-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:1rem;padding:1.25rem clamp(1rem,4vw,2rem);font-size:.84rem;display:flex}.site-footer p{margin:0}@media (width<=900px){.site-header{flex-direction:column;align-items:flex-start;position:static}.hero,.split-section,.focus-section,.two-column-lists,.cv-hero{grid-template-columns:1fr}.cv-hero{align-items:start;display:grid}.hero{min-height:auto}.portrait-panel{max-width:300px}.project-grid,.project-grid.featured,.contact-grid{grid-template-columns:1fr}.project-list .project-card{grid-template-columns:minmax(130px,180px) minmax(0,1fr)}.section-heading{flex-direction:column;align-items:start}.paper-item,.resource-card,.timeline-item{grid-template-columns:1fr}}@media (width<=560px){body{font-size:14px}.section-shell{width:min(100% - 1.25rem,1120px);padding-block:1.35rem}.content-section{scroll-margin-top:0}.section-intro{margin-bottom:.85rem}.section-intro h2{font-size:clamp(1rem,4.8vw,1.16rem)}.section-intro p:not(.eyebrow){font-size:.88rem}h1{font-size:clamp(1.55rem,7.4vw,1.95rem)}h2{font-size:clamp(1.1rem,5.6vw,1.35rem)}.page-hero h1{font-size:clamp(1.4rem,6.4vw,1.75rem)}.lead{font-size:.9rem;line-height:1.52}.site-header{gap:.65rem;min-height:auto;padding:.55rem .75rem}.site-nav{gap:.35rem .7rem}.site-nav a{font-size:.82rem}.brand{font-size:.9rem}.brand-mark{width:1.65rem;height:1.65rem;font-size:.68rem}.hero{gap:1.2rem;padding-block:1.4rem}.hero-actions{margin-top:1rem}.button{min-height:34px;padding:.42rem .68rem;font-size:.84rem}.portrait-panel{max-width:min(210px,64vw)}.site-nav{justify-content:flex-start}.focus-grid{grid-template-columns:1fr}.portrait-panel figcaption,.site-footer{flex-direction:column}.portrait-panel span{text-align:left}.project-body,.resource-card,.plain-card,.paper-item,.timeline-item,.contact-link{padding:1rem}.project-list{gap:.6rem}.project-list .project-card{grid-template-columns:1fr}.project-list .project-media{border-right:0;border-bottom:1px solid var(--line);min-height:104px}.project-list .project-media img{height:120px;min-height:0}.project-list .project-media img[src$=\.svg],.project-list .project-card:first-child .project-media img{max-height:82px;padding:.75rem}.project-list .project-body{padding:.85rem}.resource-card .tag-list,.resource-card .inline-links{justify-content:flex-start}}
