:root {
  --brand: #65b8f0;
  --brand-bright: #8bcef7;
  --brand-deep: #2d82b4;
  --brand-dark: #14577e;
  --nav-background: #2478a8;
  --night-brand: #1dbfea;
  --night-brand-bright: #87e1f7;
  --night-brand-deep: #087fa2;
  --night-brand-dark: #075b75;
  --night-nav-background: #086a88;
  --picker-blue: #65b8f0;
  --picker-green: #76b66a;
  --picker-red: #f07365;
  --masthead-background: #1b252d;
  --paper-light: #f2f7fa;
  --paper-dark: #0f171d;
  --surface-light: #ffffff;
  --surface-dark: #17242d;
  --surface-raised-light: #fbfdfe;
  --surface-raised-dark: #1b2a34;
  --surface-subtle-light: #f7fafc;
  --surface-subtle-dark: #1a2831;
  --surface-tinted-light: #f5fbfe;
  --surface-tinted-dark: #172d39;
  --control-surface-light: #ffffff;
  --control-surface-dark: #101b22;
  --ink-light: #1e2b35;
  --ink-dark: #e5edf2;
  --ink-strong-light: #183f58;
  --ink-strong-dark: #d5e8f3;
  --ink-soft-light: #334b5d;
  --ink-soft-dark: #bfd0da;
  --muted-light: #526575;
  --muted-dark: #9fb2bf;
  --line-light: #cfdee7;
  --line-dark: #354b59;
  --line-soft-light: #e2edf3;
  --line-soft-dark: #2a404d;
  --soft-blue-light: #e8f5fc;
  --soft-blue-dark: #1b3949;
  --accent-line-light: #9fc9df;
  --accent-line-dark: #46768e;
  --secondary-surface-light: #dce2e6;
  --secondary-surface-dark: #222f37;
  --secondary-hover-light: #edf1f3;
  --secondary-hover-dark: #2b3e49;
  --secondary-text-light: #344b59;
  --secondary-text-dark: #d9e4ea;
  --secondary-line-light: #c2ccd2;
  --secondary-line-dark: #40545f;
  --footer-light: #e8f0f5;
  --footer-dark: #111e26;
  --image-placeholder-light: #dceaf2;
  --image-placeholder-dark: #243843;
  --paper: var(--paper-light);
  --surface: var(--surface-light);
  --surface-raised: var(--surface-raised-light);
  --surface-subtle: var(--surface-subtle-light);
  --surface-tinted: var(--surface-tinted-light);
  --control-surface: var(--control-surface-light);
  --ink: var(--ink-light);
  --ink-strong: var(--ink-strong-light);
  --ink-soft: var(--ink-soft-light);
  --muted: var(--muted-light);
  --line: var(--line-light);
  --line-soft: var(--line-soft-light);
  --soft-blue: var(--soft-blue-light);
  --accent-line: var(--accent-line-light);
  --accent-ink: var(--brand-dark);
  --accent-hover: var(--brand-deep);
  --accent-solid: var(--brand-dark);
  --interaction-beam-strong: color-mix(in srgb, var(--accent-hover) 14%, transparent);
  --interaction-beam-soft: color-mix(in srgb, var(--accent-hover) 5%, transparent);
  --secondary-surface: var(--secondary-surface-light);
  --secondary-hover: var(--secondary-hover-light);
  --secondary-text: var(--secondary-text-light);
  --secondary-line: var(--secondary-line-light);
  --footer: var(--footer-light);
  --image-placeholder: var(--image-placeholder-light);
  --on-accent: #ffffff;
  --focus: #ffd166;
  --notice-border: var(--line);
  --notice-accent: var(--brand);
  --notice-surface: var(--surface-raised);
  --notice-separator: var(--line-soft);
  --notice-heading: var(--accent-ink);
  --notice-meta: var(--muted);
  --notice-text: var(--ink-soft);
  --external-line: var(--secondary-line);
  --external-ink: var(--secondary-text);
  --external-surface: var(--secondary-surface);
  --external-hover: var(--secondary-hover);
  --external-meta: var(--muted);
  --status-line: var(--accent-line);
  --status-ink: var(--accent-ink);
  --status-surface: var(--soft-blue);
  --success-line: #92c8aa;
  --success-line: light-dark(#92c8aa, #4e8365);
  --success-ink: #205f3e;
  --success-ink: light-dark(#205f3e, #afe3c5);
  --success-surface: #edf8f2;
  --success-surface: light-dark(#edf8f2, #193227);
  --summer-line: var(--accent-line);
  --summer-ink: var(--accent-ink);
  --summer-surface: var(--soft-blue);
  --warning-line: #d8bb7a;
  --warning-line: light-dark(#d8bb7a, #806d43);
  --warning-ink: #75510d;
  --warning-ink: light-dark(#75510d, #f0cf88);
  --warning-surface: #fff8e8;
  --warning-surface: light-dark(#fff8e8, #332b1b);
  --neutral-line: #b9c2c8;
  --neutral-line: light-dark(#b9c2c8, #62727c);
  --neutral-ink: #55636c;
  --neutral-ink: light-dark(#55636c, #c3cfd5);
  --neutral-surface: #f2f4f5;
  --neutral-surface: light-dark(#f2f4f5, #273139);
  --highlight-surface: #fff8df;
  --highlight-surface: light-dark(#fff8df, #352d18);
  --highlight-line: #e2ad35;
  --highlight-line: light-dark(#e2ad35, #d5aa4a);
  color-scheme: light dark;
  font-family: "Segoe UI", Arial, sans-serif;
  font-size: 100%;
  line-height: 1.55;
}

:root[data-accent="red"] {
  --brand: #f07365;
  --brand-bright: #f0b865;
  --brand-deep: #c64d43;
  --brand-dark: #8b302b;
  --nav-background: #a63c34;
  --night-brand: #de2022;
  --night-brand-bright: #f16c6e;
  --night-brand-deep: #9a1113;
  --night-brand-dark: #6d0c0e;
  --night-nav-background: #851013;
  --soft-blue-light: #fff0ed;
  --soft-blue-dark: #4a2825;
  --accent-line-light: #e5a59e;
  --accent-line-dark: #915a55;
}

:root[data-accent="green"] {
  --brand: #76b66a;
  --brand-bright: #a6d795;
  --brand-deep: #3f8844;
  --brand-dark: #26602e;
  --nav-background: #31783a;
  --night-brand: #72c81f;
  --night-brand-bright: #b0e779;
  --night-brand-deep: #478610;
  --night-brand-dark: #315f0c;
  --night-nav-background: #3b7310;
  --soft-blue-light: #edf8ec;
  --soft-blue-dark: #203b25;
  --accent-line-light: #98c793;
  --accent-line-dark: #557d57;
}

/*
 * DON'T DELETE: these complete TVIMS palettes are intentionally dormant.
 * They are not exposed by the display controls, but are reserved for future use.
 */
:root[data-accent="teal"] {
  --brand: #5fcac5;
  --brand-bright: #96e3df;
  --brand-deep: #1c928e;
  --brand-dark: #0f6664;
  --nav-background: #137974;
  --soft-blue-light: #e7f7f5;
  --soft-blue-dark: #173b3a;
  --accent-line-light: #83c9c5;
  --accent-line-dark: #477d79;
}

:root[data-accent="violet"] {
  --brand: #aaa0f5;
  --brand-bright: #c9c3ff;
  --brand-deep: #7363c4;
  --brand-dark: #51428f;
  --nav-background: #5d4ca6;
  --soft-blue-light: #f1efff;
  --soft-blue-dark: #302d50;
  --accent-line-light: #b7afe8;
  --accent-line-dark: #68618e;
}

:root[data-accent="amber"] {
  --brand: #dca43a;
  --brand-bright: #f0c36a;
  --brand-deep: #a96b10;
  --brand-dark: #704307;
  --nav-background: #89550a;
  --soft-blue-light: #fff6e5;
  --soft-blue-dark: #44321a;
  --accent-line-light: #dab26c;
  --accent-line-dark: #8c6a34;
}

:root[data-theme="light"] { color-scheme: light; }

:root[data-theme="dark"] {
  --brand: var(--night-brand);
  --brand-bright: var(--night-brand-bright);
  --brand-deep: var(--night-brand-deep);
  --brand-dark: var(--night-brand-dark);
  --nav-background: var(--night-nav-background);
  --picker-blue: #1dbfea;
  --picker-green: #72c81f;
  --picker-red: #de2022;
  --masthead-background: linear-gradient(112deg, var(--brand-deep), var(--brand) 62%, var(--brand-bright));
  --paper: var(--paper-dark);
  --surface: var(--surface-dark);
  --surface-raised: var(--surface-raised-dark);
  --surface-subtle: var(--surface-subtle-dark);
  --surface-tinted: var(--surface-tinted-dark);
  --control-surface: var(--control-surface-dark);
  --ink: var(--ink-dark);
  --ink-strong: var(--ink-strong-dark);
  --ink-soft: var(--ink-soft-dark);
  --muted: var(--muted-dark);
  --line: var(--line-dark);
  --line-soft: var(--line-soft-dark);
  --soft-blue: var(--soft-blue-dark);
  --accent-line: var(--accent-line-dark);
  --accent-ink: var(--brand-bright);
  --accent-hover: var(--brand);
  --secondary-surface: var(--secondary-surface-dark);
  --secondary-hover: var(--secondary-hover-dark);
  --secondary-text: var(--secondary-text-dark);
  --secondary-line: var(--secondary-line-dark);
  --footer: var(--footer-dark);
  --image-placeholder: var(--image-placeholder-dark);
  color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --brand: var(--night-brand);
    --brand-bright: var(--night-brand-bright);
    --brand-deep: var(--night-brand-deep);
    --brand-dark: var(--night-brand-dark);
    --nav-background: var(--night-nav-background);
    --picker-blue: #1dbfea;
    --picker-green: #72c81f;
    --picker-red: #de2022;
    --masthead-background: linear-gradient(112deg, var(--brand-deep), var(--brand) 62%, var(--brand-bright));
    --paper: var(--paper-dark);
    --surface: var(--surface-dark);
    --surface-raised: var(--surface-raised-dark);
    --surface-subtle: var(--surface-subtle-dark);
    --surface-tinted: var(--surface-tinted-dark);
    --control-surface: var(--control-surface-dark);
    --ink: var(--ink-dark);
    --ink-strong: var(--ink-strong-dark);
    --ink-soft: var(--ink-soft-dark);
    --muted: var(--muted-dark);
    --line: var(--line-dark);
    --line-soft: var(--line-soft-dark);
    --soft-blue: var(--soft-blue-dark);
    --accent-line: var(--accent-line-dark);
    --accent-ink: var(--brand-bright);
    --accent-hover: var(--brand);
    --secondary-surface: var(--secondary-surface-dark);
    --secondary-hover: var(--secondary-hover-dark);
    --secondary-text: var(--secondary-text-dark);
    --secondary-line: var(--secondary-line-dark);
    --footer: var(--footer-dark);
    --image-placeholder: var(--image-placeholder-dark);
  }
}

* { box-sizing: border-box; }

html { background: var(--paper); color: var(--ink); scroll-behavior: smooth; }
body { margin: 0; min-width: 18rem; }

a { color: var(--accent-ink); text-underline-offset: 0.16em; }
a:hover { color: var(--accent-hover); }
a:focus-visible,
summary:focus-visible {
  outline: 0.2rem solid var(--focus);
  outline-offset: 0.16rem;
}

.shell { width: min(74rem, calc(100% - 2rem)); margin-inline: auto; }

.skip-link {
  position: fixed;
  top: 0.65rem;
  left: 0.65rem;
  z-index: 100;
  padding: 0.55rem 0.8rem;
  border-radius: 0.25rem;
  color: var(--on-accent);
  background: var(--accent-solid);
  transform: translateY(-180%);
}
.skip-link:focus { transform: none; }
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.site-header {
  color: white;
  background: var(--masthead-background);
}

.brand {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 3vw, 2.4rem);
  min-height: 6.25rem;
  padding-block: 0.7rem;
}

.brand__logos {
  display: block;
  width: clamp(13rem, 23vw, 18.5rem);
  aspect-ratio: 1194 / 379;
  flex: 0 0 auto;
}
.brand__logo { display: none; width: 100%; height: 100%; }
.brand__logo--light {
  display: block;
  background: center / contain no-repeat url("../images/nsu_logo_star_blue.png");
}
.brand__logo--dark { object-fit: contain; }

:root[data-accent="green"] .brand__logo--light { background-image: url("../images/nsu_logo_star_green.png"); }
:root[data-accent="red"] .brand__logo--light { background-image: url("../images/nsu_logo_star_coral.png"); }

:root[data-theme="dark"] .brand__logo--light { display: none; }
:root[data-theme="dark"] .brand__logo--dark { display: block; }

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .brand__logo--light { display: none; }
  :root:not([data-theme="light"]) .brand__logo--dark { display: block; }
}

.brand__text { max-width: 47rem; text-shadow: 0 0.08rem 0.16rem rgb(0 0 0 / 24%); }
.brand__title { font-size: clamp(1.15rem, 2vw, 1.65rem); font-weight: 750; line-height: 1.16; }
.brand__mobile-title,
.mobile-nav-toggle { display: none; }
.brand__subtitle { margin-top: 0.3rem; font-size: 0.95rem; opacity: 0.93; }

.site-nav {
  color: white;
  background: var(--nav-background);
}
.primary-nav {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 0;
  margin-block: 0;
  padding: 0;
  list-style: none;
}
.primary-nav__item { position: relative; margin: 0; }
.primary-nav__item--settings { margin-left: auto; }
.nav-link,
.nav-group > summary,
.display-settings > summary {
  display: flex;
  align-items: center;
  min-height: 2.45rem;
  padding: 0.45rem 0.68rem;
  color: white;
  font-size: 0.79rem;
  font-weight: 650;
  line-height: 1.15;
  text-decoration: none;
  white-space: nowrap;
}
.nav-link:hover,
.nav-group > summary:hover,
.display-settings > summary:hover,
.nav-link--current {
  color: white;
  background: rgb(0 0 0 / 22%);
}
.nav-link--current { box-shadow: inset 0 -0.2rem 0 white; }

.nav-group > summary,
.display-settings > summary { cursor: pointer; list-style: none; }
.nav-group > summary::-webkit-details-marker,
.display-settings > summary::-webkit-details-marker { display: none; }
.nav-group > summary::after {
  content: "+";
  width: 1em;
  margin-left: 0.4rem;
  font-size: 1rem;
  font-weight: 500;
  text-align: center;
}
.nav-group[open] > summary { background: rgb(0 0 0 / 28%); }
.nav-group[open] > summary::after { content: "−"; }
.display-settings[open] > summary { background: rgb(0 0 0 / 28%); }
.display-settings > summary::after {
  content: "◐";
  margin-left: 0.4rem;
  font-size: 0.9rem;
}
.nav-group--current > summary {
  background: rgb(0 0 0 / 22%);
  box-shadow: inset 0 -0.2rem 0 white;
}

.nav-group__panel {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 20;
  width: max-content;
  min-width: 17rem;
  max-width: min(28rem, calc(100vw - 2rem));
  max-height: 65vh;
  margin: 0;
  padding: 0.35rem;
  overflow-y: auto;
  border: 1px solid rgb(255 255 255 / 30%);
  border-radius: 0 0 0.35rem 0.35rem;
  background: var(--nav-background);
  box-shadow: 0 0.8rem 2rem rgb(0 0 0 / 26%);
  list-style: none;
}
.primary-nav__item:nth-last-child(-n + 2) .nav-group__panel { right: 0; left: auto; }
.nav-group__panel li + li { border-top: 1px solid rgb(255 255 255 / 18%); }
.nav-group__panel a {
  display: block;
  padding: 0.43rem 0.58rem;
  color: white;
  font-size: 0.86rem;
  line-height: 1.3;
  text-decoration: none;
}
.nav-group__panel a:hover { color: white; background: rgb(0 0 0 / 24%); }
.nav-group__panel a[aria-current="page"] {
  color: white;
  background: rgb(0 0 0 / 34%);
  box-shadow: inset 0.18rem 0 0 white;
}

.display-settings__panel {
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 21;
  width: min(22rem, calc(100vw - 1rem));
  padding: 0.7rem;
  border: 1px solid var(--line);
  border-top: 0.22rem solid var(--brand);
  border-radius: 0 0 0.35rem 0.35rem;
  color: var(--ink);
  background: var(--surface);
  box-shadow: 0 0.8rem 2rem rgb(0 0 0 / 26%);
}
.display-settings fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.display-settings fieldset + fieldset { margin-top: 0.65rem; }
.display-settings legend {
  margin-bottom: 0.3rem;
  color: var(--ink-strong);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}
.display-settings__choices {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.3rem;
}
.display-settings__choices label { position: relative; min-width: 0; }
.display-settings__choices input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}
.display-settings__choices span {
  display: flex;
  min-height: 2.15rem;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.35rem 0.42rem;
  border: 1px solid var(--line);
  border-radius: 0.25rem;
  color: var(--ink-soft);
  background: var(--surface-raised);
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}
.display-settings__choices input:checked + span {
  border-color: var(--brand-deep);
  color: var(--accent-ink);
  background: var(--soft-blue);
  box-shadow: inset 0 -0.16rem 0 var(--brand-deep);
}
.display-settings__choices input:focus-visible + span {
  outline: 0.2rem solid var(--focus);
  outline-offset: 0.12rem;
}
.display-settings__choices--accent i {
  width: 0.72rem;
  height: 0.72rem;
  flex: 0 0 auto;
  border: 1px solid rgb(0 0 0 / 18%);
  border-radius: 50%;
  background: var(--picker-blue);
}
.display-settings__choices--accent input[value="green"] + span i { background: var(--picker-green); }
.display-settings__choices--accent input[value="red"] + span i { background: var(--picker-red); }

.page { padding-block: 1.15rem 2rem; }
.page-layout,
.page-layout__content { min-width: 0; }
.section-index[hidden] { display: none; }
.section-index {
  padding: 0.75rem;
  border: 1px solid var(--line);
  border-top: 0.22rem solid var(--brand);
  border-radius: 0.35rem;
  background: var(--surface);
  box-shadow: 0 0.25rem 1rem rgb(0 0 0 / 6%);
}
.section-index__compact,
.section-index__panel { min-width: 0; }
.section-index__summary { display: none; }
.section-index__compact { display: none; }
.mobile-navigation { display: none; }
.section-index__title {
  margin: 0 0 0.45rem;
  color: var(--accent-ink);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.035em;
  line-height: 1.25;
  text-transform: uppercase;
}
.section-index__top {
  display: block;
  margin-bottom: 0.25rem;
  padding: 0.35rem 0.25rem;
  color: var(--accent-ink);
  font-size: 0.78rem;
  font-weight: 750;
  line-height: 1.3;
  text-decoration: none;
}
.section-index__top:hover { background: var(--soft-blue); }
.section-index__links {
  margin: 0;
  padding: 0;
  list-style: none;
}
.section-index__links li[hidden] { display: none; }
.section-index__links > li + li { border-top: 1px solid var(--line-soft); }
.section-index__links a {
  display: block;
  padding: 0.38rem 0.25rem;
  color: var(--ink-soft);
  font-size: 0.78rem;
  font-weight: 650;
  line-height: 1.3;
  text-decoration: none;
}
.section-index__links a:hover { color: var(--accent-ink); background: var(--soft-blue); }
.section-index__links a[aria-current="location"] {
  color: var(--accent-ink);
  background: var(--soft-blue);
  box-shadow: inset 0.18rem 0 0 var(--brand-deep);
}
.section-index__sublinks {
  margin: 0 0 0.3rem;
  padding: 0 0 0 0.65rem;
  border-left: 1px solid var(--line-soft);
  list-style: none;
}
.section-index__sublinks a {
  padding-block: 0.25rem;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 600;
}
.announcement-feed[hidden] { display: none; }
.announcement-feed {
  min-width: 0;
  padding: 0.75rem;
  border: 1px solid var(--notice-border);
  border-top: 0.22rem solid var(--notice-accent);
  border-radius: 0.35rem;
  background: var(--notice-surface);
  box-shadow: 0 0.3rem 1.1rem rgb(0 0 0 / 9%);
}
.announcement-feed__heading {
  display: flex;
  justify-content: space-between;
  gap: 0.65rem;
  align-items: baseline;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid var(--notice-separator);
}
.announcement-feed__heading h2 {
  margin: 0;
  color: var(--notice-heading);
  font-size: 0.84rem;
  letter-spacing: 0.035em;
  line-height: 1.25;
  text-transform: uppercase;
}
.announcement-feed__heading h2 span:not(:empty)::before { content: "· "; }
.announcement-feed__heading a { font-size: 0.76rem; font-weight: 750; }
.announcement-feed > ol {
  margin: 0;
  padding: 0;
  list-style: none;
}
.announcement-feed > ol > li { padding: 0.65rem 0; }
.announcement-feed > ol > li + li { border-top: 1px solid var(--notice-separator); }
.announcement-feed h3 {
  margin: 0.2rem 0;
  font-size: 0.91rem;
  line-height: 1.3;
}
.announcement-feed__meta {
  margin: 0;
  color: var(--notice-meta);
  font-size: 0.7rem;
  font-weight: 750;
  line-height: 1.3;
}
.announcement-feed__summary {
  display: -webkit-box;
  margin: 0.25rem 0 0;
  overflow: hidden;
  color: var(--notice-text);
  font-size: 0.76rem;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.article-content {
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid var(--line);
  border-top: 0.28rem solid var(--brand);
  border-radius: 0.35rem;
  background: var(--surface);
  box-shadow: 0 0.35rem 1.4rem rgb(0 0 0 / 7%);
}
.article-content h1,
.article-content h2 { color: var(--accent-ink); text-wrap: balance; }
.article-content h1 {
  margin: 0 0 1rem;
  font-size: clamp(1.7rem, 3.2vw, 2.35rem);
  line-height: 1.12;
  letter-spacing: -0.022em;
}
.article-content h2 {
  width: 100%;
  margin: 1.6rem 0 0.65rem;
  padding-bottom: 0.32rem;
  border-bottom: 1px solid var(--line);
  font-size: clamp(1.2rem, 2vw, 1.45rem);
  line-height: 1.25;
  scroll-margin-top: 1rem;
}
.article-content p { width: 100%; margin: 0.62rem 0; }
.article-content h1 + p { color: var(--ink-soft); font-size: 1.04rem; }
.article-content > ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  gap: 0.3rem 1.7rem;
  margin: 0.7rem 0 1rem;
  padding-left: 1.35rem;
}
.article-content li::marker { color: var(--brand-deep); }
.article-content strong { color: var(--ink-strong); }

.education-nav {
  border-bottom: 1px solid var(--secondary-line);
  color: var(--secondary-text);
  background: var(--secondary-surface);
  box-shadow: inset 0 0.06rem 0 rgb(255 255 255 / 70%);
}
.education-nav__items {
  display: flex;
  align-items: stretch;
  gap: 0;
  margin-block: 0;
  padding: 0;
  list-style: none;
}
.education-nav li { border-left: 1px solid var(--secondary-line); }
.education-nav li:last-child { border-right: 1px solid var(--secondary-line); }
.education-nav a {
  display: flex;
  align-items: center;
  min-height: 2.35rem;
  padding: 0.45rem 0.85rem;
  color: var(--secondary-text);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
}
.education-nav a:hover { color: var(--accent-ink); background: var(--secondary-hover); }
.education-nav a[aria-current="page"] {
  color: var(--accent-ink);
  background: var(--surface);
  box-shadow: inset 0 -0.2rem 0 var(--brand-deep);
}

.seminar-nav {
  border-bottom: 1px solid var(--secondary-line);
  color: var(--secondary-text);
  background: var(--secondary-surface);
  box-shadow: inset 0 0.06rem 0 rgb(255 255 255 / 70%);
}
.seminar-nav__items {
  display: flex;
  align-items: stretch;
  margin-block: 0;
  padding: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  list-style: none;
}
.seminar-nav li { flex: 0 0 auto; border-left: 1px solid var(--secondary-line); }
.seminar-nav li:last-child { border-right: 1px solid var(--secondary-line); }
.seminar-nav a {
  position: relative;
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  justify-content: center;
  gap: 0.08rem;
  min-height: 3.15rem;
  max-width: 19rem;
  padding: 0.42rem 0.78rem;
  color: var(--secondary-text);
  font-size: 0.86rem;
  font-weight: 750;
  line-height: 1.25;
  text-decoration: none;
}
.seminar-nav a:hover { color: var(--accent-ink); background: var(--secondary-hover); }
.seminar-nav a[aria-current="page"] {
  color: var(--accent-ink);
  background: var(--surface);
  box-shadow: inset 0 -0.2rem 0 var(--brand-deep);
}
.seminar-nav__name { display: block; }
.seminar-nav__meta {
  color: var(--muted);
  font-size: 0.67rem;
  font-weight: 650;
  line-height: 1.25;
}
.seminar-nav__link--active .seminar-nav__meta { color: var(--success-ink); }
.seminar-nav__link--summer-break .seminar-nav__meta { color: var(--summer-ink); }
.seminar-nav__link--paused .seminar-nav__meta { color: var(--warning-ink); }
.seminar-nav__link--ended .seminar-nav__meta { color: var(--neutral-ink); }
.seminar-nav__item--external { border-left: 1px dashed var(--secondary-line); }
.seminar-nav__external { margin-left: 0.18rem; color: var(--muted); font-size: 0.72rem; }
.seminar-status {
  display: inline-block;
  padding: 0.08rem 0.4rem;
  border: 1px solid var(--status-line);
  border-radius: 0.25rem;
  color: var(--status-ink);
  background: var(--status-surface);
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.3;
  white-space: nowrap;
}
.seminar-status--active { border-color: var(--success-line); color: var(--success-ink); background: var(--success-surface); }
.seminar-status--summer-break { border-color: var(--summer-line); color: var(--summer-ink); background: var(--summer-surface); }
.seminar-status--paused { border-color: var(--warning-line); color: var(--warning-ink); background: var(--warning-surface); }
.seminar-status--ended { border-color: var(--neutral-line); color: var(--neutral-ink); background: var(--neutral-surface); }

.announcement-archive-note { color: var(--muted); font-size: 0.88rem; }
.announcement-sections {
  display: grid;
  gap: 1.35rem;
  margin-top: 0.9rem;
}
.announcement-sections[hidden] { display: none; }
.announcement-section {
  min-width: 0;
  scroll-margin-top: 1rem;
}
.announcement-section__header {
  display: grid;
  gap: 0.18rem;
  margin: 0 0 0.6rem;
  padding-bottom: 0.42rem;
  border-bottom: 1px solid var(--line);
}
.announcement-section__header h2 {
  display: flex;
  gap: 0.5rem;
  align-items: baseline;
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 1.18rem;
}
.announcement-section__description {
  margin: 0 !important;
  color: var(--muted);
  font-size: 0.78rem;
}
.announcement-section__count {
  display: inline-flex;
  min-width: 1.65rem;
  justify-content: center;
  flex: 0 0 auto;
  margin-left: auto;
  padding: 0.08rem 0.42rem;
  border: 1px solid var(--line);
  border-radius: 0.25rem;
  color: var(--muted);
  background: var(--surface-subtle);
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.3;
}
.catalogue-section__count {
  display: inline-flex;
  flex: 0 0 auto;
  min-width: 1.65rem;
  justify-content: center;
  margin-left: 0;
  padding: 0.08rem 0.42rem;
  border: 1px solid var(--accent-line);
  border-radius: 999px;
  color: var(--accent-ink);
  background: var(--surface-subtle);
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.3;
  vertical-align: 0.12em;
}
.announcement-section--active .announcement-section__header { border-bottom-color: var(--accent-line); }
.announcement-section--active .announcement-section__count {
  border-color: var(--accent-line);
  color: var(--accent-ink);
}
.announcement-section__empty {
  margin: 0;
  padding: 0.75rem 0.9rem;
  border: 1px dashed var(--line);
  border-radius: 0.3rem;
  color: var(--muted);
  background: var(--surface-subtle);
  font-size: 0.82rem;
}
.announcement-section__empty[hidden] { display: none; }
.announcement-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.announcement-list--active { grid-template-columns: minmax(0, 1fr); }
.announcement-card {
  min-width: 0;
  padding: 0.8rem 0.9rem;
  border: 1px solid var(--line);
  border-left: 0.24rem solid var(--neutral-line);
  border-radius: 0.3rem;
  background: var(--surface-raised);
}
.announcement-card[data-announcement-state="active"] { border-left-color: var(--accent-ink); }
.announcement-card[data-announcement-state="archived"] { opacity: 0.82; }
.announcement-card h3 { margin: 0.3rem 0; font-size: 1rem; line-height: 1.32; }
.announcement-card > p { margin: 0.3rem 0 0; font-size: 0.82rem; line-height: 1.45; }
.announcement-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.6rem;
  color: var(--muted);
  font-size: 0.72rem !important;
  font-weight: 700;
}
.announcement-card__status:not(:empty) {
  padding: 0.02rem 0.35rem;
  border-radius: 0.25rem;
  color: var(--neutral-ink);
  background: var(--neutral-surface);
}
[data-announcement-state="active"] .announcement-card__status {
  border: 1px solid var(--accent-line);
  color: var(--accent-ink);
  background: var(--control-surface);
}
.announcement-card__status[data-state="active"] {
  border: 1px solid var(--accent-line);
  color: var(--accent-ink);
  background: var(--control-surface);
}
.announcement-page__back { margin-top: 0 !important; font-size: 0.82rem; font-weight: 750; }
.announcement-page__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0.8rem;
  margin-bottom: 0.55rem !important;
  color: var(--notice-meta);
  font-size: 0.8rem;
  font-weight: 750;
}
.announcement-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr));
  gap: 0.8rem;
  margin: 1rem 0;
}
.announcement-gallery figure {
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 0.3rem;
  overflow: hidden;
  background: var(--surface-subtle);
}
.announcement-gallery img { display: block; width: 100%; height: auto; }
.announcement-gallery figcaption { padding: 0.55rem 0.7rem; color: var(--muted); font-size: 0.8rem; }
.article-content > .announcement-page__seminar-entries { display: block; padding: 0; list-style: none; }
.announcement-page__source { margin-top: 1.2rem !important; color: var(--muted); font-size: 0.82rem; }

.materials-page__header { margin-bottom: 1rem; }
.materials-page__header h1 { margin-bottom: 0.55rem; }
.materials-page__lead { max-width: 61rem; margin: 0 !important; color: var(--ink-soft); font-size: 1rem; }
.materials-page__jump {
  display: none;
  margin-top: 0.65rem;
  min-height: 1.75rem;
  align-items: center;
  font-size: 0.82rem;
  font-weight: 750;
}
.materials-controls {
  display: grid;
  grid-template-columns: minmax(18rem, 1fr) minmax(10rem, 0.34fr) minmax(8rem, 0.24fr);
  gap: 0.65rem 0.9rem;
  margin: 0.85rem 0 1.15rem;
  padding: 0.75rem;
  border: 1px solid var(--accent-line);
  border-radius: 0.35rem;
  background: var(--surface-tinted);
}
.materials-controls[hidden] { display: none; }
.materials-search,
.materials-filter {
  display: grid;
  gap: 0.2rem;
  color: var(--ink-soft);
  font-size: 0.72rem;
  font-weight: 750;
}
.materials-controls input,
.materials-controls select {
  width: 100%;
  min-height: 2.2rem;
  padding: 0.38rem 0.5rem;
  border: 1px solid var(--accent-line);
  border-radius: 0.25rem;
  color: var(--ink);
  background: var(--control-surface);
  font: inherit;
  font-size: 0.84rem;
}
.materials-controls input:focus-visible,
.materials-controls select:focus-visible,
.materials-controls button:focus-visible { outline: 0.2rem solid var(--focus); outline-offset: 0.12rem; }
.materials-controls__status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  grid-column: 1 / -1;
  gap: 0.75rem;
  min-height: 1.8rem;
}
.materials-controls__status p { margin: 0; color: var(--muted); font-size: 0.76rem; font-weight: 700; }
.materials-controls__status button {
  padding: 0.27rem 0.55rem;
  border: 1px solid var(--accent-line);
  border-radius: 0.25rem;
  color: var(--accent-ink);
  background: var(--control-surface);
  cursor: pointer;
  font: inherit;
  font-size: 0.74rem;
  font-weight: 750;
}
.materials-controls__status button:disabled {
  border-color: var(--line);
  color: var(--muted);
  background: var(--surface-subtle);
  cursor: not-allowed;
  opacity: 0.75;
}
.materials-empty {
  padding: 0.85rem;
  border: 1px solid var(--warning-line);
  border-radius: 0.3rem;
  color: var(--warning-ink);
  background: var(--warning-surface);
}
.materials-group[hidden],
.material-card[hidden],
.materials-empty[hidden] { display: none; }
.materials-group > h2 { display: flex; align-items: baseline; gap: 0.35rem; }
.materials-group__description { margin: -0.2rem 0 0.6rem !important; color: var(--muted); font-size: 0.86rem; }
.materials-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.material-card {
  min-width: 0;
  padding: 0.72rem 0.78rem 0.78rem;
  border: 1px solid var(--line);
  border-left: 0.22rem solid var(--neutral-line);
  border-radius: 0.3rem;
  background: var(--surface-raised);
}
.material-card__subjects { display: flex; flex-wrap: wrap; align-items: center; gap: 0.24rem; margin-bottom: 0.32rem; }
.topic-tag {
  display: inline-block;
  margin: 0 0.08rem;
  padding: 0.08rem 0.38rem;
  border: 1px solid var(--accent-line);
  border-radius: 999px;
  color: var(--accent-ink);
  background: var(--surface-tinted);
  font-size: 0.68rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.015em;
}
.topic-tag--statistics {
  border-color: var(--warning-line);
  color: var(--warning-ink);
  background: var(--warning-surface);
}
.material-card h3 { margin: 0; color: var(--ink-strong); font-size: 1rem; line-height: 1.28; }
.material-card__author { margin: 0.18rem 0 0 !important; color: var(--accent-ink); font-size: 0.79rem; font-weight: 750; }
.material-card__description { margin: 0.38rem 0 !important; color: var(--ink-soft); font-size: 0.82rem; line-height: 1.42; }
.material-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.18rem 0.7rem;
  margin: 0.42rem 0 0.5rem;
  color: var(--muted);
  font-size: 0.7rem;
}
.material-card__meta div { display: flex; gap: 0.22rem; }
.material-card__meta dt { font-weight: 800; }
.material-card__meta dt::after { content: ":"; }
.material-card__meta dd { margin: 0; }
.material-links { display: grid; gap: 0.3rem; margin: 0.52rem 0 0; padding: 0; list-style: none; }
.material-links li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.35rem 0.65rem;
  align-items: baseline;
  padding-top: 0.3rem;
  border-top: 1px solid var(--line-soft);
}
.material-links a {
  display: inline-flex;
  min-width: 0;
  min-height: 1.75rem;
  align-items: center;
  font-size: 0.8rem;
  font-weight: 750;
  line-height: 1.35;
}
.material-link__info { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.2rem; color: var(--muted); font-size: 0.7rem; }
.material-link__info > span + span::before { content: "· "; }
.material-link__format {
  padding: 0.03rem 0.28rem;
  border: 1px solid var(--accent-line);
  border-radius: 0.18rem;
  color: var(--accent-ink);
  background: var(--surface-tinted);
  font-weight: 800;
  letter-spacing: 0.035em;
}
.material-card__note { margin: 0.52rem 0 0 !important; color: var(--muted); font-size: 0.72rem; line-height: 1.4; }
.material-card__note { padding-left: 0.55rem; border-left: 0.16rem solid var(--accent-line); }
.material-archive { margin-top: 0.52rem; border-top: 1px solid var(--line); }
.material-archive summary {
  padding: 0.38rem 0 0;
  color: var(--accent-ink);
  font-size: 0.76rem;
  font-weight: 800;
  cursor: pointer;
}
.material-archive summary span {
  display: inline-block;
  min-width: 1.25rem;
  margin-left: 0.18rem;
  padding: 0.02rem 0.25rem;
  border-radius: 0.7rem;
  color: var(--on-accent);
  background: var(--accent-solid);
  text-align: center;
  font-size: 0.62rem;
}
.material-links--archive { margin-top: 0.25rem; }

