@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:300;src:local("IBM Plex Mono Light"),local("IBMPlexMono-Light"),url("IBMPlexMono-Light-Cyrillic.woff2") format("woff2");unicode-range:U+0400-045F,U+0472-0473,U+0490-049D,U+04A0-04A5,U+04AA-04AB,U+04AE-04B3,U+04B6-04BB,U+04C0-04C2,U+04CF-04D9,U+04DC-04DF,U+04E2-04E9,U+04EE-04F5,U+04F8-04F9}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:300;src:local("IBM Plex Mono Light"),local("IBMPlexMono-Light"),url("IBMPlexMono-Light-Latin1.woff2") format("woff2");unicode-range:U+0000,U+000D,U+0020-007E,U+00A0-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,U+20AC,U+2122,U+2212,U+FB01-FB02}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:300;src:local("IBM Plex Mono Light"),local("IBMPlexMono-Light"),url("IBMPlexMono-Light-Latin2.woff2") format("woff2");unicode-range:U+0100-0101,U+0104-0130,U+0132-0151,U+0154-017F,U+018F,U+0192,U+01A0-01A1,U+01AF-01B0,U+01FA-01FF,U+0218-021B,U+0237,U+0259,U+1E80-1E85,U+1E9E,U+20A1,U+20A4,U+20A6,U+20A8-20AA,U+20AD-20AE,U+20B1-20B2,U+20B4-20B5,U+20B8-20BA,U+20BD,U+20BF}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:300;src:local("IBM Plex Mono Light"),local("IBMPlexMono-Light"),url("IBMPlexMono-Light-Latin3.woff2") format("woff2");unicode-range:U+0102-0103,U+01CD-01DC,U+1EA0-1EF9,U+20AB}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:300;src:local("IBM Plex Mono Light"),local("IBMPlexMono-Light"),url("IBMPlexMono-Light-Pi.woff2") format("woff2");unicode-range:U+03C0,U+0E3F,U+2032-2033,U+2070,U+2074-2079,U+2080-2089,U+2113,U+2116,U+2126,U+212E,U+2150-2151,U+2153-215E,U+2190-2199,U+21A9-21AA,U+21B0-21B3,U+21B6-21B7,U+21BA-21BB,U+21C4,U+21C6,U+2202,U+2206,U+220F,U+2211,U+2215,U+221A,U+221E,U+222B,U+2248,U+2260,U+2264-2265,U+2500-259F,U+25CA,U+2713,U+274C,U+2B0E-2B11}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:300;src:local("IBM Plex Mono Light Italic"),local("IBMPlexMono-LightItalic"),url("IBMPlexMono-LightItalic-Cyrillic.woff2") format("woff2");unicode-range:U+0400-045F,U+0472-0473,U+0490-049D,U+04A0-04A5,U+04AA-04AB,U+04AE-04B3,U+04B6-04BB,U+04C0-04C2,U+04CF-04D9,U+04DC-04DF,U+04E2-04E9,U+04EE-04F5,U+04F8-04F9}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:300;src:local("IBM Plex Mono Light Italic"),local("IBMPlexMono-LightItalic"),url("IBMPlexMono-LightItalic-Latin1.woff2") format("woff2");unicode-range:U+0000,U+000D,U+0020-007E,U+00A0-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,U+20AC,U+2122,U+2212,U+FB01-FB02}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:300;src:local("IBM Plex Mono Light Italic"),local("IBMPlexMono-LightItalic"),url("IBMPlexMono-LightItalic-Latin2.woff2") format("woff2");unicode-range:U+0100-0101,U+0104-0130,U+0132-0151,U+0154-017F,U+018F,U+0192,U+01A0-01A1,U+01AF-01B0,U+01FA-01FF,U+0218-021B,U+0237,U+0259,U+1E80-1E85,U+1E9E,U+20A1,U+20A4,U+20A6,U+20A8-20AA,U+20AD-20AE,U+20B1-20B2,U+20B4-20B5,U+20B8-20BA,U+20BD,U+20BF}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:300;src:local("IBM Plex Mono Light Italic"),local("IBMPlexMono-LightItalic"),url("IBMPlexMono-LightItalic-Latin3.woff2") format("woff2");unicode-range:U+0102-0103,U+01CD-01DC,U+1EA0-1EF9,U+20AB}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:300;src:local("IBM Plex Mono Light Italic"),local("IBMPlexMono-LightItalic"),url("IBMPlexMono-LightItalic-Pi.woff2") format("woff2");unicode-range:U+03C0,U+0E3F,U+2032-2033,U+2070,U+2074-2079,U+2080-2089,U+2113,U+2116,U+2126,U+212E,U+2150-2151,U+2153-215E,U+2190-2199,U+21A9-21AA,U+21B0-21B3,U+21B6-21B7,U+21BA-21BB,U+21C4,U+21C6,U+2202,U+2206,U+220F,U+2211,U+2215,U+221A,U+221E,U+222B,U+2248,U+2260,U+2264-2265,U+2500-259F,U+25CA,U+2713,U+274C,U+2B0E-2B11}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;src:local("IBM Plex Mono"),local("IBMPlexMono"),url("IBMPlexMono-Regular-Cyrillic.woff2") format("woff2");unicode-range:U+0400-045F,U+0472-0473,U+0490-049D,U+04A0-04A5,U+04AA-04AB,U+04AE-04B3,U+04B6-04BB,U+04C0-04C2,U+04CF-04D9,U+04DC-04DF,U+04E2-04E9,U+04EE-04F5,U+04F8-04F9}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;src:local("IBM Plex Mono"),local("IBMPlexMono"),url("IBMPlexMono-Regular-Latin1.woff2") format("woff2");unicode-range:U+0000,U+000D,U+0020-007E,U+00A0-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,U+20AC,U+2122,U+2212,U+FB01-FB02}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;src:local("IBM Plex Mono"),local("IBMPlexMono"),url("IBMPlexMono-Regular-Latin2.woff2") format("woff2");unicode-range:U+0100-0101,U+0104-0130,U+0132-0151,U+0154-017F,U+018F,U+0192,U+01A0-01A1,U+01AF-01B0,U+01FA-01FF,U+0218-021B,U+0237,U+0259,U+1E80-1E85,U+1E9E,U+20A1,U+20A4,U+20A6,U+20A8-20AA,U+20AD-20AE,U+20B1-20B2,U+20B4-20B5,U+20B8-20BA,U+20BD,U+20BF}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;src:local("IBM Plex Mono"),local("IBMPlexMono"),url("IBMPlexMono-Regular-Latin3.woff2") format("woff2");unicode-range:U+0102-0103,U+01CD-01DC,U+1EA0-1EF9,U+20AB}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;src:local("IBM Plex Mono"),local("IBMPlexMono"),url("IBMPlexMono-Regular-Pi.woff2") format("woff2");unicode-range:U+03C0,U+0E3F,U+2032-2033,U+2070,U+2074-2079,U+2080-2089,U+2113,U+2116,U+2126,U+212E,U+2150-2151,U+2153-215E,U+2190-2199,U+21A9-21AA,U+21B0-21B3,U+21B6-21B7,U+21BA-21BB,U+21C4,U+21C6,U+2202,U+2206,U+220F,U+2211,U+2215,U+221A,U+221E,U+222B,U+2248,U+2260,U+2264-2265,U+2500-259F,U+25CA,U+2713,U+274C,U+2B0E-2B11}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:400;src:local("IBM Plex Mono Italic"),local("IBMPlexMono-Italic"),url("IBMPlexMono-Italic-Cyrillic.woff2") format("woff2");unicode-range:U+0400-045F,U+0472-0473,U+0490-049D,U+04A0-04A5,U+04AA-04AB,U+04AE-04B3,U+04B6-04BB,U+04C0-04C2,U+04CF-04D9,U+04DC-04DF,U+04E2-04E9,U+04EE-04F5,U+04F8-04F9}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:400;src:local("IBM Plex Mono Italic"),local("IBMPlexMono-Italic"),url("IBMPlexMono-Italic-Latin1.woff2") format("woff2");unicode-range:U+0000,U+000D,U+0020-007E,U+00A0-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,U+20AC,U+2122,U+2212,U+FB01-FB02}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:400;src:local("IBM Plex Mono Italic"),local("IBMPlexMono-Italic"),url("IBMPlexMono-Italic-Latin2.woff2") format("woff2");unicode-range:U+0100-0101,U+0104-0130,U+0132-0151,U+0154-017F,U+018F,U+0192,U+01A0-01A1,U+01AF-01B0,U+01FA-01FF,U+0218-021B,U+0237,U+0259,U+1E80-1E85,U+1E9E,U+20A1,U+20A4,U+20A6,U+20A8-20AA,U+20AD-20AE,U+20B1-20B2,U+20B4-20B5,U+20B8-20BA,U+20BD,U+20BF}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:400;src:local("IBM Plex Mono Italic"),local("IBMPlexMono-Italic"),url("IBMPlexMono-Italic-Latin3.woff2") format("woff2");unicode-range:U+0102-0103,U+01CD-01DC,U+1EA0-1EF9,U+20AB}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:400;src:local("IBM Plex Mono Italic"),local("IBMPlexMono-Italic"),url("IBMPlexMono-Italic-Pi.woff2") format("woff2");unicode-range:U+03C0,U+0E3F,U+2032-2033,U+2070,U+2074-2079,U+2080-2089,U+2113,U+2116,U+2126,U+212E,U+2150-2151,U+2153-215E,U+2190-2199,U+21A9-21AA,U+21B0-21B3,U+21B6-21B7,U+21BA-21BB,U+21C4,U+21C6,U+2202,U+2206,U+220F,U+2211,U+2215,U+221A,U+221E,U+222B,U+2248,U+2260,U+2264-2265,U+2500-259F,U+25CA,U+2713,U+274C,U+2B0E-2B11}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;src:local("IBM Plex Mono SmBld"),local("IBMPlexMono-SmBld"),url("IBMPlexMono-SemiBold-Cyrillic.woff2") format("woff2");unicode-range:U+0400-045F,U+0472-0473,U+0490-049D,U+04A0-04A5,U+04AA-04AB,U+04AE-04B3,U+04B6-04BB,U+04C0-04C2,U+04CF-04D9,U+04DC-04DF,U+04E2-04E9,U+04EE-04F5,U+04F8-04F9}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;src:local("IBM Plex Mono SmBld"),local("IBMPlexMono-SmBld"),url("IBMPlexMono-SemiBold-Latin1.woff2") format("woff2");unicode-range:U+0000,U+000D,U+0020-007E,U+00A0-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,U+20AC,U+2122,U+2212,U+FB01-FB02}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;src:local("IBM Plex Mono SmBld"),local("IBMPlexMono-SmBld"),url("IBMPlexMono-SemiBold-Latin2.woff2") format("woff2");unicode-range:U+0100-0101,U+0104-0130,U+0132-0151,U+0154-017F,U+018F,U+0192,U+01A0-01A1,U+01AF-01B0,U+01FA-01FF,U+0218-021B,U+0237,U+0259,U+1E80-1E85,U+1E9E,U+20A1,U+20A4,U+20A6,U+20A8-20AA,U+20AD-20AE,U+20B1-20B2,U+20B4-20B5,U+20B8-20BA,U+20BD,U+20BF}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;src:local("IBM Plex Mono SmBld"),local("IBMPlexMono-SmBld"),url("IBMPlexMono-SemiBold-Latin3.woff2") format("woff2");unicode-range:U+0102-0103,U+01CD-01DC,U+1EA0-1EF9,U+20AB}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;src:local("IBM Plex Mono SmBld"),local("IBMPlexMono-SmBld"),url("IBMPlexMono-SemiBold-Pi.woff2") format("woff2");unicode-range:U+03C0,U+0E3F,U+2032-2033,U+2070,U+2074-2079,U+2080-2089,U+2113,U+2116,U+2126,U+212E,U+2150-2151,U+2153-215E,U+2190-2199,U+21A9-21AA,U+21B0-21B3,U+21B6-21B7,U+21BA-21BB,U+21C4,U+21C6,U+2202,U+2206,U+220F,U+2211,U+2215,U+221A,U+221E,U+222B,U+2248,U+2260,U+2264-2265,U+2500-259F,U+25CA,U+2713,U+274C,U+2B0E-2B11}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:600;src:local("IBM Plex Mono SmBld Italic"),local("IBMPlexMono-SmBldItalic"),url("IBMPlexMono-SemiBoldItalic-Cyrillic.woff2") format("woff2");unicode-range:U+0400-045F,U+0472-0473,U+0490-049D,U+04A0-04A5,U+04AA-04AB,U+04AE-04B3,U+04B6-04BB,U+04C0-04C2,U+04CF-04D9,U+04DC-04DF,U+04E2-04E9,U+04EE-04F5,U+04F8-04F9}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:600;src:local("IBM Plex Mono SmBld Italic"),local("IBMPlexMono-SmBldItalic"),url("IBMPlexMono-SemiBoldItalic-Latin1.woff2") format("woff2");unicode-range:U+0000,U+000D,U+0020-007E,U+00A0-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,U+20AC,U+2122,U+2212,U+FB01-FB02}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:600;src:local("IBM Plex Mono SmBld Italic"),local("IBMPlexMono-SmBldItalic"),url("IBMPlexMono-SemiBoldItalic-Latin2.woff2") format("woff2");unicode-range:U+0100-0101,U+0104-0130,U+0132-0151,U+0154-017F,U+018F,U+0192,U+01A0-01A1,U+01AF-01B0,U+01FA-01FF,U+0218-021B,U+0237,U+0259,U+1E80-1E85,U+1E9E,U+20A1,U+20A4,U+20A6,U+20A8-20AA,U+20AD-20AE,U+20B1-20B2,U+20B4-20B5,U+20B8-20BA,U+20BD,U+20BF}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:600;src:local("IBM Plex Mono SmBld Italic"),local("IBMPlexMono-SmBldItalic"),url("IBMPlexMono-SemiBoldItalic-Latin3.woff2") format("woff2");unicode-range:U+0102-0103,U+01CD-01DC,U+1EA0-1EF9,U+20AB}@font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:600;src:local("IBM Plex Mono SmBld Italic"),local("IBMPlexMono-SmBldItalic"),url("IBMPlexMono-SemiBoldItalic-Pi.woff2") format("woff2");unicode-range:U+03C0,U+0E3F,U+2032-2033,U+2070,U+2074-2079,U+2080-2089,U+2113,U+2116,U+2126,U+212E,U+2150-2151,U+2153-215E,U+2190-2199,U+21A9-21AA,U+21B0-21B3,U+21B6-21B7,U+21BA-21BB,U+21C4,U+21C6,U+2202,U+2206,U+220F,U+2211,U+2215,U+221A,U+221E,U+222B,U+2248,U+2260,U+2264-2265,U+2500-259F,U+25CA,U+2713,U+274C,U+2B0E-2B11}:root{--font-family-base: "IBM Plex Mono", monospace;--font-size-base: 1.6rem;--font-weight-normal: 400;--font-weight-bold: 600;--line-height-base: 2.5rem;--border-radius-base: 0.4rem;--color-55-white: lch(55% 2 87);--color-55-black: lch(45% 2 87);--color-75-black: lch(25% 2 87);--color-85-black: lch(15% 2 87);--color-75-white: lch(75% 2 87);--color-85-white: lch(85% 2 87);--color-95-black: lch(5% 0 0);--color-85-white: lch(85% 0 0);--color-almost-white: lch(90% 2 87);--color-almost-black: lch(10% 2 87);--color-pink: lch(29% 132 339);--color-pink-brighter: lch(50% 132 339);--color-pink-hover: lch(20% 132 339);--color-pink-brighter-hover: lch(50% 132 339);--color-blue-35: lch(35% 132 200);--color-blue-45: lch(45% 132 200);--color-red-pink: lch(50% 132 25);--color-red-pink-brighter: lch(70% 132 25);--color-blue: lch(50% 132 200);--color-blue-dark: lch(35% 132 200);--color-apple-bright: lch(70% 132 100);--color-apple-dark: lch(40% 132 100);--color-background: var(--color-almost-white);--color-background-code: var(--color-85-black);--color-foreground-code: var(--color-almost-white);--color-base: var(--color-75-black);--color-text-muted: var(--color-55-black);--color-text-striking: var(--color-85-black);--color-text-alert: var(--color-apple-dark);--color-link: var(--color-pink);--color-link-hover: var(--color-pink-hover);--color-link-visited: var(--color-blue-35);--color-transparent-bg-faint: lch(0% 0 0 / 0.05);--color-accent-1: var(--color-red-pink);--color-update: var(--color-blue-dark);--site-sidebar-width: 30rem;--column-gap-base: 5rem;--page-padding: 15ch;--blog-post-sidebar-width: 20rem;--blog-post-column-gap: 3rem}@media(prefers-color-scheme: dark){:root{--font-weight-normal: 300;--color-background: var(--color-almost-black);--color-background-code: var(--color-95-black);--color-foreground-code: var(--color-almost-white);--color-base: var(--color-75-white);--color-text-muted: var(--color-55-white);--color-text-striking: var(--color-85-white);--color-text-alert: var(--color-apple-bright);--color-link: var(--color-pink-brighter);--color-link-hover: var(--color-pink-brighter-hover);--color-link-visited: var(--color-blue-45);--color-transparent-bg-faint: lch(100% 0 0 / 0.05);--color-accent-1: var(--color-red-pink-brighter);--color-update: var(--color-blue)}}@media(prefers-contrast: more){:root{--font-weight-normal: 400}}@media(max-width: 960px){:root{--font-size-base: 1.4rem;--page-padding: 8ch;--column-gap-base: 3rem;--site-sidebar-width: 22.5rem}}@media(max-width: 760px){:root{--page-padding: 5ch}}:root{font-size:10px}body,html{margin:0;padding:0}body{font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);background-color:var(--color-background);color:var(--color-base)}@supports(mask-image: url("images/peonies.svg")){body::before{display:block;content:"";position:absolute;top:0;left:0;width:100%;height:80rem;z-index:-1;opacity:.1;pointer-events:none;mask-image:url("images/peonies.svg");mask-mode:alpha;background-image:linear-gradient(to bottom, var(--color-base), transparent)}}h1,h2,h3,h4,h5,h6{font-size:var(--font-size-base);font-weight:inherit;line-height:var(--line-height-base);margin:0;padding:0}a{color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline;text-decoration-color:var(--color-base)}ul,ol,dl,p,figure{margin:var(--line-height-base) 0;padding:0}