[id=menu]{position:fixed;display:flex;pointer-events:all;flex-direction:column;z-index:2000;right:0;background:var(--bg-page-body);top:0;max-width:300px;filter:drop-shadow(2px 2px 1.5rem rgba(0,0,0,.5))}[id=menu] .menu__heading{color:var(--fg-text-heading);font-feature-settings:"smcp";font-variant:small-caps;margin:0;font-size:2rem;padding:5px 0 0 8px;width:60%}[id=menu] .menu__close{position:absolute;color:var(--fg-menu-button);right:1rem;top:1.32rem;z-index:3000}body:has(.menu-portal) .page{filter:blur(1px);pointer-events:none}.menu-portal{margin:0;height:100vh;padding:1.5rem 0 1rem 1rem;width:min(100vw - 1rem - 3px,500px)}.menu-button{font-size:2.25rem;color:var(--fg-menu-button);padding-right:.5rem;display:flex;flex-direction:row;justify-content:center;align-items:center}.menu-button>i{display:block}.post-stats-short{list-style:none;display:flex;flex-direction:row;justify-content:flex-start;align-items:center;color:var(--fg-stats-line)}.post-stats-short,.post-stats-short li:not(:last-child){margin:0;padding:0}.post-stats-short li:not(:last-child):after{content:"•";margin-left:.5rem;margin-right:.5rem}.post-item{font-size:.9rem;transition:.2s;padding-left:5px;filter:brightness(.5) saturate(.7);border-left:3px solid transparent}.post-item:hover{filter:none;transition:.2s;border-left:3px solid var(--series-color)}.post-item__content{display:grid;grid-template-areas:"title title" "series info";grid-template-columns:1fr 4fr;align-items:center;justify-items:stretch}.post-item__title{grid-area:title;font-size:1.1em;overflow:hidden;color:var(--series-color);margin:0;padding:0}.post-item__stats{grid-area:info;display:flex;flex-direction:row;justify-content:space-between;align-items:center;justify-self:end;font-size:1em}.post-item__series{grid-area:series;font-size:1.2em}.post-item-grid{margin:0;padding:0;display:grid;grid-gap:1em;list-style:none}@media(max-width:1278px){.post-item-grid{grid-template-columns:1fr!important}}.post-item-grid .post-item{filter:brightness(.5) saturate(.7);border-left:3px solid transparent;margin-top:1rem}.post-item-grid .post-item:hover{filter:none;transition:.2s;border-left:3px solid var(--series-color)}.post-stats-long{list-style:none;display:flex;flex-direction:row;justify-content:flex-start;align-items:center;color:var(--fg-stats-line)}.post-stats-long,.post-stats-long li:not(:last-child){margin:0;padding:0}.post-stats-long li:not(:last-child):after{content:"•";margin-left:.5rem;margin-right:.5rem}.series-link{color:var(--series-color);font-weight:700;font-feature-settings:"smcp";font-variant:small-caps;letter-spacing:.03em}[data-heading-id]{margin-top:3em}.prose{font-size:var(--font-size-readable)}.prose math[display=block]{display:block;padding-top:1em;padding-bottom:1em;overflow:auto}.prose math[display=block] mfrac,.prose math[display=block] mo,.prose math[display=block] mtext{padding-left:.1em;padding-right:.1em}.prose math[display=block]:has(annotation[data-style=hidden]){height:0;overflow:hidden;padding:0!important}.prose math:not([display=block]){font-size:var(--font-size-math);padding-left:.05rem;padding-right:.05rem}.prose math:not([display=block]):has(annotation[data-style=hidden]){height:0;overflow:hidden;padding:0!important}.prose .katex:has(math[display=block]){display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%}.prose h1{padding:0;margin:0;font-size:2.4em}.prose h1>a{color:var(--fg-text-heading)}.prose h1 i{margin-left:-25px;padding-right:8px;visibility:hidden}.prose h1:hover i{visibility:visible}.prose h2{padding:0;margin:0;font-size:2.1em}.prose h2>a{color:var(--fg-text-heading)}.prose h2 i{margin-left:-25px;padding-right:8px;visibility:hidden}.prose h2:hover i{visibility:visible}.prose h3{padding:0;margin:0;font-size:1.8em}.prose h3>a{color:var(--fg-text-heading)}.prose h3 i{margin-left:-25px;padding-right:8px;visibility:hidden}.prose h3:hover i{visibility:visible}.prose h4{padding:0;margin:0;font-size:1.5em}.prose h4>a{color:var(--fg-text-heading)}.prose h4 i{margin-left:-25px;padding-right:8px;visibility:hidden}.prose h4:hover i{visibility:visible}.prose h5{padding:0;margin:0;font-size:1.2em}.prose h5>a{color:var(--fg-text-heading)}.prose h5 i{margin-left:-25px;padding-right:8px;visibility:hidden}.prose h5:hover i{visibility:visible}.prose h6{padding:0;margin:0;font-size:.9em}.prose h6>a{color:var(--fg-text-heading)}.prose h6 i{margin-left:-25px;padding-right:8px;visibility:hidden}.prose h6:hover i{visibility:visible}.prose h2{border-bottom:3px solid #fff}.prose .canva-image{width:100%;padding-top:2rem;padding-bottom:2rem;overflow-x:auto}@supports selector(::-webkit-scrollbar){.prose .canva-image::-webkit-scrollbar{width:8px;height:8px}.prose .canva-image::-webkit-scrollbar-thumb,.prose .canva-image::-webkit-scrollbar-track{background:transparent;border-radius:10px}.prose .canva-image:hover::-webkit-scrollbar-track{background:var(--bg-page-header)}.prose .canva-image:hover::-webkit-scrollbar-thumb{background:var(--series-color)}}@supports not selector(::-webkit-scrollbar){.prose .canva-image{scrollbar-width:none}.prose .canva-image:hover{scrollbar-width:thin;scrollbar-color:var(--series-color) var(--bg-page-header)}}.prose img{margin:auto;display:block}.prose ul{padding-left:2em}.prose p{margin:0;padding:0;line-height:1.4;font-size:1.3rem}.prose p strong,.prose p strong code{font-weight:700}.prose p em,.prose p em code{font-style:italic}.prose p code{padding:2px 4px;font-size:.9em;color:#d1d1fe;font-family:var(--fira-code);font-weight:450;font-feature-settings:none;font-variant-ligatures:none;line-height:1.45;text-underline-position:under;text-decoration-thickness:5px;text-underline-offset:.5px}.prose p a{page-break-before:always;break-before:always;word-break:keep-all;text-decoration:underline;text-decoration-thickness:.07em;color:#feb031;margin:0;padding:0}.prose p a:has(code){padding:2px 4px}.prose p a:hover,.prose p a:hover code,.prose p a:hover em,.prose p a:hover strong{color:#9aacf6}.prose p a:visited,.prose p a:visited code,.prose p a:visited em,.prose p a:visited strong{color:#e9c58b}.prose p a:hover:visited,.prose p a:hover:visited code,.prose p a:hover:visited em,.prose p a:hover:visited strong{color:#9aacf6}.prose p a code,.prose p a em,.prose p a strong{color:#feb031;margin:0;padding:0}.prose p a code:hover,.prose p a code:hover code,.prose p a code:hover em,.prose p a code:hover strong,.prose p a em:hover,.prose p a em:hover code,.prose p a em:hover em,.prose p a em:hover strong,.prose p a strong:hover,.prose p a strong:hover code,.prose p a strong:hover em,.prose p a strong:hover strong{color:#9aacf6}.prose p a code:visited,.prose p a code:visited code,.prose p a code:visited em,.prose p a code:visited strong,.prose p a em:visited,.prose p a em:visited code,.prose p a em:visited em,.prose p a em:visited strong,.prose p a strong:visited,.prose p a strong:visited code,.prose p a strong:visited em,.prose p a strong:visited strong{color:#e9c58b}.prose p a code:hover:visited,.prose p a code:hover:visited code,.prose p a code:hover:visited em,.prose p a code:hover:visited strong,.prose p a em:hover:visited,.prose p a em:hover:visited code,.prose p a em:hover:visited em,.prose p a em:hover:visited strong,.prose p a strong:hover:visited,.prose p a strong:hover:visited code,.prose p a strong:hover:visited em,.prose p a strong:hover:visited strong{color:#9aacf6}.prose p a[href^="//"],.prose p a[href^=http]{page-break-before:always;break-before:always;word-break:keep-all;text-decoration:underline;text-decoration-thickness:.07em;color:#feb031;margin:0;padding:0}.prose p a[href^="//"]:has(code),.prose p a[href^=http]:has(code){padding:2px 4px}.prose p a[href^="//"]:hover,.prose p a[href^="//"]:hover code,.prose p a[href^="//"]:hover em,.prose p a[href^="//"]:hover strong,.prose p a[href^=http]:hover,.prose p a[href^=http]:hover code,.prose p a[href^=http]:hover em,.prose p a[href^=http]:hover strong{color:#9aacf6}.prose p a[href^="//"]:visited,.prose p a[href^="//"]:visited code,.prose p a[href^="//"]:visited em,.prose p a[href^="//"]:visited strong,.prose p a[href^=http]:visited,.prose p a[href^=http]:visited code,.prose p a[href^=http]:visited em,.prose p a[href^=http]:visited strong{color:#e9c58b}.prose p a[href^="//"]:hover:visited,.prose p a[href^="//"]:hover:visited code,.prose p a[href^="//"]:hover:visited em,.prose p a[href^="//"]:hover:visited strong,.prose p a[href^=http]:hover:visited,.prose p a[href^=http]:hover:visited code,.prose p a[href^=http]:hover:visited em,.prose p a[href^=http]:hover:visited strong{color:#9aacf6}.prose p a[href^="//"] code,.prose p a[href^="//"] em,.prose p a[href^="//"] strong,.prose p a[href^=http] code,.prose p a[href^=http] em,.prose p a[href^=http] strong{color:#feb031;margin:0;padding:0}.prose p a[href^="//"] code:hover,.prose p a[href^="//"] code:hover code,.prose p a[href^="//"] code:hover em,.prose p a[href^="//"] code:hover strong,.prose p a[href^="//"] em:hover,.prose p a[href^="//"] em:hover code,.prose p a[href^="//"] em:hover em,.prose p a[href^="//"] em:hover strong,.prose p a[href^="//"] strong:hover,.prose p a[href^="//"] strong:hover code,.prose p a[href^="//"] strong:hover em,.prose p a[href^="//"] strong:hover strong,.prose p a[href^=http] code:hover,.prose p a[href^=http] code:hover code,.prose p a[href^=http] code:hover em,.prose p a[href^=http] code:hover strong,.prose p a[href^=http] em:hover,.prose p a[href^=http] em:hover code,.prose p a[href^=http] em:hover em,.prose p a[href^=http] em:hover strong,.prose p a[href^=http] strong:hover,.prose p a[href^=http] strong:hover code,.prose p a[href^=http] strong:hover em,.prose p a[href^=http] strong:hover strong{color:#9aacf6}.prose p a[href^="//"] code:visited,.prose p a[href^="//"] code:visited code,.prose p a[href^="//"] code:visited em,.prose p a[href^="//"] code:visited strong,.prose p a[href^="//"] em:visited,.prose p a[href^="//"] em:visited code,.prose p a[href^="//"] em:visited em,.prose p a[href^="//"] em:visited strong,.prose p a[href^="//"] strong:visited,.prose p a[href^="//"] strong:visited code,.prose p a[href^="//"] strong:visited em,.prose p a[href^="//"] strong:visited strong,.prose p a[href^=http] code:visited,.prose p a[href^=http] code:visited code,.prose p a[href^=http] code:visited em,.prose p a[href^=http] code:visited strong,.prose p a[href^=http] em:visited,.prose p a[href^=http] em:visited code,.prose p a[href^=http] em:visited em,.prose p a[href^=http] em:visited strong,.prose p a[href^=http] strong:visited,.prose p a[href^=http] strong:visited code,.prose p a[href^=http] strong:visited em,.prose p a[href^=http] strong:visited strong{color:#e9c58b}.prose p a[href^="//"] code:hover:visited,.prose p a[href^="//"] code:hover:visited code,.prose p a[href^="//"] code:hover:visited em,.prose p a[href^="//"] code:hover:visited strong,.prose p a[href^="//"] em:hover:visited,.prose p a[href^="//"] em:hover:visited code,.prose p a[href^="//"] em:hover:visited em,.prose p a[href^="//"] em:hover:visited strong,.prose p a[href^="//"] strong:hover:visited,.prose p a[href^="//"] strong:hover:visited code,.prose p a[href^="//"] strong:hover:visited em,.prose p a[href^="//"] strong:hover:visited strong,.prose p a[href^=http] code:hover:visited,.prose p a[href^=http] code:hover:visited code,.prose p a[href^=http] code:hover:visited em,.prose p a[href^=http] code:hover:visited strong,.prose p a[href^=http] em:hover:visited,.prose p a[href^=http] em:hover:visited code,.prose p a[href^=http] em:hover:visited em,.prose p a[href^=http] em:hover:visited strong,.prose p a[href^=http] strong:hover:visited,.prose p a[href^=http] strong:hover:visited code,.prose p a[href^=http] strong:hover:visited em,.prose p a[href^=http] strong:hover:visited strong{color:#9aacf6}.prose p a[href^="//"]:after,.prose p a[href^=http]:after{content:"";font-family:boxicons!important;font-weight:400;font-style:normal;font-feature-settings:normal;font-variant:normal;line-height:1;text-rendering:auto;text-transform:none;font-size:.85em;color:#d1d1d1;text-decoration:none;display:inline-block}.prose p a[href^="//"]:hover:after,.prose p a[href^=http]:hover:after{color:#9aacf6}.prose blockquote strong,.prose blockquote strong code{font-weight:700}.prose blockquote em,.prose blockquote em code{font-style:italic}.prose blockquote code{padding:2px 4px;font-size:.9em;color:#d1d1fe;font-family:var(--fira-code);font-weight:450;font-feature-settings:none;font-variant-ligatures:none;line-height:1.45;text-underline-position:under;text-decoration-thickness:5px;text-underline-offset:.5px}.prose blockquote a{page-break-before:always;break-before:always;word-break:keep-all;text-decoration:underline;text-decoration-thickness:.07em;color:#feb031;margin:0;padding:0}.prose blockquote a:has(code){padding:2px 4px}.prose blockquote a:hover,.prose blockquote a:hover code,.prose blockquote a:hover em,.prose blockquote a:hover strong{color:#9aacf6}.prose blockquote a:visited,.prose blockquote a:visited code,.prose blockquote a:visited em,.prose blockquote a:visited strong{color:#e9c58b}.prose blockquote a:hover:visited,.prose blockquote a:hover:visited code,.prose blockquote a:hover:visited em,.prose blockquote a:hover:visited strong{color:#9aacf6}.prose blockquote a code,.prose blockquote a em,.prose blockquote a strong{color:#feb031;margin:0;padding:0}.prose blockquote a code:hover,.prose blockquote a code:hover code,.prose blockquote a code:hover em,.prose blockquote a code:hover strong,.prose blockquote a em:hover,.prose blockquote a em:hover code,.prose blockquote a em:hover em,.prose blockquote a em:hover strong,.prose blockquote a strong:hover,.prose blockquote a strong:hover code,.prose blockquote a strong:hover em,.prose blockquote a strong:hover strong{color:#9aacf6}.prose blockquote a code:visited,.prose blockquote a code:visited code,.prose blockquote a code:visited em,.prose blockquote a code:visited strong,.prose blockquote a em:visited,.prose blockquote a em:visited code,.prose blockquote a em:visited em,.prose blockquote a em:visited strong,.prose blockquote a strong:visited,.prose blockquote a strong:visited code,.prose blockquote a strong:visited em,.prose blockquote a strong:visited strong{color:#e9c58b}.prose blockquote a code:hover:visited,.prose blockquote a code:hover:visited code,.prose blockquote a code:hover:visited em,.prose blockquote a code:hover:visited strong,.prose blockquote a em:hover:visited,.prose blockquote a em:hover:visited code,.prose blockquote a em:hover:visited em,.prose blockquote a em:hover:visited strong,.prose blockquote a strong:hover:visited,.prose blockquote a strong:hover:visited code,.prose blockquote a strong:hover:visited em,.prose blockquote a strong:hover:visited strong{color:#9aacf6}.prose blockquote a[href^="//"],.prose blockquote a[href^=http]{page-break-before:always;break-before:always;word-break:keep-all;text-decoration:underline;text-decoration-thickness:.07em;color:#feb031;margin:0;padding:0}.prose blockquote a[href^="//"]:has(code),.prose blockquote a[href^=http]:has(code){padding:2px 4px}.prose blockquote a[href^="//"]:hover,.prose blockquote a[href^="//"]:hover code,.prose blockquote a[href^="//"]:hover em,.prose blockquote a[href^="//"]:hover strong,.prose blockquote a[href^=http]:hover,.prose blockquote a[href^=http]:hover code,.prose blockquote a[href^=http]:hover em,.prose blockquote a[href^=http]:hover strong{color:#9aacf6}.prose blockquote a[href^="//"]:visited,.prose blockquote a[href^="//"]:visited code,.prose blockquote a[href^="//"]:visited em,.prose blockquote a[href^="//"]:visited strong,.prose blockquote a[href^=http]:visited,.prose blockquote a[href^=http]:visited code,.prose blockquote a[href^=http]:visited em,.prose blockquote a[href^=http]:visited strong{color:#e9c58b}.prose blockquote a[href^="//"]:hover:visited,.prose blockquote a[href^="//"]:hover:visited code,.prose blockquote a[href^="//"]:hover:visited em,.prose blockquote a[href^="//"]:hover:visited strong,.prose blockquote a[href^=http]:hover:visited,.prose blockquote a[href^=http]:hover:visited code,.prose blockquote a[href^=http]:hover:visited em,.prose blockquote a[href^=http]:hover:visited strong{color:#9aacf6}.prose blockquote a[href^="//"] code,.prose blockquote a[href^="//"] em,.prose blockquote a[href^="//"] strong,.prose blockquote a[href^=http] code,.prose blockquote a[href^=http] em,.prose blockquote a[href^=http] strong{color:#feb031;margin:0;padding:0}.prose blockquote a[href^="//"] code:hover,.prose blockquote a[href^="//"] code:hover code,.prose blockquote a[href^="//"] code:hover em,.prose blockquote a[href^="//"] code:hover strong,.prose blockquote a[href^="//"] em:hover,.prose blockquote a[href^="//"] em:hover code,.prose blockquote a[href^="//"] em:hover em,.prose blockquote a[href^="//"] em:hover strong,.prose blockquote a[href^="//"] strong:hover,.prose blockquote a[href^="//"] strong:hover code,.prose blockquote a[href^="//"] strong:hover em,.prose blockquote a[href^="//"] strong:hover strong,.prose blockquote a[href^=http] code:hover,.prose blockquote a[href^=http] code:hover code,.prose blockquote a[href^=http] code:hover em,.prose blockquote a[href^=http] code:hover strong,.prose blockquote a[href^=http] em:hover,.prose blockquote a[href^=http] em:hover code,.prose blockquote a[href^=http] em:hover em,.prose blockquote a[href^=http] em:hover strong,.prose blockquote a[href^=http] strong:hover,.prose blockquote a[href^=http] strong:hover code,.prose blockquote a[href^=http] strong:hover em,.prose blockquote a[href^=http] strong:hover strong{color:#9aacf6}.prose blockquote a[href^="//"] code:visited,.prose blockquote a[href^="//"] code:visited code,.prose blockquote a[href^="//"] code:visited em,.prose blockquote a[href^="//"] code:visited strong,.prose blockquote a[href^="//"] em:visited,.prose blockquote a[href^="//"] em:visited code,.prose blockquote a[href^="//"] em:visited em,.prose blockquote a[href^="//"] em:visited strong,.prose blockquote a[href^="//"] strong:visited,.prose blockquote a[href^="//"] strong:visited code,.prose blockquote a[href^="//"] strong:visited em,.prose blockquote a[href^="//"] strong:visited strong,.prose blockquote a[href^=http] code:visited,.prose blockquote a[href^=http] code:visited code,.prose blockquote a[href^=http] code:visited em,.prose blockquote a[href^=http] code:visited strong,.prose blockquote a[href^=http] em:visited,.prose blockquote a[href^=http] em:visited code,.prose blockquote a[href^=http] em:visited em,.prose blockquote a[href^=http] em:visited strong,.prose blockquote a[href^=http] strong:visited,.prose blockquote a[href^=http] strong:visited code,.prose blockquote a[href^=http] strong:visited em,.prose blockquote a[href^=http] strong:visited strong{color:#e9c58b}.prose blockquote a[href^="//"] code:hover:visited,.prose blockquote a[href^="//"] code:hover:visited code,.prose blockquote a[href^="//"] code:hover:visited em,.prose blockquote a[href^="//"] code:hover:visited strong,.prose blockquote a[href^="//"] em:hover:visited,.prose blockquote a[href^="//"] em:hover:visited code,.prose blockquote a[href^="//"] em:hover:visited em,.prose blockquote a[href^="//"] em:hover:visited strong,.prose blockquote a[href^="//"] strong:hover:visited,.prose blockquote a[href^="//"] strong:hover:visited code,.prose blockquote a[href^="//"] strong:hover:visited em,.prose blockquote a[href^="//"] strong:hover:visited strong,.prose blockquote a[href^=http] code:hover:visited,.prose blockquote a[href^=http] code:hover:visited code,.prose blockquote a[href^=http] code:hover:visited em,.prose blockquote a[href^=http] code:hover:visited strong,.prose blockquote a[href^=http] em:hover:visited,.prose blockquote a[href^=http] em:hover:visited code,.prose blockquote a[href^=http] em:hover:visited em,.prose blockquote a[href^=http] em:hover:visited strong,.prose blockquote a[href^=http] strong:hover:visited,.prose blockquote a[href^=http] strong:hover:visited code,.prose blockquote a[href^=http] strong:hover:visited em,.prose blockquote a[href^=http] strong:hover:visited strong{color:#9aacf6}.prose blockquote a[href^="//"]:after,.prose blockquote a[href^=http]:after{content:"";font-family:boxicons!important;font-weight:400;font-style:normal;font-feature-settings:normal;font-variant:normal;line-height:1;text-rendering:auto;text-transform:none;font-size:.85em;color:#d1d1d1;text-decoration:none;display:inline-block}.prose blockquote a[href^="//"]:hover:after,.prose blockquote a[href^=http]:hover:after{color:#9aacf6}.prose li{margin:0;padding:0;line-height:1.4;font-size:1.3rem}.prose li strong,.prose li strong code{font-weight:700}.prose li em,.prose li em code{font-style:italic}.prose li code{padding:2px 4px;font-size:.9em;color:#d1d1fe;font-family:var(--fira-code);font-weight:450;font-feature-settings:none;font-variant-ligatures:none;line-height:1.45;text-underline-position:under;text-decoration-thickness:5px;text-underline-offset:.5px}.prose li a{page-break-before:always;break-before:always;word-break:keep-all;text-decoration:underline;text-decoration-thickness:.07em;color:#feb031;margin:0;padding:0}.prose li a:has(code){padding:2px 4px}.prose li a:hover,.prose li a:hover code,.prose li a:hover em,.prose li a:hover strong{color:#9aacf6}.prose li a:visited,.prose li a:visited code,.prose li a:visited em,.prose li a:visited strong{color:#e9c58b}.prose li a:hover:visited,.prose li a:hover:visited code,.prose li a:hover:visited em,.prose li a:hover:visited strong{color:#9aacf6}.prose li a code,.prose li a em,.prose li a strong{color:#feb031;margin:0;padding:0}.prose li a code:hover,.prose li a code:hover code,.prose li a code:hover em,.prose li a code:hover strong,.prose li a em:hover,.prose li a em:hover code,.prose li a em:hover em,.prose li a em:hover strong,.prose li a strong:hover,.prose li a strong:hover code,.prose li a strong:hover em,.prose li a strong:hover strong{color:#9aacf6}.prose li a code:visited,.prose li a code:visited code,.prose li a code:visited em,.prose li a code:visited strong,.prose li a em:visited,.prose li a em:visited code,.prose li a em:visited em,.prose li a em:visited strong,.prose li a strong:visited,.prose li a strong:visited code,.prose li a strong:visited em,.prose li a strong:visited strong{color:#e9c58b}.prose li a code:hover:visited,.prose li a code:hover:visited code,.prose li a code:hover:visited em,.prose li a code:hover:visited strong,.prose li a em:hover:visited,.prose li a em:hover:visited code,.prose li a em:hover:visited em,.prose li a em:hover:visited strong,.prose li a strong:hover:visited,.prose li a strong:hover:visited code,.prose li a strong:hover:visited em,.prose li a strong:hover:visited strong{color:#9aacf6}.prose li a[href^="//"],.prose li a[href^=http]{page-break-before:always;break-before:always;word-break:keep-all;text-decoration:underline;text-decoration-thickness:.07em;color:#feb031;margin:0;padding:0}.prose li a[href^="//"]:has(code),.prose li a[href^=http]:has(code){padding:2px 4px}.prose li a[href^="//"]:hover,.prose li a[href^="//"]:hover code,.prose li a[href^="//"]:hover em,.prose li a[href^="//"]:hover strong,.prose li a[href^=http]:hover,.prose li a[href^=http]:hover code,.prose li a[href^=http]:hover em,.prose li a[href^=http]:hover strong{color:#9aacf6}.prose li a[href^="//"]:visited,.prose li a[href^="//"]:visited code,.prose li a[href^="//"]:visited em,.prose li a[href^="//"]:visited strong,.prose li a[href^=http]:visited,.prose li a[href^=http]:visited code,.prose li a[href^=http]:visited em,.prose li a[href^=http]:visited strong{color:#e9c58b}.prose li a[href^="//"]:hover:visited,.prose li a[href^="//"]:hover:visited code,.prose li a[href^="//"]:hover:visited em,.prose li a[href^="//"]:hover:visited strong,.prose li a[href^=http]:hover:visited,.prose li a[href^=http]:hover:visited code,.prose li a[href^=http]:hover:visited em,.prose li a[href^=http]:hover:visited strong{color:#9aacf6}.prose li a[href^="//"] code,.prose li a[href^="//"] em,.prose li a[href^="//"] strong,.prose li a[href^=http] code,.prose li a[href^=http] em,.prose li a[href^=http] strong{color:#feb031;margin:0;padding:0}.prose li a[href^="//"] code:hover,.prose li a[href^="//"] code:hover code,.prose li a[href^="//"] code:hover em,.prose li a[href^="//"] code:hover strong,.prose li a[href^="//"] em:hover,.prose li a[href^="//"] em:hover code,.prose li a[href^="//"] em:hover em,.prose li a[href^="//"] em:hover strong,.prose li a[href^="//"] strong:hover,.prose li a[href^="//"] strong:hover code,.prose li a[href^="//"] strong:hover em,.prose li a[href^="//"] strong:hover strong,.prose li a[href^=http] code:hover,.prose li a[href^=http] code:hover code,.prose li a[href^=http] code:hover em,.prose li a[href^=http] code:hover strong,.prose li a[href^=http] em:hover,.prose li a[href^=http] em:hover code,.prose li a[href^=http] em:hover em,.prose li a[href^=http] em:hover strong,.prose li a[href^=http] strong:hover,.prose li a[href^=http] strong:hover code,.prose li a[href^=http] strong:hover em,.prose li a[href^=http] strong:hover strong{color:#9aacf6}.prose li a[href^="//"] code:visited,.prose li a[href^="//"] code:visited code,.prose li a[href^="//"] code:visited em,.prose li a[href^="//"] code:visited strong,.prose li a[href^="//"] em:visited,.prose li a[href^="//"] em:visited code,.prose li a[href^="//"] em:visited em,.prose li a[href^="//"] em:visited strong,.prose li a[href^="//"] strong:visited,.prose li a[href^="//"] strong:visited code,.prose li a[href^="//"] strong:visited em,.prose li a[href^="//"] strong:visited strong,.prose li a[href^=http] code:visited,.prose li a[href^=http] code:visited code,.prose li a[href^=http] code:visited em,.prose li a[href^=http] code:visited strong,.prose li a[href^=http] em:visited,.prose li a[href^=http] em:visited code,.prose li a[href^=http] em:visited em,.prose li a[href^=http] em:visited strong,.prose li a[href^=http] strong:visited,.prose li a[href^=http] strong:visited code,.prose li a[href^=http] strong:visited em,.prose li a[href^=http] strong:visited strong{color:#e9c58b}.prose li a[href^="//"] code:hover:visited,.prose li a[href^="//"] code:hover:visited code,.prose li a[href^="//"] code:hover:visited em,.prose li a[href^="//"] code:hover:visited strong,.prose li a[href^="//"] em:hover:visited,.prose li a[href^="//"] em:hover:visited code,.prose li a[href^="//"] em:hover:visited em,.prose li a[href^="//"] em:hover:visited strong,.prose li a[href^="//"] strong:hover:visited,.prose li a[href^="//"] strong:hover:visited code,.prose li a[href^="//"] strong:hover:visited em,.prose li a[href^="//"] strong:hover:visited strong,.prose li a[href^=http] code:hover:visited,.prose li a[href^=http] code:hover:visited code,.prose li a[href^=http] code:hover:visited em,.prose li a[href^=http] code:hover:visited strong,.prose li a[href^=http] em:hover:visited,.prose li a[href^=http] em:hover:visited code,.prose li a[href^=http] em:hover:visited em,.prose li a[href^=http] em:hover:visited strong,.prose li a[href^=http] strong:hover:visited,.prose li a[href^=http] strong:hover:visited code,.prose li a[href^=http] strong:hover:visited em,.prose li a[href^=http] strong:hover:visited strong{color:#9aacf6}.prose li a[href^="//"]:after,.prose li a[href^=http]:after{content:"";font-family:boxicons!important;font-weight:400;font-style:normal;font-feature-settings:normal;font-variant:normal;line-height:1;text-rendering:auto;text-transform:none;font-size:.85em;color:#d1d1d1;text-decoration:none;display:inline-block}.prose li a[href^="//"]:hover:after,.prose li a[href^=http]:hover:after{color:#9aacf6}.prose p+p{margin-top:1.2rem}.prose li+li{margin-top:.35em}.prose pre{margin-top:1em;margin-bottom:1em;border-radius:.5em;max-width:100%;background:#0d0d20!important;-moz-tab-size:4;tab-size:4;overflow-x:auto;padding:2vh 1.3vw}@supports selector(::-webkit-scrollbar){.prose pre::-webkit-scrollbar{width:8px;height:8px}.prose pre::-webkit-scrollbar-thumb,.prose pre::-webkit-scrollbar-track{background:transparent;border-radius:10px}.prose pre:hover::-webkit-scrollbar-track{background:var(--bg-page-header)}.prose pre:hover::-webkit-scrollbar-thumb{background:var(--series-color)}}@supports not selector(::-webkit-scrollbar){.prose pre{scrollbar-width:none}.prose pre:hover{scrollbar-width:thin;scrollbar-color:var(--series-color) var(--bg-page-header)}}.prose pre code:not([class*=language-]){color:#c5c5c5}.prose pre code .line{font-family:var(--fira-code);font-weight:450;font-feature-settings:none;font-variant-ligatures:none;line-height:1.45;text-underline-position:under;text-decoration-thickness:5px;text-underline-offset:.5px}.rainbow-black .token-property{color:#d2fab7!important}.rainbow-black .token-local{color:#fff!important;font-weight:400!important}.rainbow-black .token-namespace{color:#00d977!important;font-weight:700}.rainbow-black .token-class{color:#01ff78!important;font-weight:700}.rainbow-black .token-function{color:#eb4646!important}.series-grid,.series-grid .series-big-link__tagline{margin:0;padding:0}.series-grid{font-size:1.3rem;list-style:none}.series-grid__item{padding-left:5px;filter:brightness(.5) saturate(.7);border-left:3px solid transparent}.series-grid__item:not(:first-child){margin-top:1rem}.series-grid__item:hover{filter:none;transition:.2s;border-left:3px solid var(--series-color)}.series-grid .series-big-link{display:grid;grid-template-areas:"title title" "bar count" "tagline tagline";grid-template-columns:minmax(0,min-content) auto;grid-template-rows:min-content min-content min-content;align-items:center;grid-column-gap:5px;column-gap:5px}.series-grid .series-big-link__title{grid-area:title;font-size:1em;color:var(--series-color);font-weight:700;font-feature-settings:"smcp";font-variant:small-caps;letter-spacing:.03em}.series-grid .series-big-link__bar{grid-area:bar;height:13px;background-color:var(--series-color)}.series-grid .series-big-link__count{grid-area:count;color:var(--series-color);font-size:.5em;font-weight:500}.series-grid .series-big-link__tagline{margin-top:4px;grid-area:tagline;color:var(--fg-series-tagline);font-size:.7em;justify-self:start;text-transform:lowercase}:root{--width-column-main-max:50rem;--width-column-main-min:25rem;--width-column-nav-min:17rem;--width-column-nav-max:25rem;--width-column-nav:minmax(var(--width-column-nav-min),1fr);--width-column-main:minmax(var(--width-column-main-min),var(--width-column-main-max));--width-column-1:17%;--width-column-2:45%;--after-column-2:1%;--width-column-3:20%;--padding-column-2:min(2.5vw,1rem);--logo-x:225px;--logo-x-topbar:2.5rem;--crumbs-logo-x:3rem;--padding-logo-x:15%;--extra-logo-x:1rem;--shifter:1.15;--shifted-logo-x:calc(var(--logo-x) * var(--shifter));--sidebar-3-padding:0.5rem;--spikey-logo-x:calc(var(--shifted-logo-x) + 1.15px);--height-footer:7.5rem;--height-page:calc(100% - var(--height-footer));--height-header:7rem;--height-header-sticky:2.75rem;--post-toc-height:10rem;--post-toc-width:7rem}.page{min-height:var(--height-page);box-sizing:border-box;padding-bottom:30px}:root{--bg-page-header:#251c3f;--bg-page-body:#1c1a28;--bg-page-footer:#251c3f;--fg-text:#fff;--fg-newsletter-heading:#56d08d;--fg-newsletter-text:#a5a5a5;--fg-newsletter-joined:#56d08d;--fg-text-heading:#fff;--fg-stats-line:#a5a5a5;--fg-series-tagline:#7e7979;--fg-home-tagline:#71819c;--fg-discord:#7289da;--fg-readable:#fff;--bg-post-preview:#1a1b2d;--fg-crumb-home-link:#ffb9f6;--fg-link:#988fff;--fg-toc-link:grey;--fg-page-error:#f0d;--fg-menu-button:#b4b4b4;--font-size-name-heading:2rem;--font-size-math:1.3rem;--font-size-nav-heading:1.8rem;--font-size-readable:1.2rem;--font-size-stats:0.7rem;--font-size-caption:1.2rem;--font-size-series-title:1rem;--font-size-series-title-big:1.5rem;--font-size-series-tagline:0.6rem;--font-size-post-title:2em;--font-size-post-title-small:1.2rem;--font-size-series-link-small:0.8rem;--font-size-series-grid:1.5rem;--font-size-made-with:0.8rem;--font-size-footer-link:0.85rem;--font-size-footer-vanity:var(--font-size-name-heading);--font-size-post-title-primary:2em;--text-line-height-readable:1.5;--font-size-crumbs:1.4em}@media(min-width:1280px){:root{--font-size-name-heading:4rem;--font-size-post-title:3em}}.post-preview-list .post-item{padding-left:var(--padding-column-2)}.post-preview{--bg-title-hover:color-mix(in srgb,var(--series-color) 70%,var(--bg-page-body));--modified:color-mix(in srgb,var(--series-color) 20%,transparent);--bg-title:color-mix(in srgb,var(--series-color) 20%,transparent);--fg-read-more:var(--bg-title-hover);--fg-read-more-hover:var(--series-color);background:var(--bg-page-body);display:grid;grid-template-areas:"header" "info" "description" "read";grid-template-columns:1fr;border-left:3px solid transparent;transition:.2s;box-sizing:content-box;box-sizing:border-box}.post-preview:not(:last-child){margin-bottom:1rem}.post-preview:not(:first-child){margin-top:3rem}@media(max-width:798px){.post-preview{grid-template-columns:1fr}}.post-preview:last-child{padding-bottom:3rem}.post-preview__header__series-link{justify-self:stretch;justify-content:flex-start!important}.post-preview__header__body{background:var(--bg-title);grid-area:header;display:flex;padding-top:1rem;padding-bottom:1rem;flex-direction:row;justify-content:space-between;padding-left:var(--padding-column-2);padding-right:var(--padding-column-2)}@media(max-width:798px){.post-preview__header__body{flex-direction:column;align-items:stretch}}.post-preview__header__title{color:var(--fg-readable);display:flex;flex-direction:row;justify-content:flex-start;align-items:center;font-size:var(--font-size-post-title);margin:0;font-size:1.4rem}.post-preview__header__series-link{font-size:14px;display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.post-preview__info{grid-area:info;padding-left:var(--padding-column-2)}.post-preview__text{grid-area:description;color:var(--fg-readable);align-self:flex-start;min-height:6rem;max-height:14rem;overflow:hidden;padding:.5rem 0 0;text-overflow:ellipsis;padding-left:var(--padding-column-2);padding-right:var(--padding-column-2)}.post-preview__text p{font-size:var(--font-size-readable);line-height:var(--text-line-height-readable);margin:0}.post-preview__text p+p{margin-top:.4rem}.post-preview__footer{padding-left:var(--padding-column-2);display:block}.post-preview__footer__body{grid-area:read;font-size:var(--font-size-readable);font-weight:500;color:var(--fg-read-more);opacity:.8;display:flex;flex-direction:row;justify-content:flex-end;align-items:center;padding-top:1.4rem;justify-self:start}.post-preview.post-preview.post-preview:has(.post-preview__header:hover,.post-preview__footer:hover){--bg-title:var(--bg-title-hover);--fg-read-more:var(--fg-read-more-hover)}