:root { color-scheme: light; --ink: #282431; --muted: #625b6a; --accent: #512879; --line: #e3dce9; }
html { padding: 0; scroll-behavior: smooth; }
body { background: #faf8fc; color: var(--ink); font: 16px/1.6 system-ui, sans-serif; }
* { box-sizing: border-box; }
#menu { background: #f1edf5; border-right: 1px solid var(--line); width: 13em; padding-top: 2em; }
#menu #small-kam { margin: 0 1.3em 1.5em; font-size: .9em; line-height: 1.5; }
#menu > ul { margin: 1.5em 1em; }
#menu li { margin: .25em 0; }
#main { position: relative; margin-left: 13em; padding: 3em clamp(1.25em, 4vw, 4em) 4em; background: transparent; max-width: 78em; }
a, a:visited { color: var(--accent); }
a:hover { border-bottom-color: var(--accent); }
a:focus-visible, summary:focus-visible { outline: 3px solid #9b70c5; outline-offset: 5px; border-radius: 3px; }
h1, h2, h3, p { margin-top: 0; }
h1 { max-width: 22ch; font-size: clamp(2em, 3.4vw, 3.2em); line-height: 1.12; letter-spacing: -.035em; margin-bottom: .5em; }
h2 { font-size: 1.5em; line-height: 1.3; margin-bottom: .8em; }
h3 { font-size: 1.1em; }
p { margin-bottom: .9em; }
.eyebrow { font-size: .75em; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); margin-bottom: .7em; }
.intro { max-width: 65ch; color: var(--muted); }
.logistics { display: flex; flex-wrap: wrap; gap: .45em 1.4em; padding: 0; margin: 1.25em 0; list-style: none; font-size: .9em; }
.section-nav { display: flex; flex-wrap: wrap; gap: 1.5em; margin-bottom: 2em; font-size: .85em; }
.next-seminar { border: 1px solid #d4c3e6; border-left: 5px solid var(--accent); background: #f0e8f8; border-radius: 8px; padding: clamp(1.25em, 3vw, 2em); margin-bottom: 2.6em; }
.next-seminar .eyebrow { margin-bottom: 1em; }
.next-seminar h2 { font-size: clamp(1.5em, 2.5vw, 2em); letter-spacing: -.025em; margin-bottom: .4em; }
.next-date { font-weight: 650; margin-bottom: .5em; }
.next-speaker { color: var(--muted); }
.next-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .7em 1.2em; font-size: .9em; margin-top: 1.4em; }
a.join-link, a.join-link:visited { color: white; background: var(--accent); border: 1px solid var(--accent); border-radius: 5px; padding: .5em 1em; font-weight: 600; }
a.join-link:hover { background: #3e1d5d; }
section { scroll-margin-top: 1.5em; }
.section-note { font-size: .9em; color: var(--muted); margin-bottom: 1.4em; }
.programme-list, .talk-list { list-style: none; padding: 0; margin: 0; }
.programme-item { padding: 1.3em 0; border-top: 1px solid var(--line); scroll-margin-top: 1em; }
.programme-item:last-child { border-bottom: 1px solid var(--line); }
.programme-item summary { display: grid; grid-template-columns: 5.8em minmax(0, 1fr) 1em; gap: 1em; align-items: start; cursor: pointer; list-style: none; }
.programme-item summary::-webkit-details-marker { display: none; }
.programme-item summary::after { content: '+'; color: var(--accent); font-size: 1.4em; line-height: 1; }
.programme-item details[open] > summary::after { content: '−'; }
.event-date { color: var(--muted); font-size: .82em; line-height: 1.5; }
.event-date strong { display: block; font-size: 1.3em; color: var(--ink); }
.event-title { display: block; font-weight: 650; line-height: 1.45; }
.event-speaker { display: block; font-size: .9em; color: var(--muted); margin-top: .2em; }
.event-series { display: block; color: var(--accent); font-size: .72em; font-weight: 650; margin-bottom: .4em; }
.event-status { display: block; color: #745218; font-size: .78em; margin-top: .35em; }
.programme-item .talk-abstract { margin: 1em 2em 0 6.8em; color: var(--muted); font-size: .95em; }
.talk-abstract { overflow-wrap: anywhere; }
.talk-abstract p:last-child { margin-bottom: 0; }
.bootcamp { border: 1px solid #cddbd5; border-radius: 8px; background: #eef5f1; padding: 1.4em 1.6em; margin-bottom: 1.5em; }
.bootcamp .eyebrow { color: #32614e; }
.bootcamp h3 { font-size: 1.4em; line-height: 1.3; margin-bottom: .4em; }
.bootcamp p { font-size: .95em; }
.bootcamp .section-note { margin: 0; font-size: .85em; }
.series-note { padding: 1.3em 0; margin: 1.2em 0 2.5em; border-bottom: 1px solid var(--line); }
.series-note h3 { margin-bottom: .4em; }
.series-note p { color: var(--muted); font-size: .9em; margin-bottom: 0; }
#past h3 { margin: 1.5em 0 .6em; color: var(--muted); }
.archive-item { position: relative; margin: .6em 0; padding-left: 1.4em; font-size: .9em; }
.archive-item summary { display: block; cursor: pointer; list-style: none; }
.archive-item summary::-webkit-details-marker { display: none; }
.archive-marker { position: absolute; top: .3em; left: 0; width: 1em; height: 1em; color: var(--accent); pointer-events: none; }
.archive-marker svg { display: block; width: 100%; height: 100%; }
.archive-marker path { fill: currentColor; stroke: currentColor; stroke-width: 1; stroke-linejoin: round; }
.archive-item details[open] > summary .archive-marker { transform: rotate(90deg); }
.archive-item.no-abstract .archive-marker { color: var(--muted); }
.archive-item.no-abstract .archive-marker path { fill: none; }
.archive-item .talk-abstract { margin: .8em 0 1.3em; color: var(--muted); }
#past .programme-item .talk-abstract { margin-left: 6.8em; }
[hidden] { display: none !important; }
@media (max-width: 760px) {
  #menu { position: relative; width: auto; padding: 1em 1.25em; border-right: 0; border-bottom: 1px solid var(--line); }
  #menu #small-kam { margin: 0; font-size: .8em; }
  #small-kam br { display: none; }
  #img-mikulas { display: none; }
  #menu > ul { display: flex; flex-wrap: wrap; gap: .4em 1.1em; padding: 0; margin: .7em 0 0; font-size: .8em; }
  #menu li { margin: 0; }
  #main { margin: 0; padding: 1.8em 1.25em 3em; }
  .programme-item summary { grid-template-columns: 4.5em minmax(0, 1fr) 1em; gap: .7em; }
  .programme-item .talk-abstract, #past .programme-item .talk-abstract { margin: 1em 0 0; }
  .bootcamp { padding: 1.2em; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media print {
  #menu, .section-nav, .next-actions { display: none; }
  #main { margin: 0; padding: 0; }
  body { background: white; }
  .next-seminar, .bootcamp { break-inside: avoid; }
}

/* Shared personal-homepage and course layouts. */
#menu a[aria-current="page"] { font-weight: 700; color: var(--ink); }
#main { min-width: 0; }
#main #inside2 { position: static; width: auto; height: auto; margin: 0; }
#main > h1 { margin-bottom: .8em; }
#main h3, #main h4 { margin-top: 1.8em; margin-bottom: .65em; }
#main .bootcamp h3 { margin-top: 0; }
#main .series-note h3 { margin-top: 0; }
#main img { max-width: 100%; height: auto; }
#main hr { border: 0; border-top: 1px solid var(--line); margin: 1.8em 0; }
#main table { border-collapse: collapse; width: auto; max-width: 100%; margin: 1em 0 1.8em; }
#main td, #main th { padding: .45em .8em .45em 0; text-align: left; vertical-align: top; }
#main table#contacts { width: 100%; }
#main table#contacts tr + tr { border-top: 1px solid var(--line); }
#main table#contacts td { min-width: 0; }
#main .semester-heading { margin-top: 2em; margin-bottom: .3em; }
#main table.semester-courses { margin: 0 0 1.5em; }
#main table.semester-courses td { padding: .1em .8em .1em 0; }
#main a { overflow-wrap: anywhere; }
#main ul:not(.logistics):not(.programme-list):not(.talk-list), #main ol { margin-left: 0; padding-left: 1.4em; }
#main .MathJax_Display, #main .MJXc-display { overflow-x: auto; overflow-y: hidden; max-width: 100%; }
.page-intro { color: var(--muted); max-width: 68ch; }
.profile { display: grid; grid-template-columns: 120px minmax(0, max-content) minmax(0, max-content); justify-content: start; align-items: center; gap: 2em; padding: 1.5em 0; border-bottom: 1px solid var(--line); margin-bottom: 1.6em; }
.profile .profile-photo { width: 120px; border-radius: 6px; }
.profile address { font-style: normal; color: var(--muted); }
.profile-contact { display: grid; grid-template-columns: 1.5em minmax(0, 1fr); align-items: center; gap: .5em .65em; margin: 0; font-size: .95em; }
.profile-contact dt, .profile-contact dd { margin: 0; }
#main .profile .contact-icon { display: block; width: 1.5em; height: 1.5em; object-fit: contain; }
.thesis-callout { background: #f0e8f8; border: 1px solid #d4c3e6; border-left: 4px solid var(--accent); border-radius: 6px; padding: 1.25em 1.5em; margin: 1.75em 0; }
.thesis-callout h2 { font-size: 1.2em; }
.thesis-callout p:last-child { margin-bottom: 0; }
#eng-study { margin-top: 2em; }
#eng-study img { float: none; width: 220px; }
.profile-links { display: flex; flex-wrap: wrap; align-items: center; gap: .6em 1.5em; margin: 1em 0 2em; }
.publication-list > li { padding: 1em 0; border-bottom: 1px solid var(--line); }
.publication-list > li::marker { color: var(--muted); font-size: .85em; }
.publication-links { display: flex; flex-wrap: wrap; align-items: center; gap: .7em; margin-top: .5em; }
.profile-links a, .publication-links a { display: inline-flex; align-items: center; border-bottom: 0; }
#main .profile-links img { height: 3em; width: auto; }
#main .publication-links img { height: 1.2em; width: auto; }
.lecture.plan, #contacts tr.inactive { opacity: 1; color: var(--muted); }
.lecture.plan { border-left: 2px solid var(--line); padding-left: 1em; }
.plan-badge { color: var(--muted); border-color: var(--line); }
@media (max-width: 1000px) {
  .profile { grid-template-columns: 100px minmax(0, 1fr); column-gap: 1.5em; row-gap: 1em; align-items: start; }
  .profile .profile-photo { width: 100px; grid-column: 1; grid-row: 1 / 3; }
  .profile address { grid-column: 2; grid-row: 1; }
  .profile-contact { grid-column: 2; grid-row: 2; }
}
@media (max-width: 480px) {
  .profile { grid-template-columns: 80px minmax(0, 1fr); column-gap: 1em; }
  .profile .profile-photo { width: 80px; }
}
@media (max-width: 760px) {
  #main table { font-size: .85em; overflow-wrap: anywhere; }
  #main td, #main th { padding-right: .6em; }
  #main h1 { font-size: clamp(1.8em, 7vw, 2.3em); overflow-wrap: anywhere; }
  #main > h1 { max-width: none; }
  .thesis-callout { padding: 1.1em; }
}
@media print {
  #main { max-width: none; }
  .profile { break-inside: avoid; }
  .lecture.plan, #contacts tr.inactive { color: black; }
}

/* Refined academic layout. The seminar and course behaviors use the base rules. */
:root { --ink: #28232f; --muted: #655e6f; --accent: #573777; --line: #e4deeb; --paper: #fcfbfd; --sidebar: #f0ecf5; --serif: Georgia, 'Times New Roman', serif; }
html { scroll-padding-top: 24px; }
body { margin: 0; background: var(--paper); font: 16px/1.7 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; -webkit-font-smoothing: antialiased; }
a, a:visited { color: var(--accent); text-decoration: none; border-bottom: 1px solid #d6c9e2; transition: color .15s, border-color .15s, background-color .15s; }
a:hover { color: #322045; border-bottom-color: currentColor; }
button, input, select { font: inherit; }
button { cursor: pointer; }
.skip-link { position: fixed; left: 16px; top: -90px; padding: 8px 16px; background: white; z-index: 20; }
.skip-link:focus { top: 12px; }
#menu { position: fixed; inset: 0 auto 0 0; width: 236px; padding: 44px 24px 24px; display: flex; flex-direction: column; gap: 0; border-right: 1px solid var(--line); background: var(--sidebar); overflow-y: auto; }
#menu .site-name { display: block; border: 0; font-family: var(--serif); font-size: 27px; line-height: 1.15; letter-spacing: -.045em; color: var(--ink); }
#menu .site-role { margin: 12px 0 0; font-size: 11px; line-height: 1.7; color: var(--muted); }
#menu > ul { list-style: none; margin: 36px -9px 32px; padding: 0; }
#menu li { list-style: none; margin: 2px 0; padding: 0; }
#menu li a { display: block; border: 0; border-left: 2px solid transparent; padding: 3px 12px; border-radius: 0 5px 5px 0; font-size: 14px; color: var(--muted); }
#menu li a:hover { background: #f9f7fc; color: var(--accent); }
#menu a[aria-current='page'] { background: #fcfbfd; border-left-color: var(--accent); color: var(--accent); font-weight: 650; }
.nav-affiliation { margin-top: auto; padding-top: 30px; border-top: 1px solid #ddd5e7; }
.nav-affiliation a { display: block; border: 0; font-size: 11px; line-height: 1.6; color: var(--muted); }
.nav-affiliation .kam-logo { width: 66px; height: 66px; display: block; margin-bottom: 17px; object-fit: contain; }
.nav-university { margin-top: 8px; }
#main { position: relative; left: auto; right: auto; top: auto; min-height: 100vh; margin-left: 236px; padding: 52px clamp(30px, 5.1vw, 84px) 40px; max-width: 1340px; background: transparent; }
#main h1 { font-family: var(--serif); font-weight: 400; font-size: clamp(38px, 4.6vw, 64px); line-height: 1.12; letter-spacing: -.045em; margin: 0 0 24px; max-width: 24ch; }
#main h2 { font-family: var(--serif); font-size: 28px; font-weight: 400; letter-spacing: -.025em; line-height: 1.25; margin: 0 0 17px; }
#main h3, #main h4 { color: var(--ink); font-size: 17px; font-weight: 650; margin: 34px 0 12px; line-height: 1.45; }
#main p { margin: 0 0 18px; }
#main .eyebrow { font-size: 10px; font-weight: 650; letter-spacing: .15em; line-height: 1.5; color: var(--accent); margin-bottom: 17px; }
.eyebrow a { border: 0; }
#main .page-intro, #main .intro { font-size: 17px; line-height: 1.8; color: var(--muted); max-width: 66ch; margin-bottom: 32px; }
.profile { grid-template-columns: 112px minmax(0, 270px) minmax(0, max-content); justify-content: start; gap: 32px; align-items: center; padding: 26px; border: 1px solid var(--line); border-radius: 9px; background: white; margin: 30px 0 48px; }
#main .profile-photo { width: 112px; height: auto; border-radius: 5px; }
.profile address { font-size: 13px; line-height: 1.85; }
.profile-contact { font-size: 12px; grid-template-columns: 18px minmax(0, 1fr); gap: 12px 10px; line-height: 1.5; }
#main .profile .contact-icon { width: 18px; height: 18px; }
.profile-contact a { overflow-wrap: anywhere; }
.home-sections { display: grid; grid-template-columns: 1.2fr 1fr; gap: 46px; margin-bottom: 28px; }
.home-research { padding: 8px 0; }
#main .home-sections p:not(.eyebrow) { font-size: 14px; line-height: 1.85; color: var(--muted); }
.text-link { display: inline-block; font-size: 13px; font-weight: 600; border-bottom: 0; }
.text-link::after { content: ' →'; padding-left: 7px; }
.thesis-callout { margin: 0; padding: 27px 28px; border: 0; border-radius: 7px; background: #f1ebf7; }
#main .thesis-callout h2 { font-size: 25px; }
.home-links { display: flex; gap: 24px; flex-wrap: wrap; }
#eng-study { margin: 0; }
#eng-study::before { content: ""; display: block; width: 72px; border-top: 1px solid #d6c9e2; margin-bottom: 16px; }
#eng-study a { display: inline-block; border: 0; }
#eng-study img { display: block; width: 190px; height: auto; }
.research-page #main .page-intro { margin-bottom: 24px; }
.research-areas { margin: 24px 0; border-top: 1px solid var(--line); }
.research-areas > section { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 28px; padding: 16px 0; border-bottom: 1px solid var(--line); }
#main .research-areas h2 { font-family: inherit; font-size: 16px; font-weight: 650; letter-spacing: 0; line-height: 1.6; margin: 0; }
#main .research-areas p { color: var(--muted); font-size: 15px; margin: 0; }
.theses-page #inside2, .theses-page .thesis-introduction { max-width: 72ch; }
.thesis-projects { margin-top: 42px; }
.thesis-projects > article { padding: 24px 0; border-top: 1px solid var(--line); }
#main .thesis-projects h2, #main .thesis-projects h3 { font-family: inherit; font-size: 17px; font-weight: 650; letter-spacing: 0; margin: 0 0 12px; }
.thesis-projects p { color: var(--muted); font-size: 15px; }
.teaching-meta { display: flex; flex-wrap: wrap; gap: 16px 50px; padding: 20px 24px; margin: 30px 0 26px; background: #f4f0f8; border-radius: 6px; }
.teaching-meta > div { display: flex; align-items: baseline; gap: 14px; }
.teaching-meta dt { color: var(--muted); font-size: 12px; }
.teaching-meta dd { margin: 0; font-size: 14px; }
.semester { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 30px; padding: 6px 0 20px; border-top: 1px solid var(--line); }
#main .semester h2 { font-family: inherit; font-size: 15px; font-weight: 600; letter-spacing: 0; line-height: 1.8; padding-top: 4px; margin: 0; }
#main ul.course-list { list-style: none; padding: 0; margin: 0; }
.course-list li { padding: 5px 0 13px; }
.course-list li:last-child { padding-bottom: 0; }
.course-title { display: block; font-size: 15px; font-weight: 500; line-height: 1.55; }
.course-links { display: flex; gap: 17px; margin-top: 4px; font-size: 12px; line-height: 1.6; }
.course-links a { border-bottom: 0; }
.profile-links { align-items: center; gap: 24px; margin: 0 0 35px; }
#main .profile-links img { height: 38px; width: auto; }
.publications-page #main > hr { display: none; }
.publication-list { max-width: 76ch; }
#main .publication-list { padding-left: 25px; }
.publication-list > li { margin: 0; padding: 13px 0 13px 9px; color: var(--muted); font-size: 14px; line-height: 1.75; border-bottom: 1px solid var(--line); }
.publication-list > li strong { color: var(--ink); font-size: 16px; font-weight: 600; line-height: 1.55; }
.publication-list > li::marker { font-variant-numeric: tabular-nums; font-size: 11px; color: #93849e; }
.publication-links { margin-top: 6px; gap: 12px; }
.publication-links a { padding: 2px 0; }
#main .publication-links img { height: 19px; width: auto; }
.publication-jump { display: flex; gap: 22px; flex-wrap: wrap; font-size: 12px; margin: 0 0 34px; }
.publication-jump a { border-bottom: 0; }
.publications-page #main h3 { font-family: var(--serif); font-size: 27px; font-weight: 400; letter-spacing: -.02em; }
.section-nav { gap: 24px; font-size: 12px; margin: 25px 0 36px; }
.section-nav a { border-bottom: 0; }
.logistics { gap: 10px 24px; font-size: 13px; margin: 24px 0; }
.next-seminar { background: #f0e9f7; border: 1px solid #ddd0e9; border-left: 3px solid var(--accent); border-radius: 8px; padding: 28px 32px; margin-bottom: 46px; }
#main .next-seminar h2 { font-size: clamp(26px, 3vw, 36px); max-width: 32ch; margin-bottom: 10px; }
#main .next-seminar p { margin-bottom: 12px; }
.next-date { font-size: 13px; }
.next-speaker { font-size: 15px; }
#next-description { font-size: 14px; max-width: 65ch; }
.next-actions { margin-top: 24px; font-size: 12px; }
.next-actions a { border-bottom: 0; }
a.join-link, a.join-link:visited { border: 0; border-radius: 4px; padding: 9px 17px; }
#main .bootcamp h3 { font-family: var(--serif); font-size: 25px; font-weight: 400; margin: 0 0 12px; }
.bootcamp { background: #f5f1f8; border: 1px solid var(--line); border-radius: 6px; padding: 24px 28px; }
.bootcamp .eyebrow { color: var(--accent); }
.programme-item { padding: 23px 0; }
.programme-item summary { gap: 20px; }
.event-title { font-weight: 600; font-size: 16px; }
.event-speaker { font-size: 13px; }
.event-date { font-size: 11px; }
.event-date strong { font-family: var(--serif); font-size: 23px; font-weight: 400; }
.event-series { font-size: 10px; }
.talk-abstract { font-size: 14px; line-height: 1.85; }
.archive-item { margin: 12px 0; font-size: 13px; line-height: 1.75; }
.archive-marker { top: .375em; width: 12px; height: 12px; }
.archive-marker svg { width: 12px; height: 12px; }
#main .series-note h3 { margin-top: 0; font-size: 16px; }
.series-note p, .section-note { font-size: 13px; }
.course-page #main { max-width: 1240px; }
.course-page #main h1 { font-size: clamp(34px, 4vw, 54px); max-width: 24ch; }
.course-page #main h2 { font-size: 25px; margin-top: 36px; }
.course-page #main h3 { margin-top: 32px; }
.course-page #main table { font-size: 14px; }
#main .lecture { padding: 18px 0; margin-bottom: 0; border-top: 1px solid var(--line); font-size: 14px; line-height: 1.85; }
#main .lecture.plan { border-left: 0; padding-left: 0; }
.plan-badge { background: #f3eef8; color: var(--accent); border: 0; border-radius: 3px; padding: 3px 6px; }
@media (max-width: 1160px) and (min-width: 761px) {
  #menu { width: 206px; padding-left: 21px; padding-right: 21px; }
  #main { margin-left: 206px; padding-left: 38px; padding-right: 38px; }
  .profile { grid-template-columns: 90px minmax(0, 1fr); gap: 14px 24px; }
  #main .profile-photo { width: 90px; grid-row: 1 / 3; grid-column: 1; }
  .profile address { grid-column: 2; grid-row: 1; }
  .profile-contact { grid-column: 2; grid-row: 2; }
  .home-sections { gap: 24px; }
  .semester { grid-template-columns: 120px minmax(0, 1fr); gap: 22px; }
}
@media (max-width: 760px) {
  body { font-size: 15px; }
  #menu { position: relative; inset: auto; width: auto; padding: 21px 22px 15px; border-right: 0; border-bottom: 1px solid var(--line); display: block; overflow: visible; }
  #menu .site-name { font-size: 22px; }
  #menu .site-name br { display: none; }
  #menu .site-role { margin: 4px 0 0; font-size: 10px; }
  #menu > ul { display: flex; flex-wrap: wrap; gap: 2px 15px; margin: 16px 0 0; padding: 0; }
  #menu li { margin: 0; }
  #menu li a { padding: 4px 0; border-left: 0; border-bottom: 2px solid transparent; border-radius: 0; font-size: 12px; }
  #menu a[aria-current='page'] { border-bottom-color: var(--accent); background: transparent; }
  .nav-affiliation { display: none; }
  #main { margin: 0; padding: 28px 22px 30px; min-height: auto; }
  #main h1 { font-size: 40px; margin-bottom: 20px; }
  #main .page-intro, #main .intro { font-size: 15px; line-height: 1.8; margin-bottom: 25px; }
  .profile { grid-template-columns: 80px minmax(0, 1fr); gap: 18px 20px; padding: 20px; margin: 25px 0 35px; }
  #main .profile-photo { width: 80px; grid-column: 1; grid-row: 1; }
  .profile address { grid-column: 2; grid-row: 1; font-size: 11px; }
  .profile-contact { grid-column: 1 / -1; grid-row: 2; font-size: 12px; padding-top: 16px; border-top: 1px solid var(--line); }
  .home-sections { grid-template-columns: 1fr; gap: 27px; margin-bottom: 24px; }
  .thesis-callout { padding: 24px; }
  .research-areas > section { grid-template-columns: 1fr; gap: 10px; }
  .teaching-meta { padding: 17px 20px; gap: 8px; margin-bottom: 26px; }
  .teaching-meta > div { width: 100%; }
  .teaching-meta dt { width: 85px; flex-shrink: 0; }
  .semester { display: block; }
  #main .semester h2 { color: var(--accent); margin-bottom: 16px; font-size: 14px; }
  .course-title { font-size: 14px; }
  .course-list li { padding-bottom: 16px; }
  .profile-links { gap: 22px; }
  #main .profile-links img { height: 34px; }
  .publication-list > li { padding-left: 3px; font-size: 13px; }
  .publication-list > li strong { font-size: 15px; }
  .next-seminar { padding: 24px 22px; }
  .bootcamp { padding: 23px; }
  .logistics { font-size: 12px; }
  .programme-item summary { gap: 12px; grid-template-columns: 58px minmax(0, 1fr) 12px; }
  .event-title { font-size: 14px; }
  .event-speaker { font-size: 12px; }
  .programme-item .talk-abstract, #past .programme-item .talk-abstract { margin: 20px 0 0; font-size: 14px; }
  .section-nav { gap: 12px 20px; }
  .archive-item { font-size: 12px; }
  .course-page #main h1 { font-size: 36px; }
  #main .lecture { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) { a { transition: none; } }
@media print {
  #menu, .skip-link { display: none; }
  #main { margin: 0; padding: 0; min-height: auto; max-width: none; }
  .profile, .next-seminar, .thesis-callout, .bootcamp { background: white; }
  .profile { break-inside: avoid; }
}
