@font-face {
  font-family: "Newsreader";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("/assets/fonts/Newsreader-Roman.woff2") format("woff2");
}

@font-face {
  font-family: "Newsreader";
  font-style: italic;
  font-weight: 200 800;
  font-display: swap;
  src: url("/assets/fonts/Newsreader-Italic.woff2") format("woff2");
}

:root {
  color-scheme: light;
  font-family: "Newsreader", Georgia, serif;
  font-optical-sizing: auto;
  color: #151515;
  background: #fff;
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.6;
}

.page {
  width: calc(100% - 44px);
  max-width: 656px;
  margin-block: 60px 80px;
  margin-inline: max(22px, calc((100% - 960px) / 2)) 22px;
}

a, a:visited { color: inherit; text-decoration: none; text-decoration-thickness: 1px; }
a:hover { text-decoration: underline; text-underline-offset: 0.13em; }
a:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 4px;
  text-decoration: underline;
  text-underline-offset: 0.13em;
}

.site-name {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.5;
}

nav { margin-top: 3px; font-size: 1.0625rem; }
nav ul { display: flex; flex-wrap: wrap; padding: 0; margin: 0; list-style: none; }
nav li { display: inline-flex; align-items: baseline; white-space: nowrap; }
nav a { display: inline-block; padding-block: 4px; }
nav a[aria-current] { font-weight: 700; }
.separator { margin-inline: 0.4em; }

main { margin-top: 40px; }
main.consulting-page { margin-top: 24px; }
h1, h2, h3 { font-weight: 400; line-height: 1.3; text-wrap: pretty; }
h1 { margin: 0 0 28px; font-size: 1.25rem; }
h2 { margin: 32px 0 14px; font-size: 1.125rem; }
h3 { margin: 28px 0 12px; font-size: 1rem; }
p { margin: 0 0 1em; }
.prose > :first-child { margin-top: 0; }
.prose > :last-child { margin-bottom: 0; }
.prose { overflow-wrap: break-word; }
.prose ul, .prose ol { padding-left: 1.4em; margin-block: 0 1.15em; }
.prose li + li { margin-top: 0.25em; }
.prose img { display: block; max-width: 100%; height: auto; margin-block: 1.5em; }
blockquote { margin: 1.5em 0 1.5em 1.25em; }
blockquote p:last-child { margin-bottom: 0; }
hr { height: 0; margin: 2em 0; border: 0; border-top: 1px solid #ccc; }
pre { max-width: 100%; padding: 1em; overflow-x: auto; border: 1px solid #ccc; }
code { font-family: inherit; font-size: 0.9em; }

.book-entry { margin: 0 0 32px; }
.book-publication { display: block; margin-top: 2px; white-space: nowrap; }
.writing-heading, .research-page h2 { font-size: 1.125rem; font-weight: 700; }
.writing-heading { margin: 0 0 12px; }
.research-page h2 { margin: 0 0 14px; }
.research-page .prose a { text-decoration: underline; text-underline-offset: 0.13em; }
.title-list { list-style: none; margin: 0; padding: 0; }
.title-list li { margin: 0 0 4px; }
.title-list li:last-child { margin-bottom: 0; }
.title-list a { display: inline-block; padding-block: 2px; text-decoration: underline; text-underline-offset: 0.13em; }
.article-header { margin-bottom: 28px; }
.article-header h1 { margin-bottom: 12px; }
.article-header h1:last-child { margin-bottom: 0; }
.note, .date { margin: 0; }

table { width: 100%; border-collapse: collapse; margin: 1.5em 0; }
caption { text-align: left; margin-bottom: 12px; }
th { font-weight: 400; }
th, td { text-align: left; padding: 10px 0; border-bottom: 1px solid #ddd; vertical-align: top; }
th + th, td + td { padding-left: 18px; }
.numeric { text-align: right; font-variant-numeric: tabular-nums; }
thead th { border-bottom-color: #999; }
tfoot th, tfoot td { border-top: 1px solid #999; border-bottom: 0; }

@media (max-width: 640px) {
  .page { margin-block: 22px 48px; }
  main { margin-top: 32px; }
  h1 { margin-bottom: 24px; }
}

@media print {
  .page { width: auto; max-width: none; margin: 0; }
  body { font-size: 12pt; }
  nav { display: none; }
  main { margin-top: 24pt; }
  a { text-decoration: none; }
  h1, h2, h3 { break-after: avoid; }
  p { orphans: 3; widows: 3; }
}
