@font-face{font-family:Fira Code;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/fira-code-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Code;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/fira-code-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Code;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/fira-code-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Code;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/fira-code-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/montserrat-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/montserrat-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/montserrat-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/montserrat-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-sans:"Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"Fira Code", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--bg:#0d1117;--panel:#161b22;--line:#30363d;--line-soft:#21262d;--text:#c9d1d9;--text-bright:#e6edf3;--muted:#8b949e;--accent:#4d3bfe;--accent-text:#a79bff;--accent-hover:#c4bcff;--evergreen:#3fb950;--code-bg:#161b22;--code-text:#c9d1d9;--code-line:#30363d;--code-muted:#8b949e;--code-chip:#21262d;--code-accent:#a79bff;--code-ok:#3fb950;--inline-bg:#21262d;--measure:680px;--toc-width:220px;--rail-width:290px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.light-theme-tokens,[data-theme=light]{--bg:#f2f5f9;--panel:#fff;--line:#dde3ec;--line-soft:#e8ecf2;--text:#1f2328;--text-bright:#111;--muted:#666;--accent:#4d3bfe;--accent-text:#4d3bfe;--accent-hover:#3a2be0;--evergreen:#1a7f37;--inline-bg:#eef1f6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f2f5f9;--panel:#fff;--line:#dde3ec;--line-soft:#e8ecf2;--text:#1f2328;--text-bright:#111;--muted:#666;--accent-text:#4d3bfe;--accent-hover:#3a2be0;--evergreen:#1a7f37;--inline-bg:#eef1f6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.65}a{color:var(--accent-text);text-decoration:none}a:hover{color:var(--accent-hover);text-underline-offset:2px;text-decoration:underline}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}code,kbd,pre{font-family:var(--font-mono)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.topbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:26px;min-height:58px;padding:8px 24px;display:flex}.topbar__brand{color:var(--text-bright);font-family:var(--font-mono);align-items:center;gap:10px;font-size:16px;font-weight:500;display:flex}.topbar__brand:hover{color:var(--text-bright);text-decoration:none}.topbar__brand img{border-radius:7px;width:28px;height:28px;display:block}.topbar__brand span{color:var(--accent-text)}.topbar__nav{flex-wrap:wrap;gap:20px;font-size:14px;font-weight:500;display:flex}.topbar__nav a{color:var(--muted)}.topbar__nav a[aria-current=page]{color:var(--text-bright)}.topbar__spacer{flex-grow:1}.topbar__count{font-family:var(--font-mono);color:var(--muted);font-size:12px}.theme-toggle{border:1px solid var(--line);color:var(--muted);font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:flex}.theme-toggle svg{color:var(--text-bright)}.shell{flex-direction:column;gap:16px;max-width:1360px;margin:0 auto;padding:22px 24px 48px;display:flex}.cap{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:12px}.cmd{background:var(--panel);border:1px solid var(--accent);width:100%;color:var(--muted);font-family:var(--font-mono);text-align:left;cursor:pointer;border-radius:6px;align-items:center;gap:12px;padding:15px 16px;font-size:15px;display:flex}.cmd__caret{color:var(--accent-text);font-size:17px}.cmd__hint{flex-grow:1}.kbd{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:2px 8px;font-size:12px}.chips{font-family:var(--font-mono);flex-wrap:wrap;gap:8px;margin-top:10px;font-size:12px;display:flex}.chip{color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:3px 9px}.chip--on{color:#fff;background:var(--accent);border-color:var(--accent)}.panels{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:14px 16px}.panel__head{align-items:baseline;gap:10px;margin-bottom:13px;display:flex}.panel__list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.row{align-items:baseline;gap:10px;font-size:14px;display:flex}.row a{color:var(--text)}.row__num{font-family:var(--font-mono);color:var(--muted);font-size:13px}.bar{background:var(--line-soft);border-radius:2px;height:4px;margin-top:5px}.bar__fill{background:var(--accent);border-radius:2px;height:4px}.bar__fill--muted{background:var(--muted)}.bar__fill--green{background:var(--evergreen)}.table{background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow:hidden}.table__head{border-bottom:1px solid var(--line);align-items:center;padding:12px 16px;display:flex}.table__grid,.table__grid thead,.table__grid tbody{display:block}.table__grid th,.table__grid td{padding:0}.table__grid th{font-weight:inherit;text-align:left}.table__row{border-bottom:1px solid var(--line-soft);grid-template-columns:48px 1fr 210px 120px 78px 100px;align-items:baseline;gap:0 16px;padding:11px 16px;font-size:14px;display:grid}.table__grid tbody .table__row:last-child{border-bottom:none}.table__row a{color:var(--text)}.table__cell{color:var(--muted)}.table__thumb-cell{align-self:center}.table__thumb{border:1px solid var(--line);object-fit:cover;border-radius:3px;width:48px;height:28px;display:block}.table__thumb--empty{background:var(--line-soft)}.table__row--empty{display:block}.table__cell--mono{font-family:var(--font-mono);color:var(--muted);font-size:13px}.maturity{font-family:var(--font-mono);font-size:13px}.maturity--seedling{color:var(--muted)}.maturity--budding{color:var(--accent-text)}.maturity--evergreen{color:var(--evergreen)}.article{grid-template-columns:var(--toc-width) minmax(0, 1fr) var(--rail-width);align-items:start;gap:20px;display:grid}.toc{flex-direction:column;font-size:13px;line-height:1.4;display:flex;position:sticky;top:22px}.toc a{color:var(--muted);border-left:2px solid var(--line-soft);padding:6px 0 6px 12px;transition:color .12s,border-color .12s}.toc a:hover{color:var(--text);border-left-color:var(--line);text-decoration:none}.toc a[aria-current]{color:var(--text-bright);border-left-color:var(--accent)}.entry{max-width:var(--measure)}.crumbs{font-family:var(--font-mono);color:var(--muted);margin-bottom:14px;font-size:12px}.entry h1{letter-spacing:-.015em;color:var(--text-bright);text-wrap:pretty;margin:0 0 14px;font-size:30px;font-weight:600;line-height:1.25}.entry__meta{font-family:var(--font-mono);flex-wrap:wrap;gap:8px;margin-bottom:20px;font-size:12px;display:flex}.entry__lead{text-wrap:pretty;margin:0 0 18px;font-size:17px;line-height:1.6}.entry__cover{border:1px solid var(--line);border-radius:6px;width:100%;height:auto;margin:0 0 22px}.prose{font-size:16px;line-height:1.7}.prose h2{color:var(--text-bright);margin:28px 0 10px;scroll-margin-top:22px;font-size:21px;font-weight:600}.prose h3{color:var(--text-bright);margin:22px 0 8px;font-size:18px;font-weight:600}.prose p{text-wrap:pretty;margin:0 0 16px}.prose img{border-radius:6px;max-width:100%;height:auto}.prose :not(pre)>code{background:var(--inline-bg);color:var(--accent-text);border-radius:4px;padding:1px 5px;font-size:14px}.prose table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);text-align:left;padding:6px 10px}.code-block{margin:0 0 22px;position:relative}.code-block__bar{background:var(--code-chip);border:1px solid var(--code-line);color:var(--code-muted);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;border-bottom:none;border-radius:6px 6px 0 0;padding:4px 76px 4px 12px;font-size:12px;line-height:26px;overflow:hidden}.code-block[data-filename] pre.code{border-top-left-radius:0;border-top-right-radius:0}.code-block[data-filename] .code-copy{top:4px}.code-block[data-filename][data-language]:before{top:9px}.code-copy{background:var(--code-chip);border:1px solid var(--code-line);width:26px;height:26px;color:var(--code-muted);cursor:pointer;opacity:0;border-radius:5px;justify-content:center;align-items:center;padding:0;transition:opacity .12s,color .12s,border-color .12s;display:flex;position:absolute;top:8px;right:8px}.code-block:hover .code-copy,.code-copy:focus-visible{opacity:1}@media (hover:none){.code-copy{opacity:1}}.code-copy:hover{color:var(--code-accent);border-color:var(--code-accent)}.code-copy[data-state=copied]{color:var(--code-ok);border-color:var(--code-ok);opacity:1}.code-copy[data-state=failed]{color:#d29922;opacity:1;border-color:#d29922}pre.code{background:var(--code-bg);border:1px solid var(--line);color:var(--code-text);border-radius:6px;margin:0;padding:14px 16px;font-size:14px;line-height:1.65;position:relative;overflow-x:auto}.code-block[data-language]:before{color:var(--code-muted);content:attr(data-language);z-index:1;font-size:12px;position:absolute;top:12px;right:42px}.callout{background:var(--panel);border:1px solid var(--line);border-radius:6px;margin:0 0 20px;padding:12px 14px}.callout-title{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-text);margin-bottom:4px;font-size:12px}.callout[data-type=warning] .callout-title,.callout[data-type=danger] .callout-title{color:#d29922}.callout>:last-child{margin-bottom:0}.callout ul,.callout ol{margin:0 0 16px;padding-left:20px}.callout code{overflow-wrap:anywhere}.rating{background:var(--panel);border:1px solid var(--line);border-radius:6px;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:16px;padding:16px 18px;display:flex}.rating__title{color:var(--text-bright);font-size:15px;font-weight:600}.rating__stars{gap:5px;display:flex}.rating__star{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;line-height:0}.rating__star:hover,.rating__star[data-on=true]{color:var(--accent-text)}.rating__note{font-family:var(--font-mono);color:var(--muted);margin-left:auto;font-size:12px}.share{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.share a{background:var(--panel);border:1px solid var(--line);min-height:36px;color:var(--text);border-radius:6px;align-items:center;gap:7px;padding:6px 12px;font-size:13px;display:flex}.share a:hover{color:var(--text-bright);border-color:var(--accent);text-decoration:none}.share svg{color:var(--accent-text)}.rail{flex-direction:column;gap:16px;display:flex;position:sticky;top:22px}.rail__list{flex-direction:column;gap:9px;font-size:14px;line-height:1.4;display:flex}.rail__list a{color:var(--text)}.meta-list{font-family:var(--font-mono);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.meta-list div{gap:8px;display:flex}.meta-list dt{color:var(--muted);flex-shrink:0;width:92px}.meta-list dd{color:var(--text);overflow-wrap:anywhere;margin:0}.tags{font-family:var(--font-mono);flex-wrap:wrap;gap:6px;font-size:12px;display:flex}.footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;align-items:center;gap:16px;padding:20px 24px;font-size:13px;display:flex}@media (max-width:1100px){.panels,.article{grid-template-columns:minmax(0,1fr)}.toc,.rail{position:static}.toc{display:none}.table__row{grid-template-columns:48px 1fr 90px;gap:4px 12px}.table__row .table__cell--hide{display:none}}@media (max-width:640px){.shell{padding:16px 16px 40px}.topbar{gap:14px;padding:8px 16px}.entry h1{font-size:24px}.share a{flex-grow:1;justify-content:center;min-height:44px}}.cmd__input{min-width:0;color:var(--text-bright);font-family:var(--font-mono);background:0 0;border:none;flex-grow:1;padding:0;font-size:15px}.cmd__input::placeholder{color:var(--muted)}.cmd__input:focus{outline:none}.cmd:focus-within{outline:2px solid var(--accent);outline-offset:2px}.theme-toggle__dark,.theme-toggle__light{align-items:center;gap:6px;display:inline-flex}.theme-toggle__light{display:none}[data-theme=light] .theme-toggle__light{display:inline-flex}[data-theme=light] .theme-toggle__dark{display:none}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .theme-toggle__light{display:inline-flex}:root:not([data-theme=dark]) .theme-toggle__dark{display:none}}.archive__title{letter-spacing:-.015em;color:var(--text-bright);margin:0 0 4px;font-size:26px;font-weight:600;line-height:1.25}.archive__hint{margin-top:2px;font-size:13px;line-height:1.5}.tags--cloud{gap:8px;font-size:13px}.tags--cloud .chip{color:var(--text);align-items:center;gap:8px;padding:5px 10px;display:inline-flex}.chip__num{color:var(--muted);font-size:11.5px}.pager{font-family:var(--font-mono);justify-content:space-between;align-items:center;gap:12px;margin-top:20px;font-size:12px;display:flex}.pager__gap{flex:none;width:72px}
