:root{--paper:#f7f7f2;--ink:#182e32;--muted:#526367;--accent:#145c53;--line:#cdd6d1;--white:#fff;--wash:#e8eeea}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 "Segoe UI",Arial,sans-serif}a{color:inherit;text-underline-offset:5px}a:hover{color:var(--accent)}a:focus-visible{outline:3px solid var(--accent);outline-offset:5px}img{max-width:100%;display:block}.wrap{width:min(1160px,calc(100% - 80px));margin-inline:auto}.skip-link{position:absolute;top:-100px;left:20px;background:var(--white);padding:12px;z-index:10}.skip-link:focus{top:12px}.site-header{display:flex;justify-content:space-between;align-items:center;gap:28px;padding-block:28px;border-bottom:1px solid var(--line)}.wordmark{text-decoration:none;font-size:19px;font-weight:700;letter-spacing:-.6px}.wordmark span{display:block;font:12px/1.6 "Segoe UI",Arial,sans-serif;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}nav{display:flex;gap:25px;align-items:center;flex-wrap:wrap}nav a{font-size:14px;text-decoration:none}nav a:hover{text-decoration:underline}.nav-cv{border:1px solid var(--ink);border-radius:4px;padding:8px 15px}.eyebrow{font-size:12px;letter-spacing:1.7px;text-transform:uppercase;font-weight:700;color:var(--accent);margin:0 0 20px}.hero{display:grid;grid-template-columns:1.4fr .8fr;gap:70px;align-items:center;padding-block:78px 66px}.hero h1{font:clamp(42px,4.7vw,66px)/1.08 Georgia,"Times New Roman",serif;letter-spacing:-2.5px;font-weight:400;margin:0 0 26px}.hero h1 em{font-weight:400;color:var(--accent)}.intro{font-size:18px;max-width:620px;color:var(--muted);margin-bottom:26px}.hero-photo{margin:0;position:relative;padding:0 0 18px 18px}.hero-photo:before{content:"";position:absolute;inset:24px 18px 0 0;background:#dce5de;border-radius:5px;z-index:-1}.hero-photo img{width:100%;height:360px;object-fit:cover;object-position:center 30%;border-radius:4px;filter:saturate(.8)}.hero-photo figcaption{font-size:12px;padding-top:12px;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:12px}.button{display:inline-block;text-decoration:none;font-size:14px;font-weight:600;padding:11px 20px;border:1px solid var(--ink);border-radius:4px}.button.primary{background:var(--ink);color:var(--white)}.button:hover{background:var(--wash);color:var(--ink)}.availability{font-size:13px;margin-top:22px;color:var(--accent)}.availability:before{content:"";display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;margin-right:8px}.research-strip{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:20px 0;border-block:1px solid var(--line);font-size:13px;color:var(--muted)}.research-strip strong{color:var(--ink);font-weight:600}.section{padding-block:65px;border-bottom:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:32px}.section-heading h2,.contact h2{font:400 clamp(30px,3vw,40px)/1.2 Georgia,serif;letter-spacing:-1px;margin:0}.section-heading .eyebrow{margin-bottom:10px}.section-heading>a{font-size:14px;white-space:nowrap}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.project{border-top:3px solid var(--accent);padding-top:20px;display:flex;flex-direction:column}.project .number{font-size:12px;color:var(--muted);letter-spacing:1px}.project h3{font:400 27px/1.2 Georgia,serif;margin:15px 0}.project p{font-size:15px;color:var(--muted);margin:0 0 16px}.project .methods{font-size:12px;color:var(--accent);margin-top:auto;padding-top:8px}.project a{font-size:14px;font-weight:600}.publication{display:grid;grid-template-columns:170px 1fr 95px;gap:25px;border-top:1px solid var(--line);padding-block:24px}.publication .pub-meta{font-size:13px;color:var(--accent)}.publication .pub-meta span{display:block;color:var(--muted);margin-top:5px}.publication h3{font-size:17px;line-height:1.5;margin:0 0 5px;font-weight:600}.publication p{margin:0;color:var(--muted);font-size:14px}.publication>a{font-size:14px;justify-self:end;align-self:start}.practice{display:grid;grid-template-columns:1fr 1.2fr;gap:70px}.practice h2{font:400 36px/1.2 Georgia,serif;margin:0 0 22px}.practice p{font-size:16px;color:var(--muted)}.skill-row{display:grid;grid-template-columns:130px 1fr;gap:16px;border-top:1px solid var(--line);padding:17px 0;font-size:14px}.skill-row strong{font-weight:600}.skill-row span{color:var(--muted)}.notes{display:grid;grid-template-columns:1fr 1fr;gap:50px}.notes h3{font:400 25px/1.3 Georgia,serif;margin:0 0 15px}.notes p{font-size:15px;color:var(--muted)}.notes a{font-size:14px}.contact{margin-block:60px;background:var(--ink);color:var(--white);padding:42px;display:flex;align-items:center;justify-content:space-between;gap:35px;border-radius:5px}.contact .eyebrow{color:#bad7cb}.contact p{font-size:15px;max-width:570px;color:#dae3df}.contact .button{background:var(--paper);border-color:var(--paper);color:var(--ink);white-space:nowrap}.social-links{display:flex;gap:22px;flex-wrap:wrap;font-size:13px}.social-links a:hover{color:#bad7cb}.site-footer{border-top:1px solid var(--line);padding-block:24px 35px;display:flex;justify-content:space-between;gap:25px}.site-footer p{font-size:13px;margin:0}.site-footer p span{display:block;color:var(--muted);font-size:12px}.site-footer nav{gap:20px}.site-footer nav a{font-size:12px}
@media(min-width:1500px){.hero{padding-block:95px 80px}}
@media(max-width:900px){.wrap{width:calc(100% - 48px)}.site-header{align-items:start;gap:20px}.site-header nav{gap:15px;justify-content:end}.hero{gap:35px;padding-block:50px}.hero h1{font-size:46px}.hero-photo img{height:300px}.project-grid{gap:20px}.practice{gap:35px}.publication{grid-template-columns:130px 1fr 75px;gap:15px}.site-footer{flex-direction:column}}
@media(max-width:620px){body{font-size:16px}.wrap{width:calc(100% - 36px)}.site-header{flex-direction:column;padding-block:20px;gap:18px}.site-header nav{justify-content:start;gap:17px}.site-header nav a{font-size:12px}.nav-cv{padding:5px 9px}.hero{grid-template-columns:1fr;padding-block:38px;gap:25px}.hero h1{font-size:43px;letter-spacing:-1.6px}.intro{font-size:16px}.hero-photo{max-width:300px}.hero-photo img{height:260px}.research-strip{gap:10px;flex-direction:column}.section{padding-block:40px}.section-heading{align-items:start;flex-direction:column;gap:15px}.project-grid,.practice,.notes{grid-template-columns:1fr;gap:30px}.project{padding-bottom:10px}.publication{grid-template-columns:1fr;gap:10px}.publication>a{justify-self:start}.publication .pub-meta span{display:inline;margin-left:8px}.skill-row{grid-template-columns:100px 1fr}.contact{padding:26px;margin-block:35px;align-items:start;flex-direction:column;gap:15px}.social-links{gap:15px}.site-footer nav{gap:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Connect the professional story to the research without adding another card grid. */
.story {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 70px;
}
.story h2 {
  font: 400 clamp(30px, 3vw, 40px)/1.2 Georgia, serif;
  letter-spacing: -1px;
  margin: 0 0 24px;
}
.story a { font-size: 14px; }
.story p:not(.eyebrow) { color: var(--muted); margin: 0 0 18px; }
.story .story-thread {
  font-size: 12px;
  color: var(--accent);
  border-top: 1px solid var(--line);
  padding-top: 18px;
}
.story-thread span { padding-inline: 6px; }
.section-intro { max-width: 800px; color: var(--muted); margin: -10px 0 30px; }
.publication strong { color: var(--ink); font-weight: 600; }
@media (max-width: 900px) { .story { gap: 35px; } }
@media (max-width: 620px) { .story { grid-template-columns: 1fr; gap: 24px; } }

/* Press coverage and dated research announcements. */
.updates-layout { display: grid; grid-template-columns: .9fr 1.2fr; gap: 44px; align-items: start; }
.press-feature { background: var(--wash); border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: 4px; padding: 30px; }
.press-feature .eyebrow { margin-bottom: 12px; }
.press-date { font-size: 12px; color: var(--muted); }
.press-feature h3 { font: 400 32px/1.2 Georgia, serif; margin: 22px 0; }
.press-feature > p:not(.eyebrow):not(.press-date) { font-size: 15px; color: var(--muted); }
.press-summary { border-top: 1px solid var(--line); padding-top: 20px; }
.press-links { display: flex; flex-wrap: wrap; gap: 14px 22px; margin-top: 24px; }
.press-links a { font-size: 13px; font-weight: 600; }
.updates-list { list-style: none; padding: 0; margin: 0; }
.update-item { padding: 22px 0; border-top: 1px solid var(--line); }
.update-item:first-child { padding-top: 0; border-top: 0; }
.update-meta { display: flex; flex-wrap: wrap; gap: 10px 18px; font-size: 11px; letter-spacing: .4px; text-transform: uppercase; }
.update-meta time { color: var(--muted); }
.update-meta > span { color: var(--accent); font-weight: 600; }
.update-item h3 { font-size: 17px; line-height: 1.4; margin: 10px 0 8px; font-weight: 600; }
.update-item p { font-size: 14px; color: var(--muted); margin: 0 0 10px; }
.update-item > a { font-size: 13px; }
@media (max-width: 900px) { .updates-layout { gap: 25px; } .press-feature { padding: 24px; } }
@media (max-width: 620px) { .updates-layout { grid-template-columns: 1fr; gap: 30px; } }

/* Keep complete scientific figures visible, with full-size images one click away. */
.press-paper-figure { margin: 20px 0; }
.press-paper-figure > a { display: block; border: 1px solid var(--line); border-radius: 4px; background: white; padding: 12px; }
.press-paper-figure img { width: 100%; height: auto; max-height: 300px; object-fit: contain; }
.press-paper-figure figcaption { margin-top: 8px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.update-item { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 20px; align-items: start; }
.update-image { display: flex; align-items: center; justify-content: center; background: white; border: 1px solid var(--line); padding: 8px; border-radius: 4px; }
.update-image:hover, .press-paper-figure > a:hover { border-color: var(--accent); }
.update-image img { width: 100%; height: 110px; object-fit: contain; }
.update-body { min-width: 0; }
.update-body > a { font-size: 13px; }
@media (min-width: 621px) and (max-width: 900px) { .update-item { grid-template-columns: 100px minmax(0, 1fr); gap: 14px; } .update-image img { height: 90px; } }
@media (max-width: 400px) { .update-item { grid-template-columns: 90px minmax(0, 1fr); gap: 12px; } .update-image img { height: 80px; } }
