@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/newsreader-vietnamese-400-normal-DdKr49mV.woff2)format("woff2"),url(/assets/newsreader-vietnamese-400-normal-BekUZro8.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:Newsreader;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/newsreader-latin-ext-400-normal-svq1FPys.woff2)format("woff2"),url(/assets/newsreader-latin-ext-400-normal-DYA1XoQK.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:Newsreader;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/newsreader-latin-400-normal-BFBkh4jY.woff2)format("woff2"),url(/assets/newsreader-latin-400-normal-gRTjlS2D.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:Newsreader;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/newsreader-vietnamese-500-normal-CL6a8tp2.woff2)format("woff2"),url(/assets/newsreader-vietnamese-500-normal-BEAbKU8A.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:Newsreader;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/newsreader-latin-ext-500-normal-BNHmvKvI.woff2)format("woff2"),url(/assets/newsreader-latin-ext-500-normal-CZruMFou.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:Newsreader;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/newsreader-latin-500-normal-B66TYsaK.woff2)format("woff2"),url(/assets/newsreader-latin-500-normal-DFwuUcdu.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:Newsreader;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/newsreader-vietnamese-400-italic-bZegYFuM.woff2)format("woff2"),url(/assets/newsreader-vietnamese-400-italic-QbB8kb5s.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:Newsreader;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/newsreader-latin-ext-400-italic-BMTE_bNQ.woff2)format("woff2"),url(/assets/newsreader-latin-ext-400-italic-qdgKLcPG.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:Newsreader;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/newsreader-latin-400-italic-CEihAR-f.woff2)format("woff2"),url(/assets/newsreader-latin-400-italic-CNZoH1hn.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.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{--bg:#f3ede1;--bg-glow:#ffd69659;--surface:#fbf7ef;--surface-2:#f6f0e4;--line:#e3d8c4;--line-2:#d4c6ad;--ink:#2a241c;--ink-2:#5d5244;--ink-3:#8f826f;--accent:#b5641a;--accent-ink:#fffaf2;--accent-soft:#b5641a1f;--sage:#5c7d47;--sage-soft:#5c7d4724;--ochre:#b08a1c;--rose:#b4533a;--shadow:0 1px 0 #3c280a0a, 0 8px 28px -12px #3c280a2e;--pdf-page:#fff;--serif:"Newsreader", "Iowan Old Style", Georgia, serif;--sans:"IBM Plex Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg:#15120e;--bg-glow:#e9a54b1a;--surface:#1e1a15;--surface-2:#191510;--line:#2f2820;--line-2:#3d342a;--ink:#efe5d3;--ink-2:#b8a992;--ink-3:#7f725f;--accent:#e9a54b;--accent-ink:#1a140b;--accent-soft:#e9a54b21;--sage:#9fbb86;--sage-soft:#9fbb8624;--ochre:#d8b95a;--rose:#df8a70;--shadow:0 1px 0 #0003, 0 12px 32px -14px #0009;--pdf-page:#f7f1e6;--pdf-night-page:#221d17;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=lamp]{--bg:#15120e;--bg-glow:#e9a54b1a;--surface:#1e1a15;--surface-2:#191510;--line:#2f2820;--line-2:#3d342a;--ink:#efe5d3;--ink-2:#b8a992;--ink-3:#7f725f;--accent:#e9a54b;--accent-ink:#1a140b;--accent-soft:#e9a54b21;--sage:#9fbb86;--sage-soft:#9fbb8624;--ochre:#d8b95a;--rose:#df8a70;--shadow:0 1px 0 #0003, 0 12px 32px -14px #0009;--pdf-page:#f7f1e6;--pdf-night-page:#221d17;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=chalk]{--bg:#1b2520;--bg-glow:#e1f0e10d;--surface:#22302a;--surface-2:#1e2a24;--line:#33443b;--line-2:#44584c;--ink:#eef1e8;--ink-2:#b8c4b5;--ink-3:#81907e;--accent:#f2d47c;--accent-ink:#1b2520;--accent-soft:#f2d47c21;--sage:#8fd1c0;--sage-soft:#8fd1c024;--ochre:#f0b56e;--rose:#f29c9c;--shadow:0 1px 0 #0000002e, 0 12px 32px -14px #0000008c;--pdf-page:#eceee6;--pdf-night-page:#1f2a24;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-pattern:radial-gradient(ellipse 60% 40% at 78% 18%, #ffffff09, transparent 70%);--bg-pattern-size:auto}:root[data-theme=graph]{--bg:#f4f6f9;--bg-glow:#78a0e629;--surface:#fff;--surface-2:#eff3f8;--line:#dbe2eb;--line-2:#c5cfdc;--ink:#17212e;--ink-2:#4a5868;--ink-3:#7c8998;--accent:#2f62c9;--accent-ink:#fff;--accent-soft:#2f62c91a;--sage:#2f8a5b;--sage-soft:#2f8a5b1f;--ochre:#b5840f;--rose:#c9483a;--shadow:0 1px 0 #1428500a, 0 8px 28px -12px #14285029;--pdf-page:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-pattern:conic-gradient(from 90deg at 1px 1px, transparent 90deg, #3c6ebe17 0);--bg-pattern-size:24px 24px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background-color:var(--bg);background-image:var(--bg-pattern,none), radial-gradient(1100px 600px at 12% -10%, var(--bg-glow), transparent 70%);background-size:var(--bg-pattern-size,auto), auto;color:var(--ink);font:15px/1.55 var(--sans);-webkit-font-smoothing:antialiased;background-repeat:repeat,no-repeat;background-attachment:fixed;min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}h1,h2,h3{margin:0;font-weight:500}code{font-family:var(--mono);font-size:.9em}.serif{font-family:var(--serif)}.mono{font-family:var(--mono);font-feature-settings:"zero" 0}.dim{color:var(--ink-3)}.small{font-size:12.5px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.boot{min-height:100vh}.app{max-width:1440px;margin:0 auto;padding:0 28px 64px}.topbar{border-bottom:1px solid var(--line);z-index:20;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);align-items:center;gap:28px;padding:18px 0 16px;display:flex;position:sticky;top:0}.wordmark{font:500 19px var(--serif);letter-spacing:.01em;align-items:center;gap:9px;display:flex}.wordmark em{color:var(--ink-3);font-style:italic;font-weight:400}.wordmark.big{justify-content:center;font-size:34px}.tomb{background:var(--accent);width:11px;height:11px;box-shadow:0 0 14px var(--accent);border-radius:1.5px}.wordmark.big .tomb{width:18px;height:18px}.topbar nav{gap:4px;display:flex}.topbar nav a{color:var(--ink-2);border-radius:999px;padding:6px 12px;font-size:14px}.topbar nav a:hover{color:var(--ink);background:var(--surface-2)}.topbar nav a.active{color:var(--ink);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.top-right{align-items:center;gap:6px;margin-left:auto;display:flex}.clock{font:12.5px var(--mono);color:var(--ink-2);white-space:nowrap;align-items:center;gap:7px;margin-right:8px;display:flex}.clock-dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 8px var(--accent);border-radius:50%}.icon-btn{min-width:34px;height:34px;color:var(--ink-2);background:0 0;border:1px solid #0000;border-radius:10px;place-items:center;padding:0 6px;display:inline-grid}.icon-btn:hover{background:var(--surface-2);color:var(--ink);border-color:var(--line)}.icon-btn.sm{min-width:30px;height:30px;font-size:12px}.icon-btn.xs{border-radius:7px;min-width:24px;height:24px}.icon-btn.on{color:var(--accent)}.icon-btn.ghost{opacity:0}.note:hover .icon-btn.ghost,.icon-btn.ghost:focus-visible{opacity:1}.btn{border:1px solid var(--line-2);background:var(--surface);color:var(--ink);border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:14px;font-weight:500;transition:transform .12s,background .15s,border-color .15s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--ink-3)}.btn:active:not(:disabled){transform:translateY(1px)}.btn.primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 6px 22px -8px var(--accent);border-color:#0000}.btn.primary:hover:not(:disabled){filter:brightness(1.06)}.btn.big{border-radius:13px;padding:13px 22px;font-size:15px}.btn.small{border-radius:9px;padding:6px 12px;font-size:13px}.btn.wide{width:100%}.btn.done{background:var(--sage-soft);color:var(--sage);border-color:#0000}.tomb-sm{font-size:11px}.toast{z-index:50;background:var(--ink);color:var(--bg);cursor:pointer;border-radius:12px;padding:10px 16px;font-size:14px;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.toast span{opacity:.6;margin-left:10px}.page{padding-top:34px}.eyebrow{font:500 11.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0 0 6px}.lede{color:var(--ink-2);font:19px/1.45 var(--serif);margin:8px 0 0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px}.card.flat{box-shadow:none;padding:18px 20px}.card h3,.shelf-title{font:500 17px var(--serif)}.card-head{flex-wrap:wrap;align-items:baseline;gap:14px;margin-bottom:14px;display:flex}.card-head.tight{margin:22px 0 8px}.empty{color:var(--ink-3);font:italic 16px/1.5 var(--serif);margin:0}.hint{color:var(--ink-2);margin:12px 0 0;font-size:13.5px}.error{color:var(--rose);font-size:14px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px;display:flex}.page-head h1{font:400 clamp(28px, 3.4vw, 40px)/1.1 var(--serif);letter-spacing:-.01em;flex-wrap:wrap;align-items:baseline;gap:14px;display:flex}.lec-no{color:var(--accent);letter-spacing:.04em;border:1px solid var(--accent-soft);background:var(--accent-soft);border-radius:7px;padding:3px 8px;font-size:.42em;transform:translateY(-.35em)}.prevnext{align-items:center;gap:6px;font-size:13px;display:flex}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{text-align:center;gap:14px;width:min(380px,100%);display:grid}.login-sub{color:var(--ink-3);font:italic 17px var(--serif);margin:-4px 0 18px}.login input,.page-input,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:11px;width:100%;padding:11px 14px}.login input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.hello h1{font:400 clamp(34px, 4.6vw, 54px)/1.05 var(--serif);letter-spacing:-.015em}.hello{margin-bottom:30px}.desk-grid{grid-template-columns:1.55fr 1fr;gap:20px;margin-bottom:20px;display:grid}.desk-grid.lower{grid-template-columns:1fr 1fr;margin:20px 0 0}.upnext{background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 7%, var(--surface)), var(--surface) 55%);position:relative;overflow:hidden}.upnext h2{font:400 clamp(26px, 3vw, 36px)/1.15 var(--serif);flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:18px;display:flex}.upnext .btn.big{margin-top:20px}.steps{gap:2px;margin:0;padding:0;list-style:none;display:grid}.steps a{color:var(--ink-2);border-radius:10px;align-items:center;gap:12px;margin:0 -10px;padding:8px 10px;display:flex}.steps a:hover{background:var(--surface-2);color:var(--ink)}.steps li.next a{color:var(--ink);background:var(--accent-soft)}.steps li.done a{color:var(--ink-3)}.steps li.done a>span:nth-child(2){text-decoration:line-through;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2)}.step-check{border:1px solid var(--line-2);width:26px;height:26px;color:var(--ink-3);border-radius:8px;flex:none;place-items:center;font-size:12px;display:grid}.steps li.next .step-check{border-color:var(--accent);color:var(--accent)}.steps li.done .step-check{background:var(--sage-soft);color:var(--sage);border-color:#0000}.stats{flex-direction:column;gap:16px;display:flex}.big-pct{letter-spacing:-.03em;font-size:76px;line-height:.9}.big-pct small{font:400 26px var(--serif);color:var(--ink-3);margin-left:4px}.seg-bar{gap:3px;display:flex}.seg-bar span{background:var(--line);border-radius:3px;flex:1;height:9px}.seg-bar span.some{background:color-mix(in srgb, var(--accent) 45%, var(--line))}.seg-bar span.full{background:var(--accent)}.stats dl{gap:2px;margin:4px 0 0;display:grid}.stats dl div{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:baseline;padding:7px 0;display:flex}.stats dl div:last-child{border:0}.stats dt{color:var(--ink-2);font-size:14px}.stats dd{font-family:var(--mono);margin:0;font-size:14px}.stats dd b{font-weight:500}.stats dd span{color:var(--ink-3)}.map svg{width:100%;height:auto;display:block;overflow:visible}.map-roman{font:500 22px var(--serif);fill:var(--accent)}.map-part{font:500 10.5px var(--mono);fill:var(--ink-3);letter-spacing:.08em;text-transform:uppercase}.map-edge{stroke:var(--line-2);stroke-width:2px}.map-edge.lit{stroke:var(--accent)}.map-node{cursor:pointer;outline:none}.map-dot{fill:var(--surface);stroke:var(--line-2);stroke-width:1.5px;transition:fill .2s,stroke .2s}.map-num{font:500 13px var(--mono);fill:var(--ink-2);text-anchor:middle;pointer-events:none}.map-node:hover .map-dot,.map-node:focus-visible .map-dot{stroke:var(--accent);stroke-width:2px}.map-node.started .map-dot{stroke:var(--accent)}.map-node.done .map-dot{fill:var(--accent);stroke:var(--accent)}.map-node.done .map-num{fill:var(--accent-ink)}.map-arc{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round}.map-halo{fill:var(--accent-soft);stroke:var(--accent);stroke-opacity:.35;transform-box:fill-box;transform-origin:50%;animation:2.8s ease-in-out infinite breathe}@keyframes breathe{0%,to{opacity:.65;transform:scale(.92)}50%{opacity:1;transform:scale(1.06)}}.map-stem{stroke:var(--line-2);stroke-dasharray:2 3}.map-ps{cursor:pointer;outline:none}.map-ps rect{fill:var(--surface-2);stroke:var(--line-2)}.map-ps:hover rect,.map-ps:focus-visible rect{stroke:var(--accent)}.map-ps.started rect{stroke:var(--ochre)}.map-ps.done rect{fill:var(--sage-soft);stroke:var(--sage)}.map-ps-label{font:500 9.5px var(--mono);fill:var(--ink-2);text-anchor:middle;pointer-events:none}.map-caption{text-align:center;font:italic 16px var(--serif);color:var(--ink-2);min-height:1.5em;margin:4px 0 0}@media (prefers-reduced-motion:reduce){.map-halo{animation:none}}.heat-grid{justify-content:start;gap:4px;display:grid}.heat-col{grid-template-rows:repeat(7,1fr);gap:4px;display:grid}.heat-cell{aspect-ratio:1;background:var(--line);border-radius:3px}.heat-cell.empty{background:0 0}.heat-cell.l1{background:color-mix(in srgb, var(--accent) 28%, var(--line))}.heat-cell.l2{background:color-mix(in srgb, var(--accent) 52%, var(--line))}.heat-cell.l3{background:color-mix(in srgb, var(--accent) 78%, var(--line))}.heat-cell.l4{background:var(--accent);box-shadow:0 0 8px -2px var(--accent)}.heat-cell.today{outline:1.5px solid var(--ink-3);outline-offset:1px}.heat-foot{color:var(--ink-2);gap:22px;margin-top:14px;font-size:13.5px;display:flex}.heat-foot b{font:500 15px var(--mono);color:var(--ink)}.revisit,.recent-notes,.list{margin:0;padding:0;list-style:none}.revisit a,.recent-notes a{border-bottom:1px dashed var(--line);align-items:center;gap:10px;padding:7px 0;display:flex}.recent-notes a{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;font-size:14px;display:block;overflow:hidden}.revisit a:hover,.recent-notes a:hover{color:var(--accent)}.grade-dot{border:1.5px solid var(--line-2);border-radius:50%;flex:none;width:9px;height:9px}.grade-dot.working{border-color:var(--ink-3);border-style:dashed}.grade-dot.attempted{background:var(--ink-3);border-color:var(--ink-3)}.grade-dot.solved{background:var(--sage);border-color:var(--sage)}.grade-dot.partial{background:var(--ochre);border-color:var(--ochre)}.grade-dot.stuck{background:var(--rose);border-color:var(--rose)}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;align-items:center;gap:4px;margin-bottom:18px;display:flex;overflow-x:auto}.tabs button{color:var(--ink-3);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-size:14px}.tabs button:hover{color:var(--ink)}.tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.tab-link{color:var(--accent);white-space:nowrap;margin-left:auto;padding:10px 4px;font-size:14px}.split{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:22px;display:grid}.split-side{scrollbar-width:thin;gap:16px;max-height:calc(100vh - 104px);display:grid;position:sticky;top:88px;overflow-y:auto}.split-side h3{margin-bottom:10px}.under-player{flex-wrap:wrap;align-items:center;gap:16px;margin-top:12px;display:flex}.player video,.yt iframe{aspect-ratio:16/9;border-radius:var(--radius);background:#000;width:100%;display:block}.yt iframe{border:0}.player-note{color:var(--ink-3);margin:10px 2px 0;font-size:13px}.player-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;font-size:13px;display:flex}.speeds,.seg{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:2px;display:inline-flex}.speeds button,.seg button{font:500 12px var(--mono);color:var(--ink-3);background:0 0;border:0;border-radius:8px;align-items:center;gap:5px;padding:4px 9px;display:inline-flex}.seg button{font-family:var(--sans);font-size:12.5px}.speeds button.on,.seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001f}.notes{gap:12px;display:grid}.note-input{justify-items:end;gap:8px;display:grid;position:relative}.note-input textarea{resize:vertical;font-size:14px}.note-input .stamp{position:absolute;top:-9px;left:10px}.stamp{background:var(--accent-soft);color:var(--accent);border:0;border-radius:6px;padding:1px 7px;font-size:11.5px}.note-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.note{border-top:1px dashed var(--line);align-items:flex-start;gap:10px;padding:8px 0;display:flex}.note p{font:15.5px/1.45 var(--serif);white-space:pre-wrap;cursor:text;flex:1;margin:0}.note textarea{flex:1;font-size:14px}.note .stamp{margin-top:2px}.notes.compact textarea{padding:8px 10px;font-size:13.5px}.pdf{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);flex-direction:column;display:flex;overflow:hidden}.pdf-bar{border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap;align-items:center;gap:12px;padding:7px 10px 7px 14px;font-size:13px;display:flex}.pdf-title{font:500 15px var(--serif);align-items:center;gap:10px;display:inline-flex}.pdf-title .back{font:13px var(--sans);color:var(--ink-3);align-items:center;display:inline-flex}.pdf-title .back:hover{color:var(--accent)}.pdf-tools{align-items:center;gap:2px;margin-left:auto;display:flex}.page-input{text-align:center;width:3.2em;font:12.5px var(--mono);border-radius:6px;padding:2px 4px}.pdf-scroll{overscroll-behavior:contain;flex-direction:column;align-items:center;gap:14px;padding:16px 12px 40px;display:flex;overflow:auto}.pdf.tall .pdf-scroll{height:calc(100vh - 290px);min-height:460px}.pdf.full .pdf-scroll{height:calc(100vh - 150px)}.pdf-page{background:var(--pdf-page);border-radius:3px;flex:none;overflow:hidden;box-shadow:0 2px 14px -4px #00000040}.pdf-msg{color:var(--ink-3);font:italic 16px var(--serif);margin:40px 0}:root[data-mode=dark] .pdf.night canvas{filter:invert(.88)hue-rotate(180deg)sepia(.22)brightness(.95)}:root[data-mode=dark] .pdf.night .pdf-page{background:var(--pdf-night-page)}:root[data-theme=chalk] .pdf.night canvas{filter:invert(.86)hue-rotate(180deg)sepia(.15)hue-rotate(60deg)brightness(.97)}.ps-strip{flex-wrap:wrap;gap:4px;display:flex}.ps-strip a{border:1px solid var(--line);width:32px;height:32px;font:500 12.5px var(--mono);color:var(--ink-3);background:var(--surface);border-radius:9px;place-items:center;display:grid}.ps-strip a:hover{border-color:var(--accent);color:var(--ink)}.ps-strip a.started{border-color:var(--ochre);color:var(--ink-2)}.ps-strip a.done{background:var(--sage-soft);color:var(--sage);border-color:#0000}.ps-strip a.on{outline:2px solid var(--accent);outline-offset:1px;color:var(--ink)}.score-top{justify-content:space-between;align-items:flex-end;margin-bottom:12px;display:flex}.score-num{margin:0;font-size:42px;line-height:1}.score-num .dim{font-size:22px}.score-meta{text-align:right;line-height:1.6}.score-bar{gap:3px;margin-bottom:16px;display:flex}.score-bar span{background:var(--line);border-radius:3px;height:8px}.score-bar span.working{background:color-mix(in srgb, var(--ink-3) 40%, var(--line))}.score-bar span.attempted{background:var(--ink-3)}.score-bar span.solved{background:var(--sage)}.score-bar span.partial{background:var(--ochre)}.score-bar span.stuck{background:var(--rose)}.problems{gap:8px;margin:0;padding:0;list-style:none;display:grid}.problem{border:1px solid var(--line);background:var(--surface);border-radius:12px}.problem.open{border-color:var(--line-2)}.problem-head{text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:12px 14px;display:flex}.problem-head b{font-weight:500}.problem-status{color:var(--ink-3);margin-left:auto}.problem.solved .problem-status{color:var(--sage)}.problem.partial .problem-status{color:var(--ochre)}.problem.stuck .problem-status{color:var(--rose)}.chev{color:var(--ink-3);transition:transform .2s}.problem.open .chev{transform:rotate(180deg)}.problem-body{gap:12px;padding:0 14px 14px;display:grid}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line-2);color:var(--ink-2);background:0 0;border-radius:999px;padding:5px 12px;font-size:13px}.chip:hover{border-color:var(--ink-3);color:var(--ink)}.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.chip.solved.on{background:var(--sage);border-color:var(--sage);color:var(--accent-ink)}.chip.partial.on{background:var(--ochre);border-color:var(--ochre);color:var(--accent-ink)}.chip.stuck.on{background:var(--rose);border-color:var(--rose);color:var(--accent-ink)}.side-foot{margin:4px 2px 0;line-height:1.5}.book{align-items:center;gap:16px;margin-bottom:30px;transition:border-color .15s;display:flex}.book:hover{border-color:var(--accent)}.book svg{color:var(--accent);flex:none}.book div{gap:2px;display:grid}.book b{font-size:20px;font-weight:500}.shelf-title{margin:0 0 12px}.shelf{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:0 0 34px;padding:0;list-style:none;display:grid}.spine{background:var(--surface);border:1px solid var(--line);border-radius:12px;grid-template-columns:auto auto 1fr auto;align-items:baseline;gap:10px;height:100%;padding:14px 16px;display:grid}.spine:hover{border-color:var(--accent)}.spine-n{color:var(--accent);font-size:26px;line-height:1}.spine-title{font-size:14px;line-height:1.3}.spine.done{background:var(--sage-soft);border-color:#0000}.spine.done .spine-n{color:var(--sage)}.two-col{grid-template-columns:1fr 1fr;gap:34px;display:grid}.list a{border-bottom:1px dashed var(--line);align-items:baseline;gap:10px;padding:8px 0;font-size:14.5px;display:flex}.list a:hover{color:var(--accent)}.list a>span:last-child{margin-left:auto}@media (hover:none){.keys-hint{display:none}}@media (max-width:1100px){.split{grid-template-columns:1fr}.split-side{max-height:none;position:static}.pdf.tall .pdf-scroll{height:72vh}}@media (max-width:860px){.app{padding:0 16px 48px}.topbar{flex-wrap:wrap;gap:12px}.topbar nav{scrollbar-width:none;order:3;width:100%;overflow-x:auto}.wordmark em{display:none}.desk-grid,.desk-grid.lower,.two-col{grid-template-columns:1fr}.card{padding:18px}.big-pct{font-size:60px}}@media (max-width:480px){.clock{display:none}.map-caption{font-size:14px}}.theme-pick{position:relative}.theme-menu{z-index:40;background:var(--surface);border:1px solid var(--line-2);border-radius:14px;width:250px;padding:6px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 48px -16px #00000073}.theme-menu button{text-align:left;width:100%;color:var(--ink-2);background:0 0;border:0;border-radius:9px;align-items:center;gap:12px;padding:8px 10px;font-size:14px;display:flex}.theme-menu button:hover{background:var(--surface-2);color:var(--ink)}.theme-menu button.on{color:var(--ink);background:var(--accent-soft)}.theme-menu small{color:var(--ink-3);font-size:12px;display:block}.swatch{border-radius:7px;flex:none;width:34px;height:24px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #8080804d}.swatch i{border-radius:50%;width:9px;height:9px;position:absolute;top:7.5px}.swatch i:first-child{left:6px}.swatch i:last-child{left:18px}.swatch.auto{background:linear-gradient(135deg,#f3ede1 50%,#15120e 50%)}
