@charset "UTF-8";@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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2) format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2) format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg: #f5f2eb;--color-surface: #ede8dc;--color-ink: #152b3c;--color-primary: #2f6690;--color-accent: #5e958a;--color-accent-deep: #2f6e61;--color-accent-soft: #6fa79a;--color-muted: #5d6b76;--color-hairline: #ddd6c6;--on-ink: #f5f2eb;--on-ink-muted: #a9b4bc;--on-ink-faint: #7c8a94;--on-ink-icon: #c7d0d6;--on-ink-hairline: rgba(245, 242, 235, .14);--on-ink-border: rgba(245, 242, 235, .2);--font-display: "Newsreader Variable", "Newsreader", Georgia, "Times New Roman", serif;--font-body: "Inter Variable", "Inter", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--wrap: 1120px;--gutter: 24px;--ease-out: cubic-bezier(.16, 1, .3, 1);--section-gap: 72px}@media(min-width:1000px){:root{--section-gap: 110px}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);font-size:16px;line-height:1.6;font-synthesis:none;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}img,svg{display:block}svg{flex-shrink:0}a{color:inherit;text-decoration:none}h1,h2,h3{font-weight:500}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:2px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.wrap{width:min(var(--wrap),100% - (var(--gutter) * 2));margin-inline:auto}.section{padding-top:var(--section-gap)}.railed{display:flex;flex-direction:column;gap:20px}@media(min-width:1000px){.railed{flex-direction:row;gap:80px}.railed__rail{flex:0 0 200px;padding-top:6px}.railed__body{flex:1 1 0%;min-width:0}}.label{display:inline-block;font-family:var(--font-mono);font-weight:500;font-size:12px;line-height:16px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent-deep)}@media(min-width:1000px){.label{font-size:13px}}.js .reveal{opacity:0;transform:translateY(12px);transition:opacity .55s var(--ease-out),transform .55s var(--ease-out);transition-delay:var(--reveal-delay, 0ms)}.js .reveal.is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}.nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--color-bg) 88%,transparent);backdrop-filter:saturate(120%) blur(8px);border-bottom:1px solid var(--color-hairline)}.nav__inner{display:flex;align-items:center;justify-content:space-between;padding-block:22px}.nav__brand{position:relative;display:inline-flex;align-items:center;font-family:var(--font-display);font-weight:500;font-size:17px;line-height:22px;letter-spacing:-.01em;color:var(--color-ink)}.nav__links{display:none}.nav__toggle{display:inline-flex;align-items:center;justify-content:center;height:44px;margin-right:-10px;-webkit-tap-highlight-color:transparent}.nav__menu{display:grid;grid-template-rows:0fr;overflow:clip;transition:grid-template-rows .32s var(--ease-out)}.nav__menu[data-open=true]{grid-template-rows:1fr}.nav__menu-inner{min-height:0;display:flex;flex-direction:column;border-top:1px solid var(--color-hairline)}.nav__menu-link{font-family:var(--font-mono);font-weight:500;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink);padding:16px 2px;border-bottom:1px solid var(--color-hairline);transition:color .15s ease-out}.nav__menu-link:last-child{border-bottom:0}@media(hover:hover)and (pointer:fine){.nav__menu-link:hover{color:var(--color-accent-deep)}}@media(prefers-reduced-motion:reduce){.nav__menu{transition:none}}@media(min-width:1000px){.nav__inner{padding-block:32px}.nav__brand{font-size:20px;line-height:24px}.nav__inner .nav__toggle,.nav__menu{display:none}.nav__links{display:flex;align-items:center;gap:36px}.nav__link{position:relative;font-family:var(--font-mono);font-weight:500;font-size:12px;line-height:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink);transition:color .18s ease-out}.nav__link:after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1.5px;background:var(--color-accent-deep);transform:scaleX(0);transform-origin:left;transition:transform .28s var(--ease-out)}.nav__link:hover{color:var(--color-accent-deep)}.nav__link:hover:after{transform:scaleX(1)}@media(prefers-reduced-motion:reduce){.nav__link:after{transition:none}}}.hero{position:relative;overflow:clip;padding-top:40px;padding-bottom:56px}.hero__sea{position:absolute;inset:0;z-index:0;pointer-events:none}.hero__sea video{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply;filter:saturate(.55) hue-rotate(-8deg);opacity:0;transition:opacity 1.4s var(--ease-out)}.hero__sea video.is-playing{opacity:.3}.hero__sea:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--color-bg) 0%,rgba(245,242,235,0) 22%,rgba(245,242,235,0) 58%,var(--color-bg) 97%)}.hero__grid{position:relative;z-index:1;display:flex;flex-direction:column}.hero__copy{display:contents}.hero .eyebrow{order:1}.hero .name{order:2}.hero .tagline{order:3}.hero__portrait{order:4}.hero .quicklinks{order:5}.eyebrow{display:flex;align-items:center;gap:10px;padding-bottom:20px}.eyebrow__tick{flex:none;width:24px;height:2px;background:var(--color-accent)}.eyebrow__text{font-family:var(--font-mono);font-weight:500;font-size:12px;line-height:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-deep)}.eyebrow__text--long{display:none}.name{font-family:var(--font-display);font-weight:500;font-size:clamp(44px,14.4vw,56px);line-height:1;letter-spacing:-.02em;color:var(--color-primary);text-wrap:balance;padding-bottom:24px}.tagline{font-family:var(--font-body);font-size:18px;line-height:28px;color:var(--color-ink);text-wrap:pretty;padding-bottom:28px}.quicklinks{display:flex;flex-direction:column}.quicklink{display:flex;align-items:center;justify-content:space-between;padding-block:14px;border-top:1px solid var(--color-hairline);color:var(--color-ink);transition:color .15s ease-out}.quicklinks .quicklink:last-child{border-bottom:1px solid var(--color-hairline)}.quicklink__label{font-family:var(--font-mono);font-weight:500;font-size:13px;line-height:16px;letter-spacing:.06em;text-transform:uppercase}.quicklink__arrow{width:15px;height:15px;color:var(--color-accent);transition:transform .2s var(--ease-out),color .15s ease-out}@media(hover:hover)and (pointer:fine){.quicklink:hover{color:var(--color-accent-deep)}.quicklink:hover .quicklink__arrow{color:var(--color-accent-deep);transform:translate(2px,-2px)}}.hero__portrait{border:1px solid var(--color-hairline);border-radius:14px;overflow:clip;margin-bottom:28px;transition:transform .3s var(--ease-out),box-shadow .35s var(--ease-out)}.hero__portrait img{width:100%;height:440px;object-fit:cover;object-position:50% 30%}@media(hover:hover)and (pointer:fine){.hero__portrait:hover{transform:translateY(-4px) rotate(-.6deg);box-shadow:0 14px 32px #00000024}}@media(prefers-reduced-motion:reduce){.hero__portrait{transition:none}.hero__portrait:hover{transform:none;box-shadow:none}}@media(min-width:1000px){.hero{padding-top:72px;padding-bottom:96px}.hero__grid{flex-direction:row;align-items:center;gap:96px}.hero__copy{display:flex;flex-direction:column;flex:1 1 0%;min-width:0}.eyebrow{gap:12px;padding-bottom:28px}.eyebrow__tick{width:28px}.eyebrow__text{font-size:13px;letter-spacing:.1em}.eyebrow__text--short{display:none}.eyebrow__text--long{display:inline}.name{font-size:clamp(56px,6.4vw,92px);line-height:1.02;padding-bottom:32px}.tagline{font-size:20px;line-height:32px;max-width:480px;padding-bottom:40px}.quicklinks{flex-direction:row;gap:32px}.quicklink{justify-content:flex-start;gap:6px;padding-block:0;border:0!important}.quicklink__label{position:relative;font-size:13px;letter-spacing:.08em}.quicklink__label:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1.5px;background:var(--color-accent-deep);transform:scaleX(0);transform-origin:left;transition:transform .28s var(--ease-out)}.quicklink:hover .quicklink__label:after{transform:scaleX(1)}.quicklink__arrow{width:14px;height:14px}@media(prefers-reduced-motion:reduce){.quicklink__label:after{transition:none}}.hero__portrait{flex:none;width:440px;margin-bottom:0}.hero__portrait img{height:560px}}.about__body{display:flex;flex-direction:column;gap:20px}.lead{font-family:var(--font-display);font-weight:500;font-size:24px;line-height:34px;letter-spacing:-.01em;color:var(--color-ink);text-wrap:pretty}.bio{font-family:var(--font-body);font-size:16px;line-height:26px;color:var(--color-muted);text-wrap:pretty}.bio a{color:var(--color-primary);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--color-primary) 40%,transparent);text-underline-offset:3px;text-decoration-thickness:1px;transition:color .15s ease-out,text-decoration-color .15s ease-out}@media(hover:hover)and (pointer:fine){.bio a:hover{color:var(--color-accent-deep);text-decoration-color:currentColor}}@media(min-width:1000px){.about__body{gap:24px}.lead{font-size:30px;line-height:42px;max-width:760px}.bio{font-size:17px;line-height:28px;max-width:672px}.bio:first-of-type{margin-top:8px}}.affil{display:flex;flex-direction:column;gap:14px;margin-top:12px;padding-top:28px;border-top:1px solid var(--color-hairline)}.affil__label{font-family:var(--font-mono);font-weight:500;font-size:12px;line-height:16px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent-deep)}.affil__list{list-style:none;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:20px 28px}.affil__org{display:block;transition:transform .2s var(--ease-out),opacity .2s ease-out}.affil__org img{width:52px;height:52px;object-fit:contain}@media(hover:hover)and (pointer:fine){.affil__org{opacity:.92}.affil__org:hover{opacity:1;transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){.affil__org{transition:opacity .2s ease-out}.affil__org:hover{transform:none}}@media(min-width:1000px){.affil{margin-top:16px;padding-top:32px}.affil__label{font-size:13px}.affil__list{gap:24px 36px}.affil__org img{width:64px;height:64px}}.research__grid{display:flex;flex-direction:column;gap:20px}.rcard{display:flex;flex-direction:column;gap:12px;padding-top:20px;border-top:1px solid var(--color-hairline)}.rcard__icon{width:22px;height:22px;color:var(--color-accent)}.rcard__title{font-family:var(--font-display);font-weight:500;font-size:20px;line-height:26px;color:var(--color-ink)}.rcard__body{font-family:var(--font-body);font-size:15px;line-height:24px;color:var(--color-muted);text-wrap:pretty}@media(min-width:1000px){.research__grid{flex-direction:row;gap:40px;align-items:stretch}.rcard{flex:1 1 0%;gap:18px;padding-top:24px}.rcard__title{font-size:22px;line-height:28px}}.pubs__rail{display:flex;flex-direction:column;gap:20px}.scholar-link{display:inline-flex;align-items:center;gap:6px;color:var(--color-ink);transition:color .15s ease-out}.scholar-link__label{font-family:var(--font-mono);font-weight:500;font-size:12px;line-height:16px;letter-spacing:.06em;text-transform:uppercase}.scholar-link svg{width:12px;height:12px;color:var(--color-accent);transition:transform .2s var(--ease-out),color .15s ease-out}@media(hover:hover)and (pointer:fine){.scholar-link:hover{color:var(--color-accent-deep)}.scholar-link:hover svg{color:var(--color-accent-deep);transform:translate(2px,-2px)}}.pubs__list{display:flex;flex-direction:column}.pub{position:relative;display:flex;flex-direction:column;gap:8px;padding-block:18px;border-top:1px solid var(--color-hairline);color:inherit;-webkit-tap-highlight-color:transparent}.pub:before{content:"";position:absolute;inset:1px -16px 0;border-radius:12px;background:color-mix(in srgb,var(--color-ink) 4%,transparent);opacity:0;transition:opacity .25s var(--ease-out);pointer-events:none}.pub>*{position:relative}@media(hover:hover)and (pointer:fine){.pub:hover:before{opacity:1}}.pub:active:before{opacity:1;transition-duration:80ms}@media(prefers-reduced-motion:reduce){.pub:before{transition:none}}.pub__head{display:flex;align-items:center;justify-content:space-between}.pub__main{display:flex;flex-direction:column;gap:8px}.pub__year{font-family:var(--font-mono);font-weight:500;font-size:12px;line-height:16px;letter-spacing:.04em;color:var(--color-accent-deep)}.pub__title{font-family:var(--font-display);font-weight:500;font-size:19px;line-height:26px;color:var(--color-ink);text-wrap:pretty;transition:color .15s ease-out}.pub__journal{font-family:var(--font-body);font-size:14px;line-height:20px;color:var(--color-muted)}.pub__tags{display:flex;flex-wrap:wrap;gap:6px;padding-top:4px}.pub__tag{font-family:var(--font-mono);font-weight:500;font-size:12px;line-height:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-accent-deep);border:1px solid var(--color-hairline);border-radius:999px;padding:2px 8px}.pub__arrow,.pub__doi svg{width:13px;height:13px;color:var(--color-accent);transition:transform .2s var(--ease-out),color .15s ease-out}.pub__doi{display:none;align-items:center;gap:6px;color:var(--color-ink)}.pub__doi-label{font-family:var(--font-mono);font-weight:500;font-size:12px;line-height:16px;letter-spacing:.06em;text-transform:uppercase}@media(hover:hover)and (pointer:fine){.pub:hover .pub__title{color:var(--color-primary)}.pub:hover .pub__arrow,.pub:hover .pub__doi svg{color:var(--color-accent-deep);transform:translate(2px,-2px)}}@media(min-width:1000px){.pubs__rail{gap:20px}.scholar-link__label{font-size:12px;letter-spacing:.08em}.scholar-link svg{width:13px;height:13px}.pub{flex-direction:row;align-items:flex-start;gap:40px;padding-block:28px}.pub__head{display:contents}.pub__year{flex:none;width:64px;padding-top:6px;font-size:14px;line-height:18px}.pub__arrow{display:none}.pub__main{flex:1 1 0%;display:flex;flex-direction:column;gap:8px;min-width:0}.pub__title{font-size:22px;line-height:30px;max-width:640px}.pub__journal{font-size:15px;line-height:22px}.pub__doi{display:flex;flex:none;width:64px;justify-content:flex-end;padding-top:8px}}.media__list{display:flex;flex-direction:column}.media-item{position:relative;display:flex;align-items:center;gap:18px;padding-block:18px;border-top:1px solid var(--color-hairline);color:inherit;-webkit-tap-highlight-color:transparent}.media-item:before{content:"";position:absolute;inset:1px -16px 0;border-radius:12px;background:color-mix(in srgb,var(--color-ink) 4%,transparent);opacity:0;transition:opacity .25s var(--ease-out);pointer-events:none}.media-item>*{position:relative}.media-item__badge{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--color-hairline);border-radius:999px;color:var(--color-accent-deep);background:var(--color-bg);transition:border-color .25s var(--ease-out),color .2s ease-out,background-color .2s ease-out}.media-item__icon{width:19px;height:19px}.media-item__body{flex:1 1 0%;min-width:0;display:flex;flex-direction:column;gap:4px}.media-item__meta{font-family:var(--font-mono);font-weight:500;font-size:12px;line-height:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-deep)}.media-item__title{font-family:var(--font-display);font-weight:500;font-size:19px;line-height:26px;color:var(--color-ink);text-wrap:pretty;transition:color .15s ease-out}.media-item__outlet{font-family:var(--font-body);font-size:14px;line-height:20px;color:var(--color-muted)}.media-item__action{flex:none;display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding-top:4px;color:var(--color-ink)}.media-item__action-label{display:none}.media-item__arrow{width:15px;height:15px;color:var(--color-accent);transition:transform .2s var(--ease-out),color .15s ease-out}@media(hover:hover)and (pointer:fine){.media-item:hover:before{opacity:1}.media-item:hover .media-item__badge{border-color:var(--color-accent);color:var(--color-accent-deep);background:var(--color-surface)}.media-item:hover .media-item__title{color:var(--color-primary)}.media-item:hover .media-item__arrow{color:var(--color-accent-deep);transform:translate(2px,-2px)}}.media-item:active:before{opacity:1;transition-duration:80ms}@media(prefers-reduced-motion:reduce){.media-item:before,.media-item__badge{transition:none}}@media(min-width:1000px){.media-item{gap:52px;padding-block:24px}.media-item__badge{width:52px;height:52px}.media-item__icon{width:22px;height:22px}.media-item__title{font-size:22px;line-height:30px}.media-item__outlet{font-size:15px;line-height:22px}.media-item__action{align-self:center;padding-top:0}.media-item__action-label{display:inline;font-family:var(--font-mono);font-weight:500;font-size:12px;line-height:16px;letter-spacing:.06em;text-transform:uppercase}.media-item__arrow{width:13px;height:13px}}.contact{position:relative;overflow:clip;margin-top:var(--section-gap);color:var(--on-ink);background:var(--color-ink)}.contact__sea{position:absolute;inset:0;pointer-events:none}.contact__sea canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity .9s var(--ease-out)}.contact__sea canvas.is-on{opacity:1}@media(prefers-reduced-motion:reduce){.contact__sea canvas{transition:none}}.contact__inner{position:relative;z-index:1;display:flex;flex-direction:column;gap:32px;padding-top:48px;padding-bottom:28px}.contact__top,.contact__intro{display:contents}.copyright--full{display:none}.contact .eyebrow{padding-bottom:0}.contact .eyebrow__text{color:var(--color-accent-soft)}.contact__heading{font-family:var(--font-display);font-weight:500;font-size:clamp(32px,10vw,40px);line-height:1.1;letter-spacing:-.02em;color:var(--on-ink);text-wrap:balance}.contact__text{font-family:var(--font-body);font-size:16px;line-height:26px;color:var(--on-ink-muted);text-wrap:pretty}.email-pill{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px;background:var(--on-ink);color:var(--color-ink);border-radius:999px;cursor:pointer;box-shadow:0 1px 2px #0000001f;transition:transform .18s var(--ease-out),box-shadow .25s var(--ease-out),background-color .2s ease-out}.email-pill svg{width:17px;height:17px;color:var(--color-ink);transition:transform .25s var(--ease-out)}.email-pill__label{font-family:var(--font-mono);font-weight:500;font-size:12px;line-height:16px}.email-pill:active{transform:translateY(0) scale(.975);box-shadow:0 2px 6px #0003}@media(hover:hover)and (pointer:fine){.email-pill:hover{transform:translateY(-2px);box-shadow:0 10px 26px #00000042;background-color:#fffdf7}.email-pill:hover svg{transform:translate(-2px) rotate(-6deg)}}@media(prefers-reduced-motion:reduce){.email-pill,.email-pill svg{transition:box-shadow .2s ease-out}.email-pill:hover{transform:none}.email-pill:hover svg{transform:none}.email-pill:active{transform:none}}.footer-bar{display:flex;align-items:center;justify-content:space-between;padding-top:24px;border-top:1px solid var(--on-ink-hairline)}.copyright{font-family:var(--font-mono);font-size:12px;line-height:16px;letter-spacing:.04em;text-transform:uppercase;color:var(--on-ink-faint)}.socials{display:flex;align-items:center;gap:12px}.social{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--on-ink-border);border-radius:999px;color:var(--on-ink-icon);transition:border-color .2s ease-out,color .2s ease-out,transform .16s ease-out}.social svg{width:17px;height:17px}.social:active{transform:scale(.94)}@media(hover:hover)and (pointer:fine){.social:hover{border-color:var(--color-accent-soft);color:var(--on-ink)}}@media(prefers-reduced-motion:reduce){.social,.social:active{transform:none;transition:border-color .2s ease-out,color .2s ease-out}}@media(min-width:1000px){.contact{margin-top:120px}.contact__inner{gap:56px;padding-top:96px;padding-bottom:40px}.contact__top{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}.contact__intro{display:flex;flex-direction:column;gap:24px}.contact .eyebrow__text{font-size:13px;letter-spacing:.1em}.contact__heading{font-size:clamp(40px,4.6vw,64px);line-height:1.03}.contact__text{font-size:18px;line-height:28px;max-width:440px}.email-pill{width:auto;flex:none;padding:18px 28px;gap:10px}.email-pill svg{width:18px;height:18px}.email-pill__label{font-size:14px;letter-spacing:.02em}.footer-bar{padding-top:32px}.copyright{font-size:12px}.copyright--full{display:inline}.copyright--short{display:none}.socials{gap:14px}.social{width:40px;height:40px}.social svg{width:18px;height:18px}}@keyframes heroRise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes portraitReveal{0%{opacity:0;clip-path:inset(0 0 14% 0);transform:scale(1.04)}to{opacity:1;clip-path:inset(0 0 0 0);transform:none}}.js .hero .eyebrow,.js .hero .name,.js .hero .tagline,.js .hero .quicklinks{animation:heroRise .7s var(--ease-out) both}.js .hero .name{animation-delay:.05s}.js .hero .tagline{animation-delay:.13s}.js .hero .quicklinks{animation-delay:.21s}.js .hero__portrait{animation:portraitReveal .95s var(--ease-out) .08s backwards}.pub__year,.pub__journal,.copyright{font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){.js .hero .eyebrow,.js .hero .name,.js .hero .tagline,.js .hero .quicklinks,.js .hero__portrait{animation:none}}/*!
 * Hamburgers
 * @description Tasty CSS-animated hamburgers
 * @author Jonathan Suh @jonsuh
 * @site https://jonsuh.com/hamburgers
 * @link https://github.com/jonsuh/hamburgers
 */.hamburger{padding:14px 11px;display:inline-block;cursor:pointer;transition-property:opacity,filter;transition-duration:.15s;transition-timing-function:linear;font:inherit;color:inherit;text-transform:none;background-color:transparent;border:0;margin:0;overflow:visible}.hamburger:hover,.hamburger.is-active:hover{opacity:1}.hamburger.is-active .hamburger-inner,.hamburger.is-active .hamburger-inner:before,.hamburger.is-active .hamburger-inner:after{background-color:#152b3c}.hamburger-box{width:22px;height:16px;display:inline-block;position:relative}.hamburger-inner{display:block;top:50%;margin-top:-1px}.hamburger-inner,.hamburger-inner:before,.hamburger-inner:after{width:22px;height:2px;background-color:#152b3c;border-radius:2px;position:absolute;transition-property:transform;transition-duration:.15s;transition-timing-function:ease}.hamburger-inner:before,.hamburger-inner:after{content:"";display:block}.hamburger-inner:before{top:-7px}.hamburger-inner:after{bottom:-7px}.hamburger--squeeze .hamburger-inner{transition-duration:75ms;transition-timing-function:cubic-bezier(.55,.055,.675,.19)}.hamburger--squeeze .hamburger-inner:before{transition:top 75ms .12s ease,opacity 75ms ease}.hamburger--squeeze .hamburger-inner:after{transition:bottom 75ms .12s ease,transform 75ms cubic-bezier(.55,.055,.675,.19)}.hamburger--squeeze.is-active .hamburger-inner{transform:rotate(45deg);transition-delay:.12s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}.hamburger--squeeze.is-active .hamburger-inner:before{top:0;opacity:0;transition:top 75ms ease,opacity 75ms .12s ease}.hamburger--squeeze.is-active .hamburger-inner:after{bottom:0;transform:rotate(-90deg);transition:bottom 75ms ease,transform 75ms .12s cubic-bezier(.215,.61,.355,1)}@media(prefers-reduced-motion:reduce){.hamburger-inner,.hamburger-inner:before,.hamburger-inner:after{transition:none!important}}:where([data-astro-image]){object-fit:var(--fit);object-position:var(--pos);height:auto}:where([data-astro-image=full-width]){width:100%}:where([data-astro-image=constrained]){max-width:100%}
