/* Banner: flat gradient instead of a background image.
   #banner carries an inline `background` from the theme, so !important is required. */
#banner.banner {
  background: linear-gradient(155deg, #0d1219 0%, #16232f 55%, #1f3a4a 100%) !important;
}

/* The dark mask exists to make text legible over photos. The gradient is
   already dark, so keep only enough for contrast. */
#banner .mask {
  background-color: rgba(0, 0, 0, 0.12) !important;
}

/* No avatar on the About page. The theme renders <img src="{about.avatar}">
   unconditionally, so an empty config value gives a broken-image icon —
   hide the wrapper here and point about.avatar at the blank placeholder. */
.about-avatar {
  display: none;
}

/* No excerpts on the index or Tangents lists: titles and meta only.
   The theme still emits an empty <a class="index-excerpt">, so hide it to
   close the gap it leaves between title and meta. */
.index-excerpt {
  display: none;
}

/* The theme keeps anchor jumps clear of the fixed navbar with a hidden 5rem
   ::before block on every heading (anchor-offset() in _mixins/base.styl). Its
   -5rem margin collapses against the heading's own margin instead of against
   the box, so each heading ends up carrying ~4rem of dead space above it.
   scroll-margin-top does the same job natively without occupying layout. */
.markdown-body > h1::before,
.markdown-body h2::before,
.markdown-body h3::before,
.markdown-body h4::before,
.markdown-body h5::before,
.markdown-body h6::before {
  display: none;
}

.markdown-body > h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
  scroll-margin-top: 5rem;
}

/* The theme sets margin-top: 2em on every heading, but em resolves against the
   heading's own font-size, so h1 (font-size 2em) gets 4rem while h3 gets 2.5rem.
   Posts use h1 for body sections, so pin it to a fixed rem instead. */
.markdown-body > h1 {
  margin-top: 2.5rem;
}

/* github-markdown underlines both h1 and h2. Posts use h1 as the section break
   and h2 as its first subsection, so the two rules stack with nothing between
   them. Keep the line on h1 only; h2 reads as a subheading on size alone. */
.markdown-body h2 {
  border-bottom: none;
  padding-bottom: 0;
}
