/* Sophont style guide: electric #2233bb, midnight #08082a, muted #626674. */
#post-toc { --rail-width:210px; color:#626674; font-family:var(--font-body,Manrope,sans-serif); max-width:760px; margin:1rem auto; padding:0 20px; box-sizing:border-box; }
#post-toc-toggle { display:flex; align-items:center; justify-content:space-between; gap:.6rem; width:100%; min-height:44px; padding:.5rem 0; border:0; background:transparent; color:#08082a; cursor:pointer; line-height:1.5; font-family:inherit; font-size:.875rem; font-weight:500; text-align:left; }
#post-toc .rail-symbol { order:1; color:#626674; width:16px; text-align:center; }
#post-toc ol { list-style:none; border-left:1px solid rgba(8,8,42,.17); margin:.5rem 0 0; padding:0; max-height:calc(100dvh - 170px); overflow-y:auto; scrollbar-width:thin; }
#post-toc li { padding:0; margin:0; }
#post-toc a { display:block; padding:.5rem 0 .5rem 16px; margin-left:-1px; border-left:2px solid transparent; color:#626674; text-decoration:none; font-size:.875rem; font-weight:400; line-height:1.5; }
#post-toc a:hover { color:#2233bb; }
#post-toc a[aria-current="location"] { color:#2233bb; font-weight:500; border-left-color:#2233bb; }
#post-toc :focus-visible { outline:3px solid #2233bb; outline-offset:3px; }
#post-toc [hidden] { display:none!important; }
d-article > h2, d-article > #introduction { scroll-margin-top:88px; }
@media(min-width:1200px) {
 #post-toc { position:fixed; top:var(--rail-top,88px); left:var(--rail-left,20px); width:var(--rail-width); max-width:none; margin:0; padding:0; z-index:20; }
 #post-toc[data-visible="false"] { visibility:hidden; pointer-events:none; }
}
@media(prefers-reduced-motion:no-preference) { #post-toc a { transition:color .15s; } }

/* Inline contents when the viewport has no room for a left rail. */
#post-toc-label { display:none; }
@media(max-width:1199px) {
  #post-toc { margin:1.5rem auto; }
  #post-toc-toggle { display:none; }
  #post-toc-label { display:block; color:#08082a; font-size:.875rem; font-weight:500; margin-bottom:.5rem; }
  #post-toc ol { display:flex; flex-wrap:wrap; gap:0 22px; border:0; padding-bottom:0; margin:0; max-height:none; overflow:visible; }
  #post-toc a, #post-toc a[aria-current="location"] { margin:0; padding:.5rem 0; border:0; color:#626674; font-weight:400; }
  #post-toc a:hover { color:#2233bb; text-decoration:underline; text-underline-offset:5px; }
}