.courses-page__header { margin-bottom: 1rem; }
.courses-page__heading-row {
  display: flex;
  justify-content: space-between;
  gap: 0.7rem 1.2rem;
  align-items: flex-start;
}
.courses-page__heading-row h1 { margin-bottom: 0.42rem; }
.courses-page__edition {
  margin: 0 !important;
  color: var(--muted) !important;
  font-size: 0.8rem !important;
  font-weight: 700;
}
.courses-page__edition span {
  display: inline-block;
  padding: 0.03rem 0.35rem;
  border: 1px solid var(--accent-line);
  border-radius: 0.25rem;
  color: var(--accent-ink);
  background: var(--surface-tinted);
  font-weight: 800;
}
.courses-page__archive-link {
  display: inline-flex;
  min-height: 2rem;
  align-items: center;
  flex: 0 0 auto;
  padding: 0.24rem 0.5rem;
  border: 1px solid var(--accent-line);
  border-radius: 0.25rem;
  background: var(--control-surface);
  font-size: 0.76rem;
  font-weight: 750;
  text-decoration: none;
}
.courses-page__archive-link:hover { background: var(--soft-blue); text-decoration: underline; }
.courses-page__lead { max-width: 61rem; margin: 0.65rem 0 0 !important; color: var(--ink-soft); font-size: 1rem; }
.course-faculty__header h2 { display: flex; align-items: baseline; gap: 0.35rem; }
.course-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 0.75rem 0 1.35rem;
  padding: 0;
  list-style: none;
}
.course-card {
  min-width: 0;
  padding: 0.72rem 0.82rem 0.78rem;
  border: 1px solid var(--line);
  border-left: 0.22rem solid var(--neutral-line);
  border-radius: 0.3rem;
  background: var(--surface-raised);
}
.course-card > h3 {
  margin-top: 0;
  margin-bottom: 0.35rem;
  color: var(--ink-strong);
  font-size: 1.04rem;
  line-height: 1.28;
}
.course-card__meta {
  display: grid;
  gap: 0.2rem;
  margin: 0.42rem 0 0.58rem;
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.4;
}
.course-card__meta div { display: grid; grid-template-columns: minmax(6.4rem, 0.38fr) minmax(0, 1fr); gap: 0.3rem 0.65rem; }
.course-card__meta dt { color: var(--muted); font-weight: 750; }
.course-card__meta dd { min-width: 0; margin: 0; color: var(--ink-soft); }
.course-card__meta a { font-weight: 700; }
.course-card__resources { padding-top: 0.45rem; border-top: 1px solid var(--line-soft); }
.course-card__resources h4 {
  margin: 0 0 0.18rem;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}
