:root{--reading-progress: 0;scroll-behavior:smooth;scroll-padding-top:6rem}.reading-progress{position:fixed;z-index:30;top:4rem;right:0;left:0;height:3px;pointer-events:none}.reading-progress span{width:100%;height:100%;display:block;background:var(--color-accent);transform:scaleX(var(--reading-progress));transform-origin:left center}.article-shell{width:min(100% - 2rem,88rem);margin-inline:auto;display:grid;grid-template-columns:260px minmax(0,840px) 220px;align-items:start;justify-content:center;gap:var(--space-6);padding-block:clamp(2rem,6vw,4rem) var(--space-8)}.article-page{min-width:0}.article-sidebar,.article-toc{max-height:calc(100vh - 7rem);position:sticky;top:6rem;overflow-y:auto;color:var(--color-text-muted);font-size:.82rem}.article-sidebar__topic{display:block;margin-bottom:var(--space-5);color:var(--color-text);font-size:1rem;font-weight:750;text-decoration:none}.article-sidebar__series{display:grid;gap:var(--space-1);margin-bottom:var(--space-5);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted)}.article-sidebar__series span,.article-sidebar__series small,.article-sidebar__label,.article-toc__label{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.7rem}.article-sidebar__series a{color:var(--color-text);font-weight:700;text-decoration:none}.article-sidebar ul,.article-toc ul{display:grid;gap:var(--space-1);margin:var(--space-2) 0 0;padding:0;list-style:none}.article-sidebar nav a,.article-toc a{display:block;padding:var(--space-2);border-radius:var(--radius-sm);color:var(--color-text-muted);line-height:1.35;text-decoration:none}.article-sidebar nav a:hover,.article-sidebar nav a[aria-current=page],.article-toc a:hover,.article-toc a[aria-current=true]{background:var(--color-surface-muted);color:var(--color-text)}.article-toc a[aria-current=true]{font-weight:750}.article-toc{scrollbar-color:transparent transparent;scrollbar-width:none}.article-toc:hover,.article-toc:focus-within{scrollbar-color:color-mix(in srgb,var(--color-text-muted) 35%,transparent) transparent;scrollbar-width:thin}.article-toc::-webkit-scrollbar{width:0}.article-toc:hover::-webkit-scrollbar,.article-toc:focus-within::-webkit-scrollbar{width:6px}.article-toc::-webkit-scrollbar-track{background:transparent}.article-toc::-webkit-scrollbar-thumb{border-radius:999px;background:color-mix(in srgb,var(--color-text-muted) 35%,transparent)}.article-toc li[data-depth="3"]{padding-left:var(--space-3)}.article-toc p{margin:var(--space-2) 0 0}.article-mobile-controls{display:none}.article-mobile-drawer{min-width:0}.article-mobile-drawer summary{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;font-size:.85rem;font-weight:700;list-style:none}.article-mobile-drawer summary::-webkit-details-marker{display:none}.article-mobile-drawer__panel{min-width:15rem;position:absolute;z-index:10;top:calc(100% + var(--space-2));display:grid;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:0 1rem 2.5rem #17211f24}.article-mobile-drawer:last-child .article-mobile-drawer__panel{right:0}.article-mobile-drawer__panel a{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);font-size:.82rem;text-decoration:none}.article-mobile-drawer__panel a:hover,.article-mobile-drawer__panel a[aria-current=page],.article-mobile-drawer__panel a[aria-current=true]{background:var(--color-surface-muted)}.article-mobile-drawer__panel a[aria-current=true]{color:var(--color-text);font-weight:750}.article-mobile-drawer__heading{color:var(--color-accent-strong)!important;font-weight:750}@media(max-width:68rem){.article-shell{grid-template-columns:240px minmax(0,840px)}.article-toc{display:none}}@media(max-width:50rem){.article-shell{width:min(100% - 2rem,760px);display:block}.article-sidebar{display:none}.article-mobile-controls{position:relative;z-index:10;margin-bottom:var(--space-6);display:flex;justify-content:space-between;gap:var(--space-2)}}@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}.prose .expressive-code{margin-block:1.5em}.prose .expressive-code figure.frame{position:relative}.prose .expressive-code .frame{overflow:hidden;border:1px solid var(--color-border);border-radius:.75rem;background:var(--color-surface);box-shadow:0 1.25rem 2.5rem #17211f1a}.prose .expressive-code figure.frame[data-code-frame=none]{box-shadow:none}.prose .expressive-code figure.frame[data-code-frame=none]>figcaption.header{display:none!important}.prose .expressive-code figure.frame figcaption.header{position:relative!important;min-height:3rem!important;display:flex!important;align-items:center!important;padding:0 8.5rem 0 4.5rem!important;border-bottom:1px solid var(--color-border)!important;border-radius:0!important;background:var(--color-surface-muted)!important}.prose .expressive-code .code-language{width:max-content;max-width:calc(100% - 18rem);position:absolute;z-index:3;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);color:var(--color-text-muted);font-family:var(--font-mono);font-size:.72rem;font-weight:750;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.prose .expressive-code .code-collapse-toggle{width:2.25rem;min-width:2.25rem;height:2.25rem;position:absolute;z-index:4;top:.375rem;right:.625rem;padding:0;border:0;border-radius:var(--radius-sm);background:transparent!important;color:var(--color-text-muted);font:inherit;line-height:1;cursor:pointer;transition:color .16s ease}.prose .expressive-code .code-collapse-toggle:hover,.prose .expressive-code .code-collapse-toggle:focus-visible{background:color-mix(in srgb,var(--color-text-muted) 10%,transparent);color:var(--color-text)}.prose .expressive-code .code-collapse-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.prose .expressive-code .code-collapse-toggle:before{width:.5rem;height:.5rem;display:block;margin:auto;transform:translateY(.15rem) rotate(225deg);border-right:2px solid currentColor;border-bottom:2px solid currentColor;content:""}.prose .expressive-code .code-collapse-toggle[aria-expanded=false]:before{transform:translateY(-.15rem) rotate(45deg)}.prose .expressive-code .code-block-controls{min-height:0;position:relative;display:flex;align-items:center;justify-content:flex-end;padding:0;border:0;background:transparent!important}.prose .expressive-code .code-block-controls .code-collapse-toggle{right:.625rem}.prose .expressive-code .code-block-controls--plain{width:2.25rem;height:2.25rem;position:absolute;z-index:4;top:.375rem;right:.625rem}.prose .expressive-code .code-block-controls--plain .code-collapse-toggle{position:static}@media(max-width:30rem){.prose .expressive-code figure.frame figcaption.header{padding-right:7rem!important}.prose .expressive-code .code-language{width:auto;max-width:none;right:7rem;left:4.5rem;transform:translateY(-50%);text-align:center}.prose .expressive-code .code-collapse-toggle{width:2.25rem;min-width:2.25rem}}.prose .expressive-code figure.frame[data-code-collapsed] pre,.prose .expressive-code pre[hidden]{display:none!important}.prose .expressive-code figure.frame figcaption.header:before{width:.68rem!important;height:.68rem!important;position:absolute!important;top:50%!important;left:var(--space-4)!important;z-index:2!important;transform:translateY(-50%)!important;border:0!important;border-radius:999px!important;background:#ff5f57!important;box-shadow:1.05rem 0 #ffbd2e,2.1rem 0 #28c840!important;content:""!important}.prose .expressive-code figure.frame figcaption.header .title{display:none!important}.prose .expressive-code figure.frame figcaption.header .title:before,.prose .expressive-code figure.frame figcaption.header .title:after{display:none!important;content:none!important;border:0!important;background:transparent!important;box-shadow:none!important}.prose .expressive-code .copy{top:.375rem!important;right:2.875rem!important;height:2.25rem!important;align-items:center!important}.prose .expressive-code .copy button{width:2.25rem;min-width:2.25rem;height:2.25rem;display:grid!important;place-items:center!important;opacity:1!important;padding:0;border:0;border-radius:var(--radius-sm);background:transparent!important;color:var(--color-text-muted);font-size:.75rem;font-weight:700;transition:border-color .16s ease,color .16s ease!important}.prose .expressive-code .copy button div{width:1rem!important;height:1rem!important;position:relative!important;transform:none!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;opacity:1!important}.prose .expressive-code .copy button div:before,.prose .expressive-code .copy button div:after{position:absolute;display:block;border:1.5px solid currentColor;border-radius:.16rem;content:""}.prose .expressive-code .copy button div:before{width:.58rem;height:.68rem;top:.26rem;left:.16rem;opacity:.55}.prose .expressive-code .copy button div:after{width:.58rem;height:.68rem;top:.08rem;left:.32rem;background:var(--color-surface)}.prose .expressive-code .copy button:after{content:none}.prose .expressive-code .copy button:hover,.prose .expressive-code .copy button:focus-visible{background:color-mix(in srgb,var(--color-text-muted) 10%,transparent);color:var(--color-text)}.prose .expressive-code .copy button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.prose .expressive-code pre{margin:0;background:var(--color-surface)!important;font-family:var(--font-mono);font-size:.88rem;line-height:1.7;tab-size:2}.prose .expressive-code code{font-family:inherit}.prose .expressive-code .ec-line{min-height:1.7em}.prose .expressive-code .ln{color:var(--color-text-muted);opacity:.72}[data-theme=dark] .prose .expressive-code .frame{box-shadow:0 1.25rem 2.5rem #00000047}[data-theme=dark] .prose .expressive-code figure.frame[data-code-frame=none]{box-shadow:none}
