:root{--ink:#182829;--muted:#5c6b6c;--accent:#14645f;--accent-dark:#0e4d49;--pale:#edf4f0;--line:#dce6e1;--paper:#fff;--background:#f8faf7;--gold:#a77731;--footer:#eef3ef;--heading-font:inherit}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--background);color:var(--ink);font-family:system-ui,-apple-system,'Segoe UI','Microsoft YaHei',sans-serif;line-height:1.6}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible{outline:3px solid #e9ad59;outline-offset:3px}
img{max-width:100%}
.wrap{width:min(1180px,calc(100% - 48px));margin:auto}
.skip-link{position:absolute;left:-9999px;top:8px;background:var(--paper);padding:8px;z-index:10}
.skip-link:focus{left:8px}
.site-header{background:rgba(255,255,255,.95);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;backdrop-filter:blur(14px)}
.header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:inline-flex;align-items:center;gap:12px;color:var(--ink);font-size:1.05rem;font-weight:700;white-space:nowrap}
.brand:hover{text-decoration:none}
.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--accent);color:#fff;font-size:.85rem;letter-spacing:-.05em}
.site-header nav{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.site-header nav a{color:var(--ink);font-size:.91rem;font-weight:600}
.site-header nav a:hover{color:var(--accent)}
.site-header nav .language{padding:7px 12px;border:1px solid var(--line);border-radius:999px;color:var(--accent)}
.hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr);gap:60px;padding:64px 0 60px;align-items:center}
.eyebrow{text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.16em}
.hero h1{font-size:clamp(3rem,6vw,5.2rem);letter-spacing:-.065em;line-height:1.04;margin:16px 0 10px}
.hero-role{font-size:1.32rem;color:var(--accent-dark);font-weight:600;margin:0 0 22px}
.hero-intro{font-size:1.16rem;line-height:1.8;max-width:650px;color:var(--ink);margin-bottom:28px}
.hero-actions,.resource-links{display:flex;gap:10px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:11px 19px;border-radius:9px;font-size:.9rem;font-weight:700}
.button:hover{text-decoration:none;transform:translateY(-1px)}
.button.primary{background:var(--accent);color:#fff}
.button.secondary{border:1px solid var(--line);color:var(--accent-dark);background:var(--paper)}
.hero-side{position:relative;padding:0 18px 35px}
.portrait{display:block;width:100%;height:390px;object-fit:cover;object-position:center 25%;border-radius:20px 20px 80px 20px;box-shadow:0 20px 60px rgba(15,58,51,.13)}
.identity-card{position:absolute;right:0;bottom:0;width:82%;background:var(--paper);padding:18px 20px;border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 30px rgba(20,60,50,.09);font-size:.85rem}
.identity-card strong,.identity-card span{display:block}
.identity-card strong{color:var(--accent-dark);margin-bottom:4px}
.identity-card span{color:var(--muted)}
.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px;align-items:start}
.section{padding:34px 0;border-top:1px solid var(--line)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px}
.section-heading h2,.aside-card h2{font-size:1.65rem;letter-spacing:-.035em;line-height:1.2;margin:5px 0 0}
.more{font-weight:700;font-size:.88rem;white-space:nowrap}
.timeline{display:grid}
.timeline-row{display:grid;grid-template-columns:115px 1fr;gap:16px;padding:17px 0;border-bottom:1px solid var(--line)}
.timeline-row time{color:var(--accent);font-size:.85rem;font-weight:700;white-space:nowrap}
.timeline-row div{color:var(--ink);font-size:.94rem}
.timeline-row a{font-weight:600}
.paper-list{display:grid;gap:0}
.paper-card{display:grid;grid-template-columns:112px minmax(0,1fr);gap:18px;padding:21px 0;border-bottom:1px solid var(--line);scroll-margin-top:100px}
.paper-label a{display:inline-block;background:var(--pale);padding:5px 9px;border-radius:6px;font-size:.75rem;font-weight:700;word-break:break-word}
.paper-body h3{margin:0 0 7px;font-size:1rem;line-height:1.45}
.paper-body h3 a{color:var(--ink)}
.paper-body h3 a:hover{color:var(--accent)}
.paper-body p{margin:4px 0}
.paper-authors,.paper-venue{font-size:.84rem;color:var(--muted)}
.paper-authors sup{color:var(--accent);font-weight:700}
.paper-award{color:#8a5b17;font-size:.84rem;font-weight:700}
.resource-links{gap:7px;margin-top:10px}
.resource-links a{border:1px solid var(--line);background:var(--paper);border-radius:5px;padding:3px 8px;font-size:.73rem;font-weight:700}
.resource-links a:hover{background:var(--pale);text-decoration:none}
.home-aside{padding-top:34px}
.aside-card{padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:15px;margin-bottom:18px;box-shadow:0 6px 22px rgba(25,60,49,.035)}
.aside-card h2{font-size:1.22rem;margin-bottom:15px}
.aside-card p{font-size:.87rem;color:var(--muted);margin:8px 0;overflow-wrap:anywhere}
.theme-list,.simple-list{list-style:none;margin:0;padding:0}
.theme-list li,.simple-list li{padding:11px 0;border-top:1px solid var(--line)}
.theme-list strong,.simple-list strong{display:block;font-size:.86rem;line-height:1.4}
.theme-list span,.simple-list span{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}
.theme-list a,.simple-list a{font-size:.72rem;background:var(--pale);padding:2px 6px;border-radius:4px}
.experience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 30px}
.experience{border-bottom:1px solid var(--line);padding:14px 0}
.experience span{color:var(--accent);font-weight:700;font-size:.82rem}
.experience p{margin:2px 0;font-size:.9rem}
.quick-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.quick-links a{border:1px solid var(--line);background:var(--paper);padding:18px;border-radius:9px;font-weight:700}
.quick-links a:hover{text-decoration:none;border-color:var(--accent)}
.membership{font-size:.84rem;color:var(--muted)}
.page-head{padding:58px 0 28px;border-bottom:1px solid var(--line)}
.page-head h1{font-size:clamp(2.5rem,5vw,4rem);letter-spacing:-.055em;line-height:1.15;margin:9px 0 12px}
.page-head p{margin:0;color:var(--muted)}
.listing-section{padding:24px 0;border-bottom:1px solid var(--line)}
.listing-section>h2{font-size:1.6rem;letter-spacing:-.035em;margin:12px 0 5px}
.awards-year{border-bottom:0}
.count{font-size:.8rem;color:var(--muted);vertical-align:middle;font-weight:500}
.page-note{padding:25px 0;color:var(--muted);font-size:.9rem}
.timeline.full{max-width:940px;padding:10px 0 60px}
.talk-card{display:grid;grid-template-columns:130px 1fr;gap:24px;border-bottom:1px solid var(--line);padding:18px 0}
.talk-card time{font-size:.84rem;color:var(--accent);font-weight:700}
.talk-card h3{font-size:1rem;line-height:1.5;margin:0 0 6px}
.talk-card p{color:var(--muted);font-size:.87rem;margin:0}
.record-list{padding:0;list-style:none}
.record-list li{padding:11px 0;border-bottom:1px solid var(--line)}
.service-row{display:grid;grid-template-columns:110px 1fr;gap:18px;border-bottom:1px solid var(--line);padding:15px 0}
.service-row>span{font-size:.85rem;font-weight:700;color:var(--accent)}
.service-row p{margin:0}
.students-page-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 32px}
.students-page-head h1{margin:0}
.student-nav{display:grid;gap:4px;max-width:100%;font-size:.8rem;line-height:1.35}
.student-nav-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px 14px}
.student-nav-label{flex:0 0 10em;font-weight:400;color:var(--muted)}
.student-nav-links{display:flex;flex-wrap:wrap;gap:4px 14px}
.student-nav-links a{display:inline-flex;align-items:center;min-height:30px;padding:3px 0;font-weight:400}
.student-nav-links a:hover{text-decoration:underline}
.student-nav-links a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.student-group{scroll-margin-top:110px}
.student-group>h3{font-size:1rem;color:var(--accent);margin:20px 0}
.student-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.student-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:19px;scroll-margin-top:110px}
.student-card h4{margin:0 0 4px}
.student-card p{font-size:.83rem;margin:7px 0;color:var(--ink)}
.student-card .student-meta{color:var(--accent)}
.student-papers a{display:inline-block;margin-right:6px}
.back-link{display:block;font-size:.85rem;margin-bottom:16px}
.detail-panel{padding:20px 0 35px}
.detail-panel .paper-card{border:none;max-width:880px}
.course-nav{display:flex;gap:8px;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid var(--line)}
.course-nav a{padding:7px 12px;background:var(--pale);border-radius:6px;font-weight:700;font-size:.86rem}
.prose{max-width:900px;padding:28px 0 70px}
.prose h2{margin-top:32px}
.prose p,.prose li{line-height:1.8}
.course-image{max-height:160px;float:right;margin:4px 0 16px 16px}
.site-footer{border-top:1px solid var(--line);background:var(--footer);margin-top:60px}
.footer-inner{display:flex;justify-content:space-between;gap:20px;padding:28px 0;color:var(--muted);font-size:.82rem}