.course-card__resources ul { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.course-card__resources li + li { border-top: 1px solid var(--line-soft); }
.course-card__resources a {
  display: inline-flex;
  min-height: 1.75rem;
  align-items: center;
  font-size: 0.8rem;
  font-weight: 750;
  line-height: 1.35;
}
.courses-index-page__header h1 { margin-bottom: 0.55rem; }
.courses-index-page__header p { margin: 0 !important; color: var(--ink-soft); font-size: 1rem; }
.course-year-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
  margin: 1rem 0;
  padding: 0;
  list-style: none;
}
.course-year-card {
  min-width: 0;
  padding: 0.72rem 0.82rem;
  border: 1px solid var(--line);
  border-left: 0.22rem solid var(--neutral-line);
  border-radius: 0.3rem;
  background: var(--surface-raised);
}
.course-year-card--current { border-left-color: var(--accent-ink); }
.course-year-card__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 0.4rem 0.8rem; }
.course-year-card h2 { margin: 0; padding: 0; border: 0; font-size: 1.02rem; line-height: 1.3; }
.course-year-card h2 a { display: inline-flex; min-height: 1.75rem; align-items: center; }
.course-year-card__status {
  flex: 0 0 auto;
  padding: 0.03rem 0.35rem;
  border: 1px solid var(--accent-line);
  border-radius: 0.25rem;
  color: var(--accent-ink);
  background: var(--surface-tinted);
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.35;
}
.course-year-card__status--archive { border-color: var(--neutral-line); color: var(--neutral-ink); background: var(--neutral-surface); }
.course-year-card > p { margin: 0.35rem 0 0; color: var(--muted); font-size: 0.76rem; font-weight: 700; }
.courses-index-page__gap-note {
  margin: 1rem 0 0 !important;
  padding: 0.65rem 0.75rem;
  border: 1px dashed var(--line);
  border-radius: 0.3rem;
  color: var(--muted);
  background: var(--surface-subtle);
  font-size: 0.8rem;
}

