@layer quartz-base{@keyframes dropin{0%{opacity:0;visibility:hidden}1%{opacity:0}to{opacity:1;visibility:visible}}.popover{z-index:999;will-change:transform;padding:1rem;position:fixed;top:0;left:0;overflow:visible}.popover>.popover-inner{width:30rem;max-height:20rem;font-weight:initial;font-style:initial;line-height:normal;font-size:initial;font-family:var(--bodyFont);border:1px solid var(--lightgray);background-color:var(--light);overscroll-behavior:contain;white-space:normal;-webkit-user-select:none;user-select:none;cursor:default;border-radius:5px;padding:0 1rem 1rem;position:relative;overflow:auto;box-shadow:6px 6px 36px #00000040}.popover>.popover-inner[data-content-type][data-content-type*=pdf],.popover>.popover-inner[data-content-type][data-content-type*=image]{max-height:100%;padding:0}.popover>.popover-inner[data-content-type][data-content-type*=image] img{border-radius:0;margin:0;display:block}.popover>.popover-inner[data-content-type][data-content-type*=pdf] iframe{width:100%}.popover h1{font-size:1.5rem}.popover{visibility:hidden;opacity:0;transition:opacity .3s,visibility .3s}@media (max-width:800px){.popover{display:none!important}}.active-popover,.popover:hover{animation:.3s .2s forwards dropin}@charset "UTF-8";code[data-theme*=\ ]{color:var(--shiki-light);background-color:var(--shiki-light-bg)}code[data-theme*=\ ] span{color:var(--shiki-light)}[saved-theme=dark] code[data-theme*=\ ]{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}[saved-theme=dark] code[data-theme*=\ ] span{color:var(--shiki-dark)}.callout{--callout-accent:var(--tertiary);--callout-bg:color-mix(in srgb, var(--light) 55%, transparent);--callout-title-bg:color-mix(in srgb, var(--secondary) 4%, transparent);--callout-title-rule:color-mix(in srgb, var(--secondary) 10%, transparent);--callout-label-color:var(--secondary);--callout-icon-fold:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"%3E%3Cpolyline points=\"6 9 12 15 18 9\"%3E%3C/polyline%3E%3C/svg%3E");border:none;border-left:2px solid var(--callout-accent);background-color:var(--callout-bg);box-sizing:border-box;border-radius:0;margin:1.75rem 0;padding:0;overflow-y:hidden}.callout>.callout-content{padding:.85rem 1.1rem .95rem;transition:grid-template-rows .1s cubic-bezier(.02,.01,.47,1);display:grid;overflow:hidden}.callout>.callout-content>:first-child{margin-top:0}.callout>.callout-content p{font-family:var(--bodyFont);color:var(--dark);margin:0 0 .55rem;font-size:.95rem;font-style:normal;font-weight:300;line-height:1.75}.callout>.callout-content p:last-child{margin-bottom:0}.callout>.callout-content code{font-family:var(--codeFont);background-color:color-mix(in srgb, var(--secondary) 8%, transparent);border-radius:0;padding:.1em .35em;font-size:.85em}.callout.is-collapsed>.callout-title>.fold-callout-icon{transform:rotate(-90deg)}.callout.is-collapsed .callout-content>*{height:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;transition:height .1s cubic-bezier(.02,.01,.47,1),margin .1s cubic-bezier(.02,.01,.47,1),padding .1s cubic-bezier(.02,.01,.47,1);overflow-y:clip}.callout.is-collapsed .callout-content>:first-child{margin-top:-1rem}.callout-title{background-color:var(--callout-title-bg);border-bottom:1px solid var(--callout-title-rule);color:var(--callout-label-color);align-items:center;gap:.5rem;padding:.5rem 1.1rem .45rem;display:flex}.callout-title .callout-icon{display:none}.callout-title .fold-callout-icon{--callout-icon:var(--callout-icon-fold);--icon-size:12px;width:var(--icon-size);height:var(--icon-size);flex:0 0 var(--icon-size);background-size:var(--icon-size) var(--icon-size);background-color:var(--gray);-webkit-mask-image:var(--callout-icon);mask-image:var(--callout-icon);-webkit-mask-size:var(--icon-size) var(--icon-size);mask-size:var(--icon-size) var(--icon-size);opacity:.45;cursor:pointer;margin-left:auto;transition:transform .15s;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.callout-title:before{content:"◇";font-family:var(--codeFont);color:var(--callout-accent);opacity:.9;flex-shrink:0;font-size:.62rem;font-weight:700;line-height:1}.callout-title>.callout-title-inner{font-family:var(--codeFont);letter-spacing:.2em;text-transform:uppercase;color:var(--callout-label-color);opacity:.8;font-size:.6rem;font-weight:700}.callout-title>.callout-title-inner>p{font-family:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--callout-label-color);margin:0;font-style:normal}.callout[data-callout],.callout[data-callout=note]{--callout-accent:color-mix(in srgb, var(--secondary) 55%, transparent)}.callout[data-callout] .callout-title:before,.callout[data-callout=note] .callout-title:before{content:"◇"}.callout[data-callout=abstract],.callout[data-callout=summary],.callout[data-callout=tldr]{--callout-accent:color-mix(in srgb, var(--secondary) 45%, transparent)}.callout[data-callout=abstract] .callout-title:before,.callout[data-callout=summary] .callout-title:before,.callout[data-callout=tldr] .callout-title:before{content:"≡"}.callout[data-callout=info]{--callout-accent:color-mix(in srgb, var(--secondary) 65%, transparent);--callout-label-color:color-mix(in srgb, var(--secondary) 70%, transparent)}.callout[data-callout=info] .callout-title:before{content:"◈"}.callout[data-callout=todo]{--callout-accent:var(--tertiary)}.callout[data-callout=todo] .callout-title:before{content:"○"}.callout[data-callout=tip],.callout[data-callout=hint],.callout[data-callout=important]{--callout-accent:var(--tertiary);--callout-label-color:var(--tertiary)}.callout[data-callout=tip] .callout-title:before,.callout[data-callout=hint] .callout-title:before,.callout[data-callout=important] .callout-title:before{content:"→"}.callout[data-callout=success],.callout[data-callout=check],.callout[data-callout=done]{--callout-accent:color-mix(in srgb, var(--dark) 70%, transparent);--callout-label-color:color-mix(in srgb, var(--dark) 70%, transparent)}.callout[data-callout=success] .callout-title:before,.callout[data-callout=check] .callout-title:before,.callout[data-callout=done] .callout-title:before{content:"✓"}.callout[data-callout=question],.callout[data-callout=help],.callout[data-callout=faq]{--callout-accent:color-mix(in srgb, var(--secondary) 50%, transparent)}.callout[data-callout=question] .callout-title:before,.callout[data-callout=help] .callout-title:before,.callout[data-callout=faq] .callout-title:before{content:"?"}.callout[data-callout=warning],.callout[data-callout=attention],.callout[data-callout=caution]{--callout-accent:var(--tertiary);--callout-bg:color-mix(in srgb, var(--tertiary) 4%, transparent);--callout-title-bg:color-mix(in srgb, var(--tertiary) 6%, transparent);--callout-title-rule:color-mix(in srgb, var(--tertiary) 14%, transparent);--callout-label-color:var(--tertiary)}.callout[data-callout=warning] .callout-title:before,.callout[data-callout=attention] .callout-title:before,.callout[data-callout=caution] .callout-title:before{content:"△"}.callout[data-callout=failure],.callout[data-callout=missing],.callout[data-callout=fail]{--callout-accent:color-mix(in srgb, var(--tertiary) 85%, #600 15%);--callout-bg:color-mix(in srgb, var(--tertiary) 4%, transparent);--callout-title-bg:color-mix(in srgb, var(--tertiary) 6%, transparent);--callout-title-rule:color-mix(in srgb, var(--tertiary) 14%, transparent);--callout-label-color:color-mix(in srgb, var(--tertiary) 85%, #600 15%)}.callout[data-callout=failure] .callout-title:before,.callout[data-callout=missing] .callout-title:before,.callout[data-callout=fail] .callout-title:before{content:"✕"}.callout[data-callout=danger],.callout[data-callout=error]{--callout-accent:color-mix(in srgb, var(--tertiary) 90%, #600 10%);--callout-bg:color-mix(in srgb, var(--tertiary) 5%, transparent);--callout-title-bg:color-mix(in srgb, var(--tertiary) 8%, transparent);--callout-title-rule:color-mix(in srgb, var(--tertiary) 18%, transparent);--callout-label-color:color-mix(in srgb, var(--tertiary) 90%, #600 10%)}.callout[data-callout=danger] .callout-title:before,.callout[data-callout=error] .callout-title:before{content:"✕"}.callout[data-callout=bug]{--callout-accent:color-mix(in srgb, var(--tertiary) 90%, #600 10%);--callout-bg:color-mix(in srgb, var(--tertiary) 5%, transparent);--callout-title-bg:color-mix(in srgb, var(--tertiary) 8%, transparent);--callout-title-rule:color-mix(in srgb, var(--tertiary) 18%, transparent);--callout-label-color:color-mix(in srgb, var(--tertiary) 90%, #600 10%)}.callout[data-callout=bug] .callout-title:before{content:"⊘"}.callout[data-callout=example]{--callout-accent:color-mix(in srgb, var(--secondary) 45%, transparent)}.callout[data-callout=example] .callout-title:before{content:"≡"}.callout[data-callout=disclosure]{--callout-bg:transparent;border-left:none;border-top:1px solid color-mix(in srgb, var(--gray) 28%, transparent);margin:2.5rem 0 1.75rem}.callout[data-callout=disclosure]>.callout-title{background-color:#0000;border-bottom:none;gap:0;padding:.7rem 0 0}.callout[data-callout=disclosure]>.callout-title:before{content:none}.callout[data-callout=disclosure]>.callout-title>.callout-title-inner{font-family:var(--headerFont);letter-spacing:.1em;color:var(--gray);opacity:1;font-size:.85rem;font-weight:600}.callout[data-callout=disclosure]>.callout-title>.callout-title-inner>p{letter-spacing:.1em;font-family:var(--headerFont)!important;color:var(--gray)!important;font-size:.85rem!important;font-weight:600!important;line-height:1.4!important}.callout[data-callout=disclosure]>.callout-title .fold-callout-icon{margin-left:auto}.callout[data-callout=disclosure]>.callout-content{padding:.35rem 0 0}.callout[data-callout=quote],.callout[data-callout=cite]{--callout-accent:color-mix(in srgb, var(--gray) 50%, transparent);--callout-bg:transparent}.callout[data-callout=quote] .callout-title,.callout[data-callout=cite] .callout-title{display:none}.callout[data-callout=quote]>.callout-content p,.callout[data-callout=cite]>.callout-content p{color:color-mix(in srgb, var(--dark) 75%, transparent);font-style:italic}html[saved-theme=dark] .callout[data-callout=warning],html[saved-theme=dark] .callout[data-callout=attention],html[saved-theme=dark] .callout[data-callout=caution],html[saved-theme=dark] .callout[data-callout=failure],html[saved-theme=dark] .callout[data-callout=missing],html[saved-theme=dark] .callout[data-callout=fail],html[saved-theme=dark] .callout[data-callout=danger],html[saved-theme=dark] .callout[data-callout=error],html[saved-theme=dark] .callout[data-callout=bug]{--callout-bg:color-mix(in srgb, var(--tertiary) 7%, transparent);--callout-title-bg:color-mix(in srgb, var(--tertiary) 10%, transparent)}.callout-content .callout{background-color:#0000;border-left-width:1px;margin:.75rem 0}html{scroll-behavior:smooth;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;width:100vw;overflow-x:hidden}@media (max-width:800px){html{scroll-padding-top:4rem}}body{box-sizing:border-box;background-color:var(--light);font-family:var(--bodyFont);color:var(--darkgray);margin:0}.text-highlight{background-color:var(--textHighlight);border-radius:5px;padding:0 .1rem}::selection{background:color-mix(in srgb, var(--tertiary) 60%, #fff0);color:var(--darkgray)}p,ul,text,a,tr,td,li,ol,ul,.katex,.math,.typst-doc,g[class~=typst-text]{color:var(--darkgray);fill:var(--darkgray);overflow-wrap:break-word;text-wrap:pretty}path[class~=typst-shape]{stroke:var(--darkgray)}.math.math-display{text-align:center}article>mjx-container.MathJax,article blockquote>div>mjx-container.MathJax{display:flex}article>mjx-container.MathJax>svg,article blockquote>div>mjx-container.MathJax>svg{margin-left:auto;margin-right:auto}article blockquote>div>mjx-container.MathJax>svg{margin-top:1rem;margin-bottom:1rem}strong{font-weight:600}a{color:var(--secondary);font-weight:600;text-decoration:none;transition:color .2s}a:hover{color:var(--tertiary)}a.internal{background-color:var(--highlight);border-radius:5px;padding:0 .1rem;line-height:1.4rem;text-decoration:none}a.internal.broken{color:var(--secondary);opacity:.5;transition:opacity .2s}a.internal.broken:hover{opacity:.8}a.internal:has(>img){background-color:#0000;border-radius:0;padding:0}a.internal.tag-link:before{content:"#"}a.external .external-icon{height:1ex;margin:0 .15em}a.external .external-icon>path{fill:var(--dark)}.flex-component{display:flex}.desktop-only{display:contents}.desktop-only.flex-component{display:flex}@media (max-width:800px){.desktop-only.flex-component,.desktop-only{display:none}}.mobile-only,.mobile-only.flex-component{display:none}@media (max-width:800px){.mobile-only.flex-component{display:flex}.mobile-only{display:contents}}.page{max-width:1500px;margin:0 auto}.page article>h1{font-size:2rem}.page article li:has(>input[type=checkbox]){padding-left:0;list-style-type:none}.page article li:has(>input[type=checkbox]:checked){text-decoration:line-through;-webkit-text-decoration-color:var(--gray);text-decoration-color:var(--gray);color:var(--gray)}.page article li>*{margin-top:0;margin-bottom:0}.page article p>strong{color:var(--dark)}.page>#quartz-body{grid-template:"grid-sidebar-left grid-header grid-sidebar-right""grid-sidebar-left grid-center grid-sidebar-right""grid-sidebar-left grid-footer grid-sidebar-right"/320px auto 320px;gap:5px;display:grid}@media (min-width:800px) and (max-width:1200px){.page>#quartz-body{grid-template:"grid-sidebar-left grid-header""grid-sidebar-left grid-center""grid-sidebar-left grid-sidebar-right""grid-sidebar-left grid-footer"/320px auto;gap:5px}}@media (max-width:800px){.page>#quartz-body{grid-template:"grid-sidebar-left""grid-header""grid-center""grid-sidebar-right""grid-footer"/auto;gap:5px}}@media not (min-width:1200px){.page>#quartz-body{padding:0 1rem}}@media (max-width:800px){.page>#quartz-body{margin:0 auto}}.page>#quartz-body .sidebar{box-sizing:border-box;gap:1.2rem;height:100vh;padding:6rem 2rem 2rem;display:flex;position:sticky;top:0}.page>#quartz-body .sidebar.left{z-index:1;flex-direction:column;grid-area:grid-sidebar-left}@media (max-width:800px){.page>#quartz-body .sidebar.left{position:initial;height:unset;flex-direction:row;align-items:center;gap:0;padding:2rem 0 0;display:flex}}.page>#quartz-body .sidebar.right{flex-direction:column;grid-area:grid-sidebar-right;margin-right:0}@media (max-width:800px){.page>#quartz-body .sidebar.right{margin-left:inherit;margin-right:inherit}}@media not (min-width:1200px){.page>#quartz-body .sidebar.right{position:initial;height:unset;flex-direction:row;width:100%;padding:0}.page>#quartz-body .sidebar.right>*{flex:1;max-height:24rem}.page>#quartz-body .sidebar.right>.toc{display:none}}.page>#quartz-body .page-header,.page>#quartz-body .page-footer{margin-top:1rem}.page>#quartz-body .page-header{grid-area:grid-header;margin:6rem 0 0}@media (max-width:800px){.page>#quartz-body .page-header{margin-top:0;padding:0}}.page>#quartz-body .center>article{grid-area:grid-center}.page>#quartz-body footer{grid-area:grid-footer}.page>#quartz-body .center,.page>#quartz-body footer{min-width:100%;max-width:100%;margin-left:auto;margin-right:auto}@media (min-width:800px) and (max-width:1200px){.page>#quartz-body .center,.page>#quartz-body footer{margin-right:0}}@media (max-width:800px){.page>#quartz-body .center,.page>#quartz-body footer{margin-left:0;margin-right:0}}.page>#quartz-body footer{margin-left:0}.page[data-frame=full-width]>#quartz-body{grid-template:"grid-header""grid-center""grid-footer"/auto}@media (min-width:800px) and (max-width:1200px){.page[data-frame=full-width]>#quartz-body{grid-template-columns:auto}}.page[data-frame=full-width]>#quartz-body .center.full-width{min-width:100%;max-width:100%}.page[data-frame=minimal]>#quartz-body{grid-template:"grid-center""grid-footer"/auto}@media (min-width:800px) and (max-width:1200px){.page[data-frame=minimal]>#quartz-body{grid-template-columns:auto}}.page[data-frame=minimal]>#quartz-body .center.minimal{min-width:100%;max-width:100%;margin:0}.footnotes{border-top:1px solid var(--lightgray);margin-top:2rem}input[type=checkbox]{color:var(--secondary);border:1px solid var(--lightgray);background-color:var(--light);appearance:none;border-radius:3px;width:16px;height:16px;margin-inline:-1.4rem .2rem;position:relative;transform:translateY(2px)}input[type=checkbox]:checked{border-color:var(--secondary);background-color:var(--secondary)}input[type=checkbox]:checked:after{content:"";border:solid var(--light);border-width:0 2px 2px 0;width:4px;height:8px;display:block;position:absolute;top:1px;left:4px;transform:rotate(45deg)}blockquote{border-left:3px solid var(--secondary);margin:1rem 0;padding-left:1rem;transition:border-color .2s}h1,h2,h3,h4,h5,h6,thead{font-family:var(--headerFont);color:var(--dark);font-weight:revert;margin-bottom:0}article>h1>a[role=anchor],article>h2>a[role=anchor],article>h3>a[role=anchor],article>h4>a[role=anchor],article>h5>a[role=anchor],article>h6>a[role=anchor],article>thead>a[role=anchor]{color:var(--dark);background-color:#0000}h1[id]>a[href^=\#],h2[id]>a[href^=\#],h3[id]>a[href^=\#],h4[id]>a[href^=\#],h5[id]>a[href^=\#],h6[id]>a[href^=\#]{opacity:0;font-family:var(--codeFont);-webkit-user-select:none;user-select:none;margin:0 .5rem;transition:opacity .2s;transform:translateY(-.1rem)}h1[id]:hover>a,h2[id]:hover>a,h3[id]:hover>a,h4[id]:hover>a,h5[id]:hover>a,h6[id]:hover>a{opacity:1}h1:not([id])>a[role=anchor],h2:not([id])>a[role=anchor],h3:not([id])>a[role=anchor],h4:not([id])>a[role=anchor],h5:not([id])>a[role=anchor],h6:not([id])>a[role=anchor]{display:none}h1{margin-top:2.25rem;margin-bottom:1rem;font-size:1.75rem}h2{margin-top:1.9rem;margin-bottom:1rem;font-size:1.4rem}h3{margin-top:1.62rem;margin-bottom:1rem;font-size:1.12rem}h4,h5,h6{margin-top:1.5rem;margin-bottom:1rem;font-size:1rem}figure[data-rehype-pretty-code-figure]{margin:0;line-height:1.6rem;position:relative}figure[data-rehype-pretty-code-figure]>[data-rehype-pretty-code-title]{font-family:var(--codeFont);border:1px solid var(--lightgray);width:fit-content;color:var(--darkgray);border-radius:5px;margin-bottom:-.5rem;padding:.1rem .5rem;font-size:.9rem}figure[data-rehype-pretty-code-figure]>pre{padding:0}pre{font-family:var(--codeFont);border:1px solid var(--lightgray);border-radius:5px;padding:0 .5rem;position:relative;overflow-x:auto}pre:has(>code.mermaid){border:none}pre>code{counter-reset:line;counter-increment:line 0;background:0 0;padding:.5rem 0;font-size:.85rem;display:grid;overflow-x:auto}pre>code [data-highlighted-chars]{background-color:var(--highlight);border-radius:5px}pre>code>[data-line]{box-sizing:border-box;border-left:3px solid #0000;padding:0 .25rem}pre>code>[data-line][data-highlighted-line]{background-color:var(--highlight);border-left:3px solid var(--secondary)}pre>code>[data-line]:before{content:counter(line);counter-increment:line;text-align:right;color:#738a9499;width:1rem;margin-right:1rem;display:inline-block}pre>code[data-line-numbers-max-digits="2"]>[data-line]:before{width:2rem}pre>code[data-line-numbers-max-digits="3"]>[data-line]:before{width:3rem}code{color:var(--dark);font-size:.9em;font-family:var(--codeFont);font-variant-ligatures:none;background:var(--lightgray);border-radius:5px;padding:.1rem .2rem}tbody,li,p{line-height:1.6rem}.table-container{overflow-x:auto}.table-container>table{border-collapse:collapse;margin:1rem;padding:1.5rem}.table-container>table th,.table-container>table td{min-width:75px}.table-container>table>*{line-height:2rem}th{text-align:left;border-bottom:2px solid var(--gray);padding:.4rem .7rem}td{padding:.2rem .7rem}tr{border-bottom:1px solid var(--lightgray)}tr:last-child{border-bottom:none}img{content-visibility:auto;border-radius:5px;max-width:100%;margin:1rem 0}p>img+em{display:block;transform:translateY(-1rem)}hr{background-color:var(--lightgray);border:none;width:100%;height:1px;margin:2rem auto}audio,video{border-radius:5px;width:100%}.spacer{flex:2 auto}div:has(>.overflow){max-height:100%;overflow-y:hidden}ul.overflow,ol.overflow{content:"";clear:both;width:100%;max-height:100%;margin-bottom:0;overflow-y:auto}ul.overflow>li.overflow-end,ol.overflow>li.overflow-end{height:.5rem;margin:0}ul.overflow.gradient-active,ol.overflow.gradient-active{-webkit-mask-image:linear-gradient(#000 calc(100% - 50px),#0000 100%);mask-image:linear-gradient(#000 calc(100% - 50px),#0000 100%)}.transclude ul{padding-left:1rem}.katex-display{display:initial;overflow:auto hidden}.external-embed.youtube,iframe.pdf{aspect-ratio:16/9;border-radius:5px;width:100%;height:100%}.navigation-progress{background:var(--secondary);z-index:9999;width:0;height:3px;transition:width .2s;position:fixed;top:0;left:0}:root{--light:#f0efe9;--lightgray:#dbd8cc;--gray:#6e7460;--darkgray:#3e4438;--dark:#23281e;--secondary:#1a2421;--tertiary:#b34d00;--highlight:#4b532014;--textHighlight:#e8c54766;--titleFont:"Newsreader", system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--headerFont:"Newsreader", system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bodyFont:"Source Serif 4", system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--codeFont:"IBM Plex Mono", ui-monospace, SFMono-Regular, SF Mono, Menlo, monospace}:root[saved-theme=dark]{--light:#1a2318;--lightgray:#26311f;--gray:#8fa07c;--darkgray:#d4c9a8;--dark:#ece5d0;--secondary:#ece5d0;--tertiary:#d99b2e;--highlight:#d99b2e1f;--textHighlight:#d99b2e55}:root{--background-primary:var(--light);--background-primary-alt:var(--light);--background-secondary:var(--lightgray);--background-secondary-alt:var(--lightgray);--background-modifier-border:var(--lightgray);--background-modifier-border-hover:var(--gray);--background-modifier-border-focus:var(--secondary);--text-normal:var(--darkgray);--text-muted:var(--gray);--text-faint:var(--gray);--text-accent:var(--secondary);--text-accent-hover:var(--tertiary);--text-on-accent:var(--light);--text-on-accent-inverted:var(--dark);--text-highlight-bg:var(--textHighlight);--interactive-normal:var(--light);--interactive-hover:var(--lightgray);--interactive-accent:var(--secondary);--interactive-accent-hover:var(--tertiary);--color-base-00:var(--light);--color-base-05:var(--light);--color-base-10:var(--light);--color-base-20:var(--lightgray);--color-base-25:var(--lightgray);--color-base-30:var(--lightgray);--color-base-35:var(--lightgray);--color-base-40:var(--gray);--color-base-50:var(--gray);--color-base-60:var(--gray);--color-base-70:var(--darkgray);--color-base-100:var(--dark);--font-text:var(--bodyFont);--font-monospace:var(--codeFont);--font-interface:var(--bodyFont);--nav-item-color:var(--darkgray);--nav-item-color-hover:var(--dark);--nav-item-color-active:var(--secondary);--nav-item-background-hover:var(--lightgray);--nav-item-background-active:var(--highlight);--tag-background:var(--highlight);--tag-color:var(--secondary);--tag-background-hover:var(--lightgray);--icon-color:var(--darkgray);--icon-color-hover:var(--dark);--icon-color-active:var(--secondary);--divider-color:var(--lightgray);--link-color:var(--secondary);--link-color-hover:var(--tertiary);--accent-h:162;--accent-s:16%;--accent-l:12%}:root[saved-theme=dark]{--background-primary:var(--light);--background-primary-alt:var(--light);--background-secondary:var(--lightgray);--background-secondary-alt:var(--lightgray);--background-modifier-border:var(--lightgray);--background-modifier-border-hover:var(--gray);--background-modifier-border-focus:var(--secondary);--text-normal:var(--darkgray);--text-muted:var(--gray);--text-faint:var(--gray);--text-accent:var(--secondary);--text-accent-hover:var(--tertiary);--text-on-accent:var(--light);--text-on-accent-inverted:var(--dark);--text-highlight-bg:var(--textHighlight);--interactive-normal:var(--light);--interactive-hover:var(--lightgray);--interactive-accent:var(--secondary);--interactive-accent-hover:var(--tertiary);--color-base-00:var(--light);--color-base-05:var(--light);--color-base-10:var(--light);--color-base-20:var(--lightgray);--color-base-25:var(--lightgray);--color-base-30:var(--lightgray);--color-base-35:var(--lightgray);--color-base-40:var(--gray);--color-base-50:var(--gray);--color-base-60:var(--gray);--color-base-70:var(--darkgray);--color-base-100:var(--dark);--font-text:var(--bodyFont);--font-monospace:var(--codeFont);--font-interface:var(--bodyFont);--nav-item-color:var(--darkgray);--nav-item-color-hover:var(--dark);--nav-item-color-active:var(--secondary);--nav-item-background-hover:var(--lightgray);--nav-item-background-active:var(--highlight);--tag-background:var(--highlight);--tag-color:var(--secondary);--tag-background-hover:var(--lightgray);--icon-color:var(--darkgray);--icon-color-hover:var(--dark);--icon-color-active:var(--secondary);--divider-color:var(--lightgray);--link-color:var(--secondary);--link-color-hover:var(--tertiary);--accent-h:45;--accent-s:42%;--accent-l:87%}}code[data-theme*=\ ]{color:var(--shiki-light);background-color:var(--shiki-light-bg)}code[data-theme*=\ ] span{color:var(--shiki-light)}[saved-theme=dark] code[data-theme*=\ ]{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}[saved-theme=dark] code[data-theme*=\ ] span{color:var(--shiki-dark)}.callout{--callout-accent:var(--tertiary);--callout-bg:color-mix(in srgb, var(--light) 55%, transparent);--callout-title-bg:color-mix(in srgb, var(--secondary) 4%, transparent);--callout-title-rule:color-mix(in srgb, var(--secondary) 10%, transparent);--callout-label-color:var(--secondary);--callout-icon-fold:url("data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"%3E%3Cpolyline points=\"6 9 12 15 18 9\"%3E%3C/polyline%3E%3C/svg%3E");border:none;border-left:2px solid var(--callout-accent);background-color:var(--callout-bg);box-sizing:border-box;border-radius:0;margin:1.75rem 0;padding:0;overflow-y:hidden}.callout>.callout-content{padding:.85rem 1.1rem .95rem;transition:grid-template-rows .1s cubic-bezier(.02,.01,.47,1);display:grid;overflow:hidden}.callout>.callout-content>:first-child{margin-top:0}.callout>.callout-content p{font-family:var(--bodyFont);color:var(--dark);margin:0 0 .55rem;font-size:.95rem;font-style:normal;font-weight:300;line-height:1.75}.callout>.callout-content p:last-child{margin-bottom:0}.callout>.callout-content code{font-family:var(--codeFont);background-color:color-mix(in srgb, var(--secondary) 8%, transparent);border-radius:0;padding:.1em .35em;font-size:.85em}.callout.is-collapsed>.callout-title>.fold-callout-icon{transform:rotate(-90deg)}.callout.is-collapsed .callout-content>*{height:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;transition:height .1s cubic-bezier(.02,.01,.47,1),margin .1s cubic-bezier(.02,.01,.47,1),padding .1s cubic-bezier(.02,.01,.47,1);overflow-y:clip}.callout.is-collapsed .callout-content>:first-child{margin-top:-1rem}.callout-title{background-color:var(--callout-title-bg);border-bottom:1px solid var(--callout-title-rule);color:var(--callout-label-color);align-items:center;gap:.5rem;padding:.5rem 1.1rem .45rem;display:flex}.callout-title .callout-icon{display:none}.callout-title .fold-callout-icon{--callout-icon:var(--callout-icon-fold);--icon-size:12px;width:var(--icon-size);height:var(--icon-size);flex:0 0 var(--icon-size);background-size:var(--icon-size) var(--icon-size);background-color:var(--gray);-webkit-mask-image:var(--callout-icon);mask-image:var(--callout-icon);-webkit-mask-size:var(--icon-size) var(--icon-size);mask-size:var(--icon-size) var(--icon-size);opacity:.45;cursor:pointer;margin-left:auto;transition:transform .15s;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.callout-title:before{content:"◇";font-family:var(--codeFont);color:var(--callout-accent);opacity:.9;flex-shrink:0;font-size:.62rem;font-weight:700;line-height:1}.callout-title>.callout-title-inner{font-family:var(--codeFont);letter-spacing:.2em;text-transform:uppercase;color:var(--callout-label-color);opacity:.8;font-size:.6rem;font-weight:700}.callout-title>.callout-title-inner>p{font-family:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--callout-label-color);margin:0;font-style:normal}.callout[data-callout],.callout[data-callout=note]{--callout-accent:color-mix(in srgb, var(--secondary) 55%, transparent)}.callout[data-callout] .callout-title:before,.callout[data-callout=note] .callout-title:before{content:"◇"}.callout[data-callout=abstract],.callout[data-callout=summary],.callout[data-callout=tldr]{--callout-accent:color-mix(in srgb, var(--secondary) 45%, transparent)}.callout[data-callout=abstract] .callout-title:before,.callout[data-callout=summary] .callout-title:before,.callout[data-callout=tldr] .callout-title:before{content:"≡"}.callout[data-callout=info]{--callout-accent:color-mix(in srgb, var(--secondary) 65%, transparent);--callout-label-color:color-mix(in srgb, var(--secondary) 70%, transparent)}.callout[data-callout=info] .callout-title:before{content:"◈"}.callout[data-callout=todo]{--callout-accent:var(--tertiary)}.callout[data-callout=todo] .callout-title:before{content:"○"}.callout[data-callout=tip],.callout[data-callout=hint],.callout[data-callout=important]{--callout-accent:var(--tertiary);--callout-label-color:var(--tertiary)}.callout[data-callout=tip] .callout-title:before,.callout[data-callout=hint] .callout-title:before,.callout[data-callout=important] .callout-title:before{content:"→"}.callout[data-callout=success],.callout[data-callout=check],.callout[data-callout=done]{--callout-accent:color-mix(in srgb, var(--dark) 70%, transparent);--callout-label-color:color-mix(in srgb, var(--dark) 70%, transparent)}.callout[data-callout=success] .callout-title:before,.callout[data-callout=check] .callout-title:before,.callout[data-callout=done] .callout-title:before{content:"✓"}.callout[data-callout=question],.callout[data-callout=help],.callout[data-callout=faq]{--callout-accent:color-mix(in srgb, var(--secondary) 50%, transparent)}.callout[data-callout=question] .callout-title:before,.callout[data-callout=help] .callout-title:before,.callout[data-callout=faq] .callout-title:before{content:"?"}.callout[data-callout=warning],.callout[data-callout=attention],.callout[data-callout=caution]{--callout-accent:var(--tertiary);--callout-bg:color-mix(in srgb, var(--tertiary) 4%, transparent);--callout-title-bg:color-mix(in srgb, var(--tertiary) 6%, transparent);--callout-title-rule:color-mix(in srgb, var(--tertiary) 14%, transparent);--callout-label-color:var(--tertiary)}.callout[data-callout=warning] .callout-title:before,.callout[data-callout=attention] .callout-title:before,.callout[data-callout=caution] .callout-title:before{content:"△"}.callout[data-callout=failure],.callout[data-callout=missing],.callout[data-callout=fail]{--callout-accent:color-mix(in srgb, var(--tertiary) 85%, #600 15%);--callout-bg:color-mix(in srgb, var(--tertiary) 4%, transparent);--callout-title-bg:color-mix(in srgb, var(--tertiary) 6%, transparent);--callout-title-rule:color-mix(in srgb, var(--tertiary) 14%, transparent);--callout-label-color:color-mix(in srgb, var(--tertiary) 85%, #600 15%)}.callout[data-callout=failure] .callout-title:before,.callout[data-callout=missing] .callout-title:before,.callout[data-callout=fail] .callout-title:before{content:"✕"}.callout[data-callout=danger],.callout[data-callout=error]{--callout-accent:color-mix(in srgb, var(--tertiary) 90%, #600 10%);--callout-bg:color-mix(in srgb, var(--tertiary) 5%, transparent);--callout-title-bg:color-mix(in srgb, var(--tertiary) 8%, transparent);--callout-title-rule:color-mix(in srgb, var(--tertiary) 18%, transparent);--callout-label-color:color-mix(in srgb, var(--tertiary) 90%, #600 10%)}.callout[data-callout=danger] .callout-title:before,.callout[data-callout=error] .callout-title:before{content:"✕"}.callout[data-callout=bug]{--callout-accent:color-mix(in srgb, var(--tertiary) 90%, #600 10%);--callout-bg:color-mix(in srgb, var(--tertiary) 5%, transparent);--callout-title-bg:color-mix(in srgb, var(--tertiary) 8%, transparent);--callout-title-rule:color-mix(in srgb, var(--tertiary) 18%, transparent);--callout-label-color:color-mix(in srgb, var(--tertiary) 90%, #600 10%)}.callout[data-callout=bug] .callout-title:before{content:"⊘"}.callout[data-callout=example]{--callout-accent:color-mix(in srgb, var(--secondary) 45%, transparent)}.callout[data-callout=example] .callout-title:before{content:"≡"}.callout[data-callout=disclosure]{--callout-bg:transparent;border-left:none;border-top:1px solid color-mix(in srgb, var(--gray) 28%, transparent);margin:2.5rem 0 1.75rem}.callout[data-callout=disclosure]>.callout-title{background-color:#0000;border-bottom:none;gap:0;padding:.7rem 0 0}.callout[data-callout=disclosure]>.callout-title:before{content:none}.callout[data-callout=disclosure]>.callout-title>.callout-title-inner{font-family:var(--headerFont);letter-spacing:.1em;color:var(--gray);opacity:1;font-size:.85rem;font-weight:600}.callout[data-callout=disclosure]>.callout-title>.callout-title-inner>p{letter-spacing:.1em;font-family:var(--headerFont)!important;color:var(--gray)!important;font-size:.85rem!important;font-weight:600!important;line-height:1.4!important}.callout[data-callout=disclosure]>.callout-title .fold-callout-icon{margin-left:auto}.callout[data-callout=disclosure]>.callout-content{padding:.35rem 0 0}.callout[data-callout=quote],.callout[data-callout=cite]{--callout-accent:color-mix(in srgb, var(--gray) 50%, transparent);--callout-bg:transparent}.callout[data-callout=quote] .callout-title,.callout[data-callout=cite] .callout-title{display:none}.callout[data-callout=quote]>.callout-content p,.callout[data-callout=cite]>.callout-content p{color:color-mix(in srgb, var(--dark) 75%, transparent);font-style:italic}html[saved-theme=dark] .callout[data-callout=warning],html[saved-theme=dark] .callout[data-callout=attention],html[saved-theme=dark] .callout[data-callout=caution],html[saved-theme=dark] .callout[data-callout=failure],html[saved-theme=dark] .callout[data-callout=missing],html[saved-theme=dark] .callout[data-callout=fail],html[saved-theme=dark] .callout[data-callout=danger],html[saved-theme=dark] .callout[data-callout=error],html[saved-theme=dark] .callout[data-callout=bug]{--callout-bg:color-mix(in srgb, var(--tertiary) 7%, transparent);--callout-title-bg:color-mix(in srgb, var(--tertiary) 10%, transparent)}.callout-content .callout{background-color:#0000;border-left-width:1px;margin:.75rem 0}html{scroll-behavior:smooth;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;width:100vw;overflow-x:hidden}@media (max-width:800px){html{scroll-padding-top:4rem}}body{box-sizing:border-box;background-color:var(--light);font-family:var(--bodyFont);color:var(--darkgray);margin:0}.text-highlight{background-color:var(--textHighlight);border-radius:5px;padding:0 .1rem}::selection{background:color-mix(in srgb, var(--tertiary) 60%, #fff0);color:var(--darkgray)}p,ul,text,a,tr,td,li,ol,ul,.katex,.math,.typst-doc,g[class~=typst-text]{color:var(--darkgray);fill:var(--darkgray);overflow-wrap:break-word;text-wrap:pretty}path[class~=typst-shape]{stroke:var(--darkgray)}.math.math-display{text-align:center}article>mjx-container.MathJax,article blockquote>div>mjx-container.MathJax{display:flex}article>mjx-container.MathJax>svg,article blockquote>div>mjx-container.MathJax>svg{margin-left:auto;margin-right:auto}article blockquote>div>mjx-container.MathJax>svg{margin-top:1rem;margin-bottom:1rem}strong{font-weight:600}a{color:var(--secondary);font-weight:600;text-decoration:none;transition:color .2s}a:hover{color:var(--tertiary)}a.internal{background-color:var(--highlight);border-radius:5px;padding:0 .1rem;line-height:1.4rem;text-decoration:none}a.internal.broken{color:var(--secondary);opacity:.5;transition:opacity .2s}a.internal.broken:hover{opacity:.8}a.internal:has(>img){background-color:#0000;border-radius:0;padding:0}a.internal.tag-link:before{content:"#"}a.external .external-icon{height:1ex;margin:0 .15em}a.external .external-icon>path{fill:var(--dark)}.flex-component{display:flex}.desktop-only{display:contents}.desktop-only.flex-component{display:flex}@media (max-width:800px){.desktop-only.flex-component,.desktop-only{display:none}}.mobile-only,.mobile-only.flex-component{display:none}@media (max-width:800px){.mobile-only.flex-component{display:flex}.mobile-only{display:contents}}.page{max-width:1500px;margin:0 auto}.page article>h1{font-size:2rem}.page article li:has(>input[type=checkbox]){padding-left:0;list-style-type:none}.page article li:has(>input[type=checkbox]:checked){text-decoration:line-through;-webkit-text-decoration-color:var(--gray);text-decoration-color:var(--gray);color:var(--gray)}.page article li>*{margin-top:0;margin-bottom:0}.page article p>strong{color:var(--dark)}.page>#quartz-body{grid-template:"grid-sidebar-left grid-header grid-sidebar-right""grid-sidebar-left grid-center grid-sidebar-right""grid-sidebar-left grid-footer grid-sidebar-right"/320px auto 320px;gap:5px;display:grid}@media (min-width:800px) and (max-width:1200px){.page>#quartz-body{grid-template:"grid-sidebar-left grid-header""grid-sidebar-left grid-center""grid-sidebar-left grid-sidebar-right""grid-sidebar-left grid-footer"/320px auto;gap:5px}}@media (max-width:800px){.page>#quartz-body{grid-template:"grid-sidebar-left""grid-header""grid-center""grid-sidebar-right""grid-footer"/auto;gap:5px}}@media not (min-width:1200px){.page>#quartz-body{padding:0 1rem}}@media (max-width:800px){.page>#quartz-body{margin:0 auto}}.page>#quartz-body .sidebar{box-sizing:border-box;gap:1.2rem;height:100vh;padding:6rem 2rem 2rem;display:flex;position:sticky;top:0}.page>#quartz-body .sidebar.left{z-index:1;flex-direction:column;grid-area:grid-sidebar-left}@media (max-width:800px){.page>#quartz-body .sidebar.left{position:initial;height:unset;flex-direction:row;align-items:center;gap:0;padding:2rem 0 0;display:flex}}.page>#quartz-body .sidebar.right{flex-direction:column;grid-area:grid-sidebar-right;margin-right:0}@media (max-width:800px){.page>#quartz-body .sidebar.right{margin-left:inherit;margin-right:inherit}}@media not (min-width:1200px){.page>#quartz-body .sidebar.right{position:initial;height:unset;flex-direction:row;width:100%;padding:0}.page>#quartz-body .sidebar.right>*{flex:1;max-height:24rem}.page>#quartz-body .sidebar.right>.toc{display:none}}.page>#quartz-body .page-header,.page>#quartz-body .page-footer{margin-top:1rem}.page>#quartz-body .page-header{grid-area:grid-header;margin:6rem 0 0}@media (max-width:800px){.page>#quartz-body .page-header{margin-top:0;padding:0}}.page>#quartz-body .center>article{grid-area:grid-center}.page>#quartz-body footer{grid-area:grid-footer}.page>#quartz-body .center,.page>#quartz-body footer{min-width:100%;max-width:100%;margin-left:auto;margin-right:auto}@media (min-width:800px) and (max-width:1200px){.page>#quartz-body .center,.page>#quartz-body footer{margin-right:0}}@media (max-width:800px){.page>#quartz-body .center,.page>#quartz-body footer{margin-left:0;margin-right:0}}.page>#quartz-body footer{margin-left:0}.page[data-frame=full-width]>#quartz-body{grid-template:"grid-header""grid-center""grid-footer"/auto}@media (min-width:800px) and (max-width:1200px){.page[data-frame=full-width]>#quartz-body{grid-template-columns:auto}}.page[data-frame=full-width]>#quartz-body .center.full-width{min-width:100%;max-width:100%}.page[data-frame=minimal]>#quartz-body{grid-template:"grid-center""grid-footer"/auto}@media (min-width:800px) and (max-width:1200px){.page[data-frame=minimal]>#quartz-body{grid-template-columns:auto}}.page[data-frame=minimal]>#quartz-body .center.minimal{min-width:100%;max-width:100%;margin:0}.footnotes{border-top:1px solid var(--lightgray);margin-top:2rem}input[type=checkbox]{color:var(--secondary);border:1px solid var(--lightgray);background-color:var(--light);appearance:none;border-radius:3px;width:16px;height:16px;margin-inline:-1.4rem .2rem;position:relative;transform:translateY(2px)}input[type=checkbox]:checked{border-color:var(--secondary);background-color:var(--secondary)}input[type=checkbox]:checked:after{content:"";border:solid var(--light);border-width:0 2px 2px 0;width:4px;height:8px;display:block;position:absolute;top:1px;left:4px;transform:rotate(45deg)}blockquote{border-left:3px solid var(--secondary);margin:1rem 0;padding-left:1rem;transition:border-color .2s}h1,h2,h3,h4,h5,h6,thead{font-family:var(--headerFont);color:var(--dark);font-weight:revert;margin-bottom:0}article>h1>a[role=anchor],article>h2>a[role=anchor],article>h3>a[role=anchor],article>h4>a[role=anchor],article>h5>a[role=anchor],article>h6>a[role=anchor],article>thead>a[role=anchor]{color:var(--dark);background-color:#0000}h1[id]>a[href^=\#],h2[id]>a[href^=\#],h3[id]>a[href^=\#],h4[id]>a[href^=\#],h5[id]>a[href^=\#],h6[id]>a[href^=\#]{opacity:0;font-family:var(--codeFont);-webkit-user-select:none;user-select:none;margin:0 .5rem;transition:opacity .2s;transform:translateY(-.1rem)}h1[id]:hover>a,h2[id]:hover>a,h3[id]:hover>a,h4[id]:hover>a,h5[id]:hover>a,h6[id]:hover>a{opacity:1}h1:not([id])>a[role=anchor],h2:not([id])>a[role=anchor],h3:not([id])>a[role=anchor],h4:not([id])>a[role=anchor],h5:not([id])>a[role=anchor],h6:not([id])>a[role=anchor]{display:none}h1{margin-top:2.25rem;margin-bottom:1rem;font-size:1.75rem}h2{margin-top:1.9rem;margin-bottom:1rem;font-size:1.4rem}h3{margin-top:1.62rem;margin-bottom:1rem;font-size:1.12rem}h4,h5,h6{margin-top:1.5rem;margin-bottom:1rem;font-size:1rem}figure[data-rehype-pretty-code-figure]{margin:0;line-height:1.6rem;position:relative}figure[data-rehype-pretty-code-figure]>[data-rehype-pretty-code-title]{font-family:var(--codeFont);border:1px solid var(--lightgray);width:fit-content;color:var(--darkgray);border-radius:5px;margin-bottom:-.5rem;padding:.1rem .5rem;font-size:.9rem}figure[data-rehype-pretty-code-figure]>pre{padding:0}pre{font-family:var(--codeFont);border:1px solid var(--lightgray);border-radius:5px;padding:0 .5rem;position:relative;overflow-x:auto}pre:has(>code.mermaid){border:none}pre>code{counter-reset:line;counter-increment:line 0;background:0 0;padding:.5rem 0;font-size:.85rem;display:grid;overflow-x:auto}pre>code [data-highlighted-chars]{background-color:var(--highlight);border-radius:5px}pre>code>[data-line]{box-sizing:border-box;border-left:3px solid #0000;padding:0 .25rem}pre>code>[data-line][data-highlighted-line]{background-color:var(--highlight);border-left:3px solid var(--secondary)}pre>code>[data-line]:before{content:counter(line);counter-increment:line;text-align:right;color:#738a9499;width:1rem;margin-right:1rem;display:inline-block}pre>code[data-line-numbers-max-digits="2"]>[data-line]:before{width:2rem}pre>code[data-line-numbers-max-digits="3"]>[data-line]:before{width:3rem}code{color:var(--dark);font-size:.9em;font-family:var(--codeFont);font-variant-ligatures:none;background:var(--lightgray);border-radius:5px;padding:.1rem .2rem}tbody,li,p{line-height:1.6rem}.table-container{overflow-x:auto}.table-container>table{border-collapse:collapse;margin:1rem;padding:1.5rem}.table-container>table th,.table-container>table td{min-width:75px}.table-container>table>*{line-height:2rem}th{text-align:left;border-bottom:2px solid var(--gray);padding:.4rem .7rem}td{padding:.2rem .7rem}tr{border-bottom:1px solid var(--lightgray)}tr:last-child{border-bottom:none}img{content-visibility:auto;border-radius:5px;max-width:100%;margin:1rem 0}p>img+em{display:block;transform:translateY(-1rem)}hr{background-color:var(--lightgray);border:none;width:100%;height:1px;margin:2rem auto}audio,video{border-radius:5px;width:100%}.spacer{flex:2 auto}div:has(>.overflow){max-height:100%;overflow-y:hidden}ul.overflow,ol.overflow{content:"";clear:both;width:100%;max-height:100%;margin-bottom:0;overflow-y:auto}ul.overflow>li.overflow-end,ol.overflow>li.overflow-end{height:.5rem;margin:0}ul.overflow.gradient-active,ol.overflow.gradient-active{-webkit-mask-image:linear-gradient(#000 calc(100% - 50px),#0000 100%);mask-image:linear-gradient(#000 calc(100% - 50px),#0000 100%)}.transclude ul{padding-left:1rem}.katex-display{display:initial;overflow:auto hidden}.external-embed.youtube,iframe.pdf{aspect-ratio:16/9;border-radius:5px;width:100%;height:100%}.navigation-progress{background:var(--secondary);z-index:9999;width:0;height:3px;transition:width .2s;position:fixed;top:0;left:0}html[saved-theme=dark] body:before{display:none}.center{box-sizing:border-box}.sidebar{scrollbar-width:none;max-height:100vh;overflow-y:auto!important}.sidebar::-webkit-scrollbar{display:none}a:focus-visible,button:focus-visible{outline:2px solid var(--tertiary);outline-offset:2px;border-radius:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}article p,article li{color:var(--dark)!important;font-size:1.0625rem!important;font-weight:400!important;line-height:1.75!important}.center :is(article,article>.markdown-preview-view)>p:first-of-type:first-letter{font-family:var(--headerFont);float:left;color:var(--tertiary);margin:.2em .12em -.15em 0;font-size:3.8rem;font-weight:500;line-height:.8}h6{font-family:var(--headerFont);color:var(--secondary);margin-top:1.75rem;margin-bottom:.4rem;font-size:1rem;font-weight:600;line-height:1.3}h1.article-title{letter-spacing:-.02em!important;color:var(--secondary)!important;margin-top:0!important;margin-bottom:.5rem!important;font-size:2.5rem!important;font-style:normal!important;font-weight:600!important;line-height:1.12!important}p.content-meta{font-family:var(--codeFont)!important;text-transform:uppercase!important;letter-spacing:.08em!important;color:var(--gray)!important;border-bottom:1px solid color-mix(in srgb, var(--gray) 30%, transparent)!important;flex-wrap:wrap!important;align-items:center!important;gap:1.25rem!important;margin-top:.25rem!important;margin-bottom:.75rem!important;padding-bottom:.6rem!important;font-size:.75rem!important;display:flex!important}p.content-meta time,p.content-meta span{color:var(--gray)!important}p.content-meta>:after{content:""!important;margin:0!important}.center .tags{flex-wrap:wrap!important;gap:.5rem!important;margin-top:0!important;margin-bottom:1.5rem!important;padding:0!important;list-style:none!important;display:flex!important}.center .tags li{margin:0!important;padding:0!important}.center .tags a.internal.tag-link{font-family:var(--codeFont)!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:var(--darkgray)!important;background-color:color-mix(in srgb, var(--lightgray) 55%, transparent)!important;border:1px solid color-mix(in srgb, var(--gray) 40%, transparent)!important;border-radius:999px!important;padding:.25rem .75rem!important;font-size:.72rem!important;font-weight:400!important;line-height:normal!important;transition:border-color .2s,color .2s!important;display:inline-block!important}.center .tags a.internal.tag-link:before{content:""!important}.center .tags a.internal.tag-link:hover{border-color:var(--tertiary)!important;color:var(--tertiary)!important}.breadcrumb-container{margin-top:0!important;margin-bottom:1.5rem!important}.breadcrumb-element,.breadcrumb-element p,.breadcrumb-element a{font-family:var(--codeFont)!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:var(--gray)!important;font-size:.72rem!important;font-weight:400!important}.breadcrumb-element a:hover{color:var(--tertiary)!important}.page article h2{letter-spacing:-.01em;border-bottom:none;border-left:none;margin-top:3rem;margin-bottom:.85rem;padding-left:0;font-size:1.6rem;font-style:normal;font-weight:600;line-height:1.25}.page article h3{margin-top:2.25rem;margin-bottom:.6rem;font-size:1.25rem;font-style:normal;font-weight:600;line-height:1.35}.page article h4{color:var(--darkgray);text-transform:none;letter-spacing:0;margin-top:1.75rem;margin-bottom:.4rem;font-size:1.05rem;font-weight:700}.page article h5{font-family:var(--codeFont);text-transform:uppercase;letter-spacing:.1em;color:var(--gray);border-top:1px solid color-mix(in srgb, var(--gray) 30%, transparent);margin-top:2rem;margin-bottom:.5rem;padding-top:.75rem;font-size:.78rem;font-weight:500}.sidebar.left .recent-notes>h3,.sidebar.right .graph>h3,.sidebar.right .backlinks>h3,.sidebar.right button.toc-header>h3{font-family:var(--codeFont)!important;letter-spacing:.1em!important;text-transform:uppercase!important;color:var(--gray)!important;margin:0!important;font-size:.72rem!important;font-weight:500!important}.sidebar.left .page-title{margin-top:0!important;margin-bottom:0!important}.sidebar.right button.toc-header{border-bottom:1px solid color-mix(in srgb, var(--gray) 25%, transparent)!important;width:100%!important;margin-bottom:.25rem!important;padding-bottom:.4rem!important}.sidebar.right ul.toc-content{border-left:none!important;margin:.5rem 0!important;padding-left:0!important;list-style:none!important}.sidebar.right ul.toc-content>li{border-left:2px solid color-mix(in srgb, var(--gray) 25%, transparent)!important;margin:0!important;padding:0!important;list-style:none!important}.sidebar.right ul.toc-content>li>a{font-family:var(--bodyFont)!important;color:var(--darkgray)!important;opacity:.75!important;background:0 0!important;padding:.25rem 0 .25rem 1rem!important;font-size:.85rem!important;font-style:normal!important;font-weight:400!important;line-height:1.45!important;text-decoration:none!important;transition:opacity .2s,color .2s!important;display:block!important}.sidebar.right ul.toc-content>li>a:hover{opacity:1!important;color:var(--tertiary)!important}.sidebar.right ul.toc-content>li:has(>a.in-view){border-left:2px solid var(--tertiary)!important}.sidebar.right ul.toc-content>li>a.in-view{color:var(--dark)!important;opacity:1!important;font-style:normal!important;font-weight:600!important}.sidebar.right ul.toc-content>li.depth-1>a,.sidebar.right ul.toc-content>li.depth-2>a{padding-left:1.75rem!important;font-size:.8rem!important}.sidebar.right .backlinks ul.overflow{margin:.25rem 0 0!important;padding:0!important}.sidebar.right .backlinks ul.overflow>li{border-bottom:1px solid color-mix(in srgb, var(--gray) 20%, transparent)!important;padding:.6rem 0!important;list-style:none!important}.sidebar.right .backlinks ul.overflow>li:last-of-type{border-bottom:none!important}.sidebar.right .backlinks ul.overflow>li>a{font-family:var(--bodyFont)!important;color:var(--dark)!important;background:0 0!important;padding:0!important;font-size:.88rem!important;font-weight:400!important;line-height:1.4!important;text-decoration:none!important;display:block!important}.sidebar.right .backlinks ul.overflow>li>a:hover{color:var(--tertiary)!important}.recent-notes>h3{border-bottom:1px solid color-mix(in srgb, var(--gray) 25%, transparent)!important;width:100%!important;margin-bottom:.25rem!important;padding-bottom:.4rem!important}.recent-notes>ul.recent-ul{flex-direction:column;gap:.25rem;display:flex;margin-top:.5rem!important;padding-left:0!important;list-style:none!important}.recent-notes>ul.recent-ul>li.recent-li{background-color:#0000;border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;transition:background-color .2s,border-color .2s,box-shadow .2s;display:flex;position:relative;margin:0!important;padding:.75rem .75rem .75rem 3.5rem!important}.recent-notes>ul.recent-ul>li.recent-li:hover{background-color:var(--light);border-color:color-mix(in srgb, var(--gray) 35%, transparent);box-shadow:0 2px 8px #0000000d}.recent-notes>ul.recent-ul>li.recent-li:hover .section>.desc>h3>a{color:var(--tertiary)!important}.recent-notes>ul.recent-ul>li.recent-li:before{content:"";background-color:var(--secondary);z-index:1;width:21.4px;height:18.9px;transition:background-color .2s;display:block;position:absolute;top:30.5px;left:14.9px;-webkit-mask-image:url(/static/CustomIcons/inkwell.svg);mask-image:url(/static/CustomIcons/inkwell.svg);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.recent-notes>ul.recent-ul>li.recent-li:after{content:"";background-color:var(--secondary);transform-origin:50%;z-index:2;pointer-events:none;width:19.1px;height:18.8px;transition:transform .3s cubic-bezier(.175,.885,.32,1.275),background-color .2s;display:block;position:absolute;top:19.4px;left:21px;-webkit-mask-image:url(/static/CustomIcons/feather.svg);mask-image:url(/static/CustomIcons/feather.svg);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.recent-notes>ul.recent-ul>li.recent-li:hover:after{transform:translateY(-6px)}.recent-notes>ul.recent-ul>li.recent-li:hover:before,.recent-notes>ul.recent-ul>li.recent-li:hover:after{background-color:var(--tertiary)}.recent-notes .section>.desc>h3{margin:0!important;font-size:.95rem!important;font-weight:500!important}.recent-notes .section>.desc>h3>a.internal{font-family:var(--headerFont)!important;color:var(--dark)!important;background-color:#0000!important;border-radius:0!important;padding:0!important;font-size:1rem!important;font-weight:500!important;line-height:1.3!important}.recent-notes .section>.desc>h3>a.internal:hover{color:var(--tertiary)!important}.recent-notes .section>.meta,.recent-notes .section>.meta time{font-family:var(--codeFont)!important;letter-spacing:.05em!important;text-transform:uppercase!important;color:var(--gray)!important;margin:0!important;font-size:.7rem!important}.recent-notes>p>a{font-family:var(--codeFont)!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:var(--tertiary)!important;font-size:.72rem!important;font-weight:400!important}.recent-notes>p>a:hover{text-decoration:underline!important}.center article img,.library-grid img{box-sizing:border-box;max-width:100%;height:auto;margin:2rem auto;display:block;border:1px solid color-mix(in srgb, var(--gray) 30%, transparent)!important;background-color:var(--light)!important;border-radius:8px!important;padding:0!important;transition:box-shadow .25s!important;box-shadow:0 2px 6px #0000000f,0 8px 24px #0000000f!important}.center article img:hover,.library-grid img:hover{box-shadow:0 4px 10px #00000014,0 12px 32px #00000014!important}img[alt$=left],img[alt$=right]{width:280px;border:1px solid color-mix(in srgb, var(--gray) 30%, transparent)!important;background-color:var(--light)!important;border-radius:8px!important;padding:0!important;box-shadow:0 2px 6px #0000000f,0 8px 24px #0000000f!important}img[alt$=right]{float:right;clear:right;margin-bottom:1rem;margin-left:1.75rem}img[alt$=left]{float:left;clear:left;margin-bottom:1rem;margin-right:1.75rem}blockquote:not(.callout){border-radius:0 6px 6px 0;background-color:color-mix(in srgb, var(--secondary) 4%, transparent)!important;border-left:3px solid var(--tertiary)!important;margin:2rem 0!important;padding:1rem 1.25rem!important;font-style:normal!important}blockquote:not(.callout):before{content:none!important}blockquote:not(.callout) p{font-family:var(--bodyFont)!important;color:var(--dark)!important;margin:0!important;font-size:1.02rem!important;font-style:normal!important;line-height:1.7!important}blockquote:not(.callout) p+p{margin-top:.75rem!important}.start-grid ul{grid-template-columns:repeat(2,1fr);gap:.85rem;margin:0 0 4rem;padding:0;list-style:none;display:grid}@media (max-width:600px){.start-grid ul{grid-template-columns:1fr}}.start-grid li{background-color:var(--light);border:1px solid var(--lightgray);cursor:pointer;border-radius:10px;align-items:flex-start;gap:.9rem;margin:0;padding:1rem 1.1rem;transition:box-shadow .2s,border-color .2s;display:flex;position:relative;box-shadow:0 1px 3px #0000000d}.start-grid li:hover{border-color:color-mix(in srgb, var(--tertiary) 55%, transparent);box-shadow:0 4px 14px #00000014}.start-grid li:before{content:"";transform-origin:50%;background-position:50%;background-repeat:no-repeat;background-size:contain;flex-shrink:0;width:30px;height:30px;margin-top:3px;transition:transform .4s cubic-bezier(.175,.885,.32,1.275);display:block}.start-grid li:hover:before{transform:rotate(-22deg)scale(1.12)}.start-grid li:first-child:before,.start-grid li:nth-child(2):before,.start-grid li:nth-child(3):before,.start-grid li:nth-child(4):before{background-image:none;background-color:var(--secondary);transition:transform .4s cubic-bezier(.175,.885,.32,1.275),background-color .2s;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.start-grid li:first-child:hover:before,.start-grid li:nth-child(2):hover:before,.start-grid li:nth-child(3):hover:before,.start-grid li:nth-child(4):hover:before{background-color:var(--tertiary)}.start-grid li:nth-child(2):hover:before,.start-grid li:nth-child(3):hover:before,.start-grid li:nth-child(4):hover:before{transform:scale(1.12)}.start-grid li:first-child:before{-webkit-mask-image:url(/static/CustomIcons/teapot.svg);mask-image:url(/static/CustomIcons/teapot.svg)}.start-grid li:nth-child(2):before{-webkit-mask-image:url(/static/CustomIcons/watch.svg);mask-image:url(/static/CustomIcons/watch.svg)}.start-grid li:nth-child(3):before{-webkit-mask-image:url(/static/CustomIcons/book.svg);mask-image:url(/static/CustomIcons/book.svg)}.start-grid li:nth-child(4):before{-webkit-mask-image:url(/static/CustomIcons/globe.svg);mask-image:url(/static/CustomIcons/globe.svg)}.start-grid a{border:none;flex-direction:column;width:100%;text-decoration:none;display:flex;background:0 0!important;padding:0!important}.start-grid a:after{content:"";position:absolute;inset:0}.start-grid a strong{color:var(--dark);font-family:var(--headerFont);margin-bottom:.25rem;font-size:1rem;font-weight:600;line-height:1.3;transition:color .2s}.start-grid a .desc{color:var(--darkgray);font-family:var(--bodyFont);font-size:.85rem;font-weight:400;line-height:1.45}.start-grid li:hover a strong{color:var(--tertiary)}.start-grid li:nth-child(5):before{background-image:url(/static/CustomIcons/TickerTape_Light.webp)!important}.start-grid li:nth-child(5):hover:before{transform:scale(1.12)!important}html[saved-theme=dark] .start-grid li:nth-child(5):before{background-image:url(/static/CustomIcons/TickerTape_Dark.webp)!important}body[data-slug=index] article h6{font-family:var(--headerFont)!important;color:var(--secondary)!important;letter-spacing:-.02em!important;opacity:1!important;margin-top:0!important;margin-bottom:1.25rem!important;font-size:3.25rem!important;font-style:italic!important;font-weight:500!important;line-height:1.05!important}body[data-slug=index] :is(article,article>.markdown-preview-view)>h2:first-of-type{border-left:3px solid var(--tertiary)!important;font-family:var(--headerFont)!important;color:var(--dark)!important;margin-top:0!important;margin-bottom:1.5rem!important;padding-left:1.25rem!important;font-size:1.35rem!important;font-style:normal!important;font-weight:400!important;line-height:1.45!important}body[data-slug=index] :is(article,article>.markdown-preview-view)>h3:first-of-type{font-family:var(--headerFont)!important;color:var(--tertiary)!important;margin-top:0!important;margin-bottom:1.75rem!important;font-size:1.15rem!important;font-style:italic!important;font-weight:400!important;line-height:1.5!important}body[data-slug=index] :is(article,article>.markdown-preview-view)>p{font-family:var(--bodyFont)!important;color:var(--dark)!important;font-size:1.0625rem!important;font-style:normal!important;line-height:1.75!important}body[data-slug=index] :is(article,article>.markdown-preview-view)>h2:not(:first-of-type){margin-top:3rem!important}body[data-slug=library] .center .breadcrumb-container,body[data-slug=library] .center .article-title,body[data-slug=library] .center .content-meta,body[data-slug=library] .center article{max-width:100%}body[data-slug=library] .center article ul{grid-template-columns:repeat(3,1fr);gap:1.5rem;padding:0;list-style:none;display:grid}@media (max-width:800px){body[data-slug=library] .center article ul{grid-template-columns:repeat(2,1fr)}}@media (max-width:500px){body[data-slug=library] .center article ul{grid-template-columns:1fr}}.library-grid>ul{grid-template-columns:repeat(3,1fr);gap:1.75rem;margin:0;padding:0;list-style:none;display:grid}@media (max-width:800px){.library-grid>ul{grid-template-columns:repeat(2,1fr)}}@media (max-width:500px){.library-grid>ul{grid-template-columns:1fr}}.library-grid li{text-align:center;border:1px solid var(--lightgray);background-color:var(--light);border-radius:10px;flex-direction:column;align-items:center;padding:1.1rem .9rem 1rem;transition:box-shadow .2s,border-color .2s;display:flex;box-shadow:0 1px 4px #0000000d}.library-grid li:hover{border-color:color-mix(in srgb, var(--tertiary) 55%, transparent);box-shadow:0 6px 18px #00000017}.library-grid li img{object-fit:cover;max-width:130px;margin-bottom:.75rem}.library-grid li a{color:var(--dark);font-size:.92rem;font-weight:600;line-height:1.35;text-decoration:none}.library-grid li a.internal{background:0 0}.library-grid li .author{font-family:var(--codeFont);text-transform:uppercase;letter-spacing:.05em;color:var(--gray);margin-top:.3rem;font-size:.72rem;display:block}.book-header{flex-direction:row;align-items:flex-start;gap:2.5rem;margin-bottom:2.5rem;display:flex}@media (max-width:600px){.book-header{flex-direction:column;align-items:center;gap:1.5rem}}.book-header img{object-fit:cover;flex-shrink:0;border:1px solid color-mix(in srgb, var(--gray) 35%, transparent)!important;background-color:var(--light)!important;border-radius:6px!important;width:200px!important;margin:0!important;padding:0!important;transition:none!important;display:block!important;box-shadow:0 3px 8px #0000001a,0 10px 28px #00000014!important}.book-header img:hover{transform:none!important;box-shadow:0 3px 8px #0000001a,0 10px 28px #00000014!important}@media (max-width:600px){.book-header img{width:160px!important}}.book-header-meta{flex-direction:column;justify-content:flex-start;gap:0;padding-top:.25rem;display:flex}.book-header-meta .book-genre{font-family:var(--codeFont)!important;letter-spacing:.1em!important;text-transform:uppercase!important;color:var(--gray)!important;margin:0 0 .5rem!important;font-size:.72rem!important;font-weight:500!important}.book-header-meta .book-author{font-family:var(--bodyFont)!important;color:var(--darkgray)!important;margin:0 0 .6rem!important;font-size:1.1rem!important;font-weight:400!important;line-height:1.3!important}.book-header-meta hr{border:none!important;border-top:1.5px solid color-mix(in srgb, var(--gray) 30%, transparent)!important;width:2.5rem!important;box-shadow:none!important;margin:0 0 .6rem!important}.book-header-meta .book-title{font-family:var(--headerFont)!important;color:var(--secondary)!important;margin:0 0 .2rem!important;font-size:1.75rem!important;font-weight:600!important;line-height:1.15!important}.book-header-meta .book-subtitle{font-family:var(--headerFont)!important;color:var(--darkgray)!important;margin:0 0 1.25rem!important;font-size:1.05rem!important;font-style:italic!important;font-weight:400!important;line-height:1.35!important}.book-header-meta .book-date-read{font-family:var(--codeFont)!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--gray)!important;border-top:1px solid color-mix(in srgb, var(--gray) 20%, transparent)!important;margin:0!important;padding-top:.75rem!important;font-size:.72rem!important;font-weight:400!important}