@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_AMS-Regular.BQhdFMY1.woff2)format("woff2"),url(/_astro/KaTeX_AMS-Regular.DMm9YOAa.woff)format("woff"),url(/_astro/KaTeX_AMS-Regular.DRggAlZN.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2)format("woff2"),url(/_astro/KaTeX_Caligraphic-Bold.BEiXGLvX.woff)format("woff"),url(/_astro/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2)format("woff2"),url(/_astro/KaTeX_Caligraphic-Regular.CTRA-rTL.woff)format("woff"),url(/_astro/KaTeX_Caligraphic-Regular.wX97UBjC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Fraktur-Bold.CL6g_b3V.woff2)format("woff2"),url(/_astro/KaTeX_Fraktur-Bold.BsDP51OF.woff)format("woff"),url(/_astro/KaTeX_Fraktur-Bold.BdnERNNW.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Fraktur-Regular.CTYiF6lA.woff2)format("woff2"),url(/_astro/KaTeX_Fraktur-Regular.Dxdc4cR9.woff)format("woff"),url(/_astro/KaTeX_Fraktur-Regular.CB_wures.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Main-Bold.Cx986IdX.woff2)format("woff2"),url(/_astro/KaTeX_Main-Bold.Jm3AIy58.woff)format("woff"),url(/_astro/KaTeX_Main-Bold.waoOVXN0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2)format("woff2"),url(/_astro/KaTeX_Main-BoldItalic.SpSLRI95.woff)format("woff"),url(/_astro/KaTeX_Main-BoldItalic.DzxPMmG6.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Main-Italic.NWA7e6Wa.woff2)format("woff2"),url(/_astro/KaTeX_Main-Italic.BMLOBm91.woff)format("woff"),url(/_astro/KaTeX_Main-Italic.3WenGoN9.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Main-Regular.B22Nviop.woff2)format("woff2"),url(/_astro/KaTeX_Main-Regular.Dr94JaBh.woff)format("woff"),url(/_astro/KaTeX_Main-Regular.ypZvNtVU.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2)format("woff2"),url(/_astro/KaTeX_Math-BoldItalic.iY-2wyZ7.woff)format("woff"),url(/_astro/KaTeX_Math-BoldItalic.B3XSjfu4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Math-Italic.t53AETM-.woff2)format("woff2"),url(/_astro/KaTeX_Math-Italic.DA0__PXp.woff)format("woff"),url(/_astro/KaTeX_Math-Italic.flOr_0UB.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_SansSerif-Bold.D1sUS0GD.woff2)format("woff2"),url(/_astro/KaTeX_SansSerif-Bold.DbIhKOiC.woff)format("woff"),url(/_astro/KaTeX_SansSerif-Bold.CFMepnvq.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Italic.C3H0VqGB.woff2)format("woff2"),url(/_astro/KaTeX_SansSerif-Italic.DN2j7dab.woff)format("woff"),url(/_astro/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2)format("woff2"),url(/_astro/KaTeX_SansSerif-Regular.CS6fqUqJ.woff)format("woff"),url(/_astro/KaTeX_SansSerif-Regular.BNo7hRIc.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Script-Regular.D3wIWfF6.woff2)format("woff2"),url(/_astro/KaTeX_Script-Regular.D5yQViql.woff)format("woff"),url(/_astro/KaTeX_Script-Regular.C5JkGWo-.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size1-Regular.mCD8mA8B.woff2)format("woff2"),url(/_astro/KaTeX_Size1-Regular.C195tn64.woff)format("woff"),url(/_astro/KaTeX_Size1-Regular.Dbsnue_I.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size2-Regular.Dy4dx90m.woff2)format("woff2"),url(/_astro/KaTeX_Size2-Regular.oD1tc_U0.woff)format("woff"),url(/_astro/KaTeX_Size2-Regular.B7gKUWhC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size3-Regular.gV2CO0n9.woff2)format("woff2"),url(/_astro/KaTeX_Size3-Regular.CTq5MqoE.woff)format("woff"),url(/_astro/KaTeX_Size3-Regular.DgpXs0kz.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size4-Regular.Dl5lxZxV.woff2)format("woff2"),url(/_astro/KaTeX_Size4-Regular.BF-4gkZK.woff)format("woff"),url(/_astro/KaTeX_Size4-Regular.DWFBv043.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Typewriter-Regular.CO6r4hn1.woff2)format("woff2"),url(/_astro/KaTeX_Typewriter-Regular.C0xS9mPB.woff)format("woff"),url(/_astro/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.16.47"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{white-space:nowrap;width:min-content;position:relative}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{flex-direction:row;display:inline-flex}.katex .thinbox{width:0;max-width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}[data-callout=note]{--rc-color-light:var(--callout-note-color-light,#086ddd);--rc-color-dark:var(--callout-note-color-dark,#027aff)}[data-callout=abstract]{--rc-color-light:var(--callout-abstract-color-light,#00bfbc);--rc-color-dark:var(--callout-abstract-color-dark,#53dfdd)}[data-callout=summary]{--rc-color-light:var(--callout-summary-color-light,#00bfbc);--rc-color-dark:var(--callout-summary-color-dark,#53dfdd)}[data-callout=tldr]{--rc-color-light:var(--callout-tldr-color-light,#00bfbc);--rc-color-dark:var(--callout-tldr-color-dark,#53dfdd)}[data-callout=info]{--rc-color-light:var(--callout-info-color-light,#086ddd);--rc-color-dark:var(--callout-info-color-dark,#027aff)}[data-callout=todo]{--rc-color-light:var(--callout-todo-color-light,#086ddd);--rc-color-dark:var(--callout-todo-color-dark,#027aff)}[data-callout=tip]{--rc-color-light:var(--callout-tip-color-light,#00bfbc);--rc-color-dark:var(--callout-tip-color-dark,#53dfdd)}[data-callout=hint]{--rc-color-light:var(--callout-hint-color-light,#00bfbc);--rc-color-dark:var(--callout-hint-color-dark,#53dfdd)}[data-callout=important]{--rc-color-light:var(--callout-important-color-light,#00bfbc);--rc-color-dark:var(--callout-important-color-dark,#53dfdd)}[data-callout=success]{--rc-color-light:var(--callout-success-color-light,#08b94e);--rc-color-dark:var(--callout-success-color-dark,#44cf6e)}[data-callout=check]{--rc-color-light:var(--callout-check-color-light,#08b94e);--rc-color-dark:var(--callout-check-color-dark,#44cf6e)}[data-callout=done]{--rc-color-light:var(--callout-done-color-light,#08b94e);--rc-color-dark:var(--callout-done-color-dark,#44cf6e)}[data-callout=question]{--rc-color-light:var(--callout-question-color-light,#ec7500);--rc-color-dark:var(--callout-question-color-dark,#e9973f)}[data-callout=help]{--rc-color-light:var(--callout-help-color-light,#ec7500);--rc-color-dark:var(--callout-help-color-dark,#e9973f)}[data-callout=faq]{--rc-color-light:var(--callout-faq-color-light,#ec7500);--rc-color-dark:var(--callout-faq-color-dark,#e9973f)}[data-callout=warning]{--rc-color-light:var(--callout-warning-color-light,#ec7500);--rc-color-dark:var(--callout-warning-color-dark,#e9973f)}[data-callout=attention]{--rc-color-light:var(--callout-attention-color-light,#ec7500);--rc-color-dark:var(--callout-attention-color-dark,#e9973f)}[data-callout=caution]{--rc-color-light:var(--callout-caution-color-light,#ec7500);--rc-color-dark:var(--callout-caution-color-dark,#e9973f)}[data-callout=failure]{--rc-color-light:var(--callout-failure-color-light,#e93147);--rc-color-dark:var(--callout-failure-color-dark,#fb464c)}[data-callout=missing]{--rc-color-light:var(--callout-missing-color-light,#e93147);--rc-color-dark:var(--callout-missing-color-dark,#fb464c)}[data-callout=fail]{--rc-color-light:var(--callout-fail-color-light,#e93147);--rc-color-dark:var(--callout-fail-color-dark,#fb464c)}[data-callout=danger]{--rc-color-light:var(--callout-danger-color-light,#e93147);--rc-color-dark:var(--callout-danger-color-dark,#fb464c)}[data-callout=error]{--rc-color-light:var(--callout-error-color-light,#e93147);--rc-color-dark:var(--callout-error-color-dark,#fb464c)}[data-callout=bug]{--rc-color-light:var(--callout-bug-color-light,#e93147);--rc-color-dark:var(--callout-bug-color-dark,#fb464c)}[data-callout=example]{--rc-color-light:var(--callout-example-color-light,#7852ee);--rc-color-dark:var(--callout-example-color-dark,#a882ff)}[data-callout=quote]{--rc-color-light:var(--callout-quote-color-light,#9e9e9e);--rc-color-dark:var(--callout-quote-color-dark,#9e9e9e)}[data-callout=cite]{--rc-color-light:var(--callout-cite-color-light,#9e9e9e);--rc-color-dark:var(--callout-cite-color-dark,#9e9e9e)}.callout{--rc-color-default:#888;mix-blend-mode:darken;background-color:rgb(from var(--rc-color-light,var(--rc-color-default)) r g b / .1);border-radius:4px;width:100%;margin:1em 0;padding:12px 12px 12px 24px;line-height:1.3;overflow:hidden}.dark .callout{mix-blend-mode:lighten;background-color:rgb(from var(--rc-color-dark,var(--rc-color-default)) r g b / .1)}.callout-title{color:var(--rc-color-light,var(--rc-color-default));font-size:inherit;align-items:flex-start;gap:4px;display:flex}.dark .callout-title{color:var(--rc-color-dark,var(--rc-color-default))}.callout-title::-webkit-details-marker{display:none}.callout-title-icon{flex:none;align-items:center;display:flex}.callout-title-text{color:inherit;font-weight:600}.callout-content{background-color:#0000;padding:0;overflow-x:auto}.callout[data-collapsible=true] .callout-title{cursor:pointer}.callout[data-collapsible=true] .callout-fold-icon{align-items:center;padding-inline-end:8px;display:flex}.callout[data-collapsible=true]>.callout-title .callout-fold-icon svg{transition:transform .1s ease-in-out;transform:rotate(-90deg)}.callout[data-collapsible=true][open]>.callout-title .callout-fold-icon svg{transform:none}.callout-title-icon:after,.callout-fold-icon:after{content:"​"}.callout-title-icon svg,.callout-fold-icon svg{width:18px;height:18px}@font-face{font-family:Departure Mono;src:url(/fonts/DepartureMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:PxPlus IBM VGA8;src:url(/fonts/PxPlusIBMVGA8-9x16.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Departure Mono Fallback;src:local(Menlo),local(Courier New),local(Liberation Mono);size-adjust:106.06%;ascent-override:94.29%;descent-override:25.71%;line-gap-override:0%}@font-face{font-family:PxPlus IBM VGA8 Fallback;src:local(Menlo),local(Courier New),local(Liberation Mono);size-adjust:93.75%;ascent-override:80%;descent-override:26.67%;line-gap-override:0%}@font-face{font-family:Literata;src:url(/fonts/Literata-400-700.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Atkinson Hyperlegible;src:url(/fonts/AtkinsonHyperlegible-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Atkinson Hyperlegible;src:url(/fonts/AtkinsonHyperlegible-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--dial-red-on-light:#d50612;--dial-red-on-dark:#e6242f;--dial-blue-on-light:#0571b3;--dial-blue-on-dark:#1480c2;--dial-yellow-on-light:#ac7d00;--dial-yellow-on-dark:#f5b200;--dial-green-on-light:#39936c;--dial-green-on-dark:#45b384;--dial-purple-on-light:#4b15a8;--dial-purple-on-dark:#815bc2;--dial-page-light:#f4efe0;--dial-page-dark:#000;--dial-text-light:#14120e;--dial-text-dark:#f3f1ee;--dial-text-quiet-light:#6b6353;--dial-text-quiet-dark:#a8a29a;--dial-line-light:#736e62;--dial-line-dark:#6b627b;--dial-accent-fallback-light:#1a5c96;--dial-accent-fallback-dark:#7cc0ff;--dial-shadow-light:#000;--dial-shadow-dark:#fff;--dial-face-reading-serif:"Literata", ui-serif, Georgia, serif;--dial-face-reading-sans:"Atkinson Hyperlegible", ui-sans-serif, sans-serif;--dial-face-interface:"Departure Mono", "Departure Mono Fallback", ui-monospace, SFMono-Regular, monospace;--dial-face-subtitle:"PxPlus IBM VGA8", "PxPlus IBM VGA8 Fallback", ui-monospace, SFMono-Regular, monospace;--dial-face-code:ui-monospace, SFMono-Regular, monospace;--dial-text-size:1.125rem;--dial-text-size-small:.9rem;--dial-text-size-tiny:.75rem;--dial-line-height:1.63;--dial-letter-spacing:.05em;--dial-word-spacing:.15em;--dial-block-spacing:2rem;--dial-reading-width:78ch;--dial-page-margin:1.5rem;--dial-shell-width:min(80vw, 87.5rem);--dial-shell-narrow-width:56rem;--dial-shell-inset:.667rem;--dial-content-inset:2.5rem;--dial-cover-frame-inset:calc(34 / 1200 * 100%);--dial-corner-radius:0;--dial-border-width:1px;--dial-card-edge-width:8px;--dial-shadow-offset:4px;--dial-wordmark-shadow-offset:1px;--dial-button-hit-area:2.75rem;--dial-button-chip-size:2rem;--dial-button-glyph-size:1rem;--dial-button-padding-block:.6875rem;--dial-button-padding-inline:1.25rem;--dial-transition-duration:.12s;--dial-transition-easing:ease;--dial-note-grow-duration:.7s;--dial-note-grow-easing:cubic-bezier(.65, 0, .35, 1);--dial-section-rule-length:150px;--dial-section-rule-weight:1px;--dial-section-rule-dot-size:2px;--dial-section-rule-dot-spacing:8px;color-scheme:light dark;--brand-red:light-dark(var(--dial-red-on-light),var(--dial-red-on-dark));--brand-blue:light-dark(var(--dial-blue-on-light),var(--dial-blue-on-dark));--brand-yellow:light-dark(var(--dial-yellow-on-light),var(--dial-yellow-on-dark));--brand-green:light-dark(var(--dial-green-on-light),var(--dial-green-on-dark));--brand-purple:light-dark(var(--dial-purple-on-light),var(--dial-purple-on-dark));--bg:light-dark(var(--dial-page-light),var(--dial-page-dark));--fg:light-dark(var(--dial-text-light),var(--dial-text-dark));--muted:light-dark(var(--dial-text-quiet-light),var(--dial-text-quiet-dark));--accent:var(--accent-day,light-dark(var(--dial-accent-fallback-light),var(--dial-accent-fallback-dark)));--rule:light-dark(var(--dial-line-light),var(--dial-line-dark));--accent-day:var(--brand-yellow);--font-body-serif:var(--dial-face-reading-serif);--font-body-sans:var(--dial-face-reading-sans);--font-body:var(--font-body-serif);--font-mono:var(--dial-face-code);--font-display:var(--dial-face-interface);--font-subtitle:var(--dial-face-subtitle);--font-scale:1;--text-base:calc(var(--dial-text-size) * var(--font-scale));--text-small:var(--dial-text-size-small);--text-tiny:var(--dial-text-size-tiny);--leading:var(--dial-line-height);--tracking-body:var(--dial-letter-spacing);--word-spacing-body:var(--dial-word-spacing);--font-smoothing:antialiased;--measure:var(--dial-reading-width);--gutter:var(--dial-page-margin);--cover-frame-inset:var(--dial-cover-frame-inset);--figure-width:80%;--block-spacing:var(--dial-block-spacing);--radius:var(--dial-corner-radius);--border:var(--dial-border-width);--border-card-edge:var(--dial-card-edge-width);--btn-border:3px double var(--accent-day);--shell-width:var(--dial-shell-width);--shell-narrow-width:var(--dial-shell-narrow-width);--content-width:calc(var(--dial-shell-width) - var(--dial-content-inset) * 2);--shell-inset:var(--dial-shell-inset);--em-italic-weight:500;--link-unwritten:var(--muted);--heading-rule:var(--rule);--heading-glow:light-dark(color-mix(in oklab, var(--brand-green) 35%, transparent),color-mix(in oklab, var(--brand-green) 45%, transparent));--heading-glow-blur:.5em;--check-box:light-dark(#fbf7ec,#0000);--check-edge:var(--fg);--check-tick:var(--brand-green);--rule-length:var(--dial-section-rule-length);--rule-weight:var(--dial-section-rule-weight);--rule-core:var(--fg);--rule-dot:var(--dial-section-rule-dot-size);--rule-gap:var(--dial-section-rule-dot-spacing);--table-edge:var(--fg);--table-head-bg:light-dark(color-mix(in oklab, var(--brand-blue) 5%, transparent),color-mix(in oklab, var(--brand-blue) 8%, transparent));--table-cell-pad:.45rem .7rem;--code-shadow-offset:var(--dial-shadow-offset);--code-shadow-color:light-dark(var(--dial-shadow-light),var(--dial-shadow-dark));--brand-shadow-offset:var(--dial-wordmark-shadow-offset);--brand-shadow-color:light-dark(#0000008c,#0000);--btn-face:var(--font-display);--btn-tracking:0em;--btn-pad-block:var(--dial-button-padding-block);--btn-pad-inline:var(--dial-button-padding-inline);--btn-touch-min:var(--dial-button-hit-area);--btn-fg:var(--brand-yellow);--icon-btn-hit:var(--btn-touch-min);--icon-btn-chip:var(--dial-button-chip-size);--icon-btn-glyph:var(--dial-button-glyph-size);--duration:var(--dial-transition-duration);--ease:var(--dial-transition-easing);--note-grow-duration:var(--dial-note-grow-duration);--note-grow-ease:var(--dial-note-grow-easing);--note-highlight:light-dark(color-mix(in oklab, var(--brand-yellow) 22%, transparent),color-mix(in oklab, var(--brand-yellow) 30%, transparent))}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}:root[data-body-face=sans]{--font-body:var(--font-body-sans);--text-base:calc(1.25rem * var(--font-scale));--leading:1.53;--tracking-body:0em}@media (width<=47.99rem){:root{--cover-frame-inset:0}}@media (width<=40rem){:root{--figure-width:100%}}@media (prefers-reduced-motion:reduce){:root{--duration:0s;--note-grow-duration:0s}}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}article :is(h2,h3):after{content:"";background-image:repeating-linear-gradient(to right, var(--heading-rule) 0 10px, transparent 10px 16px);block-size:1px;margin-block-start:.3em;display:block;mask-image:linear-gradient(90deg,#000 0 55%,#0000 100%)}article h1{text-shadow:0 0 var(--heading-glow-blur) var(--heading-glow)}article :is(h1,h2,h3,h4,h5,h6){scroll-margin-block-start:1.5rem;position:relative}.heading-anchor{color:var(--muted);font-family:var(--font-mono);font-size:.7em;font-weight:400;line-height:inherit;opacity:0;transition:opacity var(--duration) var(--ease);text-decoration:none;position:absolute;inset-block-start:0;inset-inline-start:-1.1em}@media (width<48rem){.heading-anchor{margin-inline-start:.35em;position:static}}:is(h1,h2,h3,h4,h5,h6):hover>.heading-anchor,.heading-anchor:focus-visible{opacity:1}.heading-anchor:hover{color:var(--accent-day,var(--accent))}.toast{z-index:2;border:var(--border) solid var(--rule);background:var(--bg);width:fit-content;color:var(--fg);font-family:var(--font-mono);font-size:var(--text-small);margin-inline:auto;padding:.4rem .9rem;position:fixed;inset-block-end:1.5rem;inset-inline:0}.prose{--post-accent-cover:light-dark(color-mix(in oklab, var(--post-accent) 85%, black),color-mix(in oklab, var(--post-accent) 95%, white));--em-bold-bg:var(--post-accent-cover);--em-bold-fg:var(--bg);--em-italic-fg:var(--post-accent-cover)}.prose strong{border-radius:var(--radius);background:var(--em-bold-bg);color:var(--em-bold-fg);padding:.05em .25em}.prose :is(h1,h2,h3,h4,h5,h6) strong,.prose .callout-title strong{background:0 0;padding:0}.prose em{color:var(--em-italic-fg);font-weight:var(--em-italic-weight)}.prose ul>li::marker{content:"▸  ";color:var(--fg)}.prose ul ul>li::marker{content:"▹  "}.prose ul ul ul>li::marker{content:"•  "}.prose ul ul ul ul>li::marker{content:"◦  "}.prose ol>li::marker{font-family:var(--font-mono);color:var(--fg);font-size:1.15em;font-weight:700}.prose ul.contains-task-list{padding-inline-start:.2em}.prose li.task-list-item{padding-inline-start:1.7em;list-style:none;position:relative}.prose li.task-list-item::marker{content:""}.prose li.task-list-item input[type=checkbox]{opacity:0;position:absolute}.prose li.task-list-item:before{content:"";border:2px solid var(--check-edge);background:var(--check-box);block-size:.9em;inline-size:.9em;position:absolute;inset-block-start:.35em;inset-inline-start:0}.prose li.task-list-item:has(input:checked):after{content:"";background-color:var(--check-tick);block-size:1em;inline-size:1em;position:absolute;inset-block-start:.3em;inset-inline-start:.05em;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12.5l5 5L20 6' fill='none' stroke='black' stroke-width='3.5' stroke-linecap='square'/%3E%3C/svg%3E") 50%/90% no-repeat}.prose hr,.pg-rule,.prose section[data-footnotes]:before{inline-size:var(--rule-length);block-size:var(--rule-weight);background:repeating-linear-gradient(to right, var(--rule-core) 0 var(--rule-dot), transparent var(--rule-dot) calc(var(--rule-dot) + var(--rule-gap)));border:0;margin-block:3rem;margin-inline:auto;display:block;mask:linear-gradient(90deg,#0000,#000 35% 65%,#0000)}.prose table{border-collapse:collapse;inline-size:100%;font-size:var(--text-small);margin-block:1.75rem}.prose :is(th,td){padding:var(--table-cell-pad);border:var(--border) solid var(--table-edge);text-align:start;vertical-align:top}.prose th{background:var(--table-head-bg);font-weight:700}@media (width<=30rem){.prose table{display:block;overflow-x:auto}}:root{--icon-external:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='square'%3E%3Cpath d='M17 13v6H5V7h6'/%3E%3Cpath d='M14 4h6v6'/%3E%3Cpath d='M20 4l-8 8'/%3E%3C/svg%3E");--icon-internal:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='square'%3E%3Cpath d='M4 6v5a3 3 0 0 0 3 3h11'/%3E%3Cpath d='M15 10l4 4-4 4'/%3E%3C/svg%3E");--link-underline-style:dashed;--link-underline-thickness:2px;--link-underline-offset:4px;--post-accent-fill:light-dark(color-mix(in oklab, var(--accent-day,var(--accent)) 85%, black),color-mix(in oklab, var(--accent-day,var(--accent)) 95%, white));--image-link-shadow-duration:.9s;--image-link-shadow-ease:cubic-bezier(.65, 0, .35, 1)}html :is(main,footer) a:not(:where(.chip,.heading-anchor,footer .credits a,footer .version a,footer .icon-link)){color:var(--accent-day,var(--accent));text-decoration-line:underline;text-decoration-style:var(--link-underline-style);text-decoration-thickness:var(--link-underline-thickness);text-underline-offset:var(--link-underline-offset);background:0 0;padding-block:2px;padding-inline:1px}.prose a:after{content:"";block-size:.7em;inline-size:.7em;mask:var(--icon-internal) center / contain no-repeat;background-color:currentColor;margin-inline-start:.22em;display:inline-block}.prose a[href^=http]:not([href*=lsantos\.dev]):not([href*=lsantos\.me]):after{mask-image:var(--icon-external)}.prose a:is([data-footnote-ref],[data-footnote-backref],.heading-anchor,.bookmark):after,.prose a:has(img):after,.prose figure a:after{content:none}html :is(main,footer) a:not(:where(.chip,.heading-anchor,.bookmark,footer .credits a,footer .version a,footer .icon-link)):hover,html :is(main,footer) a:not(:where(.chip,.heading-anchor,.bookmark,footer .credits a,footer .version a,footer .icon-link)):focus-visible{background:var(--post-accent-fill);color:var(--bg);text-decoration-line:none}html :is(main,footer) a:has(img):not(.bookmark),html :is(main,footer) a.lyt-playbtn,html :is(main,footer) a.ltv-playbtn,html :is(main,footer) figure a{text-decoration-line:none}html :is(main,footer) a:has(img):not(.bookmark):hover,html :is(main,footer) a:has(img):not(.bookmark):focus-visible,html :is(main,footer) a.lyt-playbtn:hover,html :is(main,footer) a.lyt-playbtn:focus-visible,html :is(main,footer) a.ltv-playbtn:hover,html :is(main,footer) a.ltv-playbtn:focus-visible,html :is(main,footer) figure a:hover,html :is(main,footer) figure a:focus-visible{color:inherit;animation:image-link-shadow-drift var(--image-link-shadow-duration) var(--image-link-shadow-ease) 1 forwards;background:0 0;text-decoration-line:none}@keyframes image-link-shadow-drift{0%{box-shadow:0 0 0 0 var(--accent-day,var(--accent))}to{box-shadow:14px 11px 0 0 var(--accent-day,var(--accent))}}@media (prefers-reduced-motion:reduce){html :is(main,footer) a:has(img):not(.bookmark):hover,html :is(main,footer) a:has(img):not(.bookmark):focus-visible,html :is(main,footer) a.lyt-playbtn:hover,html :is(main,footer) a.lyt-playbtn:focus-visible,html :is(main,footer) a.ltv-playbtn:hover,html :is(main,footer) a.ltv-playbtn:focus-visible,html :is(main,footer) figure a:hover,html :is(main,footer) figure a:focus-visible{box-shadow:8px 8px 0 0 var(--accent-day,var(--accent));animation:none}}.prose a.link-unwritten{color:var(--link-unwritten);text-decoration:line-through 1px}.prose a.link-unwritten:hover,.prose a.link-unwritten:focus-visible{background:var(--link-unwritten);color:var(--bg)}.expressive-code figure{position:relative}.expressive-code figure pre>code{padding-block-end:calc(var(--ec-codePadBlk) + 1.75rem)}.expressive-code figure pre{min-block-size:6rem}.expressive-code figure pre:after{--lang-chip-ink:oklch(from var(--code-background,var(--ec-codeBg)) clamp(0, calc((.6 - l) * 100), 1) 0 0);content:attr(data-language);border:3px double var(--lang-chip-ink);border-radius:var(--radius);color:var(--lang-chip-ink);font-family:var(--font-mono);font-size:var(--text-tiny);letter-spacing:.06em;text-transform:uppercase;pointer-events:none;background:0 0;padding:.1em .5em;position:absolute;inset-block-end:.5rem;inset-inline-end:.5rem}@media (width<=47.99rem){.expressive-code figure pre{min-block-size:2rem}.expressive-code figure pre>code{padding-block-end:calc(var(--ec-codePadBlk) + 1rem)}.expressive-code figure pre:after{line-height:1;inset-block-end:.4rem;inset-inline-end:.4rem}}.prose{font-family:var(--font-body);overflow-wrap:break-word;--text-small:calc(.9rem * var(--font-scale));--text-tiny:calc(.75rem * var(--font-scale))}.prose :is(figure,.expressive-code)+:is(figure,.expressive-code){margin-block-start:var(--block-spacing)}main h1:before{content:"> ";color:var(--accent-day,var(--accent))}main h1:after{content:"";background-image:repeating-linear-gradient(to right, var(--heading-rule) 0 10px, transparent 10px 16px);block-size:1px;margin-block-start:.3em;display:block;mask-image:linear-gradient(90deg,#000 0 55%,#0000 100%)}.page-count{color:var(--muted);font-size:.5em}:root{--cc-callout-tint:14%;--cc-frame-width:4px}.callout:not([data-callout=quote]){--callout-color:light-dark(var(--rc-color-light,var(--rc-color-default,#888)),var(--rc-color-dark,var(--rc-color-default,#888)));border-style:double;border-color:var(--callout-color);border-width:var(--cc-frame-width);border-inline-start-style:solid;border-inline-start-width:var(--border-card-edge);border-radius:var(--radius);mix-blend-mode:normal;background:0 0;padding:0}.callout:is([data-callout=tip],[data-callout=hint]){--callout-color:var(--brand-green)}.callout:is([data-callout=caution],[data-callout=important]){--callout-color:var(--brand-red)}.callout:is([data-callout=question],[data-callout=help],[data-callout=faq]){--callout-color:var(--brand-blue)}.callout:not([data-callout=quote])>.callout-title{border-block-end:var(--border) solid var(--callout-color);background:color-mix(in oklab, var(--callout-color) var(--cc-callout-tint), transparent);color:var(--callout-color);margin:0;padding:.5em .75em}.callout:not([data-callout=quote])>.callout-title>.callout-title-text{font-weight:700}.callout:not([data-callout=quote])>.callout-content{padding:.75em 1em}:root{--cc-marker-fill:13%;--cc-marker-edge:35%;--cc-tab-close-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='square'%3E%3Cpath d='M5 5l14 14M19 5L5 19'/%3E%3C/svg%3E")}.expressive-code{--ec-brdRad:0;--ec-frm-edTabBrdRad:0;--ec-tm-markBg:color-mix(in oklab, var(--brand-yellow) var(--cc-marker-fill), transparent);--ec-tm-markBrdCol:color-mix(in oklab, var(--brand-yellow) var(--cc-marker-edge), transparent)}.prose .expressive-code .frame,.prose .expressive-code .frame .header,.prose .expressive-code pre{border-radius:0}.prose .expressive-code .frame{box-shadow:none}.prose .expressive-code .frame.has-title:not(.is-terminal) .header{background:var(--rule);border-radius:0}.prose .expressive-code .frame.has-title:not(.is-terminal) .title{background:var(--rule);color:var(--fg);font-family:var(--font-mono);font-size:var(--text-tiny);letter-spacing:.02em;border-radius:0;padding-inline-end:calc(var(--ec-uiPadInl) + 1.4em);font-weight:700;position:relative;box-shadow:2px 2px #00000059}@media (width<=47.99rem){.prose .expressive-code .copy button{block-size:2rem;inline-size:2rem}.prose .expressive-code .copy button:after{margin:.38rem}}.prose .expressive-code .frame.has-title:not(.is-terminal) .title:after{content:"";background-color:var(--muted);opacity:.85;pointer-events:none;block-size:.7em;inline-size:.7em;mask:var(--cc-tab-close-icon) center / contain no-repeat;-webkit-mask:var(--cc-tab-close-icon) center / contain no-repeat;border:none;margin-block:auto;position:absolute;inset:0 .6em 0 auto}:root{--footnote-wide-breakpoint:70rem;--footnote-aside-width:9rem;--footnote-aside-gap:1.5rem}.prose section[data-footnotes]{color:var(--muted);font-size:var(--text-small)}.prose section[data-footnotes] p{margin-block:.4rem}.prose sup:has(>a[data-footnote-ref]):before,.prose sup:has(>a[data-footnote-ref]):after{color:var(--accent);user-select:none}.prose sup:has(>a[data-footnote-ref]):before{content:"["}.prose sup:has(>a[data-footnote-ref]):after{content:"]"}.prose a[data-footnote-ref]{text-decoration:none}.prose sup.footnote-ref-highlighted{background-color:var(--note-highlight)}.footnote-aside{transition:transform var(--note-grow-duration) var(--note-grow-ease);display:none}.footnote-aside.footnote-aside-grow{transform-origin:0 0;transform:scale(1.02)}.footnote-aside p{margin:0}.footnote-aside p+p{margin-block-start:.5rem}.footnote-aside em{color:inherit;font-weight:inherit}@media (width<=69.99rem){.prose section[data-footnotes]:before{content:""}.prose section[data-footnotes] h2{clip-path:none;block-size:auto;inline-size:auto;color:var(--fg);white-space:normal;margin:0 0 1rem;font-size:1.65em;position:static;overflow:visible}}@media (width>=70rem){.prose section[data-footnotes]{display:none}.footnote-aside{float:right;clear:right;width:var(--footnote-aside-width);margin-top:.15rem;margin-bottom:.4rem;margin-left:var(--footnote-aside-gap);margin-right:calc(-1 * (var(--footnote-aside-width) + var(--footnote-aside-gap)));color:var(--muted);border-inline-start:var(--border-card-edge) solid var(--fg);padding-inline-start:.6rem;font-size:.82rem;font-style:italic;line-height:1.5;display:block}}@media print{.prose section[data-footnotes]{display:block}.footnote-aside{display:none}}.twitter-tweet,.deck,.spotify,.raw-embed,.video-figure,.video-standalone,lite-youtube,lite-vimeo{max-width:100%;margin-inline:auto}lite-youtube{max-width:min(720px,100%)}twitterwidget,iframe[id^=twitter-widget-]{max-width:100%;margin-inline:auto!important;display:block!important}.katex-display{position:relative}.math-copy{border:var(--border) solid var(--rule);border-radius:var(--radius);background:var(--bg);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-tiny);cursor:pointer;opacity:0;transition:opacity var(--duration) var(--ease);padding:.15rem .5rem;line-height:1.4;position:absolute;top:0;right:0}.katex-display:hover .math-copy,.math-copy:focus-visible{opacity:1}.math-copy:hover{color:var(--accent);border-color:var(--accent)}:root{--qc-pad:1.5rem 1.75rem;--qc-radius:0;--qc-gap:.6rem;--qc-para-gap:.5em;--qc-indent:1.5rem;--qc-dropcap-size:2.75em;--qc-border-width:4px;--qc-bg:transparent;--qc-fg:var(--fg);--qc-muted-fg:var(--muted);--qc-border:light-dark(var(--brand-purple),color-mix(in oklab, var(--brand-purple) 75%, white));--qc-dropcap-fg:var(--qc-border);--qc-glyph-size:240px;--qc-glyph-inset:-.08em;--qc-glyph:light-dark(oklab(0% none none/.03),oklab(100% 0 5.96046e-8/.06));--qc-rule-weight:2px;--qc-rule-extent:50%;--qc-rule-image:repeating-linear-gradient(to right, var(--qc-border) 0 10px, transparent 10px 16px);--qc-rule-mask:linear-gradient(to right, black 70%, transparent);--qc-icon-copy:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='square'%3E%3Crect x='3' y='3' width='13' height='13'/%3E%3Crect x='8' y='8' width='13' height='13'/%3E%3C/svg%3E");--qc-copy-gutter:1.75rem}.prose blockquote.callout[data-callout=quote],.prose .callout[data-callout=quote],.prose blockquote:not(.callout):not(.twitter-tweet){isolation:isolate;margin-block:1.75rem;margin-inline:var(--qc-indent) 0;padding:var(--qc-pad);border-style:double;border-color:var(--qc-border);border-width:var(--qc-border-width);border-inline-start-style:solid;border-inline-start-width:var(--border-card-edge);border-radius:var(--qc-radius);mix-blend-mode:normal;background:var(--qc-bg);color:var(--qc-fg);flex-direction:column;padding-inline-end:var(--qc-copy-gutter);display:flex;position:relative;overflow:hidden}@media (width<=47.99rem){.prose blockquote.callout[data-callout=quote],.prose .callout[data-callout=quote]{inline-size:auto}}.prose .callout[data-callout=quote]>*,.prose blockquote:not(.callout):not(.twitter-tweet)>*{z-index:1;position:relative}.prose .callout[data-callout=quote] .callout-title-icon{display:none}.prose .callout[data-callout=quote]>.callout-title{font-family:var(--font-mono);font-size:var(--text-small);color:var(--qc-muted-fg);order:2;margin:0;margin-block-start:var(--qc-gap);padding-block-start:calc(.5rem + var(--qc-rule-weight));font-style:normal;position:relative}.prose .callout[data-callout=quote]>.callout-title:before{content:"";inset-block-start:0;inset-inline:0 calc(100% - var(--qc-rule-extent));block-size:var(--qc-rule-weight);background:var(--qc-rule-image);mask:var(--qc-rule-mask);position:absolute}.prose .callout[data-callout=quote] .callout-title-text:before{content:"» "}.prose .callout[data-callout=quote] .callout-title-text{font-weight:700;text-decoration:underline}.prose .callout[data-callout=quote]>.callout-content{order:1;overflow:visible}.prose .callout[data-callout=quote] .callout-content,.prose blockquote:not(.callout):not(.twitter-tweet){font-style:italic}.prose .callout[data-callout=quote] .callout-content>p,.prose blockquote:not(.callout):not(.twitter-tweet)>p{margin:0}.prose .callout[data-callout=quote] .callout-content>p+p,.prose blockquote:not(.callout):not(.twitter-tweet)>p+p{margin-block-start:var(--qc-para-gap)}.prose .callout[data-callout=quote]:before,.prose blockquote:not(.callout):not(.twitter-tweet):before{content:"“";z-index:0;font-family:Georgia,Times New Roman,serif;font-style:normal;font-size:var(--qc-glyph-size);color:var(--qc-glyph);pointer-events:none;line-height:1;position:absolute;inset-block-start:var(--qc-glyph-inset);inset-inline-start:var(--qc-glyph-inset)}.prose .callout[data-callout=quote] .callout-content>p:first-of-type:first-letter,.prose blockquote:not(.callout):not(.twitter-tweet)>p:first-of-type:first-letter{float:inline-start;font-family:var(--font-display);font-size:var(--qc-dropcap-size);color:var(--qc-dropcap-fg);margin-inline-end:.1em;font-style:normal;line-height:.82}.prose .callout[data-callout=quote]>.qc-copy,.prose blockquote:not(.callout):not(.twitter-tweet)>.qc-copy{width:1.5rem;height:1.5rem;color:var(--qc-muted-fg);appearance:none;cursor:pointer;opacity:0;transition:opacity var(--duration) var(--ease), color var(--duration) var(--ease);background:0 0;border:0;border-radius:0;padding:.2rem;position:absolute;top:.1rem;right:.1rem}.qc-copy:before{content:"";width:100%;height:100%;mask:var(--qc-icon-copy) center / contain no-repeat;background-color:currentColor;display:block}.qc-copy:hover,.qc-copy:focus-visible{color:var(--accent)}.prose .callout[data-callout=quote]:hover .qc-copy,.prose .callout[data-callout=quote]:focus-within .qc-copy,.prose blockquote:not(.callout):not(.twitter-tweet):hover .qc-copy,.prose blockquote:not(.callout):not(.twitter-tweet):focus-within .qc-copy,.qc-copy:focus-visible{opacity:1}:root{--em-pad:1.25rem 1.75rem;--em-dropcap-size:2.75em;--em-dropcap-fg:var(--accent-day);--em-underline-width:3px}.prose .emphasis{padding:var(--em-pad);border-block:var(--qc-border-width) double light-dark(#000,#fff);border-inline:var(--border-card-edge) solid var(--accent-day);color:var(--fg);text-wrap:pretty;text-decoration-line:underline;text-decoration-color:var(--accent-day);text-decoration-thickness:var(--em-underline-width);text-underline-offset:.22em;text-decoration-skip-ink:auto;background:0 0;margin-block:2rem;margin-inline-start:var(--qc-indent);font-size:1.05em;line-height:1.5}.prose .emphasis>:first-child{margin-block-start:0}.prose .emphasis>:last-child{margin-block-end:0}.prose .emphasis .em-cap{font-family:var(--font-display);font-size:var(--em-dropcap-size);vertical-align:middle;color:var(--em-dropcap-fg);margin-inline-end:.1em;font-style:normal;line-height:.82;display:inline-block}@media (width<=47.99rem){.prose .emphasis{padding-inline:1rem}}.chip{--chip-ink:light-dark(color-mix(in oklab, var(--chip-color) 50%, black),color-mix(in oklab, var(--chip-color) 52%, white));border:3px double var(--chip-ink);border-radius:var(--radius);color:var(--chip-ink);font-family:var(--font-mono);font-size:var(--text-tiny);letter-spacing:.04em;transition:background-color var(--duration) var(--ease), color var(--duration) var(--ease);background:0 0;padding:.15rem .55rem;text-decoration:none;display:inline-block}.chip:hover,.chip:focus-visible{background:var(--chip-ink);color:var(--bg)}.chips{flex-wrap:wrap;gap:.5rem;margin-block-start:3rem;padding:0;list-style:none;display:flex}.chips li::marker{content:""}.listing{letter-spacing:-.01em;padding:0;list-style:none}@media (width>=70rem){.listing,.listing-heading{inline-size:var(--content-width);padding-inline:var(--shell-inset);transform:translateX(calc(var(--content-width) / -2));margin-inline-start:50%}}.listing-row{color:var(--muted);font-family:var(--font-mono);border-block-end:0;align-items:center;padding-block:.65rem;font-size:.8rem;display:flex;position:relative}.listing-row:after{content:"";background-image:repeating-linear-gradient(to right, color-mix(in oklab, var(--muted) 45%, transparent) 0 10px, transparent 10px 16px);block-size:1px;inline-size:75%;position:absolute;inset-block-end:0;inset-inline-start:0;mask-image:linear-gradient(90deg,#000 0 55%,#0000 100%)}.listing>li.listing-row:last-child:after,.listing>li:last-child>details>.listing-row:after{content:none}.listing-date{font-family:var(--font-display);flex:none}.listing-title{min-inline-size:0;color:var(--fg);font-family:var(--font-display);overflow-wrap:break-word;flex:0 auto;margin-inline-start:.9rem;font-size:1.05rem;font-weight:400;text-decoration:none}.listing-title:hover,.listing-title:focus-visible{background:var(--accent-day,var(--accent));color:var(--bg)}.listing-leader{white-space:nowrap;opacity:.5;flex:1 1 0;min-inline-size:0;margin-inline:.6rem;overflow:hidden}.listing-label{color:var(--accent-day,var(--accent));flex:none;text-decoration:none}.listing-label:hover,.listing-label:focus-visible{background:var(--accent-day,var(--accent));color:var(--bg)}.listing-label-plain{color:var(--accent-day,var(--accent));flex:none}.listing-figure{font-variant-numeric:tabular-nums;font-family:var(--font-display);flex:none;margin-inline-start:.7rem}@media (width<=34rem){.listing-row{flex-wrap:wrap}.listing-title{flex-basis:100%;order:-1;margin-block-end:.3rem;margin-inline-start:0}.listing-leader{display:none}.listing-label,.listing-label-plain{margin-inline-start:.6rem}}.listing-accordion>li{display:block}.listing-accordion summary{cursor:pointer;list-style:none}.listing-accordion summary::-webkit-details-marker{display:none}.listing-accordion summary:focus-visible{outline:2px solid var(--accent-day,var(--accent));outline-offset:2px}.listing-marker{color:var(--muted);font-family:var(--font-display);flex:none;margin-inline-end:.6rem}.listing-marker:before{content:"[+]"}[open]>summary .listing-marker:before{content:"[-]"}.listing-accordion summary:hover .listing-marker{color:var(--accent-day,var(--accent))}.listing-panel{padding-block-end:.5rem;padding-inline-start:2.4rem}@media (width>=70rem){.listing-panel .listing{inline-size:auto;margin-inline-start:0;padding-inline:0;transform:none}}.listing-panel .listing>li.listing-row:last-child:after{content:""}.kicker{color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;margin-block-end:0;font-size:.8rem}.kicker+h1{margin-block-start:.2rem}.about{color:var(--muted);max-inline-size:var(--measure);font-family:var(--font-subtitle);margin-block:.5rem 1rem;font-size:16px;line-height:1.5}.listing-private,.listing-scheduled{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;margin-inline-end:.4em;font-size:.85em}.listing-private{color:var(--brand-red)}.listing-scheduled{color:var(--brand-yellow);align-items:center;gap:.3em;display:inline-flex}.listing-scheduled svg{block-size:1em;inline-size:1em}.lab-demo{border:var(--border) double var(--rule);border-inline-start:var(--border-card-edge) solid var(--rule);border-radius:var(--radius)}.lab-demo .lab-source{border-block-start:var(--border) solid var(--rule);margin:0}.lab-demo .lab-source a{color:var(--muted);font-family:var(--font-mono);font-size:var(--text-tiny);letter-spacing:.04em;text-transform:uppercase;background:0 0;padding:.4rem .75rem;text-decoration:none;display:block}.lab-demo .lab-source a:hover,.lab-demo .lab-source a:focus-visible{color:var(--accent);background:0 0}.lab-demo .lab-source code{text-transform:none}.lab-demo .lab-source-code{border-block-start:var(--border) solid var(--rule)}.lab-demo .lab-source-code .expressive-code{margin:0}.lab-demo .lab-source-copy{z-index:1;border:var(--border) solid var(--rule);border-radius:var(--radius);background:var(--bg);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-tiny);text-transform:uppercase;cursor:pointer;padding:.3rem .5rem;position:absolute;inset-block-start:.4rem;inset-inline-end:.4rem}.lab-demo .lab-source-copy:hover,.lab-demo .lab-source-copy:focus-visible{border-color:var(--accent);color:var(--accent)}*,:before,:after{box-sizing:border-box}html{background:var(--bg);scrollbar-width:thin;scrollbar-color:var(--fg) var(--bg);scroll-padding-block-start:calc(var(--icon-btn-hit) + .8rem)}@supports selector(::-webkit-scrollbar){html{scrollbar-width:auto;scrollbar-color:auto}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-corner{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--fg);border-radius:0}}body{padding:0 var(--gutter);min-block-size:100dvh;color:var(--fg);font-family:var(--font-display);font-size:var(--text-base);line-height:var(--leading);letter-spacing:var(--tracking-body);word-spacing:var(--word-spacing-body);-webkit-font-smoothing:var(--font-smoothing);text-wrap:pretty;background:0 0;flex-direction:column;margin:0;display:flex}header,main,footer{inline-size:100%;margin-inline:auto}main{max-inline-size:var(--measure)}header,footer{max-inline-size:var(--shell-narrow-width)}main{flex:1 0 auto}header{z-index:2;background:var(--bg);position:sticky;inset-block-start:0}.skip-link{background:var(--bg);color:var(--fg);border:1px solid var(--rule);z-index:1;border-radius:4px;padding:.5rem 1rem;position:absolute;top:-3rem;left:1rem}.skip-link:focus-visible{top:.5rem}footer{color:var(--muted);margin-block:2.5rem 3rem;padding-block-start:1rem;font-size:.85rem}@media (width>=70rem){header,footer{max-inline-size:var(--shell-width)}}footer .rule{align-items:center;margin-block-end:10px;display:flex}footer .rule-edge{color:var(--muted);font-family:var(--font-display);letter-spacing:.06em}footer .rule-fill{color:var(--muted);font-family:var(--font-display);letter-spacing:.4em;white-space:nowrap;flex:1;overflow:hidden}footer .row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}footer .copyright,footer .links{margin-block-start:0}footer .copyright{margin-block-end:.35rem;margin-inline-end:1rem}footer .version{text-align:center;margin-block:.75rem 0}footer .credits{text-align:center;margin-block:2px 0;font-size:calc(.75rem - 2pt)}footer .credits a{color:inherit;background:0 0;margin:-.95rem -.5rem;padding:.95rem .5rem;text-decoration:none;display:inline-block}footer .credits a:hover{text-decoration:underline dotted}footer .credits a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}footer .version a{color:inherit;background:0 0;text-decoration:none}footer .version a:hover{text-decoration:underline dotted}footer .version a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}footer .version,footer .links{font-family:var(--font-display);font-size:.75rem}footer .links{color:var(--muted);flex-wrap:wrap;align-items:center;display:flex}@media (width<=47.99rem){footer .row{justify-content:center}footer .copyright{text-align:center;margin-inline-end:0}footer .copyright .rights{display:block}footer .links{justify-content:center;inline-size:100%}}footer a{background:0 0;padding-block:2px;padding-inline:1px;text-decoration:none}footer a:hover,footer a:focus-visible{background:var(--accent-day);color:var(--bg)}footer .icon-link{min-inline-size:var(--icon-btn-hit);min-block-size:var(--icon-btn-hit);color:var(--muted);font-size:var(--icon-btn-glyph);background:0 0;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex;position:relative}footer .icon-link svg{position:relative}footer .icon-link:before{content:"";inline-size:var(--icon-btn-chip);block-size:var(--icon-btn-chip);border:var(--btn-border);border-radius:var(--radius);background:var(--bg);pointer-events:none;position:absolute}footer .icon-link:hover,footer .icon-link:focus-visible{color:var(--accent)}footer .icon-link:hover:before,footer .icon-link:focus-visible:before{border-color:var(--accent)}footer .icon-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.01em;font-weight:400}h1,h2,h3{text-wrap:balance;line-height:1.25}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}a{color:var(--accent);text-underline-offset:.2em}img{max-width:100%;height:auto}figure{margin-block:var(--block-spacing);margin-inline:0}figure:has(img):not(.video-figure,.raw-embed,.lab-demo,.missing,.deck,.spotify,.twitter-tweet){inline-size:var(--figure-width);margin-inline:auto}figure>p{margin:0}figure img{border:4px double light-dark(var(--post-accent,var(--rule)),color-mix(in oklab, var(--post-accent,var(--rule)) 75%, white));width:100%;box-shadow:var(--code-shadow-offset) var(--code-shadow-offset) 0 var(--code-shadow-color);border-radius:4px;display:block}figcaption{color:var(--muted);text-align:center;margin-block-start:.5rem;font-size:.85rem;line-height:1.45}pre{border:1px solid var(--rule);border-radius:4px;padding:1rem;overflow-x:auto}article>*{margin-inline:var(--cover-frame-inset)}article>.cover-hero{margin-inline:0}.lang-switch[data-astro-cid-3s4v7zxg]{align-items:center;display:inline-flex}.lang-track[data-astro-cid-3s4v7zxg]{inline-size:calc(var(--icon-btn-chip) * 2);block-size:var(--icon-btn-hit);cursor:pointer;align-items:center;text-decoration:none;display:inline-flex;position:relative}.lang-track[data-astro-cid-3s4v7zxg]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lang-rect[data-astro-cid-3s4v7zxg]{inline-size:100%;block-size:var(--icon-btn-chip);border:var(--btn-border);border-radius:var(--radius);background:0 0;display:block;position:relative;overflow:hidden}.lang-square[data-astro-cid-3s4v7zxg]{z-index:1;inline-size:50%;transition:transform var(--duration) steps(2, jump-none);background:var(--brand-green);color:#000;font-family:var(--font-subtitle);font-size:var(--icon-btn-glyph);justify-content:center;align-items:center;display:flex;position:absolute;inset-block:0;inset-inline-start:0;transform:translate(0%)}.lang-switch[data-astro-cid-3s4v7zxg][data-current=en] .lang-square[data-astro-cid-3s4v7zxg]{background:var(--brand-red);color:#fff;transform:translate(100%)}.lang-other[data-astro-cid-3s4v7zxg]{inline-size:50%;transition:transform var(--duration) steps(2, jump-none);color:var(--muted);font-family:var(--font-subtitle);font-size:var(--icon-btn-glyph);justify-content:center;align-items:center;display:flex;position:absolute;inset-block:0;inset-inline-end:0;transform:translate(0%)}.lang-switch[data-astro-cid-3s4v7zxg][data-current=en] .lang-other[data-astro-cid-3s4v7zxg]{transform:translate(-100%)}.nav-links[data-astro-cid-r2ikyban]{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;align-items:center;font-size:calc(.75rem + 2pt);display:inline-flex}.nav-links[data-astro-cid-r2ikyban]>a[data-astro-cid-r2ikyban]{margin-inline-end:.5rem}.nav-links[data-astro-cid-r2ikyban]>a[data-astro-cid-r2ikyban]:last-child{margin-inline-end:0}.nav-links[data-astro-cid-r2ikyban] a[data-astro-cid-r2ikyban]{color:inherit;text-underline-offset:3px;background-color:#0000;background-clip:content-box;margin-block:-.7rem;padding-block:.7rem;padding-inline:1px;text-decoration-line:underline;display:inline-block}.nav-links[data-astro-cid-r2ikyban] a[data-astro-cid-r2ikyban]:hover,.nav-links[data-astro-cid-r2ikyban] a[data-astro-cid-r2ikyban]:focus-visible,.nav-links[data-astro-cid-r2ikyban] a[data-astro-cid-r2ikyban][aria-current=page]{background-color:var(--accent-day);color:var(--bg);text-decoration-line:none}.search-trigger[data-astro-cid-6xoupbfm]{align-items:center;display:inline-flex;position:relative}.sx-open[data-astro-cid-6xoupbfm]{min-inline-size:var(--icon-btn-hit);min-block-size:var(--icon-btn-hit);color:var(--muted);font-size:var(--icon-btn-glyph);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding-inline:.5rem;text-decoration:none;display:inline-flex;position:relative}.sx-open[data-astro-cid-6xoupbfm]:before{content:"";inset-inline:0;inset-block:calc((var(--icon-btn-hit) - var(--icon-btn-chip)) / 2);border:var(--btn-border);border-radius:var(--radius);background:var(--bg);pointer-events:none;position:absolute}.sx-open-icon[data-astro-cid-6xoupbfm],.sx-hint[data-astro-cid-6xoupbfm]{position:relative}.sx-label[data-astro-cid-6xoupbfm]{font-family:var(--font-display);color:var(--muted);margin-inline-end:.4rem;font-size:.85rem;display:none;position:relative}.sx-hint[data-astro-cid-6xoupbfm]{font-family:var(--font-mono);font-size:var(--text-tiny);letter-spacing:.03em;color:var(--muted);white-space:nowrap;visibility:hidden;margin-inline-start:.5rem}.sx-open[data-astro-cid-6xoupbfm]:hover,.sx-open[data-astro-cid-6xoupbfm]:focus-visible{color:var(--accent)}.sx-open[data-astro-cid-6xoupbfm]:hover:before,.sx-open[data-astro-cid-6xoupbfm]:focus-visible:before{border-color:var(--accent)}.sx-open[data-astro-cid-6xoupbfm]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sx-dialog[data-astro-cid-6xoupbfm]{border:3px double var(--fg);border-radius:var(--radius);background:var(--bg);max-block-size:70dvh;inline-size:min(92vw,36rem);color:var(--fg);padding:1rem}.sx-dialog[data-astro-cid-6xoupbfm][open]{flex-direction:column;display:flex}.sx-dialog[data-astro-cid-6xoupbfm][open]>[data-astro-cid-6xoupbfm]+[data-astro-cid-6xoupbfm]{margin-block-start:.6rem}.sx-dialog[data-astro-cid-6xoupbfm]::backdrop{backdrop-filter:blur(5px);background-image:repeating-linear-gradient(0deg, color-mix(in oklab, var(--fg) 14%, transparent) 0 3px, transparent 3px 6px)}.sx-row[data-astro-cid-6xoupbfm]{font-family:var(--font-mono);border-block-end:var(--border) solid var(--rule);align-items:center;padding-block-end:.5rem;font-size:1rem;display:flex;position:relative}.sx-prompt[data-astro-cid-6xoupbfm]{inline-size:1.5ch;color:var(--accent);flex-shrink:0}.sx-input[data-astro-cid-6xoupbfm]{min-inline-size:0;color:var(--fg);font:inherit;caret-color:#0000;background:0 0;border:0;flex:1;font-family:inherit}.sx-input[data-astro-cid-6xoupbfm]:focus{outline:none}.sx-cursor[data-astro-cid-6xoupbfm]{background:var(--accent-day,var(--accent));opacity:0;pointer-events:none;block-size:1.15em;inline-size:1ch;position:absolute;inset-block-start:.1em;inset-inline-start:1.5ch}.sx-input[data-astro-cid-6xoupbfm]:focus~.sx-cursor[data-astro-cid-6xoupbfm]{opacity:1}@media (prefers-reduced-motion:no-preference){.sx-input[data-astro-cid-6xoupbfm]:focus~.sx-cursor[data-astro-cid-6xoupbfm]{animation:1s steps(2,jump-none) infinite sx-blink}}@keyframes sx-blink{0%,49%{opacity:1}50%,to{opacity:0}}.sx-status[data-astro-cid-6xoupbfm]{color:var(--muted);font-size:var(--text-tiny);margin:0}.sx-results[data-astro-cid-6xoupbfm]{margin:0;padding:0;list-style:none;overflow-y:auto}.sx-results[data-astro-cid-6xoupbfm] li+li{border-block-start:var(--border) solid var(--rule)}.sx-results[data-astro-cid-6xoupbfm] a{color:var(--fg);align-items:baseline;padding-block:.5rem;text-decoration:none;display:flex}.sx-results[data-astro-cid-6xoupbfm] a:hover,.sx-results[data-astro-cid-6xoupbfm] a:focus-visible{color:var(--accent)}.sx-results[data-astro-cid-6xoupbfm] a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sx-results[data-astro-cid-6xoupbfm] .sx-num{inline-size:1.4em;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-tiny);flex-shrink:0;margin-inline-end:.6rem}.sx-more[data-astro-cid-6xoupbfm]:empty{display:none}.sx-more[data-astro-cid-6xoupbfm] a{color:var(--accent);font-size:var(--text-tiny)}.sx-keys[data-astro-cid-6xoupbfm]{border-block-start:1px solid var(--rule);color:var(--muted);font-family:var(--font-mono);font-size:var(--text-tiny);margin:.6rem 0 0;padding-block-start:.5rem}@media (hover:none){.sx-keys[data-astro-cid-6xoupbfm]{display:none}}.settings-panel[data-astro-cid-vcjvz3bs]{position:relative}.settings-panel[data-astro-cid-vcjvz3bs]:not([hidden]){display:inline-flex}.settings-panel[data-astro-cid-vcjvz3bs][hidden]{visibility:hidden;min-inline-size:var(--icon-btn-hit);min-block-size:var(--icon-btn-hit);display:inline-flex}.sp-icon[data-astro-cid-vcjvz3bs]{position:relative}.sp-open[data-astro-cid-vcjvz3bs]{min-inline-size:var(--icon-btn-hit);min-block-size:var(--icon-btn-hit);color:var(--muted);font-size:var(--icon-btn-glyph);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.sp-open[data-astro-cid-vcjvz3bs]:before{content:"";inline-size:var(--icon-btn-chip);block-size:var(--icon-btn-chip);border:var(--btn-border);border-radius:var(--radius);background:var(--bg);pointer-events:none;position:absolute}.sp-open[data-astro-cid-vcjvz3bs]:hover,.sp-open[data-astro-cid-vcjvz3bs]:focus-visible,.sp-open[data-astro-cid-vcjvz3bs][aria-expanded=true]{color:var(--accent)}.sp-open[data-astro-cid-vcjvz3bs]:hover:before,.sp-open[data-astro-cid-vcjvz3bs]:focus-visible:before,.sp-open[data-astro-cid-vcjvz3bs][aria-expanded=true]:before{border-color:var(--accent)}.sp-menu[data-astro-cid-vcjvz3bs]{z-index:60;border:3px double var(--fg);border-radius:var(--radius);background:var(--bg);max-block-size:80dvh;inline-size:18rem;font-family:var(--font-mono);font-size:var(--text-tiny);margin:0;padding:.75rem;position:fixed;overflow-y:auto}.sp-menu[data-astro-cid-vcjvz3bs]:not([popover]):not([hidden]){flex-direction:column;gap:.75rem;display:flex}.sp-menu[data-astro-cid-vcjvz3bs]:popover-open{flex-direction:column;gap:.75rem;display:flex}.sp-heading[data-astro-cid-vcjvz3bs]{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.68rem}.sp-motion[data-astro-cid-vcjvz3bs]{border:0;flex-wrap:wrap;gap:.4rem;margin:0;padding:0;display:flex}.sp-font-size[data-astro-cid-vcjvz3bs],.sp-accent[data-astro-cid-vcjvz3bs],.sp-search-shortcut[data-astro-cid-vcjvz3bs]{border:0;margin:0;padding:0}.sp-motion[data-astro-cid-vcjvz3bs] legend[data-astro-cid-vcjvz3bs],.sp-font-size[data-astro-cid-vcjvz3bs] legend[data-astro-cid-vcjvz3bs],.sp-font-family[data-astro-cid-vcjvz3bs] legend[data-astro-cid-vcjvz3bs],.sp-accent[data-astro-cid-vcjvz3bs] legend[data-astro-cid-vcjvz3bs],.sp-search-shortcut[data-astro-cid-vcjvz3bs] legend[data-astro-cid-vcjvz3bs]{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-block-end:.3rem;padding:0;font-size:.68rem}.sp-motion[data-astro-cid-vcjvz3bs] legend[data-astro-cid-vcjvz3bs],.sp-font-family[data-astro-cid-vcjvz3bs] legend[data-astro-cid-vcjvz3bs],.sp-accent[data-astro-cid-vcjvz3bs] legend[data-astro-cid-vcjvz3bs]{inline-size:100%}.sp-motion-option[data-astro-cid-vcjvz3bs],.sp-step[data-astro-cid-vcjvz3bs],.sp-font-family-option[data-astro-cid-vcjvz3bs],.sp-conway-actions[data-astro-cid-vcjvz3bs] button[data-astro-cid-vcjvz3bs],.sp-reset-all[data-astro-cid-vcjvz3bs]{border:var(--border) solid var(--rule);border-radius:var(--radius);color:var(--fg);font-family:var(--font-mono);font-size:var(--text-tiny);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;background:0 0}.sp-motion-option[data-astro-cid-vcjvz3bs]{padding:.35rem .6rem}.sp-motion-option[data-astro-cid-vcjvz3bs][aria-current=true],.sp-font-family-option[data-astro-cid-vcjvz3bs][aria-current=true]{border-color:var(--accent);color:var(--accent)}.sp-motion-option[data-astro-cid-vcjvz3bs]:hover,.sp-motion-option[data-astro-cid-vcjvz3bs]:focus-visible,.sp-font-family-option[data-astro-cid-vcjvz3bs]:hover,.sp-font-family-option[data-astro-cid-vcjvz3bs]:focus-visible,.sp-conway-actions[data-astro-cid-vcjvz3bs] button[data-astro-cid-vcjvz3bs]:hover,.sp-conway-actions[data-astro-cid-vcjvz3bs] button[data-astro-cid-vcjvz3bs]:focus-visible{border-color:var(--accent)}.sp-step[data-astro-cid-vcjvz3bs]:hover:not(:disabled),.sp-step[data-astro-cid-vcjvz3bs]:focus-visible,.sp-reset-all[data-astro-cid-vcjvz3bs]:hover,.sp-reset-all[data-astro-cid-vcjvz3bs]:focus-visible{border-color:var(--accent);color:var(--accent)}.sp-open[data-astro-cid-vcjvz3bs]:focus-visible,.sp-motion-option[data-astro-cid-vcjvz3bs]:focus-visible,.sp-step[data-astro-cid-vcjvz3bs]:focus-visible,.sp-font-size-row[data-astro-cid-vcjvz3bs] input[data-astro-cid-vcjvz3bs][type=number]:focus-visible,.sp-font-family-option[data-astro-cid-vcjvz3bs]:focus-visible,.sp-reset-all[data-astro-cid-vcjvz3bs]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sp-font-size-row[data-astro-cid-vcjvz3bs]{flex-wrap:wrap;align-items:center;display:flex}.sp-font-size-row[data-astro-cid-vcjvz3bs]>[data-astro-cid-vcjvz3bs]+[data-astro-cid-vcjvz3bs]{margin-inline-start:.3rem}.sp-step[data-astro-cid-vcjvz3bs]{padding:.35rem .5rem}.sp-step[data-astro-cid-vcjvz3bs]:disabled{color:var(--muted);border-color:var(--rule);opacity:.5;cursor:not-allowed}.sp-font-size-row[data-astro-cid-vcjvz3bs] input[data-astro-cid-vcjvz3bs][type=number]{text-align:center;background:var(--bg);inline-size:4.5ch;color:var(--fg);border:var(--border) solid var(--rule);border-radius:var(--radius);font-family:var(--font-mono);font-size:var(--text-tiny);appearance:textfield;flex:none;padding:.3rem .2rem}.sp-font-size-row[data-astro-cid-vcjvz3bs] input[data-astro-cid-vcjvz3bs][type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.sp-font-size-row[data-astro-cid-vcjvz3bs] input[data-astro-cid-vcjvz3bs][type=number]::-webkit-inner-spin-button{appearance:none;margin:0}.sp-font-size-unit[data-astro-cid-vcjvz3bs]{color:var(--muted);font-family:var(--font-mono);font-size:var(--text-tiny)}.sp-font-family[data-astro-cid-vcjvz3bs]{border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.sp-font-family-option[data-astro-cid-vcjvz3bs]{margin-block-end:.4rem;margin-inline-end:.4rem;padding:.35rem .6rem}.sp-row[data-astro-cid-vcjvz3bs]{color:var(--fg);align-items:center;gap:.5rem;display:flex}.sp-row[data-astro-cid-vcjvz3bs]:has(#sp-bg-life:not(:checked))+.sp-conway-details[data-astro-cid-vcjvz3bs]{display:none}@media (hover:none),(pointer:coarse){.sp-row[data-astro-cid-vcjvz3bs]:has(#hp-footnotes),.sp-row[data-astro-cid-vcjvz3bs]:has(#hp-persist){display:none}}.sp-conway-details[data-astro-cid-vcjvz3bs] summary[data-astro-cid-vcjvz3bs]{color:var(--fg);cursor:pointer}.sp-conway-knobs[data-astro-cid-vcjvz3bs]{flex-direction:column;gap:.6rem;padding-block-start:.6rem;display:flex}.sp-knob[data-astro-cid-vcjvz3bs]{color:var(--muted);flex-direction:column;gap:.3rem;display:flex}.sp-knob[data-astro-cid-vcjvz3bs] input[data-astro-cid-vcjvz3bs][type=range]{inline-size:100%}@media (pointer:coarse){.sp-knob[data-astro-cid-vcjvz3bs] input[data-astro-cid-vcjvz3bs][type=range]{appearance:none;background:0 0;height:2.75rem}.sp-knob[data-astro-cid-vcjvz3bs] input[data-astro-cid-vcjvz3bs][type=range]::-webkit-slider-thumb{border-radius:var(--radius);border:var(--border) solid var(--muted);background:var(--fg);appearance:none;width:2.75rem;height:2.75rem;margin-top:-1.125rem}.sp-knob[data-astro-cid-vcjvz3bs] input[data-astro-cid-vcjvz3bs][type=range]::-moz-range-thumb{border-radius:var(--radius);border:var(--border) solid var(--muted);background:var(--fg);width:2.75rem;height:2.75rem}.sp-knob[data-astro-cid-vcjvz3bs] input[data-astro-cid-vcjvz3bs][type=range]::-webkit-slider-runnable-track{border-radius:var(--radius);background:var(--muted);height:.5rem}.sp-knob[data-astro-cid-vcjvz3bs] input[data-astro-cid-vcjvz3bs][type=range]::-moz-range-track{border-radius:var(--radius);background:var(--muted);height:.5rem}}.sp-nudge[data-astro-cid-vcjvz3bs]{z-index:4;border:var(--border) solid var(--accent-day,var(--accent));border-radius:var(--radius);background:var(--bg);inline-size:max-content;max-inline-size:11rem;color:var(--fg);font-family:var(--font-display);font-size:var(--text-tiny);pointer-events:none;margin-block-start:.35rem;padding:.35rem .5rem;line-height:1.3;position:absolute;inset-block-start:100%;inset-inline-end:0}.sp-nudge[data-astro-cid-vcjvz3bs]:before{content:"";border:.35rem solid #0000;border-block-end-color:var(--accent-day,var(--accent));position:absolute;inset-block-end:100%;inset-inline-end:.75rem}@media (prefers-reduced-motion:no-preference){.sp-nudge[data-astro-cid-vcjvz3bs]{animation:sp-nudge-in var(--duration) var(--ease) both}}@keyframes sp-nudge-in{0%{opacity:0;transform:translateY(-.25rem)}}.sp-accent-row[data-astro-cid-vcjvz3bs]{flex-wrap:wrap;align-items:center;display:flex}.sp-accent-option[data-astro-cid-vcjvz3bs]{border:var(--border) solid var(--rule);border-radius:var(--radius);background:var(--swatch);cursor:pointer;block-size:1.5rem;inline-size:1.5rem;margin-block-end:.5rem;margin-inline-end:.5rem;padding:0}.sp-accent-auto[data-astro-cid-vcjvz3bs]{border:var(--border) solid var(--rule);border-radius:var(--radius);color:var(--fg);font:inherit;font-size:var(--text-tiny);text-transform:uppercase;cursor:pointer;background:0 0;margin-block-end:.5rem;margin-inline-end:.5rem;padding:.15rem .5rem}.sp-accent-option[data-astro-cid-vcjvz3bs][aria-current=true],.sp-accent-auto[data-astro-cid-vcjvz3bs][aria-current=true]{border-color:var(--fg);outline:var(--border) solid var(--fg);outline-offset:2px}.sp-accent-option[data-astro-cid-vcjvz3bs]:focus-visible,.sp-accent-auto[data-astro-cid-vcjvz3bs]:focus-visible{outline:2px solid var(--accent-day,var(--accent));outline-offset:2px}.sp-knob-head[data-astro-cid-vcjvz3bs]{justify-content:space-between;align-items:baseline;display:flex}.sp-knob-value[data-astro-cid-vcjvz3bs]{color:var(--fg);white-space:nowrap;font-variant-numeric:tabular-nums;margin-inline-start:.5rem}.sp-conway-actions[data-astro-cid-vcjvz3bs]{gap:.5rem;display:flex}.sp-conway-actions[data-astro-cid-vcjvz3bs] button[data-astro-cid-vcjvz3bs]{flex:auto;padding:.35rem .5rem}.sp-rule[data-astro-cid-vcjvz3bs]{border:0;border-block-start:var(--border) solid var(--rule);margin:0}.sp-reset-all[data-astro-cid-vcjvz3bs]{inline-size:100%;padding:.4rem .5rem}.settings-panel[data-astro-cid-vcjvz3bs] .ct-settings{color:var(--fg);flex-direction:column;gap:.3rem;margin:0;display:flex}.sp-search-shortcut[data-astro-cid-vcjvz3bs] select[data-astro-cid-vcjvz3bs],.settings-panel[data-astro-cid-vcjvz3bs] .ct-settings select{font-family:var(--font-mono);background:var(--bg);color:var(--fg);border:var(--border) solid var(--rule);border-radius:var(--radius);padding:.3rem;font-size:1rem}.sp-search-shortcut[data-astro-cid-vcjvz3bs] option[data-astro-cid-vcjvz3bs],.settings-panel[data-astro-cid-vcjvz3bs] .ct-settings option,.settings-panel[data-astro-cid-vcjvz3bs] .ct-settings optgroup{font-size:1rem}.theme-toggle[data-astro-cid-l6lhmie6]{position:relative}.theme-toggle[data-astro-cid-l6lhmie6]:not([hidden]){display:inline-flex}.theme-toggle[data-astro-cid-l6lhmie6][hidden]{visibility:hidden;min-inline-size:var(--icon-btn-hit);min-block-size:var(--icon-btn-hit);display:inline-flex}.tt-open[data-astro-cid-l6lhmie6]{min-inline-size:var(--icon-btn-hit);min-block-size:var(--icon-btn-hit);color:var(--muted);font-size:var(--icon-btn-glyph);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.tt-open[data-astro-cid-l6lhmie6]:before{content:"";inline-size:var(--icon-btn-chip);block-size:var(--icon-btn-chip);border:var(--btn-border);border-radius:var(--radius);background:var(--bg);pointer-events:none;position:absolute}.tt-icon[data-astro-cid-l6lhmie6]:not([hidden]){display:block;position:relative}.tt-icon[data-astro-cid-l6lhmie6][hidden]{display:none}.tt-open[data-astro-cid-l6lhmie6]:hover,.tt-open[data-astro-cid-l6lhmie6]:focus-visible,.tt-open[data-astro-cid-l6lhmie6][aria-expanded=true]{color:var(--accent)}.tt-open[data-astro-cid-l6lhmie6]:hover:before,.tt-open[data-astro-cid-l6lhmie6]:focus-visible:before,.tt-open[data-astro-cid-l6lhmie6][aria-expanded=true]:before{border-color:var(--accent)}.tt-open[data-astro-cid-l6lhmie6]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tt-menu[data-astro-cid-l6lhmie6]{z-index:60;border:3px double var(--fg);border-radius:var(--radius);background:var(--bg);min-inline-size:8rem;margin:0;padding:.3rem 0;position:fixed}.tt-menu[data-astro-cid-l6lhmie6]:not([popover]):not([hidden]){flex-direction:column;display:flex}.tt-menu[data-astro-cid-l6lhmie6]:popover-open{flex-direction:column;display:flex}.tt-option[data-astro-cid-l6lhmie6]{min-block-size:var(--icon-btn-hit);border:0;border-block-end:var(--border) solid var(--rule);color:var(--fg);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;text-align:start;cursor:pointer;background:0 0;align-items:center;padding:.4rem .7rem;font-size:.75rem;display:flex}.tt-option-icon[data-astro-cid-l6lhmie6]{flex-shrink:0;margin-inline-end:.5rem}.tt-option[data-astro-cid-l6lhmie6]:last-child{border-block-end:0}.tt-option[data-astro-cid-l6lhmie6]:hover,.tt-option[data-astro-cid-l6lhmie6]:focus-visible{background:var(--rule)}.tt-option[data-astro-cid-l6lhmie6]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.tt-option[data-astro-cid-l6lhmie6][aria-current=true]{color:var(--accent)}.shell[data-astro-cid-n4hbfg2c]{padding:.4rem var(--shell-inset);font-family:var(--font-mono);flex-wrap:wrap;align-items:center;column-gap:.6rem;margin-inline:auto;display:flex}@media (width>=70rem){.shell[data-astro-cid-n4hbfg2c]{max-inline-size:var(--shell-width)}}.menu-toggle[data-astro-cid-n4hbfg2c]{display:none}.shell-menu[data-astro-cid-n4hbfg2c]{display:contents}@media (width<=47.99rem){.menu-toggle[data-astro-cid-n4hbfg2c]:not([hidden]){min-inline-size:var(--icon-btn-hit);min-block-size:var(--icon-btn-hit);color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;font-size:1.3rem;line-height:1;display:grid;position:relative}.menu-toggle[data-astro-cid-n4hbfg2c]:not([hidden]):before{content:"";inline-size:var(--icon-btn-chip);block-size:var(--icon-btn-chip);border:var(--btn-border);border-radius:var(--radius);background:var(--bg);pointer-events:none;position:absolute}.menu-toggle[data-astro-cid-n4hbfg2c]>span[data-astro-cid-n4hbfg2c]{position:relative}.menu-toggle-close[data-astro-cid-n4hbfg2c]{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-size:.85rem;display:none}.menu-toggle[data-astro-cid-n4hbfg2c][aria-expanded=true] .menu-toggle-open[data-astro-cid-n4hbfg2c]{display:none}.menu-toggle[data-astro-cid-n4hbfg2c][aria-expanded=true] .menu-toggle-close[data-astro-cid-n4hbfg2c]{display:inline}.menu-toggle[data-astro-cid-n4hbfg2c]:hover,.menu-toggle[data-astro-cid-n4hbfg2c]:focus-visible{color:var(--accent)}.menu-toggle[data-astro-cid-n4hbfg2c][aria-expanded=true]{color:var(--fg)}.menu-toggle[data-astro-cid-n4hbfg2c]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell[data-astro-cid-n4hbfg2c][data-menu-ready] .edge[data-astro-cid-n4hbfg2c],.shell[data-astro-cid-n4hbfg2c][data-menu-ready] .fill[data-astro-cid-n4hbfg2c],.shell[data-astro-cid-n4hbfg2c][data-menu-ready]:not([data-menu-open]) .shell-menu[data-astro-cid-n4hbfg2c]{display:none}.shell[data-astro-cid-n4hbfg2c][data-menu-ready]:after{--read-tone:light-dark(color-mix(in oklab, var(--post-accent,var(--accent-day)) 18%, var(--bg)),color-mix(in oklab, var(--post-accent,var(--accent-day)) 34%, var(--bg)));--read-head:var(--read-progress,0%);--read-tip:.75rem;content:"";inset-block:0;inset-inline:calc(-1 * var(--gutter));z-index:0;background:linear-gradient(to right, var(--read-tone) 0 calc(var(--read-head) - var(--read-tip)), var(--post-accent,var(--accent-day)) calc(var(--read-head) - var(--read-tip)) var(--read-head), transparent var(--read-head));pointer-events:none;position:absolute}.shell[data-astro-cid-n4hbfg2c][data-menu-ready] .brand[data-astro-cid-n4hbfg2c]{filter:drop-shadow(1px 0 0 var(--bg)) drop-shadow(-1px 0 0 var(--bg)) drop-shadow(0 1px 0 var(--bg)) drop-shadow(0 -1px 0 var(--bg)) drop-shadow(var(--brand-shadow-offset) var(--brand-shadow-offset) 0 var(--brand-shadow-color))}.shell[data-astro-cid-n4hbfg2c][data-menu-ready]{justify-content:center}.shell[data-astro-cid-n4hbfg2c][data-menu-ready] .menu-toggle[data-astro-cid-n4hbfg2c]{z-index:2;position:absolute;inset-inline-start:calc((var(--icon-btn-chip) - var(--icon-btn-hit)) / 2)}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .menu-toggle[data-astro-cid-n4hbfg2c]{justify-items:start;padding-inline:.6rem;position:fixed;inset-block-start:1.2rem;inset-inline-start:1.2rem}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .menu-toggle[data-astro-cid-n4hbfg2c]:before{inline-size:auto;inset-inline:0}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .shell-menu[data-astro-cid-n4hbfg2c]{z-index:1;inline-size:min(16rem,80vw);padding:calc(var(--icon-btn-hit) * 2 + 2rem) 1.2rem 1.2rem;border-inline-end:3px double var(--fg);background:var(--bg);overscroll-behavior:contain;flex-direction:column;display:flex;position:fixed;inset-block:0;inset-inline-start:0;overflow-y:auto}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .nav-links{flex-direction:column;align-items:start;font-size:1.1rem}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .nav-links a+a{margin-block-start:1rem}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .controls[data-astro-cid-n4hbfg2c]{margin-block-start:auto;padding-block-start:1.5rem;position:static}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .controls[data-astro-cid-n4hbfg2c] .theme-toggle{margin-inline-start:auto}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .controls[data-astro-cid-n4hbfg2c] .tt-open,.shell[data-astro-cid-n4hbfg2c][data-menu-open] .controls[data-astro-cid-n4hbfg2c] .sp-open{font-size:1.3rem}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .controls[data-astro-cid-n4hbfg2c] .lang-switch{font-size:1.1rem}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .controls[data-astro-cid-n4hbfg2c] .search-trigger{display:flex;position:absolute;inset-block-start:calc(var(--icon-btn-hit) + 1.2rem);inset-inline:1.2rem}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .controls[data-astro-cid-n4hbfg2c] .sx-open{justify-content:flex-start;inline-size:100%;display:flex}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .controls[data-astro-cid-n4hbfg2c] .sx-hint{display:none}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .controls[data-astro-cid-n4hbfg2c] .sx-dialog[open]{z-index:3;max-block-size:60dvh;inline-size:auto;margin:0;padding:.45rem;position:absolute;inset-block-start:0;inset-inline:0}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .controls[data-astro-cid-n4hbfg2c] .sx-dialog[open]>:empty{margin-block-start:0}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .controls[data-astro-cid-n4hbfg2c] .sx-row{border-color:var(--fg);padding-block-end:.3rem;font-size:.8rem}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .controls[data-astro-cid-n4hbfg2c] .sx-input::placeholder{color:#0000}.shell[data-astro-cid-n4hbfg2c][data-menu-open] .controls[data-astro-cid-n4hbfg2c] .sx-label{display:inline}}.edge[data-astro-cid-n4hbfg2c]{color:var(--muted);font-family:var(--font-display);letter-spacing:.06em}.fill[data-astro-cid-n4hbfg2c]{color:var(--muted);font-family:var(--font-display);letter-spacing:.4em;flex:1;margin-inline-end:-.4em;overflow:hidden}.dash[data-astro-cid-n4hbfg2c].lit{color:var(--post-accent,var(--accent-day));-webkit-text-stroke:.4px currentColor}.controls[data-astro-cid-n4hbfg2c]{z-index:2;align-items:center;column-gap:.5rem;display:inline-flex;position:relative}.controls[data-astro-cid-n4hbfg2c]>*{margin-inline-end:0}.controls[data-astro-cid-n4hbfg2c] .search-trigger{margin-inline-start:0}.controls[data-astro-cid-n4hbfg2c] .lang-switch{margin-inline-start:-.25rem}.controls[data-astro-cid-n4hbfg2c] .theme-toggle{margin-inline-start:calc(.25rem - ((var(--icon-btn-hit) - var(--icon-btn-chip)) / 2))}.controls[data-astro-cid-n4hbfg2c] .settings-panel{margin-inline-start:calc(-.25rem - (var(--icon-btn-hit) - var(--icon-btn-chip)))}.brand[data-astro-cid-n4hbfg2c]{z-index:1;color:inherit;filter:drop-shadow(var(--brand-shadow-offset) var(--brand-shadow-offset) 0 var(--brand-shadow-color));align-items:center;text-decoration:none;display:inline-flex;position:relative}.brand[data-astro-cid-n4hbfg2c]>.mark[data-astro-cid-n4hbfg2c]{margin-inline-end:.4rem}.brand[data-astro-cid-n4hbfg2c]:focus-visible{outline:2px solid var(--accent-day);outline-offset:3px}.mark[data-astro-cid-n4hbfg2c]{flex-shrink:0;block-size:36px;inline-size:36px;display:inline-flex;position:relative;overflow:hidden}.mark-chars[data-astro-cid-n4hbfg2c],.mark-solid[data-astro-cid-n4hbfg2c]{block-size:100%;inline-size:100%;position:absolute;inset:0}.mark-chars[data-astro-cid-n4hbfg2c]{line-height:1;font-family:var(--font-mono);flex-wrap:wrap;align-content:flex-start;font-weight:900;display:flex}.mark-cell[data-astro-cid-n4hbfg2c]{-webkit-text-stroke:.25px currentColor;flex:0 0 12.5%;justify-content:center;align-items:center;block-size:12.5%;inline-size:12.5%;font-size:4.5px;display:flex}.mark-solid[data-astro-cid-n4hbfg2c]{display:none;overflow:visible}@media (prefers-reduced-motion:no-preference){.brand[data-astro-cid-n4hbfg2c]:hover .mark-chars[data-astro-cid-n4hbfg2c],.brand[data-astro-cid-n4hbfg2c]:focus-visible .mark-chars[data-astro-cid-n4hbfg2c]{display:none}.brand[data-astro-cid-n4hbfg2c]:hover .mark-solid[data-astro-cid-n4hbfg2c],.brand[data-astro-cid-n4hbfg2c]:focus-visible .mark-solid[data-astro-cid-n4hbfg2c]{display:block}}.word[data-astro-cid-n4hbfg2c]{min-inline-size:11ch;color:var(--accent-day);font-family:var(--font-display);-webkit-text-stroke:.5px currentColor;letter-spacing:.06em;text-transform:uppercase;align-items:baseline;padding-block:2px;padding-inline:1px;font-size:.85rem;font-weight:900;display:inline-flex;position:relative}.letter[data-astro-cid-n4hbfg2c]{display:inline-block}.brand[data-astro-cid-n4hbfg2c]:hover .word[data-astro-cid-n4hbfg2c],.brand[data-astro-cid-n4hbfg2c]:focus-visible .word[data-astro-cid-n4hbfg2c]{background:var(--accent-day);color:var(--bg)}.cursor[data-astro-cid-n4hbfg2c]{block-size:1.1em;inline-size:.55em;transform:translate(var(--cursor-x,0px), .2em);background:currentColor;align-self:baseline;margin-inline-start:1px;display:inline-block}.cursor[data-astro-cid-n4hbfg2c][data-writing=true]{opacity:1!important}@media (prefers-reduced-motion:no-preference){.word[data-astro-cid-n4hbfg2c][data-glitch=true]:before,.word[data-astro-cid-n4hbfg2c][data-glitch=true]:after{content:attr(data-word);text-transform:uppercase;mix-blend-mode:screen;pointer-events:none;position:absolute;inset:0}.word[data-astro-cid-n4hbfg2c][data-glitch=true]:before{color:#ff2b4d;transform:translateX(var(--glitch-a,0))}.word[data-astro-cid-n4hbfg2c][data-glitch=true]:after{color:#21c8ff;transform:translateX(var(--glitch-b,0));clip-path:var(--glitch-band,inset(0 0 100% 0))}}.conway-field[data-astro-cid-7ub36hmu]{z-index:-1;cursor:crosshair;touch-action:manipulation;position:fixed;inset:0}:root[data-bg-life=off] .conway-field[data-astro-cid-7ub36hmu]{display:none}:root{--hp-border-width:4px;--hp-glyph-size:3.5rem;--hp-glyph:light-dark(color-mix(in oklab, var(--fg) 12%, transparent),color-mix(in oklab, var(--fg) 18%, transparent))}.hp-settings{color:var(--muted);margin-block-start:2.5rem;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.8rem}.hp-settings label{cursor:pointer;align-items:center;gap:.45rem;display:flex}.hp-card{z-index:2147483000;border-style:double;border-color:var(--fg);border-width:var(--hp-border-width);background:var(--bg);width:min(320px,100vw - 2rem);max-height:60vh;color:var(--fg);cursor:grab;touch-action:pan-y;opacity:0;transition:opacity var(--duration) var(--ease);border-radius:0;margin:0;padding:.85rem 1rem;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.85rem;line-height:1.45;position:fixed;overflow:auto;box-shadow:0 8px 24px #0000002e}.hp-card.hp-open{opacity:1}.hp-card:active{cursor:grabbing}.hp-card.hp-pinned{border-color:var(--accent)}.hp-close,.hp-pin{border:var(--border) solid var(--fg);width:1.4rem;height:1.4rem;color:var(--fg);cursor:pointer;background:0 0;border-radius:0;padding:0;font-size:1rem;line-height:1;position:absolute;top:.4rem}.hp-close{right:.4rem}.hp-pin{place-items:center;display:grid;right:2rem}.hp-pin svg{fill:currentColor;width:.9rem;height:.9rem;transition:rotate var(--duration) var(--ease);rotate:-35deg}.hp-pin[aria-pressed=true]{color:var(--accent)}.hp-pin[aria-pressed=true] svg{rotate:0deg}.hp-close:hover,.hp-close:focus-visible,.hp-pin:hover,.hp-pin:focus-visible{background:var(--rule);color:var(--fg)}.hp-pin[aria-pressed=true]:hover,.hp-pin[aria-pressed=true]:focus-visible{color:var(--accent)}.hp-hint{color:var(--muted);margin-block-start:.6rem;font-size:.7rem;font-style:italic;display:block}.hp-title{overflow-wrap:anywhere;color:var(--fg);padding-inline-end:3rem;font-weight:600;text-decoration:none;display:block}.hp-title:hover,.hp-title:focus-visible{color:var(--accent)}.hp-desc{overflow-wrap:anywhere;color:var(--muted);margin:.35rem 0 0}.hp-host{color:var(--muted);font-family:var(--font-mono);margin-block-start:.5rem;font-size:.7rem;display:block}.hp-host:empty{display:none}a.link-unwritten{cursor:not-allowed}.hp-card.hp-unwritten{isolation:isolate;text-align:center;place-items:center;min-height:7rem;padding-block-start:1.75rem;display:grid}.hp-card.hp-unwritten:before{content:";)";z-index:0;font-family:var(--font-display);font-size:var(--hp-glyph-size);color:var(--hp-glyph);pointer-events:none;place-items:center;line-height:1;display:grid;position:absolute;inset:0}.hp-unwritten-msg{z-index:1;color:var(--muted);margin:0;font-style:italic;position:relative}.hp-card.hp-unwritten .hp-hint{z-index:1;position:relative}.hp-dock{z-index:2147483000;pointer-events:none;flex-wrap:wrap;align-items:flex-end;gap:.4rem;padding:.5rem;display:flex;position:fixed;inset-block-end:0;inset-inline:0}.hp-dock>*{pointer-events:auto}.hp-card.hp-docked{cursor:default;align-items:center;gap:.4rem;max-block-size:none;inline-size:auto;max-inline-size:min(18rem,100vw - 2rem);padding:.3rem .5rem;display:flex;position:static;overflow:hidden}.hp-card.hp-docked .hp-title{white-space:nowrap;text-overflow:ellipsis;order:-1;padding-inline-end:0;overflow:hidden}.hp-card.hp-docked :is(.hp-close,.hp-pin,.hp-min){flex:none;position:static}.hp-card.hp-docked :is(.hp-desc,.hp-host,.hp-hint,.hp-unwritten-msg){display:none}.hp-card.hp-docked.hp-unwritten{text-align:start;min-block-size:0;padding-block-start:.3rem;display:flex}.hp-card.hp-docked.hp-unwritten:before{content:none}.hp-min{border:var(--border) solid var(--fg);width:1.4rem;height:1.4rem;color:var(--fg);cursor:pointer;background:0 0;border-radius:0;place-items:center;padding:0;line-height:1;display:grid;position:absolute;top:.4rem;right:3.6rem}.hp-min svg{fill:currentColor;width:.9rem;height:.9rem}.hp-min:hover,.hp-min:focus-visible{background:var(--rule);color:var(--fg)}.hp-card:not(.hp-docked) .hp-title{padding-inline-end:4.6rem}