.seminar-page__header { margin-bottom: 0.9rem; }
.seminar-page__title-row {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem 1.2rem;
  align-items: flex-start;
}
.seminar-page__title-row h1 { margin-bottom: 0.7rem; }
.seminar-page__state {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 0.25rem;
  align-items: flex-end;
  padding-top: 0.18rem;
}
.seminar-page__state .seminar-status { font-size: 0.72rem; }
.seminar-page__count { color: var(--muted); font-size: 0.7rem; font-weight: 700; white-space: nowrap; }
.seminar-details {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: 0.4rem 1rem;
  margin: 0 0 0.8rem;
  padding: 0.65rem 0.8rem;
  border: 1px solid var(--line);
  border-radius: 0.3rem;
  background: var(--surface-subtle);
}
.seminar-details div { min-width: 0; }
.seminar-details dt { color: var(--ink-strong); font-size: 0.78rem; font-weight: 750; }
.seminar-details dd { margin: 0.08rem 0 0; font-size: 0.9rem; line-height: 1.35; }
.seminar-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.6rem 0.85rem;
  align-items: start;
  margin: 0.95rem 0 1rem;
  padding: 0.7rem;
  border: 1px solid var(--accent-line);
  border-radius: 0.35rem;
  background: var(--surface-tinted);
}
.seminar-controls[hidden] { display: none; }
.seminar-controls fieldset {
  min-width: 0;
  margin: 0;
  padding: 0.55rem 0.6rem 0.6rem;
  border: 1px solid var(--line);
  border-radius: 0.28rem;
}
.seminar-controls legend {
  padding: 0 0.28rem;
  color: var(--ink-strong);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}
