:root{--bg:#efefef;--surface:#f7f7f7;--text:#111;--muted:#333;--line:#cfcfcf;--link:#1f3cd1;--logo-blue:#2442d8;--logo-cyan:#0f6fbf;--logo-violet:#6232d9;--logo-pink:#b91f8e;--logo-orange:#9d5200;--active:var(--logo-blue);--body-font:"IBM Plex Mono","Lucida Console",monospace;--title-font:"Silkscreen","IBM Plex Mono",monospace;--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-in-out:cubic-bezier(0.77,0,0.175,1);--sidebar-width:250px;--content-max:980px;--content-gap:42px;--content-gutter:50px}*{box-sizing:border-box;-webkit-font-smoothing:antialiased}body,html{min-height:100%}html{background:var(--bg)}body{color:var(--text);font-family:var(--body-font);font-size:100%;line-height:1.6;margin:0}.seo-content{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.skip-link{background:var(--surface);border:1px solid var(--line);color:var(--text);left:8px;padding:6px 10px;position:fixed;text-decoration:none;top:8px;transform:translateY(-150%);z-index:5}.skip-link:focus,.skip-link:focus-visible{transform:translateY(0);transition:none}.sidebar{background:var(--bg);border-right:1px solid var(--line);height:100vh;inset:0 auto 0 0;overflow-y:auto;padding:50px 20px 20px 30px;position:fixed;transition:opacity .18s var(--ease-out),transform .18s var(--ease-out),visibility 0s linear;visibility:visible;width:var(--sidebar-width)}body:not(.sticky) .sidebar{opacity:0;pointer-events:none;transform:translateX(-12px);visibility:hidden}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:var(--line)}.sidebar-toggle{display:none}.badge,.site-header,img[src*="shields.io"]{display:none!important}.github-corner{color:var(--bg);position:fixed;right:0;top:0;z-index:4}.github-corner:focus-visible{outline:2px solid var(--active);outline-offset:-10px}.github-corner svg{border:0;display:block;fill:var(--text);height:80px;width:80px}.github-corner .octo-arm,.github-corner .octo-body{fill:currentColor}.github-corner .octo-arm{transform-origin:130px 106px}.github-corner:hover .octo-arm{animation:a .56s var(--ease-out)}.github-corner:focus-visible .octo-arm{animation:a .56s var(--ease-out)}@keyframes a{0%,to{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}section.cover{align-items:center;background:var(--bg)!important;color:var(--text);display:flex;justify-content:center;min-height:100vh;text-align:center}.cover .mask{display:none}.cover-main{margin:0 auto;max-width:960px;padding:0 16px}.cover-main p{margin:0}.cover-main p:has(>img){display:inline-block;margin-bottom:20px;position:relative;z-index:0}#isolated-function{margin-top:24px}.cover-main p:has(>img):after{animation:c 4.4s var(--ease-in-out) -1.1s infinite alternate;background:radial-gradient(ellipse at center,rgba(36,66,216,.32),rgba(98,50,217,.18) 48%,rgba(185,31,142,.08) 66%,transparent 78%);border-radius:999px;bottom:-16px;content:"";filter:blur(12px);height:34px;left:50%;opacity:.72;position:absolute;transform:translateX(-50%) scale(1.14);width:76%;z-index:0}.cover-main img{animation:b 4.4s var(--ease-in-out) -1.1s infinite alternate;height:auto;position:relative;transform:translateY(-14px);width:min(320px,64vw);will-change:transform;z-index:1}@keyframes b{0%{transform:translateY(-18px)}to{transform:translateY(0)}}@keyframes c{0%{opacity:.42;transform:translateX(-50%) scale(1.18)}to{opacity:.76;transform:translateX(-50%) scale(.88)}}.cover-main h1{color:var(--text);font-family:var(--title-font);font-size:2.25rem;font-weight:700;letter-spacing:.04em;line-height:1;margin:0 0 12px;text-wrap:balance}.cover-main h1 a{color:inherit;text-decoration:none}.cover-main blockquote{border:0;color:var(--text);font-size:1.125rem;line-height:1.45;margin:0;text-wrap:balance}.cover-main blockquote p{margin:0}.app-name{margin:0 0 14px;padding:0}.app-name-link{color:var(--text);display:grid;gap:8px;justify-items:center;text-decoration:none}.app-name-link:focus-visible{outline:2px solid var(--active);outline-offset:4px}.app-name-link img{height:54px;object-fit:contain;width:54px}.app-name-link:after{color:var(--text);content:"isolated function";font-family:var(--title-font);font-size:.8125rem;font-weight:700;letter-spacing:.04em}.sidebar .sidebar-nav{line-height:1.35}.sidebar li,.sidebar ul{list-style:none;margin:0;padding:0}.sidebar ul ul{border-left:1px solid var(--line);margin-left:10px;padding-left:8px}.sidebar ul li a{color:var(--muted);display:block;font-size:1rem;margin-bottom:1px;min-height:32px;padding:8px;text-decoration:none;transition:transform .12s var(--ease-out)}.sidebar ul li a:focus-visible,.sidebar ul li a:hover{text-decoration:underline}.sidebar ul li a:focus-visible{outline:2px solid var(--active);outline-offset:2px}.sidebar ul li a:active{transform:scale(.98)}.sidebar ul li a.is-active,.sidebar ul li a[aria-current=location]{color:var(--active);text-decoration:none}.content{margin:0 var(--content-gutter) 0 calc(var(--sidebar-width) + var(--content-gap));max-width:var(--content-max);padding:50px 0 52px}.markdown-section{margin:0;max-width:100%;padding:0}.markdown-section>h3[align=center]{display:none}.markdown-section h1,.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section h5,.markdown-section h6{color:var(--text);font-family:var(--title-font);line-height:1.3;text-wrap:balance}.markdown-section h1,.markdown-section h2{font-weight:700}.markdown-section h1{font-size:2.25em;letter-spacing:.04em;line-height:1.44em;margin-bottom:.333em;margin-top:.8325em}.markdown-section h2{font-size:1.5em;letter-spacing:.04em;line-height:1.08em;margin-bottom:.875em;margin-top:2.1875em}.markdown-section h3{font-size:1.125em}.markdown-section h3,.markdown-section h4{font-weight:700;letter-spacing:.035em;line-height:1.63em;margin-bottom:1.13em;margin-top:2.825em}.markdown-section h4{font-size:1em}.markdown-section h5,.markdown-section h6{font-size:1em;font-weight:700;line-height:1.63em;margin-bottom:1.13em;margin-top:2.825em}.markdown-section :is(h1,h2,h3,h4,h5,h6) a{color:inherit;text-decoration:none}.markdown-section dd,.markdown-section dt,.markdown-section li,.markdown-section p{color:var(--text)}.markdown-section li,.markdown-section p{font-size:1rem;line-height:1.63rem;text-wrap:pretty}.markdown-section p{margin:0 0 1.13rem;padding-top:.5rem}.markdown-section blockquote,.markdown-section ol,.markdown-section p,.markdown-section pre,.markdown-section table,.markdown-section ul{margin-bottom:1.13rem;margin-top:0}.markdown-section ol,.markdown-section ul{padding-left:20px;padding-top:.5rem}.markdown-section li:not(:last-child){margin-bottom:.5rem}.markdown-section a{color:var(--link);text-underline-offset:.18em}.markdown-section a:focus-visible{outline:2px solid var(--active);outline-offset:3px}.markdown-section code,.markdown-section input,.markdown-section pre{font-family:var(--body-font)}.markdown-section :not(pre)>code{background:transparent;border:0;color:inherit;padding:0}.markdown-section pre{background:var(--surface);border:1px solid var(--line);line-height:1.63rem;overflow:auto;padding:14px 16px}.markdown-section code[class*=language-],.markdown-section pre[class*=language-]{color:var(--text);font-family:var(--body-font)}.markdown-section .token.cdata,.markdown-section .token.comment,.markdown-section .token.doctype,.markdown-section .token.prolog{color:#5f6686;font-style:italic}.markdown-section .token.atrule,.markdown-section .token.keyword,.markdown-section .token.operator{color:var(--logo-blue)}.markdown-section .token.class-name,.markdown-section .token.function{color:var(--logo-pink)}.markdown-section .token.attr-value,.markdown-section .token.string{color:var(--logo-violet)}.markdown-section .token.boolean,.markdown-section .token.constant,.markdown-section .token.number{color:var(--logo-orange)}.markdown-section .token.parameter,.markdown-section .token.property,.markdown-section .token.variable{color:var(--logo-cyan)}.markdown-section .token.punctuation{color:#4f5872}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;scroll-behavior:auto!important;transition:none!important}}.markdown-section blockquote{border-left:2px solid var(--line);color:var(--text);margin-left:0;padding-left:12px}.markdown-section blockquote p{margin:0}.markdown-section table{border-collapse:collapse;text-align:center;width:100%}.markdown-section td,.markdown-section th{border:1px solid var(--line);padding:4px 10px}.markdown-section th{background:var(--surface);font-weight:700}.markdown-section .anchor span{color:inherit}.markdown-section .anchor:before{display:none}@media (max-width:900px){.github-corner{display:none}body{overflow-x:hidden}body:not(.sticky) .sidebar{opacity:1;pointer-events:auto;transform:none;visibility:visible}.sidebar{border-bottom:0;border-right:1px solid var(--line);height:100vh;height:100dvh;left:calc((var(--sidebar-width) + 30px)*-1);padding-top:62px;position:fixed;top:0;transition:transform .25s ease-out;width:var(--sidebar-width);z-index:2}.sidebar-toggle{background:var(--bg);border:0;cursor:pointer;display:inherit;height:62px;left:6px;outline:none;padding:0 10px;position:fixed;top:0;transition:opacity .3s;width:100%;z-index:3}.sidebar-toggle:focus-visible{outline:2px solid var(--active);outline-offset:2px}.sidebar-toggle span{background-color:var(--text);display:block;height:3px;margin-bottom:5px;width:24px}body.sidebar-toggle{display:none}body.close .content,body.close .sidebar{transform:translateX(calc(var(--sidebar-width) + 30px))}body.close .sidebar-toggle{background:var(--bg);transition:background-color .3s;width:calc(var(--sidebar-width) + 34px)}.content{margin:0;padding:62px 12px 40px;transition:transform .25s ease}.markdown-section h1,.markdown-section h2{font-size:1.5em;line-height:1.08em}.cover-main blockquote{font-size:1rem}}@media (min-width:901px) and (max-width:1320px){.content{margin-left:calc(var(--sidebar-width) + var(--content-gap));margin-right:var(--content-gutter);max-width:calc(100vw - var(--sidebar-width) - var(--content-gap) - var(--content-gutter))}}