:root {
  --text: #727272;
  --heading: #222;
  --subheading: #494949;
  --link: #0057b8;
  --link-hover: #003f86;
  --rule: #e5e5e5;
  --paper: #fff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  padding: 50px;
  background: var(--paper);
  color: var(--text);
  font: 14px/1.55 "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
a { color: var(--link); text-decoration: none; }
a:hover { color: var(--link-hover); text-decoration: underline; }
a:focus-visible { outline: 3px solid var(--link); outline-offset: 3px; }
h1, h2 { color: var(--heading); margin: 0 0 20px; line-height: 1.1; }
p, ol { margin: 0 0 20px; }
strong { color: var(--heading); font-weight: 700; }
em { color: #5d5d5d; }
hr { height: 1px; margin: 0 0 20px; border: 0; background: var(--rule); }
.skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 20; padding: .55rem .8rem; background: var(--heading); color: #fff; }
.skip-link:focus { top: 1rem; }
.wrapper { width: 860px; margin: 0 auto; }
.profile { position: fixed; width: 270px; }
.profile h1 { font-size: 28px; }
.profile p { margin-bottom: 12px; }
.profile nav { line-height: 1.75; }
.content { float: right; width: 500px; padding-bottom: 50px; }
.content:focus { outline: none; }
.content section { scroll-margin-top: 24px; }
.content h2 { color: var(--subheading); font-size: 1.17em; }
.academic-list { padding-left: 40px; list-style: decimal; }
.academic-list p { margin-bottom: 20px; }
.media-label { color: var(--subheading); font-weight: 700; }
.content address { margin: 0 0 24px; padding-left: 22px; font-style: normal; }
.back-to-top { text-align: right; font-size: 14px; }

@media screen and (min-width: 821px) and (max-width: 960px) {
  body { padding: 30px; }
  .wrapper { width: calc(100vw - 60px); }
  .content { width: min(500px, calc(100% - 310px)); }
}

@media screen and (max-width: 820px) {
  body { padding: 28px; }
  .wrapper { width: auto; margin: 0; }
  .profile, .content { position: static; float: none; width: auto; }
  .profile { padding-right: 260px; }
  .profile nav { position: absolute; top: 30px; right: 28px; min-width: 215px; }
  .content { margin-top: 20px; padding: 20px 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
}

@media screen and (max-width: 720px) {
  body { padding: 28px; overflow-wrap: anywhere; }
  .profile { padding: 0; }
  .profile nav { position: static; min-width: 0; }
  .content { margin-top: 24px; padding-top: 24px; }
}

@media screen and (max-width: 480px) {
  body { padding: 15px; }
  .academic-list { padding-left: 32px; }
}

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

@media print {
  @page { size: A4 landscape; margin: 14mm; }
  body { padding: 0; font-size: 9.25pt; line-height: 1.4; color: #444; }
  .skip-link, .back-to-top { display: none !important; }
  .wrapper { width: 860px; margin: 0 auto; }
  .profile { position: static; float: left; width: 270px; padding: 0; }
  .profile nav { position: static; min-width: 0; }
  .content { float: right; width: 500px; margin: 0; padding: 0; border: 0; }
  .content h2 { margin-bottom: 10px; }
  .content ol { margin-bottom: 10px; }
  .academic-list p { margin-bottom: 8px; }
  .academic-list li { break-inside: avoid; }
  .content address { margin-bottom: 12px; }
  hr { margin-bottom: 10px; }
}