.seminar-controls__filters {
  display: grid;
  grid-template-columns: minmax(11rem, 0.85fr) minmax(14rem, 1.15fr) minmax(8.5rem, 0.5fr) auto;
  gap: 0.55rem 0.7rem;
  align-items: end;
  background: var(--surface-subtle);
}
.seminar-search,
.seminar-filter {
  display: grid;
  gap: 0.2rem;
  color: var(--ink-soft);
  font-size: 0.72rem;
  font-weight: 750;
}
.seminar-controls input[type="search"],
.seminar-controls select {
  width: 100%;
  min-height: 2.2rem;
  padding: 0.38rem 0.5rem;
  border: 1px solid var(--accent-line);
  border-radius: 0.25rem;
  color: var(--ink);
  background: var(--control-surface);
  font: inherit;
  font-size: 0.84rem;
}
.seminar-toggle {
  display: flex;
  gap: 0.38rem;
  align-items: center;
  min-height: 2.2rem;
  color: var(--ink-soft);
  font-size: 0.74rem;
  font-weight: 750;
  white-space: nowrap;
}
.seminar-toggle input { width: 1rem; height: 1rem; margin: 0; }
.seminar-toggle--view {
  grid-column: 1 / -1;
  min-height: auto;
  margin-top: 0.05rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--line);
}
.seminar-controls__status {
  display: flex;
  justify-content: space-between;
  grid-column: 1 / -1;
  gap: 0.75rem;
  align-items: center;
  min-height: 1.7rem;
}
.seminar-controls__status p { margin: 0; color: var(--muted); font-size: 0.76rem; font-weight: 700; }
.seminar-controls__status button {
  padding: 0.27rem 0.55rem;
  border: 1px solid var(--accent-line);
  border-radius: 0.25rem;
  color: var(--accent-ink);
  background: var(--control-surface);
  cursor: pointer;
  font: inherit;
  font-size: 0.74rem;
  font-weight: 750;
}
.seminar-controls input:focus-visible,
.seminar-controls select:focus-visible,
.seminar-controls button:focus-visible { outline: 0.2rem solid var(--focus); outline-offset: 0.12rem; }
.seminar-empty {
  padding: 0.85rem;
  border: 1px solid var(--warning-line);
  border-radius: 0.3rem;
  color: var(--warning-ink);
  background: var(--warning-surface);
}
.seminar-empty[hidden],
.seminar-year[hidden],
.seminar-term[hidden],
.seminar-event[hidden],
.seminar-years[hidden] { display: none; }
.seminar-years {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  margin: 1rem 0 0.15rem;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--line);
  border-radius: 0.3rem;
  background: var(--soft-blue);
  font-size: 0.86rem;
}
.seminar-years span { color: var(--ink-strong); font-weight: 750; }
.seminar-years a { text-decoration: none; }
.seminar-years a:hover { text-decoration: underline; }
.seminar-years small {
  display: inline-flex;
  min-width: 1.25rem;
  justify-content: center;
  padding: 0.02rem 0.25rem;
  border-radius: 999px;
  color: var(--on-accent);
  background: var(--accent-solid);
  font-size: 0.64rem;
  font-weight: 800;
}
.seminar-year { scroll-margin-top: 0.6rem; }
.seminar-year > h2 {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: baseline;
}
.seminar-year > h2 small { color: var(--muted); font-size: 0.68em; font-weight: 700; white-space: nowrap; }
.seminar-term { margin: 0.2rem 0 1rem; scroll-margin-top: 3.5rem; }
.seminar-term__heading {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: baseline;
  margin: 0.75rem 0 0.1rem;
  padding: 0.38rem 0.55rem;
  border-left: 0.2rem solid var(--accent-line);
  color: var(--ink-strong);
  background: var(--surface-subtle);
  font-size: 0.94rem;
  line-height: 1.3;
}
.seminar-term__heading small {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 650;
  white-space: nowrap;
}
.seminar-event {
  position: relative;
  display: grid;
  grid-template-columns: 7.2rem minmax(0, 1fr);
  gap: 0.7rem 1rem;
  padding: 0.72rem 1.65rem 0.72rem 0;
  border-top: 1px solid var(--line);
  scroll-margin-top: 3.5rem;
}
.seminar-term > .seminar-event:first-of-type { border-top: 0; }
.seminar-event:target {
  border-radius: 0.3rem;
  background: linear-gradient(105deg, var(--highlight-surface), transparent 78%);
  box-shadow: inset 0.22rem 0 0 var(--highlight-line);
}
.seminar-event__permalink {
  position: absolute;
  top: 0.72rem;
  right: 0.15rem;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 0.2rem;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.35rem;
  text-align: center;
  text-decoration: none;
}
.seminar-event__permalink:hover,
.seminar-event__permalink:focus-visible { color: var(--accent-ink); background: var(--soft-blue); }
.seminar-event__marker h4 {
  margin: 0;
  color: var(--accent-ink);
  font-size: 0.95rem;
  line-height: 1.35;
}
.seminar-event__counts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.18rem 0.45rem;
  margin: 0.25rem 0 0 !important;
  color: var(--muted);
  font-size: 0.67rem;
  font-weight: 700;
  line-height: 1.3;
}
.seminar-event__counts span + span::before { content: "· "; }
.seminar-note {
  margin: 0 0 0.45rem;
  color: var(--ink-soft);
  font-weight: 700;
}
.seminar-event__body {
  margin: 0 0 0.45rem;
  color: var(--ink-soft);
  font-weight: 700;
}
.seminar-event__body ul,
.seminar-event__body ol,
.seminar-entry__abstract ul,
.seminar-entry__abstract ol { margin: 0.25rem 0; padding-left: 1.35rem; }
.seminar-event__body pre,
.seminar-entry__abstract pre { overflow-x: auto; }
.seminar-event__body > :first-child { margin-top: 0; }
.seminar-event__body > :last-child { margin-bottom: 0; }
.seminar-event__body p { margin: 0 0 0.45rem; }
.seminar-entries {
  display: grid;
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.seminar-entries > li {
  min-width: 0;
  padding: 0.6rem 0.72rem;
  border-left: 0.2rem solid var(--line);
  border-radius: 0.18rem;
  background: var(--surface-raised);
}
.announcement-card:focus-within,
.material-card:focus-within,
.course-card:focus-within,
.seminar-entry--interactive:focus-within {
  background-image: linear-gradient(
    118deg,
    var(--interaction-beam-strong) 0,
    var(--interaction-beam-soft) 24%,
    transparent 48%
  );
}
.material-card:focus-within,
.course-card:focus-within { border-left-color: var(--accent-line); }
.seminar-entry--interactive:focus-within { border-left-color: var(--accent-line); }
@media (hover: hover) {
  .announcement-card:hover,
  .material-card:hover,
  .course-card:hover,
  .seminar-entry--interactive:hover {
    background-image: linear-gradient(
      118deg,
      var(--interaction-beam-strong) 0,
      var(--interaction-beam-soft) 24%,
      transparent 48%
    );
  }
  .material-card:hover,
  .course-card:hover { border-left-color: var(--accent-line); }
  .seminar-entry--interactive:hover { border-left-color: var(--accent-line); }
}
.seminar-entries p { margin: 0.2rem 0; }
.seminar-entry__presenter { color: var(--ink-strong); font-size: 0.88rem; font-weight: 750; }
.seminar-entry__title { font-weight: 650; line-height: 1.38; }
.seminar-entry__abstract { color: var(--ink-soft); font-size: 0.88rem; line-height: 1.45; }
.seminar-page--compact .seminar-entry__abstract { display: none; }
.seminar-entry__resources { font-size: 0.8rem; line-height: 1.4; }
.seminar-entry__resources span { color: var(--muted); font-weight: 700; }
.seminar-entry__resources a {
  display: inline-block;
  margin: 0.08rem 0.08rem 0.08rem 0;
  padding: 0.05rem 0.32rem;
  border: 1px solid var(--accent-line);
  border-radius: 0.2rem;
  background: var(--control-surface);
  font-weight: 700;
  text-decoration: none;
}
.seminar-entry__resources--links a { border-color: var(--external-line); color: var(--external-ink); background: var(--external-surface); }
.seminar-entry__resources a:hover { background: var(--soft-blue); text-decoration: underline; }
.seminar-entry__resources--links a:hover { background: var(--external-hover); }
.seminar-year__back { display: none; margin: 0.5rem 0 0 !important; font-size: 0.76rem; font-weight: 750; }

.article-content table {
  width: 100%;
  margin: 0.8rem 0 1.2rem;
  border-collapse: collapse;
  font-size: 0.9rem;
  line-height: 1.42;
}
.article-content th,
.article-content td {
  padding: 0.64rem 0.72rem;
  border: 1px solid var(--line);
  vertical-align: top;
  text-align: left;
}
.article-content th { color: var(--on-accent); background: var(--accent-solid); }
.article-content th:first-child,
.article-content td:first-child { width: 31%; }
.article-content tbody tr:nth-child(even) { background: var(--surface-subtle); }
.article-content tbody tr:hover { background: var(--soft-blue); }

.lecturer-profile__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--brand);
}
.lecturer-profile__header--with-portrait {
  grid-template-columns: minmax(8rem, 11rem) minmax(0, 1fr);
}
.lecturer-profile__identity h1 { margin-bottom: 0.3rem; }
.lecturer-profile__portrait { margin: 0; }
.lecturer-profile__portrait img,
.profile-media img { display: block; max-width: 100%; height: auto; border-radius: 0.25rem; }
.lecturer-profile__portrait figcaption,
.profile-media figcaption { margin-top: 0.3rem; color: var(--muted); font-size: 0.78rem; }
.lecturer-profile__titles {
  margin: 0.2rem 0 0.65rem;
  padding: 0;
  list-style: none;
  color: var(--muted);
  font-size: 0.94rem;
}
.lecturer-profile__titles li + li { margin-top: 0.15rem; }
.lecturer-section { margin-top: 1.35rem; }
.lecturer-section > h2 { margin-bottom: 0.55rem; }
.profile-entries {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
  gap: 0.7rem;
}
.profile-entry {
  min-width: 0;
  padding: 0.7rem 0.8rem;
  border: 1px solid var(--line);
  border-radius: 0.3rem;
  background: var(--surface-raised);
}
.profile-entry h3 { margin: 0 0 0.3rem; font-size: 1rem; }
.profile-entry > p { margin: 0.35rem 0; }
.profile-entry__organization { font-weight: 600; }
.profile-entry__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem 0.7rem;
  color: var(--muted);
  font-size: 0.84rem;
}
.supervision-summary { margin: 0.35rem 0; }
.supervision-people {
  display: grid;
  gap: 0.7rem;
}
.supervision-person {
  min-width: 0;
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--line);
  border-radius: 0.3rem;
  background: var(--surface-raised);
}
.supervision-person:target,
.supervision-stage:target {
  outline: 2px solid var(--focus);
  outline-offset: 2px;
}
.supervision-person__header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.25rem 0.8rem;
}
.supervision-person__header h3 { margin: 0; font-size: 1.02rem; }
.supervision-person__header .profile-links { margin: 0; }
.supervision-person__note,
.supervision-stage__note {
  margin: 0.38rem 0 0;
  color: var(--muted);
  font-size: 0.84rem;
}
.supervision-stage-list {
  margin: 0.55rem 0 0;
  padding: 0;
  list-style: none;
  counter-reset: supervision-stage;
}
.supervision-stage {
  position: relative;
  min-width: 0;
  padding: 0.5rem 0 0.5rem 2.1rem;
  border-top: 1px solid var(--line);
  counter-increment: supervision-stage;
}
.supervision-stage::before {
  position: absolute;
  top: 0.55rem;
  left: 0;
  display: inline-flex;
  width: 1.45rem;
  height: 1.45rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--accent-line);
  border-radius: 50%;
  color: var(--accent-ink);
  background: var(--soft-blue);
  content: counter(supervision-stage);
  font-size: 0.72rem;
  font-weight: 750;
}
.supervision-stage h4 { margin: 0 0 0.3rem; font-size: 0.94rem; }
.supervision-stage__metadata,
.supervision-stage__details { margin: 0; }
.supervision-stage__metadata {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.8rem;
  color: var(--muted);
  font-size: 0.82rem;
}
.supervision-stage__metadata > div { display: inline-flex; gap: 0.28rem; }
.supervision-stage__metadata dt,
.supervision-stage__details dt { font-weight: 700; }
.supervision-stage__metadata dd,
.supervision-stage__details dd { margin: 0; }
.supervision-stage__details {
  display: grid;
  gap: 0.2rem;
  margin-top: 0.38rem;
  font-size: 0.88rem;
}
.supervision-stage__details > div {
  display: grid;
  grid-template-columns: minmax(4.5rem, 0.14fr) minmax(0, 1fr);
  gap: 0.45rem;
}
.supervision-date-label { color: var(--muted); }
.supervision-stage > article > .profile-links { margin-top: 0.38rem; }
.profile-facts { margin: 0.55rem 0; }
.profile-facts > div {
  display: grid;
  grid-template-columns: minmax(7rem, 0.35fr) minmax(0, 1fr);
  gap: 0.5rem;
  padding: 0.28rem 0;
  border-bottom: 1px solid var(--line);
}
.profile-facts dt { font-weight: 700; }
.profile-facts dd { margin: 0; }
.profile-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  margin: 0.55rem 0 0;
  padding: 0;
  list-style: none;
}
.profile-links li { min-width: 0; }
.profile-links a { overflow-wrap: anywhere; }
.profile-links--contacts { margin-top: 0.45rem; }
.profile-contact-block .profile-links + .profile-links { margin-top: 0.35rem; }
.profile-link-meta {
  margin-left: 0.18rem;
  padding: 0.08rem 0.28rem;
  border: 1px solid var(--line);
  border-radius: 0.2rem;
  color: var(--muted);
  font-size: 0.72rem;
  text-transform: uppercase;
}
.profile-media { margin: 0.65rem 0 0; }
.profile-standard-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.profile-standard-list li {
  padding: 0.42rem 0.65rem;
  border: 1px solid var(--line);
  border-radius: 0.25rem;
  background: var(--soft-blue);
}
.profile-section-meta { margin-top: -0.25rem; color: var(--muted); font-size: 0.84rem; }
.publication-list { margin: 0; padding-left: 1.5rem; }
.publication-entry { padding: 0.42rem 0.35rem; line-height: 1.5; }
.publication-entry + .publication-entry { border-top: 1px solid var(--line); }
.publication-entry > * { margin-right: 0.25rem; }
.publication-entry__authors { font-weight: 600; }
.publication-entry__title { font-weight: 500; }
.publication-entry__doi { display: inline-block; white-space: nowrap; }
.publication-entry__note { display: block; color: var(--muted); }
.publication-entry .profile-links { display: inline-flex; margin: 0 0 0 0.3rem; }
.scholarly-profile-links,
.provider-shelf {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.28rem 0.38rem;
  margin: 0.4rem 0 0;
  padding: 0;
  list-style: none;
}
.scholarly-profile-links { margin-top: 0.55rem; }
.provider-mark {
  display: inline-flex;
  min-height: 1.55rem;
  align-items: center;
  gap: 0.3rem;
  padding: 0.12rem 0.38rem;
  border: 1px solid var(--line);
  border-radius: 0.2rem;
  color: var(--ink-strong);
  background: var(--control-surface);
  font-size: 0.74rem;
  font-weight: 750;
  line-height: 1.15;
  text-decoration: none;
}
.provider-mark__icon {
  display: inline-flex;
  min-width: 1.15rem;
  height: 1rem;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  padding: 0 0.15rem;
  border: 1px solid currentColor;
  border-radius: 0.18rem;
  background: var(--surface-raised);
  font-size: 0.54rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  opacity: 0.82;
}
.provider-mark__icon::before { content: "↗"; }
.provider-mark--doi .provider-mark__icon::before { content: "doi"; }
.provider-mark--publisher .provider-mark__icon::before { content: "P"; }
.provider-mark--pdf .provider-mark__icon::before { content: "PDF"; }
.provider-mark--orcid .provider-mark__icon::before { content: "iD"; }
.provider-mark--arxiv .provider-mark__icon::before { content: "aX"; }
.provider-mark--biorxiv .provider-mark__icon::before { content: "bX"; }
.provider-mark--math-net .provider-mark__icon::before { content: "M"; }
.provider-mark--mathscinet .provider-mark__icon::before { content: "MR"; }
.provider-mark--zbmath .provider-mark__icon::before { content: "zb"; }
.provider-mark--sciact .provider-mark__icon::before { content: "SA"; }
.provider-mark--openreview .provider-mark__icon::before { content: "OR"; }
.provider-mark--acm .provider-mark__icon::before { content: "ACM"; }
.provider-mark--web-of-science .provider-mark__icon::before { content: "WoS"; }
.provider-mark--scopus .provider-mark__icon::before { content: "S"; }
.provider-mark--elibrary .provider-mark__icon::before { content: "eL"; }
.provider-mark--openalex .provider-mark__icon::before { content: "OA"; }
.provider-mark--pubmed .provider-mark__icon::before { content: "PM"; }
.provider-mark--pmc .provider-mark__icon::before { content: "PMC"; }
.provider-mark--ads .provider-mark__icon::before { content: "ADS"; }
.provider-mark--figshare .provider-mark__icon::before { content: "F"; }
.provider-mark--zenodo .provider-mark__icon::before { content: "Z"; }
.provider-mark--semantic-scholar .provider-mark__icon::before { content: "SS"; }
.provider-mark--google-scholar .provider-mark__icon::before { content: "GS"; }
.provider-mark--researchgate .provider-mark__icon::before { content: "RG"; }
.provider-mark:hover,
.provider-mark:focus-visible {
  border-color: var(--accent-line);
  color: var(--accent-ink);
  background: var(--soft-blue);
  text-decoration: underline;
}
.provider-mark:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.provider-mark__meta { color: var(--muted); font-size: 0.68rem; font-weight: 600; }
.provider-mark--doi { color: var(--ink-strong); }
.provider-mark--arxiv,
.provider-mark--biorxiv,
.provider-mark--openreview { color: light-dark(#8f2929, #f0a0a0); }
.provider-mark--math-net,
.provider-mark--mathscinet,
.provider-mark--zbmath,
.provider-mark--sciact,
.provider-mark--elibrary { color: light-dark(#733b1d, #e4b28c); }
.provider-mark--acm,
.provider-mark--web-of-science,
.provider-mark--scopus,
.provider-mark--openalex,
.provider-mark--ads,
.provider-mark--zenodo,
.provider-mark--semantic-scholar,
.provider-mark--google-scholar { color: light-dark(#315b84, #a8cae8); }
.provider-mark--orcid,
.provider-mark--pubmed,
.provider-mark--pmc,
.provider-mark--figshare { color: light-dark(#356d55, #a6d6bc); }
.scholarly-year + .scholarly-year,
.conference-year + .conference-year { margin-top: 1.05rem; }
.scholarly-year__heading,
.conference-year__heading {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin: 0 0 0.28rem;
  font-size: 1.02rem;
}
.scholarly-year__count,
.conference-year__count { color: var(--muted); font-size: 0.76rem; font-weight: 600; }
.scholarly-work-list {
  margin: 0;
  padding-left: 2.15rem;
}
.scholarly-work {
  padding: 0.56rem 0.3rem 0.64rem;
  line-height: 1.42;
}
.scholarly-work + .scholarly-work { border-top: 1px solid var(--line); }
.scholarly-records { display: grid; gap: 0.45rem; }
.scholarly-record {
  display: grid;
  grid-template-columns: minmax(6.7rem, 0.18fr) minmax(0, 1fr);
  gap: 0.2rem 0.65rem;
  min-width: 0;
}
.scholarly-record__label {
  margin: 0;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 750;
}
.scholarly-record__body { min-width: 0; }
.scholarly-citation { margin: 0; overflow-wrap: anywhere; }
.scholarly-citation__authors { font-weight: 650; }
.scholarly-citation__title { font-weight: 520; }
.scholarly-citation__venue { font-style: italic; }
.scholarly-record__meta,
.scholarly-record__note,
.scholarly-work__note,
.conference-entry__meta,
.conference-entry__note,
.talk-entry__meta,
.talk-entry__abstract,
.talk-entry__note {
  margin: 0.25rem 0 0;
  color: var(--muted);
  font-size: 0.82rem;
}
.scholarly-record__meta,
.conference-entry__meta,
.talk-entry__meta { display: flex; flex-wrap: wrap; gap: 0.2rem 0.65rem; }
.scholarly-related,
.scholarly-presentations,
.talk-entry__relations { margin: 0.5rem 0 0; font-size: 0.82rem; }
.scholarly-related > span,
.scholarly-presentations > span,
.talk-entry__relations > span { color: var(--muted); font-weight: 700; }
.scholarly-related > ul,
.scholarly-presentations > ul,
.talk-entry__relations > ul {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.18rem 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.conference-entry {
  padding: 0.7rem 0.8rem;
  border-left: 0.2rem solid var(--line);
  background: var(--surface-subtle);
}
.conference-entry + .conference-entry { margin-top: 0.55rem; }
.conference-entry h4 { margin: 0; font-size: 1rem; }
.conference-entry__roles { margin: 0.35rem 0 0; font-size: 0.84rem; }
.conference-entry__organizers { margin: 0.28rem 0 0; font-size: 0.82rem; }
.talk-list { margin: 0.55rem 0 0; padding: 0; list-style: none; }
.talk-entry {
  padding: 0.48rem 0 0.48rem 0.65rem;
  border-left: 1px solid var(--accent-line);
}
.talk-entry + .talk-entry { margin-top: 0.38rem; }
.talk-entry h5 { margin: 0; font-size: 0.92rem; }
.talk-entry__presenters { margin: 0.24rem 0 0; font-size: 0.84rem; font-weight: 650; }
.lecturer-profile__updated { margin-top: 1.25rem; color: var(--muted); font-size: 0.8rem; }

.photo-enhancement,
.photo-slideshow-enhancement { display: none; }
html.js .photo-enhancement,
html.js .photo-slideshow-enhancement { display: block; }
.button,
.photo-slideshow button {
  min-height: 2.35rem;
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--brand-deep);
  border-radius: 0.28rem;
  color: var(--on-accent);
  background: var(--accent-solid);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.button:hover,
.button:focus-visible,
.photo-slideshow button:hover,
.photo-slideshow button:focus-visible { background: var(--nav-background); }
.button--quiet { color: var(--accent-ink); background: var(--control-surface); }
.button--quiet:hover,
.button--quiet:focus-visible { color: white; }
.photo-archive__header { padding-bottom: 0.8rem; border-bottom: 1px solid var(--line); }
.photo-archive__header > p,
.photo-archive__introduction { max-width: 62rem; }
.photo-archive__introduction > :first-child { margin-top: 0.45rem; }
.photo-archive__introduction > :last-child { margin-bottom: 0; }
.photo-archive__introduction ul,
.photo-archive__introduction ol { margin: 0.45rem 0 0.7rem; }
.photo-collection__description { max-width: 62rem; }
.photo-collection__description > :first-child { margin-top: 0.45rem; }
.photo-collection__description > :last-child { margin-bottom: 0; }
.photo-collection__description ul,
.photo-collection__description ol { margin: 0.45rem 0 0.7rem; }
.breadcrumbs { margin: 0 0 0.7rem; font-size: 0.82rem; }
.photo-collection-page__header h1 { margin-bottom: 0.35rem; }
.photo-collection-overview { margin-top: 1.3rem; }
.photo-collection-overview > h2 { margin-bottom: 0.65rem; }
.photo-tag-overview,
.photo-browser { margin-top: 1.35rem; }
.photo-tag-overview > h2,
.photo-browser h2 { margin-bottom: 0.45rem; }
.photo-tag-overview > p { margin: 0 0 0.65rem; color: var(--ink-soft); }
.photo-tag-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.photo-tag-links a {
  display: inline-flex;
  gap: 0.45rem;
  min-height: 2.2rem;
  padding: 0.35rem 0.6rem;
  align-items: center;
  border: 1px solid var(--accent-line);
  border-radius: 999px;
  background: var(--surface-tinted);
  font-weight: 700;
  text-decoration: none;
}
.photo-tag-links small { color: var(--ink-soft); font-size: 0.7rem; }
.photo-collection-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.photo-collection-card {
  display: grid;
  grid-template-columns: minmax(9rem, 38%) minmax(0, 1fr);
  min-height: 100%;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 0.4rem;
  color: var(--ink);
  background: var(--surface-raised);
  text-decoration: none;
}
.photo-collection-card:hover,
.photo-collection-card:focus-visible {
  border-color: var(--accent-line);
  box-shadow: 0 0.2rem 0.75rem rgb(0 0 0 / 0.14);
}
.photo-collection-card > img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 10rem;
  object-fit: cover;
}
.photo-collection-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  padding: 0.7rem 0.8rem;
}
.photo-collection-card__body strong { color: var(--accent-ink); font-size: 1rem; line-height: 1.3; }
.photo-collection-card__body span { font-size: 0.8rem; line-height: 1.4; }
.photo-collection-card__body span:nth-child(2),
.photo-collection-card__body span:nth-child(3) { color: var(--ink-soft); font-weight: 700; }
.photo-collection-index {
  margin: 1rem 0;
  padding: 0.8rem 1rem;
  border: 1px solid var(--line);
  border-radius: 0.35rem;
  background: var(--soft-blue);
}
.photo-collection-index h2 { margin: 0 0 0.45rem; font-size: 1.05rem; }
.photo-collection-index ol {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.2rem;
  margin: 0;
  padding-left: 1.35rem;
}
.photo-slideshow-launcher {
  margin: 1rem 0 1.3rem;
  padding: 0.8rem 1rem;
  border: 1px solid var(--accent-line);
  border-left: 0.3rem solid var(--brand);
  border-radius: 0.35rem;
  background: var(--surface-tinted);
}
html.js .photo-slideshow-launcher {
  display: grid;
  grid-template-columns: minmax(12rem, 0.7fr) minmax(24rem, 1.3fr);
  gap: 0.65rem 1rem;
  align-items: end;
}

html:not(.js) .materials-controls,
html:not(.js) .seminar-controls { display: none; }
.materials-controls__status,
.seminar-controls__status,
.photo-browser__status,
.photo-slideshow-launcher__status { min-height: 1.35rem; }
.photo-slideshow-launcher h2,
.photo-slideshow-launcher p { margin: 0; }
.photo-slideshow-launcher__controls {
  display: grid;
  grid-template-columns: minmax(12rem, 1.5fr) minmax(9rem, 0.8fr) minmax(7rem, 0.65fr) auto;
  gap: 0.35rem 0.5rem;
  align-items: end;
}
.photo-slideshow-launcher__controls label,
.photo-browser__controls label {
  display: grid;
  gap: 0.22rem;
  color: var(--ink-strong);
  font-size: 0.78rem;
  font-weight: 750;
}
.photo-slideshow-launcher select,
.photo-browser input,
.photo-browser select,
.photo-slideshow__delay select {
  min-height: 2.35rem;
  min-width: 0;
  padding: 0.35rem;
  border: 1px solid var(--accent-line);
  border-radius: 0.25rem;
  color: var(--ink);
  background: var(--control-surface);
  font: inherit;
}
.photo-slideshow-launcher__status { grid-column: 1 / -1; color: var(--warning-ink); font-weight: 700; }
.photo-browser {
  padding: 0.8rem 1rem 1rem;
  border: 1px solid var(--line);
  border-radius: 0.35rem;
  background: var(--surface-subtle);
}
.photo-browser__header {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: end;
}
.photo-browser__header p { margin: 0; color: var(--ink-soft); }
.photo-browser__controls {
  display: grid;
  grid-template-columns: minmax(14rem, 1.7fr) repeat(4, minmax(8rem, 1fr)) auto;
  gap: 0.55rem;
  align-items: end;
  margin-top: 0.75rem;
}
.photo-browser__status {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.8rem;
  font-weight: 700;
}
.photo-browser__results {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.7rem;
  margin-top: 0.75rem;
}
.photo-browser__results:empty { display: none; }
.photo-browser-card {
  display: grid;
  grid-template-columns: minmax(7rem, 34%) minmax(0, 1fr);
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 0.35rem;
  background: var(--surface-raised);
}
.photo-browser-card__image { min-height: 8rem; background: var(--image-placeholder); }
.photo-browser-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.photo-browser-card__body { padding: 0.55rem 0.65rem; }
.photo-browser-card h3 { margin: 0 0 0.25rem; font-size: 0.9rem; line-height: 1.3; }
.photo-browser-card p { margin: 0.25rem 0; font-size: 0.76rem; line-height: 1.4; }
.photo-browser-card__collection { color: var(--ink-soft); font-weight: 700; }
.photo-collection { scroll-margin-top: 0.6rem; }
.photo-collection + .photo-collection { margin-top: 1.6rem; }
.photo-collection__header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: start;
  margin-bottom: 0.7rem;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid var(--line);
}
.photo-collection__header h2 { margin: 0; }
.photo-collection__header p { margin: 0.25rem 0; }
.photo-collection__date { color: var(--ink-strong); font-weight: 750; }
.photo-collection__source { color: var(--muted); font-size: 0.8rem; }
.photo-pagination {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  align-items: center;
  margin: 0.9rem 0;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--line);
  border-radius: 0.35rem;
  background: var(--surface-subtle);
}
.photo-pagination p { margin: 0; color: var(--ink-soft); font-size: 0.8rem; font-weight: 700; }
.photo-pagination__links { display: flex; gap: 0.55rem; align-items: center; }
.photo-pagination__links ol {
  display: flex;
  gap: 0.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.photo-pagination__links a,
.photo-pagination__links span {
  display: inline-flex;
  min-width: 2rem;
  min-height: 2rem;
  padding: 0.25rem 0.45rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--accent-line);
  border-radius: 0.25rem;
  font-size: 0.78rem;
  font-weight: 750;
  text-decoration: none;
}
.photo-pagination__links span[aria-current="page"] { color: var(--on-accent); border-color: var(--accent-solid); background: var(--accent-solid); }
.photo-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}
.photo-card {
  min-width: 0;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 0.35rem;
  background: var(--surface-raised);
  overflow: hidden;
}
.photo-card:hover,
.photo-card:focus-within { border-color: var(--accent-line); box-shadow: 0 0.2rem 0.75rem rgb(0 0 0 / 0.12); }
.photo-card__image-link { display: block; background: var(--image-placeholder); }
.photo-card__image-link img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: contain;
}
.photo-card--interactive { grid-column: 1 / -1; }
.photo-map {
  overflow-x: auto;
  border-bottom: 1px solid var(--line);
  background: var(--image-placeholder);
}
.photo-map__numbers-toggle { display: none; }
.photo-enhanced .photo-map__numbers-toggle {
  position: sticky;
  left: 0;
  z-index: 2;
  display: flex;
  width: max-content;
  gap: 0.4rem;
  align-items: center;
  padding: 0.4rem 0.65rem;
  color: var(--ink-strong);
  background: var(--surface-tinted);
  font-size: 0.76rem;
  font-weight: 750;
  cursor: pointer;
}
.photo-map__numbers-toggle input { margin: 0; }
.photo-map__stage {
  position: relative;
  width: min(100%, 40rem);
  margin-inline: auto;
}
.photo-map__stage > img {
  display: block;
  width: 100%;
  height: auto;
}
.photo-map__overlay {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.photo-map__region polygon {
  fill: rgb(0 0 0 / 0.001);
  stroke: transparent;
  stroke-width: 3;
  vector-effect: non-scaling-stroke;
}
.photo-map__region circle {
  fill: var(--accent-solid);
  stroke: white;
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}
.photo-map__region text {
  fill: white;
  font-size: 18px;
  font-weight: 800;
  pointer-events: none;
}
.photo-map__region:hover polygon,
.photo-map__region:focus polygon,
.photo-map__region:target polygon,
.photo-map__region.is-highlighted polygon {
  fill: color-mix(in srgb, var(--brand) 28%, transparent);
  stroke: white;
}
.photo-map__region:hover circle,
.photo-map__region:focus circle,
.photo-map__region:target circle,
.photo-map__region.is-highlighted circle { fill: var(--brand-deep); }
.photo-map--numbers-hidden .photo-map__region circle,
.photo-map--numbers-hidden .photo-map__region text { opacity: 0; }
.photo-map__status {
  margin: 0;
  padding: 0.45rem 0.7rem;
  color: var(--ink-strong);
  background: var(--surface-tinted);
  font-weight: 750;
}
.photo-participant-section + .photo-participant-section { margin-top: 0.55rem; }
.photo-map__people-heading { margin: 0.65rem 0 0.3rem; font-size: 0.92rem; }
.photo-map__people {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(19rem, 100%), 1fr));
  gap: 0.22rem 1rem;
  margin: 0;
  padding: 0;
  color: var(--ink-soft);
  font-size: 0.8rem;
  list-style: none;
}
.photo-map__people li {
  display: flex;
  align-items: baseline;
  gap: 0.28rem;
  break-inside: avoid;
  min-width: 0;
  border-radius: 0.18rem;
  scroll-margin-top: 0.7rem;
  cursor: default;
}
.photo-map__region-number {
  display: inline-flex;
  min-width: 1.35rem;
  height: 1.35rem;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--accent-line);
  border-radius: 50%;
  color: var(--on-accent);
  background: var(--accent-solid);
  font-size: 0.72rem;
  font-weight: 800;
  text-decoration: none;
}
.photo-map__region-number:hover,
.photo-map__region-number:focus-visible { background: var(--brand-deep); }
.photo-participant__role { color: var(--muted); }
.photo-map__people li:target,
.photo-map__people li.is-highlighted {
  color: var(--warning-ink);
  background: var(--highlight-surface);
  font-weight: 800;
}
.photo-card figcaption { padding: 0.6rem 0.7rem 0.7rem; }
.photo-card h3 { margin: 0 0 0.25rem; font-size: 0.98rem; line-height: 1.3; }
.photo-card__permalink { color: var(--muted); font-size: 0.78em; text-decoration: none; }
.photo-card__permalink:hover,
.photo-card__permalink:focus-visible { color: var(--accent-ink); text-decoration: underline; }
.photo-card p { margin: 0.28rem 0; font-size: 0.82rem; line-height: 1.42; }
.photo-card__caption { font-size: 0.82rem; line-height: 1.42; }
.photo-card__caption > :first-child { margin-top: 0.28rem; }
.photo-card__caption > :last-child { margin-bottom: 0.28rem; }
.photo-card__caption ul,
.photo-card__caption ol { margin: 0.28rem 0; padding-inline-start: 1.35rem; }
.photo-card__date { color: var(--ink-strong); font-weight: 750; }
.photo-card__collection { color: var(--ink-soft); font-size: 0.72rem !important; font-weight: 700; }
.photo-card__people { color: var(--ink-soft); }
.photo-person-link { border-bottom: 1px dotted currentcolor; cursor: pointer; }
.photo-person-link:hover,
.photo-person-link:focus-visible { color: var(--accent-ink); border-bottom-style: solid; outline: none; }
.photo-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin: 0.45rem 0 0;
  padding: 0;
  list-style: none;
}
.photo-tags li {
  border: 1px solid var(--accent-line);
  border-radius: 999px;
  color: var(--accent-ink);
  background: var(--surface-tinted);
  font-size: 0.68rem;
  font-weight: 700;
}
.photo-tags a {
  display: block;
  padding: 0.1rem 0.35rem;
  color: inherit;
  text-decoration: none;
}
.photo-tags a:hover,
.photo-tags a:focus-visible,
.photo-tags a[aria-current="page"] { color: var(--on-accent); background: var(--accent-solid); }
.photo-slideshow {
  width: 100vw;
  height: 100vh;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  color: white;
  background: #10161b;
}
.photo-slideshow::backdrop { background: rgb(0 0 0 / 0.86); }
.photo-slideshow__frame {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  height: 100%;
  min-height: 0;
  padding: 0.7rem 1rem;
}
.photo-slideshow__header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: start;
  padding-bottom: 0.55rem;
}
.photo-slideshow__header-actions { display: flex; gap: 0.4rem; align-items: center; }
.photo-slideshow__header h2 { margin: 0.15rem 0 0; color: white; font-size: 1.05rem; }
.photo-slideshow__scope { margin: 0; color: #c7d2d9; font-size: 0.78rem; }
.photo-slideshow__figure {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(15rem, 24rem);
  gap: 1rem;
  align-items: center;
  min-height: 0;
  margin: 0;
}
.photo-slideshow--details-hidden .photo-slideshow__figure { grid-template-columns: minmax(0, 1fr); }
.photo-slideshow__image-stage {
  position: relative;
  min-width: 0;
  height: 100%;
  min-height: 0;
}
.photo-slideshow__figure img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: contain;
}
.photo-slideshow__loading {
  position: absolute;
  right: 0.5rem;
  bottom: 0.5rem;
  max-width: min(28rem, calc(100% - 1rem));
  margin: 0;
  padding: 0.3rem 0.5rem;
  border-radius: 0.25rem;
  color: white;
  background: rgb(16 22 27 / 0.86);
  font-size: 0.78rem;
}
.photo-slideshow__loading:empty { display: none; }
.photo-slideshow__figure figcaption { max-height: 70vh; overflow: auto; }
.photo-slideshow__figure h3 { margin: 0.25rem 0; color: white; font-size: 1.15rem; }
.photo-slideshow__figure p { margin: 0.35rem 0; line-height: 1.45; }
.photo-slideshow__counter,
.photo-slideshow__date { color: #c7d2d9; font-weight: 700; }
.photo-slideshow__people { color: #e2e8ec; }
.photo-slideshow__tags { margin-top: 0.7rem; }
.photo-slideshow__tags li { padding: 0.1rem 0.35rem; }
.photo-slideshow__links { display: flex; flex-wrap: wrap; gap: 0.35rem 0.8rem; margin-top: 0.8rem !important; }
.photo-slideshow__links a { color: #c7d2d9; }
.photo-slideshow__controls {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: end;
  gap: 0.55rem;
  padding-top: 0.6rem;
}
.photo-slideshow__controls button { min-width: 8rem; }
.photo-slideshow__playback {
  display: inline-flex;
  gap: 0.45rem;
  align-items: center;
}
.photo-slideshow__progress {
  --photo-progress: 0%;
  position: relative;
  width: 1.1rem;
  height: 1.1rem;
  flex: 0 0 auto;
  border-radius: 50%;
  opacity: 0.32;
  background: conic-gradient(var(--brand) var(--photo-progress), rgb(255 255 255 / 0.2) 0);
}
.photo-slideshow__progress::after {
  position: absolute;
  inset: 0.2rem;
  border-radius: inherit;
  background: #10161b;
  content: "";
}
.photo-slideshow__progress.is-running { opacity: 1; }
.photo-slideshow__delay {
  display: grid;
  gap: 0.15rem;
  color: #e2e8ec;
  font-size: 0.72rem;
  font-weight: 700;
}
.photo-slideshow__delay select { color: white; background: #1b262d; }
.photo-slideshow__details-toggle { display: none; }

.site-footer { border-top: 1px solid var(--line); color: var(--muted); background: var(--footer); }
.site-footer__inner {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 0.8rem;
  font-size: 0.82rem;
}

@media (min-width: 64rem) {
  .site-nav {
    position: sticky;
    top: 0;
    z-index: 30;
    box-shadow: 0 0.3rem 0.9rem rgb(0 0 0 / 16%);
  }
  .page-layout--indexed {
    display: grid;
    grid-template-columns: minmax(10.5rem, 13rem) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
  }
  .page--with-announcements { width: min(92rem, calc(100% - 2rem)); }
  .page-layout--announcements {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(13.5rem, 16rem);
    gap: 1rem;
    align-items: start;
  }
  .page-layout--indexed.page-layout--announcements {
    grid-template-columns: minmax(10.5rem, 13rem) minmax(0, 1fr) minmax(13.5rem, 16rem);
  }
  .announcement-feed {
    position: sticky;
    top: 3.5rem;
    max-height: calc(100vh - 4.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .section-index {
    position: sticky;
    top: 3.5rem;
    max-height: calc(100vh - 4.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .article-content :target { scroll-margin-top: 3.5rem; }
}

@media (max-width: 63.999rem) {
  .page-layout--announcements { display: flex; flex-direction: column; gap: 0.75rem; }
  .page-layout--announcements .announcement-feed { width: 100%; order: -1; }
  .page-layout--announcements .section-index { order: -2; }
  .page-layout--indexed .section-index { margin-bottom: 0.75rem; }
  .section-index {
    position: sticky;
    top: 0;
    z-index: 25;
    align-self: stretch;
    padding: 0;
  }
  .section-index__desktop { display: none; }
  .section-index__compact { display: block; }
  .section-index__summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.55rem;
    min-height: 2.85rem;
    align-items: center;
    padding: 0.48rem 0.7rem;
    cursor: pointer;
    list-style: none;
  }
  .section-index__summary::-webkit-details-marker { display: none; }
  .section-index__summary::after {
    content: "+";
    width: 1.35rem;
    color: var(--accent-ink);
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
  }
  .section-index__compact[open] > .section-index__summary {
    background: var(--surface-tinted);
  }
  .section-index__compact[open] > .section-index__summary::after { content: "−"; }
  .section-index__summary-label {
    color: var(--accent-ink);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.035em;
    text-transform: uppercase;
  }
  .section-index__summary-current {
    min-width: 0;
    overflow: hidden;
    color: var(--ink-strong);
    font-size: 0.82rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .section-index__panel {
    position: absolute;
    top: calc(100% + 0.3rem);
    left: 0;
    width: 100%;
    max-height: min(65vh, 32rem);
    max-height: min(65dvh, 32rem);
    padding: 0.65rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--line);
    border-top: 0.22rem solid var(--brand);
    border-radius: 0.35rem;
    background: var(--surface);
    box-shadow: 0 0.8rem 2rem rgb(0 0 0 / 24%);
  }
  .section-index__panel-header {
    display: flex;
    justify-content: space-between;
    gap: 0.65rem;
    align-items: center;
    margin-bottom: 0.3rem;
  }
  .section-index__panel-header .section-index__title,
  .section-index__panel-header .section-index__top { margin: 0; }
  .section-index__top {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    flex: 0 0 auto;
    padding: 0.28rem 0.55rem;
    border: 1px solid var(--accent-line);
    border-radius: 0.25rem;
  }
  .section-index__links a {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    padding-block: 0.55rem;
  }
  .section-index__sublinks a { padding-block: 0.55rem; }
  .seminar-year__back { display: block; }
}

@media (max-width: 54rem) {
  :root { --mobile-header-height: 3.65rem; }
  .site-header {
    position: sticky;
    top: 0;
    z-index: 40;
    box-shadow: 0 0.3rem 0.9rem rgb(0 0 0 / 18%);
  }
  .site-nav--desktop { display: none; }
  .mobile-navigation {
    display: block;
    margin-left: auto;
  }
  .mobile-navigation > summary {
    display: inline-flex;
    min-height: 2.6rem;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.7rem;
    border-radius: 0.3rem;
    color: white;
    background: rgb(0 0 0 / 18%);
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 800;
    list-style: none;
  }
  .mobile-navigation > summary::-webkit-details-marker { display: none; }
  .mobile-navigation[open] > summary { background: rgb(0 0 0 / 32%); }
  .mobile-navigation[open] .mobile-nav-toggle__icon { background: transparent; }
  .mobile-navigation[open] .mobile-nav-toggle__icon::before {
    top: 0;
    transform: rotate(45deg);
  }
  .mobile-navigation[open] .mobile-nav-toggle__icon::after {
    top: 0;
    transform: rotate(-45deg);
  }
  .mobile-navigation__panel {
    position: fixed;
    top: var(--mobile-header-height);
    right: 0;
    z-index: 45;
    width: min(30rem, 100%);
    max-height: calc(100dvh - var(--mobile-header-height));
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--nav-background);
    box-shadow: 0 1rem 2rem rgb(0 0 0 / 34%);
  }
  .site-nav--mobile .primary-nav {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    margin: 0;
    padding: 0.4rem 0.5rem 0.65rem;
  }
  .site-nav--mobile .primary-nav__item + .primary-nav__item {
    border-top: 1px solid rgb(255 255 255 / 14%);
  }
  .brand {
    height: var(--mobile-header-height);
    min-height: 0;
    gap: 0.55rem;
    padding-block: 0.38rem;
  }
  .brand__logos { width: clamp(6.65rem, 24vw, 8rem); }
  .brand__text { min-width: 0; flex: 1 1 auto; }
  .brand__title,
  .brand__subtitle { display: none; }
  .brand__mobile-title {
    display: block;
    overflow: hidden;
    color: white;
    font-size: clamp(0.78rem, 2.5vw, 0.92rem);
    font-weight: 800;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .mobile-nav-toggle {
    display: inline-flex;
    min-width: 4.65rem;
    min-height: 2.75rem;
    flex: 0 0 auto;
    gap: 0.45rem;
    align-items: center;
    justify-content: center;
    padding: 0.45rem 0.6rem;
    border: 1px solid rgb(255 255 255 / 42%);
    border-radius: 0.3rem;
    color: white;
    background: rgb(0 0 0 / 18%);
    cursor: pointer;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 800;
  }
  .mobile-nav-toggle[hidden] { display: none; }
  .mobile-nav-toggle:hover,
  .mobile-nav-toggle[aria-expanded="true"] { background: rgb(0 0 0 / 32%); }
  .mobile-nav-toggle__icon,
  .mobile-nav-toggle__icon::before,
  .mobile-nav-toggle__icon::after {
    display: block;
    width: 1.1rem;
    height: 0.12rem;
    border-radius: 999px;
    background: currentcolor;
    content: "";
  }
  .mobile-nav-toggle__icon { position: relative; }
  .mobile-nav-toggle__icon::before,
  .mobile-nav-toggle__icon::after { position: absolute; left: 0; }
  .mobile-nav-toggle__icon::before { top: -0.34rem; }
  .mobile-nav-toggle__icon::after { top: 0.34rem; }
  .mobile-nav-toggle[aria-expanded="true"] .mobile-nav-toggle__icon { background: transparent; }
  .mobile-nav-toggle[aria-expanded="true"] .mobile-nav-toggle__icon::before {
    top: 0;
    transform: rotate(45deg);
  }
  .mobile-nav-toggle[aria-expanded="true"] .mobile-nav-toggle__icon::after {
    top: 0;
    transform: rotate(-45deg);
  }
  .primary-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-block: 0.3rem;
  }
  .primary-nav__item { min-width: 0; }
  .primary-nav__item--settings { margin-left: 0; }
  .nav-link,
  .nav-group > summary,
  .display-settings > summary {
    min-height: 2.75rem;
    padding: 0.55rem 0.7rem;
    font-size: 0.9rem;
    white-space: normal;
  }
  .nav-group__panel {
    position: static;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    max-height: none;
    border-radius: 0.25rem;
    box-shadow: none;
  }
  .nav-group__panel a {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    padding: 0.55rem 0.7rem;
  }
  .display-settings__panel {
    position: static;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    border-radius: 0.25rem;
    box-shadow: none;
  }
  .site-nav--enhanced .primary-nav { display: none; }
  .site-nav--enhanced.site-nav--open .primary-nav {
    position: fixed;
    top: var(--mobile-header-height);
    right: 0;
    z-index: 35;
    display: grid;
    grid-template-columns: 1fr;
    width: min(30rem, 100%);
    max-height: calc(100vh - var(--mobile-header-height));
    max-height: calc(100dvh - var(--mobile-header-height));
    margin: 0;
    padding: 0.4rem 0.5rem 0.65rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    border-top: 1px solid rgb(255 255 255 / 28%);
    background: var(--nav-background);
    box-shadow: 0 1rem 2rem rgb(0 0 0 / 34%);
  }
  .site-nav--enhanced.site-nav--open .primary-nav__item + .primary-nav__item {
    border-top: 1px solid rgb(255 255 255 / 14%);
  }
  .seminar-nav__items {
    scroll-snap-type: inline proximity;
    scrollbar-color: var(--muted) transparent;
    scrollbar-width: thin;
  }
  .seminar-nav__items::-webkit-scrollbar { height: 0.38rem; }
  .seminar-nav__items::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: var(--muted);
  }
  .seminar-nav li { scroll-snap-align: start; }
  .section-index { top: var(--mobile-header-height); }
  .article-content :target { scroll-margin-top: calc(var(--mobile-header-height) + 3.6rem); }
  .photo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  html.js .photo-slideshow-launcher { grid-template-columns: 1fr; }
  .photo-browser__controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .photo-browser__search { grid-column: 1 / -1; }
  .photo-browser__results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 42rem) {
  .shell { width: min(100% - 1rem, 74rem); }
  .article-content > ul { grid-template-columns: 1fr; }
  .announcement-list { grid-template-columns: 1fr; }
  .materials-list { grid-template-columns: 1fr; }
  .course-list,
  .course-year-list { grid-template-columns: 1fr; }
  .courses-page__heading-row { flex-direction: column; gap: 0.5rem; }
  .courses-page__archive-link { align-self: flex-start; }
  .seminar-page__title-row { flex-direction: column; gap: 0.1rem; }
  .seminar-page__state { align-items: flex-start; padding-top: 0; }
  .seminar-details { grid-template-columns: 1fr; }
  .seminar-controls { grid-template-columns: 1fr; }
  .seminar-controls__filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .seminar-search--content { grid-column: 1 / -1; }
  .seminar-toggle { align-items: flex-start; white-space: normal; }
  .seminar-controls__status { grid-column: 1 / -1; }
  .seminar-event { grid-template-columns: 1fr; gap: 0.35rem; }
  .lecturer-profile__header--with-portrait { grid-template-columns: 1fr; }
  .lecturer-profile__portrait { max-width: 10rem; }
  .profile-facts > div { grid-template-columns: 1fr; gap: 0.05rem; }
  .supervision-person { padding-inline: 0.7rem; }
  .supervision-person__header { align-items: flex-start; flex-direction: column; }
  .supervision-stage { padding-left: 1.85rem; }
  .supervision-stage__details > div { grid-template-columns: 1fr; gap: 0.05rem; }
  .scholarly-record { grid-template-columns: 1fr; gap: 0.08rem; }
  .scholarly-record__label { margin-top: 0.12rem; }
  .scholarly-work-list { padding-left: 1.6rem; }
  .photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .photo-collection-cards { grid-template-columns: 1fr; }
  .photo-collection-card { grid-template-columns: minmax(7rem, 34%) minmax(0, 1fr); }
  .photo-collection-card > img { min-height: 8.5rem; }
  .photo-pagination { align-items: stretch; flex-direction: column; }
  .photo-pagination__links { justify-content: space-between; }
  .photo-slideshow-launcher__controls { grid-template-columns: 1fr; }
  .photo-slideshow-launcher__controls label { margin-top: 0.25rem; }
  .photo-collection__header { align-items: stretch; flex-direction: column; }
  .photo-slideshow__figure { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) auto; }
  .photo-slideshow__figure figcaption { max-height: 30vh; }
  .photo-slideshow__details-toggle { display: inline-flex; }
  .photo-browser__header { align-items: stretch; flex-direction: column; }
  .photo-browser-card { grid-template-columns: minmax(6.5rem, 36%) minmax(0, 1fr); }
  .materials-page { padding: 0.9rem; }
  .materials-page__header { margin-bottom: 0.65rem; }
  .materials-page__header h1 { margin-bottom: 0.4rem; }
  .education-nav li { flex: 1 1 0; }
  .education-nav a { height: 100%; justify-content: center; padding-inline: 0.5rem; text-align: center; }
  .materials-page__lead { font-size: 0.96rem; line-height: 1.42; }
  .materials-page__jump { display: inline-flex; }
  .materials-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0.65rem 0 0.8rem; padding: 0.6rem; }
  .materials-search { grid-column: 1 / -1; }
  .materials-controls__status { grid-column: 1 / -1; }
  .materials-group h2 { margin-top: 1.15rem; font-size: 1.12rem; }
  .materials-group__description { font-size: 0.79rem; }
  .material-card { padding: 0.65rem; }
  .material-links li { grid-template-columns: 1fr; gap: 0.18rem; }
  .material-link__info { justify-content: flex-start; }
  .article-content table,
  .article-content tbody,
  .article-content tr,
  .article-content td { display: block; width: 100%; }
  .article-content thead { display: none; }
  .article-content tr { margin-bottom: 0.75rem; border: 1px solid var(--line); border-radius: 0.3rem; overflow: hidden; }
  .article-content td { border: 0; }
  .article-content td:first-child { width: 100%; background: var(--soft-blue); }
  .article-content td + td { border-top: 1px solid var(--line); }
  .site-footer__inner { flex-direction: column; gap: 0.1rem; }
}

@media (max-width: 30rem) {
  .course-year-card__heading { align-items: flex-start; flex-direction: column; }
  .course-card__meta div { grid-template-columns: 1fr; gap: 0.02rem; }
  .photo-grid { grid-template-columns: 1fr; }
  .photo-browser__controls,
  .photo-browser__results { grid-template-columns: 1fr; }
  .photo-browser__search,
  .photo-browser__status { grid-column: 1; }
  .photo-browser-card { grid-template-columns: minmax(7.5rem, 38%) minmax(0, 1fr); }
  .photo-slideshow__header { align-items: stretch; flex-direction: column; }
  .photo-slideshow__header-actions { justify-content: flex-end; }
}

@media (max-width: 22rem) {
  .mobile-nav-toggle { width: 2.75rem; min-width: 2.75rem; padding-inline: 0.45rem; }
  .mobile-nav-toggle > span:last-child {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }
  .primary-nav { grid-template-columns: 1fr; }
  .photo-collection-card { grid-template-columns: 1fr; }
  .photo-collection-card > img { max-height: 13rem; }
  .photo-pagination__links { align-items: stretch; flex-direction: column; }
  .photo-slideshow__frame { padding-inline: 0.5rem; }
  .photo-slideshow__controls { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.3rem; }
  .photo-slideshow__playback { min-width: 0; gap: 0.25rem; }
  .photo-slideshow__controls button { min-width: 0; padding-inline: 0.3rem; font-size: 0.78rem; }
  .materials-controls { grid-template-columns: 1fr; }
  .materials-search,
  .materials-controls__status { grid-column: 1; }
  .seminar-controls { grid-template-columns: 1fr; }
  .seminar-controls__filters { grid-template-columns: 1fr; }
  .seminar-search,
  .seminar-controls__status { grid-column: 1; }
}

@media (min-width: 54.001rem) {
  .site-nav--mobile { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

@media print {
  :root,
  :root[data-theme] {
    --paper: #fff;
    --surface: #fff;
    --surface-raised: #fff;
    --surface-subtle: #fff;
    --surface-tinted: #fff;
    --control-surface: #fff;
    --ink: #1e2b35;
    --ink-strong: #183f58;
    --ink-soft: #334b5d;
    --muted: #526575;
    --line: #aaa;
    --line-soft: #d7d7d7;
    --accent-ink: #14577e;
    --accent-hover: #14577e;
    color-scheme: light;
  }
  body { color: var(--ink); background: #fff; }
  .skip-link,
  .mobile-nav-toggle,
  .site-nav,
  .education-nav,
  .seminar-nav,
  .section-index,
  .announcement-feed,
  .seminar-controls,
  .seminar-event__permalink,
  .seminar-year__back,
  .materials-controls,
  .materials-page__jump,
  .courses-page__archive-link,
  .photo-enhancement,
  .photo-map__numbers-toggle,
  .photo-slideshow { display: none; }
  .site-header { position: static; color: black; background: white; border-bottom: 1px solid #777; box-shadow: none; }
  .brand { height: auto; min-height: 0; }
  .brand__mobile-title { display: none; }
  .brand__title,
  .brand__subtitle { display: block; }
  .brand__logo--light { display: none; }
  .brand__logo--dark { display: block; filter: invert(1); }
  .page { width: 100%; padding: 0; }
  .page-layout--indexed { display: block; }
  .article-content { border: 0; box-shadow: none; }
  .material-card,
  .course-card,
  .course-year-card { break-inside: avoid; border-color: #aaa; background: white; box-shadow: none; }
  .material-archive:not([open]) > .material-links--archive { display: grid; }
}
