@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/dm-sans-latin-400-normal.CW0RaeGs.woff2)format("woff2"),url(/_astro/dm-sans-latin-400-normal.BwCSEQnW.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/dm-sans-latin-500-normal.B9HHJjqV.woff2)format("woff2"),url(/_astro/dm-sans-latin-500-normal.Dr3UlScf.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/dm-sans-latin-600-normal.Aqo67rzb.woff2)format("woff2"),url(/_astro/dm-sans-latin-600-normal.BmdmIIQ2.woff)format("woff")}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-wght-normal.Czsa-EzN.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-wght-normal.C-3rgBeH.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-wght-normal.CCVVNp6i.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-standard-italic.DTr-ymY4.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-standard-italic.CSPGnFdO.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-standard-italic.kJKFiXvB.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer base{:root{--paper:#f6f4ee;--card:#eeeee5;--ink:#202d29;--muted:#58655e;--green:#245b43;--line:#d4d7cc;--soft:#e4eadc;--rust:#885032;--serif:"Newsreader Variable",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--max:1184px;--space:clamp(24px,5vw,72px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.65}a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a:hover{color:var(--green)}:focus-visible{outline:2px solid var(--green);outline-offset:5px}::selection{color:#17251d;background:#ccd9c4}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-weight:450}h1,h2{font-family:var(--serif);letter-spacing:-.035em;line-height:1.05}h1{font-size:clamp(50px,6.5vw,86px)}h2{font-size:clamp(34px,4vw,48px)}h3{line-height:1.3}p+p{margin-top:1em}img,svg{max-width:100%;height:auto}ul{padding-left:1.25em}li+li{margin-top:.45em}[hidden]{display:none!important}main:focus{outline:none}code{font-size:.9em}time{white-space:nowrap}}@layer layout{.wrap{width:min(var(--max),calc(100% - var(--space)*2));margin-inline:auto}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:30px;min-height:118px;display:flex}.identity{align-items:center;gap:15px;font-size:14px;font-weight:600;line-height:1.4;text-decoration:none;display:flex}.identity-caption{color:var(--muted);margin-top:4px;font-size:11px;font-weight:400;display:block}.monogram{font-family:var(--serif);letter-spacing:-.095em;padding-right:12px;font-size:40px;font-weight:450;line-height:1;position:relative}.monogram span{font:13px var(--sans);letter-spacing:0;position:absolute;top:0;right:0}.nav-links{align-items:center;gap:25px;display:flex}.nav-links a{border-bottom:1px solid #0000;padding:9px 0;font-size:13px;text-decoration:none}.nav-links a[aria-current=page]{color:var(--green);border-bottom-color:var(--green)}.nav-links a:hover{border-bottom-color:var(--line)}.menu-toggle{display:none}.hero{grid-template-columns:minmax(0,1.6fr) minmax(270px,.85fr);align-items:center;gap:80px;padding-top:84px;padding-bottom:72px;display:grid}.hero h1{letter-spacing:-.055em;margin:27px 0 29px;font-size:clamp(64px,8.8vw,120px);line-height:.95}.hero h1 em{color:var(--green);font-weight:430}.hero-copy{max-width:560px;font-size:18px;line-height:1.75}.hero-copy strong{font-weight:500}.hero-links{flex-wrap:wrap;gap:28px;margin-top:30px;display:flex}.section{border-top:1px solid var(--line);padding-block:64px}.section-heading{justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:30px;display:flex}.section-heading h2{margin-top:11px}.writing-grid{grid-template-columns:.85fr 1.6fr;align-items:start;gap:72px;display:grid}.publication-intro h2{margin:24px 0;font-size:clamp(46px,5vw,66px);line-height:1}.publication-intro p:not(.eyebrow){color:var(--muted);max-width:300px}.publication-intro .text-link{margin-top:23px;display:inline-block}.page-intro{padding-top:68px;padding-bottom:55px}.page-intro h1{margin:22px 0}.page-intro .lede{max-width:760px}.content-grid{grid-template-columns:250px minmax(0,1fr);gap:70px;display:grid}.narrow{max-width:780px;margin-inline:auto}.site-footer{border-top:1px solid var(--line);margin-top:30px;padding-top:30px;padding-bottom:36px}.footer-top,.footer-bottom{justify-content:space-between;gap:40px;display:flex}.footer-name{font-family:var(--serif);font-size:23px;text-decoration:none}.footer-name span{color:var(--muted);font-size:18px}.footer-links{gap:25px;font-size:12px;display:flex}.footer-links a{text-decoration:none}.footer-bottom{color:var(--muted);margin-top:27px;font-size:11px;line-height:1.65}.disclaimer{max-width:385px}.contact-band{justify-content:space-between;align-items:center;gap:35px;padding:48px 0 58px;display:flex}.contact-band h2{margin-bottom:10px;font-size:38px}.contact-band p{color:var(--muted)}}@layer components{.arrow-icon{vertical-align:-.12em;flex-shrink:0;width:1em;height:1em;display:inline-block}.skip-link{z-index:100;background:var(--ink);color:#fff;padding:12px 22px;position:absolute;top:-100px;left:20px}.skip-link:focus{top:10px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:10px;font-weight:600;line-height:1.65}.eyebrow .dot{background:var(--green);vertical-align:1px;border-radius:50%;width:6px;height:6px;margin-right:8px;display:inline-block}.lede{color:var(--muted);font-size:19px;line-height:1.75}.text-link{border-bottom:1px solid var(--ink);white-space:normal;padding-bottom:5px;font-size:13px;font-weight:500;text-decoration:none}.text-link span{margin-left:10px}.text-link:hover{border-color:var(--green)}.button{background:var(--ink);color:var(--paper);border:1px solid var(--ink);justify-content:center;align-items:center;gap:26px;padding:13px 20px;font-size:13px;text-decoration:none;display:inline-flex}.button:hover{background:var(--green);color:#fff}.button.secondary{color:var(--ink);background:0 0}.notebook{background:var(--card);border:1px solid var(--line);padding:29px 28px 22px;position:relative}.notebook:before{content:"";background:var(--green);width:37px;height:3px;position:absolute;top:-1px;left:28px}.notebook-top{justify-content:space-between;align-items:center;display:flex}.notebook-top>span{font-family:var(--serif);color:var(--muted);font-size:21px;font-style:italic}.notebook h2{margin:27px 0 20px;font-size:30px}.notebook-list{margin:0;padding:0;list-style:none}.notebook-list li{border-top:1px solid #cdd2c5;margin:0;padding:15px 0}.notebook-list a{grid-template-columns:22px 1fr 14px;align-items:baseline;gap:10px;font-size:13px;text-decoration:none;display:grid}.notebook-list a .small-index{color:var(--muted);font-size:10px}.notebook-list small{color:var(--muted);margin-top:3px;font-size:11px;display:block}.notebook-note{font-family:var(--serif);color:var(--muted);font-size:18px;font-style:italic;line-height:1.4;margin-top:24px!important}.coordinates{letter-spacing:.07em;color:var(--muted);text-transform:uppercase;align-items:center;gap:10px;margin-top:34px;font-size:10px;display:flex}.coordinates:before{content:"";background:var(--line);width:25px;height:1px}.intro-strip{border-top:1px solid var(--line);grid-template-columns:1.1fr 1fr 1fr;gap:40px;padding:25px 0;display:grid}.intro-strip p{color:var(--muted);font-size:12px}.intro-strip strong{color:var(--ink);margin-bottom:4px;font-size:14px;font-weight:500;display:block}.intro-strip .eyebrow{color:var(--ink);padding-top:4px}.row-index{letter-spacing:.05em;color:var(--muted);padding-top:5px;font-size:10px}.article-row{border-top:1px solid var(--line);grid-template-columns:28px minmax(0,1fr);gap:14px;padding:23px 0;display:grid}.article-row:first-child{border-top:0;padding-top:0}.article-row h3{font-family:var(--serif);letter-spacing:-.018em;margin-top:8px;font-size:29px}.article-row h3 a,.project-row h3 a{text-decoration:none}.external-arrow{font-family:var(--sans);margin-left:13px;font-size:.55em;transition:transform .15s;display:inline-block;position:relative;top:-.15em}a:hover .external-arrow{transform:translate(2px,-2px)}.meta{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-size:9px;font-weight:500}.meta>span{padding:0 8px}.article-description{color:var(--muted);max-width:680px;margin-top:10px;font-size:14px;line-height:1.7}.compact .article-row{padding-block:19px}.compact .article-row:first-child{padding-top:0}.compact .article-row h3{font-size:26px}.project-row{border-top:1px solid var(--line);grid-template-columns:32px minmax(0,1fr) auto;gap:20px;padding:30px 0;display:grid}.project-row h3{font-family:var(--serif);letter-spacing:-.02em;margin:7px 0 10px;font-size:33px}.project-row p:not(.meta){max-width:660px;color:var(--muted);font-size:14px}.status{white-space:nowrap;color:#305332;border:1px solid #bbc7b3;border-radius:20px;place-self:start;align-items:center;gap:7px;padding:5px 10px;font-size:10px;display:inline-flex}.status>span{background:#436740;border-radius:50%;width:5px;height:5px}.status.idea{color:var(--rust);border-color:#d5c3b4}.status.idea>span{background:var(--rust)}.note{background:var(--soft);border-left:2px solid var(--green);color:var(--muted);padding:22px 26px;font-size:14px;line-height:1.7}.note strong{color:var(--ink);font-weight:500}.note a{color:var(--ink)}.prose{font-size:17px;line-height:1.8}.prose h2{margin:45px 0 18px;font-size:35px}.prose h2:first-child{margin-top:0}.prose h3{margin:28px 0 12px;font-size:21px}.prose p,.prose li{max-width:760px}.prose ul{margin-block:18px}.prose strong{font-weight:600}.sidebar-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:11px}.sidebar-label a{text-transform:none;letter-spacing:0;margin-top:18px;font-size:13px;display:inline-block}.capability{border-bottom:1px solid var(--line);padding:22px 0}.capability:first-child{padding-top:0}.capability h3{font-family:var(--serif);margin-bottom:10px;font-size:29px}.capability p{color:var(--muted);max-width:680px;font-size:15px}.experience-item{border-top:1px solid var(--line);grid-template-columns:215px 1fr;gap:38px;padding:28px 0;display:grid}.experience-item:first-child{border-top:none;padding-top:0}.experience-item .dates{color:var(--muted);font-size:11px;line-height:1.7}.experience-item h3{margin-bottom:6px;font-size:19px}.role{color:var(--green);font-size:13px}.experience-item ul{color:var(--muted);margin-bottom:0;font-size:14px}.education-grid{grid-template-columns:1fr 1fr;gap:50px;margin-top:25px;display:grid}.education-grid h3{font-family:var(--serif);margin:6px 0 12px;font-size:29px}.education-grid p{color:var(--muted);font-size:14px}.education-grid strong{color:var(--ink);font-weight:500}.collection-toolbar{border-block:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;padding:20px 0;display:flex}.filter-buttons{flex-wrap:wrap;gap:6px;display:flex}.filter-buttons button{background:0 0;border:1px solid #0000;padding:8px 13px;font-size:12px}.filter-buttons button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.filter-buttons button:hover{border-color:var(--line)}.search-label{align-items:center;gap:10px;font-size:11px;display:flex}.search-label input{border:1px solid var(--line);max-width:235px;color:var(--ink);background:0 0;border-radius:0;padding:9px 12px;font-size:12px}.result-count{color:var(--muted);margin-bottom:20px;font-size:11px}.citation{border-top:1px solid var(--line);grid-template-columns:56px 1fr;gap:25px;padding:25px 0;display:grid}.citation h3{font-family:var(--serif);margin-bottom:9px;font-size:26px;line-height:1.2}.citation h3 a{text-decoration:none}.citation .authors{color:var(--muted);font-size:12px;line-height:1.7}.citation .journal{margin-top:9px;font-size:12px}.citation .citation-year{color:var(--muted);padding-top:3px;font-size:12px}.collection-section{margin-bottom:50px}.collection-section>h2{margin-bottom:24px;font-size:36px}.contact-grid{grid-template-columns:1fr 1fr;gap:70px;padding-bottom:70px;display:grid}.contact-grid h2{margin-bottom:20px;font-size:36px}.contact-grid p{color:var(--muted);font-size:16px}.contact-links{border-top:1px solid var(--line)}.contact-links a{border-bottom:1px solid var(--line);font-family:var(--serif);justify-content:space-between;align-items:center;gap:20px;padding:21px 0;font-size:27px;text-decoration:none;display:flex}.contact-links a span{font-family:var(--sans);font-size:12px}.contact-email{overflow-wrap:anywhere}.cv-header{margin-bottom:36px}.cv-header h1{font-size:56px}.cv-header p{color:var(--muted)}.cv-section{margin-top:45px}.cv-section>h2{margin-bottom:24px;font-size:32px}.cv-section li{font-size:14px}.cv-section .experience-item{grid-template-columns:160px 1fr;gap:25px}.back-link{color:var(--muted);margin-bottom:36px;font-size:12px;text-decoration:none;display:inline-block}.project-article{padding-bottom:60px}.project-article .project-meta{flex-wrap:wrap;align-items:center;gap:20px;margin-top:25px;display:flex}.project-article .page-intro{padding-bottom:42px}.project-article .prose{border-top:1px solid var(--line);padding-top:42px}.ideas-list{padding:0;list-style:none}.ideas-list li{border-top:1px solid var(--line);padding:25px 0}.ideas-list h2{margin-bottom:12px;font-size:30px}.ideas-list p{color:var(--muted);font-size:15px}.section-link-row{justify-content:space-between;gap:25px;padding-top:24px;display:flex}.empty-state{background:var(--card);color:var(--muted);margin-bottom:35px;padding:35px}}@layer responsive{@media (width>=1450px){.hero{padding-top:100px;padding-bottom:82px}}@media (width<=1000px){.hero{grid-template-columns:minmax(0,1.25fr) minmax(270px,.85fr);gap:35px}.hero h1{font-size:84px}.nav-links{gap:17px}.writing-grid{gap:40px}.content-grid{grid-template-columns:190px 1fr;gap:40px}.identity-caption{display:none}}@media (width<=760px){:root{--space:24px}.site-header{flex-wrap:wrap;gap:0;min-height:88px;padding-block:20px}.identity{font-size:13px}.monogram{font-size:34px}.js .menu-toggle{border:1px solid var(--line);background:0 0;padding:7px 13px;font-size:12px;display:block}.menu-toggle span{margin-left:12px}.nav-links{flex-wrap:wrap;justify-content:space-between;gap:12px;width:100%;padding-top:20px}.js .nav-links{display:none}.js .nav-links.is-open{display:flex}.nav-links a{align-items:center;min-height:42px;font-size:12px;display:flex}.hero{grid-template-columns:1fr;gap:36px;padding:45px 0 40px}.hero h1{margin:24px 0;font-size:clamp(62px,14vw,94px)}.hero-copy{font-size:17px}.coordinates{margin-top:26px}.notebook{padding:24px}.notebook h2{margin-top:20px}.notebook-note{margin-top:15px!important}.intro-strip{grid-template-columns:1fr 1fr;gap:20px}.intro-strip>.eyebrow{grid-column:1/-1}.section{padding-block:40px}.writing-grid{grid-template-columns:1fr;gap:32px}.publication-intro h2{margin:16px 0;font-size:54px}.publication-intro p:not(.eyebrow){max-width:550px}.publication-intro h2 br{display:none}.section-heading{align-items:flex-start;margin-bottom:25px}.section-heading .text-link{white-space:normal;text-align:right;max-width:110px;margin-top:5px;font-size:11px}.project-row{grid-template-columns:22px minmax(0,1fr);gap:12px;padding-block:25px}.project-row .status{grid-column:2;margin-top:3px}.project-row h3{font-size:29px}.article-row h3{font-size:27px}.content-grid{grid-template-columns:1fr;gap:24px}.sidebar-label a{margin-top:0;margin-left:10px}.page-intro{padding-top:45px;padding-bottom:35px}.page-intro .lede{font-size:17px}.experience-item{grid-template-columns:1fr;gap:10px}.education-grid{grid-template-columns:1fr;gap:35px}.contact-band{padding-block:35px;display:block}.contact-band .button{margin-top:25px}.footer-top,.footer-bottom{display:block}.footer-links{gap:22px;margin-top:20px}.footer-bottom{margin-top:23px}.disclaimer{max-width:500px;margin-top:15px}.collection-toolbar{flex-direction:column;align-items:flex-start;gap:15px}.search-label{width:100%}.search-label input{flex:1;min-width:0;max-width:none}.citation{grid-template-columns:38px 1fr;gap:15px}.citation h3{font-size:24px}.contact-grid{grid-template-columns:1fr;gap:35px;padding-bottom:40px}.cv-section .experience-item{grid-template-columns:1fr}.prose{font-size:16px}.project-article .project-meta{gap:12px}.hero-links{gap:20px}.contact-links a{font-size:25px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media print{body{color:#111;background:#fff;font-size:11pt}.site-header,.site-footer,.no-print,.skip-link,.collection-toolbar,.back-link{display:none!important}.wrap{width:100%;max-width:none}.section,.page-intro{padding-block:20px}h1{font-size:30pt}h2{font-size:20pt}h3{font-size:14pt}.cv-section{margin-top:25px}.cv-section>h2{font-size:20pt}.experience-item,.citation{break-inside:avoid}.cv-section .experience-item{grid-template-columns:140px 1fr;padding-block:15px}.cv-section li,.experience-item ul{font-size:10pt}.cv-header h1{font-size:30pt}.citation h3{font-size:14pt}a{color:inherit;text-decoration:none}.note{background:#fff}@page{size:A4;margin:16mm}}}
