/* blog-toc — scroll-spy for the article "On this page" rail.
   Mirrors the legal pages' Skiper60 sidebar: the section being read gets the
   ink color and a 2px bar that slides along the list's left border. */

.hvo-article-toc ol.hvo-toc-track { position: relative; }

.hvo-article-toc .hvo-toc-bar {
  position: absolute;
  left: -1.5px;
  top: 0;
  width: 2px;
  height: 1.25rem;
  border-radius: 1rem;
  background: var(--hvo-ink);
  transform: translateY(-50%);
  transition: top .35s cubic-bezier(.33, 1.4, .6, 1);
}

.hvo-article-toc a { transition: color .2s; }
.hvo-article-toc a.is-active { color: var(--hvo-ink); }

/* Anchor jumps land with the heading clear of the (hiding) navbar, which also
   puts the target heading past the spy line so the clicked item marks active. */
.hvo-article-body h2 { scroll-margin-top: 7.5rem; }

@media (prefers-reduced-motion: reduce) {
  .hvo-article-toc .hvo-toc-bar { transition: none; }
}
