/* Plain, text-first styling. Quarto supplies the page and mobile navigation. */
:root {
  --site-ink: #202020;
  --site-muted: #595959;
  --site-link: #205aa1;
  --site-line: #ddd;
}
body {
  color: var(--site-ink);
  background: #fff;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.65;
}
a { color: var(--site-link); text-underline-offset: .18em; }
a:hover { color: #153f73; text-decoration-thickness: 2px; }
a:focus-visible, button:focus-visible {
  outline: 2px solid var(--site-link);
  outline-offset: 4px;
}
#quarto-header { border-bottom: 1px solid var(--site-line); }
#quarto-header .navbar {
  background: #fff !important;
  padding: 17px 24px;
}
.navbar > .container-fluid {
  max-width: 960px;
  margin: auto;
  padding: 0;
}
.navbar-brand {
  color: var(--site-ink) !important;
  font-size: 17px;
  font-weight: 600;
}
.navbar-nav { gap: 4px 12px; }
.navbar .nav-link { color: var(--site-muted); font-size: 15px; }
.navbar .nav-link:hover, .navbar .nav-link.active { color: var(--site-ink); }
.navbar .nav-link.active { text-decoration: underline; text-underline-offset: .3em; }
.navbar-toggler { border: 0; }
#title-block-header { margin-bottom: 1.6rem; }
.quarto-title { margin-top: 1rem; }
h1, h2, h3 { color: var(--site-ink); font-weight: 600; line-height: 1.3; }
h1.title, h1.homepage-name { font-size: 2rem; letter-spacing: -.025em; }
h2 { font-size: 1.3rem; border: 0; padding-bottom: 0; margin-top: 2.2rem; margin-bottom: .9rem; }
h3 { font-size: 1.08rem; margin-top: 1.5rem; }
p { margin-bottom: 1rem; }
main { padding-bottom: 2rem; }
.homepage-lead {
  margin: 1rem 0;
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}
.homepage-intro { max-width: 760px; grid-column: 2; grid-row: 1; }
.homepage-intro #title-block-header { margin: 0 0 .6rem; }
.homepage-intro h1.homepage-name { margin: 0; }
.homepage-intro p:last-child { margin-bottom: 0; }
.homepage-portrait {
  display: block;
  width: 180px;
  max-width: 100%;
  height: auto;
  grid-column: 1;
  grid-row: 1;
  margin-top: 10px; /* Align with the visible top of the title lettering. */
}
main a { overflow-wrap: anywhere; }
.project-links { font-size: .9rem; color: var(--site-muted); }
.archive-meta, .quarto-title-meta { color: var(--site-muted); font-size: .88rem; }
.old-blog-content img { max-width: 100%; height: auto; }
pre { border: 1px solid #e5e5e5; border-radius: 0; }
.nav-footer {
  max-width: 960px;
  margin: auto;
  padding: 22px 24px;
  border-top: 1px solid var(--site-line);
  color: var(--site-muted);
  font-size: 14px;
}
@media (max-width: 767px) {
  .homepage-lead { display: flex; flex-direction: column; gap: 20px; }
  .homepage-portrait { order: -1; margin-top: 0; }
  #quarto-header .navbar { padding: 14px 16px; }
  .navbar .navbar-brand-container { order: 0; flex: 1 1 auto; max-width: none; margin: 0 !important; }
  .navbar-brand { max-width: none; white-space: nowrap; }
  .navbar .quarto-navbar-tools { order: 1; }
  .navbar-toggler { order: 2; }
  .navbar-collapse { order: 3; flex-basis: 100%; }
  #quarto-content { padding-left: 0; padding-right: 0; }
  h1.title, h1.homepage-name { font-size: 1.75rem; }
  .nav-footer { padding: 20px 16px; }
}
