:root {
  --accent: #2a8a15;
  --ink: #171717;
  --muted: #686868;
  --line: #dedede;
  --paper: #fff;
  --nav: #111;
  --sidebar-width: 220px;
  --content-width: 600px;
  --gutter: 40px;
}

* { box-sizing: border-box; }

html { color-scheme: light; scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Rockwell, "Roboto Slab", Georgia, serif;
  font-size: 16px;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}

a { color: var(--accent); text-decoration-thickness: .08em; text-underline-offset: .14em; }
a:hover { color: #176309; }
a:focus-visible, button:focus-visible { outline: 3px solid #176309; outline-offset: 3px; }

.skip-link {
  position: fixed;
  z-index: 10;
  top: .5rem;
  left: .5rem;
  padding: .55rem .8rem;
  color: #fff;
  background: #000;
  transform: translateY(-180%);
}
.skip-link:focus { transform: none; }

.site-shell {
  display: grid;
  grid-template-columns: var(--sidebar-width) minmax(0, var(--content-width));
  gap: var(--gutter);
  width: calc(var(--sidebar-width) + var(--content-width) + var(--gutter));
  max-width: calc(100% - 40px);
  margin: 48px auto 80px;
  align-items: start;
}

.site-sidebar {
  position: sticky;
  top: 36px;
  text-align: center;
}

.profile-image {
  display: block;
  width: 112px;
  height: 112px;
  margin: 0 auto 18px;
  border-radius: 50%;
  object-fit: cover;
}

.site-name {
  margin: 0;
  font-size: 25px;
  line-height: 1.15;
  letter-spacing: -.02em;
}
.site-name a { color: #111; text-decoration: none; }

.tagline {
  margin: 10px auto 17px;
  max-width: 200px;
  color: var(--muted);
  font-family: "Arial Narrow", "Roboto Condensed", Arial, sans-serif;
  font-size: 13px;
  line-height: 1.45;
}

.social-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 5px 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-family: "Arial Narrow", "Roboto Condensed", Arial, sans-serif;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.sidebar-footer {
  margin-top: 26px;
  color: var(--muted);
  font-family: "Arial Narrow", "Roboto Condensed", Arial, sans-serif;
  font-size: 12px;
  line-height: 1.5;
}

.site-content { min-width: 0; }

.primary-nav {
  margin: 0 0 38px;
  color: #fff;
  background: var(--nav);
  font-family: "Arial Narrow", "Roboto Condensed", Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.primary-nav ul {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style: none;
}

.primary-nav a {
  display: block;
  padding: 13px 12px 12px;
  color: #fff;
  text-decoration: none;
}
.primary-nav a:hover, .primary-nav a[aria-current="page"] { color: #fff; background: var(--accent); }

.entry-header { margin-bottom: 25px; }
.entry-title {
  margin: 0 0 10px;
  font-size: clamp(32px, 5.1vw, 42px);
  line-height: 1.12;
  letter-spacing: -.028em;
  overflow-wrap: anywhere;
}

.entry-meta, .category-meta, .archive-count {
  color: var(--muted);
  font-family: "Arial Narrow", "Roboto Condensed", Arial, sans-serif;
  font-size: 13px;
  line-height: 1.45;
}

.featured-image { margin: 0 0 28px; }
.featured-image img, .entry-content img {
  display: block;
  max-width: 100%;
  height: auto;
}
.featured-image img { width: 100%; }

.entry-content { overflow-wrap: break-word; }
.entry-content > :first-child { margin-top: 0; }
.entry-content > :last-child { margin-bottom: 0; }
.entry-content p { margin: 0 0 1.35em; }
.entry-content h2, .entry-content h3, .entry-content h4 {
  margin: 1.55em 0 .55em;
  line-height: 1.25;
}
.entry-content h2 { font-size: 28px; }
.entry-content h3 { font-size: 22px; }
.entry-content h4 { font-size: 18px; }
.entry-content ul, .entry-content ol { margin: 0 0 1.35em; padding-left: 1.6em; }
.entry-content li + li { margin-top: .35em; }
.entry-content blockquote {
  margin: 1.5em 0;
  padding: .15em 0 .15em 1.25em;
  border-left: 4px solid var(--accent);
  color: #3f3f3f;
  font-style: italic;
}
.entry-content figure { margin: 1.6em 0; }
.entry-content figcaption { margin-top: .5em; color: var(--muted); font-size: 13px; }
.entry-content table { display: block; width: 100%; overflow-x: auto; border-collapse: collapse; }
.entry-content th, .entry-content td { padding: .55em; border: 1px solid var(--line); text-align: left; }
.entry-content pre { max-width: 100%; overflow-x: auto; padding: 1rem; background: #f4f4f4; }
.entry-content .media-center img { margin-inline: auto; }
.entry-content .document-unavailable { opacity: .9; }

.review-note {
  margin: 0 0 26px;
  padding: 14px 16px;
  border-left: 4px solid #8d6b00;
  background: #fff8dc;
  font-family: Arial, sans-serif;
  font-size: 14px;
  line-height: 1.5;
}

.archive-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.archive-item { padding: 19px 0; border-bottom: 1px solid var(--line); }
.archive-item h2 { margin: 0 0 4px; font-size: 22px; line-height: 1.25; }
.archive-item h2 a { color: var(--ink); text-decoration: none; }
.archive-item h2 a:hover { color: var(--accent); }

.page-footer {
  margin-top: 46px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-family: Arial, sans-serif;
  font-size: 12px;
}

@media (max-width: 760px) {
  .site-shell {
    display: block;
    width: auto;
    max-width: none;
    margin: 0 auto 50px;
  }
  .site-sidebar {
    position: static;
    padding: 27px 20px 23px;
  }
  .profile-image { width: 92px; height: 92px; margin-bottom: 13px; }
  .site-name { font-size: 23px; }
  .tagline { margin-bottom: 13px; }
  .sidebar-footer { display: none; }
  .site-content { width: 100%; }
  .primary-nav { margin-bottom: 30px; }
  .primary-nav ul { justify-content: center; }
  .primary-nav a { padding: 11px 9px; font-size: 12px; }
  main, .page-footer { margin-inline: 20px; }
  .entry-title { font-size: clamp(30px, 9vw, 38px); }
  .entry-content h2 { font-size: 25px; }
}

@media (max-width: 390px) {
  body { font-size: 15.5px; }
  main, .page-footer { margin-inline: 16px; }
  .primary-nav a { padding-inline: 8px; }
}

@media print {
  .skip-link, .primary-nav, .social-links { display: none; }
  .site-shell { display: block; width: auto; max-width: none; margin: 0; }
  .site-sidebar { position: static; text-align: left; }
  .profile-image { display: none; }
  a { color: inherit; }
}
