/* Article table of contents — fixed rail in the left gutter. */
.fx-toc {
  position: fixed;
  width: 240px;
  max-height: calc(100vh - 200px);
  overflow-y: auto;
  overscroll-behavior: contain;
  font-family: "Inter", "Inter Placeholder", sans-serif;
  z-index: 5;
}
.fx-toc-title {
  margin: 0 0 10px;
  padding-left: 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgb(150, 150, 150);
}
.fx-toc ul { margin: 0; padding: 0; list-style: none; border-left: 1px solid rgba(0, 0, 0, 0.08); }
.fx-toc a {
  display: block;
  padding: 6px 8px 6px 12px;
  border-left: 2px solid transparent;
  margin-left: -1px;
  font-size: 13px;
  line-height: 1.45;
  color: rgb(120, 120, 120);
  text-decoration: none;
  transition: color 0.15s, border-color 0.15s;
}
.fx-toc a:hover { color: rgb(33, 33, 33); }
.fx-toc li.fx-toc-h3 a { font-size: 12.5px; }
.fx-toc a.fx-toc-active { color: rgb(0, 0, 0); font-weight: 500; border-left-color: rgb(0, 0, 0); }
.fx-toc::-webkit-scrollbar { width: 4px; }
.fx-toc::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.15); border-radius: 2px; }

/* ponytail: no mobile drawer — under 1280px there is no gutter, so the rail just hides. */
@media (max-width: 1279px) { .fx-toc { display: none; } }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
:target { scroll-margin-top: 24px; }
