:root{color-scheme:light;--bg-color:#f2f2ef;--primary-color:#18181a;--text-color:#3a3a3d;--muted-color:#6e6e72;--secondary-color:#18181a;--border-color:#d6d6d2;--code-bg:#fbfbfa;--selection-color:#e4e4df;--token-keyword:#a1262c;--token-string:#2f6b3a;--token-function:#1f4fa3;--token-comment:#8c8c90;--sans-serif-font:"IBM Plex Sans", system-ui, sans-serif;--code-font:"IBM Plex Mono", ui-monospace, monospace}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg-color:#0b0b0b;--primary-color:#e6e6e6;--text-color:#b8b8b8;--muted-color:#7c7c7c;--secondary-color:#fff;--border-color:#2a2a2a;--code-bg:#131313;--selection-color:#333;--token-keyword:#ff8a8a;--token-string:#8fdca8;--token-function:#8fb4ff;--token-comment:#6e6e6e}}::selection{background:var(--selection-color)}*{-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;box-sizing:border-box}body,html{height:100%}body{-moz-osx-font-smoothing:grayscale;font-family:var(--sans-serif-font);font-size:16px;letter-spacing:0;margin:0;overflow-x:hidden}img{max-width:100%}.sidebar,body{background-color:var(--bg-color);color:var(--text-color)}@keyframes a{0%,to{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}.github-corner svg{z-index:1;border-bottom:0;position:fixed;right:0;text-decoration:none;top:0;color:var(--bg-color);fill:var(--primary-color);height:80px;width:80px}.github-corner:hover svg .octo-arm{animation:a .56s ease-in-out}.github-corner:focus-visible svg .octo-arm{animation:a .56s ease-in-out}main{display:block;position:relative;width:100vw;height:100%;z-index:0}.sidebar{border-right:1px solid var(--border-color);bottom:0;left:0;overflow-y:auto;padding:40px;position:absolute;top:0;transition:transform .25s ease-out;width:300px;z-index:2}.sidebar>h1{font-size:1.25rem;font-weight:600;margin:0 0 32px 15px;opacity:0;transition:opacity .3s ease-out,visibility 0s .3s;visibility:hidden}.cover-passed .sidebar>h1{opacity:1;transition:opacity .3s ease-out;visibility:visible}@media(prefers-reduced-motion:reduce){.cover-passed .sidebar>h1,.sidebar>h1{transition:none}}.sidebar>h1 a{color:var(--primary-color);text-decoration:none}.sidebar>h1 img{display:block;width:100%}.sidebar .sidebar-nav{line-height:2em;padding-bottom:40px}.sidebar li{margin:6px 0 6px 15px}.sidebar ul{margin:0;padding:0}.sidebar ul ul{margin-left:15px}.sidebar ul,.sidebar ul li{list-style:none}.sidebar ul li a{color:var(--muted-color);display:block;font-size:14px;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.sidebar ul li a:hover{color:var(--primary-color)}.sidebar ul li a:focus-visible{color:var(--primary-color)}.sidebar ul li.active>a{border-right:2px solid var(--secondary-color);color:var(--secondary-color);font-weight:600}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:transparent;border-radius:4px}.sidebar:hover::-webkit-scrollbar-thumb{background:hsla(0,0%,53%,.4)}.sidebar:focus-visible::-webkit-scrollbar-thumb{background:hsla(0,0%,53%,.4)}.sidebar-toggle{display:none}body.sticky .sidebar,body.sticky .sidebar-toggle{position:fixed}.content{bottom:0;left:300px;padding-top:60px;position:absolute;right:0;top:0;transition:left .25s}.markdown-section{margin:0 auto;max-width:800px;padding:30px 15px 40px;position:relative}.markdown-section>*{box-sizing:border-box;font-size:inherit}.markdown-section>:first-child{margin-top:0!important}.markdown-section iframe.figure{border:0;display:block;aspect-ratio:770/647;margin:2rem 0;width:100%}.markdown-section iframe.figure[data-figure=wordmark]{aspect-ratio:640/324;margin:0 auto 2rem;max-width:640px}.markdown-section>.subtitle{color:var(--muted-color);font-size:1.5rem;letter-spacing:-.01em;line-height:1.3;margin:0 0 1rem;padding-bottom:1rem;text-wrap:balance}.markdown-section>.badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:0 0 3rem}.markdown-section>.badges img{display:block}.markdown-section :is(h1,h2,h3,h4,h5){color:var(--primary-color);font-weight:600;letter-spacing:-.016em;line-height:1.25}.markdown-section :is(h1,h2,h3,h4,h5) a{color:inherit}.markdown-section :is(h1,h2,h3,h4,h5) a:hover:after{content:"#";color:var(--muted-color);display:inline-block;margin-left:6px;position:relative}.markdown-section :is(h1,h2,h3,h4,h5) a:focus-visible:after{content:"#";color:var(--muted-color);display:inline-block;margin-left:6px;position:relative}.markdown-section a{color:var(--primary-color);text-decoration:none}.markdown-section :is(li,p) a{text-decoration:underline;text-decoration-color:var(--border-color);text-underline-offset:3px}.markdown-section :is(li,p) a:hover{text-decoration-color:currentColor}.markdown-section :is(li,p) a:focus-visible{text-decoration-color:currentColor}.markdown-section h1{font-size:2rem;margin:4rem 0 1rem}.markdown-section h2{border-top:1px solid var(--border-color);font-size:1.6rem;margin:3.5rem 0 1rem;padding-top:2.5rem}.markdown-section h3{font-size:1.25rem;margin:2.5rem 0 1rem}.markdown-section h4{font-size:1.05rem;margin:2rem 0 .75rem}.markdown-section h5{font-size:1rem}.markdown-section p{margin:1.2em 0}.markdown-section :is(p,ul){line-height:1.8rem}.markdown-section code,.markdown-section strong{color:var(--primary-color)}.markdown-section ul li{margin-bottom:10px}.markdown-section ul{padding-left:2rem}.markdown-section blockquote{border-left:2px solid var(--primary-color);color:var(--muted-color);margin:2em 0;padding-left:20px}.markdown-section blockquote p{margin-left:0;padding:12px 0}.markdown-section :is(code,pre){border-radius:4px}.markdown-section code{font-family:var(--code-font);font-size:.8rem;padding:2px 6px;white-space:nowrap}.markdown-section code,.markdown-section pre{background:var(--code-bg);border:1px solid var(--border-color)}.markdown-section pre{line-height:1.5rem;margin:1.2em 0;overflow:auto;padding:0 .7rem;position:relative;word-wrap:normal}.markdown-section .codecopy .codecopy-btn{background:var(--code-bg);border-color:var(--border-color);box-shadow:none;color:var(--muted-color)}.markdown-section .codecopy .codecopy-btn:hover{background:var(--bg-color);border-color:var(--muted-color);color:var(--primary-color)}.markdown-section .codecopy .codecopy-btn:focus-visible{background:var(--bg-color);border-color:var(--muted-color);color:var(--primary-color)}.markdown-section .codecopy .codecopy-btn svg{fill:currentColor}.markdown-section .codecopy:hover pre:after{opacity:0}.markdown-section .codecopy:focus-visible pre:after{opacity:0}.markdown-section pre:after{color:var(--muted-color);content:attr(data-lang);font-size:.6rem;height:15px;line-height:15px;padding:5px 10px 0;position:absolute;right:0;text-align:right;top:0}.markdown-section pre>code{background:none;border:0;color:var(--text-color);display:block;font-family:var(--code-font);font-size:.8rem;line-height:inherit;margin:0 2px;max-width:inherit;overflow:inherit;padding:1.25em 5px;white-space:inherit}.token:is(.class-name,.function,.number){color:var(--token-function)}.token.string{color:var(--token-string)}.token:is(.constant,.keyword,.boolean){color:var(--token-keyword)}.token.comment{color:var(--token-comment)}@media print{.github-corner,.sidebar,.sidebar-toggle{display:none}}@media screen and (max-width:768px){.github-corner svg{height:62px;width:62px}.github-corner:hover svg .octo-arm{animation:none}.github-corner:focus-visible svg .octo-arm{animation:none}.sidebar{left:-300px;position:fixed}.sidebar-toggle{background:var(--bg-color);border:0;cursor:pointer;display:block;height:62px;left:0;outline:none;padding:0 16px;position:fixed;top:0;transition:opacity .3s;width:100%;z-index:3}.sidebar-toggle:focus-visible{outline:2px solid var(--primary-color);outline-offset:-2px}.sidebar-toggle span{background-color:var(--primary-color);display:block;height:2px;margin-bottom:5px;width:22px}body.close .content,body.close .sidebar{transform:translateX(300px)}body.close .sidebar-toggle{width:300px}main{height:auto;overflow-x:hidden}.content{left:0;max-width:100vw;padding-top:62px;position:static;transition:transform .25s}.markdown-section{padding:24px 16px 40px}.sidebar{padding-top:78px}}