:root{--bg:#f7f7f4;--text:#232527;--muted:#64696f;--rule:#d9dcdd;--detail:#89929b;--focus:#426476;--ink:#82b9dc66;--petal:#e4eff5a6;--sans:"IBM Plex Sans", Arial, sans-serif;--serif:"Source Serif 4", Georgia, serif;--entry-title-size:26px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#10151b;--text:#f1f2ee;--muted:#aab2ba;--rule:#2b333c;--detail:#aeb5bb;--focus:#aac5d6;color-scheme:dark;--ink:#96cdf08c;--petal:#e0eff73d}}:root[data-theme=dark]{--bg:#10151b;--text:#f1f2ee;--muted:#aab2ba;--rule:#2b333c;--detail:#aeb5bb;--focus:#aac5d6;color-scheme:dark;--ink:#96cdf08c;--petal:#e0eff73d}*{box-sizing:border-box}html{scroll-padding-top:24px}body{background:var(--bg);color:var(--text);font:400 18px/1.55 var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-underline-offset:.22em;text-decoration:none}@media (hover:hover) and (pointer:fine){a:hover{text-decoration:underline}}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:5px}::selection{background:var(--text);color:var(--bg)}p,h1,h2,h3,figure{margin:0}h1,h2,h3,strong{font-weight:600}h1,h2,h3{line-height:1.25}svg,img{max-width:100%;display:block}[hidden]{display:none!important}.site-shell{width:min(1120px,100% - 80px);margin-inline:auto}.site-header{justify-content:space-between;align-items:center;gap:32px;margin-bottom:12px;padding-top:34px;display:flex}.identity{align-items:center;gap:12px;min-width:0;display:flex}.name{font:600 46px/1.15 var(--serif);white-space:nowrap}.name a:hover{text-decoration:none}.lily{flex:none;width:36px;height:36px}.lily-mark{color:var(--detail);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:relative}.lily-mark:before{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lily-mark:disabled{cursor:default}.lily-bloom{width:100%;height:100%;overflow:visible}.lily-petals{fill:var(--petal);stroke:var(--detail)}.lily-veins{stroke:var(--detail);opacity:.65}.lily-stamens{fill:var(--detail)}.lily-trail{stroke:var(--ink);opacity:0;stroke-dasharray:1;stroke-dashoffset:1px}.lily-mark:focus-visible .lily-trail{opacity:1;stroke-dashoffset:0}@media (hover:hover) and (pointer:fine){.lily-petals{opacity:.88;transition:opacity .22s}.lily-trail{transition:stroke-dashoffset .22s,opacity .22s}.lily-mark:hover .lily-petals,.lily-mark.is-playing .lily-petals{opacity:1}.lily-mark:hover .lily-trail{opacity:1;stroke-dashoffset:0}.lily-mark.is-playing .lily-trail{opacity:1;stroke-dashoffset:0;stroke-width:1.8px;animation:.24s ease-out lily-ink}}@keyframes lily-ink{0%{stroke-dashoffset:1px;opacity:.4}to{stroke-dashoffset:0;opacity:1}}.site-header nav{align-items:center;gap:26px;font-size:15px;display:flex}.site-header nav>a{color:var(--muted);white-space:nowrap;padding-block:12px;text-decoration:none;position:relative}.site-header nav>a:after{content:"";inset-inline:0;background:var(--detail);opacity:0;height:1px;position:absolute;bottom:7px}.site-header nav>a:is([aria-current=page],:focus-visible,:active){color:var(--text)}.site-header nav>a:is([aria-current=page],:focus-visible,:active):after{opacity:1}.site-header nav>a:active:after{height:2px}@media (hover:hover) and (pointer:fine){.site-header nav>a{transition:color .14s}.site-header nav>a:after{transition:opacity .14s}.site-header nav>a:hover{color:var(--text)}.site-header nav>a:hover:after{opacity:1;background:var(--ink)}}.theme-toggle{min-width:79px;height:44px;color:var(--text);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;gap:7px;padding:0;display:inline-flex}.theme-icon{flex:none}.theme-sun{color:var(--text)}.theme-moon,:root[data-theme=dark] .theme-sun{color:var(--muted)}:root[data-theme=dark] .theme-moon{color:var(--text)}.theme-toggle:active .theme-track{border-color:var(--text)}.theme-track{border:1px solid var(--detail);border-radius:20px;width:35px;height:19px;padding:3px;display:block}.theme-track span{background:currentColor;border-radius:50%;width:11px;height:11px;display:block}:root[data-theme=dark] .theme-track span{transform:translate(15px)}.intro{max-width:670px;margin-bottom:40px}.discipline{font-size:21px;font-weight:600}.education,.role,.availability{color:var(--muted);font-size:15px}.role{margin-top:12px}.intro-summary{max-width:630px;margin-top:18px}.availability{margin-top:12px}.intro-actions{flex-wrap:wrap;align-items:center;gap:26px;margin-top:19px;font-size:16px;font-weight:600;display:flex}.intro-socials{align-items:center;gap:inherit;flex:none;display:flex}.intro-socials a{white-space:nowrap;align-items:center;min-height:44px;display:inline-flex}.resume-button{background:var(--text);color:var(--bg);border:1px solid var(--text);border-radius:1px;align-items:baseline;gap:8px;padding:10px 15px;display:inline-flex}.resume-button span{font-size:13px;font-weight:400}.external-arrow{color:var(--muted);margin-left:.35em;font-size:.9em}.section-grid{grid-template-columns:120px minmax(0,1fr);column-gap:28px;display:grid}.section-label{font-family:var(--sans);color:var(--muted);max-width:115px;padding-top:4px;font-size:14px;font-weight:400;line-height:1.4}.research-section{margin-bottom:30px}.research-title,.project-title{font-size:var(--entry-title-size);line-height:1.25}.research-title{margin-bottom:9px}.research-section p{max-width:860px;margin-bottom:10px}.text-link,.text-links{font-size:15px;font-weight:600}.text-links{flex-wrap:wrap;align-items:center;gap:12px 26px;display:flex}.text-links a{padding-block:5px}.work-section>.section-label{padding-top:25px}.project-row{border-top:1px solid var(--rule);padding:23px 0 26px}.project-title{margin-bottom:6px}.metadata{color:var(--muted);font-size:14px}.project-summary{max-width:800px;margin-top:15px}.project-summary p+p,.project-row .text-links{margin-top:10px}.with-diagram{grid-template-columns:minmax(0,1fr) 330px;gap:24px;display:grid}.result-line{color:var(--muted);margin-top:14px;font-size:14px}.result-line span{color:var(--text);white-space:nowrap}.pvd-diagram{align-self:center;width:100%}.pvd-diagram svg{width:100%;height:auto;overflow:visible}.diagram-primary{font:600 16px var(--sans)}.diagram-secondary{font:400 16px var(--sans);fill:var(--muted)}.diagram-lines{stroke:var(--detail)}.diagram-mobile{display:none}.additional-work{border-top:1px solid var(--rule);padding:20px 0 5px}.additional-work h3{font-size:17px}.additional-work p{color:var(--muted);margin-top:5px;font-size:14px}.site-footer{border-top:1px solid var(--rule);margin-top:34px;padding-block:24px 32px;font-size:14px}.site-footer .section-label{padding-top:0}.footer-content{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.footer-socials{gap:24px;display:flex}.skip-link{background:var(--text);color:var(--bg);z-index:10;padding:10px 18px;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.article-page{max-width:850px;margin:42px 0 60px 148px}.back-link{color:var(--muted);font-size:15px}.article-status{margin-top:28px;margin-bottom:10px}.article-header h1{font:600 44px/1.15 var(--serif);text-wrap:balance;max-width:820px}.article-overview{max-width:780px;margin-top:20px;font-size:20px;line-height:1.5}.contact-page{min-height:42vh}.contact-details{margin-top:28px}.contact-email{overflow-wrap:anywhere;user-select:text;max-width:100%;padding-block:8px;font-size:22px;font-weight:600;text-decoration:underline;display:inline-block}.contact-details .text-links{margin-top:14px}.contact-details .text-links a{padding-block:11px}.article-links{margin-top:18px}.article-content{max-width:800px;margin-top:30px}.article-content section{margin-top:36px}.article-content h2{font:600 22px/1.3 var(--sans);margin-bottom:13px}.article-content h3{font:600 18px/1.4 var(--sans);margin-block:24px 8px}.article-content p+p{margin-top:14px}.article-content p,.article-content li{max-width:76ch}.article-content ul{margin-block:12px;padding-left:22px}.article-content li+li{margin-top:9px}.article-content a{text-decoration:underline}.summary-note{border-block:1px solid var(--rule);padding-block:19px}.summary-note p{font-size:17px}.summary-note strong{margin-bottom:5px;display:block}.table-scroll{margin-block:20px;overflow-x:auto}table{border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums;width:100%;font-size:16px}caption{text-align:left;color:var(--muted);margin-bottom:10px;font-size:14px}th,td{border-bottom:1px solid var(--rule);vertical-align:top;padding:12px 16px 12px 0}th:last-child,td:last-child{padding-right:0}thead th{border-top:1px solid var(--rule);font-weight:600}tbody th{font-weight:400}.article-content .source-note{color:var(--muted);margin-top:20px;font-size:14px}.error-page{padding-block:60px 90px}.error-page h1{font:600 44px/1.2 var(--serif);margin-block:12px 18px}.error-page a{text-decoration:underline}@media (width<=1050px){.section-grid{grid-template-columns:100px minmax(0,1fr);gap:22px}.with-diagram{grid-template-columns:minmax(0,1fr) 310px;gap:18px}.site-header nav{gap:12px}.article-page{margin-left:122px}}@media (width<=800px){:root{--entry-title-size:24px}.site-shell{width:min(640px,100% - 48px)}.site-header{flex-direction:column;align-items:flex-start;gap:9px;margin-bottom:30px;padding-top:26px}.name{font-size:38px}.identity{gap:10px}.lily{width:32px;height:32px}.site-header nav{gap:25px;width:100%;font-size:15px}.site-header nav .nav-resume{display:none}.theme-toggle{margin-left:auto}body{font-size:17px;line-height:1.55}.discipline{font-size:18px}.education{margin-top:5px;font-size:15px}.education>span{display:block}.education .education-separator{display:none}.role{margin-top:15px;font-size:14px}.intro{margin-bottom:33px}.intro-summary{margin-top:20px}.availability{margin-top:12px;font-size:14px}.intro-actions{gap:20px;margin-top:19px;font-size:15px}.resume-button{padding:11px 13px}.section-grid{display:block}.section-label{max-width:none;margin-bottom:17px;padding-top:0;font-size:14px}.research-title{margin-bottom:10px}.research-section{margin-bottom:30px}.research-section p{margin-bottom:12px}.work-section>.section-label{padding-top:0}.project-row{padding-block:22px 26px}.project-title{margin-bottom:9px}.metadata{font-size:14px}.with-diagram{flex-direction:column;gap:18px;display:flex}.project-summary{margin-top:16px}.pvd-diagram{align-self:flex-start;max-width:390px;margin-top:4px}.diagram-desktop{display:none}.diagram-mobile{display:block}.diagram-mobile .diagram-primary{font-size:16px}.diagram-mobile .diagram-secondary{font-size:15px}.additional-work{padding-top:21px}.additional-work h3{font-size:16px}.site-footer{margin-top:30px;padding-block:23px 30px}.site-footer .section-label{margin-bottom:14px}.footer-content{flex-direction:column;align-items:flex-start;gap:13px}.footer-socials{gap:24px}.article-page{margin:25px 0 45px}.article-status{margin-top:25px}.article-header h1{text-wrap:initial;font-size:36px;line-height:1.15}.article-overview{margin-top:18px;font-size:18px}.article-content{margin-top:24px}.article-content section{margin-top:30px}.article-content h2{font-size:21px}table{font-size:14px}th,td{padding-right:12px}}@media (width<=360px){.site-shell{width:calc(100% - 36px)}.name{font-size:35px}.identity{gap:7px}.lily{width:25px;height:25px}.site-header nav{gap:6px}.intro-actions{gap:15px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{:root,:root[data-theme=dark]{--bg:white;--text:black;--muted:#444;--rule:#bbb;--detail:#777;color-scheme:light}.site-header nav,.skip-link,.back-link{display:none}.site-shell{width:100%}.article-page{max-width:none;margin:30px 0}.site-footer{break-inside:avoid}h2,h3{break-after:avoid}.project-row{break-inside:avoid}}
