:root{--bg:#fcf8fb;--ink:#302630;--muted:#776b75;--accent:#ad1678;--line:#e9dce5;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.7 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:#f4d2e8}button,input{font:inherit}.header{border-bottom:1px solid var(--line);background:rgba(252,248,251,.97);position:sticky;top:0;z-index:3}.nav-wrap{max-width:1080px;margin:auto;padding:20px 30px;display:flex;align-items:center;justify-content:space-between}.wordmark{font:700 31px/1 var(--serif);letter-spacing:-2px}.wordmark span,.period{color:var(--accent)}nav{display:flex;gap:30px;font-size:13px}nav a{padding:4px 0;color:var(--muted)}nav a:hover{color:var(--ink)}.page{max-width:1080px;margin:auto;padding:0 30px}.hero{display:grid;grid-template-columns:1.65fr 1fr;gap:76px;padding:86px 0 78px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.55px;color:var(--accent);margin:0 0 20px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin:0 6px 2px 0}h1{font:normal clamp(48px,5.3vw,65px)/1.1 var(--serif);letter-spacing:-2.9px;margin:0 0 23px}.lead{font:25px/1.4 var(--serif);letter-spacing:-.3px;margin:0 0 24px}.bio{font-size:14px;line-height:1.85;color:var(--muted);margin:0 0 14px}abbr{text-decoration:none}.hero-links{display:flex;align-items:center;gap:25px;margin-top:29px;font-size:12px;font-weight:500}.hero-links a{display:flex;gap:16px;align-items:center}.primary-link{background:var(--accent);color:#fff;padding:11px 17px;border-radius:4px}.primary-link:hover{background:#89105d;color:white}.profile{padding-top:5px}.photo-frame{border-radius:7px;overflow:hidden;background:#f0deea;aspect-ratio:1.14}.photo-frame img{width:100%;height:100%;display:block;object-fit:cover;object-position:32% center}.photo-note{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.2px;color:var(--muted);margin-top:12px}.photo-note span:last-child{font-family:monospace;font-size:8px}.interests{border-top:1px solid var(--line);margin-top:27px;padding-top:21px}.interests .eyebrow{margin-bottom:12px}.tags{display:flex;flex-wrap:wrap;gap:7px}.tags span{font-size:10px;border:1px solid #e9d7e3;border-radius:4px;padding:4px 9px;color:#796273}.section{border-top:1px solid var(--line);padding:51px 0 60px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px}.section-heading .eyebrow{margin-bottom:9px}h2{font:normal 34px/1.2 var(--serif);letter-spacing:-1px;margin:0}.section-note{font-size:11px;color:var(--muted);padding-bottom:3px}.publication-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:15px}.search{display:flex;align-items:center;border:1px solid var(--line);border-radius:4px;padding:4px 12px;gap:9px;background:#fff;width:360px}.search span{font-size:21px;color:var(--muted)}.search input{width:100%;border:0;background:transparent;font-size:12px;padding:5px 0;color:var(--ink)}.search input:focus{outline:none}.search:focus-within{outline:2px solid var(--accent);outline-offset:2px}#result-count{font-size:11px;color:var(--muted)}.year-group{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.year-group>summary{display:flex;align-items:center;gap:12px;padding:18px 0;font:22px var(--serif)}.year-group>summary .count{font:10px/1.5 -apple-system,BlinkMacSystemFont,sans-serif;color:var(--muted);background:#f3e7ef;padding:3px 8px;border-radius:20px}.plus{margin-left:auto;font:20px sans-serif;color:var(--muted)}details[open]>summary .plus{transform:rotate(45deg)}.papers{margin:0;padding:0 0 12px 75px;list-style:none}.paper{padding:19px 0;border-top:1px solid #eee3eb;line-height:1.65}.paper h3{font-size:14px;font-weight:550;line-height:1.6;margin:0 0 6px;max-width:770px}.paper p{font-size:11px;color:var(--muted);margin:0;line-height:1.8}.paper strong{color:var(--accent);font-weight:600}.paper-link{font-size:11px;display:inline-block;color:var(--accent);margin-top:8px;border-bottom:1px solid #d9aecb}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.feature{background:#f9edf5;border:1px solid #ecd4e3;padding:25px 29px 22px;border-radius:5px;transition:background .2s}.feature:hover{background:#f4dfed}.feature-top{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.1px;color:var(--accent)}.feature-top span:last-child{font-size:18px;line-height:1}.feature h3{font:normal 29px/1.2 var(--serif);letter-spacing:-.6px;margin:28px 0 14px}.feature p{font-size:12px;max-width:270px;color:var(--muted);margin:0 0 23px}.read{font-size:11px;color:var(--accent)}.read span{margin-left:8px}.more-stories{margin-top:15px}.more-stories summary{display:flex;justify-content:space-between;padding:16px 0;font-size:12px;color:var(--muted)}.story-list a{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:16px 0;font-size:12px}.story-list span{color:var(--muted);white-space:nowrap;font-size:10px}footer{border-top:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:30px 0 40px}footer p,footer>a:last-child{font-size:10px;color:var(--muted)}footer>a:last-child{margin-left:auto}.skip{position:fixed;left:20px;top:-60px;background:var(--accent);color:#fff;z-index:10;padding:10px}.skip:focus{top:10px}[hidden]{display:none!important}@media(min-width:1300px){.hero{padding-top:95px}}@media(max-width:760px){.nav-wrap{padding:18px 22px}nav{gap:16px;font-size:11px}nav a:nth-child(3){display:none}.page{padding:0 24px}.hero{grid-template-columns:1fr;gap:34px;padding:49px 0}.hero .eyebrow{font-size:9px;letter-spacing:1px}h1{font-size:51px}.profile{display:grid;grid-template-columns:1fr 1fr;gap:12px 22px}.photo-frame{grid-column:1;grid-row:1}.photo-note{grid-column:1;font-size:8px;margin-top:0}.photo-note span:last-child{display:none}.interests{grid-column:2;grid-row:1;margin:0;padding:0;border:0;align-self:center}.tags{gap:5px}.tags span{font-size:9px;padding:3px 7px}.section{padding:36px 0 42px}h2{font-size:29px}.section-note{display:none}.papers{padding-left:0}.search{width:100%}.publication-toolbar{flex-wrap:wrap}.feature{padding:22px}.feature h3{font-size:26px}.story-list a{display:block}.story-list span{display:block;margin-top:5px}}@media(max-width:420px){nav{gap:12px;font-size:10px}.hero-links{gap:18px;font-size:11px}.feature-grid{grid-template-columns:1fr}.profile{gap:12px}.photo-note{font-size:8px}.eyebrow{font-size:9px}.tags span{font-size:8px}h1{font-size:47px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{.header,.publication-toolbar,.hero-links,footer>a:last-child{display:none}body{background:white}.page{max-width:none}.hero{padding-top:0}.section{break-inside:avoid}.paper{break-inside:avoid}}

/* Editorial refinements. */
body {
  background: radial-gradient(ellipse at 90% 7%, #f5dfed 0, transparent 34%), var(--bg);
}
.header { background: rgba(252, 248, 251, .88); backdrop-filter: blur(18px); }
.hero { padding-top: 62px; padding-bottom: 55px; gap: 65px; }
.hero .lead em { font-weight: normal; color: var(--accent); }
.hero-links { flex-wrap: wrap; gap: 16px 23px; }
.photo-frame { border-radius: 90px 9px 9px 9px; box-shadow: 14px 14px 0 #efdae7; }
.profile { padding-right: 12px; }
.photo-note { margin-top: 23px; }
.tags span { border-radius: 20px; background: rgba(255,255,255,.55); }
.primary-link { border-radius: 30px; padding: 12px 20px; }
h2 em { color: var(--accent); font-weight: normal; }
.section { padding-top: 43px; }
.experience-section { padding-bottom: 46px; }
.feature { border-radius: 12px; position: relative; overflow: hidden; background: linear-gradient(135deg, #f9edf5, #f0ddea); }
.feature::after { content: ''; pointer-events: none; position: absolute; width: 160px; height: 160px; right: -75px; bottom: -80px; border: 1px solid #caa3bd8a; border-radius: 50%; box-shadow: 0 0 0 20px #caa3bd14, 0 0 0 40px #caa3bd0f, 0 0 0 60px #caa3bd09; }
.feature:hover { transform: translateY(-3px); }
.search { border-radius: 24px; }
nav a[aria-current="location"] { color: var(--accent); box-shadow: 0 1px 0 var(--accent); }
@media (min-width: 1300px) { .hero { padding-top: 65px; } }
@media (max-width: 760px) {
  nav a:nth-child(3) { display: block; }
  nav a:nth-child(4) { display: none; }
  .hero { padding-top: 42px; padding-bottom: 42px; gap: 28px; }
  .profile { padding-right: 7px; }
  .photo-frame { border-radius: 45px 7px 7px 7px; box-shadow: 7px 7px 0 #efdae7; }
  .photo-note { margin-top: 7px; }
}
@media (max-width: 520px) {
  .hero .lead { font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) { .feature { transition: none; } .feature:hover { transform: none; } }


/* A compact duration chart with a shared horizontal time scale. */
.experience-section { padding-top: 26px; padding-bottom: 23px; }
.experience-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.experience-heading h2 { font-size: 25px; letter-spacing: -.5px; }
.career-scroll { padding: 3px 0 8px; }
.career-scroll:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.career-chart { display: block; width: 100%; min-width: 0; height: auto; overflow: visible; }
.career-grid { stroke: var(--line); stroke-width: 1; stroke-dasharray: 2 4; }
.career-tick { fill: var(--muted); font: 10px -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
.career-lane { fill: var(--muted); font: 8px -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; letter-spacing: .5px; }
.career-label { fill: var(--ink); font: 11px -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
.period-bar, .career-milestone { fill: #c292b1; }
.period-bar.present { fill: var(--accent); }
.current-label { fill: var(--accent); font-weight: 600; }
.career-details { margin-top: 10px; }
.career-details summary { display: inline-flex; align-items: center; gap: 10px; color: var(--muted); font-size: 11px; padding: 5px 0; }
.career-details[open] summary span { transform: rotate(45deg); }
.career-details dl { margin: 13px 0 0; }
.career-details dl>div { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 12px 0; border-top: 1px solid var(--line); font-size: 12px; }
.career-details dt { font-weight: 500; }
.career-details dd { margin: 0; }
.career-details dd span { color: var(--muted); font-size: 11px; }
@media (max-width: 760px) {
  .experience-heading h2 { font-size: 23px; }
  .career-details dl>div { grid-template-columns: 1fr; gap: 4px; }
}
@media print {
  .career-scroll { overflow: visible; }
  .career-chart { min-width: 0; }
}
.hero-links .journey-link { order: -1; width: 100%; font-size: 12px; color: var(--accent); }

/* A plain academic introduction. */
body { background: var(--bg); }
.header { background: var(--bg); backdrop-filter: none; }
.nav-wrap { padding-top: 17px; padding-bottom: 17px; gap: 25px; }
.site-identity h1 { font: 600 23px/1.25 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; letter-spacing: -.45px; margin: 0 0 4px; }
.site-identity p { margin: 0; font-size: 11px; line-height: 1.5; color: var(--muted); }
.site-identity p a { color: var(--accent); }
.hero { grid-template-columns: minmax(0, 1fr) 270px; gap: 48px; padding: 32px 0; align-items: center; }
.bio { max-width: 650px; margin-bottom: 13px; line-height: 1.8; }
.bio:last-child { margin-bottom: 0; }
.profile { display: block; padding: 0; }
.profile-photo { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: 32% center; border-radius: 4px; border: 1px solid var(--line); }
h2, .experience-heading h2 { font: 600 21px/1.3 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; letter-spacing: -.3px; }
.section-heading { margin-bottom: 20px; }
@media (min-width: 1300px) { .hero { padding-top: 32px; } }
@media (max-width: 600px) {
  .nav-wrap { flex-wrap: wrap; gap: 13px; }
  .site-identity { width: 100%; }
  .site-identity h1 { font-size: 22px; }
  nav { width: 100%; gap: 22px; }
  nav a:nth-child(4) { display: block; }
  html { scroll-padding-top: 145px; }
  .hero { grid-template-columns: minmax(0, 1fr); gap: 22px; padding: 25px 0; }
  .intro { display: block; }
  .profile { grid-column: auto; grid-row: auto; order: -1; max-width: 270px; width: 100%; }
  .bio { font-size: 13px; }
}

.career-chart-mobile { display: none; }
@media (max-width: 800px) {
  .career-chart-desktop { display: none; }
  .career-chart-mobile { display: block; max-height: 185px; }
  .career-chart-mobile .career-label { font-size: 9px; }
  .career-chart-mobile .career-lane { font-size: 8px; letter-spacing: 0; }
}
@media (max-width: 800px) {
  .career-chart-mobile { height: 170px; max-height: none; }
}
@media (max-width: 600px) {
  .hero { grid-template-columns: minmax(0, 1fr) 130px; gap: 18px; align-items: start; }
  .profile { order: 0; }
}
.photo-controls { display: flex; align-items: center; justify-content: space-between; margin-top: 6px; }
.photo-controls button { border: 0; background: transparent; color: var(--muted); cursor: pointer; min-width: 30px; min-height: 30px; padding: 4px; }
.photo-controls button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.photo-dots { display: flex; justify-content: center; flex-wrap: wrap; }
.photo-dots button { min-width: 24px; }
.photo-dots button::after { content: ''; display: block; width: 5px; height: 5px; margin: auto; border-radius: 50%; background: var(--line); }
.photo-dots button[aria-pressed="true"]::after { background: var(--accent); }
.career-break { fill: var(--bg); }
.career-break-mark { font-size: 12px; fill: var(--accent); }
.chart-note { font-size: 10px; color: var(--muted); text-align: right; margin: 0 0 8px; }
.paper-illustrated { display: grid; grid-template-columns: 156px minmax(0,1fr); gap: 22px; align-items: start; }
.paper-thumbnail { display: block; background: #fff; }
.paper-thumbnail img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; }
.paper-copy { min-width: 0; }
@media (max-width: 600px) {
  .paper-illustrated { grid-template-columns: 92px minmax(0,1fr); gap: 14px; }
}

.feature { padding: 0 0 20px; overflow: hidden; background: transparent; }
.feature::before, .feature::after { display: none; }
.feature .story-image { width: 100%; height: 180px; object-fit: cover; display: block; margin-bottom: 18px; }
.feature-top, .feature h3, .feature p, .feature .read { margin-left: 18px; margin-right: 18px; }
.feature h3 { font: 600 20px/1.3 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; letter-spacing: -.3px; }
.feature h3 br { display: none; }
.story-list a { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 16px; align-items: center; }
.story-list .story-image { width: 96px; height: 60px; object-fit: contain; background: white; }
nav a:nth-child(3), nav a:nth-child(4) { display: block; }
@media (max-width: 800px) { .nav-wrap { flex-wrap: wrap; gap: 12px; } .site-identity { width: 100%; } nav { width: 100%; gap: 22px; } html { scroll-padding-top: 150px; } }
@media (max-width: 600px) { .story-list a { grid-template-columns: 80px minmax(0, 1fr); gap: 12px; } .story-list .story-image { width: 80px; grid-row: span 2; } .story-list span { grid-column: 2; margin: 0; } .feature .story-image { height: 140px; } }

/* Shared compact identity bar and section tabs. */
.header { background: #fffcfe; border-bottom: 1px solid #e8d6e2; box-shadow: 0 3px 16px #30263005; }
.nav-wrap { gap: 24px; padding-top: 16px; padding-bottom: 16px; }
.site-identity { padding-left: 13px; border-left: 3px solid var(--accent); flex-shrink: 0; }
.site-identity h1 { font-size: 22px; letter-spacing: -.55px; margin-bottom: 3px; }
.header nav { display: flex; gap: 3px; padding: 4px; border: 1px solid #eadbe5; border-radius: 10px; background: #f6edf3; font-size: 12px; }
.header nav a { display: flex; align-items: center; justify-content: center; padding: 7px 12px; border-radius: 6px; color: #695c66; font-weight: 500; white-space: nowrap; line-height: 1.5; transition: color .15s, background .15s; }
.header nav a:hover { background: #eddae6; color: #83105b; }
.header nav a[aria-current] { background: var(--accent); color: #fff; box-shadow: 0 1px 3px #75094c20; }
.header nav a:focus-visible { outline-offset: 2px; }
@media (max-width: 900px) {
  .nav-wrap { flex-wrap: wrap; gap: 13px; }
  .site-identity { width: 100%; }
  .header nav { width: 100%; }
  .header nav a { flex: 1; padding: 7px 6px; }
  html { scroll-padding-top: 155px; }
}
@media (max-width: 420px) {
  .nav-wrap { padding: 14px 18px; }
  .header nav { gap: 1px; font-size: 11px; padding: 3px; }
  .header nav a { padding: 8px 4px; }
}

/* A quiet personal link outside the research navigation. */
.header nav { margin-left: auto; }
.places-shortcut { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 30px; height: 34px; color: #a597a1; margin-left: -14px; border-radius: 6px; }
.places-shortcut:hover, .places-shortcut[aria-current] { color: var(--accent); background: #f6edf3; }
@media (max-width: 900px) {
  .header nav { width: calc(100% - 44px); margin-left: 0; }
  .places-shortcut { margin-left: -7px; }
}

/* Short image-led research cards. */
.feature { display: grid; grid-template-columns: 108px minmax(0, 1fr); grid-template-rows: auto auto 1fr auto; gap: 4px 15px; padding: 14px; border-radius: 8px; }
.feature .story-image { grid-column: 1; grid-row: 1 / -1; width: 108px; height: 100%; min-height: 108px; max-height: 145px; object-fit: cover; border-radius: 4px; margin: 0; }
.feature-top, .feature h3, .feature p, .feature .read { grid-column: 2; margin: 0; }
.feature-top { font-size: 8px; letter-spacing: .5px; }
.feature h3 { font-size: 16px; line-height: 1.3; }
.feature p { font-size: 11px; line-height: 1.55; max-width: none; }
.feature .read { font-size: 10px; margin-top: 3px; }
@media (max-width: 760px) { .feature-grid { grid-template-columns: 1fr; gap: 12px; } }
@media (max-width: 420px) { .feature { grid-template-columns: 84px minmax(0, 1fr); gap: 4px 12px; padding: 12px; } .feature .story-image { width: 84px; min-height: 100px; } }

.publication-scope { display: flex; gap: 4px; margin: -6px 0 16px; }
.publication-scope button { border: 0; border-radius: 5px; background: transparent; color: var(--muted); font-size: 12px; padding: 6px 11px; cursor: pointer; }
.publication-scope button[aria-pressed="true"] { color: var(--accent); background: #f0e0eb; }
.publication-scope button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