@media(max-width:900px){.home-grid{grid-template-columns:1fr}
.home-aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0}
.aside-card{margin:0}
.hero{gap:25px}
.site-header nav{gap:12px}
.site-header nav a{font-size:.83rem}
}

@media(max-width:650px){.wrap{width:min(100% - 30px,1180px)}
.student-nav-label{flex-basis:100%}
.student-nav{gap:8px;width:100%}
.student-nav-links a{min-height:40px}
.student-group{scroll-margin-top:20px}
.header-inner{display:block;padding:10px 0}
.brand{margin-bottom:8px}
.site-header nav{gap:10px 16px}
.site-header nav a{font-size:.78rem}
.hero{display:block;padding-top:35px}
.hero h1{font-size:3.2rem}
.hero-side{max-width:360px;margin:40px auto 0}
.portrait{height:320px}
.home-aside,.experience-grid,.quick-links,.student-grid{grid-template-columns:1fr}
.timeline-row,.talk-card,.service-row{grid-template-columns:1fr;gap:2px}
.paper-card{grid-template-columns:1fr;gap:7px}
.paper-label a{font-size:.7rem}
.section-heading{align-items:start}
.footer-inner{display:block}
.footer-inner span{display:block;margin-bottom:7px}
}
:root { color-scheme: light; }
h1, h2, .brand { font-family: var(--heading-font); }
body { overflow-wrap: break-word; }
main, section, article, .hero>div, .home-grid>div, .home-aside { min-width: 0; }
.site-header nav a { min-height: 44px; display: inline-flex; align-items: center; }
.paper-detail-head h1 { max-width: 1020px; font-size: clamp(1.9rem,3.5vw,3rem); letter-spacing: -.035em; line-height: 1.25; }
.paper-detail { max-width: 1020px; padding: 25px 0; }
.detail-authors { font-size: 1.1rem; line-height: 1.9; }
.detail-citation { color: var(--muted); }
.detail-links { margin: 24px 0 36px; }
.detail-links a { font-size: .88rem; padding: 10px 16px; }
.bib-panel { border-top: 1px solid var(--line); padding-top: 24px; }
pre { max-width: 100%; overflow-x: auto; padding: 22px; background: var(--pale); border: 1px solid var(--line); font-size: .85rem; line-height: 1.7; border-radius: 8px; }
.prose { overflow-wrap: anywhere; }
.prose table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.prose th, .prose td { border: 1px solid var(--line); padding: 9px 12px; }
.prose th { background: var(--pale); text-align: left; }
.style-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; padding: 38px 0 10px; }
.style-option { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--paper); }
.style-swatch { padding: 32px; height: 200px; display: flex; flex-direction: column; align-items: start; background: #edf4f0; color: #14645f; }
.style-swatch>span { font-size: .72rem; letter-spacing: .15em; }
.style-swatch strong { font-size: 2.6rem; letter-spacing: -.04em; }
.swatch-lines { width: 55%; height: 23px; border-top: 2px solid currentColor; border-bottom: 1px solid currentColor; margin-top: 14px; opacity: .6; }
.classic .style-swatch { background: #f7f0eb; color: #8a293b; font-family: Georgia,serif; border-top: 5px solid #8a293b; }
.editorial .style-swatch { background: #eee9dd; color: #294f86; font-family: Georgia,serif; border-bottom: 2px solid #202b3c; }
.editorial .style-swatch strong { font-weight: 400; font-style: italic; }
.minimal .style-swatch { background: #fff; color: #202124; border-bottom: 1px solid #e4e6ea; }
.minimal .style-swatch strong { font-weight: 400; }
.minimal .swatch-lines { width: 32%; color: #235cc0; }
.style-copy { padding: 26px 30px 30px; }
.style-copy h2 { font-size: 1.6rem; margin: 4px 0 8px; }
.style-copy p { color: var(--muted); min-height: 3.2em; }
@media (max-width:650px) {
  html { scroll-padding-top: 20px; }
  .site-header { position: static; }
  .header-inner { padding: 12px 0 8px; }
  .site-header nav { gap: 0 16px; }
  .site-header nav a { font-size: .86rem; min-height: 44px; }
  .site-header nav .language { padding: 0 12px; }
  .hero h1 { letter-spacing: -.05em; }
  .hero-role { font-size: 1.1rem; }
  .hero-intro { font-size: 1rem; line-height: 1.8; }
  .paper-authors, .paper-venue { font-size: .88rem; }
  .resource-links { gap: 8px; }
  .resource-links a { min-height: 40px; display: inline-flex; align-items: center; padding: 8px 12px; font-size: .8rem; }
  .paper-label a { padding: 6px 9px; font-size: .8rem; }
  .section-heading { gap: 12px; }
  .section-heading h2 { font-size: 1.5rem; }
  .page-head { padding: 32px 0 22px; }
  .page-head h1 { font-size: 2.3rem; }
  .paper-detail-head h1 { font-size: 1.9rem; }
  .style-gallery { grid-template-columns: 1fr; gap: 24px; }
  .style-copy { padding: 22px; }
  .style-copy p { min-height: 0; }
  .style-swatch { height: 185px; }
  pre { padding: 15px; font-size: .78rem; }
  .footer-inner { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } .button:hover { transform: none; } }
@media print {
  .site-header, .site-footer, .hero-actions, .skip-link { display: none; }
  .wrap { width: 100%; max-width: none; }
  body { background: white; color: black; }
  .paper-card, .student-card { break-inside: avoid; }
  .hero, .home-grid { display: block; }
  .hero-side { display: none; }
}

/* Profile and complete homepage: shared across CSS themes. */
.profile-header { display:grid; grid-template-columns:250px minmax(0,1fr); column-gap:46px; padding:42px 0; align-items:start; }
.profile-photo { grid-column:1; grid-row:1 / span 2; width:250px; height:300px; object-fit:cover; object-position:center 25%; }
.profile-identity { grid-column:2; min-width:0; }
.profile-identity h1 { font-size:2.5rem; line-height:1.2; margin:0 0 12px; letter-spacing:0; }
.profile-role { margin:0 0 12px; font-size:1.15rem; }
.affiliations { list-style:none; padding:0; margin:0; }
.affiliations li { margin:2px 0; }
.profile-details { grid-column:2; min-width:0; }
.profile-details p { margin:10px 0; }
.profile-contact { font-style:normal; overflow-wrap:anywhere; }
.profile-contact p { margin:3px 0; }
.profile-details .membership { margin:16px 0 12px; }
.education-list { list-style:none; padding:0; margin:0; }
.education-list>li { display:grid; grid-template-columns:190px minmax(0,1fr); gap:20px; margin:15px 0; }
.education-date { color:var(--muted); font-variant-numeric:tabular-nums; }
.advisors { display:block; }
.project-list { padding-left:1.4em; margin:12px 0; }
.project-list li { margin:12px 0; }
.project-list .project-list { margin:7px 0; }
.project-name { font-weight:600; }
.project-papers { margin-left:.5em; }
.project-papers a { display:inline-block; margin-right:.25em; }
.publication-index { display:flex; flex-wrap:wrap; gap:12px 24px; margin-bottom:12px; }
.course-list { list-style:none; padding:0; margin:0; }
.course-list>li { padding:16px 0; border-bottom:1px solid var(--line); }
.course-list>li:first-child { padding-top:0; }
.course-list p { margin:6px 0; }
.course-offerings { display:flex; flex-wrap:wrap; gap:4px 22px; margin-top:5px; }
.course-offerings a,.course-offerings span { display:inline-block; padding:5px 0; }
.about-links { padding-left:1.4em; }
.about-links li { margin:12px 0; }
.bib-panel { scroll-margin-top:24px; }
.bib-panel pre { white-space:pre-wrap; overflow-wrap:anywhere; }
@media(max-width:650px) {
 .profile-header { grid-template-columns:100px minmax(0,1fr); gap:18px; padding:28px 0; }
 .profile-photo { grid-row:1; width:100px; height:140px; }
 .profile-identity h1 { font-size:1.9rem; margin-bottom:8px; }
 .profile-role { font-size:1rem; margin-bottom:8px; }
 .profile-details { grid-column:1 / -1; }
 .profile-details .membership { margin-top:0; }
 .education-list>li { grid-template-columns:1fr; gap:3px; }
 .section-heading { flex-wrap:wrap; }
 .project-list { padding-left:1.1em; }
 .project-papers { margin-left:0; }
 .course-offerings a { min-height:44px; }
}

/* Compact overview, with complete data available in disclosures and directories. */
.header-inner { gap:18px; }
.site-header nav { gap:4px 17px; justify-content:flex-end; }
.home-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:36px; align-items:start; }
.home-main,.home-sidebar { min-width:0; }
.home-sidebar { display:grid; gap:22px; }
.home-panel { padding:22px; background:var(--pale); border:1px solid var(--line); border-top:2px solid var(--accent); }
.home-panel .section-heading { align-items:start; gap:12px; margin-bottom:16px; flex-wrap:nowrap; }
.home-panel .section-heading h2 { font-size:1.3rem; line-height:1.3; }
.home-panel .more { margin-top:2px; }
.project-summary { border-bottom:1px solid var(--line); padding:11px 0; }
.project-summary:first-child { padding-top:0; }
.project-summary:last-child { border-bottom:0; padding-bottom:0; }
.project-summary summary { font-weight:600; }
summary { cursor:pointer; color:var(--accent); }
summary:focus-visible { outline:3px solid #e9ad59; outline-offset:3px; }
.project-summary[open] summary { margin-bottom:12px; }
.home-panel .project-list { font-size:.94rem; }
.project-page-link { display:inline-block; margin:6px 0; }
.inline-details { margin:8px 0; }
.course-list h3 { margin:0 0 5px; font-size:1.05rem; line-height:1.4; }
.home-panel .course-offerings { gap:0 16px; }
.home-panel .course-list p { font-size:.94rem; }
.home-panel .about-links { margin:0 0 14px; }
.home-secondary { display:grid; grid-template-columns:1.1fr 1fr; gap:36px; margin-top:24px; }
.home-secondary .education-list>li { grid-template-columns:150px minmax(0,1fr); gap:12px; }
.home-secondary .service-row { grid-template-columns:68px minmax(0,1fr); gap:12px; }
.course-directory { max-width:1000px; padding:24px 0; }
.course-directory .course-list>li { padding:22px 0; }
.course-directory h3 { font-size:1.25rem; }
.project-grid { margin:24px 0; }
.project-page-card { display:grid; grid-template-columns:230px minmax(0,1fr); gap:30px; padding:24px; margin:18px 0; border:1px solid var(--line); background:var(--paper); scroll-margin-top:24px; }
.project-page-card h2 { font-size:1.4rem; line-height:1.4; margin:5px 0; }
.project-page-card>.project-list { margin:0; }
.course-page .page-head { padding:28px 0 20px; }
.course-page .page-head h1 { font-size:2rem; letter-spacing:0; }
.course-page .prose { padding:20px 0 48px; }
.course-page .prose p,.course-page .prose li { line-height:1.55; }
.course-page .prose h2 { font-size:1.4rem; margin:24px 0 12px; }
.course-nav a[aria-current="page"] { color:var(--paper); background:var(--accent); }
@media(max-width:1100px) {
 .header-inner { flex-wrap:wrap; padding:12px 0; }
 .site-header nav { justify-content:flex-start; }
}
@media(max-width:1000px) {
 .home-layout { grid-template-columns:minmax(0,1fr) 300px; gap:26px; }
 .home-secondary { grid-template-columns:1fr; gap:0; }
}
@media(max-width:800px) {
 .home-layout { display:flex; flex-direction:column; gap:24px; }
 .home-main,.home-sidebar { width:100%; }
 .home-sidebar { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
 .home-sidebar>section:last-child { grid-column:1 / -1; }
 .project-page-card { grid-template-columns:1fr; gap:16px; }
}
@media(max-width:650px) {
 .site-header nav { gap:0 14px; }
 .home-sidebar { grid-template-columns:1fr; gap:20px; }
 .home-panel { padding:19px; }
 .home-panel .section-heading h2 { font-size:1.4rem; }
 .home-secondary .education-list>li { grid-template-columns:1fr; gap:3px; }
 .home-secondary .service-row { grid-template-columns:1fr; gap:3px; }
 .course-offerings a { min-height:44px; }
 .project-page-card { padding:20px; }
}

.course-staff { display:flex; flex-wrap:wrap; gap:16px 32px; }
.course-person { display:flex; gap:14px; align-items:center; min-width:0; }
.course-person img { width:76px; height:92px; object-fit:cover; border:1px solid var(--line); }
.course-person p { margin:4px 0; overflow-wrap:anywhere; }
.course-notice { padding:16px 22px; background:var(--pale); border:1px solid var(--line); margin-bottom:22px; }
.course-notice h2 { margin-top:0 !important; }
.course-notice ul:empty { display:none; }
.course-notice ul { padding-left:1.3em; }

@media(max-width:650px) {
 .home-layout { display:grid; grid-template-columns:1fr; gap:20px; }
 .home-layout>.home-main,.home-layout>.home-sidebar { display:contents; }
 .home-layout #news { order:1; }
 .home-layout #projects { order:2; }
 .home-layout #courses { order:3; }
 .home-layout #publications { order:4; }
 .home-layout #more { order:5; }
}

.publication-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px 18px; flex-wrap:wrap; font-size:.94rem; }
.publication-actions a { white-space:nowrap; }
.publication-actions .more { font-size:inherit; }
.past-projects-link { display:inline-block; margin-top:18px; }
.home-sidebar>section:last-child { grid-column:auto; }
@media(max-width:650px) {
 #publications .section-heading { gap:10px; }
 .publication-actions { justify-content:flex-start; gap:8px 16px; }
}
