/* Computer Modern (CMU Serif, SIL OFL; see static/fonts/OFL.txt). */
@font-face { font-family: "CMU Serif"; src: url("/static/fonts/cmu-serif-500-roman.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "CMU Serif"; src: url("/static/fonts/cmu-serif-500-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "CMU Serif"; src: url("/static/fonts/cmu-serif-700-roman.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "CMU Serif"; src: url("/static/fonts/cmu-serif-700-italic.woff2") format("woff2"); font-weight: 700; font-style: italic; font-display: swap; }

:root {
  --desk: #EDEBE6;
  --bar-ink: #3A3A40;
  --tex: "CMU Serif", "Latin Modern Roman", "Computer Modern", Georgia, serif;
}
@media (prefers-color-scheme: dark) {
  :root { --desk: #1A1A1D; --bar-ink: #C9C7C1; }
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--desk); -webkit-font-smoothing: antialiased; }
p, h1, h2 { margin: 0; }

/* Slim top bar: name and the PDF link. Hidden in print. */
.bar {
  max-width: 8.5in; margin: 0 auto; padding: 18px 16px 0;
  display: flex; justify-content: space-between; align-items: baseline;
  font: 400 15px/1.4 var(--tex); color: var(--bar-ink);
}
.bar a { color: inherit; }

/* On screen: a sheet of paper on the desk, white in both themes. */
.desk { padding: 16px 16px 64px; }
.cv {
  max-width: 8.5in; margin: 0 auto; padding: 0.6in 0.7in; background: #fff; color: #000;
  box-shadow: 0 1px 3px rgba(0,0,0,.08), 0 24px 60px -30px rgba(0,0,0,.35);
  font: 400 11pt/1.32 var(--tex);
  font-kerning: normal; font-variant-ligatures: common-ligatures;
  hyphens: auto; -webkit-hyphens: auto; hyphenate-limit-chars: 7 3 3;
}
.cv a { color: inherit; text-decoration: none; }
.cv a:hover { text-decoration: underline; }
.cv strong { font-weight: 700; }

.cv__head { text-align: center; }
.cv__head h1 { font: 700 22pt/1.1 var(--tex); font-variant: small-caps; letter-spacing: .04em; }
.cv__contact { margin-top: 5pt; font-size: 10pt; }
.cv__contact span { margin: 0 .5em; }

.cv__section { margin-top: 13pt; }
.cv__section h2 {
  font: 700 11.5pt/1.2 var(--tex); font-variant: small-caps; letter-spacing: .06em;
  border-bottom: .6pt solid #000; padding-bottom: 1.5pt; margin-bottom: 5pt;
}
.cv__entry { margin-top: 6pt; break-inside: avoid; }
.cv__entry:first-of-type { margin-top: 0; }
.cv__row { display: flex; justify-content: space-between; align-items: baseline; gap: 12pt; }
.cv__when { margin-left: auto; white-space: nowrap; font-style: italic; }
.cv__title { font-style: italic; }
.cv ul { margin: 2pt 0 0; padding-left: 1.4em; list-style: none; text-align: justify; }
.cv li { position: relative; margin-top: 1pt; }
.cv li::before { content: "•"; position: absolute; left: -1em; }
.cv__section > .cv__row + .cv__row { margin-top: 1pt; }

.cv--short { text-align: center; }
.cv__missing { font: 700 18pt/1.2 var(--tex); font-variant: small-caps; margin-bottom: 8pt; }

@media (max-width: 720px) {
  .desk { padding: 12px 0 40px; }
  .cv { padding: 28px 20px; font-size: 10.5pt; }
  .cv__row { flex-wrap: wrap; gap: 0 12pt; }
}

@page { size: Letter; margin: 0.6in 0.7in; }
@media print {
  body { background: #fff; }
  .bar { display: none; }
  .desk { padding: 0; }
  .cv { max-width: none; padding: 0; box-shadow: none; font-size: 10.5pt; }
}
