*,*::before,*::after{box-sizing:border-box}body,h1,h2,h3,h4,h5,p,figure,blockquote,dl,dd,ol,ul,pre{margin:0}address{font-style:normal}ul[class],ol[class]{list-style:none;padding-inline-start:0}body{min-height:100vh}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}a:not([class]):hover{color:var(--color--action)}img,picture{max-width:100%;display:block;height:auto}input,button,textarea,select{font-family:inherit;font-size:inherit;padding:0}button{cursor:pointer;background:none;border:none}textarea:not([rows]){min-height:10em}details summary{cursor:pointer}details summary:focus{outline:none}details summary>*{display:inline}[popover]{border:none;padding:0}body:has(:popover-open){overflow:hidden}table{border-collapse:collapse}:target{scroll-margin-block:5ex}:root{--color: light-dark(#00000f, #fffffc);--color--action: light-dark( hsl(237, 96%, 33%), hsl(237, 96%, 63%) );--background: light-dark(#fffffc, #00000f);--background--alt: light-dark( rgb(229.5, 229.5, 228.3), rgb(63.75, 63.75, 74.25) );--font-family: "GeneralSans", Helvetica Neue, Helvetica, Arial, sans-serif;--font-family--mono: Consolas, monaco, monospace;--baseline: 1.6;--border: 0.175em solid currentColor;--border--small: 0.0875rem solid currentColor}@font-face{font-family:"GeneralSans";src:url("fonts/GeneralSans-Variable.woff2");font-weight:200 700;font-display:swap;font-style:normal;font-named-instance:"Regular"}@font-face{font-family:"GeneralSans";src:url("fonts/GeneralSans-VariableItalic.woff2");font-weight:200 700;font-display:swap;font-style:italic;font-named-instance:"Italic"}:root{font-weight:400;color:var(--color);line-height:var(--baseline);font-family:var(--font-family);font-size:clamp(1rem,1rem + 2*(100vw - 768px)/632,1.125rem)}h1,.heading1,h2,.heading2,h3,.heading3,h4,.heading4{font-weight:600;text-wrap:balance}h1,.heading1{font-size:1.953125rem;line-height:2.4rem;text-align:start}h2,.heading2{font-size:1.5625rem;line-height:1.6rem;text-align:start}h3,.heading3{font-size:1.25rem;line-height:1.6rem;text-align:start}h4,.heading4{font-size:1rem;text-transform:uppercase;text-align:start}summary,th,b,strong{font-weight:600}i,em{font-style:italic}small{font-size:.8rem;line-height:.8rem}code,pre{font-size:.8rem;line-height:1.4rem;font-family:var(--font-family--mono);color:var(--color);background-color:var(--background--alt)}.highlight>*{color:var(--color) !important;background-color:var(--background--alt) !important}code{padding:.4ch .8ch}pre{padding:calc(0.5rem*var(--baseline));overflow:auto;min-width:0;max-width:100%}pre code{padding:0}sup,sub{vertical-align:baseline;position:relative;font-size:inherit}sub{top:.4em}sup{top:-0.4em}::selection{color:var(--background);background-color:var(--color)}mark{color:var(--background);background-color:var(--color--action)}blockquote{border-inline-start:var(--border);padding-inline-start:calc(0.5rem*var(--baseline));font-weight:600;text-align:start;text-wrap:balance;font-size:1.25rem;line-height:1.6rem}blockquote>*{margin-block-end:calc(0.5rem*var(--baseline))}blockquote :last-child{margin-block-end:0}blockquote cite{font-style:normal;font-size:.8rem;line-height:.8rem}hr{color:var(--color);border:none;border-block-start:var(--border--small);margin-block:0 calc(0.5rem*var(--baseline))}thead{border-block-end:var(--border)}tr{color:var(--color);border-block-end:var(--border--small)}button{color:var(--color)}.page{display:grid;grid-template-rows:auto 1fr auto;min-height:100vh;max-width:1400px;margin:auto;padding-inline:clamp(1rem,1rem + 32*(100vw - 576px)/192,3rem);background-color:var(--background);container-type:inline-size}.header{inset-block-start:0;position:sticky;padding:calc(0.5rem*var(--baseline)) 0;display:flex;align-items:center;justify-content:space-between;gap:1em;line-height:1;background:var(--background);z-index:99;anchor-name:--header}.header__logo{font-size:1em;line-height:1;margin:0}@container (width > 60ch){.header__menu{flex:1}.header__search{order:3}}.menu{list-style:none}.menu__link{display:flex;align-items:center;gap:.5ch;text-decoration:initial}.menu__icon{display:inline}.menu--vertical{display:flex;flex-wrap:wrap;gap:calc(0.5rem*var(--baseline)) calc(1rem*var(--baseline))}.menu--social .menu__item{display:inline-block;margin-inline-end:.5ch}.menu--social .menu__item:last-child{margin-inline-end:0}.menu--primary{margin:0;font-weight:600}.menu--primary .menu__panel{position-anchor:--header;position-area:bottom span-all;width:anchor-size();height:0;transition:height .4s ease-out allow-discrete,overlay .4s ease-out allow-discrete,display .4s ease-out allow-discrete;background:var(--background)}.menu--primary .menu__panel:popover-open{height:calc(100vh - anchor-size(height))}@starting-style{.menu--primary .menu__panel:popover-open{height:0}}.menu--primary .menu__item{margin-inline:calc(1rem*var(--baseline));padding-block:calc(1rem*var(--baseline));border-block-end:var(--border--small);opacity:0;transform:scale(1.1) translateY(-30px);transition:opacity .4s ease-out allow-discrete,padding .4s ease-out allow-discrete,transform .4s ease-out allow-discrete;transition-delay:calc(var(--i, 0)*.07s)}.menu--primary .menu__item:last-child{border-block-end:none}:has(#primary-menu:popover-open) .menu--primary .menu__item{transform:scale(1) translateY(0);opacity:1}@container (width > 60ch){.menu--primary .menu__trigger{display:none}.menu--primary .menu__panel{position:relative;position-anchor:none;height:auto;transition:none;display:flex;gap:calc(1rem*var(--baseline));justify-content:end}.menu--primary .menu__item{display:inline-block;margin-inline:initial;padding:initial;border:initial;opacity:1;transform:initial;transition-delay:initial}.menu--primary .menu__link{padding:calc(0.25rem*var(--baseline)) calc(0.5rem*var(--baseline))}@media(hover: hover){.menu--primary .menu__link:hover{color:var(--background);background-color:var(--color)}}.menu--primary .menu__link--active{color:var(--background);background-color:var(--color)}@media(hover: hover){.menu--primary .menu__link--active:hover{background-color:var(--color--action)}}}.search__panel{position-anchor:--header;position-area:bottom span-all;width:anchor-size();height:0;transition:height .4s ease-out allow-discrete,overlay .4s ease-out allow-discrete,display .4s ease-out allow-discrete;background:var(--background)}.search__panel:popover-open{height:calc(100vh - anchor-size(height))}@starting-style{.search__panel:popover-open{height:0}}.search__input{font-size:2.44140625rem;line-height:3.2rem;font-weight:600;border:0;background:none}.search__input:focus{outline:0}.search__results{line-height:initial;margin:0;overflow-y:scroll;max-height:100%}.search__results :focus-visible{color:var(--color--action);outline:none}.flex{display:flex;flex-direction:column;gap:calc(0.5rem*var(--baseline))}.grid{display:grid;grid-template-columns:1fr;gap:calc(0.5rem*var(--baseline));align-items:last baseline}@container (width > 80ch){.grid{grid-template-columns:repeat(3, 1fr)}}.grid--align-start{align-items:start}.grid__subgrid{display:grid;grid-template-columns:subgrid;align-items:last baseline;gap:calc(0.5rem*var(--baseline))}.grid--default-wide>*,.grid__span-wide{grid-column:span 2}.grid--default-all>*,.grid__span-all{grid-column:1/-1}.grid--default-small>*,.grid__span-small{grid-column:span 1}.content{margin-block:calc(1rem*var(--baseline));text-align:justify}.masthead__title:has(+.masthead__byline){margin-block-end:0}.masthead__byline *:not(:last-child)::after{content:", "}.frontmatter{font-weight:600;font-size:1.25rem;line-height:1.6rem;text-align:start;text-wrap:pretty}.pagination{display:flex;justify-content:space-between;font-weight:600}.excerpt__description{margin-block-end:0}.toc li::before{content:counter(ol, upper-roman) "."}.sponsors__svg,.sponsors__img{height:2.5em}.sponsors__svg *{fill:currentColor !important}.sponsors__title{font-size:1em;font-weight:initial}.sponsors__list{margin-block-end:0;font-weight:600}.footer{border-block-start:var(--border--small);padding-block:calc(0.5rem*var(--baseline));display:flex;gap:calc(0.5rem*var(--baseline));flex-direction:column}@container (width > calc(14ch * 4)){.footer{flex-direction:row}.footer__item:last-child{text-align:right}.footer__item--large{columns:2}}.footer__item{flex:1}.footer__item--large{flex:2}a,.link{color:currentColor;transition:all 250ms ease-in-out;text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--color), transparent 65%)}@media(hover: hover){a:hover,.link:hover{color:var(--color--action);text-decoration-color:var(--color--action)}}a--unstyled,a--plain,.link--unstyled,.link--plain{text-decoration:none}@media(hover: hover){a--unstyled:hover,.link--unstyled:hover{color:currentColor;text-decoration:none}}ul,.list{padding-inline-start:3ch}ul--plain,ul--vertical,.list--plain,.list--vertical{list-style:none}ul--vertical .list__item,.list--vertical .list__item{display:inline-block;margin-inline-end:.1ch}ol,.list--ordered{list-style:none;counter-reset:ol;padding-inline-start:3ch}ol li,ol .list__item,.list--ordered li,.list--ordered .list__item{counter-increment:ol;position:relative}ol li::before,ol .list__item::before,.list--ordered li::before,.list--ordered .list__item::before{content:counter(ol, lower-roman) ".";position:absolute;inset-inline-start:-3ch;width:2rem}.button{padding:calc(0.25rem*var(--baseline)) calc(1rem*var(--baseline));border:var(--border);border-color:var(--color);background-color:var(--background);font-weight:600;transition:all .3s ease-out;cursor:pointer}.button--plain{border:none}@media(hover: hover){.button:hover{color:var(--background);background-color:var(--color)}}.button--active{color:var(--background);background-color:var(--color)}@media(hover: hover){.button--active:hover{background-color:var(--color--action);border-color:var(--color--action)}}.form{border-block:var(--border--small);padding-block:calc(0.5rem*var(--baseline))}.form__label{font-weight:600}:has(input:required) .form__label::after{content:" *";color:red}.form__group{margin-block-end:calc(0.5rem*var(--baseline))}.form__group--checkbox{display:flex;flex-wrap:wrap;column-gap:.5ch;align-items:center}.form__textarea,.form__input{display:block;width:100%;background-color:rgba(0,0,0,0);padding:calc(0.25rem*var(--baseline));border:var(--border--small)}.form__textarea:focus,.form__input:focus{outline:none}.form__textarea[type=file],.form__input[type=file]{border:none;padding:0}.form__textarea[type=checkbox],.form__textarea[type=radio],.form__input[type=checkbox],.form__input[type=radio]{width:initial;order:-1}.form__textarea__desc,.form__input__desc{margin-block-end:0}.aside{font-size:.8rem;line-height:.8rem}.space{margin-block-end:calc(0.5rem*var(--baseline))}.space--above:not(:first-child){margin-block-start:calc(0.5rem*var(--baseline))}.border{border-block-start:var(--border--small);padding-block-start:calc(1rem*var(--baseline));margin-block-start:calc(0.5rem*var(--baseline))}.svg{height:initial;width:initial}.svg--icon{height:1em;width:1em;stroke-width:2}.svg--logo{height:2.5em}.icon{position:relative;width:1em;height:1em;box-sizing:content-box;transition:all .3s ease-out;padding:calc(0.25rem*var(--baseline))}@media(hover: hover){.icon:hover{color:var(--background);background-color:var(--color)}}.icon--hamburger::before,.icon--hamburger::after{content:"";position:absolute;left:50%;top:50%;width:1em;margin-left:-0.5em;border-block-start:var(--border);transition:transform .3s ease}.icon--hamburger::before{transform:translateY(calc(-50% - 0.25em))}.icon--hamburger::after{transform:translateY(calc(-50% + 0.25em))}:has(#primary-menu:popover-open) .icon--hamburger::before{transform:rotate(45deg)}:has(#primary-menu:popover-open) .icon--hamburger::after{transform:rotate(-45deg)}.icon--magnifier::before{position:absolute;top:50%;left:50%;width:.7em;height:.7em;content:"";border-radius:50%;border:var(--border);transform:translate(-50%, -50%);transform-origin:center;transition:transform .3s ease}.icon--magnifier::after{content:"";position:absolute;top:50%;left:50%;width:.35em;height:0;border-block-start:var(--border);transform:translate(-50%, -50%) translate(0.3em, 0.3em) rotate(45deg);transform-origin:center;transition:transform .3s ease}:has(#search:popover-open) .icon--magnifier::before{width:1em;height:0;border-radius:0;border:0;border-block-start:var(--border);transform:translate(-50%, -50%) rotate(-45deg)}:has(#search:popover-open) .icon--magnifier::after{width:1em;transform:translate(-50%, -50%) rotate(45deg)}thead{border-block-end:var(--border)}tr{border-block-end:var(--border--small)}td,th{vertical-align:baseline;padding-block:calc(0.25rem*var(--baseline));padding-inline-end:calc(0.25rem*var(--baseline))}:root{color-scheme:light}:root:has(#themeCheckbox:checked){color-scheme:dark}@media(prefers-color-scheme: dark){:root{color-scheme:dark}:root:has(#themeCheckbox:checked){color-scheme:light}}.theme-toggle{appearance:none;display:inline-block;cursor:pointer;width:1em;height:1em;border-radius:50%;margin:0;border:var(--border--small);background:linear-gradient(-45deg, #fffffc 50%, #00000f 50%);transition:transform 250ms ease-in-out}.theme-toggle:checked{transform:rotate(180deg)}@media(hover: hover){.theme-toggle:hover{transform:rotate(45deg)}.theme-toggle:hover:checked{transform:rotate(225deg)}}