/* Blog reading: flow-safe contents navigation, 2026-10-29. */
.blog-final-post {
  --reading-anchor-offset: 128px;
  --reading-toc-offset: 104px;
}
.blog-final-post .blog-final-toc {
  position: static;
  display: block;
  align-self: start;
  min-width: 0;
  max-width: 100%;
  max-height: none;
  overflow: visible;
  font-size: 14px;
  line-height: 1.5;
}
.blog-final-post .blog-final-toc > :is(strong, span) {
  display: block;
  margin-bottom: 12px;
}
.blog-final-post .blog-final-toc a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 0;
  border: 0;
  border-bottom: 1px solid var(--bf-line);
  border-radius: 0;
  overflow-wrap: anywhere;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.blog-final-post .blog-final-toc a:focus-visible {
  outline: 3px solid var(--bf-navy);
  outline-offset: -3px;
  background: var(--bf-soft);
}
.blog-final-post .blog-final-article article {
  min-width: 0;
}
.blog-final-post main :is([id], h2, h3) {
  scroll-margin-top: var(--reading-anchor-offset);
}
.blog-final-post .blog-final-article article :is(h2, h3) {
  text-wrap: balance;
}
.blog-final-post .blog-final-article article ::selection {
  background: var(--bf-navy);
  color: var(--bf-white, #fff);
}
@media (max-width: 1100px) {
  .blog-final-post .blog-final-article__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }
}
@media (min-width: 1101px) and (min-height: 700px) {
  .blog-final-post .blog-final-toc {
    position: sticky;
    top: var(--reading-toc-offset);
    max-height: calc(100vh - 128px);
    max-height: calc(100dvh - 128px);
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--bf-muted) var(--bf-soft);
    scrollbar-gutter: stable;
    overscroll-behavior-y: contain;
  }
}

@media (min-width: 641px) and (max-width: 900px) {
  .blog-final-post { --reading-anchor-offset: 196px; }
}
