.blog-diagram[data-astro-cid-3dbc6wue]{margin:2.5em 0}.blog-diagram[data-astro-cid-3dbc6wue] svg[data-astro-cid-3dbc6wue]{width:100%;height:auto;color:var(--text);font-family:var(--font-sans);display:block}.fn-dim{--accent:var(--color-olive-leaf)}.fn-dim .cloud circle{opacity:.1;transition:opacity 1.1s}[data-diagram] .fn-dim .cloud circle{opacity:0}[data-diagram].is-visible .fn-dim .cloud circle{opacity:.1}.fn-dim .dimension-dot{fill:currentColor;opacity:.4;transform-box:fill-box;transform-origin:50%;transition:opacity .15s ease-out .7s,transform .15s ease-out,fill .15s ease-out}.fn-dim .dimension-ring{fill:none;stroke:var(--accent);stroke-width:1px;opacity:.4;transition:opacity .15s ease-out .7s,stroke-width .15s ease-out}.fn-dim .words-name,.fn-dim .words-value{fill:currentColor;opacity:0;transition:opacity .15s ease-out .7s}[data-diagram].is-visible .fn-dim .dimension-dot,[data-diagram].is-visible .fn-dim .dimension-ring,[data-diagram].is-visible .fn-dim .words-name,[data-diagram].is-visible .fn-dim .words-value{opacity:1}[data-diagram].revealed .fn-dim .dimension-dot,[data-diagram].revealed .fn-dim .dimension-ring,[data-diagram].revealed .fn-dim .words-name,[data-diagram].revealed .fn-dim .words-value{transition-delay:0s}.fn-dim .words-name{letter-spacing:.02em;font-size:14px;font-weight:500}.fn-dim .words-value{font-family:var(--font-serif);font-size:16px;font-style:italic}.fn-dim .declaration text{fill:currentColor;opacity:.9}.fn-dim .line{fill:none;stroke:var(--accent);stroke-width:1px;opacity:.7;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .7s 1.5s,opacity .3s 1.5s}[data-diagram].is-visible .fn-dim .line{stroke-dashoffset:0}.fn-dim .line-end{fill:var(--accent);opacity:0;transition:opacity .3s 2.1s}[data-diagram].is-visible .fn-dim .line-end{opacity:1}.fn-dim .dim{cursor:pointer}.fn-dim .dim:focus{outline:none}.fn-dim .dim,.fn-dim .declaration text{transition:opacity .15s ease-out,fill .15s ease-out}.fn-dim:has(.dim:hover,.dim:focus-visible,.declaration .tok-parameter-types:hover,.declaration .tok-responsibility:hover,.declaration .tok-receiver:hover,.declaration .tok-arity:hover,.declaration .tok-error-paths:hover,.declaration .tok-results:hover) .dim,.fn-dim:has(.dim:hover,.dim:focus-visible,.declaration .tok-parameter-types:hover,.declaration .tok-responsibility:hover,.declaration .tok-receiver:hover,.declaration .tok-arity:hover,.declaration .tok-error-paths:hover,.declaration .tok-results:hover) .declaration text{opacity:.6}.fn-dim .dim:hover .dimension-dot,.fn-dim .dim:focus-visible .dimension-dot{fill:var(--accent);opacity:1;transform:scale(1.35)}.fn-dim .dim:hover .dimension-ring,.fn-dim .dim:focus-visible .dimension-ring,.fn-dim .dim:hover .spoke,.fn-dim .dim:focus-visible .spoke{stroke-width:2px;opacity:1}.fn-dim .dim:hover .words-name,.fn-dim .dim:focus-visible .words-name,.fn-dim .dim:hover .words-value,.fn-dim .dim:focus-visible .words-value{opacity:1}.fn-dim:has(.declaration .tok-parameter-types:hover) .dim[data-dim=parameter-types] .dimension-dot,.fn-dim:has(.declaration .tok-responsibility:hover) .dim[data-dim=responsibility] .dimension-dot,.fn-dim:has(.declaration .tok-receiver:hover) .dim[data-dim=receiver] .dimension-dot,.fn-dim:has(.declaration .tok-arity:hover) .dim[data-dim=arity] .dimension-dot,.fn-dim:has(.declaration .tok-error-paths:hover) .dim[data-dim=error-paths] .dimension-dot,.fn-dim:has(.declaration .tok-results:hover) .dim[data-dim=results] .dimension-dot{fill:var(--accent);opacity:1;transform:scale(1.35)}.fn-dim:has(.declaration .tok-parameter-types:hover) .dim[data-dim=parameter-types] .dimension-ring,.fn-dim:has(.declaration .tok-responsibility:hover) .dim[data-dim=responsibility] .dimension-ring,.fn-dim:has(.declaration .tok-receiver:hover) .dim[data-dim=receiver] .dimension-ring,.fn-dim:has(.declaration .tok-arity:hover) .dim[data-dim=arity] .dimension-ring,.fn-dim:has(.declaration .tok-error-paths:hover) .dim[data-dim=error-paths] .dimension-ring,.fn-dim:has(.declaration .tok-results:hover) .dim[data-dim=results] .dimension-ring{stroke-width:2px;opacity:1}.fn-dim:has(.declaration .tok-parameter-types:hover) .dim[data-dim=parameter-types],.fn-dim:has(.declaration .tok-responsibility:hover) .dim[data-dim=responsibility],.fn-dim:has(.declaration .tok-receiver:hover) .dim[data-dim=receiver],.fn-dim:has(.declaration .tok-arity:hover) .dim[data-dim=arity],.fn-dim:has(.declaration .tok-error-paths:hover) .dim[data-dim=error-paths],.fn-dim:has(.declaration .tok-results:hover) .dim[data-dim=results]{opacity:1}.fn-dim:has(.declaration .tok-parameter-types:hover) .dim[data-dim=parameter-types] .spoke,.fn-dim:has(.declaration .tok-responsibility:hover) .dim[data-dim=responsibility] .spoke,.fn-dim:has(.declaration .tok-receiver:hover) .dim[data-dim=receiver] .spoke,.fn-dim:has(.declaration .tok-arity:hover) .dim[data-dim=arity] .spoke,.fn-dim:has(.declaration .tok-error-paths:hover) .dim[data-dim=error-paths] .spoke,.fn-dim:has(.declaration .tok-results:hover) .dim[data-dim=results] .spoke{stroke-width:2px;opacity:1}.fn-dim:has(.declaration .tok-parameter-types:hover) text.tok-parameter-types,.fn-dim:has(.declaration .tok-responsibility:hover) text.tok-responsibility,.fn-dim:has(.declaration .tok-receiver:hover) text.tok-receiver,.fn-dim:has(.declaration .tok-arity:hover) text.tok-arity,.fn-dim:has(.declaration .tok-error-paths:hover) text.tok-error-paths,.fn-dim:has(.declaration .tok-results:hover) text.tok-results{opacity:1;fill:var(--accent);font-weight:600}.fn-dim:has(.dim[data-dim=parameter-types]:hover,.dim[data-dim=parameter-types]:focus-visible) .dim[data-dim=parameter-types]{opacity:1}.fn-dim:has(.dim[data-dim=parameter-types]:hover,.dim[data-dim=parameter-types]:focus-visible) text.tok-parameter-types,.fn-dim:has(.declaration .tok-parameter-types:hover) text.tok-parameter-types{opacity:1;fill:var(--accent);font-weight:600}.fn-dim:has(.dim[data-dim=responsibility]:hover,.dim[data-dim=responsibility]:focus-visible) .dim[data-dim=responsibility]{opacity:1}.fn-dim:has(.dim[data-dim=responsibility]:hover,.dim[data-dim=responsibility]:focus-visible) text.tok-responsibility,.fn-dim:has(.declaration .tok-responsibility:hover) text.tok-responsibility{opacity:1;fill:var(--accent);font-weight:600}.fn-dim:has(.dim[data-dim=receiver]:hover,.dim[data-dim=receiver]:focus-visible) .dim[data-dim=receiver]{opacity:1}.fn-dim:has(.dim[data-dim=receiver]:hover,.dim[data-dim=receiver]:focus-visible) text.tok-receiver,.fn-dim:has(.declaration .tok-receiver:hover) text.tok-receiver{opacity:1;fill:var(--accent);font-weight:600}.fn-dim:has(.dim[data-dim=arity]:hover,.dim[data-dim=arity]:focus-visible) .dim[data-dim=arity]{opacity:1}.fn-dim:has(.dim[data-dim=arity]:hover,.dim[data-dim=arity]:focus-visible) text.tok-arity,.fn-dim:has(.declaration .tok-arity:hover) text.tok-arity{opacity:1;fill:var(--accent);font-weight:600}.fn-dim:has(.dim[data-dim=error-paths]:hover,.dim[data-dim=error-paths]:focus-visible) .dim[data-dim=error-paths]{opacity:1}.fn-dim:has(.dim[data-dim=error-paths]:hover,.dim[data-dim=error-paths]:focus-visible) text.tok-error-paths,.fn-dim:has(.declaration .tok-error-paths:hover) text.tok-error-paths{opacity:1;fill:var(--accent);font-weight:600}.fn-dim:has(.dim[data-dim=results]:hover,.dim[data-dim=results]:focus-visible) .dim[data-dim=results]{opacity:1}.fn-dim:has(.dim[data-dim=results]:hover,.dim[data-dim=results]:focus-visible) text.tok-results,.fn-dim:has(.declaration .tok-results:hover) text.tok-results{opacity:1;fill:var(--accent);font-weight:600}.fn-dim .dim:focus-visible{outline:1.5px dashed var(--accent);outline-offset:6px}@media (prefers-reduced-motion:reduce){.fn-dim .cloud circle,.fn-dim .dimension-dot,.fn-dim .dimension-ring,.fn-dim .words-name,.fn-dim .words-value,.fn-dim .declaration text,.fn-dim .line,.fn-dim .line-end{transition:none}}.lintflow{--accent:var(--color-olive-leaf)}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .lintflow{--accent:var(--color-dark-spruce)}}[data-theme=light] .lintflow{--accent:var(--color-dark-spruce)}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .lintflow{--accent:var(--color-dark-spruce)}}.lintflow .card rect{fill:none;stroke:currentColor;stroke-width:1.5px;opacity:.35}.lintflow .card-title{fill:currentColor;font-family:var(--font-sans);letter-spacing:.08em;font-size:17px;font-weight:600}.lintflow .code-lines rect{fill:currentColor;opacity:.25}.lintflow .code-lines rect.err{fill:var(--color-danger);opacity:.65}.lintflow .code-lines rect.ok{fill:var(--accent);opacity:.65}.lintflow .before .code-lines rect:nth-child(odd):not(.err):not(.ok){opacity:.18}.lintflow .badge{font-family:var(--font-sans);font-size:16px;font-weight:700}.lintflow .err-badge{fill:var(--color-danger);opacity:.65}.lintflow .ok-badge{fill:var(--accent);opacity:.65}.lintflow .rule{fill:currentColor;font-family:var(--font-serif);opacity:.85;font-size:20px;font-style:italic}.lintflow .jint circle{fill:none;stroke:var(--accent);stroke-width:2px}.lintflow .jint-name{fill:currentColor;font-family:var(--font-mono);font-size:20px;font-weight:600}.lintflow .jint-sub{fill:currentColor;font-family:var(--font-serif);opacity:.7;font-size:13.5px;font-style:italic}.lintflow .flow-line{fill:none;stroke:var(--accent);stroke-width:1.25px;stroke-dasharray:1;stroke-dashoffset:1px}.lintflow .flow-dot{fill:var(--accent)}.lintflow .before{opacity:0;transition:opacity .6s}.lintflow .rules{opacity:0;transition:opacity .6s .3s}.lintflow .jint{opacity:0;transition:opacity .6s .9s}.lintflow .flow-line{opacity:0;transition:stroke-dashoffset .6s 1.5s,opacity .3s 1.5s}.lintflow .flow-dot{opacity:0;transition:opacity .3s 2s}.lintflow .after{opacity:0;transition:opacity .5s 2.1s}[data-diagram].is-visible .lintflow .before,[data-diagram].is-visible .lintflow .rules,[data-diagram].is-visible .lintflow .jint{opacity:1}[data-diagram].is-visible .lintflow .flow-line{opacity:1;stroke-dashoffset:0}[data-diagram].is-visible .lintflow .flow-dot,[data-diagram].is-visible .lintflow .after{opacity:1}[data-diagram].revealed .lintflow *{transition-delay:0s}@media (prefers-reduced-motion:reduce){.lintflow *{transition:none}}.figure-caption[data-astro-cid-botiq5qt]{text-align:center;width:80%;font-family:var(--font-serif);opacity:.75;margin:0 auto;font-size:.9rem;font-style:italic;line-height:1.5}
