.post-body > * + * {
    margin-top: 1.5rem;
  }

  .post-body h2,
  .post-body h3,
  .post-body h4 {
    font-family: var(--font-ui);
    font-weight: 700;
    line-height: 1.3;
    color: var(--color-ink);
  }

  .post-body h2 {
    margin-top: 2.75rem;
    font-size: 1.625rem;
  }

  .post-body h3 {
    margin-top: 2.25rem;
    font-size: 1.3rem;
  }

  .post-body h4 {
    margin-top: 2rem;
    font-size: 1.125rem;
  }

  /* brand-dark, like every other link — see the token block in global.css. Raw CSS rather
     than a utility class, which is why the phase 6 contrast sweep missed it first time and
     59 post pages kept failing after every component had been fixed. */
  .post-body a {
    color: var(--color-brand-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  .post-body a:hover {
    color: var(--color-brand-deep);
  }

  .post-body strong {
    font-weight: 700;
    color: var(--color-ink);
  }

  .post-body ul,
  .post-body ol {
    padding-left: 1.5rem;
  }

  .post-body ul {
    list-style: disc;
  }

  .post-body ol {
    list-style: decimal;
  }

  .post-body li + li {
    margin-top: 0.5rem;
  }

  .post-body li::marker {
    color: var(--color-brand);
  }

  .post-body img {
    height: auto;
    max-width: 100%;
    border-radius: 0.25rem;
  }

  /* Markdown wraps a lone image in its own paragraph; drop the text indent rules around it. */
  .post-body p:has(> img:only-child) {
    line-height: 0;
  }

  .post-body blockquote {
    border-left: 3px solid var(--color-brand);
    padding-left: 1.25rem;
    font-style: italic;
    color: var(--color-slate);
  }

  .post-body hr {
    border-color: color-mix(in srgb, var(--color-slate) 25%, transparent);
  }.band[data-astro-cid-ugbmogqm] {
  background-image: var(--band-art);
  background-repeat: no-repeat;
  background-position: 0 0;
}

@media (width <= 767px) {
  .band[data-astro-cid-ugbmogqm] {
    background-image: none;
  }
}
