header{flex-flow:wrap;align-items:center;gap:1.5rem;margin:2rem 0;display:flex}header h1{flex:auto;margin:0}.code-controls{top:var(--lang-offset,0);z-index:1;height:var(--lang-gutter,2.3rem);align-items:center;display:flex;position:absolute;right:0}.clipboard-button{box-sizing:border-box;height:100%;font-family:var(--codeFont);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);opacity:1;cursor:pointer;transition:opacity var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;align-items:center;padding:0 .75rem;font-size:.6875rem;font-weight:500;line-height:1;display:flex}.clipboard-button:hover{opacity:1;color:var(--red-ink)}.clipboard-button:focus{outline:0}.clipboard-button:focus-visible{opacity:1;outline:var(--focus-width) solid var(--focus-color);outline-offset:calc(var(--focus-offset) * -1);border-radius:var(--radius-sm)}.clipboard-button.copied{opacity:1;color:var(--red-ink);animation:clipboardPulse .32s var(--ease-out)}.clipboard-button.copy-failed{opacity:1;color:var(--ink-2);animation:clipboardNudge .26s var(--ease-out)}@keyframes clipboardPulse{0%{transform:scale(1)}35%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes clipboardNudge{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}.clipboard-button.copied,.clipboard-button.copy-failed{transform-origin:100%}figure[data-rehype-pretty-code-figure]:has(>.code-controls>.clipboard-button.copied):after{content:"";z-index:0;pointer-events:none;border-radius:var(--radius-sm,5px);opacity:0;animation:clipboardFlash .42s var(--ease-out);background:linear-gradient(100deg,#0000 0%,#c8102e29 45% 55%,#0000 100%);position:absolute;inset:0}@keyframes clipboardFlash{0%{opacity:0}22%{opacity:1}to{opacity:0}}.code-wrap-button{box-sizing:border-box;height:100%;color:var(--ink-3);opacity:1;cursor:pointer;transition:opacity var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;padding:0 .4rem;display:flex}.code-wrap-button>svg{display:block}.code-wrap-button:hover{opacity:1;color:var(--red-ink)}.code-wrap-button:focus{outline:0}.code-wrap-button:focus-visible{opacity:1;outline:var(--focus-width) solid var(--focus-color);outline-offset:calc(var(--focus-offset) * -1);border-radius:var(--radius-sm)}.code-wrap-button[aria-pressed=true]{opacity:1;color:var(--ink)}@media (hover:none),(pointer:coarse){.clipboard-button{opacity:.85;min-width:44px}.code-wrap-button{opacity:.7;min-width:44px}}@media (prefers-reduced-motion:reduce){.code-wrap-button{transition:none}}@media print{.code-controls{display:none!important}}@media (prefers-reduced-motion:reduce){.clipboard-button{transition:none}.clipboard-button.copied,.clipboard-button.copy-failed{animation:none}figure[data-rehype-pretty-code-figure]:has(>.code-controls>.clipboard-button.copied):after{animation:none}}@media print{.clipboard-button{display:none!important}}article img.zoomable{cursor:zoom-in}article img.zoomable:focus{outline:0}article img.zoomable:focus-visible{outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-offset);border-radius:var(--radius-sm)}.imagezoom-overlay{z-index:1000;box-sizing:border-box;touch-action:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:zoom-out;opacity:0;transition:opacity var(--dur-base) var(--ease-out);background:#0a0a0be6;justify-content:center;align-items:center;padding:3.5rem 1.5rem 4.5rem;display:flex;position:fixed;inset:0;overflow:hidden}.imagezoom-overlay.is-open{opacity:1}@media (max-width:800px){.imagezoom-overlay{padding:3.25rem .75rem 4.25rem}}.imagezoom-controls{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-1);cursor:default;animation:imagezoom-fade-in var(--dur-fast) var(--ease-out);align-items:center;gap:.25rem;padding:.25rem;display:flex;position:absolute;bottom:1rem;left:50%;transform:translate(-50%)}@keyframes imagezoom-fade-in{0%{opacity:0}}.imagezoom-control{box-sizing:border-box;border-radius:var(--radius-sm);min-width:40px;height:40px;color:var(--dark);font-family:var(--bodyFont);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;padding:0 .5rem;font-size:1.05rem;line-height:1;display:flex}.imagezoom-control:hover:not(:disabled){background:var(--surface-2)}.imagezoom-control:disabled{opacity:.35;cursor:default}.imagezoom-control:focus{outline:0}.imagezoom-control:focus-visible{outline:var(--focus-width) solid var(--focus-color);outline-offset:calc(var(--focus-offset) * -1)}.imagezoom-level{min-width:56px;font-family:var(--codeFont);font-variant-numeric:tabular-nums;color:var(--darkgray);font-size:.8rem}.imagezoom-figure{max-width:100%;max-height:100%;cursor:inherit;flex-direction:column;align-items:center;gap:.75rem;margin:0;display:flex}.imagezoom-figure.is-zoomed .imagezoom-caption{opacity:0;pointer-events:none}.imagezoom-figure.is-flipping .imagezoom-caption{opacity:0}.imagezoom-image{transform-origin:0 0;will-change:transform;object-fit:contain;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:default;width:auto;max-width:92vw;height:auto;min-height:0;max-height:92vh;margin:0}.imagezoom-caption{max-width:min(70ch,92vw);color:var(--darkgray);font-size:var(--step--1);text-align:center;text-wrap:balance;cursor:text;transition:opacity var(--dur-fast) var(--ease-out);line-height:1.5}.imagezoom-close{box-sizing:border-box;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-1);width:44px;height:44px;color:var(--dark);font-family:var(--bodyFont);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;padding:0;font-size:1.5rem;line-height:1;display:flex;position:absolute;top:1rem;right:1rem}.imagezoom-close:hover{background:var(--surface-2);border-color:var(--border-default)}.imagezoom-close:focus{outline:0}.imagezoom-close:focus-visible{outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-offset)}@media (prefers-reduced-motion:reduce){.imagezoom-overlay,.imagezoom-close,.imagezoom-control,.imagezoom-caption{transition:none}.imagezoom-image{transition:none!important}}@media print{.imagezoom-overlay{display:none}}.site-reading{z-index:-1;pointer-events:none;contain:strict;opacity:1;background-color:#070708;background-image:radial-gradient(120% 90% at 50% 40%,#0000 55%,#00000080 100%),radial-gradient(70% 55% at 0 0,#c8102e29,#0000 70%),radial-gradient(55% 45% at 100% 100%,#c8102e1a,#0000 70%);transition:opacity 1.8s cubic-bezier(.4,0,.2,1);position:fixed;inset:0}.site-marble{z-index:-1;pointer-events:none;contain:strict;background-color:var(--paper);opacity:0;background-image:radial-gradient(58% 42% at 18% 32%,#1e1d21 0%,#1e1d2100 72%),radial-gradient(52% 60% at 82% 68%,#1e1d21 0%,#1e1d2100 72%),radial-gradient(40% 28% at 56% 12%,#17161a 0%,#17161a00 70%);transition:opacity 1.8s cubic-bezier(.4,0,.2,1);position:fixed;inset:0;overflow:hidden}.site-marble>canvas{opacity:0;width:100%;max-width:none;height:100%;transition:opacity .3s var(--ease);margin:0;display:block;position:absolute;inset:0}.site-marble[data-state=live]>canvas{opacity:1}.site-marble[data-state=css]>canvas{transition:none}.site-marble:after{content:"";background-image:radial-gradient(circle, var(--dot) 0 .75px, transparent 1.05px), repeating-linear-gradient(to bottom, #edeae606 0 1px, transparent 1px 3px);background-position:1px 1px,0 0;background-size:4px 4px,auto;position:absolute;inset:0}html[data-bg-intro="1"] .site-marble{opacity:1}html[data-bg-intro="1"] .site-reading{opacity:0}html[data-bg-intro="1"] body:before{background-color:var(--paper);background-image:radial-gradient(circle, var(--dot) 0 .75px, transparent 1.05px), repeating-linear-gradient(to bottom, #edeae606 0 1px, transparent 1px 3px), radial-gradient(ellipse 58% 42% at 18% 32%, #1e1d21 0%, #1e1d2100 72%), radial-gradient(ellipse 52% 60% at 82% 68%, #1e1d21 0%, #1e1d2100 72%);background-position:1px 1px,0 0,0 0,0 0;background-size:4px 4px,auto,auto,auto}@media (prefers-reduced-motion:reduce){.site-reading,.site-marble,.site-marble>canvas{transition:none}}@media print{.site-reading,.site-marble{display:none!important}}.feedback-cta{border:1px solid var(--line-strong);min-height:2.25rem;box-shadow:none;color:var(--ink);transition:background-color var(--beat) var(--ease), border-color var(--beat) var(--ease), color var(--beat) var(--ease);background:0 0;border-radius:0;align-items:center;gap:.5rem;padding:0 .875rem;display:inline-flex;position:relative;text-decoration:none!important}.feedback-cta-star{color:currentColor;flex-shrink:0;width:.875rem;height:.875rem}.feedback-cta-label{color:inherit;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:.75rem;font-weight:500;line-height:1}.feedback-cta:hover,.feedback-cta:focus-visible{background:var(--ink);border-color:var(--ink);color:var(--paper)}.feedback-cta:hover .feedback-cta-star,.feedback-cta:focus-visible .feedback-cta-star{color:var(--red)}@media (prefers-reduced-motion:reduce){.feedback-cta{transition:none}}@media (max-width:800px){.feedback-cta{padding:0 .7rem}}.social-icons{margin-left:auto}.social-icons ul{align-items:center;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.social-icons a{opacity:.66;width:2rem;height:2rem;display:inline-flex}.social-icons a:hover{opacity:1}.social-icons img{width:100%;height:100%;display:block}[saved-theme=dark] .social-icons img{filter:invert()}@media (max-width:800px){.social-icons{justify-content:center;width:100%;margin-left:0}}.breadcrumb-container{flex-flow:wrap;gap:.5rem;margin:.75rem 0 0;padding:0;display:flex}.breadcrumb-element p{margin:0 0 0 .5rem;padding:0;line-height:normal}.breadcrumb-element{flex-direction:row;justify-content:center;align-items:center;display:flex}.article-title{margin:2rem 0 0}.tags{flex-wrap:wrap;gap:.4rem;margin:1rem 0;padding-left:0;list-style:none;display:flex}.section-li>.section>.tags{justify-content:flex-end}.tags>li{white-space:nowrap;overflow-wrap:normal;margin:0;display:inline-block}a.internal.tag-link{background-color:#0000;border-radius:0;margin:0;padding:.3rem .5rem}.toc{flex-direction:column;flex:0 auto;min-height:1.4rem;display:flex;overflow-y:hidden}button.toc-header{text-align:left;cursor:pointer;color:var(--dark);background-color:#0000;border:none;align-items:center;margin-bottom:.5rem;padding:0;display:flex}button.toc-header h3{margin:0;font-size:1rem;display:inline-block}button.toc-header .fold{transition:transform var(--dur-slow) var(--ease-in-out);opacity:.8;flex-shrink:0;margin-left:.5rem}button.toc-header.collapsed .fold{transform:rotate(-90deg)}.toc>.toc-outer{min-height:0;max-height:none;transition:grid-template-rows var(--dur-slow) var(--ease-in-out), visibility var(--dur-slow) var(--ease-in-out);flex:0 auto;grid-template-rows:1fr;display:grid}.toc>.toc-outer.collapsed{visibility:hidden;grid-template-rows:0fr}ul.toc-content.overflow{overscroll-behavior:contain;min-height:0;max-height:100%;margin:0;padding:0;list-style:none;position:relative}ul.toc-content.overflow.gradient-active{-webkit-mask-image:linear-gradient(#000 calc(100% - 2rem),#0000 100%);mask-image:linear-gradient(#000 calc(100% - 2rem),#0000 100%)}ul.toc-content.overflow>li>a{font-size:var(--step--1);color:var(--ink-2);opacity:1;overflow-wrap:anywhere;transition:opacity var(--dur-slow) var(--ease-out), color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);border-left:2px solid #0000;padding:.3rem 0 .3rem .65rem;line-height:1.5;display:block}ul.toc-content.overflow>li>a.in-view{color:var(--ink);border-left-color:var(--red)}ul.toc-content.overflow>li>a>.toc-text{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}ul.toc-content.overflow>li.depth-1{background:linear-gradient(var(--line), var(--line)) 0rem 0/1px 100% no-repeat;padding-left:.95rem}ul.toc-content.overflow>li.depth-2{background:linear-gradient(var(--line), var(--line)) 0rem 0/1px 100% no-repeat, linear-gradient(var(--line), var(--line)) .95rem 0/1px 100% no-repeat;padding-left:1.9rem}ul.toc-content.overflow>li.depth-3{background:linear-gradient(var(--line), var(--line)) 0rem 0/1px 100% no-repeat, linear-gradient(var(--line), var(--line)) .95rem 0/1px 100% no-repeat, linear-gradient(var(--line), var(--line)) 1.9rem 0/1px 100% no-repeat;padding-left:2.85rem}ul.toc-content.overflow>li.depth-4{background:linear-gradient(var(--line), var(--line)) 0rem 0/1px 100% no-repeat, linear-gradient(var(--line), var(--line)) .95rem 0/1px 100% no-repeat, linear-gradient(var(--line), var(--line)) 1.9rem 0/1px 100% no-repeat, linear-gradient(var(--line), var(--line)) 2.85rem 0/1px 100% no-repeat;padding-left:3.8rem}ul.toc-content.overflow>li.depth-5{background:linear-gradient(var(--line), var(--line)) 0rem 0/1px 100% no-repeat, linear-gradient(var(--line), var(--line)) .95rem 0/1px 100% no-repeat, linear-gradient(var(--line), var(--line)) 1.9rem 0/1px 100% no-repeat, linear-gradient(var(--line), var(--line)) 2.85rem 0/1px 100% no-repeat, linear-gradient(var(--line), var(--line)) 3.8rem 0/1px 100% no-repeat;padding-left:4.75rem}ul.toc-content.overflow>li.depth-6{background:linear-gradient(var(--line), var(--line)) 0rem 0/1px 100% no-repeat, linear-gradient(var(--line), var(--line)) .95rem 0/1px 100% no-repeat, linear-gradient(var(--line), var(--line)) 1.9rem 0/1px 100% no-repeat, linear-gradient(var(--line), var(--line)) 2.85rem 0/1px 100% no-repeat, linear-gradient(var(--line), var(--line)) 3.8rem 0/1px 100% no-repeat, linear-gradient(var(--line), var(--line)) 4.75rem 0/1px 100% no-repeat;padding-left:5.7rem}@media (max-width:1199px){.toc.mobile-only>.toc-outer>ul.toc-content.overflow{max-height:min(60vh,36rem)}}@media (pointer:coarse){button.toc-header,ul.toc-content.overflow>li>a{box-sizing:border-box;min-height:44px}ul.toc-content.overflow>li>a{align-items:center;display:flex}}@media (prefers-reduced-motion:reduce){.toc>.toc-outer,button.toc-header .fold,ul.toc-content.overflow>li>a{transition:none!important}}.star-prompt{z-index:900;opacity:0;visibility:hidden;pointer-events:none;width:min(420px,100vw - 2.5rem);transition:opacity var(--dur-slow,.32s) var(--ease-out,ease), transform var(--dur-slow,.32s) var(--ease-out,ease), visibility var(--dur-slow,.32s) var(--ease-out,ease);position:fixed;bottom:1.5rem;right:1.5rem;transform:translateY(12px)scale(.985)}.star-prompt.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:none}.star-prompt.is-instant{transition:none}.star-prompt.is-hidden-by-search{opacity:0;visibility:hidden;pointer-events:none}.star-prompt-card{border:1px solid var(--line-strong);background:var(--paper-2);box-shadow:none;transition:border-color var(--dur-base,.2s) var(--ease-out,ease);border-radius:0;padding:1.75rem 1.75rem 1.85rem;position:relative;overflow:hidden}.star-prompt-close{z-index:1;width:2.25rem;height:2.25rem;color:var(--ink-2);font-family:var(--mono);cursor:pointer;transition:color var(--dur-fast,.12s) var(--ease-out,ease), border-color var(--dur-fast,.12s) var(--ease-out,ease);background:0 0;border:1px solid #0000;border-radius:0;justify-content:center;align-items:center;padding:0;font-size:1.25rem;line-height:1;display:inline-flex;position:absolute;top:.65rem;right:.65rem}.star-prompt-close:hover{color:var(--ink);border-color:var(--line)}.star-prompt-kicker{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--red-ink);align-items:center;gap:.6rem;margin:0;padding-right:2.5rem;font-size:.75rem;font-weight:500;display:flex}.star-prompt-kicker:before{content:"";background:var(--red);flex:none;width:.5rem;height:.5rem}.star-prompt-title{font-family:var(--display);font-weight:400;font-size:var(--step-2,1.25rem);line-height:var(--leading-tight,1.2);letter-spacing:-.01em;color:var(--ink);margin:1rem 0 .75rem}.star-prompt-copy{font-size:var(--step--1,.8125rem);line-height:var(--leading-normal,1.7);color:var(--ink-2);margin:0}.star-prompt-count{letter-spacing:.04em;color:var(--ink-3);margin:.9rem 0 0;font-size:.75rem}.star-prompt-count span{color:var(--ink);font-weight:600}.star-prompt-btn{border-color:var(--ink);background:var(--ink);min-height:2.75rem;color:var(--paper);margin-top:1.4rem}.star-prompt-btn:hover,.star-prompt-btn:focus-visible{background:var(--paper);color:var(--ink)}.star-prompt-btn:hover .feedback-cta-star,.star-prompt-btn:focus-visible .feedback-cta-star{color:var(--red)}.star-prompt.is-visible:hover .star-prompt-card{border-color:var(--ink)}@media (prefers-reduced-motion:reduce){.star-prompt,.star-prompt-btn:hover{transform:none}}@media (max-width:800px){.star-prompt{width:auto;bottom:1rem;left:1rem;right:1rem}.star-prompt-card{padding:1.5rem 1.35rem 1.55rem}.star-prompt-title{font-size:var(--step-1,1.0625rem)}.star-prompt-btn{justify-content:center;width:100%}}.page-title{font-family:var(--titleFont);margin:0;font-size:1rem;font-weight:400;line-height:1}@keyframes searchResultIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.search{min-width:fit-content;max-width:14rem}@media (max-width:800px){.search{flex-grow:.3}}.search>.search-button{border:1px var(--line) solid;font-family:inherit;font-size:inherit;height:2rem;text-align:inherit;cursor:pointer;white-space:nowrap;background-color:#0000;border-radius:0;align-items:center;width:100%;padding:0 1rem 0 0;display:flex}.search>.search-button>p{color:var(--gray);text-wrap:unset;display:inline}.search>.search-button svg{cursor:pointer;width:18px;min-width:18px;margin:0 .5rem}.search>.search-button svg .search-path{stroke:var(--darkgray);stroke-width:1.5px;transition:stroke .5s}.search>.search-container{contain:layout;z-index:999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:100vw;height:100vh;display:none;position:fixed;top:0;left:0;overflow-y:auto}.search>.search-container.active{display:inline-block}.search>.search-container>.search-space{width:65%;margin-top:12vh;margin-left:auto;margin-right:auto}@media not (min-width:1200px){.search>.search-container>.search-space{width:90%}}.search>.search-container>.search-space>*{background:var(--paper-2);width:100%;box-shadow:none;border-radius:0;margin-bottom:2em}.search>.search-container>.search-space>input{box-sizing:border-box;font-family:var(--bodyFont);color:var(--dark);border:1px solid var(--line-strong);padding:.5em 1em;font-size:1.1em}.search>.search-container>.search-space>input:focus{outline:none}.search>.search-container>.search-space>.search-layout{border:1px solid var(--lightgray);box-sizing:border-box;flex-direction:row;flex:0 0 100%;display:none}.search>.search-container>.search-space>.search-layout.display-results{display:flex}.search>.search-container>.search-space>.search-layout[data-preview]>.results-container{flex:0 0 min(30%,450px)}@media not (max-width:800px){.search>.search-container>.search-space>.search-layout[data-preview] .result-card>p.preview{display:none}.search>.search-container>.search-space>.search-layout[data-preview]>div:first-child{border-right:1px solid var(--lightgray);border-top-right-radius:unset;border-bottom-right-radius:unset}.search>.search-container>.search-space>.search-layout[data-preview]>div:last-child{border-top-left-radius:unset;border-bottom-left-radius:unset}}.search>.search-container>.search-space>.search-layout>div{border-radius:0;height:63vh}@media (max-width:800px){.search>.search-container>.search-space>.search-layout{flex-direction:column}.search>.search-container>.search-space>.search-layout>.preview-container{display:none!important}.search>.search-container>.search-space>.search-layout[data-preview]>.results-container{flex:0 0 100%;width:100%;height:auto}}.search>.search-container>.search-space>.search-layout .highlight{background:var(--red-soft);border-radius:0;scroll-margin-top:2rem}.search>.search-container>.search-space>.search-layout>.preview-container{color:var(--dark);flex-grow:1;padding:0 2rem;font-family:inherit;font-weight:400;line-height:1.5em;display:block;overflow:hidden auto}.search>.search-container>.search-space>.search-layout>.preview-container .preview-inner{width:min(800px,100%);margin:0 auto}.search>.search-container>.search-space>.search-layout>.preview-container a[role=anchor]{background-color:#0000}.search>.search-container>.search-space>.search-layout>.results-container{overflow-y:auto}.search>.search-container>.search-space>.search-layout>.results-container .result-card{cursor:pointer;animation:searchResultIn var(--dur-fast) var(--ease-out) both;border-bottom:1px solid var(--line);box-sizing:border-box;text-transform:none;text-align:left;width:100%;font-family:inherit;font-size:100%;line-height:1.15;font-weight:inherit;outline:none;margin:0;padding:1em;transition:background .2s;display:block;overflow:hidden}.search>.search-container>.search-space>.search-layout>.results-container .result-card:nth-child(2){animation-delay:20ms}.search>.search-container>.search-space>.search-layout>.results-container .result-card:nth-child(3){animation-delay:40ms}.search>.search-container>.search-space>.search-layout>.results-container .result-card:nth-child(4){animation-delay:60ms}.search>.search-container>.search-space>.search-layout>.results-container .result-card:nth-child(5){animation-delay:80ms}.search>.search-container>.search-space>.search-layout>.results-container .result-card:nth-child(6){animation-delay:.1s}.search>.search-container>.search-space>.search-layout>.results-container .result-card:nth-child(7){animation-delay:.12s}.search>.search-container>.search-space>.search-layout>.results-container .result-card:nth-child(n+8){animation-delay:.14s}.search>.search-container>.search-space>.search-layout>.results-container .result-card:hover,.search>.search-container>.search-space>.search-layout>.results-container .result-card:focus,.search>.search-container>.search-space>.search-layout>.results-container .result-card.focus{background:var(--paper-3)}.search>.search-container>.search-space>.search-layout>.results-container .result-card>h3{margin:0}@media not (max-width:800px){.search>.search-container>.search-space>.search-layout>.results-container .result-card>p.card-description{display:none}}.search>.search-container>.search-space>.search-layout>.results-container .result-card>ul.tags{margin-top:.45rem;margin-bottom:0}.search>.search-container>.search-space>.search-layout>.results-container .result-card>ul>li>p{color:var(--secondary);background-color:#0000;border-radius:0;margin:0 .1rem;padding:.2rem .4rem;font-weight:700;line-height:1.4rem}.search>.search-container>.search-space>.search-layout>.results-container .result-card>ul>li>p.match-tag{color:var(--tertiary)}.search>.search-container>.search-space>.search-layout>.results-container .result-card>p{margin-bottom:0}.readermode{cursor:pointer;width:20px;height:32px;text-align:inherit;background:0 0;border:none;flex-shrink:0;margin:0;padding:0;position:relative}.readermode svg{width:20px;height:20px;fill:var(--darkgray);stroke:var(--darkgray);transition:fill var(--dur-fast) var(--ease-out), stroke var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out);position:absolute;top:calc(50% - 10px)}.readermode:hover svg,.readermode:focus-visible svg{fill:var(--secondary);stroke:var(--secondary)}.readermode:focus-visible{outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-offset);border-radius:var(--radius-sm)}@media (hover:none),(pointer:coarse){.readermode{box-sizing:border-box;min-width:44px;min-height:44px}.readermode svg{top:calc(50% - 10px);left:calc(50% - 10px)}}:root[reader-mode=on] .sidebar.left,:root[reader-mode=on] .sidebar.right{opacity:0;transition:opacity var(--dur-base) var(--ease-out)}:root[reader-mode=on] .sidebar.left:hover,:root[reader-mode=on] .sidebar.right:hover,:root[reader-mode=on] .sidebar.left:focus-within,:root[reader-mode=on] .sidebar.right:focus-within{opacity:1}@media (hover:none),(pointer:coarse){:root[reader-mode=on] .sidebar.left,:root[reader-mode=on] .sidebar.right{opacity:1}}@media (prefers-reduced-motion:reduce){.readermode svg,:root[reader-mode=on] .sidebar.left,:root[reader-mode=on] .sidebar.right{transition:none}}.pdf-export{cursor:pointer;width:20px;height:32px;text-align:inherit;background:0 0;border:none;flex-shrink:0;margin:0;padding:0;position:relative}.pdf-export svg{width:20px;height:20px;color:var(--darkgray);transition:color var(--dur-fast) var(--ease-out);position:absolute;top:calc(50% - 10px)}.pdf-export:hover svg,.pdf-export:focus-visible svg{color:var(--secondary)}.pdf-export:focus-visible{outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-offset);border-radius:var(--radius-sm)}@media (hover:none),(pointer:coarse){.pdf-export{box-sizing:border-box;min-width:44px;min-height:44px}.pdf-export svg{top:calc(50% - 10px);left:calc(50% - 10px)}}@media (prefers-reduced-motion:reduce){.pdf-export svg{transition:none}}@media (max-width:800px){.page>#site-body>:not(.sidebar.left:has(.explorer)){transition:transform .3s ease-in-out}.page>#site-body.lock-scroll>:not(.sidebar.left:has(.explorer)){transition:transform .3s ease-in-out;transform:translate(100dvw)}.page>#site-body .sidebar.left:has(.explorer){box-sizing:border-box;background-color:var(--paper);margin:0;padding:1rem 0;position:sticky}.page>#site-body .hide-until-loaded~.explorer-content{display:none}}.explorer{flex-direction:column;flex:0 auto;min-height:1.2rem;display:flex;overflow-y:hidden}.explorer.collapsed{flex:0 1.2rem}@media (max-width:800px){.explorer{height:initial;flex-shrink:0;order:-1;align-self:flex-start;margin-top:auto;margin-bottom:auto;overflow:hidden}}.explorer button.mobile-explorer{display:none}@media (max-width:800px){.explorer button.mobile-explorer{display:flex}}@media not (max-width:800px){.explorer.desktop-only{display:flex}}.explorer svg{pointer-events:all;transition:transform .35s}.explorer svg>polyline{pointer-events:none}button.mobile-explorer{text-align:left;cursor:pointer;color:var(--dark);background-color:#0000;border:none;align-items:center;padding:0;display:flex}button.mobile-explorer h2{margin:0;font-size:1rem;display:inline-block}.explorer-content{margin-top:.5rem;list-style:none;overflow:hidden auto}.explorer-content ul{margin:0;padding:0;list-style:none}.explorer-content ul.explorer-ul{overscroll-behavior:contain}.explorer-content ul li>a{color:var(--dark);opacity:.75;pointer-events:all}.explorer-content ul li>a.active{opacity:1;color:var(--tertiary)}.explorer-content .folder-outer{visibility:collapse;grid-template-rows:0fr;transition-property:grid-template-rows,visibility;transition-duration:.3s;transition-timing-function:ease-in-out;display:grid}.explorer-content .folder-outer.open{visibility:visible;grid-template-rows:1fr}.explorer-content .folder-outer>ul{border-left:1px solid var(--lightgray);margin-left:6px;padding-left:.8rem;overflow:hidden}.folder-container{-webkit-user-select:none;user-select:none;flex-direction:row;align-items:center;display:flex}.folder-container div>a{color:var(--secondary);font-family:var(--headerFont);font-size:.95rem;font-weight:600;line-height:1.5rem;display:inline-block}.folder-container div>a:hover{color:var(--tertiary)}.folder-container div>button{color:var(--dark);text-align:left;cursor:pointer;font-family:var(--headerFont);background-color:#0000;border:none;align-items:center;padding-left:0;padding-right:0;display:flex}.folder-container div>button span{color:var(--secondary);pointer-events:none;margin:0;font-size:.95rem;font-weight:600;line-height:1.5rem;display:inline-block}.folder-icon{color:var(--secondary);cursor:pointer;transition:transform var(--dur-slow) var(--ease-out);backface-visibility:visible;flex-shrink:0;margin-right:5px}@media (hover:none),(pointer:coarse){.folder-icon{box-sizing:content-box;margin-left:-.5rem;margin-right:-.5rem;padding:1rem}}li:has(>.folder-outer:not(.open))>.folder-container>svg{transform:rotate(-90deg)}.folder-icon:hover{color:var(--tertiary)}@media (max-width:800px){.explorer.collapsed{flex:0 0 34px}.explorer.collapsed>.explorer-content{visibility:hidden;transform:translate(-100vw)}.explorer:not(.collapsed){flex:0 0 34px}.explorer:not(.collapsed)>.explorer-content{visibility:visible;transform:translate(0)}.explorer .explorer-content{box-sizing:border-box;z-index:100;background-color:var(--light);visibility:hidden;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin-top:0;padding:4rem 0 2rem;transition:transform .2s,visibility .2s;position:absolute;top:0;left:0;overflow:hidden;transform:translate(-100vw)}.explorer .mobile-explorer{z-index:101;margin:0;padding:5px}.explorer .mobile-explorer .lucide-menu{stroke:var(--darkgray)}}@media (max-width:800px) and (hover:none),(max-width:800px) and (pointer:coarse){.explorer .mobile-explorer{box-sizing:border-box;justify-content:center;min-width:44px;min-height:44px;margin-left:-5px;padding:10px}.explorer.collapsed,.explorer:not(.collapsed){flex:0 0 44px}}@media (hover:none),(pointer:coarse){.explorer .explorer-content ul li>a{padding-block:.75rem;display:block}.folder-container{min-height:44px}}button.mobile-explorer:focus-visible,.folder-container div>button:focus-visible{outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-offset);border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){.explorer svg,.folder-icon,.explorer-content .folder-outer{transition:none}}@media (max-width:800px){.mobile-no-scroll .explorer-content>.explorer-ul{overscroll-behavior:contain}}.graph>h3{margin:0;font-size:1rem}.graph>.graph-outer{border:1px solid var(--line);box-sizing:border-box;height:var(--graph-h,250px);border-radius:0;margin:.5em 0;position:relative;overflow:hidden}.graph>.graph-outer>.graph-container{height:100%}.graph>.graph-outer>.graph-container>canvas{display:block}.graph>.graph-outer>.global-graph-icon{cursor:pointer;color:var(--ink);opacity:.66;width:24px;height:24px;transition:background-color var(--dur-fast) ease, opacity var(--dur-fast) ease;cursor:pointer;background:0 0;border:none;border-radius:0;margin:.3rem;padding:.2rem;position:absolute;top:0;right:0}.graph>.graph-outer>.global-graph-icon:hover{background-color:var(--paper-3);opacity:1}.graph>.global-graph-outer{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:100vw;height:100%;display:none;position:fixed;top:0;left:0;overflow:hidden}.graph>.global-graph-outer.active{display:inline-block}.graph>.global-graph-outer>.global-graph-container{border:1px solid var(--line-strong);background-color:var(--paper-2);box-sizing:border-box;border-radius:0;width:80vw;height:80vh;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@media not (min-width:1200px){.graph>.global-graph-outer>.global-graph-container{width:90%}}.backlinks{flex-direction:column}.backlinks>h3{margin:0;font-size:1rem}.backlinks>ul.overflow{overscroll-behavior:contain;max-height:calc(100% - 2rem);margin:.5rem 0;padding:0;list-style:none}.backlinks>ul.overflow>li>a{background-color:#0000}.notes-footnote{box-sizing:border-box;width:var(--frame);font-family:var(--mono);font-size:var(--t-sm);letter-spacing:.08em;text-transform:uppercase;text-align:center;text-wrap:balance;color:var(--ink-3);margin:0 auto;padding-block:3.5rem 1.5rem;font-weight:500;line-height:1.6}ul.section-ul{margin-top:2em;padding-left:0;list-style:none}li.section-li{margin-bottom:1em}li.section-li>.section{grid-template-columns:fit-content(8em) 3fr 1fr;display:grid}@media (max-width:800px){li.section-li>.section>.tags{display:none}}li.section-li>.section>.desc>h3>a{background-color:#0000}li.section-li>.section .meta{opacity:.6;margin:0 1em 0 0}.popover .section{grid-template-columns:fit-content(8em) 1fr!important}.popover .section>.tags{display:none}.section h3,.section>.tags{margin:0}@keyframes dropin{0%{opacity:0;visibility:hidden}1%{opacity:0}to{opacity:1;visibility:visible}}.popover{z-index:999;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-family:var(--mono);color:var(--ink);border:1px solid var(--line-strong);background-color:var(--paper-2);box-shadow:none;overscroll-behavior:contain;white-space:normal;-webkit-user-select:none;user-select:none;cursor:default;border-radius:0;padding:0 1rem 1rem;font-size:.875rem;line-height:1.6;position:relative;overflow:auto}.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.25rem;font-weight:400}.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}.expand-button{float:right;color:var(--ink-2);border-color:var(--line-strong);background-color:var(--paper-2);opacity:0;transition:opacity var(--dur-base) var(--ease-out), border-color var(--dur-fast) var(--ease-out);border:1px solid;border-radius:0;margin:.3rem;padding:.4rem;display:flex;position:absolute;right:0}.expand-button>svg{fill:var(--light);filter:contrast(.3)}.expand-button:hover{cursor:pointer;border-color:var(--ink)}.expand-button:focus{outline:0}.expand-button:focus-visible{opacity:1;outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-offset);border-color:var(--ink)}pre:hover>.expand-button,pre:focus-within>.expand-button{opacity:1}@media (hover:none),(pointer:coarse){.expand-button{opacity:1;box-sizing:border-box;justify-content:center;align-items:center;min-width:44px;min-height:44px}}@media (prefers-reduced-motion:reduce){.expand-button{transition:none}}#mermaid-container{contain:layout;z-index:999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0a0bcc;display:none;position:fixed;inset:0;overflow:hidden}#mermaid-container.active{display:block}#mermaid-container>#mermaid-space{border:1px solid var(--line-strong);background:var(--paper-2);width:88vw;height:86vh;box-shadow:none;border-radius:0;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}#mermaid-container>#mermaid-space>.mermaid-content{transform-origin:0 0;min-width:200px;min-height:200px;transition:transform .1s;position:relative;overflow:visible}#mermaid-container>#mermaid-space>.mermaid-content pre{border:none;margin:0}#mermaid-container>#mermaid-space>.mermaid-content svg{max-width:none;height:auto}#mermaid-container>#mermaid-space>.mermaid-controls{background:var(--paper);border:1px solid var(--line);box-shadow:none;z-index:2;border-radius:0;align-items:center;gap:.35rem;padding:.35rem;display:flex;position:absolute;bottom:1.1rem;right:1.1rem}#mermaid-container>#mermaid-space>.mermaid-controls .mermaid-control-button{width:34px;height:34px;color:var(--ink-2);cursor:pointer;font-size:.875rem;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;transition:background-color var(--dur-fast,.12s) var(--ease-out,ease), border-color var(--dur-fast,.12s) var(--ease-out,ease), color var(--dur-fast,.12s) var(--ease-out,ease);background:0 0;border:1px solid #0000;border-radius:0;justify-content:center;align-items:center;padding:0;font-weight:500;line-height:1;display:flex}#mermaid-container>#mermaid-space>.mermaid-controls .mermaid-control-button:hover{background:var(--paper-3);border-color:var(--line);color:var(--ink)}#mermaid-container>#mermaid-space>.mermaid-controls .mermaid-control-button:active{transform:translateY(1px)}#mermaid-container>#mermaid-space>.mermaid-controls .mermaid-control-button:focus-visible{outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-offset)}#mermaid-container>#mermaid-space>.mermaid-controls .mermaid-control-button:nth-child(2),#mermaid-container>#mermaid-space>.mermaid-controls .mermaid-control-close{width:auto;padding:0 .8rem;font-size:.6875rem}#mermaid-container>#mermaid-space>.mermaid-controls .mermaid-control-close{border-color:var(--line-strong);color:var(--ink);margin-left:.15rem}#mermaid-container>#mermaid-space>.mermaid-controls .mermaid-control-close:hover{border-color:var(--red);color:var(--red-ink)}@media (hover:none),(pointer:coarse){#mermaid-container>#mermaid-space>.mermaid-controls .mermaid-control-button{min-width:44px;min-height:44px}#mermaid-container>#mermaid-space>.mermaid-controls .mermaid-control-button:nth-child(2),#mermaid-container>#mermaid-space>.mermaid-controls .mermaid-control-close{padding:0 1rem}}@media (prefers-reduced-motion:reduce){#mermaid-container>#mermaid-space>.mermaid-content{transition:none}}.mermaid .edgeLabel,.mermaid .edgeLabel p,.mermaid .edgeLabel span,.mermaid .edgeLabel div,.mermaid .edgeLabel rect,.mermaid .labelBkg,#mermaid-container .edgeLabel,#mermaid-container .edgeLabel p,#mermaid-container .edgeLabel span,#mermaid-container .edgeLabel div,#mermaid-container .edgeLabel rect,#mermaid-container .labelBkg{fill:#0000!important;background:0 0!important}.mermaid .edgeLabel p,.mermaid .edgeLabel span,#mermaid-container .edgeLabel p,#mermaid-container .edgeLabel span{fill:var(--ink-2)!important;color:var(--ink-2)!important}.mermaid .nodeLabel p,.mermaid .nodeLabel p span,.mermaid g.node foreignObject p,#mermaid-container .nodeLabel p,#mermaid-container .nodeLabel p span,#mermaid-container g.node foreignObject p{color:inherit!important}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)}code[data-theme*=\ ] span[style*="--shiki-dark:#E1E4E8"],[saved-theme=dark] code[data-theme*=\ ] span[style*="--shiki-dark:#E1E4E8"],code[data-theme*=\ ] span[style*="--shiki-dark:#B392F0"],[saved-theme=dark] code[data-theme*=\ ] span[style*="--shiki-dark:#B392F0"]{color:var(--ink)}code[data-theme*=\ ] span[style*="--shiki-dark:#79B8FF"],[saved-theme=dark] code[data-theme*=\ ] span[style*="--shiki-dark:#79B8FF"],code[data-theme*=\ ] span[style*="--shiki-dark:#9ECBFF"],[saved-theme=dark] code[data-theme*=\ ] span[style*="--shiki-dark:#9ECBFF"],code[data-theme*=\ ] span[style*="--shiki-dark:#FFAB70"],[saved-theme=dark] code[data-theme*=\ ] span[style*="--shiki-dark:#FFAB70"]{color:var(--ink-2)}code[data-theme*=\ ] span[style*="--shiki-dark:#6A737D"],[saved-theme=dark] code[data-theme*=\ ] span[style*="--shiki-dark:#6A737D"]{color:var(--ink-3)}code[data-theme*=\ ] span[style*="--shiki-dark:#F97583"],[saved-theme=dark] code[data-theme*=\ ] span[style*="--shiki-dark:#F97583"],code[data-theme*=\ ] span[style*="--shiki-dark:#85E89D"],[saved-theme=dark] code[data-theme*=\ ] span[style*="--shiki-dark:#85E89D"],code[data-theme*=\ ] span[style*="--shiki-dark:#FDAEB7"],[saved-theme=dark] code[data-theme*=\ ] span[style*="--shiki-dark:#FDAEB7"]{color:var(--red-ink)}code[data-theme*=\ ] span[style*="--shiki-dark:#B392F0"]{font-weight:500}.callout{border:1px solid var(--border);background-color:var(--bg);box-sizing:border-box;--callout-fold-duration:.24s;border-radius:0;padding:0 1rem;overflow-y:hidden}.callout>.callout-content{overflow:hidden;grid-template-rows:none!important}.callout>.callout-content>:first-child{margin-top:0}.callout{--callout-icon-note:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"2\" x2=\"22\" y2=\"6\"></line><path d=\"M7.5 20.5 19 9l-4-4L3.5 16.5 2 22z\"></path></svg>");--callout-icon-abstract:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"8\" y=\"2\" width=\"8\" height=\"4\" rx=\"1\" ry=\"1\"></rect><path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"></path><path d=\"M12 11h4\"></path><path d=\"M12 16h4\"></path><path d=\"M8 11h.01\"></path><path d=\"M8 16h.01\"></path></svg>");--callout-icon-info:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"></line><line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"></line></svg>");--callout-icon-todo:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z\"></path><path d=\"m9 12 2 2 4-4\"></path></svg>");--callout-icon-tip:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z\"></path></svg> ");--callout-icon-success:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"></polyline></svg> ");--callout-icon-question:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line></svg> ");--callout-icon-warning:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\"></path><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"></line><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line></svg>");--callout-icon-failure:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line></svg> ");--callout-icon-danger:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"></polygon></svg> ");--callout-icon-bug:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect width=\"8\" height=\"14\" x=\"8\" y=\"6\" rx=\"4\"></rect><path d=\"m19 7-3 2\"></path><path d=\"m5 7 3 2\"></path><path d=\"m19 19-3-2\"></path><path d=\"m5 19 3-2\"></path><path d=\"M20 13h-4\"></path><path d=\"M4 13h4\"></path><path d=\"m10 4 1 2\"></path><path d=\"m14 4-1 2\"></path></svg>");--callout-icon-example:url("data:image/svg+xml; utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"></line><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"></line><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"></line><line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"></line><line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"></line><line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"></line></svg> ");--callout-icon-quote:url("data:image/svg+xml; utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z\"></path><path d=\"M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z\"></path></svg>");--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")}.callout[data-callout],.callout[data-callout=note]{--color:#6f9cff;--border:#6f9cff;--bg:#6f9cff14;--callout-edge:#6f9cff38;--callout-icon:var(--callout-icon-note)}.callout[data-callout=abstract]{--color:#4ccfe0;--border:#4ccfe0;--bg:#4ccfe014;--callout-edge:#4ccfe038;--callout-icon:var(--callout-icon-abstract)}.callout[data-callout=info]{--color:#5eb8f2;--border:#5eb8f2;--bg:#5eb8f214;--callout-edge:#5eb8f238;--callout-icon:var(--callout-icon-info)}.callout[data-callout=todo]{--color:#9f9dff;--border:#9f9dff;--bg:#9f9dff14;--callout-edge:#9f9dff38;--callout-icon:var(--callout-icon-todo)}.callout[data-callout=tip]{--color:#35d0a5;--border:#35d0a5;--bg:#35d0a514;--callout-edge:#35d0a538;--callout-icon:var(--callout-icon-tip)}.callout[data-callout=success]{--color:#6fd37a;--border:#6fd37a;--bg:#6fd37a14;--callout-edge:#6fd37a38;--callout-icon:var(--callout-icon-success)}.callout[data-callout=question]{--color:#f5c84c;--border:#f5c84c;--bg:#f5c84c14;--callout-edge:#f5c84c38;--callout-icon:var(--callout-icon-question)}.callout[data-callout=warning]{--color:#ff9a3d;--border:#ff9a3d;--bg:#ff9a3d14;--callout-edge:#ff9a3d38;--callout-icon:var(--callout-icon-warning)}.callout[data-callout=failure]{--color:#ff6a55;--border:#ff6a55;--bg:#ff6a5514;--callout-edge:#ff6a5538;--callout-icon:var(--callout-icon-failure)}.callout[data-callout=danger]{--color:#ff3c5f;--border:#ff3c5f;--bg:#ff3c5f14;--callout-edge:#ff3c5f38;--callout-icon:var(--callout-icon-danger)}.callout[data-callout=bug]{--color:#f47ab8;--border:#f47ab8;--bg:#f47ab814;--callout-edge:#f47ab838;--callout-icon:var(--callout-icon-bug)}.callout[data-callout=example]{--color:#c58af9;--border:#c58af9;--bg:#c58af914;--callout-edge:#c58af938;--callout-icon:var(--callout-icon-example)}.callout[data-callout=quote]{--color:#aca69f;--border:#aca69f;--bg:#aca69f14;--callout-edge:#aca69f38;--callout-icon:var(--callout-icon-quote)}.callout.is-collapsed>.callout-title>.fold-callout-icon{transform:rotate(-90deg)}.callout[data-callout]{background-color:var(--bg);border:1px solid var(--callout-edge);border-left:2px solid var(--border)}@media print{.callout[data-callout],.callout[data-callout=note]{--color:#384e80;--border:#384e80}.callout[data-callout=abstract]{--color:#266870;--border:#266870}.callout[data-callout=info]{--color:#2f5c79;--border:#2f5c79}.callout[data-callout=todo]{--color:#504f80;--border:#504f80}.callout[data-callout=tip]{--color:#1b6853;--border:#1b6853}.callout[data-callout=success]{--color:#386a3d;--border:#386a3d}.callout[data-callout=question]{--color:#7b6426;--border:#7b6426}.callout[data-callout=warning]{--color:#804d1f;--border:#804d1f}.callout[data-callout=failure]{--color:#80352b;--border:#80352b}.callout[data-callout=danger]{--color:#801e30;--border:#801e30}.callout[data-callout=bug]{--color:#7a3d5c;--border:#7a3d5c}.callout[data-callout=example]{--color:#63457d;--border:#63457d}.callout[data-callout=quote]{--color:#565350;--border:#565350}}@media screen{.callout{transition:grid-template-rows var(--callout-fold-duration) var(--ease-out);grid-template-rows:auto 1fr;display:grid}.callout.is-collapsed{grid-template-rows:auto 0fr}.callout.is-collapsed>.callout-content{visibility:hidden;transition:visibility 0s linear var(--callout-fold-duration)}}.callout-title{color:var(--color);--icon-size:18px;align-items:flex-start;gap:5px;padding:1rem 0;display:flex}.callout-title .fold-callout-icon{transition:transform var(--callout-fold-duration) var(--ease-out);opacity:.8;cursor:pointer;--callout-icon:var(--callout-icon-fold)}.callout-title>.callout-title-inner>p{color:var(--color);margin:0}.callout-title .callout-icon,.callout-title .fold-callout-icon{width:var(--icon-size);height:var(--icon-size);flex:0 0 var(--icon-size);background-size:var(--icon-size) var(--icon-size);background-position:50%;background-color:var(--color);-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);padding:.2rem 0;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.callout-title .callout-title-inner{font-weight:600}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;font-family:var(--bodyFont);color:var(--darkgray);background-color:#0000;margin:0}.text-highlight{background-color:var(--textHighlight);border-radius:0;padding:0 .1rem}::selection{background:var(--red);color:var(--ink)}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{font-weight:inherit;transition:color var(--dur-fast,.12s) var(--ease-out,ease), text-decoration-color var(--dur-fast,.12s) var(--ease-out,ease);color:var(--secondary);text-decoration:none}a.internal{background-color:#0000;border-radius:0;padding:0;text-decoration:none}a.internal.broken{color:var(--ink-3);opacity:1}a.internal:has(>img){background-color:#0000;border-radius:0;padding:0}a.external .external-icon{height:1ex;margin:0 .15em}a.external .external-icon>path{fill:var(--ink-3)}.flex-component{display:flex}.desktop-only{display:initial}.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:initial}}.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(--ink-3);text-decoration-color:var(--ink-3);color:var(--ink-2)}.page article li>*{margin-top:0;margin-bottom:0}.page article p>strong{color:var(--dark)}.page>#site-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>#site-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>#site-body{grid-template:"grid-sidebar-left""grid-header""grid-center""grid-sidebar-right""grid-footer"/auto;gap:5px}}@media not (min-width:1200px){.page>#site-body{padding:0 1rem}}@media (max-width:800px){.page>#site-body{margin:0 auto}}.page>#site-body .sidebar{box-sizing:border-box;gap:1.2rem;height:100vh;padding:6rem 2rem 2rem;display:flex;position:sticky;top:0}.page>#site-body .sidebar.left{z-index:1;flex-direction:column;grid-area:grid-sidebar-left;overflow-y:auto}@media (max-width:800px){.page>#site-body .sidebar.left{position:initial;height:unset;flex-direction:row;align-items:center;gap:0;padding:2rem 0 0;display:flex}}.page>#site-body .sidebar.right{flex-direction:column;grid-area:grid-sidebar-right;margin-right:0}@media (max-width:800px){.page>#site-body .sidebar.right{margin-left:inherit;margin-right:inherit}}@media not (min-width:1200px){.page>#site-body .sidebar.right{position:initial;height:unset;flex-direction:row;width:100%;padding:0}.page>#site-body .sidebar.right>*{flex:1;max-height:24rem}.page>#site-body .sidebar.right>.toc{display:none}}.page>#site-body .page-header,.page>#site-body .page-footer{margin-top:1rem}.page>#site-body .page-header{grid-area:grid-header;margin:6rem 0 0}@media (max-width:800px){.page>#site-body .page-header{margin-top:0;padding:0}}.page>#site-body .center>article{grid-area:grid-center}.page>#site-body footer{grid-area:grid-footer}.page>#site-body .center,.page>#site-body footer{min-width:100%;max-width:100%;margin-left:auto;margin-right:auto}@media (min-width:800px) and (max-width:1200px){.page>#site-body .center,.page>#site-body footer{margin-right:0}}@media (max-width:800px){.page>#site-body .center,.page>#site-body footer{margin-left:0;margin-right:0}}.page>#site-body footer{margin-left:0}.footnotes{border-top:1px solid var(--line);margin-top:2rem}input[type=checkbox]{color:var(--ink);border:1px solid var(--line-strong);appearance:none;cursor:pointer;background-color:#0000;border-radius:0;width:15px;height:15px;margin-inline:-1.4rem .35rem;position:relative;transform:translateY(2px)}input[type=checkbox]:hover{border-color:var(--ink)}input[type=checkbox]:checked{border-color:var(--ink);background-color:var(--ink)}input[type=checkbox]:checked:after{content:"";border:solid var(--paper);border-width:0 2px 2px 0;width:4px;height:8px;display:block;position:absolute;top:1px;left:4px;transform:rotate(45deg)}blockquote{border-left:2px solid var(--line-strong);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-synthesis:none;margin-bottom:0;font-weight:400}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;transition:opacity var(--dur-base) var(--ease-out);font-family:var(--codeFont);color:var(--ink-3);-webkit-user-select:none;user-select:none;margin:0 .5rem;text-decoration:none;transform:translateY(-.1rem)}h1[id]:hover>a,h1[id]:focus-within>a,h1[id]>a[href^=\#]:focus-visible,h2[id]:hover>a,h2[id]:focus-within>a,h2[id]>a[href^=\#]:focus-visible,h3[id]:hover>a,h3[id]:focus-within>a,h3[id]>a[href^=\#]:focus-visible,h4[id]:hover>a,h4[id]:focus-within>a,h4[id]>a[href^=\#]:focus-visible,h5[id]:hover>a,h5[id]:focus-within>a,h5[id]>a[href^=\#]:focus-visible,h6[id]:hover>a,h6[id]:focus-within>a,h6[id]>a[href^=\#]:focus-visible{opacity:1}h1[id]>a[href^=\#]:hover,h2[id]>a[href^=\#]:hover,h3[id]>a[href^=\#]:hover,h4[id]>a[href^=\#]:hover,h5[id]>a[href^=\#]:hover,h6[id]>a[href^=\#]:hover{color:var(--red-ink)}h1[id]>a[href^=\#]:focus-visible,h2[id]>a[href^=\#]:focus-visible,h3[id]>a[href^=\#]:focus-visible,h4[id]>a[href^=\#]:focus-visible,h5[id]>a[href^=\#]:focus-visible,h6[id]>a[href^=\#]:focus-visible{outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-offset);border-radius:0}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}@media (prefers-reduced-motion:reduce){h1[id]>a[href^=\#],h2[id]>a[href^=\#],h3[id]>a[href^=\#],h4[id]>a[href^=\#],h5[id]>a[href^=\#],h6[id]>a[href^=\#]{transition: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);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);width:fit-content;color:var(--ink-2);border-radius:0;margin-bottom:-.5rem;padding:.1rem .5rem;font-size:.6875rem}figure[data-rehype-pretty-code-figure]>pre{padding:0}pre:has(>code){--lang-gutter:1.75rem;padding-top:var(--lang-gutter)}pre:has(>code)>code{padding-top:0}@media (hover:none),(pointer:coarse){pre:has(>code){--lang-gutter:2.75rem}}figure[data-rehype-pretty-code-figure]{--lang-gutter:1.75rem;--lang-offset:1rem}figure[data-rehype-pretty-code-figure]>pre{margin-top:var(--lang-offset);padding-top:var(--lang-gutter)}@media (hover:none),(pointer:coarse){figure[data-rehype-pretty-code-figure]{--lang-gutter:2.75rem}}pre{font-family:var(--codeFont);border:1px solid var(--line);background-color:var(--paper-2);border-radius:0;padding:0 .5rem;position:relative;overflow-x:auto}pre:has(>code.mermaid){background-color:#0000;border:none}pre>code{font-size:var(--n1-fs-sm,.8125rem);counter-reset:line;counter-increment:line 0;background:0 0;border:0;border-radius:0;padding:.5rem 0;display:grid;overflow-x:auto}pre>code [data-highlighted-chars]{background-color:var(--red-soft);border-radius:0}pre>code>[data-line]{box-sizing:border-box;border-left:2px solid #0000;padding:0 .25rem}pre>code>[data-line][data-highlighted-line]{border-left:2px solid var(--red);background-color:#c8102e1f}pre>code>[data-line]:before{content:counter(line);counter-increment:line;width:var(--ln-width);text-align:right;color:var(--ink-3);margin-right:1rem;display:inline-block}pre>code{--ln-width:1rem}pre>code[data-line-numbers-max-digits="2"]{--ln-width:2rem}pre>code[data-line-numbers-max-digits="3"]{--ln-width:3rem}html[data-code-wrap=on] pre,html[data-code-wrap=on] pre>code,html[data-code-wrap=on] pre>code>[data-line]{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}html[data-code-wrap=on] pre,html[data-code-wrap=on] pre>code{overflow-x:visible}html[data-code-wrap=on] pre>code>[data-line]{padding-left:calc(var(--ln-width) + 1.25rem);text-indent:calc(-1 * (var(--ln-width) + 1rem))}code{color:var(--ink);font-size:.875em;font-family:var(--codeFont);background:var(--paper-3);border:1px solid var(--line);border-radius:0;padding:.05rem .3rem}tbody,li,p{line-height:var(--leading-normal,1.7)}.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:1px solid var(--line-strong);padding:.4rem .7rem}td{padding:.2rem .7rem}tr{border-bottom:1px solid var(--line)}tr:last-child{border-bottom:none}img{border-radius:0;max-width:100%;margin:1rem 0}p>img+em{display:block;transform:translateY(-1rem)}hr{background-color:var(--line);border:none;width:100%;height:1px;margin:2rem auto}audio,video{border-radius:0;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:0;width:100%;height:100%}.navigation-progress{background:var(--red);z-index:9999;width:0;height:2px;transition:width .2s;position:fixed;top:0;left:0}body[data-slug=index] .center article>:where(p,blockquote,dl,h2,h3,h4,h5,h6){max-width:none}body[data-slug=index] .center article>*+*{margin-top:1.35rem}body[data-slug=index] .homepage-masthead{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,12rem) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,3.5vw,2.75rem);margin:.25rem 0 0;padding-bottom:2.25rem;display:grid}body[data-slug=index] .homepage-masthead-text{min-width:0}body[data-slug=index] .homepage-hero-image{margin:0;overflow:visible}body[data-slug=index] .center article .homepage-hero-image img{aspect-ratio:1080/1014;object-fit:contain;width:100%;max-width:16rem;height:auto;box-shadow:none;-webkit-mask-source-type:luminance;background:0 0;border:0;border-radius:0;display:block;-webkit-mask-image:url(./Files/Background.png);mask-image:url(./Files/Background.png);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-source-type:luminance;mask-mode:luminance}body[data-slug=index] .homepage-eyebrow{font-family:var(--mono);font-size:var(--t-sm);font-weight:500;line-height:var(--leading-tight);letter-spacing:.08em;text-transform:uppercase;color:var(--red-ink);align-items:center;gap:.85rem;margin:0 0 .85rem;display:flex}body[data-slug=index] .homepage-eyebrow:after{content:"";background:var(--line);flex:auto;min-width:1rem;height:1px}body[data-slug=index] .homepage-masthead-text>p:not(.homepage-eyebrow){font-size:var(--step-1);line-height:var(--leading-normal);color:var(--ink);text-wrap:pretty;margin:0}body[data-slug=index] .center article>p{font-size:var(--step-1);line-height:var(--leading-normal);color:var(--ink);text-wrap:pretty}body[data-slug=index] .homepage-masthead+p{margin-top:2rem}body[data-slug=index] .center article>.callout{background-color:var(--bg);border:1px solid var(--callout-edge);border-left:2px solid var(--border);border-radius:0;margin-top:2.25rem;padding:.35rem 1.25rem .35rem 1.4rem}body[data-slug=index] .center article>.callout .callout-title{font-size:var(--step-0);line-height:var(--leading-snug);letter-spacing:0;text-transform:none;color:var(--ink);padding:.5rem 0}body[data-slug=index] .center article>.callout .callout-title .callout-title-inner,body[data-slug=index] .center article>.callout .callout-title .callout-title-inner>p{color:var(--ink);font-weight:400}body[data-slug=index] .center article>.callout .callout-title .callout-icon{display:none}body[data-slug=index] .center article>.callout .callout-content p{color:var(--ink);margin:0}body[data-slug=index] .center article>h2{font-size:var(--step-2);color:var(--ink);border-bottom:1px solid var(--line);margin-top:3rem;margin-bottom:1rem;padding-bottom:.65rem}body[data-slug=index] .article-title{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}body[data-slug=index] .n1-hero{text-align:center;border-bottom:1px solid var(--line);flex-direction:column;align-items:center;margin-top:0;padding:clamp(.25rem,1.5vh,1rem) 0 clamp(1.75rem,4.5vh,2.75rem);display:flex;position:relative}body[data-slug=index] .n1-hero-mark{aspect-ratio:784/655;width:min(100%,clamp(12rem,40.6962vh,23rem));margin:0 auto;display:block;position:relative}body[data-slug=index] .center article>.n1-hero+p{margin-top:1.75rem}body[data-slug=index] .center article .n1-hero-mark img,body[data-slug=index] .center article .n1-hero-mark img:hover{aspect-ratio:784/655;object-fit:contain;width:100%;max-width:100%;height:auto;box-shadow:none;filter:none;background:0 0;border:0;border-radius:0;outline:0;margin:0;padding:0;display:block;position:relative;transform:none}@media (max-width:1200px){body[data-slug=index] .n1-hero-mark{width:min(100%,clamp(12rem,40.6962vh,21rem))}}body[data-slug=index] .homepage-hero-image,body[data-slug=index] .homepage-masthead-text,body[data-slug=index] .n1-hero,body[data-slug=index] .center article>:where(p,.callout,h2){animation:homepageFade var(--dur-slow) var(--ease-out) both}body[data-slug=index] .homepage-masthead-text{animation-delay:60ms}body[data-slug=index] .homepage-masthead+p,body[data-slug=index] .n1-hero+p{animation-delay:.11s}body[data-slug=index] .center article>.callout{animation-delay:.19s}body[data-slug=index] .center article>h2,body[data-slug=index] .center article>h2+p{animation-delay:.21s}@media (max-width:800px){body[data-slug=index] .homepage-masthead{text-align:center;grid-template-columns:minmax(0,1fr);justify-items:center;gap:1.5rem}body[data-slug=index] .center article .homepage-hero-image img{max-width:12rem;margin:0 auto}body[data-slug=index] .homepage-eyebrow{text-align:center;justify-content:center}body[data-slug=index] .homepage-eyebrow:after{display:none}body[data-slug=index] .homepage-masthead-text{text-align:left}body[data-slug=index] .n1-hero{padding:0 0 1.75rem}body[data-slug=index] .n1-hero-mark{width:min(84%,17rem)}body[data-slug=index] .center article>.n1-hero+p{margin-top:1.5rem}body[data-slug=index] .center article>p{font-size:var(--step-0)}}@keyframes homepageFade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){body[data-slug=index] .homepage-hero-image,body[data-slug=index] .homepage-masthead-text,body[data-slug=index] .n1-hero,body[data-slug=index] .center article>:where(p,.callout,h2){animation:none}}:root{--paper:var(--n1-ground,#0a0a0b);--paper-2:var(--n1-panel,#121214);--paper-3:var(--n1-raised,#1a1a1e);--ink:var(--n1-ink,#edeae6);--ink-2:var(--n1-ink-2,#edeae6a8);--ink-3:var(--n1-ink-3,#edeae66b);--line:var(--n1-line,#edeae629);--line-strong:var(--n1-line-strong,#edeae680);--dot:var(--n1-dot,#edeae614);--red:var(--n1-red,#c8102e);--red-ink:var(--n1-red-ink,#ff5a5f);--red-soft:var(--n1-red-soft,#c8102e1f);--display:var(--n1-display,"Michroma", ui-sans-serif, sans-serif);--mono:var(--n1-mono,"Geist Mono Variable", ui-monospace, monospace);--t-xs:var(--n1-fs-xs,.6875rem);--t-sm:var(--n1-fs-sm,.75rem);--gutter:var(--n1-gutter,clamp(1.25rem, .75rem + 2.5vw, 4.5rem));--frame:var(--n1-frame,min(100% - 2.5rem, 2400px));--bar-height:var(--n1-bar-h,64px);--ease:var(--n1-ease,cubic-bezier(.2, .7, .3, 1));--beat:var(--n1-beat,.32s);--surface-1:var(--paper-2);--surface-2:var(--paper-3);--surface-inset:var(--paper);--surface-hover:var(--paper-3);--border-subtle:var(--line);--border-default:var(--line);--border-strong:var(--line-strong);--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--radius-sm:0px;--radius-md:0px;--radius-lg:0px;--radius-pill:0px;--focus-color:var(--ink);--focus-width:2px;--focus-offset:3px;--panel:transparent;--panelBorder:var(--line);--panelShadow:none;--read-body:var(--n1-fs-body,.875rem);--step--2:var(--t-xs);--step--1:var(--t-sm);--step-0:var(--read-body);--step-1:var(--n1-fs-lead,1rem);--step-2:clamp(1.25rem, .71rem + .6vw, 2rem);--step-3:clamp(1.5rem, 1.15rem + 1.4vw, 2.4rem);--step-4:var(--n1-fs-h1,clamp(1.875rem, 1.25rem + 2.6vw, 3rem));--step-5:var(--n1-fs-display,clamp(2.25rem, 1rem + 4.4vw, 3.75rem));--leading-tight:1.25;--leading-snug:1.4;--leading-normal:1.72;--tracking-tight:.01em;--tracking-normal:0;--tracking-wide:.08em;--measure:var(--n1-read,84ch);--rail-w:clamp(16rem, 3rem + 15.5vw, 30rem);--rail-gap:clamp(1rem, -1rem + 2.5vw, 4rem);--read-w:calc(var(--n1-fs-body,.875rem) * 64);--graph-h:clamp(250px, calc(var(--rail-w) * .78), 400px)}html:root,html:root[saved-theme]{--light:var(--paper);--lightgray:var(--line);--gray:var(--ink-3);--darkgray:var(--ink);--dark:var(--ink);--secondary:var(--ink);--tertiary:var(--red-ink);--highlight:color-mix(in srgb, var(--red) 20%, transparent);--textHighlight:color-mix(in srgb, var(--red) 20%, transparent);--titleFont:var(--display);--headerFont:var(--display);--bodyFont:var(--mono);--codeFont:var(--mono)}html{background-color:var(--paper);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-padding-top:calc(var(--bar-height) + 1.5rem);font-size:100%}body{font-family:var(--mono);font-size:var(--step-0);line-height:var(--leading-normal);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;position:relative}body:before{content:"";z-index:-1;pointer-events:none;background-color:#070708;background-image:radial-gradient(120% 90% at 50% 40%,#0000 55%,#00000080 100%),radial-gradient(70% 55% at 0 0,#c8102e29,#0000 70%),radial-gradient(55% 45% at 100% 100%,#c8102e1a,#0000 70%);position:fixed;inset:0}.center article :where(p,li,tbody,td,th,dd){line-height:var(--leading-normal)}:is(.center article,.popover-inner,.preview-inner) :is(h1,h2,h3,h4,h5,h6){font-family:var(--mono);letter-spacing:0;color:var(--ink);text-wrap:balance;font-weight:500;line-height:1.3}.center article>h1{font-size:var(--step-3);margin:1.4em 0 .6em}.center article h2{font-size:var(--step-2);margin-top:1.75em;margin-bottom:.7em}.center article h3{font-size:var(--n1-fs-h3,1rem);margin-top:1.6em;margin-bottom:.6em}.center article h4{font-size:var(--step-1);margin-top:1.5em;margin-bottom:.6em}.center article :where(h5,h6){font-size:var(--read-body);margin-top:1.4em;margin-bottom:.5em}.center article h2{border-bottom:1px solid var(--line);padding-bottom:.5em}h1.article-title{font-family:var(--display);font-size:var(--step-4);font-weight:400;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--ink);text-wrap:balance;overflow-wrap:anywhere;margin:.35rem 0 .75rem}.center article{font-size:var(--step-0);color:var(--ink)}.center article :where(p,li,td,dd){color:color-mix(in srgb, var(--ink) 82%, transparent)}.center article li::marker{color:var(--ink-3)}.center article strong{color:var(--ink);font-weight:600}.center article blockquote:not(.callout){border-left:2px solid var(--line-strong);color:var(--ink-2);padding-left:1rem}.center article blockquote:not(.callout) :where(p,li){color:var(--ink-2)}.center article>:where(p,blockquote,dl,h3,h4,h5,h6){max-width:var(--measure)}.center article>:where(figure,pre,table,.table-container,.callout,img,video,iframe){max-width:100%}.center article :where(pre,figure,.table-container){min-width:0;max-width:100%;overflow-x:auto}.center article :where(ul,ol,li,blockquote,.callout,.callout-content){min-width:0}.center article table{border-collapse:collapse;width:max-content;max-width:100%;display:block;overflow-x:auto}.center article th,thead{font-family:var(--mono);font-size:var(--t-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-weight:500}.center article :where(img,video,iframe,svg){max-width:100%;height:auto}.center article{overflow-wrap:break-word;min-width:0}.center,.center>article{min-width:0;max-width:100%}.center article :where(ul,ol){padding-left:1.35rem}.center article li+li,.center article li>:where(ul,ol){margin-top:.3rem}.center article img{box-sizing:border-box;border:1px solid var(--line);border-radius:0}.center>hr{background-color:var(--line)}:where(.center article,.popover-inner,.preview-inner) a:where(:not([role=anchor]):not(.tag-link):not(.not-found-primary):not(.not-found-secondary)){color:var(--ink);text-underline-offset:.25em;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);overflow-wrap:anywhere;word-break:normal;-webkit-hyphens:none;hyphens:none}:where(.center article,.popover-inner,.preview-inner) a:where(:not([role=anchor]):not(.tag-link):not(.not-found-primary):not(.not-found-secondary)):hover{color:var(--red-ink);text-decoration-color:currentColor}:where(.center article,.popover-inner,.preview-inner) a.internal.broken{color:var(--ink-3);text-decoration-style:dotted;-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3)}:where(.center article,.popover-inner,.preview-inner) a.internal.broken:hover{color:var(--ink-2)}:root{--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-page:.52s;--dur-page-out:calc(var(--dur-page) / 2);--dur-page-in:.34s}#site-root{transition:opacity var(--dur-page-in) var(--ease-in-out);position:relative}html[data-nav=out] #site-root{opacity:0;transition-duration:var(--dur-page-out)}@media (prefers-reduced-motion:reduce){#site-root{transition:none!important}html[data-nav=out] #site-root{opacity:1}}.navigation-progress{background:var(--red)!important;height:2px!important;top:var(--bar-height)!important;transition:width var(--dur-slow) var(--ease-out), opacity var(--dur-base) var(--ease-out)!important}.page>#site-body{gap:1rem}.page>#site-body article{box-shadow:none;background:0 0;border:none;padding:.5rem 0 2.5rem}.page>#site-body .page-header,.page>#site-body>footer{box-shadow:none;background:0 0;border:none;padding:0 .25rem}.page>#site-body .sidebar.right>*{box-shadow:none;background:0 0;border:none;min-width:0;max-width:100%;padding:.35rem .25rem}.page>#site-body .sidebar.right :where(a,li,p,h3){overflow-wrap:anywhere;max-width:100%}.page>#site-body .sidebar.right .graph-outer,.page>#site-body .sidebar.right .graph-container{max-width:100%}.page>#site-body .sidebar.left>*{box-shadow:none;background:0 0;border:none;padding:.35rem .25rem}.page>#site-body .sidebar{top:var(--bar-height)}.page>#site-body .sidebar.left{z-index:40!important}:is(.page>#site-body .sidebar.left:has(.search-container.active),.page>#site-body .sidebar.right:has(.global-graph-outer.active)){z-index:100!important}@media (min-width:801px){.page>#site-body .sidebar{height:calc(100vh - var(--bar-height))}@supports (height:100dvh){.page>#site-body .sidebar{height:calc(100dvh - var(--bar-height))}}}@media (min-width:801px) and (max-width:1199px){.page>#site-body .page-header{margin-top:2rem}.page>#site-body .sidebar.left{padding-top:2rem}}@media (min-width:1200px){.page{max-width:100vw!important;margin:0!important}.page>#site-body{width:var(--frame);grid-template-columns:var(--rail-w) minmax(0, 1fr) var(--rail-w);column-gap:var(--rail-gap);margin:0 auto;padding-left:0!important;padding-right:0!important}.page>#site-body .sidebar.left{padding-top:2rem!important;padding-left:0!important;padding-right:1rem!important}.page>#site-body .sidebar.right{padding-top:2rem!important;padding-left:1rem!important;padding-right:0!important}.page>#site-body .sidebar.right>.n1-sponsor-rail{flex-shrink:0}.page>#site-body>.center{width:100%;min-width:0;max-width:var(--read-w);justify-self:center;margin-inline:auto}.page>#site-body .page-header{margin-top:2rem!important}}.page-title{font-family:var(--display)}.page-title a{color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:.35rem .6rem;text-decoration:none;display:inline-flex}.page-title-mark{font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;font-size:1.0625rem}.page-title-section{font-family:var(--mono);font-size:var(--t-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--red-ink);white-space:nowrap;font-weight:500}.page-title a:hover .page-title-mark{color:var(--ink-2)}.page>#site-body .sidebar.left>.flex-component{align-items:center;width:100%;padding:0;flex-wrap:nowrap!important;gap:.5rem!important;display:flex!important}.page>#site-body .sidebar.left>.flex-component>div{flex:none!important}.page>#site-body .sidebar.left>.flex-component>div:first-child{min-width:0;flex:auto!important}.page>#site-body .sidebar.left .search{width:100%;max-width:none}.page>#site-body .sidebar.left .search>.search-button{width:100%}.search>.search-button{border:1px solid var(--line);height:auto;min-height:2.5rem;transition:border-color var(--dur-base) var(--ease-out);background:0 0;border-radius:0;gap:.25rem;padding-right:.5rem}.search>.search-button:hover{border-color:var(--line-strong);background:0 0}.search>.search-button>p{font-family:var(--mono);font-size:var(--t-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-weight:500}.search>.search-button:hover>p{color:var(--ink)}.search>.search-button svg .search-path{stroke:var(--ink-2)}.search-kbd{font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-3);border:1px solid var(--line);background:0 0;border-radius:0;align-items:center;gap:.15rem;margin-left:auto;padding:.3rem .4rem;line-height:1;display:inline-flex}@media (max-width:800px){.search-kbd{display:none}}.page>#site-body .sidebar.left :where(.readermode,.pdf-export){border:1px solid var(--line);width:2.5rem;height:2.5rem;transition:border-color var(--dur-base) var(--ease-out)}.page>#site-body .sidebar.left :where(.readermode,.pdf-export) svg{color:var(--ink-2);fill:var(--ink-2);stroke:var(--ink-2);top:calc(50% - 10px);left:calc(50% - 10px)}.page>#site-body .sidebar.left :where(.readermode,.pdf-export):hover,.page>#site-body .sidebar.left :where(.readermode,.pdf-export):focus-visible{border-color:var(--line-strong)}.page>#site-body .sidebar.left .pdf-export svg{fill:none}.page>#site-body .sidebar.left .readermode:hover svg,.page>#site-body .sidebar.left .readermode:focus-visible svg{fill:var(--ink);stroke:var(--ink)}.page>#site-body .sidebar.left .pdf-export:hover svg,.page>#site-body .sidebar.left .pdf-export:focus-visible svg{color:var(--ink);stroke:var(--ink)}.left.sidebar{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.left.sidebar::-webkit-scrollbar{background:0 0;width:8px}.left.sidebar::-webkit-scrollbar-track{background:0 0}.left.sidebar::-webkit-scrollbar-thumb{background:var(--line);border-radius:0}.left.sidebar::-webkit-scrollbar-thumb:hover{background:var(--line-strong)}@media (min-width:801px){.page>#site-body .sidebar.left{gap:.75rem}.sidebar.left .explorer{flex:auto;min-height:0}.sidebar.left .explorer-content{height:100%;max-height:none;padding-right:.4rem}}.explorer-content ul li>a{font-family:var(--mono);font-size:var(--step--1);color:var(--ink-2);opacity:1;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border-left:2px solid #0000;border-radius:0;padding:.22rem .55rem .22rem .65rem;line-height:1.45;text-decoration:none;display:block}.explorer-content ul li>a:hover{color:var(--ink);background:var(--paper-3)}.explorer-content ul li>a.active{color:var(--ink);border-left-color:var(--red);background:#edeae60a;font-weight:500}.explorer-content .folder-outer>ul{border-left:1px solid var(--line);margin-left:.4rem;padding-left:.4rem}.folder-container div>a,.folder-container div>button>span,.explorer-content .folder-container>.folder-button>.folder-title{font-family:var(--mono);font-size:var(--t-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);font-weight:500;line-height:1.5rem;text-decoration:none}.folder-container div>a:hover,.folder-container div>button:hover>span{color:var(--red-ink)}.folder-icon{color:var(--ink-3);transition:transform var(--dur-slow) var(--ease-out), color var(--dur-fast) var(--ease-out)}.folder-container:hover .folder-icon,.folder-icon:hover,button.mobile-explorer{color:var(--ink)}.explorer .mobile-explorer .lucide-menu{stroke:var(--ink)}.page>#site-body .page-header header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.75rem;margin:0 0 1.25rem;padding-bottom:.9rem}.social-icons ul{gap:.35rem}.social-icons a{width:2rem;height:2rem;box-shadow:none;opacity:.66;transition:opacity var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);background:0 0;border:1px solid #0000;border-radius:0;justify-content:center;align-items:center;display:inline-flex}.social-icons a:hover,.social-icons a:focus-visible{opacity:1;border-color:var(--line)}.social-icons a img{width:1rem;height:1rem;margin:0;display:block;box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important}.breadcrumb-container{font-family:var(--mono);font-size:var(--t-sm);letter-spacing:.01em;color:var(--ink-3);gap:.15rem .5rem;margin:0 0 .5rem}.breadcrumb-element{flex-wrap:nowrap}.breadcrumb-element a{color:var(--ink-2);transition:color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);border-bottom:1px solid #0000;font-weight:400;text-decoration:none}.breadcrumb-element a:hover{color:var(--red-ink);border-bottom-color:var(--red-ink)}.breadcrumb-element p{color:var(--ink-3);font-size:var(--t-sm)}.tags{gap:.5rem}a.internal.tag-link{border:1px solid var(--line);font-family:var(--mono);font-size:var(--t-sm);letter-spacing:.02em;text-transform:none;color:var(--ink-2);white-space:nowrap;transition:border-color var(--dur-base) var(--ease-out), background-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);background-color:#0000;border-radius:0;align-items:center;margin:0;padding:.25rem .6rem;font-weight:400;line-height:1.4;text-decoration:none;display:inline-flex}a.internal.tag-link:hover{border-color:var(--line-strong);color:var(--red-ink);background-color:#c8102e24}.graph>h3,.backlinks>h3,button.toc-header h3,button.mobile-explorer h2,.recent-notes>h3{font-family:var(--mono);font-size:var(--t-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-weight:500}button.toc-header .fold{color:var(--ink-3)}.toc-content>li>a,.toc-content>li>a:hover,.toc-content>li>a:focus,.toc-content>li>a:active{text-decoration:none!important}.toc-content>li>a:hover{color:var(--ink)!important}.toc-content>li>a.in-view{border-left-color:var(--red);color:var(--ink)!important}@media (min-width:1200px){.page>#site-body .sidebar.right>.toc.desktop-only{box-sizing:border-box;border:1px solid var(--line);background:#12121466;min-height:6rem;padding:1.1rem 1.1rem 1.25rem}.page>#site-body .sidebar.right>.backlinks{flex-shrink:0;max-height:30%;display:flex}}@media (min-width:1200px) and (max-height:820px){:root{--graph-h:clamp(110px, calc(100vh - 620px), 250px)}}@media (min-width:1200px) and (max-height:760px){.page>#site-body .sidebar.right{gap:.85rem!important}.page>#site-body .sidebar.right .n1-sponsor--rail .n1-sponsor__media{max-height:clamp(64px,100vh - 648px,122px)}:root{--graph-h:clamp(90px, calc(100vh - 640px), 250px)}}.backlinks>ul.overflow>li>a{font-size:var(--step--1);color:var(--ink-2);text-decoration:none}.backlinks>ul.overflow>li>a:hover{color:var(--red-ink)}.backlinks>ul.overflow>li,.backlinks>p{color:var(--ink-3);font-size:var(--step--1)}.popover-hint>.toc.mobile-only{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:1rem;padding:.6rem 0}.page>#site-body .graph,.page>#site-body .graph-outer,.page>#site-body .graph-container,.page>#site-body .graph-container canvas{background:0 0!important}.page>#site-body .graph>.graph-outer{overflow:hidden;border:1px solid var(--line)!important;background:#12121466!important;border-radius:0!important}.page>#site-body .graph>.global-graph-outer{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0a0bb8;z-index:9999!important;width:100vw!important;height:100vh!important;position:fixed!important;inset:0!important}.page>#site-body .graph>.global-graph-outer>.global-graph-container{border:1px solid var(--line-strong);box-shadow:none;border-radius:0;width:min(92vw,1200px);height:min(84vh,900px);background:var(--paper-2)!important}.center article pre,.popover-inner pre,.preview-inner pre{background-color:var(--paper-2);border:1px solid var(--line);border-radius:0}.center article pre:has(>code.mermaid){background-color:#0000;border:none}.callout{background-color:var(--bg);border:0;border-left:2px solid var(--border);border-radius:0;padding:0 1.1rem}.callout .callout-title{color:var(--color);font-family:var(--mono);font-size:var(--t-sm);letter-spacing:.08em;text-transform:uppercase;--icon-size:14px;align-items:center;padding:.75rem 0}.callout .callout-title .callout-title-inner{font-weight:500}.callout .callout-title .callout-title-inner>p{color:var(--color)}.callout>.callout-content>:last-child{margin-bottom:.9rem}.search>.search-container{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0a0bb8}.search>.search-container.active{animation:paletteScrimIn var(--dur-base) var(--ease-out) both}.search>.search-container>.search-space{width:min(1500px,94vw);margin-top:10vh}.search>.search-container.active>.search-space{animation:paletteIn var(--dur-slow) var(--ease-out) both}@keyframes paletteScrimIn{0%{opacity:0}to{opacity:1}}@keyframes paletteIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.search>.search-container>.search-space>*{background:var(--paper-2)!important;border:1px solid var(--line-strong)!important;box-shadow:none!important;border-radius:0!important}.search>.search-container>.search-space>.search-bar{font-family:var(--mono);font-size:var(--step-1);color:var(--ink);padding:1rem 1.15rem}.search>.search-container>.search-space>.search-bar::placeholder{color:var(--ink-3)}.search>.search-container>.search-space>.search-bar:focus,.search>.search-container>.search-space>.search-bar:focus-visible{border-color:var(--ink)!important;outline:none!important}.search-layout[data-loading=true]:before{content:"Indexing notes";color:var(--ink-3);font-size:var(--t-sm);letter-spacing:.08em;text-transform:uppercase;padding:1.1rem 1.25rem;display:block}.search-layout[data-loading=true] .result-card{display:none}.search-layout .result-card{transition:background-color var(--dur-fast) var(--ease-out);border-radius:0;border-bottom:1px solid var(--line)!important;background:0 0!important;padding:.75rem .9rem!important}.search-layout .result-card>h3{font-family:var(--mono);font-size:var(--step--1);letter-spacing:0;color:var(--ink);font-weight:500;line-height:1.4}.search-layout .result-card>p{color:var(--ink-2);font-size:var(--step--1)}.search-layout .result-card:hover,.search-layout .result-card:focus,.search-layout .result-card.focus,.search-layout .result-card:focus-visible{background:var(--paper-3)!important}.search-layout .result-card.focus{box-shadow:inset 2px 0 0 var(--red)}.search-layout .highlight{color:var(--ink);background:var(--red-soft)!important;border-radius:0!important}.search-layout .result-card>ul.tags>li>p{border:1px solid var(--line);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)!important;background:0 0!important;border-radius:0!important;font-weight:500!important;line-height:1.2!important}.search-layout .result-card>ul.tags>li>p.match-tag{border-color:var(--red);color:var(--red-ink)!important}.search-layout>.preview-container{border-left:1px solid var(--line)}article :is(h1,h2,h3,h4,h5,h6)#nodes,article :is(h1,h2,h3,h4,h5,h6)[id$=-nodes],article :is(h1,h2,h3,h4,h5,h6)[id^=nodes-],article :is(h1,h2,h3,h4,h5,h6)#nodes+ul,article :is(h1,h2,h3,h4,h5,h6)[id$=-nodes]+ul,article :is(h1,h2,h3,h4,h5,h6)[id^=nodes-]+ul,article :is(h1,h2,h3,h4,h5,h6)#nodes+p,article :is(h1,h2,h3,h4,h5,h6)[id$=-nodes]+p,article :is(h1,h2,h3,h4,h5,h6)[id^=nodes-]+p,article :is(h1,h2,h3,h4,h5,h6)#nodes+p+ul,article :is(h1,h2,h3,h4,h5,h6)[id$=-nodes]+p+ul,article :is(h1,h2,h3,h4,h5,h6)[id^=nodes-]+p+ul,.popover .popover-inner :is(h1,h2,h3,h4,h5,h6)[id$=-nodes],.popover .popover-inner :is(h1,h2,h3,h4,h5,h6)[id$=-nodes]+ul,.popover .popover-inner :is(h1,h2,h3,h4,h5,h6)[id$=-nodes]+p,.popover .popover-inner :is(h1,h2,h3,h4,h5,h6)[id$=-nodes]+p+ul,article :is(h1,h2,h3,h4,h5,h6)#later-2-read,article :is(h1,h2,h3,h4,h5,h6)#later-2-read+ul,article :is(h1,h2,h3,h4,h5,h6)#later-2-read+p,article :is(h1,h2,h3,h4,h5,h6)#later-2-read+p+ul,.popover .popover-inner :is(h1,h2,h3,h4,h5,h6)[id$=-later-2-read],.popover .popover-inner :is(h1,h2,h3,h4,h5,h6)[id$=-later-2-read]+ul,.popover .popover-inner :is(h1,h2,h3,h4,h5,h6)[id$=-later-2-read]+p,.popover .popover-inner :is(h1,h2,h3,h4,h5,h6)[id$=-later-2-read]+p+ul,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)#nodes,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)[id$=-nodes],.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)[id^=nodes-],.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)#nodes+ul,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)[id$=-nodes]+ul,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)[id^=nodes-]+ul,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)#nodes+p,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)[id$=-nodes]+p,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)[id^=nodes-]+p,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)#nodes+p+ul,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)[id$=-nodes]+p+ul,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)[id^=nodes-]+p+ul,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)#later-2-read,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)[id$=-later-2-read],.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)#later-2-read+ul,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)[id$=-later-2-read]+ul,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)#later-2-read+p,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)[id$=-later-2-read]+p,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)#later-2-read+p+ul,.search .preview-container .preview-inner :is(h1,h2,h3,h4,h5,h6)[id$=-later-2-read]+p+ul{display:none!important}.page-listing>p{font-size:var(--t-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:2rem 0 0}ul.section-ul{margin-top:.75rem}li.section-li{border-top:1px solid var(--line);margin:0}li.section-li:last-child{border-bottom:1px solid var(--line)}ul.section-ul>li.section-li>.section{transition:background-color var(--dur-fast) var(--ease-out);background:0 0;border:0;border-radius:0;align-items:baseline;gap:0 1rem;padding:.85rem .35rem}ul.section-ul>li.section-li>.section:not(:has(>.meta)){grid-template-columns:minmax(0,1fr) auto}ul.section-ul>li.section-li>.section:hover{background:#edeae608}li.section-li>.section .meta{font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);opacity:1}li.section-li>.section>.desc>h3{font-family:var(--mono);font-size:var(--step--1);letter-spacing:0;font-weight:500;line-height:1.45}li.section-li>.section>.desc>h3>a{color:var(--ink);text-decoration:none}li.section-li>.section>.desc>h3>a:hover{color:var(--red-ink)}.not-found-shell{place-items:center;width:100%;min-height:min(70vh,48rem);padding:2rem 0 1rem;display:grid}.not-found-panel{box-sizing:border-box;border:1px solid var(--line-strong);width:min(100%,48rem);box-shadow:none;text-align:left;background:#0a0a0bb8;border-radius:0;padding:clamp(1.5rem,1rem + 2vw,2.75rem);position:relative;overflow:hidden}.not-found-kicker{font-family:var(--mono);font-size:var(--t-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--red-ink);align-items:center;gap:.6rem;margin:0;font-weight:500;display:flex}.not-found-kicker:before{content:"";background:var(--red);flex:none;width:.5rem;height:.5rem}.not-found-code{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;color:#edeae614;-webkit-text-stroke:1px var(--line-strong);overflow-wrap:anywhere;margin-top:1.25rem;font-size:clamp(2rem,.5rem + 9vw,5.5rem);line-height:1}.center article.not-found-shell .not-found-panel h1{font-family:var(--display);letter-spacing:var(--tracking-tight);max-width:none;margin:1.5rem 0 0;font-size:clamp(1.25rem,1rem + 1.2vw,1.75rem);font-weight:400;line-height:1.2}.not-found-copy,.not-found-subcopy{max-width:40rem;line-height:var(--leading-normal)}.center article .not-found-copy{font-size:var(--step-0);color:var(--ink);margin-top:1rem}.center article .not-found-subcopy{font-size:var(--step--1);color:var(--ink-2);margin-top:.6rem}.not-found-actions{flex-wrap:wrap;gap:.5rem;margin-top:1.75rem;display:flex}.not-found-panel :is(.not-found-primary,.not-found-secondary){box-sizing:border-box;border:1px solid var(--ink);min-height:2.75rem;font-family:var(--mono);font-size:var(--t-sm);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;cursor:pointer;box-shadow:none;transition:background-color var(--beat) var(--ease), color var(--beat) var(--ease);border-radius:0;justify-content:center;align-items:center;padding:0 1rem;font-weight:500;text-decoration:none;display:inline-flex}.not-found-panel .not-found-primary{background:var(--ink);color:var(--paper)}.not-found-panel .not-found-primary:hover,.not-found-panel .not-found-primary:focus-visible{background:var(--paper);color:var(--ink)}.not-found-panel .not-found-secondary{color:var(--ink);background:0 0}.not-found-panel .not-found-secondary:hover,.not-found-panel .not-found-secondary:focus-visible{background:var(--ink);color:var(--paper)}.center article .not-found-footnote{max-width:34rem;font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:1.25rem 0 0;line-height:1.6}@media (max-width:800px){.not-found-shell{min-height:auto;padding:1rem 0 .35rem}.not-found-actions{flex-direction:column}.not-found-panel :is(.not-found-primary,.not-found-secondary){width:100%}}.encrypted-note .encrypted-note-form{flex-wrap:wrap;align-items:stretch;gap:.5rem;margin:1.5rem 0 .5rem;display:flex}.encrypted-note .encrypted-note-form input[type=password]{box-sizing:border-box;border:1px solid var(--line-strong);background:var(--paper-2);min-width:0;max-width:22rem;min-height:2.75rem;color:var(--ink);font-family:var(--mono);font-size:var(--step--1);transition:border-color var(--dur-fast) var(--ease-out);border-radius:0;flex:14rem;padding:0 .9rem}.encrypted-note .encrypted-note-form input[type=password]::placeholder{color:var(--ink-3)}.encrypted-note .encrypted-note-form input[type=password]:hover{border-color:var(--ink)}.encrypted-note .encrypted-note-form input[type=password]:focus{border-color:var(--ink);outline:none}.encrypted-note .encrypted-note-form input[type=password]:focus-visible{outline:var(--focus-width) solid var(--focus-color)!important;outline-offset:2px!important}.encrypted-note .encrypted-note-status{min-height:1.2em;font-size:var(--t-sm);letter-spacing:.04em;color:var(--ink-2);margin:.5rem 0 0}.encrypted-note .encrypted-note-status[data-state=error]{color:var(--red-ink)}.encrypted-note .encrypted-note-status[data-state=info]{color:var(--ink-3)}@media (max-width:800px){.encrypted-note .encrypted-note-form input[type=password]{flex-basis:100%;max-width:none}}:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{border-radius:0;outline:var(--focus-width) solid var(--focus-color)!important;outline-offset:var(--focus-offset)!important}.search-button:focus-visible,.explorer-toggle:focus-visible,.folder-button:focus-visible{outline-offset:0!important}.skip-to-content{top:0;left:var(--gutter);z-index:10000;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:var(--t-sm);letter-spacing:.08em;text-transform:uppercase;box-shadow:none;transition:transform var(--dur-fast) var(--ease-out);border-radius:0;padding:.6rem 1rem;font-weight:500;text-decoration:none;position:fixed;transform:translateY(-120%)}.skip-to-content:focus,.skip-to-content:focus-visible{color:var(--paper);transform:translateY(0)}@media (max-width:800px){html{scroll-padding-top:calc(var(--bar-height) + 5rem)}.page>#site-body .sidebar{height:auto;padding:.75rem 1rem 1rem;position:static}.page>#site-body .sidebar.left:has(.explorer){top:var(--bar-height);background-color:var(--paper);border-bottom:1px solid var(--line);margin:0 -1rem;padding:.6rem 1rem;position:sticky;overflow:visible}.page>#site-body .sidebar.left .explorer .explorer-content{height:calc(100dvh - var(--bar-height));max-height:calc(100dvh - var(--bar-height));background-color:var(--paper)}.page>#site-body .page-header{margin-top:.75rem!important}.page>#site-body .page-header header{flex-wrap:nowrap;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem}.page>#site-body .page-header header .social-icons{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;flex:auto;justify-content:flex-end;width:auto;min-width:0;margin-left:0;display:flex;overflow-x:auto}.page>#site-body .page-header header .social-icons::-webkit-scrollbar{display:none}.page>#site-body .page-header header .social-icons>ul{scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:.1rem;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.page>#site-body .page-header header .social-icons>ul::-webkit-scrollbar{display:none}.page>#site-body .page-header header .social-icons>ul>li{flex:none;margin:0}.page>#site-body .page-header header .social-icons a{width:2.25rem;height:2.25rem}.page>#site-body article{padding:.75rem 0 2rem}.breadcrumb-container{font-size:var(--t-xs);letter-spacing:.04em;margin-bottom:.35rem;line-height:1.35}h1.article-title{margin-top:.15rem}.page>#site-body .sidebar.right{flex-direction:column;gap:1.25rem;padding-top:1.5rem}.page>#site-body .sidebar.right>*{box-sizing:border-box;width:100%;max-width:100%}.page>#site-body .graph .graph-outer{height:220px}.page-title-mark{font-size:.9375rem}.page>#site-body .sidebar.left:has(.explorer){gap:.5rem}.page>#site-body .sidebar.left:has(.explorer)>*{min-width:0;padding:0}.page>#site-body .sidebar.left>.flex-component{flex:0 auto;width:auto;gap:.35rem!important}.page>#site-body .sidebar.left .search{min-width:0}.page>#site-body .sidebar.left .search>.search-button{min-height:2.25rem}.page>#site-body .sidebar.left :where(.readermode,.pdf-export){width:2.25rem;height:2.25rem}}@media (max-width:480px){.page>#site-body .sidebar.left>.flex-component>div:first-child{flex:none!important}.page>#site-body .sidebar.left .search{width:auto}.page>#site-body .sidebar.left .search>.search-button{justify-content:center;width:2.25rem;min-width:2.25rem;height:2.25rem;padding:0}.page>#site-body .sidebar.left .search>.search-button svg{margin:0}.page>#site-body .sidebar.left .search>.search-button>p{display:none}}@media (max-width:360px){.page-title a{flex-direction:column;align-items:flex-start;gap:.2rem}.page-title-mark{letter-spacing:.06em;font-size:.875rem}.page>#site-body .sidebar.left:has(.explorer){gap:.25rem}.page>#site-body .sidebar.left>.flex-component{gap:.25rem!important}}@supports (height:100dvh){.page>#site-body .graph>.global-graph-outer{height:100dvh!important}.explorer-content{max-height:100dvh}}@media (max-width:1199px){.toc.desktop-only{display:none}.toc.mobile-only{display:flex}}@media (min-width:1200px){.toc.mobile-only{display:none}.toc.desktop-only{display:flex}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.pdf-cover{display:none}:root{--light:#0a0a0b;--lightgray:#edeae629;--gray:#edeae66b;--darkgray:#edeae6;--dark:#edeae6;--secondary:#edeae6;--tertiary:#ff5a5f;--highlight:#c8102e33;--textHighlight:#c8102e33;--titleFont:"Michroma", system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--headerFont:"Michroma", system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bodyFont:"Geist Mono", system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--codeFont:"Geist Mono", ui-monospace, SFMono-Regular, SF Mono, Menlo, monospace}:root[saved-theme=dark]{--light:#0a0a0b;--lightgray:#edeae629;--gray:#edeae66b;--darkgray:#edeae6;--dark:#edeae6;--secondary:#edeae6;--tertiary:#ff5a5f;--highlight:#c8102e33;--textHighlight:#c8102e33}