:root{--paper:#fff;--paper-2:#f5f5f4;--ink:#0a0a0a;--ink-soft:#3a3a3a;--ink-faint:#9a9a9a;--line:#e6e6e4;--line-strong:#0a0a0a;--font-display:"Playfair Display", Georgia, "Times New Roman", serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--maxw:1180px;--gutter:clamp(1.1rem, 5vw, 4rem);--nav-h:72px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:17px;line-height:1.65}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}h1,h2,h3{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;margin:0 0 .5em;font-weight:600;line-height:1.08}a{color:var(--ink);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}img{max-width:100%;display:block}.container{width:100%;max-width:var(--maxw);padding-inline:var(--gutter);margin-inline:auto}.section{scroll-margin-top:var(--nav-h);border-top:1px solid var(--line);padding-block:clamp(3rem,8vw,6.5rem)}.section__head{grid-template-columns:auto 1fr;align-items:baseline;gap:1.25rem;margin-bottom:clamp(1.75rem,4vw,3rem);display:grid}.section__index{font-family:var(--font-body);letter-spacing:.1em;color:var(--ink-faint);padding-top:.4rem;font-size:.8rem;font-weight:600}.section__titles{min-width:0}.eyebrow{text-transform:uppercase;letter-spacing:.22em;color:var(--ink-faint);margin:0 0 .6rem;font-size:.7rem;font-weight:600}.section__title{margin:0;font-size:clamp(2rem,5vw,3.25rem)}.lead{color:var(--ink-soft);max-width:62ch;margin-top:1.1rem;font-size:1.12rem}.cs{text-align:center;min-height:100svh;padding:var(--gutter);background:var(--paper);justify-content:center;align-items:center;display:flex}.cs__frame{border:1px solid var(--ink);flex-direction:column;align-items:center;gap:1.1rem;padding:clamp(2rem,6vw,4rem) clamp(2rem,8vw,5.5rem);display:flex;position:relative}.cs__frame:before{content:"";border:1px solid var(--ink);pointer-events:none;position:absolute;inset:6px}.cs__name{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:0;font-size:clamp(2.5rem,10vw,6rem);font-weight:600;line-height:1}.cs__sub{text-transform:uppercase;letter-spacing:.3em;color:var(--ink-soft);margin:0;font-size:clamp(.72rem,2.2vw,.95rem);font-weight:500}.cs__dots span{animation:1.4s infinite both cs-blink}.cs__dots span:nth-child(2){animation-delay:.2s}.cs__dots span:nth-child(3){animation-delay:.4s}@keyframes cs-blink{0%,20%{opacity:0}50%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.cs__dots span{opacity:1;animation:none}}.nav{z-index:1000;background:color-mix(in srgb, var(--paper) 90%, transparent);-webkit-backdrop-filter:saturate(120%)blur(8px);backdrop-filter:saturate(120%)blur(8px);border-bottom:1px solid var(--line-strong);position:sticky;top:0}.nav__inner{min-height:var(--nav-h);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.nav__brand{font-family:var(--font-display);color:var(--ink);letter-spacing:.01em;font-size:1.6rem;font-weight:700}.nav__brand:hover{text-decoration:none}.nav__links{flex-wrap:wrap;gap:clamp(.9rem,2.5vw,2.25rem);display:flex}.nav__link{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.12em;border-bottom:2px solid #0000;padding:.3rem 0;font-size:.82rem;font-weight:500}.nav__link:hover{color:var(--ink);text-decoration:none}.nav__link.is-active{color:var(--ink);border-bottom-color:var(--ink)}.hero{grid-template-columns:1.1fr .9fr;align-items:center;gap:clamp(1.5rem,5vw,4.5rem);padding-block:clamp(3rem,8vw,6rem);display:grid}.hero__name{letter-spacing:-.02em;margin:0 0 1.4rem;font-size:clamp(3.5rem,12vw,7rem);line-height:.95}.hero__bio p{color:var(--ink-soft);max-width:50ch}.hero__portrait{position:relative}.hero__portrait img{aspect-ratio:4/5;object-fit:cover;filter:grayscale()contrast(1.04);background:var(--paper-2);width:100%}.hero__portrait figcaption{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-top:.6rem;font-size:.72rem}@media (width<=760px){.hero{grid-template-columns:1fr}.hero__portrait{order:-1;max-width:320px}.section__head{grid-template-columns:1fr;gap:.4rem}}.research-map{border:1px solid var(--line-strong);background:var(--paper-2);width:100%;height:clamp(360px,58vh,600px);margin-top:.5rem;overflow:hidden}.leaflet-container{font-family:var(--font-body);background:#fff}.leaflet-tile-pane{filter:grayscale()contrast(1.05)}.bw-pin{background:0 0;border:none}.bw-pin span{background:var(--ink);width:13px;height:13px;box-shadow:0 0 0 1px var(--ink), 0 1px 4px #00000059;border:2px solid #fff;border-radius:50%;transition:transform .12s;display:block}.bw-pin:hover span{transform:scale(1.35)}.leaflet-tooltip.pin-tip{border:1px solid var(--ink);white-space:normal;background:#fff;border-radius:0;padding:0;box-shadow:0 14px 40px -14px #0000008c}.leaflet-tooltip.pin-tip:before{display:none}.pin-tip img{object-fit:cover;filter:grayscale()contrast(1.05);width:196px;height:130px;display:block}.pin-tip__cap{font:600 .66rem/1.3 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);border-top:1px solid var(--line);padding:7px 9px 8px}.pin-tip__note{text-transform:none;letter-spacing:.01em;color:var(--ink-soft);margin-top:3px;font-weight:400;display:block}.pub-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:clamp(1.1rem,2.5vw,1.9rem);display:grid}.pub-card{border:1px solid var(--line);background:#fff;flex-direction:column;transition:border-color .15s,transform .15s;display:flex;overflow:hidden}.pub-card:hover{border-color:var(--ink);text-decoration:none;transform:translateY(-3px)}.pub-card__thumb{aspect-ratio:3/4;object-fit:cover;background:var(--paper-2);filter:grayscale();width:100%}.pub-card__body{padding:.9rem 1rem 1.15rem}.pub-card__title{font-family:var(--font-display);color:var(--ink);margin:0 0 .4rem;font-size:1.02rem;line-height:1.25}.pub-card__meta{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);font-size:.74rem}.footer{border-top:1px solid var(--line-strong);color:var(--ink-faint);letter-spacing:.04em;padding-block:3rem;font-size:.82rem}.footer__inner{text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}.footer a{color:var(--ink)}
