*,*::before,*::after{box-sizing:border-box}body{line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-variant-ligatures:contextual;-webkit-overflow-scrolling:touch;-webkit-text-size-adjust:100%}img,picture,video,canvas,svg{display:block;max-inline-size:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:700;src:local("IBM Plex Sans Bold"),local("IBMPlexSans-Bold"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-Bold.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:700;src:local("IBM Plex Sans Bold Italic"),local("IBMPlexSans-BoldItalic"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-BoldItalic.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:200;src:local("IBM Plex Sans ExtraLight"),local("IBMPlexSans-ExtraLight"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-ExtraLight.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:200;src:local("IBM Plex Sans ExtraLight Italic"),local("IBMPlexSans-ExtraLightItalic"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-ExtraLightItalic.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:400;src:local("IBM Plex Sans Italic"),local("IBMPlexSans-Italic"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-Italic.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:300;src:local("IBM Plex Sans Light"),local("IBMPlexSans-Light"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-Light.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:300;src:local("IBM Plex Sans Light Italic"),local("IBMPlexSans-LightItalic"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-LightItalic.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:500;src:local("IBM Plex Sans Medium"),local("IBMPlexSans-Medium"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-Medium.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:500;src:local("IBM Plex Sans Medium Italic"),local("IBMPlexSans-MediumItalic"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-MediumItalic.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:400;src:local("IBM Plex Sans"),local("IBMPlexSans"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-Regular.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:600;src:local("IBM Plex Sans SemiBold"),local("IBMPlexSans-SemiBold"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-SemiBold.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:600;src:local("IBM Plex Sans SemiBold Italic"),local("IBMPlexSans-SemiBoldItalic"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-SemiBoldItalic.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:450;src:local("IBM Plex Sans Text"),local("IBMPlexSans-Text"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-Text.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:450;src:local("IBM Plex Sans Text Italic"),local("IBMPlexSans-TextItalic"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-TextItalic.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:100;src:local("IBM Plex Sans Thin"),local("IBMPlexSans-Thin"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-Thin.woff2)format("woff2")}@font-face{font-family:ibm plex sans;font-style:italic;font-weight:100;src:local("IBM Plex Sans Thin Italic"),local("IBMPlexSans-ThinItalic"),url(/fonts/ibm-plex-sans/woff2/IBMPlexSans-ThinItalic.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:normal;font-weight:700;src:local("IBM Plex Serif Bold"),local("IBMPlexSerif-Bold"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-Bold.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:italic;font-weight:700;src:local("IBM Plex Serif Bold Italic"),local("IBMPlexSerif-BoldItalic"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-BoldItalic.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:normal;font-weight:200;src:local("IBM Plex Serif ExtraLight"),local("IBMPlexSerif-ExtraLight"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-ExtraLight.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:italic;font-weight:200;src:local("IBM Plex Serif ExtraLight Italic"),local("IBMPlexSerif-ExtraLightItalic"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-ExtraLightItalic.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:italic;font-weight:400;src:local("IBM Plex Serif Italic"),local("IBMPlexSerif-Italic"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-Italic.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:normal;font-weight:300;src:local("IBM Plex Serif Light"),local("IBMPlexSerif-Light"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-Light.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:italic;font-weight:300;src:local("IBM Plex Serif Light Italic"),local("IBMPlexSerif-LightItalic"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-LightItalic.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:normal;font-weight:500;src:local("IBM Plex Serif Medium"),local("IBMPlexSerif-Medium"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-Medium.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:italic;font-weight:500;src:local("IBM Plex Serif Medium Italic"),local("IBMPlexSerif-MediumItalic"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-MediumItalic.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:normal;font-weight:400;src:local("IBM Plex Serif"),local("IBMPlexSerif"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-Regular.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:normal;font-weight:600;src:local("IBM Plex Serif SemiBold"),local("IBMPlexSerif-SemiBold"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-SemiBold.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:italic;font-weight:600;src:local("IBM Plex Serif SemiBold Italic"),local("IBMPlexSerif-SemiBoldItalic"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-SemiBoldItalic.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:normal;font-weight:450;src:local("IBM Plex Serif Text"),local("IBMPlexSerif-Text"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-Text.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:italic;font-weight:450;src:local("IBM Plex Serif Text Italic"),local("IBMPlexSerif-TextItalic"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-TextItalic.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:normal;font-weight:100;src:local("IBM Plex Serif Thin"),local("IBMPlexSerif-Thin"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-Thin.woff2)format("woff2")}@font-face{font-family:ibm plex serif;font-style:italic;font-weight:100;src:local("IBM Plex Serif Thin Italic"),local("IBMPlexSerif-ThinItalic"),url(/fonts/ibm-plex-serif/woff2/IBMPlexSerif-ThinItalic.woff2)format("woff2")}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:700;src:local("IBM Plex Mono Bold"),local("IBMPlexMono-Bold"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-Bold.woff2)format("woff2");font-display:swap}@font-face{font-family:ibm plex mono;font-style:italic;font-weight:700;src:local("IBM Plex Mono Bold Italic"),local("IBMPlexMono-BoldItalic"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-BoldItalic.woff2)format("woff2");font-display:swap}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:200;src:local("IBM Plex Mono ExtraLight"),local("IBMPlexMono-ExtraLight"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-ExtraLight.woff2)format("woff2");font-display:swap}@font-face{font-family:ibm plex mono;font-style:italic;font-weight:200;src:local("IBM Plex Mono ExtraLight Italic"),local("IBMPlexMono-ExtraLightItalic"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-ExtraLightItalic.woff2)format("woff2");font-display:swap}@font-face{font-family:ibm plex mono;font-style:italic;font-weight:400;src:local("IBM Plex Mono Italic"),local("IBMPlexMono-Italic"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-Italic.woff2)format("woff2");font-display:swap}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:300;src:local("IBM Plex Mono Light"),local("IBMPlexMono-Light"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-Light.woff2)format("woff2");font-display:swap}@font-face{font-family:ibm plex mono;font-style:italic;font-weight:300;src:local("IBM Plex Mono Light Italic"),local("IBMPlexMono-LightItalic"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-LightItalic.woff2)format("woff2");font-display:swap}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:500;src:local("IBM Plex Mono Medium"),local("IBMPlexMono-Medium"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-Medium.woff2)format("woff2");font-display:swap}@font-face{font-family:ibm plex mono;font-style:italic;font-weight:500;src:local("IBM Plex Mono Medium Italic"),local("IBMPlexMono-MediumItalic"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-MediumItalic.woff2)format("woff2");font-display:swap}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:400;src:local("IBM Plex Mono"),local("IBMPlexMono"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-Regular.woff2)format("woff2");font-display:swap}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:600;src:local("IBM Plex Mono SemiBold"),local("IBMPlexMono-SemiBold"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-SemiBold.woff2)format("woff2");font-display:swap}@font-face{font-family:ibm plex mono;font-style:italic;font-weight:600;src:local("IBM Plex Mono SemiBold Italic"),local("IBMPlexMono-SemiBoldItalic"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-SemiBoldItalic.woff2)format("woff2");font-display:swap}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:450;src:local("IBM Plex Mono Text"),local("IBMPlexMono-Text"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-Text.woff2)format("woff2");font-display:swap}@font-face{font-family:ibm plex mono;font-style:italic;font-weight:450;src:local("IBM Plex Mono Text Italic"),local("IBMPlexMono-TextItalic"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-TextItalic.woff2)format("woff2");font-display:swap}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:100;src:local("IBM Plex Mono Thin"),local("IBMPlexMono-Thin"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-Thin.woff2)format("woff2");font-display:swap}@font-face{font-family:ibm plex mono;font-style:italic;font-weight:100;src:local("IBM Plex Mono Thin Italic"),local("IBMPlexMono-ThinItalic"),url(/fonts/ibm-plex-mono/woff2/IBMPlexMono-ThinItalic.woff2)format("woff2");font-display:swap}.bg{background-color:#f7f7f7}.chroma{background-color:#f7f7f7}.chroma .err{color:#f6f8fa;background-color:#82071e}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#dedede}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#cf222e}.chroma .kc{color:#cf222e}.chroma .kd{color:#cf222e}.chroma .kn{color:#cf222e}.chroma .kp{color:#cf222e}.chroma .kr{color:#cf222e}.chroma .kt{color:#cf222e}.chroma .na{color:#1f2328}.chroma .nc{color:#1f2328}.chroma .no{color:#0550ae}.chroma .nd{color:#0550ae}.chroma .ni{color:#6639ba}.chroma .nl{color:#900;font-weight:700}.chroma .nn{color:#24292e}.chroma .nx{color:#1f2328}.chroma .nt{color:#0550ae}.chroma .nb{color:#6639ba}.chroma .bp{color:#6a737d}.chroma .nv{color:#953800}.chroma .vc{color:#953800}.chroma .vg{color:#953800}.chroma .vi{color:#953800}.chroma .vm{color:#953800}.chroma .nf{color:#6639ba}.chroma .fm{color:#6639ba}.chroma .s{color:#0a3069}.chroma .sa{color:#0a3069}.chroma .sb{color:#0a3069}.chroma .sc{color:#0a3069}.chroma .dl{color:#0a3069}.chroma .sd{color:#0a3069}.chroma .s2{color:#0a3069}.chroma .se{color:#0a3069}.chroma .sh{color:#0a3069}.chroma .si{color:#0a3069}.chroma .sx{color:#0a3069}.chroma .sr{color:#0a3069}.chroma .s1{color:#0a3069}.chroma .ss{color:#032f62}.chroma .m{color:#0550ae}.chroma .mb{color:#0550ae}.chroma .mf{color:#0550ae}.chroma .mh{color:#0550ae}.chroma .mi{color:#0550ae}.chroma .il{color:#0550ae}.chroma .mo{color:#0550ae}.chroma .o{color:#0550ae}.chroma .ow{color:#0550ae}.chroma .p{color:#1f2328}.chroma .c{color:#57606a}.chroma .ch{color:#57606a}.chroma .cm{color:#57606a}.chroma .c1{color:#57606a}.chroma .cs{color:#57606a}.chroma .cp{color:#57606a}.chroma .cpf{color:#57606a}.chroma .gd{color:#82071e;background-color:#ffebe9}.chroma .ge{color:#1f2328}.chroma .gi{color:#116329;background-color:#dafbe1}.chroma .go{color:#1f2328}.chroma .gl{text-decoration:underline}.chroma .w{color:#fff}:root{--f-black:#100F0F;--f-paper:#FFFCF0;--f-base-50:#F2F0E5;--f-base-100:#E6E4D9;--f-base-150:#DAD8CE;--f-base-200:#CECDC3;--f-base-300:#B7B5AC;--f-base-400:#9F9D96;--f-base-500:#878580;--f-base-600:#6F6E69;--f-base-700:#575653;--f-base-800:#403E3C;--f-base-850:#343331;--f-base-900:#282726;--f-base-950:#1C1B1A;--f-red-400:#D14D41;--f-red-600:#AF3029;--f-orange-400:#DA702C;--f-orange-600:#BC5215;--f-yellow-400:#D0A215;--f-yellow-600:#AD8301;--f-green-400:#879A39;--f-green-600:#66800B;--f-cyan-400:#3AA99F;--f-cyan-600:#24837B;--f-blue-400:#4385BE;--f-blue-600:#205EA6;--f-purple-400:#8B7EC8;--f-purple-600:#5E409D;--f-magenta-400:#CE5D97;--f-magenta-600:#A02F6F}:root{--bg:var(--f-paper);--tx:var(--f-black);--tx-muted:var(--f-base-600);--ui:var(--f-base-100)}:root{--messure:66ch}body{color:var(--tx);background-color:var(--bg);font-family:ibm plex serif,serif;margin:2rem 1rem}header{border-block-end:1px solid var(--ui);margin-bottom:1rem}main{display:flow-root}footer{border-top:1px solid var(--ui);margin-top:1rem}header,main,footer{box-sizing:content-box;max-inline-size:var(--messure);margin-inline:auto}a{color:inherit;text-decoration:none;text-decoration-thickness:1px;text-decoration-color:rgb(from var(--tx) r g b/.8);&:hover{text-decoration:underline}}nav{margin-block-end:1rem;&>ul{display:flex;flex-wrap:wrap;list-style:none;gap:1rem;margin:0 .5rem;padding:0}}ul{list-style-type:"♪  ";&>li::marker{color:var(--tx-muted)}}p,h1,h2,h3,h4,h5,h6,li,img,figcaption{max-inline-size:var(--messure)}h1,h2,h3,h4,h5,h6{margin-block-start:1.2em;margin-block-end:.3em}pre{tab-size:2;overflow-x:auto;border:1px solid var(--ui);&>code{border:none;padding:0}}code{font-family:ibm plex mono,monospace;font-size:80%;border:1px solid var(--ui);padding:0 .3rem}pre:has(>code){line-height:1.25;padding:.3rem .6rem}img{margin:.3rem}#page-title{font-style:italic;text-transform:uppercase;line-height:1;font-size:2rem;font-weight:700;margin-block:.75rem}#document-title{&>h1{margin-block-start:.5em;margin-block-end:0}&>p{margin-block:.1em}&>time{color:var(--tx-muted)}}#posts{list-style:none;padding:0;& time{color:var(--tx-muted);margin-inline-end:.75rem;font-size:90%}}.right{float:right;max-inline-size:25%}.skip-link{position:absolute;top:0;display:inline-block;transform:translateY(0);transition:transform 250ms ease-in;color:var(--bg);text-decoration-color:rgb(from var(--bg) r g b/.8);background-color:var(--tx);&:not(:focus){transform:translateY(-1lh)}}.taxonomy{display:flex;gap:.5rem}ul.tags{display:flex;flex-wrap:wrap;list-style-type:"#";list-style-position:inside;gap:1.5rem;text-transform:lowercase;padding:0;margin:0;&>li::marker{font-size:85%}}.content{--minFontSize:80%;--maxFontSize:16px;--scaler:3.5vw;font-size:clamp(var(--minFontSize),var(--scaler),var(--maxFontSize));line-height:1.4;white-space-collapse:collapse;text-wrap:nowrap;overflow-x:auto}