@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:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-cyrillic-ext-wght-normal.DzyfIafT.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-cyrillic-wght-normal.BMDVbyM7.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-greek-ext-wght-normal.BWSLJLk6.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-greek-wght-normal.C9H9m1vD.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-vietnamese-wght-normal.C1uRvKPU.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:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-latin-ext-wght-normal.C8iNium2.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:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-latin-wght-normal.BqRLTx4X.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}:root{color-scheme:light;--paper:#f5f1e8;--paper-deep:#ebe5d8;--surface:#fffdf9;--ink:#18201e;--ink-soft:#33423e;--muted:#5b6965;--teal:#246b68;--teal-deep:#17514f;--link-on-ink:#9ed8d0;--terracotta:#9e3f27;--accent-on-dark:#e99a7f;--moss:#71835e;--mist:#dce4de;--line:#cfd6d0;--shadow:0 24px 70px #23312c1a;--serif:"Newsreader Variable", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:"Source Sans 3 Variable", Inter, "Segoe UI", Helvetica, Arial, sans-serif;--mono:"IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--shell:74rem;--text:44rem;--radius-sm:.4rem;--radius:1rem;--radius-lg:1.7rem;--ease:cubic-bezier(.22, 1, .36, 1)}:root[data-theme=dark]{color-scheme:dark;--paper:#131a18;--paper-deep:#0f1513;--surface:#1a2421;--ink:#f2eee4;--ink-soft:#d5ddd7;--muted:#aebcb6;--teal:#80c7bd;--teal-deep:#a0d8d0;--link-on-ink:#17514f;--terracotta:#ed9575;--accent-on-dark:#ed9575;--moss:#afc194;--mist:#273630;--line:#374841;--shadow:0 24px 70px #00000047}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{background:radial-gradient(circle at 12% 3%, color-mix(in srgb, var(--terracotta) 7%, transparent) 0, transparent 22rem), var(--paper);color:var(--ink);font-family:var(--sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.65}img,svg{max-width:100%;display:block}button,input,textarea,select{font:inherit}a{color:var(--teal-deep);text-underline-offset:.18em;text-decoration-thickness:.08em}a:hover{color:var(--terracotta)}p,ul,ol,figure{margin-top:0}h1,h2,h3{color:var(--ink);font-family:var(--serif);text-wrap:balance;margin-top:0;font-weight:560;line-height:1.05}h1{letter-spacing:-.055em;font-size:clamp(3.2rem,8vw,6.8rem)}h2{letter-spacing:-.045em;margin-bottom:1.2rem;font-size:clamp(2.3rem,5vw,4.3rem)}h3{letter-spacing:-.025em;font-size:clamp(1.35rem,2.7vw,2rem)}::selection{background:color-mix(in srgb, var(--terracotta) 28%, transparent);color:var(--ink)}.shell{width:min(calc(100% - 2.5rem), var(--shell));margin-inline:auto}.skip-link{z-index:100;border-radius:var(--radius-sm);background:var(--ink);color:var(--paper);padding:.7rem 1rem;font-weight:700;transition:transform .16s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:3px solid var(--terracotta);outline-offset:4px}.eyebrow{color:var(--terracotta);font-family:var(--sans);letter-spacing:.15em;text-transform:uppercase;margin-bottom:.9rem;font-size:.76rem;font-weight:760;line-height:1.3}.text-link{align-items:center;gap:.25rem;font-weight:670;display:inline-flex}.site-header{z-index:20;border-bottom:1px solid color-mix(in srgb, var(--line) 74%, transparent);background:color-mix(in srgb, var(--paper) 90%, transparent);backdrop-filter:blur(18px);position:relative}.site-header__inner{justify-content:space-between;align-items:center;gap:2rem;min-height:5rem;display:flex}.brand{color:var(--ink);align-items:center;gap:.8rem;text-decoration:none;display:inline-flex}.brand:hover{color:var(--ink)}.brand__mark{background:var(--ink);width:2.45rem;height:2.45rem;color:var(--paper);font-family:var(--serif);letter-spacing:-.03em;border-radius:50%;place-items:center;font-size:.92rem;font-weight:660;display:grid}.brand__name{letter-spacing:-.015em;font-weight:680}.site-nav{align-items:center;gap:clamp(.75rem,2vw,1.7rem);display:flex}.site-nav__link{color:var(--ink-soft);padding-block:.7rem;font-size:.95rem;font-weight:600;text-decoration:none;position:relative}.site-nav__link:after{transform-origin:100%;background:var(--terracotta);content:"";height:2px;transition:transform .22s var(--ease);position:absolute;bottom:.35rem;left:0;right:0;transform:scaleX(0)}.site-nav__link:hover,.site-nav__link.is-current{color:var(--ink)}.site-nav__link:hover:after,.site-nav__link.is-current:after{transform-origin:0;transform:scaleX(1)}.theme-toggle{border:1px solid var(--line);width:2.6rem;height:2.6rem;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;place-items:center;padding:0;transition:border-color .18s,background .18s,transform .18s;display:grid}.theme-toggle:hover{border-color:var(--teal);background:var(--mist);transform:rotate(8deg)}.theme-toggle svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1.2rem;height:1.2rem}.theme-toggle__moon,:root[data-theme=dark] .theme-toggle__sun{display:none}:root[data-theme=dark] .theme-toggle__moon{display:block}.hero{padding:clamp(4.5rem,9vw,8.5rem) 0 clamp(5rem,10vw,9rem);position:relative;overflow:hidden}.hero:before{border:1px solid color-mix(in srgb, var(--teal) 25%, transparent);content:"";pointer-events:none;border-radius:50%;width:31rem;height:31rem;position:absolute;top:12%;right:-10rem}.hero__grid{grid-template-columns:minmax(0,1.55fr) minmax(17rem,.66fr);align-items:center;gap:clamp(3rem,8vw,8rem);display:grid}.hero h1{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.45rem;font-size:clamp(1rem,1.3vw,1.2rem);font-weight:750}.hero__statement{max-width:14ch;font-family:var(--serif);letter-spacing:-.06em;text-wrap:balance;margin-bottom:1.7rem;font-size:clamp(3.3rem,7.2vw,6.65rem);font-weight:510;line-height:.94}.hero__statement em{color:var(--teal);font-weight:430}.hero__intro{max-width:41rem;color:var(--ink-soft);margin-bottom:1.5rem;font-size:clamp(1.1rem,2vw,1.3rem);line-height:1.55}.hero__meta{color:var(--muted);flex-wrap:wrap;gap:.4rem 1.6rem;margin-bottom:1.8rem;font-size:.95rem;display:flex}.hero__meta span{position:relative}.hero__meta span+span:before{color:var(--terracotta);content:"•";position:absolute;left:-.9rem}.button-row{flex-wrap:wrap;align-items:center;gap:.75rem;margin:0 0 1.7rem;display:flex}.button{cursor:pointer;min-height:3rem;transition:transform .18s var(--ease), background .18s ease, border-color .18s ease, color .18s ease;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:.74rem 1.12rem;font-size:.94rem;font-weight:690;line-height:1;text-decoration:none;display:inline-flex}.button:hover{transform:translateY(-2px)}.button--primary{background:var(--ink);color:var(--paper)}.button--primary:hover{background:var(--teal-deep);color:var(--surface)}.button--secondary{border-color:var(--ink);color:var(--ink);background:0 0}.button--secondary:hover{border-color:var(--teal);background:var(--mist);color:var(--ink)}.button--quiet{color:var(--teal-deep)}.button--quiet:hover{color:var(--terracotta)}.hero__portrait{max-width:22rem;margin:0 auto;position:relative}.hero__portrait:before{z-index:-1;background:var(--terracotta);content:"";opacity:.93;border-radius:50% 50% 1rem 1rem;width:78%;height:83%;position:absolute;top:-1.25rem;right:-1.6rem;transform:rotate(3deg)}.hero__portrait-frame{border:.5rem solid var(--surface);box-shadow:var(--shadow);border-radius:48% 48% 1.5rem 1.5rem;overflow:hidden}.hero__portrait img{filter:saturate(.92)contrast(1.02);background:#fff;width:100%}.hero__portrait figcaption{color:var(--muted);font-family:var(--mono);letter-spacing:.055em;text-transform:uppercase;margin:1.2rem 0 0 1rem;font-size:.73rem;line-height:1.55}.profile-links{flex-wrap:wrap;gap:.5rem 1.2rem;margin:0;padding:0;list-style:none;display:flex}.profile-links a{font-size:.9rem;font-weight:620}.profile-links--compact a{color:var(--muted);font-size:.84rem;text-decoration:none}.profile-links--compact a:hover{color:var(--terracotta)}.section{padding:clamp(5rem,9vw,8rem) 0}.section--first{padding-top:clamp(4rem,7vw,6rem)}.section--tinted{border-block:1px solid var(--line);background:var(--paper-deep)}.section-heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:clamp(2.5rem,5vw,4rem);display:flex}.section-heading h2{margin-bottom:0}.section-heading__link{flex:none;margin-bottom:.5rem}.publication-list{gap:1.5rem;display:grid}.publication-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:clamp(1.8rem,5vw,3.5rem);position:relative;overflow:hidden;box-shadow:0 12px 45px #23312c0a}.publication-card--featured{grid-template-columns:minmax(11rem,.4fr) minmax(0,1.6fr);column-gap:clamp(2rem,6vw,5rem);display:grid}.publication-card--featured:before{border:2.4rem solid color-mix(in srgb, var(--moss) 16%, transparent);content:"";border-radius:50%;width:13rem;height:13rem;position:absolute;top:-4rem;right:-4rem}.publication-card__meta{color:var(--muted);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:.7rem;margin-bottom:1.2rem;font-size:.77rem;display:flex}.publication-card--featured .publication-card__meta{flex-direction:column;grid-row:1/span 6;align-self:start;align-items:start;padding-top:.5rem}.tag{background:var(--mist);color:var(--teal-deep);font-family:var(--sans);letter-spacing:.07em;border-radius:999px;padding:.38rem .6rem;font-size:.69rem;font-weight:720}.publication-card h3{z-index:1;max-width:31ch;margin-bottom:1.2rem;font-size:clamp(1.75rem,4.2vw,3.35rem);position:relative}.publication-card__authors,.publication-card__venue,.publication-card__note{max-width:50rem;color:var(--muted);margin-bottom:.45rem;font-size:.94rem}.publication-card__authors strong{color:var(--ink)}.publication-card__note{color:var(--terracotta);font-style:italic}.publication-card__venue{margin-bottom:1.4rem}.publication-card__summary{max-width:50rem;color:var(--ink-soft);margin-bottom:1.6rem}.action-links,.award-links{flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.action-links a{border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:.58rem .86rem;font-size:.84rem;font-weight:680;text-decoration:none;transition:border-color .18s,color .18s,background .18s;display:inline-flex}.action-links a:hover{border-color:var(--teal);background:var(--mist);color:var(--teal-deep)}.award-list{border-top:1px solid var(--line)}.award-card{border-bottom:1px solid var(--line);grid-template-columns:minmax(8rem,.28fr) minmax(0,1fr);gap:clamp(1.5rem,5vw,4rem);padding:clamp(2.2rem,5vw,4rem) 0;display:grid}.award-card__date{color:var(--terracotta);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;padding-top:.38rem;font-size:.78rem;font-weight:650}.award-card__body{max-width:48rem}.award-card__organization{color:var(--muted);letter-spacing:.02em;margin-bottom:.45rem;font-size:.9rem;font-weight:650}.award-card h3{margin-bottom:.8rem;font-size:clamp(1.6rem,4vw,2.8rem)}.award-card--prominent h3{color:var(--teal-deep)}.award-card__value{border:1px solid color-mix(in srgb, var(--teal) 34%, var(--line));background:var(--mist);color:var(--teal-deep);border-radius:999px;margin-bottom:1rem;padding:.42rem .72rem;font-size:1.04rem;font-weight:760;display:inline-flex}.award-card__type{color:var(--ink-soft);margin-left:.25rem;font-weight:480}.award-card__body>p:last-of-type{color:var(--ink-soft);margin-bottom:1.15rem}.award-links a{color:var(--teal-deep);font-size:.86rem;font-weight:680}.award-groups{gap:clamp(4.5rem,9vw,7.5rem);display:grid}.award-year{grid-template-columns:minmax(7rem,.22fr) minmax(0,1fr);gap:clamp(2rem,6vw,5rem);display:grid}.award-year__heading{align-self:start}.award-year__heading h2{color:var(--terracotta);margin-bottom:0;font-size:clamp(3rem,6vw,5.2rem)}.award-year .award-list{min-width:0}.contact-band{background:var(--ink);color:var(--paper);padding:clamp(4rem,8vw,7rem) 0}.contact-band__inner{justify-content:space-between;align-items:end;gap:2rem 4rem;display:flex}.contact-band h2{color:var(--paper);margin:0}.contact-band .eyebrow,.page-header .eyebrow{color:var(--accent-on-dark)}.contact-band p:last-child{max-width:27rem;color:color-mix(in srgb, var(--paper) 76%, transparent);margin:0 0 .5rem}.contact-band a{color:var(--link-on-ink);overflow-wrap:anywhere}.page-header{background:var(--ink);color:var(--paper);padding:clamp(5rem,10vw,9rem) 0;position:relative;overflow:hidden}.page-header:after{border:clamp(2rem, 5vw, 4rem) solid color-mix(in srgb, var(--teal) 45%, transparent);content:"";border-radius:50%;width:min(42vw,31rem);height:min(42vw,31rem);position:absolute;bottom:-14rem;right:-8rem}.page-header__inner{z-index:1;position:relative}.page-header__inner--compact{padding-block:1rem}.page-header h1{max-width:15ch;color:var(--paper);margin-bottom:2rem}.page-header__lead{max-width:47rem;color:color-mix(in srgb, var(--paper) 75%, transparent);margin:0;font-size:clamp(1.12rem,2.2vw,1.35rem);line-height:1.6}.page-header__lead+.page-header__lead{margin-top:1rem}.page-header__lead a{color:var(--link-on-ink)}.theme-grid{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--line);grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.theme-grid article{background:var(--surface);min-height:22rem;padding:clamp(1.7rem,4vw,3rem)}.theme-grid__number{color:var(--terracotta);font-family:var(--mono);margin-bottom:clamp(3rem,7vw,6rem);font-size:.78rem;display:block}.theme-grid h3{margin-bottom:1rem}.theme-grid p{color:var(--muted);margin:0}.research-resource-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr));gap:1.5rem;display:grid}.research-resource-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:clamp(1.8rem,4vw,3rem);box-shadow:0 12px 45px #23312c0a}.research-resource-card__label{color:var(--terracotta);font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;margin-bottom:clamp(2.5rem,5vw,4.5rem);font-size:.76rem;font-weight:680}.research-resource-card h3{max-width:28ch;margin-bottom:1rem;font-size:clamp(1.75rem,4vw,2.8rem)}.research-resource-card h3 a{color:inherit;text-decoration:none}.research-resource-card h3 a:hover{color:var(--terracotta)}.research-resource-card>p:not(.research-resource-card__label){max-width:48rem;color:var(--muted)}.about-grid{grid-template-columns:minmax(15rem,.56fr) minmax(0,1.44fr);align-items:start;gap:clamp(3rem,9vw,8rem);display:grid}.about-grid__portrait{box-shadow:var(--shadow);background:#fff;border-radius:50% 50% 1rem 1rem;position:relative;overflow:hidden}.about-grid__portrait:after{background:linear-gradient(90deg, var(--terracotta) 0 42%, var(--teal) 42% 78%, var(--moss) 78%);content:"";height:.45rem;position:absolute;bottom:0;left:0;right:0}.about-grid__portrait img{width:100%}.prose{max-width:var(--text)}.prose p{color:var(--ink-soft)}.prose--large p{font-family:var(--serif);margin-bottom:1.4em;font-size:clamp(1.38rem,2.8vw,2rem);line-height:1.46}.timeline{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.timeline>li{border-bottom:1px solid var(--line);grid-template-columns:minmax(10rem,.34fr) minmax(0,1fr);gap:clamp(1.5rem,5vw,4rem);padding:clamp(2rem,5vw,3.5rem) 0;display:grid}.timeline__period{color:var(--terracotta);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:650}.timeline h3{margin-bottom:.4rem}.timeline h3 a,.timeline__institution a{color:inherit;text-decoration:none}.timeline h3 a:hover,.timeline__institution a:hover{color:var(--terracotta)}.timeline__institution{color:var(--teal-deep);font-weight:680}.timeline>li p{max-width:42rem}.timeline>li p:last-of-type{color:var(--muted);margin-bottom:0}.timeline__links{flex-wrap:wrap;gap:.5rem 1rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.timeline__links a{color:var(--teal-deep);font-size:.88rem;font-weight:650}.personal-grid{grid-template-columns:minmax(15rem,.72fr) minmax(0,1.28fr);align-items:start;gap:clamp(3rem,8vw,7rem);display:grid}.personal-grid h2{max-width:8ch;margin-bottom:0}.personal-grid__copy p{color:var(--ink-soft);font-family:var(--serif);font-size:clamp(1.25rem,2.4vw,1.75rem);line-height:1.5}.contact-intro{max-width:42rem;color:var(--muted);margin:calc(clamp(2.5rem,5vw,4rem)/-1.81818) 0 2rem}.contact-grid{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.contact-card{background:var(--surface);min-width:0;padding:clamp(1.5rem,3.5vw,2.4rem)}.contact-card__label{color:var(--terracotta);letter-spacing:.06em;text-transform:uppercase;margin-bottom:2.8rem;font-size:.78rem;font-weight:730}.contact-card h3{font-family:var(--sans);margin-bottom:.65rem;font-size:1rem;font-weight:710}.contact-card a{overflow-wrap:anywhere;font-size:.94rem;font-weight:650}.cv-header__inner{z-index:1;justify-content:space-between;align-items:end;gap:3rem;display:flex;position:relative}.cv-header h1{margin-bottom:1.2rem}.cv-header p{color:color-mix(in srgb, var(--paper) 77%, transparent);margin-bottom:0}.cv-header a{color:var(--link-on-ink)}.cv-header__contacts{overflow-wrap:anywhere;margin-top:.85rem}.cv-header .button{border-color:color-mix(in srgb, var(--paper) 70%, transparent);color:var(--paper);flex:none}.cv__layout{grid-template-columns:minmax(12rem,.34fr) minmax(0,1fr);align-items:start;gap:clamp(3rem,8vw,7rem);display:grid}.cv__aside{position:sticky;top:2rem}.cv__aside nav{border-top:1px solid var(--line);margin-bottom:2rem;display:grid}.cv__aside nav a{border-bottom:1px solid var(--line);color:var(--muted);padding:.65rem 0;font-size:.92rem;font-weight:650;text-decoration:none}.cv__aside nav a:hover{color:var(--terracotta)}.cv__aside p{color:var(--muted);font-size:.86rem}.cv__content{max-width:52rem}.cv__content>section{margin-bottom:4.8rem;scroll-margin-top:2rem}.cv__content h2{border-bottom:1px solid var(--line);padding-bottom:.8rem;font-size:clamp(2rem,4vw,3rem)}.cv-entry{border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent);grid-template-columns:9.5rem minmax(0,1fr);gap:1.5rem;padding:1.45rem 0;display:grid}.cv-entry__date{color:var(--terracotta);font-family:var(--mono);text-transform:uppercase;padding-top:.2rem;font-size:.75rem;font-weight:650;line-height:1.45}.cv-entry h3{font-family:var(--sans);letter-spacing:-.01em;margin-bottom:.25rem;font-size:1.08rem;font-weight:730;line-height:1.35}.cv-entry p{color:var(--muted);margin-bottom:.55rem;font-size:.95rem}.cv-entry__institution{font-weight:650;color:var(--teal-deep)!important}.cv-entry__programs{line-height:1.55}.cv-entry__detail{color:var(--muted);margin:0 0 .55rem;font-size:.95rem}.cv-entry__detail strong{color:var(--ink)}.cv-course-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem 1.25rem;margin:.45rem 0 0;padding:0;list-style:none;display:grid}.cv-course-list li{min-width:0;color:var(--muted);font-size:.9rem;line-height:1.45}.cv-course-list a{font-weight:620}.cv-course__code{color:var(--ink);font-family:var(--mono);white-space:nowrap;font-size:.78rem;font-weight:680}.cv-course__term{color:var(--muted);white-space:nowrap;font-size:.82rem}.cv-entry__links a{font-weight:650}.cv-skill-groups{gap:.55rem;display:grid}.cv-skill-groups p{color:var(--muted);margin:0}.cv-skill-groups strong{color:var(--ink)}.cv-entry__amount{color:var(--ink);font-weight:780}.cv-entry__note{font-style:italic;color:var(--terracotta)!important}.not-found{place-items:center;min-height:65vh;padding:5rem 0;display:grid}.not-found__inner{text-align:center}.not-found h1{margin-bottom:1.4rem}.not-found p:not(.eyebrow){max-width:35rem;color:var(--muted);margin:0 auto 2rem}.site-footer{border-top:1px solid var(--line);background:var(--paper-deep)}.site-footer__inner{grid-template-columns:1fr 1.25fr;gap:3rem;padding-block:clamp(3rem,6vw,5rem) 2rem;display:grid}.site-footer__name{color:var(--ink);font-family:var(--serif);margin-bottom:.55rem;font-size:1.4rem;font-weight:650}.site-footer p:not(.site-footer__name){color:var(--muted);font-size:.88rem}.site-footer .profile-links{place-content:start end}.site-footer__legal{border-top:1px solid var(--line);grid-column:1/-1;margin:2rem 0 0;padding-top:1.5rem}@media (width<=880px){.brand__name{display:none}.hero__grid{grid-template-columns:1fr}.hero__content{max-width:48rem}.hero__portrait{width:min(72vw,22rem);margin:1rem auto 0 7%}.publication-card--featured{display:block}.publication-card--featured .publication-card__meta{flex-direction:row}.theme-grid{grid-template-columns:1fr}.theme-grid article{min-height:0}.theme-grid__number{margin-bottom:2.5rem}.about-grid{grid-template-columns:minmax(12rem,.45fr) minmax(0,1.55fr);gap:3rem}.contact-grid{grid-template-columns:1fr}}@media (width<=680px){body{font-size:1rem}.shell{width:min(calc(100% - 1.5rem), var(--shell))}.site-header__inner{gap:.6rem;min-height:4.4rem}.site-nav{gap:.48rem}.site-nav__link{font-size:.82rem}.theme-toggle{width:2.25rem;height:2.25rem;margin-left:.1rem}.brand__mark{width:2.2rem;height:2.2rem}.hero{padding-top:4.5rem}.hero__statement{font-size:clamp(3rem,16vw,4.6rem)}.hero__portrait{margin-left:auto}.hero__meta span+span:before{display:none}.section-heading,.contact-band__inner,.cv-header__inner{flex-direction:column;align-items:start}.section-heading{display:flex}.section-heading__link{margin-bottom:0}.award-card,.timeline>li,.award-year,.personal-grid{grid-template-columns:1fr;gap:.75rem}.award-year{gap:1.4rem}.award-year__heading .eyebrow{display:none}.award-card__date{padding-top:0}.about-grid{grid-template-columns:1fr}.about-grid__portrait{width:min(70vw,18rem)}.page-header:after{width:15rem;height:15rem}.cv__layout{grid-template-columns:1fr}.cv__aside{position:static}.cv__aside nav{grid-template-columns:repeat(3,1fr);gap:0 1rem}.cv-entry{grid-template-columns:1fr;gap:.45rem}.site-footer__inner{grid-template-columns:1fr}.site-footer .profile-links{justify-content:start}.site-footer__legal{grid-column:auto}}@media (width<=450px){.site-nav{gap:.38rem}.site-nav__link{font-size:.75rem}.site-nav__link:nth-of-type(4){display:none}.profile-links--compact{gap:.55rem .9rem}.cv__aside nav{grid-template-columns:repeat(2,1fr)}.cv-course-list{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}@media print{:root{color-scheme:light;--paper:#fff;--paper-deep:#fff;--surface:#fff;--ink:#000;--ink-soft:#222;--muted:#444;--teal:#000;--teal-deep:#000;--terracotta:#000;--line:#bbb}@page{margin:.6in}body{background:#fff;font-size:9.5pt}.site-header,.site-footer,.skip-link,.cv__aside,.print-button,.page-header:after{display:none}.page-header{color:#000;background:#fff;padding:0 0 1.2rem}.page-header h1,.page-header p,.page-header a{color:#000}.page-header h1{font-size:28pt}.cv{padding:0}.cv__layout{display:block}.cv__content{max-width:none}.cv__content>section{break-inside:auto;margin-bottom:1.5rem}.cv__content h2{break-after:avoid;margin-bottom:.35rem;font-size:16pt}.cv-entry{break-inside:avoid;grid-template-columns:1.3in 1fr;padding:.35rem 0}.cv-course-list{grid-template-columns:1fr 1fr;gap:.12rem .5rem}a{color:#000;text-decoration:none}}
