    :root { --paper:#f7f6f2; --ink:#242c29; --muted:#626b65; --green:#2c5147; --line:#dbdfd7; --panel:#eeeee6; }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; scroll-padding-top:35px; }
    body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.75 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; -webkit-font-smoothing:antialiased; }
    a { color:var(--green); text-decoration-thickness:1px; text-underline-offset:5px; }
    a:hover { color:#132e26; }
    a:focus-visible, summary:focus-visible { outline:3px solid #b77b3d; outline-offset:6px; border-radius:2px; }
    .skip { position:absolute; top:-100px; left:20px; padding:8px 16px; background:white; z-index:10; }
    .skip:focus { top:10px; }
    .shell { max-width:1130px; margin:auto; padding:0 44px; }
    header { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:29px 0; border-bottom:1px solid var(--line); }
    .brand { font:600 19px Georgia,serif; text-decoration:none; color:var(--ink); }
    .brand span { color:#8a958b; margin-left:6px; }
    nav { display:flex; flex-wrap:wrap; gap:25px; font-size:13px; }
    nav a { color:var(--muted); text-decoration:none; }
    nav a:hover { text-decoration:underline; }
    .layout { display:grid; grid-template-columns:245px minmax(0,1fr); gap:76px; padding:64px 0 80px; }
    aside { align-self:start; }
    .portrait { width:190px; aspect-ratio:1; display:grid; place-items:center; background:var(--panel); border:1px solid var(--line); border-radius:50%; position:relative; overflow:hidden; margin-bottom:28px; }
    .portrait img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:50% 38%; }
    .profile-name { margin:0 0 4px; font:24px/1.3 Georgia,serif; }
    .profile-note { color:var(--muted); margin:0; font-size:14px; }
    .profile-links { margin-top:26px; display:flex; flex-direction:column; align-items:start; gap:8px; font-size:14px; }
    .side-note { border-top:1px solid var(--line); padding-top:20px; margin-top:29px; color:var(--muted); font-size:12px; max-width:200px; }
    .eyebrow { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--green); font-weight:650; }
    .eyebrow:before { content:""; width:22px; height:1px; background:var(--green); }
    h1 { font:normal clamp(40px,5vw,59px)/1.13 Georgia,"Times New Roman",serif; letter-spacing:-2px; margin:21px 0 25px; }
    .intro { font-size:18px; line-height:1.85; color:#4e5a53; max-width:610px; }
    .intro p { margin:0 0 17px; }
    .actions { display:flex; flex-wrap:wrap; align-items:center; gap:22px; margin-top:27px; font-size:13px; }
    .button { display:inline-flex; align-items:center; gap:26px; background:var(--green); color:#fff; border:1px solid var(--green); text-decoration:none; padding:10px 18px; border-radius:3px; }
    .button:hover { background:#203e35; color:#fff; }
    section + section { margin-top:52px; }
    .section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); padding-bottom:12px; margin-bottom:24px; }
    h2 { font:normal 27px/1.3 Georgia,serif; margin:0; letter-spacing:-.5px; }
    .number { color:#929b91; font:12px ui-monospace,monospace; }
    .entry { display:grid; grid-template-columns:95px minmax(0,1fr); gap:22px; margin:25px 0; }
    .date { color:var(--muted); font-size:12px; padding-top:3px; }
    .work-timeline .entry { position:relative; margin:0; padding-bottom:30px; }
    .work-timeline .entry:last-child { padding-bottom:0; }
    .work-timeline .date { position:relative; padding-right:17px; }
    .work-timeline .date::after { content:""; position:absolute; right:-4px; top:8px; width:8px; height:8px; border-radius:50%; background:#8b9a8e; }
    .work-timeline .entry:not(:last-child)::before { content:""; position:absolute; left:94px; top:19px; bottom:-5px; width:2px; background:var(--line); }
    @media(max-width:640px) { .work-timeline .entry:not(:last-child)::before { left:74px; } }
    h3 { font-size:15px; font-weight:600; line-height:1.55; margin:0 0 5px; }
    .entry p,.publication p,.project p { margin:4px 0; font-size:14px; color:var(--muted); }
    .publication { padding:0 0 23px; }
    .publication:last-child { padding:0; }
    .tag { display:inline-block; color:var(--green); font-size:10px; letter-spacing:1px; text-transform:uppercase; margin-bottom:9px; }
    details { margin-top:12px; font-size:13px; }
    summary { cursor:pointer; color:var(--green); width:fit-content; }
    details p { padding:12px 15px; background:var(--panel); border-left:2px solid #a8b5a6; }
    .project { border:1px solid var(--line); border-radius:4px; padding:22px 25px; background:#f0f1ea; }
    .project-head { display:flex; justify-content:space-between; align-items:baseline; gap:20px; }
    .project-head a { font-size:13px; white-space:nowrap; }
    .project h3 { font:21px Georgia,serif; }
    .contact { background:var(--panel); padding:25px; border-radius:4px; }
    .contact p { margin:10px 0 0; font-size:14px; color:var(--muted); }
    .contact a { overflow-wrap:anywhere; }
    .contact-links, .paper-links { display:flex; flex-wrap:wrap; gap:12px 22px; margin-top:14px; font-size:13px; }
    .honor { color:var(--green); font-weight:600; }
    footer { border-top:1px solid var(--line); padding:23px 0 30px; display:flex; justify-content:space-between; gap:20px; color:var(--muted); font-size:12px; }
    @media(min-width:1000px) { aside { position:sticky; top:40px; } }
    @media(max-width:850px) { .layout { grid-template-columns:190px minmax(0,1fr); gap:38px; } .portrait { width:155px; } .shell { padding:0 28px; } }
    @media(max-width:640px) { .shell { padding:0 23px; } header { align-items:flex-start; flex-direction:column; gap:15px; padding:22px 0; } nav { gap:20px; font-size:12px; } .layout { display:block; padding:33px 0 45px; } aside { display:grid; grid-template-columns:78px 1fr; gap:0 19px; margin-bottom:40px; align-items:center; } .portrait { width:78px; margin:0; grid-row:1 / 3; } .portrait span { font-size:30px; letter-spacing:-1px; } .profile-name { font-size:22px; } .profile-note { font-size:12px; } .profile-links,.side-note { display:none; } h1 { font-size:42px; } .intro { font-size:16px; } section + section { margin-top:38px; } .entry { grid-template-columns:75px minmax(0,1fr); gap:15px; } .project { padding:20px; } footer { flex-wrap:wrap; } }
    @media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
    @media print { body { background:white; font-size:12px; } .shell { max-width:none; padding:0; } header, .actions, .profile-links, .skip { display:none; } .layout { padding:20px 0; gap:30px; grid-template-columns:160px 1fr; } aside { position:static; } .portrait { width:120px; } section { break-inside:avoid; } }
    .news-list, .blog-list { list-style:none; margin:0; padding:0; }
    .news-item { display:grid; grid-template-columns:64px minmax(0,1fr); gap:16px; padding:14px 0; border-bottom:1px solid var(--line); }
    .news-item:last-child { border-bottom:0; }
    .news-item a { text-decoration:none; }
    .news-item a:hover { text-decoration:underline; }
    .news-item small { display:block; color:var(--muted); font-size:12px; margin-top:2px; }
    .section-heading .all-news { font-size:12px; white-space:nowrap; }
    nav a[aria-current="page"] { color:var(--green); text-decoration:underline; }
    .journal { max-width:790px; margin:auto; padding:58px 0 80px; min-height:70vh; }
    .journal h1 { font-size:clamp(34px,5vw,52px); letter-spacing:-1.5px; }
    .journal-lead { max-width:560px; color:var(--muted); font-size:17px; }
    .blog-list { margin-top:40px; }
    .blog-item { padding:26px 0; border-top:1px solid var(--line); }
    .blog-item h2 { font-size:26px; margin:7px 0 12px; }
    .blog-item h2 a { text-decoration:none; }
    .blog-item h2 a:hover { text-decoration:underline; }
    .blog-item p { color:var(--muted); margin:0 0 12px; }
    .blog-item .read-story { font-size:13px; }
    .event-meta { display:flex; flex-wrap:wrap; gap:8px 18px; font-size:12px; color:var(--muted); }
    .event-meta .event-kind { color:var(--green); }
    .back-link { font-size:13px; }
    .event-content { margin-top:30px; font-size:17px; line-height:1.9; overflow-wrap:anywhere; }
    .event-content h2 { margin:32px 0 14px; }
    .event-content h3 { margin:26px 0 12px; font-size:19px; }
    .event-content img, .event-cover img { display:block; max-width:100%; height:auto; border-radius:4px; }
    .event-content blockquote { margin:24px 0; padding-left:20px; border-left:2px solid var(--green); color:var(--muted); }
    .event-content pre { overflow:auto; background:var(--panel); padding:16px; font-size:14px; }
    .event-cover { margin:30px 0; }
    .event-cover figcaption { margin-top:8px; font-size:13px; color:var(--muted); }
    .event-end { margin-top:45px; border-top:1px solid var(--line); padding-top:22px; }
    @media(max-width:640px) { .journal { padding:35px 0 50px; } .journal h1 { font-size:36px; } .news-item { grid-template-columns:45px minmax(0,1fr); gap:12px; } .blog-item h2 { font-size:23px; } }

.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Activity photo galleries preserve each photograph's full frame. */
.event-content .photo-gallery { columns:2; column-gap:18px; margin:24px 0; }
.photo-gallery figure { break-inside:avoid; margin:0 0 20px; }
.photo-gallery img { width:100%; }
.photo-gallery figcaption { margin-top:7px; font-size:13px; line-height:1.5; color:var(--muted); }
@media(max-width:640px) { .event-content .photo-gallery { columns:1; } }
