/* Статья блога (#102546): оглавление и картинки. Подключается только статьёй, где есть toc или figure; токены сайта, без ширин. */
html:has(.blog-toc) { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html:has(.blog-toc) { scroll-behavior: auto; } }
.blog-post h2[id] { scroll-margin-top: 1rem; }
.blog-toc { margin: 1rem 0 1.5rem; border: 1px solid var(--line); border-radius: 0.5rem; background: var(--paper); }
.blog-toc summary { cursor: pointer; padding: 0.7rem 1rem; font-weight: 700; }
.blog-toc__current { font-weight: 400; color: var(--muted); margin-left: 0.5rem; }
.blog-toc__current:not(:empty)::before { content: "— "; }
.blog-toc__list { margin: 0; padding: 0 1rem 0.8rem 2.9rem; }
.blog-toc__list li { margin: 0.3rem 0; }
.blog-toc__list a { text-decoration: none; }
.blog-toc__list a:hover, .blog-toc__list a:focus-visible { text-decoration: underline; }
.blog-toc__list a.is-current { color: var(--accent-strong); font-weight: 700; }
.blog-figure { margin: 1.25rem 0; }
.blog-figure img { display: block; max-width: 100%; height: auto; border-radius: 0.5rem; }
.blog-figure figcaption { margin-top: 0.4rem; color: var(--muted); font-size: 0.9em; }
.blog-figure__slot { min-height: 10rem; display: flex; align-items: center; justify-content: center; padding: 1rem; border: 2px dashed var(--line); border-radius: 0.5rem; background: color-mix(in srgb, var(--line) 35%, var(--paper)); color: var(--muted); text-align: center; }
