@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-cyrillic-ext-standard-normal.C5tfwALZ.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-cyrillic-standard-normal.DgmypKXX.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-greek-ext-standard-normal.DGm64vGR.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-greek-standard-normal.DFglUmAd.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-vietnamese-standard-normal.Gqw5JQlq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-latin-ext-standard-normal.STiTPs0F.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-latin-standard-normal.BHZsWIlc.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/literata-cyrillic-ext-standard-italic.5yUt4G_9.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/literata-cyrillic-standard-italic.Bj0ndbyp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/literata-greek-ext-standard-italic.DFpO5j-Z.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/literata-greek-standard-italic.CHERNRFq.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/literata-vietnamese-standard-italic.BdcrZMcO.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/literata-latin-ext-standard-italic.4y8iAqqs.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/literata-latin-standard-italic.CJ93D38p.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/fira-sans-cyrillic-ext-400-normal.Cycyekte.woff2)format("woff2"),url(/_astro/fira-sans-cyrillic-ext-400-normal.Dd5dApAy.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/fira-sans-cyrillic-400-normal.CKu2TFQr.woff2)format("woff2"),url(/_astro/fira-sans-cyrillic-400-normal.D9eUeF-O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/fira-sans-greek-ext-400-normal.ByG7UNQ2.woff2)format("woff2"),url(/_astro/fira-sans-greek-ext-400-normal.ClCfNE6D.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/fira-sans-greek-400-normal.BFCFncbp.woff2)format("woff2"),url(/_astro/fira-sans-greek-400-normal.DQ8sF22y.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/fira-sans-vietnamese-400-normal.ljDTQFsx.woff2)format("woff2"),url(/_astro/fira-sans-vietnamese-400-normal.DUVG35gE.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/fira-sans-latin-ext-400-normal.BLG_mAEf.woff2)format("woff2"),url(/_astro/fira-sans-latin-ext-400-normal.BCUwhuGB.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/fira-sans-latin-400-normal.a0AnQzuD.woff2)format("woff2"),url(/_astro/fira-sans-latin-400-normal.66xCkunx.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/fira-sans-cyrillic-ext-400-italic.DB_xS_b6.woff2)format("woff2"),url(/_astro/fira-sans-cyrillic-ext-400-italic.CbnarsDi.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/fira-sans-cyrillic-400-italic.BAKcRBDi.woff2)format("woff2"),url(/_astro/fira-sans-cyrillic-400-italic.XFS4x9o7.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/fira-sans-greek-ext-400-italic.DB9zFlCy.woff2)format("woff2"),url(/_astro/fira-sans-greek-ext-400-italic.D_uSVs8G.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Fira Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/fira-sans-greek-400-italic.CIBgJGMf.woff2)format("woff2"),url(/_astro/fira-sans-greek-400-italic.DVTb3Fp1.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Fira Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/fira-sans-vietnamese-400-italic.39ka_yKM.woff2)format("woff2"),url(/_astro/fira-sans-vietnamese-400-italic.BIWXzvwe.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/fira-sans-latin-ext-400-italic.2dIMMX94.woff2)format("woff2"),url(/_astro/fira-sans-latin-ext-400-italic.ClyKEpSl.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/fira-sans-latin-400-italic.BHZPyyGY.woff2)format("woff2"),url(/_astro/fira-sans-latin-400-italic.D1LrdPSQ.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/fira-sans-cyrillic-ext-500-normal.Dkk5LlrU.woff2)format("woff2"),url(/_astro/fira-sans-cyrillic-ext-500-normal.Cixivk4R.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/fira-sans-cyrillic-500-normal.CXfldnQ8.woff2)format("woff2"),url(/_astro/fira-sans-cyrillic-500-normal.Daski1k2.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/fira-sans-greek-ext-500-normal.nq-cjB3m.woff2)format("woff2"),url(/_astro/fira-sans-greek-ext-500-normal.Bem4H9fH.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/fira-sans-greek-500-normal.Cy-TUuxE.woff2)format("woff2"),url(/_astro/fira-sans-greek-500-normal.C9KT8sAy.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/fira-sans-vietnamese-500-normal.ChEXCnJy.woff2)format("woff2"),url(/_astro/fira-sans-vietnamese-500-normal.UV7M6ot_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/fira-sans-latin-ext-500-normal.OO1QnNpY.woff2)format("woff2"),url(/_astro/fira-sans-latin-ext-500-normal.CFRf4jcC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/fira-sans-latin-500-normal.Bvbxc8ch.woff2)format("woff2"),url(/_astro/fira-sans-latin-500-normal.Bkfzcwmr.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/fira-sans-cyrillic-ext-600-normal.CE6oUZE1.woff2)format("woff2"),url(/_astro/fira-sans-cyrillic-ext-600-normal.BKgjRriM.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/fira-sans-cyrillic-600-normal.JSBvCpTs.woff2)format("woff2"),url(/_astro/fira-sans-cyrillic-600-normal.CJ5P9t7t.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/fira-sans-greek-ext-600-normal.fS0evUH3.woff2)format("woff2"),url(/_astro/fira-sans-greek-ext-600-normal.DPxZoeHL.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/fira-sans-greek-600-normal.BlqpLOpF.woff2)format("woff2"),url(/_astro/fira-sans-greek-600-normal.DfHu91YF.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/fira-sans-vietnamese-600-normal.Dh2KAvU8.woff2)format("woff2"),url(/_astro/fira-sans-vietnamese-600-normal.Bxjaclsw.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/fira-sans-latin-ext-600-normal.DTQBTt1m.woff2)format("woff2"),url(/_astro/fira-sans-latin-ext-600-normal.DLMQsaV4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/fira-sans-latin-600-normal.CXKlxLG9.woff2)format("woff2"),url(/_astro/fira-sans-latin-600-normal.DtSgd811.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-cyrillic-ext-wght-normal.DhYMMuQd.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-cyrillic-wght-normal.Y3u8pIsh.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-greek-ext-wght-normal.wWus70Ix.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-greek-wght-normal.B2SviObF.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-symbols2-wght-normal.CE6EOz_n.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-latin-ext-wght-normal.Dvfvaomy.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-latin-wght-normal.CHoedHDv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light dark;--brick-600:#a85454;--brick-500:#bd6a6a;--brick-400:#d38282;--brick-200:#dcb1b1;--olive-500:#b5bd68;--ink:#222;--slate:#2c3032;--paper:#f9f9f9;--pastel-yellow:#fceb77;--pastel-pink:#f6abab;--pastel-green:#d0f1a6;--pastel-blue:#bcdfef;--bg:light-dark(var(--paper),#1a1c1d);--surface:light-dark(#fff,#222527);--surface-sunk:light-dark(#f1eeea,#151718);--text:light-dark(var(--ink),#e6e1da);--text-muted:light-dark(#5b5f62,#a49f98);--border:light-dark(#e2ddd7,#33383a);--accent:light-dark(var(--brick-500),var(--brick-400));--accent-text:light-dark(var(--brick-600),var(--brick-400));--accent-soft:light-dark(#f4e6e6,#352a2b);--on-accent:light-dark(#fff,#1a1c1d);--secondary:var(--olive-500);--secondary-text:light-dark(#5f6626,#c3ca7f);--secondary-soft:light-dark(#f0f2dc,#24271c);--highlight:light-dark(var(--pastel-yellow),#5a4e15);--selection:light-dark(var(--pastel-pink),#6b3c3c);--font-serif:"Literata Variable", "Literata", Georgia, "Times New Roman", serif;--font-sans:"Fira Sans", "Segoe UI", system-ui, sans-serif;--font-mono:"Fira Code Variable", "Fira Code", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--step--2:clamp(.78rem, .76rem + .1cqi, .83rem);--step--1:clamp(.875rem, .85rem + .12cqi, .94rem);--step-0:clamp(1.0625rem, 1.02rem + .22cqi, 1.1875rem);--step-1:clamp(1.25rem, 1.17rem + .4cqi, 1.5rem);--step-2:clamp(1.45rem, 1.3rem + .75cqi, 1.9rem);--step-3:clamp(1.7rem, 1.45rem + 1.25cqi, 2.45rem);--step-4:clamp(2rem, 1.6rem + 2cqi, 3.2rem);--step-5:clamp(4.5rem, 3rem + 8cqi, 9rem);--leading-tight:1.15;--leading-snug:1.35;--leading:1.65;--weight-heading:650;--space-3xs:.25rem;--space-2xs:.5rem;--space-xs:.75rem;--space-s:clamp(1rem, .95rem + .25cqi, 1.125rem);--space-m:clamp(1.5rem, 1.4rem + .5cqi, 1.75rem);--space-l:clamp(2rem, 1.8rem + 1cqi, 2.75rem);--space-xl:clamp(3rem, 2.6rem + 2cqi, 4.5rem);--space-2xl:clamp(4rem, 3.2rem + 4cqi, 7rem);--gutter:clamp(1rem, .6rem + 2cqi, 2rem);--wide:62.5rem;--measure:68ch;--radius-s:4px;--radius:8px;--rule:1px solid var(--border);--focus-ring:2px solid var(--accent-text);--duration:.15s;--ease:cubic-bezier(.2, .7, .2, 1);--astro-code-background:light-dark(#f3f0ec,#141617);--astro-code-foreground:light-dark(#2c3032,#ddd8d0);--astro-code-token-keyword:light-dark(#a04545,#e59a9a);--astro-code-token-string:light-dark(#5c6b1f,#c8cf86);--astro-code-token-string-expression:light-dark(#5c6b1f,#c8cf86);--astro-code-token-comment:light-dark(#6e6960,#8e8980);--astro-code-token-function:light-dark(#2f5f7a,#9ccbe3);--astro-code-token-constant:light-dark(#8a5a12,#f0c27a);--astro-code-token-parameter:light-dark(#7a4f6e,#d7a8ca);--astro-code-token-punctuation:light-dark(#5b5f62,#a39e97);--astro-code-token-link:var(--accent-text)}[data-theme=light]{color-scheme:light}[data-theme=dark]{color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;hanging-punctuation:first}body{background:var(--bg);color:var(--text);font-family:var(--font-serif);font-size:var(--step-0);line-height:var(--leading);font-optical-sizing:auto;font-kerning:normal;margin:0}:where(h1,h2,h3,h4,p,figure,blockquote,ul,ol,pre){margin:0}:where(h1,h2,h3,h4){font-weight:var(--weight-heading);line-height:var(--leading-tight);text-wrap:balance}:where(p,li,figcaption,blockquote){text-wrap:pretty}img,svg,video{block-size:auto;max-inline-size:100%;display:block}a{color:var(--accent-text);text-underline-offset:.22em;text-decoration-line:underline;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);&:hover{text-decoration-color:currentColor}}:focus-visible{outline:var(--focus-ring);outline-offset:3px;border-radius:2px}::selection{background:var(--selection);color:var(--text)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;overflow:hidden;position:absolute!important}.skip-link{border-radius:var(--radius-s);background:var(--accent-text);color:var(--on-accent);font-family:var(--font-sans);font-size:var(--step--1);padding:.6rem 1rem;font-weight:600;position:absolute;inset-block-start:-10rem;inset-inline-start:var(--gutter);&:focus{inset-block-start:var(--space-xs)}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}:where(a,.btn){transition:color var(--duration) var(--ease), background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), text-decoration-color var(--duration) var(--ease)}}.site{background:var(--bg);min-block-size:100vh;color:var(--text);flex-direction:column;display:flex;position:relative;container:site/inline-size;&>*{font-size:var(--step-0)}&>main{flex:1}}.wrap{inline-size:min(100% - 2 * var(--gutter), var(--wide));margin-inline:auto}.column{inline-size:min(100% - 2 * var(--gutter), var(--measure));margin-inline:auto}.site-header{padding-block:var(--space-l) 0;& .wrap{align-items:center;gap:var(--space-2xs);border-block-end:var(--rule);flex-direction:column;display:flex}}.wordmark{color:var(--text);font-size:var(--step-1);font-weight:var(--weight-heading);letter-spacing:-.01em;align-items:center;gap:.6rem;line-height:1;text-decoration:none;display:inline-flex}.wordmark__mark{background:var(--accent);block-size:2rem;inline-size:2rem;color:var(--bg);letter-spacing:-.02em;border-radius:50%;place-items:center;font-size:.95rem;font-style:italic;font-weight:600;display:grid}.wordmark__tag{font-family:var(--font-sans);font-size:var(--step--2);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);font-weight:500}.nav{font-family:var(--font-sans);font-size:var(--step--1);letter-spacing:.02em;flex-wrap:wrap;justify-content:center;column-gap:clamp(.9rem,.4rem + 1.6cqi,1.9rem);margin:0;padding:0;font-weight:500;list-style:none;display:flex;& a{color:var(--accent-text);border-block-end:2px solid #0000;margin-block-end:-1px;padding-block:.75rem .65rem;text-decoration:none;display:inline-block;&:hover{border-color:var(--brick-200)}&[aria-current=page]{color:var(--text);border-color:var(--accent)}}}.section-title{align-items:center;gap:var(--space-s);font-family:var(--font-sans);font-size:var(--step--1);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-block-end:var(--space-m);font-weight:600;display:flex;&:after{content:"";border-block-start:var(--rule);flex:1}}.kicker{font-family:var(--font-sans);font-size:var(--step--2);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-text);font-weight:600;text-decoration:none}.meta{font-family:var(--font-sans);font-size:var(--step--1);color:var(--text-muted);font-variant-numeric:lining-nums tabular-nums;flex-wrap:wrap;align-items:center;gap:.25rem .6rem;display:flex;&>*+:before{content:"";vertical-align:middle;opacity:.6;background:currentColor;border-radius:50%;block-size:3px;inline-size:3px;margin-block-start:-2px;margin-inline-end:.6rem;display:inline-block}}.intro{padding-block:var(--space-xl) var(--space-xl);& h1{font-size:var(--step-4);letter-spacing:-.02em;margin-block-end:var(--space-m)}& h1 span{color:var(--accent)}& p+p{margin-block-start:var(--space-s)}& .lede{font-size:var(--step-1);line-height:1.5}}.page-title{font-size:var(--step-4);letter-spacing:-.02em}.page-header{justify-items:center;gap:var(--space-s);padding-block:var(--space-xl) var(--space-l);text-align:center;display:grid}.post-list{margin:0;padding:0;list-style:none;&>li{padding-block:var(--space-l);border-block-start:var(--rule)}&>li:first-child{border:0;padding-block-start:0}}.post-card{gap:var(--space-xs);display:grid;& .post-card__title{font-size:var(--step-3);letter-spacing:-.015em}& .post-card__title a{color:var(--accent);text-decoration:none;&:hover{text-decoration:underline 2px;text-decoration-color:var(--brick-200)}}& .post-card__media{margin-block:var(--space-2xs)}}.read-more{min-block-size:44px;font-family:var(--font-sans);font-size:var(--step--1);letter-spacing:.02em;justify-self:start;align-items:center;gap:.4em;font-weight:600;display:inline-flex}.kind-label{font-family:var(--font-sans);font-size:var(--step--2);letter-spacing:.14em;text-transform:uppercase;color:var(--secondary-text);align-items:center;gap:.45em;font-weight:600;display:inline-flex;&:before{content:"";background:var(--secondary);border-radius:50%;block-size:.6em;inline-size:.6em}}.post-card--link{padding:var(--space-m);background:var(--secondary-soft);border-radius:var(--radius);& .post-card__title{font-size:var(--step-2)}& .post-card__title a{color:var(--text)}& .post-card__title a:hover{text-decoration-color:var(--secondary)}& .ext{color:var(--secondary-text);font-family:var(--font-sans);font-size:.75em;font-weight:500}& p+p{margin-block-start:var(--space-xs)}}.actions{align-items:center;gap:var(--space-2xs) var(--space-s);flex-wrap:wrap;margin-block-start:var(--space-2xs);display:flex}.btn{min-block-size:44px;font-family:var(--font-sans);font-size:var(--step--1);border:1px solid #0000;border-radius:999px;align-items:center;gap:.45em;padding:.55rem 1.1rem;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn--primary{background:var(--accent-text);color:var(--on-accent);&:hover{background:var(--accent)}}.btn--link{background:var(--secondary-text);color:var(--on-accent);&:hover{background:var(--text)}}.btn--ghost{border-color:var(--border);color:var(--text);&:hover{border-color:var(--accent)}}.text-link{font-family:var(--font-sans);font-size:var(--step--1);color:var(--text-muted)}.pagination{justify-content:space-between;align-items:center;gap:var(--space-s);border-block-start:var(--rule);font-family:var(--font-sans);font-size:var(--step--1);margin-block-start:var(--space-l);padding-block-start:var(--space-m);display:flex;& ol{gap:.25rem;margin:0;padding:0;list-style:none;display:flex}& ol a,& ol span{min-block-size:44px;min-inline-size:44px;color:var(--text);border-radius:999px;place-items:center;text-decoration:none;display:grid}& ol a:hover{background:var(--accent-soft)}& [aria-current=page]{background:var(--accent-text);color:var(--on-accent);font-weight:600}& .gap{color:var(--text-muted)}& .pagination__step{align-items:center;min-block-size:44px;font-weight:600;text-decoration:none;display:inline-flex}& .pagination__step[aria-disabled=true]{color:var(--text-muted);font-weight:500}& .pagination__status{color:var(--text-muted);display:none}}@container site (width<36rem){.pagination ol{display:none}.pagination .pagination__status{display:block}}.site-footer{padding-block:var(--space-xl) var(--space-m);background:var(--surface-sunk);border-block-start:var(--rule);font-family:var(--font-sans);color:var(--text-muted);margin-block-start:var(--space-2xl);& .wrap{gap:var(--space-l);display:grid}& a{color:var(--text)}}.site-footer__bio{gap:var(--space-2xs);max-inline-size:46ch;font-size:var(--step--1);line-height:1.6;display:grid;& .name{font-family:var(--font-serif);font-size:var(--step-1);font-weight:var(--weight-heading);color:var(--text)}}.footer-links{gap:0 var(--space-m);font-size:var(--step--1);flex-wrap:wrap;margin:0;padding:0;font-weight:500;list-style:none;display:flex;& a{align-items:center;gap:.5em;min-block-size:44px;text-decoration:none;display:inline-flex;&:hover{color:var(--accent-text)}}& svg{block-size:1.1em;inline-size:1.1em;color:var(--accent)}}.site-footer__base{justify-content:space-between;gap:.25rem var(--space-s);border-block-start:var(--rule);font-size:var(--step--2);flex-wrap:wrap;padding-block-start:var(--space-s);display:flex;& a{color:var(--text-muted)}}@container site (width>=44rem){.site-footer .wrap{grid-template-columns:1.5fr 1fr;align-items:start}.footer-links{justify-content:end}.site-footer__base{grid-column:1/-1}}.article-header{justify-items:center;gap:var(--space-s);padding-block:var(--space-xl) var(--space-l);text-align:center;display:grid;& h1{font-size:var(--step-4);letter-spacing:-.02em;max-inline-size:22ch}& .dek{max-inline-size:48ch;font-size:var(--step-1);color:var(--text-muted);font-style:italic;line-height:1.5}& .meta{justify-content:center}}.article-hero{margin-block-end:var(--space-xl)}.article-hero img,.post-card__media img{border-radius:var(--radius);inline-size:100%}.article-footer{gap:var(--space-l);border-block-start:var(--rule);margin-block-start:var(--space-xl);padding-block-start:var(--space-l);display:grid}.post-nav{gap:var(--space-s);display:grid;& a{padding:var(--space-s) var(--space-m);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:.3rem;text-decoration:none;display:grid;&:hover{border-color:var(--accent)}}& .label{font-family:var(--font-sans);font-size:var(--step--2);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-weight:600}& .title{font-size:var(--step-1);font-weight:var(--weight-heading);line-height:var(--leading-snug);color:var(--accent-text)}& .next{text-align:end}}@container site (width>=40rem){.post-nav{grid-template-columns:1fr 1fr}.post-nav .next{grid-column:2}}.project-grid{gap:var(--space-m);grid-template-columns:repeat(auto-fill,minmax(min(17rem,100%),1fr));margin:0;padding:0;list-style:none;display:grid}.project-card{gap:var(--space-xs);block-size:100%;padding:var(--space-m);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-rows:auto auto auto 1fr auto;display:grid;position:relative;&:hover{border-color:var(--accent)}&:focus-within{outline:var(--focus-ring);outline-offset:3px}& h2{font-size:var(--step-1)}& h2 a{color:var(--text);text-decoration:none;&:after{content:"";border-radius:inherit;position:absolute;inset:0}&:focus-visible{outline:none}}& p{color:var(--text-muted);font-size:var(--step--1);line-height:1.55;font-family:var(--font-sans)}& .role{font-size:var(--step--2);letter-spacing:.02em;text-transform:uppercase;color:var(--accent-text);margin-block-start:calc(-1 * var(--space-2xs));font-weight:500}& .url{font-family:var(--font-sans);font-size:var(--step--1);color:var(--accent-text);font-weight:600}& .url--offline{color:var(--text-muted);font-weight:500}}.project-section+.project-section{margin-block-start:var(--space-xl)}.project-logo{block-size:3.25rem;inline-size:3.25rem;color:var(--slate);border-radius:14px;place-items:center;font-size:1.3rem;font-style:italic;font-weight:700;display:grid;&.yellow{background:var(--pastel-yellow)}&.pink{background:var(--pastel-pink)}&.green{background:var(--pastel-green)}&.blue{background:var(--pastel-blue)}&.brick{background:var(--brick-200)}&:is(img){object-fit:cover}}.not-found{justify-items:center;gap:var(--space-s);text-align:center;padding-block:var(--space-xl) 0;display:grid;& .code{font-size:var(--step-5);letter-spacing:-.04em;color:var(--accent);font-style:italic;font-weight:300;line-height:1}& h1{font-size:var(--step-3)}& p{max-inline-size:46ch;color:var(--text-muted)}& .actions{justify-content:center}}.recent{text-align:start;inline-size:100%;margin-block-start:var(--space-xl)}.recent ul{margin:0;padding:0;list-style:none;display:grid}.recent li{justify-content:space-between;gap:0 var(--space-s);padding-block:var(--space-xs);border-block-end:var(--rule);flex-wrap:wrap;display:flex}.recent li a{font-weight:600;text-decoration:none}.recent li .meta{font-size:var(--step--2)}.prose{grid-template-columns:[full-start] minmax(0, 1fr) [wide-start] minmax(0, 5rem) [content-start] min(var(--measure), 100%) [content-end] minmax(0, 5rem) [wide-end] minmax(0, 1fr) [full-end];padding-inline:var(--gutter);display:grid;&>*{grid-column:content}&>:is(figure,pre){grid-column:wide}&>*+*{margin-block-start:var(--space-s)}&>h2{font-size:var(--step-2);letter-spacing:-.01em;margin-block-start:var(--space-xl)}&>h3{font-size:var(--step-1);margin-block-start:var(--space-l)}&>h4{font-family:var(--font-sans);font-size:var(--step-0);margin-block-start:var(--space-m);font-weight:600}&>:is(h2,h3,h4)+*{margin-block-start:var(--space-xs)}&>:is(figure,pre,blockquote,table,hr),&>:is(figure,pre,blockquote,table,hr)+*{margin-block-start:var(--space-l)}& strong{font-weight:700}& mark{background:var(--highlight);color:inherit;border-radius:2px;padding:.05em .2em}& :is(ul,ol){padding-inline-start:1.4em}& li+li,& li>:is(ul,ol){margin-block-start:.4em}& li::marker{color:var(--accent)}& ol>li::marker{font-family:var(--font-sans);font-size:.9em;font-weight:600}& blockquote{font-size:var(--step-1);padding-inline-start:1.6em;font-style:italic;line-height:1.5;position:relative;&:before{content:"“";color:var(--accent);font-size:2.6em;font-style:normal;line-height:1;position:absolute;inset-block-start:-.12em;inset-inline-start:0}& p+p{margin-block-start:var(--space-xs)}}& :not(pre)>code{border-radius:var(--radius-s);background:var(--accent-soft);color:var(--text);font-family:var(--font-mono);overflow-wrap:anywhere;padding:.12em .38em;font-size:.84em}& figure{gap:var(--space-xs);display:grid}& figure img{border-radius:var(--radius);inline-size:100%}& figcaption{text-align:center;max-inline-size:60ch;font-family:var(--font-sans);font-size:var(--step--1);color:var(--text-muted);justify-self:center}& table{border-collapse:collapse;inline-size:100%;font-family:var(--font-sans);font-size:var(--step--1);font-variant-numeric:tabular-nums}& th{text-align:start;border-block-end:2px solid var(--accent);padding:.6rem .75rem;font-weight:600}& td{vertical-align:top;border-block-end:var(--rule);padding:.6rem .75rem}& :is(th,td):first-child{padding-inline-start:0}& hr{text-align:center;border:0;block-size:auto;line-height:1;&:before{content:"• • •";color:var(--accent);font-size:var(--step--1)}}}@container site (width<40rem){.prose>pre{margin-inline:calc(-1 * var(--gutter));border-inline:0;border-radius:0}.prose table{display:block;overflow-x:auto}}pre.astro-code{padding:2.5rem var(--space-m) var(--space-m);border:1px solid var(--border);border-radius:var(--radius);background:var(--astro-code-background);color:var(--astro-code-foreground);font-family:var(--font-mono);font-size:var(--step--1);font-variant-ligatures:none;tab-size:2;line-height:1.7;position:relative;overflow-x:auto;&[data-language]:before{content:attr(data-language);font-family:var(--font-sans);font-size:var(--step--2);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-weight:600;position:absolute;inset-block-start:.75rem;inset-inline-start:var(--space-m)}& code{inline-size:max-content;min-inline-size:100%;display:grid}& .line{white-space:pre}& .line:empty:before{content:"​"}}
