@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-devanagari-700-normal-D37Te3iF.woff2)format("woff2"),url(/assets/baloo-2-devanagari-700-normal-CEIF4sJg.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-vietnamese-700-normal-h4tlcePq.woff2)format("woff2"),url(/assets/baloo-2-vietnamese-700-normal-DoF59Mjc.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:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-latin-ext-700-normal-Mlh7kdab.woff2)format("woff2"),url(/assets/baloo-2-latin-ext-700-normal-D6LeXASg.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:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/baloo-2-latin-700-normal-CqTg7A15.woff2)format("woff2"),url(/assets/baloo-2-latin-700-normal-Ld3Zm3l2.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:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-devanagari-800-normal-BURIY0wZ.woff2)format("woff2"),url(/assets/baloo-2-devanagari-800-normal-YLp1oUqR.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-vietnamese-800-normal-ConLnEgt.woff2)format("woff2"),url(/assets/baloo-2-vietnamese-800-normal-GQACmpuv.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:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-latin-ext-800-normal-C_Iwmf1s.woff2)format("woff2"),url(/assets/baloo-2-latin-ext-800-normal-D-iCxxqE.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:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-latin-800-normal-BbF3Etk1.woff2)format("woff2"),url(/assets/baloo-2-latin-800-normal-B8BXfZF7.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:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-cyrillic-ext-400-normal-CuPM9foi.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-400-normal-xaE7D4Sw.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:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-cyrillic-400-normal-xAOo5cBP.woff2)format("woff2"),url(/assets/nunito-cyrillic-400-normal-D1j0u8EH.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-vietnamese-400-normal-BHkVbP3T.woff2)format("woff2"),url(/assets/nunito-vietnamese-400-normal-DtOtW02z.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:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-ext-400-normal-i-8OOpdj.woff2)format("woff2"),url(/assets/nunito-latin-ext-400-normal-CjMJVfGn.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:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-400-normal-r8SDr6Up.woff2)format("woff2"),url(/assets/nunito-latin-400-normal-DKg4f3fz.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:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-cyrillic-ext-600-normal-CWPPjBOD.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-600-normal-vnfu4DTE.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:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-cyrillic-600-normal-DJGQ2h05.woff2)format("woff2"),url(/assets/nunito-cyrillic-600-normal-BUjmtIuu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-vietnamese-600-normal-BY8O6Cug.woff2)format("woff2"),url(/assets/nunito-vietnamese-600-normal-DO1RqFw5.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:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-ext-600-normal-Dd9Zuxh1.woff2)format("woff2"),url(/assets/nunito-latin-ext-600-normal-BKUpuB78.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:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2)format("woff2"),url(/assets/nunito-latin-600-normal-Cd0eNu1l.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:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-ext-700-normal-BuR0mlCG.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-700-normal-DfoqN4Gs.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:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-700-normal-DP36NgGt.woff2)format("woff2"),url(/assets/nunito-cyrillic-700-normal-DfHRUDv-.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-vietnamese-700-normal-Ch8EUCfz.woff2)format("woff2"),url(/assets/nunito-vietnamese-700-normal-C9SQsXvj.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:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-ext-700-normal-BWeMsAzO.woff2)format("woff2"),url(/assets/nunito-latin-ext-700-normal-D4woHhbd.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:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.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:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-cyrillic-ext-800-normal-B-cvGohL.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-800-normal-pjRatrRO.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:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-cyrillic-800-normal-D3igD7Kl.woff2)format("woff2"),url(/assets/nunito-cyrillic-800-normal-DymMgApb.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-vietnamese-800-normal-D_CZYdm9.woff2)format("woff2"),url(/assets/nunito-vietnamese-800-normal-Dz0hZPb5.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:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-ext-800-normal-CtU8tJOV.woff2)format("woff2"),url(/assets/nunito-latin-ext-800-normal-CDcxIxx8.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:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-ext-400-normal-C_uLvvQ5.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-ext-400-normal-Bh0R7Dhr.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2)format("woff2"),url(/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-vietnamese-400-normal-ByoDsISC.woff2)format("woff2"),url(/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-cyrillic-ext-600-normal-Dj6eZy5f.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-ext-600-normal-DVvC-yKp.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-cyrillic-600-normal-EVf6-Yzo.woff2)format("woff2"),url(/assets/jetbrains-mono-cyrillic-600-normal-8K4wrrwR.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-greek-600-normal-H7WoG9Et.woff2)format("woff2"),url(/assets/jetbrains-mono-greek-600-normal-mc2nkWzM.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-vietnamese-600-normal-Dtizs43-.woff2)format("woff2"),url(/assets/jetbrains-mono-vietnamese-600-normal-OWROknRo.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-ext-600-normal-BfB_LPfz.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-ext-600-normal-DObL3zCW.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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-600-normal-BfsvjouI.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}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f7ff;--surface:#fff;--surface-2:#eef2ff;--line:#e1e6f5;--line-strong:#d5def7;--ink:#1d2340;--muted:#545c7a;--accent:#2f5fe0;--accent-ink:#fff;--accent-text:#2f5fe0;--press-shadow:#00000038;--blue:#3e7bfa;--yellow:#ffc83d;--yellow-deep:#d9a21c;--coral:#ff6f59;--green:#22c27a;--on-bright:#1d2340;--green-text:#0f7a4a;--coral-text:#a33520;--gold-text:#6b4a00;--tint-yellow:#fff1c7;--tint-blue:#e6eeff;--tint-coral:#ffe7e1;--tint-green:#d6f5e5;--code-bg:#1d2340;--code-bg-2:#262d52;--code-bg-3:#151a33;--code-line:#2b3360;--code-text:#fff;--code-muted:#c9d0f0;--code-dim:#8d95bd;--code-gutter:#5b6599;--night:#1d2340;--night-text:#c9d0f0;--font-display:"Baloo 2", system-ui, sans-serif;--font-body:"Nunito", system-ui, sans-serif;--font-code:"JetBrains Mono", ui-monospace, "Cascadia Mono", monospace;--r-s:12px;--r-m:18px;--r-l:26px;--r-xl:36px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:72px;--s-9:96px;--wrap:1200px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#11142a;--surface:#1a1f3d;--surface-2:#20264a;--line:#2b3360;--line-strong:#39427a;--ink:#eef1ff;--muted:#b3badb;--accent:#84a6ff;--accent-ink:#10132a;--accent-text:#9db8ff;--press-shadow:#00000073;--green-text:#5be3a0;--coral-text:#ff9e8c;--gold-text:#ffd978;--tint-yellow:#3a3220;--tint-blue:#1f2a55;--tint-coral:#3c2427;--tint-green:#173a2c;--code-bg:#0c0f22;--code-bg-2:#151a36;--code-bg-3:#090b1a;--code-line:#222a50;--night:#0c0f22}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#11142a;--surface:#1a1f3d;--surface-2:#20264a;--line:#2b3360;--line-strong:#39427a;--ink:#eef1ff;--muted:#b3badb;--accent:#84a6ff;--accent-ink:#10132a;--accent-text:#9db8ff;--press-shadow:#00000073;--green-text:#5be3a0;--coral-text:#ff9e8c;--gold-text:#ffd978;--tint-yellow:#3a3220;--tint-blue:#1f2a55;--tint-coral:#3c2427;--tint-green:#173a2c;--code-bg:#0c0f22;--code-bg-2:#151a36;--code-bg-3:#090b1a;--code-line:#222a50;--night:#0c0f22}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.55;overflow-x:hidden}img,svg,canvas{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}h1,h2,h3{font-family:var(--font-display);overflow-wrap:break-word;text-wrap:balance;font-weight:800;line-height:1.05}p{overflow-wrap:break-word}a{color:var(--accent-text)}code,kbd{font-family:var(--font-code);font-size:.9em}:where(p,li) code{background:var(--tint-blue);border-radius:6px;padding:1px 6px}kbd{background:var(--tint-yellow);border:2px solid var(--yellow);border-radius:6px;padding:0 6px}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip-link{z-index:100;background:var(--ink);color:var(--bg);border-radius:var(--r-s);padding:12px 18px;font-weight:800;text-decoration:none;position:absolute;top:-80px;left:16px}.skip-link:focus{top:16px}.wrap{max-width:var(--wrap);padding-inline:var(--s-5);margin:0 auto}.btn{min-height:48px;font-family:var(--font-body);cursor:pointer;-webkit-user-select:none;user-select:none;border:0;border-radius:16px;justify-content:center;align-items:center;gap:10px;padding:12px 22px;font-size:17px;font-weight:800;line-height:1.2;text-decoration:none;transition:transform .25s cubic-bezier(.3,1.6,.5,1),box-shadow .2s,background-color .2s;display:inline-flex}.btn:hover{transform:translateY(-3px)}.btn:active{transform:translateY(3px)scale(.98)}.btn[disabled],.btn[aria-disabled=true]{cursor:not-allowed;opacity:.6;transform:none}.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 5px 0 var(--press-shadow)}.btn-primary:hover{color:var(--accent-ink)}.btn-secondary{background:var(--surface);color:var(--ink);border:2px solid var(--line);box-shadow:0 5px 0 var(--line)}.btn-secondary:hover{color:var(--ink)}.btn-yellow{background:var(--yellow);color:var(--on-bright);font-family:var(--font-display);font-size:19px;box-shadow:0 4px #c99410}.btn-ghost{color:inherit;background:0 0;min-height:44px;padding:8px 14px}.btn-ghost:hover{background:color-mix(in srgb, currentColor 10%, transparent);transform:none}.btn-small{min-height:44px;padding:8px 16px;font-size:15px}.icon-btn{border:2px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{border-color:var(--line-strong)}.icon{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:20px;height:20px}.toggles{gap:8px;display:flex}[data-theme-toggle] .icon-moon,:root[data-theme=dark] [data-theme-toggle] .icon-sun{display:none}:root[data-theme=dark] [data-theme-toggle] .icon-moon{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) [data-theme-toggle] .icon-sun{display:none}:root:not([data-theme=light]) [data-theme-toggle] .icon-moon{display:block}}[data-motion-toggle][aria-pressed=false]{color:var(--muted)}[data-motion-toggle][aria-pressed=false] .icon{opacity:.55}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes wiggle{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes flick{0%,60%,to{transform:scaleY(0)}70%,90%{transform:scaleY(1)}}@keyframes float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-18px)rotate(14deg)}}@keyframes pop{0%{opacity:0;transform:scale(.5)}70%{opacity:1;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes twinkle{0%,to{opacity:.3;transform:scale(.75)}50%{opacity:1;transform:scale(1.2)}}@keyframes pulse{0%{box-shadow:0 0 #ffc83dbf}to{box-shadow:0 0 0 20px #ffc83d00}}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}@keyframes hop{0%,to{transform:translateY(0)}40%{transform:translateY(-12px)rotate(-8deg)}}@keyframes dots{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-6px)}}@keyframes confetti{0%{opacity:1;transform:translate(0)rotate(0)}to{opacity:0;transform:translate(var(--x), var(--y)) rotate(var(--r))}}.mascot .m-head{transform-box:fill-box;transform-origin:50% 90%;animation:2.6s ease-in-out infinite wiggle}.mascot .m-eyes{transform-box:fill-box;transform-origin:50%;animation:4s infinite blink}.mascot .m-tongue{transform-box:fill-box;transform-origin:top;animation:1.8s ease-in-out infinite flick}.bob{animation:3s ease-in-out infinite bob}.confetti{pointer-events:none;position:absolute;inset:50% auto auto 50%}.confetti i{opacity:0;width:9px;height:13px;animation:confetti 1.3s cubic-bezier(.2, .7, .4, 1) var(--d,0s) forwards;border-radius:2px;position:absolute}:root[data-motion=off] *,:root[data-motion=off] :before,:root[data-motion=off] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.site-header,.toggles,.floaters,.confetti{display:none!important}body{color:#000;background:#fff}}body.app{flex-direction:column;min-height:100dvh;display:flex}#app{outline:none;flex:1;min-height:0}.boot{padding:var(--s-8) var(--s-5);text-align:center;color:var(--muted);font-weight:700}.app-header{z-index:20;background:var(--surface);border-bottom:2px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 18px;min-height:68px;padding:10px 16px;display:flex;position:sticky;top:0}.brand{min-height:44px;color:var(--ink);align-items:center;gap:8px;text-decoration:none;display:flex}.brand-name{font-family:var(--font-display);font-size:24px;font-weight:800;line-height:1}.app-crumb{flex-wrap:wrap;flex:1;align-items:center;gap:8px 20px;min-width:0;display:flex}.crumb-chip{background:var(--tint-blue);min-height:36px;color:var(--ink);border-radius:999px;align-items:center;gap:8px;padding:6px 14px 6px 8px;font-size:14px;font-weight:800;text-decoration:none;display:inline-flex}span.crumb-chip{padding-left:14px}.crumb-chip.c-coral{background:var(--tint-coral)}.crumb-chip.c-yellow{background:var(--tint-yellow)}.crumb-chip.c-green{background:var(--tint-green)}.crumb-num{background:var(--ink);width:24px;height:24px;color:var(--surface);font-family:var(--font-display);border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.crumb-progress{color:var(--muted);align-items:center;gap:12px;font-size:14px;font-weight:700;display:inline-flex}.bar{background:var(--tint-blue);border:2px solid var(--line-strong);border-radius:999px;width:160px;height:14px;overflow:hidden}.bar-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .8s cubic-bezier(.3,1.3,.5,1);display:block}.app-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.star-count{background:var(--tint-yellow);border:2px solid var(--yellow);min-height:44px;color:var(--ink);font-family:var(--font-display);border-radius:999px;align-items:center;gap:6px;padding:4px 14px 4px 8px;font-size:18px;font-weight:800;text-decoration:none;display:inline-flex}.star-count svg{fill:#f0a800;width:22px;height:22px;animation:2.2s ease-in-out infinite twinkle-star}@keyframes twinkle-star{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(1.2)rotate(15deg)}}@media (width<=640px){.app-crumb{flex-basis:100%;order:3}.bar{width:110px}}.ico{justify-content:center;align-items:center;display:inline-flex}.ico svg{width:20px;height:20px}.ico svg:not(.icon){fill:currentColor}.m-status{width:28px;height:28px;font-family:var(--font-display);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:800;display:inline-flex}.m-status.done{background:var(--green);color:#fff}.m-status.done svg{stroke-width:3.5px;width:15px;height:15px}.m-status.next{background:var(--yellow);color:#1d2340;animation:1.6s ease-out infinite pulse}.m-status.todo{border:3px solid var(--line-strong);color:var(--muted)}.map{padding-block:var(--s-6) var(--s-8);gap:var(--s-5);flex-direction:column;display:flex}.map-hello{align-items:center;gap:var(--s-5) var(--s-6);background:var(--surface);border:2px solid var(--line);border-radius:var(--r-xl);padding:var(--s-6);box-shadow:0 7px 0 var(--line);flex-wrap:wrap;display:flex}.map-mascot{flex-shrink:0;width:170px;height:170px}.map-hello-copy{gap:var(--s-3);flex-direction:column;flex:320px;display:flex}.map-hello h1{font-size:clamp(2rem,4vw,3rem)}.map-hello p{color:var(--muted);max-width:36rem;font-size:18px}.cta-row{margin-top:var(--s-2);flex-wrap:wrap;gap:12px;display:flex}.btn-big{min-height:52px;padding:14px 22px}.map-heading{margin-top:var(--s-5);font-size:30px}.level-grid{gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));padding:0;list-style:none;display:grid}.level-card{background:var(--surface);border:2px solid var(--line);border-radius:var(--r-l);padding:var(--s-4);box-shadow:0 6px 0 var(--line);gap:var(--s-3);flex-direction:column;display:flex}.level-card-head{align-items:center;gap:12px;padding:4px 4px 8px;display:flex}.level-card-head h2{font-size:22px}.level-card-head p{color:var(--muted);font-size:14px;line-height:1.3}.level-card-head>div{flex:1;min-width:0}.level-num{width:48px;height:48px;font-family:var(--font-display);color:#1d2340;border:3px solid var(--surface);box-shadow:0 0 0 2px var(--line);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:22px;font-weight:800;display:flex}.level-num.c-yellow{background:var(--yellow)}.level-num.c-blue{background:var(--blue);color:#fff}.level-num.c-coral{background:var(--coral)}.level-num.c-green{background:var(--green)}.level-count{color:var(--muted);align-items:center;gap:4px;font-size:14px;font-weight:800;display:inline-flex}.level-count svg{fill:none;stroke:#d5a21c;stroke-width:2px;width:18px;height:18px}.level-count .full svg{fill:#f0a800;stroke:#f0a800}.level-missions{flex-direction:column;gap:4px;padding:0;list-style:none;display:flex}.mission-link{min-height:48px;color:var(--ink);border-radius:14px;align-items:center;gap:12px;padding:8px 10px;font-weight:700;text-decoration:none;display:flex}.mission-link:hover{background:var(--surface-2)}.mission-link.is-next{background:var(--tint-yellow);outline:2px solid var(--yellow)}.badge-shelf{gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));padding:0;list-style:none;display:grid}.shelf-badge{text-align:center;padding:var(--s-5) var(--s-4);background:var(--surface);border:2px solid var(--line);border-radius:var(--r-l);flex-direction:column;align-items:center;gap:6px;display:flex}.shelf-badge span:last-child{color:var(--muted);font-size:14px}.shelf-icon{width:64px;height:64px;font-family:var(--font-display);color:var(--muted);border:3px dashed var(--line-strong);border-radius:50%;justify-content:center;align-items:center;font-size:28px;font-weight:800;display:flex}.shelf-icon svg{fill:currentColor;width:30px;height:30px}.earned .shelf-icon{color:#1d2340;border:4px dashed #fff;animation:4s ease-in-out infinite float}.earned.b-first-run .shelf-icon{background:var(--yellow);outline:3px solid var(--yellow)}.earned.b-bug-squasher .shelf-icon{background:var(--coral);outline:3px solid var(--coral)}.earned.b-loop-master .shelf-icon{background:var(--blue);outline:3px solid var(--blue);color:#fff}.earned.b-code-artist .shelf-icon{background:var(--green);outline:3px solid var(--green)}.grownups{margin-top:var(--s-6);padding:var(--s-4) var(--s-5);border:2px solid var(--line);border-radius:var(--r-m);background:var(--surface)}.grownups summary{cursor:pointer;min-height:32px;font-weight:800}.grownups p{margin-block:var(--s-3);color:var(--muted)}.workspace{grid-template-columns:240px minmax(0,1fr) minmax(0,1.3fr);height:calc(100dvh - 68px);min-height:560px;display:grid}.workspace.no-side{grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr)}.workspace>*{position:relative}.ws-side{background:var(--surface);border-right:2px solid var(--line);padding:var(--s-5) 14px;gap:var(--s-4);flex-direction:column;display:flex;overflow:auto}.side-title{font-family:var(--font-display);padding:0 8px;font-size:20px;font-weight:800;line-height:1.15}.ws-side ul{flex-direction:column;gap:6px;padding:0;list-style:none;display:flex}.ws-side a{min-height:48px;color:var(--muted);border-radius:14px;align-items:center;gap:12px;padding:8px 10px;font-weight:700;text-decoration:none;display:flex}.ws-side a:hover{background:var(--surface-2);color:var(--ink)}.ws-side a.current{background:var(--tint-yellow);outline:2px solid var(--yellow);color:var(--ink);font-weight:800}.ws-side .side-back{margin-top:auto;font-size:15px}.ws-lesson{padding:var(--s-6) 34px var(--s-7);gap:var(--s-4);flex-direction:column;display:flex;overflow:auto}.ws-lesson>*{flex-shrink:0}.mission-tag{letter-spacing:.06em;text-transform:uppercase;color:var(--coral-text);background:var(--tint-coral);border-radius:999px;align-self:flex-start;padding:4px 12px;font-size:13px;font-weight:800}.ws-lesson h1{font-size:clamp(2rem,3vw,2.5rem)}.lesson-text{max-width:62ch;font-size:17px;line-height:1.65}.example{border-radius:var(--r-m);box-shadow:0 5px 0 var(--line-strong);overflow:hidden}.example-head{background:var(--code-line);color:var(--code-muted);letter-spacing:.08em;text-transform:uppercase;padding:6px 16px;font-size:12px;font-weight:800}.example-body{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));display:grid}.example-code{background:var(--code-bg);color:var(--code-text);font-variant-ligatures:none;margin:0;padding:14px 16px;font-size:14.5px;line-height:1.75;overflow-x:auto}.example-code code{background:0 0;padding:0}.example-output{background:var(--surface);font-family:var(--font-code);white-space:pre-wrap;flex-direction:column;padding:14px 16px;font-size:14.5px;line-height:1.75;display:flex}.example-output span:not(.example-label){animation:pop .4s ease-out var(--d,0s) both;transform-origin:0}.example-label{font-family:var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:800}.task{margin-top:var(--s-2);background:var(--surface);border:3px solid var(--yellow);box-shadow:0 5px 0 var(--yellow);border-radius:22px;flex-direction:column;gap:12px;padding:20px;display:flex}.task-title{align-items:center;gap:10px;font-size:22px;display:flex}.task-title .ico{background:var(--yellow);color:#1d2340;border-radius:10px;width:34px;height:34px}.task-text{font-size:17px;line-height:1.6}.checks{border-top:2px dashed var(--line);flex-direction:column;gap:10px;padding:12px 0 0;font-size:15px;font-weight:700;list-style:none;display:flex}.check{align-items:center;gap:10px;display:flex}.check-mark{border:3px solid var(--line-strong);background:50%/14px no-repeat;border-radius:50%;flex-shrink:0;width:24px;height:24px}.check.pass .check-mark{background-color:var(--green);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");border:0;animation:.4s cubic-bezier(.3,1.6,.5,1) both pop}.check.fail .check-mark{background-color:var(--coral);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 6v8M12 18h.01' fill='none' stroke='%231D2340' stroke-width='3.5' stroke-linecap='round'/%3E%3C/svg%3E");border:0}.check.fail .check-label{color:var(--coral-text)}.try-list{flex-direction:column;gap:8px;padding-left:1.2em;display:flex}.play-starters{flex-wrap:wrap;gap:10px;display:flex}.ws-editor{--code-size:17px;background:var(--code-bg);color:var(--code-text);flex-direction:column;min-width:0;min-height:0;display:flex}.ed-toolbar{border-bottom:2px solid var(--code-line);align-items:center;gap:10px;min-height:64px;padding:8px 14px 8px 18px;display:flex}.file-tab{font-family:var(--font-code);background:var(--code-line);border-radius:8px;padding:6px 12px;font-size:13px}.ed-hint{color:var(--code-dim);flex:1;font-size:13px}.reset-btn{color:var(--code-muted)}.btn-run{min-width:112px}.btn-run svg{width:15px;height:15px}.btn-run.is-stop{background:var(--coral);box-shadow:0 4px #c2422e}.editor-host{flex:45%;min-height:180px;display:flex;overflow:hidden}.editor-host .cm-editor{flex:1;min-width:0}.editor-host .cm-scroller{overflow:auto}.out-panel{background:var(--code-bg-3);border-top:2px solid var(--code-line);flex-direction:column;flex:55%;gap:14px;min-height:0;padding:14px 20px 22px;display:flex;overflow:auto}.out-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.out-label{letter-spacing:.08em;text-transform:uppercase;color:var(--code-dim);font-size:12px;font-weight:800}.out-status{color:var(--code-muted);font-size:13px;font-weight:700}.canvas-wrap{flex-shrink:0;position:relative}.canvas-wrap[hidden]{display:none}.turtle-canvas{aspect-ratio:5/4;border-radius:var(--r-m);background:#fff;width:100%;max-height:340px}.skip-btn{color:#fff;background:#1d2340d9;position:absolute;bottom:8px;right:8px}.skip-btn[hidden]{display:none}.skip-btn:hover{background:#1d2340}.console{min-height:3.4em;font-family:var(--font-code);color:var(--code-text);white-space:pre-wrap;overflow-wrap:anywhere;font-variant-ligatures:none;margin:0;font-size:14.5px;line-height:1.7}.console:empty:not([data-ran]):before{content:"Press Run to see what your code does.";color:var(--code-dim);font-family:var(--font-body)}.trimmed{color:var(--code-dim);font-family:var(--font-body)}.answer-form{vertical-align:middle;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0;display:inline-flex}.answer-input{border:2px solid var(--yellow);background:var(--code-bg);min-width:12ch;min-height:44px;color:var(--code-text);font-family:var(--font-code);border-radius:10px;padding:6px 12px;font-size:15px;animation:1.6s ease-in-out infinite answer-glow}@keyframes answer-glow{0%,to{box-shadow:0 0 #ffc83d80}50%{box-shadow:0 0 0 6px #ffc83d00}}.helper{align-items:flex-end;gap:6px;display:flex}.helper[hidden]{display:none}.helper-mascot{flex-shrink:0;width:96px;height:96px}.bubble-box{color:#1d2340;transform-origin:0 100%;background:#fff;border-radius:22px 22px 22px 6px;flex-direction:column;flex:1;gap:10px;min-width:0;padding:16px 18px;animation:.45s cubic-bezier(.3,1.6,.5,1) both pop;display:flex;position:relative;box-shadow:0 5px #070915}.bubble-box code{color:#1d2340;background:#e6eeff}.bubble-title{font-family:var(--font-display);font-size:21px;font-weight:800;line-height:1.1}.helper-success .bubble-box{outline:4px solid var(--green)}.helper-error .bubble-box{outline:4px solid var(--coral)}.helper-almost .bubble-box,.helper-clue .bubble-box{outline:4px solid var(--yellow)}.bubble-actions{flex-wrap:wrap;gap:10px;display:flex}.bubble-box .btn-secondary{color:#1d2340;background:#fff;border-color:#e1e6f5;box-shadow:0 4px #e1e6f5}.bubble-box .btn-primary{color:#fff;background:#2f5fe0}.trace summary{cursor:pointer;color:#545c7a;min-height:28px;font-size:14px;font-weight:700}.trace pre{color:#ffb4a6;white-space:pre-wrap;overflow-wrap:anywhere;background:#1d2340;border-radius:10px;margin-top:8px;padding:10px 12px;font-size:13px}.cm-errorLine{animation:.45s ease-in-out 2 shake}.toasts{z-index:50;flex-direction:column;gap:10px;max-width:min(360px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--surface);color:var(--ink);border:3px solid var(--yellow);border-radius:var(--r-m);box-shadow:0 6px 0 var(--yellow-deep);align-items:center;gap:12px;padding:12px 16px;transition:opacity .4s,transform .4s;animation:.45s cubic-bezier(.3,1.6,.5,1) both pop;display:flex}.toast.leaving{opacity:0;transform:translateY(12px)}.toast div{flex-direction:column;display:flex}.toast span{color:var(--muted);font-size:14px}.toast-star svg{fill:#f0a800;width:32px;height:32px;animation:1.2s ease-out spin}.confirm{border-radius:var(--r-l);background:var(--surface);max-width:min(440px,100vw - 32px);color:var(--ink);box-shadow:0 10px 0 var(--line), 0 30px 80px #00000059;border:0;padding:0}.confirm::backdrop{background:#11142a8c}.confirm form{padding:var(--s-5);gap:var(--s-3);flex-direction:column;display:flex}.confirm h2{font-size:26px}.confirm p{color:var(--muted)}.confirm-actions{margin-top:var(--s-2);flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}@media (width<=1100px){.workspace{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}.ws-side{display:none}}@media (width<=820px){.app-header{position:static}.workspace,.workspace.no-side{flex-direction:column;height:auto;min-height:0;display:flex}.ws-lesson{padding:var(--s-5) var(--s-4) var(--s-5);overflow:visible}.ws-editor{--code-size:16px}.editor-host{flex:none;height:300px}.out-panel{flex:none;min-height:220px;overflow:visible}.ed-hint{visibility:hidden}.map-hello{padding:var(--s-5)}.map-mascot,.map-mascot svg{width:120px;height:120px}}
