@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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-italic-BELOEI8R.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-italic-CfSXsIbO.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-italic-D9J6q4_O.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-italic-Bf1n82Tb.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-italic-BEZwmy7D.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-400-italic-CTYLy0lX.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-italic-BbRnwouv.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-italic-78jqtfZH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-italic-Du9zzoL2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-italic-V_9i1P_m.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-italic-CZTNEAuW.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-italic-CsGl1sm0.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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:700;src:url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-BmRLXWpJ.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-DCQwxkRk.woff) format("woff");unicode-range:U+0460-052F,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:700;src:url(/assets/ibm-plex-sans-cyrillic-700-normal-D_uavGvn.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-700-normal-RFb1v-CK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-greek-700-normal-wyJ6jzdA.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-700-normal-CkZN0sRy.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-vietnamese-700-normal-CkEo6LDy.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-700-normal-BV5B8Are.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-ext-700-normal-aMgXseD4.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-700-normal-DZH6Xh-4.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-body: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;--font-display: "Bricolage Grotesque Variable", "IBM Plex Sans", -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--brand: #387fff;--brand-strong: #1f63e6;--brand-soft: #e8f0ff;--bg: #f6f8fc;--surface: #ffffff;--text: #121826;--muted: #5b6475;--border: #dde3ee;--danger: #c62828;--ok: #1b7a3d;--ok-soft: #e3f4e8;--warn: #8a5a00;--warn-soft: #fff3d6;--focus: #387fff;--on-brand: #ffffff;color-scheme:light}:root[data-theme=dark]{--brand: #5b95ff;--brand-strong: #7eabff;--brand-soft: #1a2a4a;--bg: #0e131c;--surface: #161d2a;--text: #e8ecf4;--muted: #9aa5b8;--border: #2a3446;--danger: #ff7a7a;--ok: #7fd89a;--ok-soft: #173524;--warn: #f2c66d;--warn-soft: #3a2f12;--focus: #7eabff;--on-brand: #0b1220;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.5}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;font-weight:650}.logo{width:28px;height:28px;border-radius:7px;background:var(--brand);color:var(--on-brand);display:inline-grid;place-items:center;font-weight:800}.nav{display:flex;gap:16px}.nav a{color:var(--muted);text-decoration:none;padding:4px 2px;border-bottom:2px solid transparent}.nav a[aria-current=page]{color:var(--text);border-bottom-color:var(--brand)}.controls{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.segmented button{border:0;background:transparent;color:var(--muted);padding:6px 10px;cursor:pointer;font:inherit;font-size:14px}.segmented button.on{background:var(--brand);color:var(--on-brand)}.lang{font:inherit;font-size:14px;padding:5px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.content{flex:1;padding:32px 16px;display:flex;justify-content:center;align-items:flex-start}.card{width:100%;max-width:760px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:28px}.card.narrow{max-width:440px}h1{font-family:var(--font-display);font-size:28px;line-height:1.15;margin:0 0 8px;letter-spacing:-.02em;font-weight:700}h2{font-size:19px;margin:24px 0 8px;line-height:1.3}.muted{color:var(--muted)}.small{font-size:13px}label{display:block;font-weight:600;margin:16px 0 6px}input[type=email],input[type=password],input:not([type]),input[type=text],input[type=search],input[type=number],input[type=date],textarea,select:not(.lang){width:100%;font:inherit;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}button{font:inherit;cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.primary{display:block;width:100%;margin-top:20px;padding:11px 16px;border:0;border-radius:8px;background:var(--brand);color:var(--on-brand);font-weight:650}.primary:hover:not(:disabled){background:var(--brand-strong)}.secondary{padding:9px 14px;border-radius:8px;border:1px solid var(--brand);background:transparent;color:var(--brand);font-weight:600}.ghost{padding:6px 12px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text)}.ghost.danger{color:var(--danger)}.link{display:block;margin:14px auto 0;background:none;border:0;color:var(--brand);text-decoration:underline}.error{color:var(--danger);margin:12px 0 0}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:12px}.row input{flex:1;min-width:160px}.codes{columns:2;padding-left:22px;margin:16px 0}.codes code{font-family:var(--font-mono);font-size:15px}.check{display:flex;gap:8px;align-items:center;font-weight:500;margin-top:18px}.list{list-style:none;padding:0;margin:0}.list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.card.wide{max-width:1040px}.head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.head h1{margin:0}.filters{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:10px;margin:16px 0 8px}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:15px}.table th{text-align:left;font-size:13px;color:var(--muted);font-weight:600;padding:8px;border-bottom:1px solid var(--border)}.table td{padding:10px 8px;border-bottom:1px solid var(--border);vertical-align:top}.table a,.list a{color:var(--brand);font-weight:600;text-decoration:none}.table a:hover,.list a:hover{text-decoration:underline}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:600}.badge.active{background:var(--ok-soft);color:var(--ok)}.badge.invited{background:var(--brand-soft);color:var(--brand-strong)}.badge.disabled{background:var(--warn-soft);color:var(--warn)}.pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px}.panel{border:1px solid var(--border);border-radius:12px;padding:18px;margin:16px 0;background:var(--bg)}.panel h2{margin-top:0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px}.checks{border:0;padding:0;margin:12px 0;display:flex;flex-wrap:wrap;gap:4px 18px}.checks legend{font-weight:600;margin-bottom:4px;padding:0}.checks .check{margin-top:4px}.notice{color:var(--ok);background:var(--ok-soft);padding:8px 12px;border-radius:8px}.top{margin-top:12px}.link.left{margin:0 0 12px;display:inline-block}.actions{margin:12px 0 4px}.row.grow{flex:1}.list.compact li{padding:6px 0}.dialog{position:fixed;top:0;right:0;bottom:0;left:0;background:#080c148c;display:grid;place-items:center;padding:16px;z-index:10}.dialog .card{box-shadow:0 12px 40px #00000040}@media(max-width:760px){.filters,.grid2,.grid3{grid-template-columns:1fr}}@media(max-width:560px){.card{padding:20px}.codes{columns:1}.controls{margin-left:0}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media(max-width:760px){.topbar{gap:10px 14px;padding:10px 12px}.topbar .nav{width:100%;order:3;overflow-x:auto;flex-wrap:nowrap;gap:14px;padding-bottom:2px;scrollbar-width:none}.nav a{white-space:nowrap}}.row.flush{margin-top:0}button.primary.inline{width:auto;margin-top:0}.search-narrow{max-width:280px}.m0{margin:0}.preview-main{max-width:1100px;margin:0 auto;padding:16px}.preview-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.preview-params{flex:1;min-width:200px}.preview-defaults{margin-left:8px}:root{--shadow-1: 0 1px 2px rgba(15, 27, 45, .05), 0 10px 30px -22px rgba(15, 27, 45, .3);--danger-soft: #fdecec;--measure: 68ch;--ease: cubic-bezier(.25, .8, .25, 1)}:root[data-theme=dark]{--shadow-1: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 30px -20px rgba(0, 0, 0, .6);--danger-soft: #3a1c1f}.learn{width:100%;max-width:1080px}.learn h2,.learn h3,.learn h4{font-family:var(--font-display);letter-spacing:-.01em}.crumb{display:inline-flex;align-items:center;gap:6px;color:var(--muted);text-decoration:none;font-weight:600;margin-bottom:14px;min-height:32px}.crumb:before{content:"";width:7px;height:7px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-right:2px}.crumb:hover{color:var(--brand)}.banner{padding:10px 14px;border-radius:10px;background:var(--brand-soft);border:1px solid color-mix(in srgb,var(--brand) 30%,transparent);margin:12px 0}.banner.warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 35%,transparent);color:var(--warn)}.cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 20px;min-height:46px;border-radius:10px;border:0;background:var(--brand);color:var(--on-brand);font-weight:700;font-size:15.5px}.cta:hover:not(:disabled){background:var(--brand-strong)}.dash-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;flex-wrap:wrap;margin-bottom:20px}.dash-head h1{font-size:36px;margin-bottom:6px;letter-spacing:-.02em}.dash-head p{margin:0;max-width:60ch}.dash-overall{min-width:250px;display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:10px;background:var(--surface);border:1px solid var(--border)}.dash-overall strong{font-family:var(--font-display);font-size:30px;line-height:1;letter-spacing:-.02em}.pbar{height:6px;border-radius:99px;background:color-mix(in srgb,var(--border) 80%,transparent);overflow:hidden}.pbar>div{height:100%;border-radius:99px;background:var(--brand);transition:width .5s var(--ease)}.cont{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 32px;align-items:center;margin:8px 0 32px;padding:24px 26px;border-radius:14px;background:var(--surface);border:1px solid var(--border);border-left:6px solid var(--brand)}.cont.quiet{display:block;color:var(--muted);border-left-color:var(--border)}.cont-kicker{margin:0 0 4px;font-size:14px;font-weight:600;color:var(--brand)}.cont h2{margin:0;font-size:26px;line-height:1.2}.cont-sum{margin:8px 0 0;color:var(--muted);max-width:60ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cont-meta{display:flex;gap:8px 14px;flex-wrap:wrap;align-items:center;font-size:14px;color:var(--muted);margin-top:10px}.cont-side{display:flex;flex-direction:column;align-items:center;gap:12px}.cont-side .cta{min-width:160px}.cal-head{margin:8px 0 6px}.cal-head h2{font-size:22px;margin:0}.cal-head p{margin:2px 0 0}.cat{margin-top:18px}.cat-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding-bottom:6px;border-bottom:1px solid var(--border)}.cat-head h3{font-size:17px;margin:0}.cat-head p{margin:0}.cal{list-style:none;margin:0;padding:0}.cal-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:0 16px;align-items:stretch}.cal-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:14px 0;color:var(--muted);border-right:2px solid var(--border);position:relative}.cal-day b{font-family:var(--font-display);font-size:24px;line-height:1;color:var(--text);letter-spacing:-.02em}.cal-day span{font-size:12px;text-transform:lowercase}.cal-day:after{content:"";position:absolute;right:-6px;top:50%;width:10px;height:10px;border-radius:50%;background:var(--border);transform:translateY(-50%);border:2px solid var(--bg)}.cal-day.soon b{color:var(--warn)}.cal-day.soon:after{background:var(--warn)}.cal-row.st-read .cal-day:after{background:var(--ok)}.cal-row.st-in_progress .cal-day:after{background:var(--brand)}.cal-day.past b{color:var(--muted)}.cal-day.none:after{display:none}.cal-mod{display:block;margin:8px 0;padding:14px 16px;border-radius:10px;color:var(--text);text-decoration:none;background:var(--surface);border:1px solid var(--border)}.cal-mod:hover{border-color:var(--brand)}.cal-mod:focus-visible{outline-offset:2px}.cal-mod-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cal-mod h4{margin:0;font-size:17px;line-height:1.3}.cal-sum{margin:4px 0 0;color:var(--muted);font-size:14.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cal-foot{display:grid;grid-template-columns:minmax(80px,160px) auto auto;gap:12px;align-items:center;margin-top:10px}.cal-foot .pbar{width:100%}.cal-row.st-upcoming .cal-mod{background:transparent;border-style:dashed}.cal-row.st-upcoming h4{color:var(--muted)}.cal-row.st-read .cal-mod{opacity:.85}.state{font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--bg);border:1px solid var(--border);color:var(--muted)}.state.st-in_progress{background:var(--brand-soft);color:var(--brand-strong);border-color:transparent}.state.st-read{background:var(--ok-soft);color:var(--ok);border-color:transparent}.state.st-draft{background:var(--warn-soft);color:var(--warn);border-color:transparent}.due{font-size:13px;color:var(--muted);white-space:nowrap}.due.soon{color:var(--warn);font-weight:700}.due.over{color:var(--danger);font-weight:700}.ring-bg{stroke:color-mix(in srgb,var(--border) 85%,transparent)}.ring-fg{stroke:var(--brand);transition:stroke-dashoffset .6s var(--ease)}.ring-fg.done{stroke:var(--ok)}.ring-txt{font-family:var(--font-display);font-size:12px;fill:var(--text);font-weight:700}.sync{display:flex;gap:10px;align-items:center;padding:9px 14px;border-radius:10px;background:var(--brand-soft);font-size:14px;margin:10px 0}.sync.off{background:var(--warn-soft);color:var(--warn)}.sync-dot{width:9px;height:9px;border-radius:50%;background:currentColor;animation:an-pulse 1.4s infinite}.mod-head{display:flex;gap:24px;align-items:flex-start;justify-content:space-between;padding:26px 28px;border-radius:14px;background:var(--surface);border:1px solid var(--border);flex-wrap:wrap}.mod-head-txt{flex:1;min-width:260px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}.mod-cat{margin:0;color:var(--brand);font-weight:600;font-size:14px}.mod-head h1{font-size:34px;margin:0;letter-spacing:-.02em}.lede{font-size:17px;color:var(--muted);margin:0;max-width:62ch}.mod-meta{display:flex;gap:8px 14px;flex-wrap:wrap;align-items:center}.mod-ring{display:flex;flex-direction:column;align-items:center;gap:6px}.mod-ring .ring-txt{font-size:20px}.toc-card{margin-top:18px;padding:22px 26px;border-radius:14px;background:var(--surface);border:1px solid var(--border)}.toc-head{display:flex;align-items:center;gap:16px}.toc-head h2{margin:0;flex:none}.toc-head .pbar{flex:1}.toc-list{list-style:none;padding:0;margin:14px 0;display:flex;flex-direction:column;gap:2px}.toc-list a{display:flex;gap:12px;align-items:center;padding:10px;border-radius:8px;color:var(--text);text-decoration:none;min-height:44px}.toc-list a:hover{background:var(--bg)}.toc-list li.resume a{background:var(--brand-soft)}.toc-n{flex:none;width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;font-size:12.5px;font-weight:700;background:var(--bg);border:1px solid var(--border);color:var(--muted)}.seen .toc-n,li.seen .toc-n{background:var(--ok);border-color:var(--ok);color:#fff}.toc-t{flex:1}.toc-check{font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px}.toc-check.ok{background:var(--ok-soft);color:var(--ok)}.toc-check.ko{background:var(--warn-soft);color:var(--warn)}.done{display:grid;grid-template-columns:64px minmax(0,1fr);gap:20px;align-items:start;margin:0 0 18px;padding:24px 26px;border-radius:14px;background:var(--ok-soft);border:1px solid color-mix(in srgb,var(--ok) 35%,transparent)}.done.partial{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 35%,transparent)}.done-mark{width:64px;height:64px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:26px}.done-mark svg{width:32px;height:32px}.done.partial .done-mark{background:var(--warn)}.done h2{margin:0 0 6px;font-size:24px}.done p{margin:4px 0}.done-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.reader{position:relative;width:100%;max-width:1180px;display:grid;grid-template-columns:272px minmax(0,1fr);gap:36px;align-items:start}.reader-module-bar{position:fixed;top:0;left:0;right:0;height:3px;background:transparent;z-index:60;pointer-events:none}.reader-module-bar span{display:block;height:100%;background:var(--brand);transition:width .6s var(--ease)}.reader-side{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto;padding:14px;border-radius:10px;background:var(--surface);border:1px solid var(--border)}.reader-close{display:none}.reader-toc-head{display:flex;flex-direction:column;gap:8px;padding:4px 4px 12px;border-bottom:1px solid var(--border)}.reader-toc-head a{color:var(--text);font-weight:700;text-decoration:none;font-family:var(--font-display);line-height:1.3}.reader-toc ol{list-style:none;margin:8px 0 0;padding:0}.reader-toc li a{display:flex;gap:10px;align-items:flex-start;padding:7px 6px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:14px;line-height:1.35;min-height:36px}.reader-toc li a:hover{background:var(--bg);color:var(--text)}.reader-toc li a[aria-current=step]{background:var(--brand-soft);color:var(--text);font-weight:600}.reader-toc .toc-n{width:24px;height:24px;font-size:11px}.reader-main{min-width:0;max-width:760px;outline:none}.reader-top{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;min-height:36px}.reader-toc-btn,.reader-gloss-btn{display:inline-flex;align-items:center;gap:6px;min-height:36px}.reader-toc-btn{display:none}.reader-crumb{display:inline-flex;gap:8px;align-items:center;font-size:14px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.reader-crumb-sep{color:var(--border)}.reader-seen{margin-left:auto;font-size:13px;color:var(--muted);display:inline-flex;gap:6px;align-items:center;padding:3px 10px;border-radius:999px;border:1px solid var(--border);transition:all .3s}.reader-seen.on{color:var(--ok);background:var(--ok-soft);border-color:transparent}.reader-steps{display:flex;gap:4px;margin:14px 0 22px;padding:0;list-style:none}.reader-steps{flex-wrap:wrap}.reader-steps li{flex:1 0 24px;display:flex}.reader-steps button{flex:1;min-width:24px;height:24px;padding:0;border:0;background:transparent;position:relative;cursor:pointer;border-radius:6px}.reader-steps button:before{content:"";position:absolute;left:0;right:0;top:9px;height:6px;border-radius:99px;background:var(--border);transition:background .3s}.reader-steps button.seen:before{background:color-mix(in srgb,var(--ok) 70%,var(--border))}.reader-steps button.cur:before{background:var(--brand)}.reader-steps button.anim:after{content:"";position:absolute;left:50%;top:2px;width:6px;height:6px;border:2px solid var(--brand);border-radius:50%;transform:translate(-50%);background:var(--bg)}.reader-steps button:hover:before{background:color-mix(in srgb,var(--brand) 45%,var(--border))}.reader-title{font-size:34px;line-height:1.15;margin:0 0 18px;letter-spacing:-.02em}.reader-body{font-size:17px;line-height:1.7;max-width:var(--measure);animation:step-in .25s var(--ease)}.reader-body p{margin:0 0 14px}.reader-body code{font-family:var(--font-mono);font-size:.9em;background:color-mix(in srgb,var(--brand) 9%,var(--bg));padding:1px 6px;border-radius:5px}.reader-body a{color:var(--brand);font-weight:600;text-decoration-thickness:1px;text-underline-offset:3px}.reader-body .term{color:inherit;font-weight:600;text-decoration:none;border-bottom:2px dotted var(--brand);cursor:help}.reader-body .term:hover{color:var(--brand)}.reader-end{height:1px}.reader-nav{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:28px}.reader-nav button{display:flex;flex-direction:column;gap:3px;text-align:left;padding:12px 16px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);min-height:60px}.reader-nav button:hover{border-color:var(--brand)}.reader-nav small{font-weight:600;color:var(--muted);font-size:13px}.reader-nav span{font-weight:600;overflow-wrap:anywhere}.reader-nav .nav-next{text-align:right;align-items:flex-end;grid-column:2;background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.reader-nav .nav-next small{color:inherit;opacity:.85}.reader-nav .nav-next.finish{background:var(--ok);border-color:var(--ok);color:#fff}.reader-keys{margin-top:12px}.reader-scrim{display:none}@keyframes step-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#080c1473}.drawer{position:fixed;top:0;right:0;bottom:0;z-index:71;width:min(92vw,420px);padding:18px 20px;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-1);overflow:auto;display:flex;flex-direction:column;gap:12px;animation:drawer-in .22s var(--ease)}@keyframes drawer-in{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.drawer-head h2{margin:0;font-size:22px}.gloss-drawer-list{margin:0;display:grid;gap:8px}.gloss-all{color:var(--brand);font-weight:600;text-decoration:none;margin-top:auto;padding-top:8px}.blk-q{font-weight:600;padding-left:14px;border-left:3px solid var(--brand)}.blk-note{font-size:15px;color:var(--muted);padding:10px 14px;border-radius:10px;background:var(--bg)}.blk-hint{font-size:14.5px;color:var(--muted);font-style:italic}.blk-h3{font-family:var(--font-display);font-size:22px;margin:22px 0 10px;letter-spacing:-.01em}.blk-list{margin:0 0 16px;padding-left:22px}.blk-list li{margin:4px 0}.blk-table{overflow-x:auto;margin:0 0 18px;border:1px solid var(--border);border-radius:10px}.blk-table table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.5}.blk-table th{text-align:left;background:var(--bg);font-size:13px;color:var(--muted);padding:9px 12px}.blk-table td{padding:9px 12px;border-top:1px solid var(--border);vertical-align:top}.blk-code{margin:0 0 18px;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:#0f1726}.blk-code figcaption{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 10px 6px 14px;background:#172238;color:#b6c2d9;font-family:var(--font-mono);font-size:12.5px}.blk-copy{border:1px solid #2c3b58;background:transparent;color:#d8e1f2;border-radius:7px;padding:3px 10px;font-size:12px;min-height:28px}.blk-code pre{margin:0;padding:14px;overflow-x:auto;color:#e6edf8;font-size:13.5px;line-height:1.6}.reader-body .blk-code code{background:transparent;padding:0;color:inherit}.blk-def{margin:0 0 18px;padding:14px 18px;border-radius:10px;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--brand)}.blk-def-title{font-family:var(--font-display);font-weight:700;font-size:17px;margin-bottom:6px}.blk-def>:last-child,.blk-devq>:last-child{margin-bottom:0}.blk-devq{margin:0 0 18px;padding:16px 18px;border-radius:10px;background:color-mix(in srgb,var(--p3, #8e5bd8) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--p3, #8e5bd8) 30%,transparent)}.blk-devq-kicker{font-size:13px;font-weight:700;color:var(--p3, #8e5bd8)}.blk-devq-q{font-weight:600;font-style:italic}.blk-more{margin:0 0 18px;border:1px solid var(--border);border-radius:10px;padding:0 16px;background:var(--surface)}.blk-more summary{cursor:pointer;padding:12px 0;font-weight:600;min-height:44px}.blk-analogy,.blk-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:0 0 18px}.blk-analogy div{padding:14px 16px;border-radius:10px;background:var(--brand-soft);display:flex;flex-direction:column;gap:4px}.blk-analogy b{font-family:var(--font-display)}.blk-cards div{border-top:3px solid var(--brand);padding:10px 2px 0}.blk-cards h4{margin:0 0 4px;font-size:16px;font-family:var(--font-display)}.blk-cards p{font-size:15px;color:var(--muted)}.blk-pending{padding:14px;border:1px dashed var(--border);border-radius:10px;color:var(--muted);margin:0 0 18px}.checkq{margin:30px 0 8px;padding:20px 22px;border-radius:14px;background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--brand)}.check-kicker{font-size:14px;font-weight:600;color:var(--brand)}.check-q{font-size:17px;font-weight:600;margin:8px 0 14px}.check-choices{display:flex;flex-direction:column;gap:8px}.check-choice{display:flex;gap:12px;align-items:flex-start;margin:0;padding:12px 14px;border-radius:10px;border:1.5px solid var(--border);font-weight:500;cursor:pointer;min-height:44px;transition:border-color .15s,background .15s}.check-choice:hover{border-color:var(--brand)}.check-choice.on{border-color:var(--brand);background:var(--brand-soft)}.check-choice.right{border-color:var(--ok);background:var(--ok-soft)}.check-choice.wrong{border-color:var(--danger);background:var(--danger-soft)}.check-choice input{margin-top:4px;accent-color:var(--brand)}.check-submit{margin-top:14px;padding:0 18px;border-radius:10px;border:0;background:var(--brand);color:var(--on-brand);font-weight:700;min-height:44px}.check-submit:hover:not(:disabled){background:var(--brand-strong)}.check-result{margin-top:14px;padding:12px 14px;border-radius:10px;animation:step-in .25s var(--ease)}.check-result.ok{background:var(--ok-soft)}.check-result.ko{background:var(--warn-soft)}.check-result.stored{background:var(--brand-soft)}.check-result p{margin:8px 0}.check-result .ghost{margin-top:6px}.check-order{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.check-order-item{display:flex;gap:8px;align-items:stretch}.check-order-pick{flex:1;display:flex;gap:12px;align-items:center;text-align:left;padding:10px 14px;border-radius:10px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);min-height:48px;font-weight:500;transition:border-color .15s,background .15s,transform .2s var(--ease)}.check-order-pick:hover:not(:disabled){border-color:var(--brand)}.check-order-item.picked .check-order-pick{border-color:var(--brand);background:var(--brand-soft);border-style:dashed}.check-order-item.right .check-order-pick{border-color:var(--ok);background:var(--ok-soft)}.check-order-item.wrong .check-order-pick{border-color:var(--danger);background:var(--danger-soft)}.check-order-n{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:1px solid var(--border);font-size:12.5px;font-weight:700;color:var(--muted)}.check-order-arrows{display:flex;flex-direction:column;gap:2px}.check-order-arrows .ghost{padding:0;width:34px;flex:1;min-height:22px;display:grid;place-items:center}.check-order-right{margin:8px 0 0;padding-left:22px}.check-figure{position:relative;border-radius:10px;border:1px solid var(--border);background:var(--bg);min-height:220px;overflow:hidden}.check-figure-anim .an-player{margin:0;border:0;border-radius:0;box-shadow:none}.check-figure-anim .an-stage{margin:0;border-radius:0}.check-zones{position:absolute;top:0;right:0;bottom:0;left:0}.check-figure:not(.has-anim) .check-zones{position:relative;min-height:220px}.check-zone{position:absolute;min-height:44px;min-width:44px;display:grid;place-items:center;padding:4px 8px;border-radius:10px;border:2px dashed color-mix(in srgb,var(--brand) 60%,transparent);background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--text);font-weight:600;font-size:14px;transition:border-color .15s,background .15s}.check-zone:hover:not(:disabled){border-color:var(--brand);background:var(--brand-soft)}.check-zone.on{border-style:solid;border-color:var(--brand);background:var(--brand-soft)}.check-zone.right{border-style:solid;border-color:var(--ok);background:var(--ok-soft)}.check-zone.wrong{border-style:solid;border-color:var(--danger);background:var(--danger-soft)}.check-text{width:100%;font:inherit;font-size:16px;line-height:1.6;padding:12px 14px;border-radius:10px;border:1.5px solid var(--border);background:var(--bg);color:var(--text);resize:vertical}.check-text-foot{display:flex;justify-content:flex-end;margin-top:4px}.check-text-foot .short{color:var(--warn)}.gloss-search{display:flex;gap:12px;align-items:center;margin-bottom:12px;position:sticky;top:0;z-index:2;padding:8px 0;background:var(--bg)}.gloss-search input{max-width:460px;font-size:16px}.gloss-letters{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.gloss-letters a{min-width:32px;height:32px;display:inline-grid;place-items:center;border-radius:8px;border:1px solid var(--border);color:var(--text);text-decoration:none;font-weight:600;font-size:14px}.gloss-group h2{font-size:22px;border-bottom:2px solid var(--brand);padding-bottom:4px}.gloss-group dl{margin:0;display:grid;gap:8px}.gloss-item{padding:12px 16px;border-radius:10px;background:var(--surface);border:1px solid var(--border)}.gloss-item dt{font-weight:700;font-family:var(--font-display);font-size:16.5px}.gloss-item dd{margin:4px 0 0}.gloss-item code{font-family:var(--font-mono);font-size:.9em}.gloss-where{display:block;margin-top:6px;font-size:13px;color:var(--brand);text-decoration:none;font-weight:600}.cms-cat{margin:0;font-size:17px}.badge.s-draft{background:var(--warn-soft);color:var(--warn)}.badge.s-published{background:var(--ok-soft);color:var(--ok)}.badge.s-archived{background:var(--bg);color:var(--muted);border:1px solid var(--border)}a.secondary{text-decoration:none;display:inline-block}textarea{font:inherit;resize:vertical}.cms-list{list-style:none;padding:0;margin:10px 0}.cms-list li{display:flex;gap:10px;align-items:center;padding:8px 6px;border-bottom:1px solid var(--border);flex-wrap:wrap;background:var(--surface);transition:background .15s}.cms-list li.dragging{opacity:.4}.cms-list li.over{box-shadow:inset 0 3px 0 var(--brand)}.cms-list a{color:var(--brand);font-weight:600;text-decoration:none;flex:1;min-width:200px}.cms-move{display:flex;gap:4px;margin-left:auto}.cms-move .ghost{min-width:36px;min-height:36px;padding:0 8px}.handle{cursor:grab;color:var(--muted);border:0;background:transparent;padding:6px;display:inline-grid;place-items:center;min-width:32px;min-height:36px;border-radius:6px;touch-action:none}.handle:active{cursor:grabbing}.handle:hover{background:var(--bg);color:var(--text)}.cms-editor{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:start}.cms-json{width:100%;min-height:520px;font-family:var(--font-mono);font-size:13px;line-height:1.5;padding:12px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.cms-preview{position:sticky;top:16px;border:1px solid var(--border);border-radius:10px;padding:14px 16px;max-height:calc(100vh - 32px);overflow:auto;background:var(--surface)}.cms-preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.cms-preview-head b{font-size:14px}.cms-preview .reader-steps{margin:8px 0 14px}.cms-blocks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.cms-block{border:1px solid var(--border);border-radius:10px;background:var(--surface);transition:box-shadow .15s}.cms-block.dragging{opacity:.4}.cms-block.over{box-shadow:0 -3px 0 0 var(--brand)}.cms-block.is-step{background:var(--brand-soft);border-style:dashed}.cms-block-head{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--border);flex-wrap:wrap}.cms-block.is-step .cms-block-head{border-bottom:0}.cms-block-head select{width:auto;flex:1;min-width:0;max-width:240px;padding:5px 8px;font-size:14px}.cms-block-head .spacer{flex:1}.cms-block-head .ghost{min-height:32px;padding:4px 7px;font-size:12.5px;white-space:nowrap}.cms-block-body{padding:10px 12px 12px;display:grid;gap:8px}.cms-block-body label{margin:4px 0 2px;font-size:13px}.cms-block-body textarea{min-height:64px}.cms-block-body .nested{border-left:3px solid var(--border);padding-left:10px}.cms-params{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px 12px}.cms-params label{display:flex;flex-direction:column;gap:2px;margin:0}.cms-anim-pick{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.cms-anim-sum{font-size:13px;color:var(--muted)}.cms-add{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}.cms-add select{width:auto}.cms-choice{border:1px solid var(--border);border-radius:10px;padding:8px 12px;margin:10px 0}.cms-zone-grid{display:grid;grid-template-columns:repeat(4,minmax(60px,1fr));gap:8px}.cms-zone-preview{position:relative;min-height:200px;border:1px dashed var(--border);border-radius:10px;background:var(--bg);margin:8px 0;overflow:hidden}.cms-zone-preview span{position:absolute;display:grid;place-items:center;border:2px dashed var(--brand);border-radius:8px;font-size:12px;font-weight:600;background:color-mix(in srgb,var(--surface) 70%,transparent)}.cms-zone-preview span.right{border-style:solid;border-color:var(--ok)}.cms-zone-figure{pointer-events:none}.cms-zone-figure .an-player{margin:0;border:0;border-radius:0;box-shadow:none}.gallery-item{margin:22px 0;padding-top:14px;border-top:1px solid var(--border)}.gallery-params{font-family:var(--font-mono);font-size:12px;background:var(--bg);padding:8px;border-radius:8px}.cms-tabs{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cms-mods{display:grid;gap:6px}.cms-mod{display:grid;grid-template-columns:auto 56px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.cms-mod.dragging{opacity:.4}.cms-mod.over{box-shadow:inset 0 3px 0 var(--brand)}.cms-mod .cal-day{padding:0;border:0}.cms-mod .cal-day:after{display:none}.cms-mod .cal-day b{font-size:20px}.cms-mod-t{display:flex;flex-direction:column;gap:2px;min-width:0}.cms-mod-t a{color:var(--text);font-weight:700;text-decoration:none}.cms-mod-t a:hover{color:var(--brand)}.cms-mod-t code{font-size:12px;color:var(--muted)}.nav{flex-wrap:wrap}@media(max-width:980px){.reader{grid-template-columns:minmax(0,1fr)}.reader-side{position:fixed;z-index:40;top:0;left:0;bottom:0;width:min(86vw,340px);max-height:none;border-radius:0 10px 10px 0;transform:translate(-105%);transition:transform .25s var(--ease);box-shadow:var(--shadow-1)}.reader-side.open{transform:none}.reader-close{display:block;margin-bottom:8px}.reader-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:39;background:#080c1473}.reader-toc-btn{display:inline-flex}.cms-editor{grid-template-columns:1fr}.cms-preview{position:static;max-height:none}.cms-mod{grid-template-columns:auto 48px minmax(0,1fr)}.cms-mod>:nth-child(n+4){grid-column:3}}@media(max-width:560px){.dash-head h1,.mod-head h1{font-size:28px}.reader-title{font-size:27px}.reader-body{font-size:16.5px}.mod-head,.toc-card{padding:18px}.cont{grid-template-columns:1fr;padding:18px;gap:14px}.cont-side{flex-direction:row;justify-content:space-between}.cal-row{grid-template-columns:52px minmax(0,1fr);gap:0 10px}.cal-day b{font-size:20px}.cal-foot{grid-template-columns:1fr auto}.cal-foot .pbar{grid-column:1 / -1}.reader-nav{grid-template-columns:1fr 1fr}.reader-nav button span{font-size:13px}.reader-keys{display:none}.reader-seen{margin-left:0}.content{padding:20px 12px}.done{grid-template-columns:1fr}.cms-zone-grid{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){.reader-body,.check-result,.drawer{animation:none}}:root{--p0: #387fff;--p1: #e8833a;--p2: #1aa179;--p3: #8e5bd8;--p4: #d6457a;--p5: #2f9fc4;--an-bg: #f3f6fc;--an-cell: #ffffff;--an-ink: #0f1b2d;--an-line: #d4dcea;--an-ease: cubic-bezier(.25, .8, .25, 1)}:root[data-theme=dark]{--p0: #6ea1ff;--p1: #f2a061;--p2: #4cc79f;--p3: #b08cf0;--p4: #ef7aa3;--p5: #5cc4e4;--an-bg: #111827;--an-cell: #1b2434;--an-ink: #e8ecf4;--an-line: #2d3a50}.an-player{margin:22px 0;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 1px 2px #0f1b2d0a,0 8px 28px -18px #0f1b2d59;overflow:hidden;outline-offset:3px}.an-player.an-unknown{padding:16px;color:var(--muted);display:flex;gap:12px;align-items:center}.an-unknown strong{display:block;color:var(--text);font-weight:600}.an-unknown-title{display:block;font-size:13px}.an-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 6px}.an-kicker{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--brand);font-weight:700}.an-title{font-family:var(--font-display);font-weight:700;font-size:17px;line-height:1.3}.an-icon{width:38px;height:38px;display:inline-grid;place-items:center;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);flex:none;transition:background .15s,border-color .15s}.an-icon:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.an-variants{display:flex;flex-wrap:wrap;gap:6px;padding:4px 16px 6px}.an-variants button,.an-speed button{border:1px solid var(--border);background:transparent;color:var(--muted);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600;min-height:32px}.an-variants button.on,.an-speed button.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.an-stage{margin:8px 12px 0;padding:16px;border-radius:12px;background:var(--an-bg);color:var(--an-ink);overflow-x:auto;min-height:140px}.an-caption{margin:10px 16px 0;padding:10px 14px;border-left:3px solid var(--brand);background:var(--brand-soft);border-radius:0 10px 10px 0;font-size:15px;line-height:1.5;min-height:46px}.an-bar{display:flex;align-items:center;gap:14px;padding:12px 16px;flex-wrap:wrap}.an-controls{display:flex;align-items:center;gap:6px}.an-play{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border-radius:10px;border:0;background:var(--brand);color:var(--on-brand);font-weight:700;min-width:108px;justify-content:center}.an-play:hover{background:var(--brand-strong)}.an-progress{flex:1;min-width:120px;display:flex;align-items:center;gap:10px}.an-track{flex:1;height:6px;border-radius:99px;background:var(--border);overflow:hidden}.an-fill{height:100%;background:var(--brand);border-radius:99px;transition:width .4s var(--an-ease)}.an-contents{display:contents}.an-count{font-family:var(--font-mono);font-size:12px;color:var(--muted);min-width:42px;text-align:right}.an-speed{display:flex;gap:4px}.an-speed button{padding:4px 9px;min-height:30px;font-size:12px}.an-free{border-top:1px dashed var(--border);padding:10px 16px 14px}.an-free-title{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.an-free-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0}.an-free-label{font-size:13px;font-weight:600;color:var(--muted);min-width:170px}.an-action{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:9px;padding:7px 12px;font-size:14px;min-height:38px}.an-action:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.an-keys{margin:0 16px 14px;font-size:12px;color:var(--muted)}.an-player.an-fs{margin:0;border-radius:0;display:flex;flex-direction:column;overflow:auto;background:var(--surface)}.an-player.an-fs .an-stage{flex:1;min-height:50vh;display:flex;flex-direction:column;justify-content:center}.an-player.an-fs-fallback{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50}.an-player:fullscreen{width:100vw;height:100vh}.an-cells{display:flex;gap:6px;flex-wrap:nowrap;padding:18px 2px}.an-cell{position:relative;flex:none;width:40px;height:40px;border-radius:9px;display:grid;place-items:center;font-family:var(--font-mono);font-size:14px;font-weight:500;background:var(--an-cell);border:1.5px solid var(--an-line);transition:background .35s var(--an-ease),border-color .35s var(--an-ease),transform .35s var(--an-ease),opacity .35s;animation:an-pop .38s var(--an-ease)}.an-cell.wide{width:auto;min-width:40px;padding:0 8px}.an-cell.t-empty{background:transparent;border-style:dashed;color:var(--muted);animation:none}.an-cell.t-new{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 25%,transparent)}.an-cell.t-read{background:color-mix(in srgb,var(--brand) 26%,var(--an-cell));border-color:var(--brand)}.an-cell.t-saved{background:color-mix(in srgb,var(--ok) 28%,var(--an-cell));border-color:var(--ok)}.an-cell.t-dup{background:color-mix(in srgb,var(--p1) 30%,var(--an-cell));border-color:var(--p1)}.an-cell.t-warn,.an-cell.t-bad{background:color-mix(in srgb,var(--danger) 22%,var(--an-cell));border-color:var(--danger)}.an-cell.t-idle{opacity:.55;background:var(--an-cell)}.an-pin{position:absolute;bottom:calc(100% + 3px);left:50%;transform:translate(-50%);white-space:nowrap;font-family:var(--font-body);font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:6px;color:#fff;transition:left .35s var(--an-ease)}.an-pin.low{bottom:auto;top:calc(100% + 3px)}.an-track-row{display:flex;align-items:center;gap:12px}.an-track-label{width:150px;flex:none;font-size:13px;font-weight:700;line-height:1.3}.an-track-label small{display:block;font-weight:500;color:var(--muted);font-size:11.5px}.an-box{border:1.5px solid var(--an-line);background:var(--an-cell);border-radius:12px;padding:10px 12px;transition:border-color .35s var(--an-ease),box-shadow .35s var(--an-ease),opacity .35s,transform .35s var(--an-ease)}.an-box.dashed{border-style:dashed}.an-box.active{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 22%,transparent)}.an-box-title{font-weight:700;font-size:14px}.an-box-sub{font-size:12.5px;color:var(--muted);margin-top:2px}.an-box.b-idle{opacity:.55}.an-box.b-bad{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--an-cell))}.an-box.b-ok{border-color:var(--ok)}.an-box.b-warn{border-color:var(--warn)}.an-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;color:#fff;animation:an-pop .35s var(--an-ease)}.an-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--muted);margin-top:8px}.an-legend i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-1px}.an-meter{position:relative;height:18px;border-radius:6px;background:color-mix(in srgb,var(--an-line) 60%,transparent);overflow:hidden}.an-meter-fill{height:100%;transition:width .45s var(--an-ease)}.an-meter span{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;padding:0 8px;font-size:11.5px;font-family:var(--font-mono)}.an-arrow{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;min-width:40px}.an-arrow-line{flex:1;height:2px;background:var(--an-line);position:relative;min-width:24px}.an-arrow-line:after{content:"";position:absolute;right:-2px;top:-4px;border:5px solid transparent;border-left-color:var(--an-line);border-right:0}.an-arrow.active .an-arrow-line{background:var(--brand)}.an-arrow.active .an-arrow-line:after{border-left-color:var(--brand)}.an-arrow.v{flex-direction:column;min-height:30px}.an-arrow.v .an-arrow-line{width:2px;height:auto;min-height:22px;flex:1}.an-arrow.v .an-arrow-line:after{right:-4px;top:auto;bottom:-2px;border:5px solid transparent;border-top-color:var(--an-line);border-bottom:0}.an-note{font-size:12.5px;color:var(--muted);margin-top:6px}.t-brand,.t-p0{background-color:var(--p0)}.t-p1{background-color:var(--p1)}.t-p2{background-color:var(--p2)}.t-p3{background-color:var(--p3)}.t-p4{background-color:var(--p4)}.t-p5{background-color:var(--p5)}.t-ok{background-color:var(--ok)}.t-bad,.t-warn{background-color:var(--danger)}.t-idle{background-color:var(--muted)}.t-ink{background-color:var(--an-ink);color:var(--an-cell)}.an-kafka-line{margin-top:10px;display:inline-block;font-family:var(--font-mono);font-size:12.5px;padding:6px 10px;border-radius:8px;background:var(--an-cell);border:1px solid var(--an-line)}.an-legend .t-read{background:color-mix(in srgb,var(--brand) 30%,var(--an-cell))}.an-legend .t-saved{background:color-mix(in srgb,var(--ok) 32%,var(--an-cell))}.an-legend .t-empty{background:transparent;border:1.5px dashed var(--an-line)}.an-legend .t-dup{background:color-mix(in srgb,var(--p1) 32%,var(--an-cell))}.c-brand,.c-p0{color:var(--p0)}.c-p1{color:var(--p1)}.c-p2{color:var(--p2)}.c-p3{color:var(--p3)}.c-p4{color:var(--p4)}.c-p5{color:var(--p5)}.c-ok{color:var(--ok)}.c-bad{color:var(--danger)}.c-muted{color:var(--muted)}@keyframes an-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}@keyframes an-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--brand) 40%,transparent)}50%{box-shadow:0 0 0 6px transparent}}.an-pulse{animation:an-pulse 1.2s ease-in-out infinite}@media(max-width:560px){.an-stage{margin:8px 8px 0;padding:12px}.an-bar{gap:10px}.an-progress{order:3;flex-basis:100%}.an-free-label{min-width:0;flex-basis:100%}.an-track-label{width:104px}}@media(prefers-reduced-motion:reduce){.an-cell,.an-chip{animation:none}}
