:root{--accent-color: #d63d17;--paper: #f5f3ee;--paper-2: #edebe4;--ink: #141311;--ink-2: #4f4c46;--ink-3: #6b675f;--line: rgba(20, 19, 17, .1);--line-strong: rgba(20, 19, 17, .22);--well: var(--paper-2);--font-sans: "Instrument Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-serif: "Instrument Serif", "Times New Roman", Georgia, serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--radius-lg: 18px;--radius-md: 12px;--radius-pill: 999px;--shadow-pop: 0 12px 32px rgba(0, 0, 0, .08);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--header-h: 68px;--wrap: 1160px;--pad: 24px;--section-gap: clamp(56px, 7vw, 88px)}[data-bs-theme=dark]{color-scheme:dark;--paper: #151412;--paper-2: #1d1b18;--ink: #f1efe9;--ink-2: #c6c2b9;--ink-3: #8e897f;--line: rgba(241, 239, 233, .1);--line-strong: rgba(241, 239, 233, .24);--well: #d9d6cf}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 4px);-webkit-text-size-adjust:100%}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}body{min-height:100vh;background-color:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:block;max-width:100%;height:auto}ul,ol{list-style:none}a{color:inherit}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}:focus-visible{outline:2px solid var(--accent-color);outline-offset:3px}.wrap{width:min(var(--wrap),100% - 2 * var(--pad));margin-inline:auto}.section{padding-top:var(--section-gap)}.label{font-family:var(--font-mono);font-size:.7rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.label--dot{display:inline-flex;align-items:center;gap:9px}.label--dot:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent-color);flex-shrink:0}.prose a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,var(--accent-color) 55%,transparent);text-underline-offset:3px;transition:color .2s ease,text-decoration-color .2s ease}.prose a:hover{color:var(--accent-color);text-decoration-color:var(--accent-color)}.pill{display:inline-flex;align-items:center;gap:8px;padding:7px 13px;border:1px solid var(--line-strong);border-radius:var(--radius-pill);font-size:.8rem;font-weight:500;line-height:1;color:var(--ink);white-space:nowrap;text-decoration:none;transition:border-color .2s ease}.pill:hover{border-color:var(--ink)}.pills{display:flex;flex-wrap:wrap;gap:8px}.pill-group{--seg-gap: 4px;display:flex;width:fit-content;align-items:center;gap:var(--seg-gap);padding:3px;border:1px solid var(--line-strong);border-radius:var(--radius-pill)}.pill-group a{position:relative;padding:4px 10px;border-radius:var(--radius-pill);font-size:.8rem;font-weight:500;line-height:1;color:var(--ink);white-space:nowrap;text-decoration:none;transition:transform .45s var(--ease-spring)}.pill-group a:focus-visible{outline-offset:1px}.pill-group a+a:before{content:"";position:absolute;top:50%;left:calc(var(--seg-gap) / -2 - .5px);width:1px;height:12px;background:var(--line-strong);transform:translateY(-50%);transition:opacity .2s ease}@media (hover: hover){.pill-group a:hover{z-index:1;transform:scale(1.14);animation:pill-jelly .55s ease-out}.pill-group a:hover+a{transform:translate(4px) scale(.94)}.pill-group a:has(+a:hover){transform:translate(-4px) scale(.94)}.pill-group a:hover:before,.pill-group a:hover+a:before{opacity:0}}.pill-group a:active{animation:none;transform:scale(1.04,.88);transition-duration:.12s}@keyframes pill-jelly{0%{transform:scale(1)}30%{transform:scale(1.24,.94)}55%{transform:scale(1.08,1.18)}75%{transform:scale(1.17,1.1)}to{transform:scale(1.14)}}@media (prefers-reduced-motion: reduce){.pill-group a,.pill-group a:hover,.pill-group a:hover+a,.pill-group a:has(+a:hover),.pill-group a:active{transform:none;animation:none}}.pill-group--lg{--seg-gap: 6px;padding:4px}.pill-group--lg a{padding:8px 15px;font-size:.9rem}.pill-group--lg a+a:before{height:14px}@media (max-width: 600px){.pill-group--lg{width:100%}.pill-group--lg a{flex:auto;padding-inline:6px;text-align:center}}.rows{border-top:1px solid var(--line)}.row{padding-block:var(--row-pad, 28px);border-bottom:1px solid var(--line)}.row:last-child{padding-bottom:0;border-bottom:0}.row--tile{display:grid;grid-template-columns:var(--tile-w) minmax(0,1fr);gap:28px;align-items:start}.tile{display:grid;place-items:center;border-radius:var(--radius-md)}.tile img{max-width:100%;width:auto;height:auto;object-fit:contain}.row-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px}.row-title{font-size:1.05rem;font-weight:600;line-height:1.35;letter-spacing:-.01em}.row-meta{flex-shrink:0;white-space:nowrap}@media (max-width: 600px){.row--tile{grid-template-columns:1fr}.row-head{flex-direction:column;gap:6px}}.site-header[data-v-b8023c85]{position:sticky;top:0;z-index:100;height:var(--header-h);background:color-mix(in srgb,var(--paper) 86%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.bar[data-v-b8023c85]{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;height:100%}.logo[data-v-b8023c85]{display:inline-flex;align-items:center;padding:8px 0;font-family:var(--font-serif);font-size:1.75rem;font-weight:400;line-height:1;letter-spacing:-.01em;text-decoration:none;white-space:nowrap}.nav[data-v-b8023c85]{margin-left:auto}.links[data-v-b8023c85]{display:flex;align-items:center;gap:28px}.links a[data-v-b8023c85]{font-size:.92rem;font-weight:500;color:var(--ink-2);text-decoration:none;transition:color .2s ease}.links a[data-v-b8023c85]:hover{color:var(--ink)}.ext[data-v-b8023c85]{font-size:.85em}.tools[data-v-b8023c85]{display:flex;align-items:center;gap:10px}.tool-group[data-v-b8023c85]{position:relative;display:inline-flex;align-items:center;height:38px;padding:0 4px;border:1px solid var(--line-strong);border-radius:var(--radius-pill)}.swatch-btn[data-v-b8023c85],.theme-btn[data-v-b8023c85]{display:inline-flex;align-items:center;justify-content:center;height:28px;border-radius:var(--radius-pill);transition:background-color .2s ease,color .2s ease}.swatch-btn[data-v-b8023c85]:hover,.theme-btn[data-v-b8023c85]:hover{background:var(--paper-2)}.swatch-btn[data-v-b8023c85]{width:28px}.swatch[data-v-b8023c85]{width:10px;height:10px;border-radius:50%}.tool-divider[data-v-b8023c85]{width:1px;height:14px;margin:0 2px;background:var(--line-strong)}.theme-btn[data-v-b8023c85]{display:grid;width:28px;color:var(--ink-2)}.theme-icon[data-v-b8023c85]{grid-area:1 / 1;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:rotate(-90deg) scale(.5);transition:opacity .2s ease,transform .45s var(--ease-spring)}.theme-icon.is-on[data-v-b8023c85]{opacity:1;transform:none}.theme-btn[data-v-b8023c85]:hover{color:var(--ink)}.picker[data-v-b8023c85]{display:flex;align-items:center}.picker-menu[data-v-b8023c85]{position:absolute;right:-1px;top:calc(100% + 10px);z-index:50;display:grid;gap:2px;min-width:160px;padding:6px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-pop)}.picker-option[data-v-b8023c85]{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:8px;font-size:.88rem;font-weight:500;color:var(--ink-2);text-align:left;transition:background-color .2s ease,color .2s ease}.picker-option[data-v-b8023c85]:hover,.picker-option.is-active[data-v-b8023c85]{background:var(--paper-2);color:var(--ink)}.picker-swatch[data-v-b8023c85]{width:12px;height:12px;border-radius:50%}.burger[data-v-b8023c85]{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;border-radius:50%}.burger span[data-v-b8023c85]{display:block;width:18px;height:1.5px;margin-inline:auto;background:var(--ink);transition:transform .2s ease}.burger[aria-expanded=true] span[data-v-b8023c85]:first-child{transform:translateY(3.25px) rotate(45deg)}.burger[aria-expanded=true] span[data-v-b8023c85]:last-child{transform:translateY(-3.25px) rotate(-45deg)}@media (max-width: 860px){.nav[data-v-b8023c85]{position:absolute;left:0;right:0;top:calc(100% + 8px);display:none;padding:4px 20px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-pop)}.nav.is-open[data-v-b8023c85]{display:block}.links[data-v-b8023c85]{flex-direction:column;align-items:stretch;gap:0}.links a[data-v-b8023c85]{display:block;padding:14px 0;font-size:1.05rem;border-bottom:1px solid var(--line)}.links li:last-child a[data-v-b8023c85]{border-bottom:0}.burger[data-v-b8023c85]{display:flex}}.hero[data-v-5c457c6b]{--grid: 168px;--grid-fade-from: 170px;--grid-fade-to: 360px;position:relative;isolation:isolate;background-color:var(--paper-2);border-bottom:1px solid var(--line)}.hero[data-v-5c457c6b]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:var(--grid) var(--grid);background-position:center -1px;-webkit-mask-image:linear-gradient(to bottom,#000 var(--grid-fade-from),transparent var(--grid-fade-to));mask-image:linear-gradient(to bottom,#000 var(--grid-fade-from),transparent var(--grid-fade-to))}.hero-inner[data-v-5c457c6b]{display:grid;grid-template-columns:minmax(0,1fr) clamp(240px,27vw,330px);gap:clamp(40px,6vw,96px);align-items:start;padding:calc(var(--grid) - 34px) 0 var(--section-gap)}.hero-name[data-v-5c457c6b]{margin-top:34px;font-family:var(--font-serif);font-size:clamp(3.25rem,7vw,6rem);font-weight:400;line-height:.95;letter-spacing:-.02em}.hero-dot[data-v-5c457c6b]{color:var(--accent-color)}.hero-role[data-v-5c457c6b]{margin-top:18px;font-size:clamp(1.05rem,1.5vw,1.2rem);color:var(--ink-2)}.hero-bio[data-v-5c457c6b]{max-width:58ch;margin-top:28px;font-size:1.05rem;line-height:1.7}.portrait[data-v-5c457c6b]{width:100%;aspect-ratio:4 / 5;object-fit:cover;border-radius:var(--radius-lg)}.hero-links[data-v-5c457c6b]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;margin-top:36px}.scroll-link[data-v-5c457c6b]{display:inline-flex;align-items:center;gap:8px;padding-bottom:2px;font-size:.9rem;font-weight:500;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--accent-color)}.scroll-link span[data-v-5c457c6b]{color:var(--accent-color);transition:transform .2s ease}.scroll-link:hover span[data-v-5c457c6b]{transform:translateY(2px)}@media (max-width: 820px){.hero[data-v-5c457c6b]{--grid: 112px;--grid-fade-from: 100px;--grid-fade-to: 300px}.hero-inner[data-v-5c457c6b]{grid-template-columns:1fr;gap:32px;padding-top:0}.portrait[data-v-5c457c6b]{order:-1;width:calc(100% + 2 * var(--pad));max-width:none;max-height:560px;aspect-ratio:1;margin:0 calc(-1 * var(--pad)) -40px;border-radius:0;object-position:center 30%;-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent);mask-image:linear-gradient(to bottom,#000 55%,transparent)}}.section-head[data-v-bdb2d4d5]{padding-bottom:24px}.section-note[data-v-bdb2d4d5]{margin-top:12px;font-size:.92rem;color:var(--ink-2)}.section-title[data-v-bdb2d4d5]{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.25rem,4.2vw,3.25rem);letter-spacing:-.015em;line-height:1}.section-title[data-v-bdb2d4d5]:before{content:"";display:inline-block;width:3px;height:.62em;margin-right:.32em;border-radius:2px;background:var(--accent-color);vertical-align:baseline}.paper[data-v-3aacf37c]{--tile-w: 320px}.media[data-v-3aacf37c]{aspect-ratio:2 / 1;padding:10px;overflow:hidden;background:var(--well)}.media img[data-v-3aacf37c]{max-height:100%;mix-blend-mode:multiply;transition:transform .35s ease}a.media:hover img[data-v-3aacf37c]{transform:scale(1.04)}.row-title a[data-v-3aacf37c]{text-decoration:none;transition:color .2s ease}.row-title a[data-v-3aacf37c]:hover{color:var(--accent-color)}.authors[data-v-3aacf37c]{margin-top:6px;font-size:.93rem;color:var(--ink-2)}.authors .me[data-v-3aacf37c]{color:var(--ink);font-weight:600}.journal[data-v-3aacf37c]{margin-top:2px;font-size:.85rem;color:var(--ink-3)}.award[data-v-3aacf37c]{margin-top:10px;color:var(--ink-2)}.paper-links[data-v-3aacf37c]{margin-top:14px}@media (max-width: 1000px){.paper[data-v-3aacf37c]{--tile-w: 240px}}@media (max-width: 600px){.paper[data-v-3aacf37c]{gap:18px}.media[data-v-3aacf37c]{aspect-ratio:5 / 2}}.item[data-v-b972604e]{--row-pad: 26px;--tile-w: 112px}.logo[data-v-b972604e]{aspect-ratio:7 / 4;padding:14px;background:var(--paper-2)}.logo-for-dark[data-v-b972604e],:root[data-bs-theme=dark] .logo-for-light[data-v-b972604e]{display:none}:root[data-bs-theme=dark] .logo-for-dark[data-v-b972604e]{display:block}.logo img[data-v-b972604e]{max-height:32px}.item-org[data-v-b972604e]{margin-top:2px;font-size:.93rem;color:var(--ink-2)}.details[data-v-b972604e]{margin-top:14px;font-size:.95rem;color:var(--ink-2)}.details.prose[data-v-b972604e]{max-width:75ch}.details li[data-v-b972604e]{position:relative;padding-left:18px}.details li+li[data-v-b972604e]{margin-top:6px}.details li[data-v-b972604e]:before{content:"";position:absolute;left:0;top:.75em;width:8px;height:1px;background:var(--ink-3)}.courses[data-v-b972604e]{column-count:2;column-gap:2rem}.courses li[data-v-b972604e]{break-inside:avoid}.course-code[data-v-b972604e]{margin-left:6px;white-space:nowrap}@media (max-width: 600px){.item[data-v-b972604e]{gap:16px}.logo[data-v-b972604e]{width:var(--tile-w)}.courses[data-v-b972604e]{column-count:1}}.footer[data-v-2b2ca048]{margin-top:var(--section-gap);border-top:1px solid var(--line)}.footer-inner[data-v-2b2ca048]{display:flex;align-items:center;justify-content:space-between;gap:24px 40px;padding:36px 0 44px}.footer-name[data-v-2b2ca048]{font-weight:600;letter-spacing:-.01em}.footer-links[data-v-2b2ca048]{display:flex;flex-wrap:wrap;gap:8px 22px}.footer-links a[data-v-2b2ca048]{font-size:.9rem;color:var(--ink-2);text-decoration:none;transition:color .2s ease}.footer-links a[data-v-2b2ca048]:hover{color:var(--accent-color)}@media (max-width: 760px){.footer-inner[data-v-2b2ca048]{flex-direction:column;align-items:flex-start}}
