calc *,:before,:after{box-sizing:border-box}*{margin:0}body{line-height:1.6}@media (prefers-reduced-motion:no-preference){html{interpolate-size:allow-keywords}}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}#root,#__next{isolation:isolate}@font-face{font-family:sans;src:url(/assets/fonts/gs.woff2)format("woff2");font-style:normal;font-display:swap}:root{--font-sm:13.5px;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--scrollbar-color)var(--scrollbar-bg-color);--primary-color:#000;--secondary-color:#1f1f1f;--bg-color:#eee;--bg-color-secondary:#e7e7e7;--bg-color-secondary-hover:#ddd;--border-color:#dad6d5;--outline-color:#ffffff80;--code-primary:#000;--code-highlight-1:#222;--code-highlight-2:#474747;--scrollbar-color:#a8a8a8;--scrollbar-bg-color:#00f0;--serif:"Iowan Old Style","Palatino Linotype","URW Palladio L",P052,serif;--sans:sans,Roboto,"Helvetica Neue","Arial Nova","Nimbus Sans",Arial,sans-serif;--mono:"SF Mono","Cascadia Mono","Cascadia Mono","Roboto Mono",Consolas,"Ubuntu Sans Mono","Adwaita Mono","Noto Sans Mono",monospace;--red:#ff4000cf;--green:#32a852;font-size:16px}.shiki,.shiki span{background-color:var(--bg-color-secondary)!important}@media (prefers-color-scheme:dark){:root{--primary-color:#fff;--secondary-color:#9f9fa9;--bg-color:#141313;--bg-color-secondary:#232121;--bg-color-secondary-hover:#2e2d2d;--border-color:#444342;--outline-color:#000;--code-highlight-1:#a7a7a7;--code-highlight-2:#868686;--code-primary:#f2f2f2;--scrollbar-color:#454545;--red:#fc3a3a;--green:#44cc68}.shiki,.shiki span{color:var(--shiki-dark)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}}pre.has-line-numbers code{counter-reset:step var(--start,0);counter-increment:step 0}pre.has-line-numbers code .line:before{content:counter(step);counter-increment:step;text-align:right;color:#738a9466;width:1rem;margin-right:1rem;display:inline-block}@media (prefers-reduced-motion){:root{scroll-behavior:auto}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}html{text-wrap:pretty;scrollbar-gutter:stable;text-rendering:optimizeLegibility;background-color:var(--bg-color);color:var(--secondary-color);font-family:var(--sans);scroll-padding-top:1.5rem}body{--gap:clamp(3rem,5vw,5rem);min-height:100vh;padding:clamp(2rem,5vw,8rem)}.main{min-height:inherit;align-items:start;width:100%;max-width:1337px;margin-bottom:5em;display:flex}.prose-w{width:100%;max-width:65ch}.main-content{border-left:1px solid var(--border-color);width:85%;min-height:100vh;padding-left:var(--gap);flex-grow:1}.main-nav{padding-right:var(--gap);flex-flow:column wrap;justify-content:start;align-items:end;gap:.6rem;display:flex;position:sticky;top:clamp(2rem,5vw,8rem)}img,video{cursor:zoom-in;border-radius:10px;width:100%;margin:1em 0}.mono{font-family:var(--mono);text-transform:uppercase}.git-nav{margin:.85rem 0 .85rem -.25rem}.git-nav a,.main-nav a{border-radius:.425rem;padding:.125rem .375rem}a{color:inherit;text-decoration:none}a:hover,.current{color:var(--primary-color);background-color:var(--bg-color-secondary-hover)}.list-item a,.list-item{justify-content:center;align-items:center;gap:0 5px;display:flex}.list-item:focus-visible,a:focus-visible{background-color:var(--bg-color-secondary)}.header h1{color:var(--primary-color);margin-top:0;margin-bottom:.25rem;font-weight:600;font-size:1.15rem!important}.list{flex-direction:column;gap:1em 0;width:100%;max-width:65ch;display:flex}.list>a{border-radius:.425rem;align-items:center;margin:0 -.375rem;padding:.125rem .375rem;display:flex}.git-file{display:contents}.git-file svg{margin-right:5px}.list,.content{padding-top:2em}.gist{max-width:100%;padding-top:0}.list-item-divider{border-top:1px solid var(--border-color);flex-grow:1;height:0;margin:0 10px;max-width:100%!important}.list-divider{text-align:center;border:0;height:1.5em;margin-top:4rem;position:relative}.list-divider:before{content:"";background:linear-gradient(to right,transparent,var(--border-color),transparent);width:100%;height:1px;position:absolute;top:50%;left:0}.list-divider:after{background-color:var(--bg-color);content:attr(data-content);padding:0 7px;position:relative}hr{border:0;border-top:1px solid var(--border-color);margin:2rem 0}code{font-family:var(--mono)}pre{font-size:var(--font-sm)}.highlight,.content>pre{font-family:var(--mono);color:var(--code-primary);border:1px solid var(--border-color);background-color:var(--bg-color-secondary);border-radius:.5rem;margin-top:1em;padding:.45em .5em;overflow-x:auto}.content p>code,.content p a>code,.content p strong>code,.content p em>code{background-color:var(--bg-color-secondary-hover);border-radius:.25em;font-size:.95em}.gallery{gap:20px}.gallery img,video{border-radius:10px;width:100%;margin:0 0 20px;display:block}.gallery-caption{text-align:center;font-size:var(--font-sm);margin:1em 0;display:block}footer{font-family:var(--mono);font-size:var(--font-sm);padding:1rem;position:absolute;right:0}strong,b{color:var(--primary-color);font-weight:600}time{font-family:var(--mono)}.sidenote{float:right;word-break:normal;overflow-wrap:normal;border-radius:8px;width:14rem;margin-top:-.9em;margin-right:-16rem;padding:.55em 0;font-size:.9em}.sidenote :first-child{margin-top:0}.sidenote>img{border-radius:5px}.content h1,h2{color:var(--primary-color);margin-top:1.8em;margin-bottom:.8em;font-size:1.125rem;font-weight:500}.content h3{color:var(--primary-color);margin-top:1.7em;margin-bottom:.4em;font-size:1.05rem;font-weight:500}.content h4,.content h5,.content h6{color:var(--primary-color);margin:1.65em 0 .5em;font-size:1rem;font-weight:500}.content>p{margin-top:1.25em}.content a{border-radius:.325rem;margin:.125rem -.075rem;padding:.125rem .075rem;text-decoration:underline}.content a:hover{color:var(--primary-color)}.content table{border:1px solid var(--border-color);border-collapse:separate;font-family:var(--mono);border-spacing:0;text-align:left;border-radius:8px;width:100%;margin:2em 0 4em;font-size:.88rem;font-weight:500;position:relative;overflow:hidden}.content td,th{border:.5px solid var(--border-color);padding:.25rem .5rem}.content thead{background-color:var(--bg-color-secondary);font-weight:700}tfoot{border-block:0 solid}.content table tr:first-child th{border-top:0 solid}.content:not(:has(th)) tr:first-child td{border-top:0}.content table tr:last-child td{border-bottom:0}.content table tr td:first-child,.content table tr th:first-child{border-left:0}.content table tr td:last-child,.content table tr th:last-child{border-right:0}.toc{place-self:start;margin-left:-.5rem;padding-top:2em}.toc+*{padding-top:2em}.toc span{font-size:.9em;font-weight:500}.toc ul{text-align:left;padding:0;list-style:none}.toc a{vertical-align:middle;word-wrap:break-word;border:1px solid #0000;border-radius:7px;align-content:end;margin:5px;padding:3.5px 5.5px;font-size:.9rem;display:inline-flex;position:relative}.content>:first-child{margin-top:0}.content>figure{margin:0 auto 2em}figcaption{color:var(--secondary-color);font-style:italic}.overlay{z-index:1;pointer-events:auto;backdrop-filter:blur(.25rem);background:#00000040;justify-content:center;align-items:center;width:100vw;height:100vh;transition:backdrop-filter 10s ease-in-out;display:flex;position:fixed;top:0;left:0;overflow:hidden}.content ul{list-style:outside}.content ol{list-style:decimal}.content ol,.content ul{padding:0;margin:1.25em 0;padding-inline-start:1.5em}.content li{word-break:break-word}.content li>p{margin:0}.content li{color:var(--secondary-color);margin-bottom:.45em;padding-left:.35em}.headerAnchor{border-radius:7px;color:var(--primary-color)!important;text-decoration:none!important}.headerAnchor:hover:after{content:"#";color:var(--primary-color);margin-left:10px;position:absolute}.content blockquote{font-family:var(--serif);border-left:1px solid var(--border-color);margin:1em 0 2em;padding:0 0 0 1rem;font-size:.9rem;font-style:italic}.endnote-ref-link,.footnotes{display:none}.content h1+*,.content h2+*,.content h3+*,.content h4+*,.content h5+*,.content h6+*,.commit-msg p{margin:0}.commit-meta{grid-template-rows:1fr 1fr;grid-template-columns:3fr 1fr;grid-auto-flow:column;display:grid}.commit-meta pre{overflow-x:auto}.commit-meta p{margin:0}.commit-meta span{text-align:right}.FileHeader{font-size:14px;font-family:var(--mono);background-color:var(--bg-color-secondary);flex-direction:row;justify-content:space-between;align-items:center;font-weight:500;display:flex;border:1px solid var(--border-color)!important;border-bottom:0!important;border-radius:8px 8px 0 0!important;margin:0!important;padding:.25em .75em!important;text-decoration:none!important}.FileHeader h4{margin:0;font-size:.9em;font-weight:600}.FileHeader+pre{border-radius:0 0 8px 8px;margin-top:0;margin-bottom:1em}.i{color:var(--green)!important}.d{color:var(--red)!important}@media (width<=75rem){.main-content{width:85%}.gallery{columns:2 auto!important}.sidenote-ref-link{display:none}.endnote-ref-link{display:inline}.footnotes{display:block}.sidenote{display:none}}@media (width<=55rem){:root{--font-sm:12px;scroll-padding-top:5.5rem;font-size:14px}.main{margin-top:calc(var(--gap) + 2rem);flex-direction:column}.main-content{border-left:0;width:100%;padding-left:0}.prose-w{max-width:fit-content}.main-nav{z-index:1;background:var(--bg-color);backdrop-filter:blur(1rem);width:100%;-webkit-mask-image:linear-gradient(to bottom,var(--bg-color)85%,transparent 100%);mask-image:linear-gradient(to bottom,var(--bg-color)85%,transparent 100%);flex-direction:row;align-items:center;margin-bottom:5rem;margin-left:-.5rem;padding-top:15px;padding-bottom:20px;position:fixed;top:0}.commit-meta{grid-template-rows:1fr 1fr 1.5em 1.5em;grid-template-columns:100%;grid-auto-flow:column;gap:5px}.commit-meta span{text-align:left}}