@font-face{font-family:Piazzolla;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/piazzolla-cyrillic-ext-500-normal-BA64PKA0.woff2)format("woff2"),url(/assets/piazzolla-cyrillic-ext-500-normal-BYAxUfxN.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:Piazzolla;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/piazzolla-cyrillic-500-normal-CzOwSs-8.woff2)format("woff2"),url(/assets/piazzolla-cyrillic-500-normal-Dk6RbQ1Y.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Piazzolla;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/piazzolla-greek-ext-500-normal-BOvbBP3x.woff2)format("woff2"),url(/assets/piazzolla-greek-ext-500-normal-BPjtGjuz.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Piazzolla;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/piazzolla-greek-500-normal-BuC2SONT.woff2)format("woff2"),url(/assets/piazzolla-greek-500-normal-mt5Zq-LC.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:Piazzolla;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/piazzolla-vietnamese-500-normal-CzyZI32b.woff2)format("woff2"),url(/assets/piazzolla-vietnamese-500-normal-PlCBqKLm.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:Piazzolla;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/piazzolla-latin-ext-500-normal-BmYFLrPD.woff2)format("woff2"),url(/assets/piazzolla-latin-ext-500-normal-7jVOPK0u.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:Piazzolla;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/piazzolla-latin-500-normal-CdptX-kz.woff2)format("woff2"),url(/assets/piazzolla-latin-500-normal-DHjv4Uiu.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:Piazzolla;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/piazzolla-cyrillic-ext-700-normal-BPazUVtl.woff2)format("woff2"),url(/assets/piazzolla-cyrillic-ext-700-normal-DQG-Oqk4.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:Piazzolla;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/piazzolla-cyrillic-700-normal-Drdk4PDw.woff2)format("woff2"),url(/assets/piazzolla-cyrillic-700-normal-BxUR6VbS.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Piazzolla;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/piazzolla-greek-ext-700-normal-Cy2_PPNL.woff2)format("woff2"),url(/assets/piazzolla-greek-ext-700-normal-BYPvJEdz.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Piazzolla;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/piazzolla-greek-700-normal-CvO26ibO.woff2)format("woff2"),url(/assets/piazzolla-greek-700-normal-BUymCXeU.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:Piazzolla;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/piazzolla-vietnamese-700-normal-BPoph5iW.woff2)format("woff2"),url(/assets/piazzolla-vietnamese-700-normal-B1FzJDiq.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:Piazzolla;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/piazzolla-latin-ext-700-normal-CZpO7sKr.woff2)format("woff2"),url(/assets/piazzolla-latin-ext-700-normal-CCFzhTnc.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:Piazzolla;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/piazzolla-latin-700-normal-D5MKiGkF.woff2)format("woff2"),url(/assets/piazzolla-latin-700-normal-BA1ootCx.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}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.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:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.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:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.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:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.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:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.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{--felt:#1f2c24;--felt-deep:#18231c;--paper:#f2eedf;--paper-raised:#fff;--line:#242a2224;--ink:#242a22;--ink-soft:#5a6156;--ink-on-felt:#f2eedf;--accent:#3e6b4a;--blunder:#b8402f;--mistake:#b07c22;--inaccuracy:#5b7a8c;--board-dark:#4e7a57;--board-light:#edead3;--font-display:"Piazzolla", serif;--font-body:"IBM Plex Sans", sans-serif;--font-mono:"IBM Plex Mono", monospace;--text-xs:12px;--text-sm:13.5px;--text-md:15px;--text-lg:21px;--text-xl:25px;--text-2xl:34px;--space:4px;--radius-sm:4px;--radius-md:7px;--radius-lg:10px;--shadow-card:0 2px 8px #242a2214;--shadow-sheet:0 18px 50px #00000061;--t-fast:.15s ease;--t-med:.2s ease;--paper-dim:#e7e2ce;--felt-glow:#26362c;--line-strong:#242a2238;--blunder-tint:#b8402f1f;--mistake-tint:#b07c2221;--inaccuracy-tint:#5b7a8c24;--accent-tint:#3e6b4a1a;--neutral-tint:#5a61561a;--blunder-border:#b8402f33;--mistake-border:#b07c2233;--inaccuracy-border:#5b7a8c33;--accent-border:#3e6b4a33;--neutral-border:#5a615633;--square-user:#b8402f61;--square-best:#3e78376b;--square-pick:#3e6b4a4d;--arrow-user:#b8402f;--arrow-best:#2f6b3c;--shadow-board:0 3px 14px #242a2238;--board-mat:#fbf9f0;--ink-on-accent:#f4f1e4;--ink-on-felt-soft:#f2eedf9e;--ink-on-felt-dim:#f2eedf66;--tabs-well:#00000038;--sync-ok:#7bb07a;--sheet-max:1180px;--text-2xs:10.5px;--text-tag:11.5px;--text-meta:12.5px;--t-spin:.8s;--t-pulse:1.2s;--t-delay:.12s;--hover-shade:#242a220b;--accent-hover:#35603f;--focus-ring:0 0 0 2px var(--paper), 0 0 0 4px var(--accent)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-delay:0s!important}}*,:before,:after{box-sizing:border-box}*{margin:0}html,body,#root{min-height:100vh}body{background:radial-gradient(1200px 500px at 50% -180px, var(--felt-glow) 0%, var(--felt) 55%, var(--felt-deep) 100%) var(--felt-deep);font-family:var(--font-body);font-size:var(--text-md);color:var(--ink);-webkit-font-smoothing:antialiased}button{color:inherit;font-family:inherit}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{min-height:100vh;padding:calc(var(--space) * 5) clamp(calc(var(--space) * 3), 3vw, calc(var(--space) * 9)) calc(var(--space) * 8);flex-direction:column;display:flex}.top{align-items:center;gap:calc(var(--space) * 5);width:100%;max-width:var(--sheet-max);margin:0 auto calc(var(--space) * 4);flex-wrap:wrap;display:flex}.brand{align-items:center;gap:calc(var(--space) * 3);color:var(--ink-on-felt);text-decoration:none;display:flex}.brand .knight{font-size:var(--text-2xl);text-shadow:0 2px #0006;line-height:1}.brand .name{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);letter-spacing:.01em;line-height:1.1}.brand .slogan{font-size:var(--text-xs);color:var(--ink-on-felt-soft)}.tabs{gap:var(--space);background:var(--tabs-well);padding:var(--space);border-radius:calc(var(--radius-md) + 1px);display:flex}.tab{color:var(--ink-on-felt-soft);font-weight:500;font-size:var(--text-sm);padding:calc(var(--space) * 2) calc(var(--space) * 4);border-radius:calc(var(--radius-md) - 1px);cursor:pointer;align-items:center;gap:calc(var(--space) * 2);background:0 0;border:0;text-decoration:none;display:flex}.tab:hover{color:var(--ink-on-felt)}.tab.on{background:var(--paper);color:var(--ink)}.tab .due{background:var(--blunder);color:var(--paper-raised);font-family:var(--font-mono);font-weight:600;font-size:var(--text-2xs);border-radius:calc(var(--radius-lg) - 1px);padding:calc(var(--space) / 2) calc(var(--space) * 2)}.sync{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-on-felt-soft);align-items:center;gap:calc(var(--space) * 2);margin-left:auto;display:flex}.syncDot{width:calc(var(--space) * 2);height:calc(var(--space) * 2);background:var(--sync-ok);border-radius:50%;flex:none}.syncDot.busy{background:var(--mistake)}.syncDot.err{background:var(--blunder)}.syncBtn{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-on-felt);border:1px solid var(--ink-on-felt-dim);border-radius:var(--radius-sm);padding:var(--space) calc(var(--space) * 2);cursor:pointer;transition:opacity var(--t-fast);background:0 0}.syncBtn:hover{border-color:var(--ink-on-felt-soft)}.syncBtn:disabled{opacity:.5;cursor:default}.gear{color:var(--ink-on-felt-soft);padding:var(--space);border-radius:var(--radius-sm);align-items:center;display:inline-flex}.gear:hover{color:var(--ink-on-felt)}@media (width<=900px){.sync .syncText{display:none}}.sheet{width:100%;max-width:var(--sheet-max);background:var(--paper);border-radius:var(--radius-lg);padding:clamp(calc(var(--space) * 4), 2.4vw, calc(var(--space) * 6));box-shadow:var(--shadow-sheet), inset 0 1px 0 #ffffff80;flex:1;margin:0 auto}@media (width<=900px){.top{gap:calc(var(--space) * 3)}}.screenH{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);line-height:1.2}.btn{font-family:var(--font-body);font-weight:500;font-size:var(--text-sm);color:var(--ink);background:var(--paper-raised);border:1px solid var(--line-strong);border-radius:var(--radius-md);padding:calc(var(--space) * 2) calc(var(--space) * 4);cursor:pointer;align-items:center;gap:calc(var(--space) * 2);transition:opacity var(--t-fast);display:inline-flex}.btn:hover{border-color:var(--accent)}.btn:active{background:var(--paper-dim)}.btn:disabled{opacity:.45;cursor:default;border-color:var(--line-strong)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent)}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.primary:active{background:var(--accent-hover)}.btn.quiet{color:var(--ink-soft);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;padding-left:var(--space);padding-right:var(--space);background:0 0;border-color:#0000}.btn.quiet:hover{color:var(--ink);-webkit-text-decoration-color:var(--ink-soft);text-decoration-color:var(--ink-soft)}.btn.srs{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500}.btn.srs.tone-again{color:var(--blunder)}.btn.srs.tone-hard{color:var(--mistake)}.btn.srs.tone-good{color:var(--accent)}.btn.srs.tone-easy{color:var(--inaccuracy)}.btn .spinner{width:calc(var(--space) * 3);height:calc(var(--space) * 3);animation:btnspin var(--t-spin) linear infinite;border:2px solid;border-right-color:#0000;border-radius:50%;flex:none}@keyframes btnspin{to{transform:rotate(360deg)}}.uiTag{font-family:var(--font-mono);font-size:var(--text-tag);padding:var(--space) calc(var(--space) * 2);border-radius:var(--radius-sm);letter-spacing:.02em;white-space:nowrap;align-items:center;gap:var(--space);font-weight:500;display:inline-flex}.uiTag.blunder{color:var(--blunder);background:var(--blunder-tint);border:1px solid var(--blunder-border)}.uiTag.mistake{color:var(--mistake);background:var(--mistake-tint);border:1px solid var(--mistake-border)}.uiTag.inaccuracy{color:var(--inaccuracy);background:var(--inaccuracy-tint);border:1px solid var(--inaccuracy-border)}.uiTag.accent{color:var(--accent);background:var(--accent-tint);border:1px solid var(--accent-border)}.uiTag.neutral{color:var(--ink-soft);background:var(--neutral-tint);border:1px solid var(--neutral-border)}.evalSwing{font-family:var(--font-mono);font-size:var(--text-sm)}.evalSwing .from{font-weight:500}.evalSwing .arr{color:var(--ink-soft)}.evalSwing .to{font-weight:600}.evalSwing.bad .to{color:var(--blunder)}.lineBox{font-family:var(--font-mono);font-weight:500;font-size:var(--text-sm);background:var(--paper-raised);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:calc(var(--radius-md) - 1px);padding:calc(var(--space) * 3) calc(var(--space) * 4);width:fit-content;max-width:100%;line-height:1.7}.lineBox .lineStep{cursor:pointer;border-radius:var(--radius-sm);padding:0 2px}.lineBox .lineStep:hover{background:var(--accent-tint)}.lineBox .lineStep.on{background:var(--accent-tint);font-weight:600}.skeleton{background:var(--paper-dim);border-radius:var(--radius-sm);animation:skpulse var(--t-pulse) ease-in-out infinite alternate}@keyframes skpulse{0%{opacity:.65}to{opacity:1}}.skeleton.line{height:calc(var(--space) * 3)}.toastWrap{left:50%;bottom:calc(var(--space) * 6);align-items:center;gap:calc(var(--space) * 2);z-index:60;pointer-events:none;flex-direction:column;display:flex;position:fixed;transform:translate(-50%)}.toast{background:var(--felt-deep);color:var(--ink-on-felt);font-size:var(--text-sm);border-radius:var(--radius-md);padding:calc(var(--space) * 2) calc(var(--space) * 4);box-shadow:var(--shadow-card);animation:toastup var(--t-med)}@keyframes toastup{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.emptyState{align-items:center;gap:calc(var(--space) * 3);padding:calc(var(--space) * 10) calc(var(--space) * 6);text-align:center;flex-direction:column;display:flex}.emptyState .emptyH{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg)}.emptyState .emptyText{color:var(--ink-soft);font-size:var(--text-sm);max-width:44ch;line-height:1.6}.chip{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:calc(var(--radius-lg) + var(--space));padding:var(--space) calc(var(--space) * 3);cursor:pointer;white-space:nowrap;background:0 0}.chip:hover{border-color:var(--accent);color:var(--ink)}.chip.on{background:var(--accent-tint);border-color:var(--accent);color:var(--accent);font-weight:500}.segmented{background:var(--paper-dim);border-radius:var(--radius-md);gap:2px;padding:2px;display:inline-flex}.segmented .seg{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);border-radius:calc(var(--radius-md) - 2px);padding:var(--space) calc(var(--space) * 3);cursor:pointer;background:0 0;border:0}.segmented .seg.on{background:var(--paper-raised);color:var(--ink);box-shadow:var(--shadow-card);font-weight:500}.dialogOverlay{z-index:50;animation:dlgfade var(--t-fast);background:#00000073;position:fixed;inset:0}.dialogContent{background:var(--paper-raised);border-radius:var(--radius-lg);padding:calc(var(--space) * 6);width:min(92vw,420px);box-shadow:var(--shadow-sheet);z-index:51;animation:dlgup var(--t-med);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes dlgfade{0%{opacity:0}to{opacity:1}}@keyframes dlgup{0%{opacity:0;transform:translate(-50%,calc(6px - 50%))}to{opacity:1;transform:translate(-50%,-50%)}}.dialogTitle{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);margin-bottom:calc(var(--space) * 2)}.dialogText{font-size:var(--text-sm);color:var(--ink-soft);margin-bottom:calc(var(--space) * 5);line-height:1.6}.dialogActions{justify-content:flex-end;gap:calc(var(--space) * 3);display:flex}.btn.danger{background:var(--blunder);border-color:var(--blunder);color:var(--ink-on-accent)}.btn.danger:hover{opacity:.92;border-color:var(--blunder)}.legend{gap:calc(var(--space) * 5);margin-top:calc(var(--space) * 3);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);display:flex}.legend .dot{width:calc(var(--space) * 2);height:calc(var(--space) * 2);margin-right:calc(var(--space) * 2);vertical-align:-1px;border-radius:2px;display:inline-block}.netBanner{align-items:center;gap:calc(var(--space) * 3);width:100%;max-width:var(--sheet-max);margin:0 auto calc(var(--space) * 3);background:linear-gradient(var(--mistake-tint), var(--mistake-tint)), var(--paper-raised);border:1px solid var(--mistake);color:var(--ink);border-radius:var(--radius-md);padding:calc(var(--space) * 2) calc(var(--space) * 4);font-size:var(--text-sm);display:flex}.netBanner .netMsg{flex:1;min-width:0}.reviewGrid{gap:clamp(calc(var(--space) * 4), 2vw, calc(var(--space) * 6));grid-template-columns:232px minmax(300px,430px) 1fr;align-items:start;display:grid}.listCol{min-width:0}.filters{gap:calc(var(--space) * 2);margin-bottom:calc(var(--space) * 4);display:grid}.filterRow{gap:calc(var(--space) * 2);flex-wrap:wrap;align-items:center;display:flex}.list{min-width:0}.listHead{font-family:var(--font-mono);font-weight:600;font-size:var(--text-tag);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin:calc(var(--space) / 2) 0 calc(var(--space) * 3)}.list .mistakeCard{margin-bottom:calc(var(--space) * 2)}.listMore{font-size:var(--text-xs);color:var(--ink-soft);padding:var(--space) calc(var(--space) * 3);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0}.listMore:hover{color:var(--ink)}.boardCol,.panel{min-width:0}.panel .meta,.trainPanel .meta{font-family:var(--font-mono);font-size:var(--text-meta);color:var(--ink-soft);margin-bottom:calc(var(--space) * 3)}.panel .tags{gap:calc(var(--space) * 2);margin-bottom:calc(var(--space) * 4);flex-wrap:wrap;display:flex}.moveH{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);margin:0 0 calc(var(--space) * 2);overflow-wrap:anywhere;line-height:1.2}.moveH .bad{color:var(--blunder)}.moveH .ok{color:var(--arrow-best)}.moveH .quiet{color:var(--ink-soft);font-weight:500}.swingRow{margin:0 0 calc(var(--space) * 3)}.body{font-size:var(--text-md);margin:0 0 calc(var(--space) * 4);overflow-wrap:anywhere;max-width:56ch;line-height:1.62}.explanationPending{max-width:56ch;margin-bottom:calc(var(--space) * 4)}.pendingNote{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);margin-top:calc(var(--space) * 2)}.explanationError{margin-bottom:calc(var(--space) * 4)}.explanationError .body{margin-bottom:calc(var(--space) * 2);color:var(--ink-soft)}.btnRow{gap:calc(var(--space) * 3);margin-top:calc(var(--space) * 5);flex-wrap:wrap;align-items:center;display:flex}@media (width<=900px){.reviewGrid{grid-template-columns:1fr}.list{gap:calc(var(--space) * 2);padding-bottom:calc(var(--space) * 2);scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;display:flex;overflow-x:auto}.list::-webkit-scrollbar{height:calc(var(--space) * 2)}.list::-webkit-scrollbar-track{background:0 0}.list::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--radius-lg)}.list::-webkit-scrollbar-thumb:hover{background:var(--ink-soft)}.list .mistakeCard{flex:none;width:auto;min-width:200px;margin-bottom:0}.list .listHead{display:none}.list .listMore{white-space:nowrap;align-self:center}.list .skeleton{min-width:200px}}.mistakeCard{text-align:left;border:1px solid var(--line);border-radius:var(--radius-md);width:100%;padding:calc(var(--space) * 3) calc(var(--space) * 3);cursor:pointer;color:var(--ink);background:0 0;border-left-width:2px;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.mistakeCard:hover{background:var(--hover-shade)}.mistakeCard.on{background:var(--paper-raised);box-shadow:var(--shadow-card)}.mistakeCard.on.sev-blunder{border-left-color:var(--blunder)}.mistakeCard.on.sev-mistake{border-left-color:var(--mistake)}.mistakeCard.on.sev-inaccuracy{border-left-color:var(--inaccuracy)}.mistakeCard .mcMove{font-family:var(--font-mono);font-weight:600;font-size:var(--text-sm)}.mistakeCard .mcMeta{color:var(--ink-soft);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.mistakeCard .mcTag{margin-top:var(--space)}.boardWrap{border-radius:calc(var(--radius-md) - 1px);width:100%;max-width:430px;box-shadow:var(--shadow-board), 0 0 0 5px var(--board-mat), 0 0 0 6px var(--line);position:relative}.promoOverlay{justify-content:center;align-items:center;gap:calc(var(--space) * 3);z-index:10;border-radius:calc(var(--radius-md) - 1px);animation:promofade var(--t-fast);background:#00000073;flex-direction:column;display:flex;position:absolute;inset:0}@keyframes promofade{0%{opacity:0}to{opacity:1}}.promoRow{gap:calc(var(--space) * 2);display:flex}.promoBtn{width:calc(var(--space) * 14);height:calc(var(--space) * 14);font-size:var(--text-2xl);background:var(--paper-raised);border:1px solid var(--line-strong);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--t-fast), transform var(--t-fast);justify-content:center;align-items:center;line-height:1;display:flex}.promoBtn:hover{border-color:var(--accent);transform:translateY(-2px)}.promoCancel{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-on-felt);border:1px solid var(--ink-on-felt-dim);border-radius:var(--radius-sm);padding:var(--space) calc(var(--space) * 3);cursor:pointer;background:0 0}.promoCancel:hover{border-color:var(--ink-on-felt-soft)}.lineControls{align-items:center;gap:calc(var(--space) * 2);margin-top:calc(var(--space) * 3);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);display:flex}.lineControls .lcBtn{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink);background:var(--paper-raised);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:var(--space) calc(var(--space) * 3);cursor:pointer}.lineControls .lcBtn:hover{border-color:var(--accent)}.lineControls .lcBtn:disabled{opacity:.4;cursor:default;border-color:var(--line-strong)}.tacticCard .mcTag{gap:var(--space);flex-wrap:wrap;display:flex}.tacticCard.on.out-realized{border-left-color:var(--accent)}.tacticCard.on.out-missed{border-left-color:var(--mistake)}.trainGrid{gap:clamp(calc(var(--space) * 4), 2.4vw, calc(var(--space) * 7));grid-template-columns:minmax(300px,430px) 1fr;align-items:start;display:grid}.trainHead{justify-content:space-between;align-items:center;gap:calc(var(--space) * 3);margin-bottom:calc(var(--space) * 3);display:flex}.trainCounter{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft)}.trainPanel{min-width:0}.trainTask{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);margin:0 0 calc(var(--space) * 3);line-height:1.25}.verdict{font-family:var(--font-mono);font-weight:600;font-size:var(--text-md);margin-bottom:calc(var(--space) * 3)}.verdict.ok{color:var(--accent)}.verdict.bad{color:var(--blunder)}.repeatNote{background:var(--mistake-tint);border:1px solid var(--mistake-border);border-radius:var(--radius-md);padding:calc(var(--space) * 2) calc(var(--space) * 3);font-size:var(--text-sm);margin-bottom:calc(var(--space) * 3);max-width:56ch;line-height:1.55}.answerReveal{animation:answerup var(--t-med) ease-out both}@keyframes answerup{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.rateRow{gap:calc(var(--space) * 3);margin-top:calc(var(--space) * 4);animation:answerup var(--t-med) ease-out both;animation-delay:var(--t-delay);flex-wrap:wrap;display:flex}.rateHint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);margin-top:calc(var(--space) * 4)}.cardFade{animation:cardfade var(--t-med) ease-out both}@keyframes cardfade{0%{opacity:0}to{opacity:1}}.queueDone{text-align:center;align-items:center;gap:calc(var(--space) * 3);padding:calc(var(--space) * 14) calc(var(--space) * 6);flex-direction:column;display:flex}.queueDone .doneH{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl)}.queueDone .doneStat{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-soft)}.queueDone .doneStat b{font-family:var(--font-display);font-weight:700;font-size:var(--text-2xl);color:var(--ink);margin-bottom:var(--space);display:block}@media (width<=900px){.trainGrid{grid-template-columns:1fr}}.themePicker{max-width:720px}.themePickerH{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);margin:0 0 var(--space)}.themePickerHint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);margin:0 0 calc(var(--space) * 5)}.themeGrid{gap:calc(var(--space) * 3);grid-template-columns:repeat(auto-fill,minmax(210px,1fr));display:grid}.themeCard{gap:calc(var(--space) * 2);padding:calc(var(--space) * 3) calc(var(--space) * 4);text-align:left;background:var(--paper-raised);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--t-fast), background var(--t-fast);flex-direction:column;display:flex}.themeCard:hover:not(:disabled){border-color:var(--line-strong)}.themeCard:disabled{opacity:.5;cursor:default}.themeCard.weakest{border-left-color:var(--accent);background:var(--accent-tint)}.themeCardTop{justify-content:space-between;align-items:baseline;gap:calc(var(--space) * 2);display:flex}.themeName{font-family:var(--font-display);font-weight:700;font-size:var(--text-md)}.themeCounts{gap:var(--space);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink);display:flex}.themeCounts .dot{color:var(--ink-soft)}.themeAcc{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft)}.winBar{gap:var(--space);display:grid}.winBarHead{justify-content:space-between;align-items:baseline;gap:calc(var(--space) * 2);display:flex}.winBarTitle{font-size:var(--text-xs);color:var(--ink-soft)}.winBarNums{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink);align-items:baseline;gap:var(--space);display:inline-flex}.winDelta{font-size:var(--text-xs);font-weight:600}.winDelta.good{color:var(--accent)}.winDelta.bad{color:var(--blunder)}.winTrack{height:calc(var(--space) * 2.5);background:var(--paper-dim);border:1px solid var(--line);border-radius:var(--radius-sm);position:relative;overflow:hidden}.winFill{background:var(--accent-tint);border-right:2px solid var(--accent);transition:width var(--t-fast);position:absolute;inset:0 auto 0 0}.winTick{background:var(--ink-soft);width:2px;position:absolute;top:-1px;bottom:-1px;transform:translate(-1px)}.factorList{gap:var(--space);flex-wrap:wrap;align-items:center;display:flex}.factorsEmpty{font-size:var(--text-sm);color:var(--ink-soft);margin:0}.factorTag{font-family:var(--font-mono);font-size:var(--text-tag);padding:var(--space) calc(var(--space) * 2);border-radius:var(--radius-sm);align-items:center;gap:var(--space);white-space:nowrap;border:1px solid #0000;font-weight:500;display:inline-flex}.factorTag.good{color:var(--accent);background:var(--accent-tint);border-color:var(--accent-border)}.factorTag.neutral{color:var(--ink-soft);background:var(--neutral-tint);border-color:var(--neutral-border)}.factorTag.weak{color:var(--mistake);background:var(--mistake-tint);border-color:var(--mistake-border)}.factorTag.weak.changed{color:var(--blunder);background:var(--blunder-tint);border-color:var(--blunder-border)}.fSide{width:calc(var(--space) * 1.25);height:calc(var(--space) * 1.25);border:1px solid var(--line-strong);border-radius:50%}.fSide[data-side=white]{background:var(--board-light)}.fSide[data-side=black]{background:var(--board-dark)}.fMark{font-weight:700}.fSquares{opacity:.75;font-size:var(--text-2xs)}.factorMore{font-family:var(--font-body);font-size:var(--text-xs);color:var(--accent);cursor:pointer;padding:var(--space);background:0 0;border:0}.factorMore:hover{text-decoration:underline}.visionGrid{gap:calc(var(--space) * 4);grid-template-columns:minmax(0,1fr) minmax(0,24rem);align-items:start;display:grid}@media (width<=900px){.visionGrid{grid-template-columns:1fr}}.visionGrid .boardCol{gap:calc(var(--space) * 2);min-width:0;max-width:min(560px,92vw);display:grid}.visionControls{gap:var(--space);align-items:center;display:flex}.fenField{min-width:0;font-family:var(--font-mono);font-size:var(--text-xs);padding:var(--space) calc(var(--space) * 1.5);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);flex:1}.fenField[aria-invalid=true]{border-color:var(--blunder-border)}.fenError{color:var(--blunder);font-size:var(--text-xs);margin:0}.visionPanel{gap:calc(var(--space) * 3);background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-md);padding:calc(var(--space) * 3);box-shadow:var(--shadow-card);align-content:start;display:grid}.visionHint{color:var(--ink-soft);font-size:var(--text-sm);margin:0;line-height:1.5}.visionBest{font-size:var(--text-sm);color:var(--ink-soft)}.visionBest .ok{font-family:var(--font-mono);color:var(--accent);font-weight:600}.visionPanel .body{font-size:var(--text-md);color:var(--ink);margin:0;line-height:1.55}.visionPanel .explanationPending{gap:calc(var(--space) * 2);display:grid}.visionPanel .pendingNote{font-size:var(--text-xs);color:var(--ink-soft);font-style:italic}.visionPanel .explanationError{gap:calc(var(--space) * 2);justify-items:start;display:grid}.progressScreen{gap:calc(var(--space) * 5);display:grid}.progressHead{justify-content:space-between;align-items:center;gap:calc(var(--space) * 4);flex-wrap:wrap;display:flex}.progressLoading{padding:calc(var(--space) * 4) 0}.statRow{gap:calc(var(--space) * 3);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));display:grid}.stat{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-lg);padding:calc(var(--space) * 4) calc(var(--space) * 5);text-align:left;display:block}button.stat{cursor:pointer;color:var(--ink);font-family:inherit}button.stat.clickable:hover{border-color:var(--accent);box-shadow:var(--shadow-card)}.statBig{font-family:var(--font-display);font-weight:700;font-size:var(--text-2xl);color:var(--ink);line-height:1.05}.stat.tone-warn .statBig{color:var(--mistake)}.stat.tone-alarm .statBig{color:var(--blunder)}.statLabel{font-size:var(--text-sm);color:var(--ink);margin-top:var(--space);font-weight:600}.statSub{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);margin-top:calc(var(--space) / 2)}.chartsRow{gap:calc(var(--space) * 4);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.chartCard,.openingsCard{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-lg);padding:calc(var(--space) * 4)}.chartH{font-family:var(--font-body);font-weight:600;font-size:var(--text-sm);color:var(--ink);margin-bottom:calc(var(--space) * 2)}.chartCard .recharts-cartesian-axis-tick text{fill:var(--ink-soft);font-family:var(--font-mono);font-size:var(--text-xs)}.conclusion{text-align:left;border-radius:var(--radius-sm);width:100%;padding:calc(var(--space) * 2) var(--space);margin-top:var(--space);font-family:inherit;font-size:var(--text-meta);color:var(--ink-soft);cursor:pointer;background:0 0;border:0;line-height:1.5;display:block}.conclusion:hover{color:var(--ink);background:var(--hover-shade)}.conclusion:after{content:" →";color:var(--accent)}.openings{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.openings th{text-align:left;border-bottom:1px solid var(--line-strong);padding:0}.openings th.num{text-align:right}.sortBtn{align-items:center;gap:var(--space);cursor:pointer;width:100%;font-family:var(--font-mono);font-size:var(--text-tag);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);padding:calc(var(--space) * 2) calc(var(--space) * 2);background:0 0;border:0;font-weight:600;display:inline-flex}.openings th.num .sortBtn{justify-content:flex-end}.sortBtn:hover{color:var(--ink)}.openings th.sorted .sortBtn{color:var(--accent)}.sortArrow{font-size:var(--text-xs);min-width:calc(var(--space) * 2)}.openings tbody tr{cursor:pointer}.openings tbody tr:hover{background:var(--hover-shade)}.openings td{padding:calc(var(--space) * 2) calc(var(--space) * 2);border-bottom:1px solid var(--line);color:var(--ink)}.openings td.num{text-align:right}.openings td.mono{font-family:var(--font-mono)}.openings td.openName{text-overflow:ellipsis;white-space:nowrap;max-width:26ch;overflow:hidden}.themeAccList{gap:var(--space);margin:0;padding:0;list-style:none;display:grid}.themeAccRow{align-items:center;gap:calc(var(--space) * 3);border-radius:var(--radius-sm);width:100%;padding:calc(var(--space) * 2);text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,12rem) 1fr auto;font-family:inherit;display:grid}.themeAccRow:hover{background:var(--hover-shade)}.themeAccRow.weakest{box-shadow:inset 3px 0 0 var(--accent);background:var(--accent-tint)}.themeAccName{align-items:baseline;gap:calc(var(--space) * 2);min-width:0;font-weight:600;display:flex}.weakBadge{font-family:var(--font-mono);font-size:var(--text-tag);text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}.themeAccBar{height:calc(var(--space) * 2);background:var(--line);border-radius:var(--radius-sm);display:block;overflow:hidden}.themeAccFill{background:var(--accent);height:100%;display:block}.themeAccVal{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);text-align:right;min-width:5ch}@media (width<=900px){.progressHead{justify-content:flex-start}.openings td.openName{max-width:18ch}.themeAccRow{grid-template-columns:minmax(0,8rem) 1fr auto}}.tableScroll{overflow-x:auto}.gameLoading{padding:calc(var(--space) * 4) 0}.gamesScreen{gap:calc(var(--space) * 4);display:grid}.gamesTable{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.gamesTable th{text-align:left;font-family:var(--font-mono);font-size:var(--text-tag);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);padding:calc(var(--space) * 2);border-bottom:1px solid var(--line-strong);font-weight:600}.gamesTable th.num{text-align:right}.gamesTable tbody tr{cursor:pointer}.gamesTable tbody tr:hover{background:var(--hover-shade)}.gamesTable td{padding:calc(var(--space) * 2) calc(var(--space) * 2);border-bottom:1px solid var(--line);color:var(--ink);white-space:nowrap}.gamesTable td.num{text-align:right}.gamesTable td.mono{font-family:var(--font-mono)}.gtOpp{text-overflow:ellipsis;max-width:32ch;overflow:hidden}.gtColor{color:var(--ink-soft)}.res{font-weight:600}.res-win{color:var(--accent)}.res-loss,.res-draw{color:var(--ink-soft);font-weight:500}.gamesMore{font-size:var(--text-xs);color:var(--ink-soft);padding:var(--space) calc(var(--space) * 3);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;justify-self:start}.gamesMore:hover{color:var(--ink)}.gamesMore:disabled{opacity:.5;cursor:default}.gameViewer{gap:calc(var(--space) * 4);display:grid}.gvHead{gap:calc(var(--space) * 2);display:grid}.gvHead .screenH{overflow-wrap:anywhere}.gvMeta{font-family:var(--font-mono);font-size:var(--text-meta);color:var(--ink-soft)}.gameGrid{gap:clamp(calc(var(--space) * 4), 2.4vw, calc(var(--space) * 7));grid-template-columns:minmax(300px,430px) 1fr;align-items:start;display:grid}.gvBoardCol{gap:calc(var(--space) * 3);min-width:0;display:grid}.gvSideCol{min-width:0}.gvNav{align-items:center;gap:calc(var(--space) * 2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);display:flex}.gvNavPos{margin-left:var(--space)}.gvActions{gap:calc(var(--space) * 3);display:flex}.gvActions .btn{text-decoration:none}.gvPanelWrap{gap:calc(var(--space) * 2);display:grid}.gvBack{justify-self:start}.moveList{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper-raised);max-height:430px;margin:0;padding:0;list-style:none;overflow-y:auto}.mlRow{grid-template-columns:calc(var(--space) * 8) 1fr 1fr;border-bottom:1px solid var(--line);align-items:center;display:grid}.mlRow:last-child{border-bottom:0}.mlNum{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);text-align:right;padding-right:calc(var(--space) * 2)}.mlMove{font-family:var(--font-mono);font-size:var(--text-sm);text-align:left;padding:var(--space) calc(var(--space) * 2);cursor:pointer;color:var(--ink);background:0 0;border:0}.mlMove:hover{background:var(--hover-shade)}.mlMove.on{background:var(--accent-tint);color:var(--accent);font-weight:600}.mlMove.empty{cursor:default}.mlMove.empty:hover{background:0 0}.evalChart .recharts-cartesian-axis-tick text{fill:var(--ink-soft);font-family:var(--font-mono);font-size:var(--text-xs)}.evalDot{cursor:pointer}@media (width<=900px){.gameGrid{grid-template-columns:1fr}.moveList{max-height:240px}.gtOpp{max-width:20ch}}@media (width<=560px){.gamesTable td,.gamesTable th{white-space:normal}.colPerf,.gtColor{display:none}.gtOpp{max-width:16ch}}.settingsScreen{gap:calc(var(--space) * 5);max-width:640px;display:grid}.settingsSection{gap:calc(var(--space) * 3);background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-lg);padding:calc(var(--space) * 4);display:grid}.sectionH{font-family:var(--font-body);font-weight:600;font-size:var(--text-md);color:var(--ink)}.sectionNote{font-size:var(--text-sm);color:var(--ink-soft);margin-top:calc(var(--space) * -1);line-height:1.55}.emptyNote{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-soft)}.profileRow{align-items:baseline;gap:calc(var(--space) * 3);flex-wrap:wrap;display:flex}.profileNick{font-family:var(--font-mono);font-weight:600;font-size:var(--text-md)}.profileStatus{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft)}.fieldRow{align-items:center;gap:calc(var(--space) * 3);display:flex}.numberInput{font-family:var(--font-mono);font-size:var(--text-md);color:var(--ink);background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--radius-md);padding:calc(var(--space) * 2) calc(var(--space) * 3);width:calc(var(--space) * 20)}.numberInput:hover{border-color:var(--accent)}.numberInput:disabled{opacity:.5}.fpList{gap:calc(var(--space) * 2);margin:0;padding:0;list-style:none;display:grid}.fpItem{justify-content:space-between;align-items:center;gap:calc(var(--space) * 3);border:1px solid var(--line);border-radius:var(--radius-md);padding:calc(var(--space) * 3) calc(var(--space) * 3);display:flex}.fpInfo{gap:2px;min-width:0;display:grid}.fpMove{font-family:var(--font-mono);font-weight:600;font-size:var(--text-sm)}.fpMeta{font-size:var(--text-xs);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dangerRow{justify-content:space-between;align-items:center;gap:calc(var(--space) * 3);display:flex}.dangerText{gap:2px;min-width:0;display:grid}.dangerTitle{font-weight:600;font-size:var(--text-sm)}@media (width<=560px){.dangerRow,.fpItem{flex-direction:column;align-items:stretch}.dangerRow .btn,.fpItem .btn{justify-self:start}}.loginFelt{min-height:100vh;padding:calc(var(--space) * 6);justify-content:center;align-items:center;display:flex}.loginCard{background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-sheet), inset 0 1px 0 #ffffff80;padding:calc(var(--space) * 10) calc(var(--space) * 10) calc(var(--space) * 9);text-align:center;align-items:center;gap:calc(var(--space) * 3);flex-direction:column;width:min(92vw,420px);display:flex}.loginKnight{font-size:calc(var(--text-2xl) * 2);color:var(--felt);line-height:1}.loginName{font-family:var(--font-display);font-weight:700;font-size:var(--text-2xl);line-height:1.1}.loginText{color:var(--ink-soft);font-size:var(--text-sm);margin-bottom:calc(var(--space) * 3);line-height:1.6}.loginError{color:var(--blunder);font-size:var(--text-sm);line-height:1.5}.kit{gap:calc(var(--space) * 6);display:grid}.kitNote{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft)}.kitSection{gap:calc(var(--space) * 3);display:grid}.kitH{font-family:var(--font-mono);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);border-bottom:1px solid var(--line);padding-bottom:calc(var(--space) * 2)}.kitRow{gap:calc(var(--space) * 3);flex-wrap:wrap;align-items:center;display:flex}.kitCards{align-items:stretch}.kitCards .mistakeCard{width:220px}.kitPending{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);margin-top:calc(var(--space) * 2)}.kitTwoCol{gap:calc(var(--space) * 3);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.kitBox{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-lg)}.kitPromoStage{aspect-ratio:2.2;background:var(--board-dark);border-radius:var(--radius-md);width:min(100%,430px);position:relative}
