@font-face{font-family:Syne Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(../media/syne-greek-wght-normal.1iuwq44elzeqp.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Syne Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(../media/syne-latin-ext-wght-normal.1k8j1b7chtq5a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Syne Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(../media/syne-latin-wght-normal.0q5yk5_7q8isg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-cyrillic-ext-wght-normal.1o60yhwqd7ueg.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-cyrillic-wght-normal.0n0q_nh7u2mrm.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-vietnamese-wght-normal.0nt7ek_nfk5a4.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-latin-ext-wght-normal.39q78sztp1ci5.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-latin-wght-normal.20f3xrkj613ah.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-mono-cyrillic-ext-wght-normal.2ij5maosbedmv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-mono-cyrillic-wght-normal.33c6-jfmyetfr.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-mono-symbols2-wght-normal.0peao-xekk45v.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-mono-vietnamese-wght-normal.3lyzf0uofk1_2.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-mono-latin-ext-wght-normal.18_jyrw-ln1dm.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-mono-latin-wght-normal.1t7tphccnfzmb.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(../media/KaTeX_AMS-Regular.25ieegmnh38ts.woff2)format("woff2"),url(../media/KaTeX_AMS-Regular.10y3kupq4t663.woff)format("woff"),url(../media/KaTeX_AMS-Regular.418dr7cz3fo2x.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(../media/KaTeX_Caligraphic-Bold.06b-ya9t43ioz.woff2)format("woff2"),url(../media/KaTeX_Caligraphic-Bold.2vmk2hva4ctha.woff)format("woff"),url(../media/KaTeX_Caligraphic-Bold.40ltxhe834pns.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(../media/KaTeX_Caligraphic-Regular.2eph4dlhid_m9.woff2)format("woff2"),url(../media/KaTeX_Caligraphic-Regular.3gxeetazf831f.woff)format("woff"),url(../media/KaTeX_Caligraphic-Regular.07-7u27-nhn_r.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(../media/KaTeX_Fraktur-Bold.2sasz-d-jtw8y.woff2)format("woff2"),url(../media/KaTeX_Fraktur-Bold.1alcy76__wdj2.woff)format("woff"),url(../media/KaTeX_Fraktur-Bold.19yqa_tc9d_gx.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(../media/KaTeX_Fraktur-Regular.2d10y4xmjvzlf.woff2)format("woff2"),url(../media/KaTeX_Fraktur-Regular.110oo81prr9n5.woff)format("woff"),url(../media/KaTeX_Fraktur-Regular.2qhy34r6a05dn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(../media/KaTeX_Main-Bold.3-rowy8o6_4ky.woff2)format("woff2"),url(../media/KaTeX_Main-Bold.0v1esh257kqpe.woff)format("woff"),url(../media/KaTeX_Main-Bold.0us_n0tnxlxu7.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(../media/KaTeX_Main-BoldItalic.14r2naom8mrec.woff2)format("woff2"),url(../media/KaTeX_Main-BoldItalic.13355ck5zr48q.woff)format("woff"),url(../media/KaTeX_Main-BoldItalic.3x_u9cepaced0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(../media/KaTeX_Main-Italic.0lig0v9j0700p.woff2)format("woff2"),url(../media/KaTeX_Main-Italic.0afv392dj4w59.woff)format("woff"),url(../media/KaTeX_Main-Italic.2hkw3230mfwcv.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(../media/KaTeX_Main-Regular.1ryvsdzh2w1_e.woff2)format("woff2"),url(../media/KaTeX_Main-Regular.15u8r3b2y7fv4.woff)format("woff"),url(../media/KaTeX_Main-Regular.0symfa7dqj6jd.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(../media/KaTeX_Math-BoldItalic.1oopuu636h4il.woff2)format("woff2"),url(../media/KaTeX_Math-BoldItalic.12pl58orkw9rg.woff)format("woff"),url(../media/KaTeX_Math-BoldItalic.0y5w36a5aq__2.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(../media/KaTeX_Math-Italic.32405s1aq8vas.woff2)format("woff2"),url(../media/KaTeX_Math-Italic.0w0b1ugh62cfr.woff)format("woff"),url(../media/KaTeX_Math-Italic.2vkekfblmz5nb.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(../media/KaTeX_SansSerif-Bold.0h3wi2z_eouyg.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Bold.1ovw5p-yjp56g.woff)format("woff"),url(../media/KaTeX_SansSerif-Bold.2d03q85pwxpti.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(../media/KaTeX_SansSerif-Italic.0wkjc4dm2kcit.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Italic.1qavw__2zz8gk.woff)format("woff"),url(../media/KaTeX_SansSerif-Italic.3i-q087b23-m8.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(../media/KaTeX_SansSerif-Regular.2peiewu59z3d-.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Regular.1i4afx8nk8n4r.woff)format("woff"),url(../media/KaTeX_SansSerif-Regular.31pbu25feko_c.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(../media/KaTeX_Script-Regular.11h14300o9pd0.woff2)format("woff2"),url(../media/KaTeX_Script-Regular.3110jb9c-bxna.woff)format("woff"),url(../media/KaTeX_Script-Regular.28p_x7iz71ofe.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size1-Regular.03lhvx36ekcou.woff2)format("woff2"),url(../media/KaTeX_Size1-Regular.1slf4bh0hc6vm.woff)format("woff"),url(../media/KaTeX_Size1-Regular.1y57-ck23ey8c.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size2-Regular.14s5gg-puz6h-.woff2)format("woff2"),url(../media/KaTeX_Size2-Regular.0-kwyvx03omo8.woff)format("woff"),url(../media/KaTeX_Size2-Regular.2u0s-b07k2o9m.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size3-Regular.1n1rgzz84z8r9.woff2)format("woff2"),url(../media/KaTeX_Size3-Regular.04o9a_02gu_e8.woff)format("woff"),url(../media/KaTeX_Size3-Regular.1pkn-dge4q0fv.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size4-Regular.2sgotkdv3dcyv.woff2)format("woff2"),url(../media/KaTeX_Size4-Regular.3p2r1l7xmebxv.woff)format("woff"),url(../media/KaTeX_Size4-Regular.2uelkfk2yna5e.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(../media/KaTeX_Typewriter-Regular.11gr2d2wuwz77.woff2)format("woff2"),url(../media/KaTeX_Typewriter-Regular.12f8myjij3617.woff)format("woff"),url(../media/KaTeX_Typewriter-Regular.3nee9kjfy6nm8.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.18.9"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{white-space:nowrap;width:min-content;position:relative}.katex .katex-base,.katex .katex-strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .katex-vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .katex-thinbox{flex-direction:row;width:0;max-width:0;display:inline-flex}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.katex-root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .katex-sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .katex-overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .katex-stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .katex-stretchy:after,.katex .katex-stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .katex-sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .reflectbox{display:inline-block;transform:scaleX(-1)}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}
:root{--paper:#f5f5f4;--paper-2:#efeeec;--paper-3:#e7e5e4;--surface:#fff;--ink:#1c1917;--ink-2:#292524;--text:#292524;--muted:#6b6560;--faint:#a8a29e;--line:#e2dfdc;--line-2:#d6d3d1;--bench:#151311;--bench-2:#1f1c19;--bench-3:#2a2622;--bench-line:#38332e;--bench-text:#ece8e3;--bench-muted:#a39b92;--bench-faint:#6f675f;--bench-grid:#ece8e312;--bench-grid-2:#ece8e329;--lime:#d4f56b;--lime-ink:#3f5a06;--lime-soft:#eefbc9;--v-blue:#6ea8ff;--v-coral:#ff7a6b;--v-lime:#d4f56b;--v-amber:#ffbf47;--v-violet:#b69cff;--v-teal:#4fd1c5;--v-pink:#ff8fc7;--v-white:#f4f1ec;--p-blue:#2556d9;--p-coral:#d9433a;--p-lime:#4d7c0f;--p-amber:#b45309;--p-violet:#6d3fdc;--p-teal:#0f766e;--p-pink:#c0266f;--good:#3f9d4a;--good-soft:#e5f4e3;--bad:#d9433a;--bad-soft:#fbe7e5;--warn:#b45309;--warn-soft:#fdf0dc;--focus:#2556d9;--radius-s:8px;--radius:14px;--radius-l:22px;--shadow-1:0 1px 2px #1c19170f, 0 1px 1px #1c191708;--shadow-2:0 18px 40px -22px #1c191759, 0 2px 6px -2px #1c191714;--shadow-3:0 40px 80px -40px #1c19178c;--font-display:"Syne Variable", "Syne", "Helvetica Neue", Arial, sans-serif;--font-body:"Geist Variable", "Geist", system-ui, -apple-system, sans-serif;--font-mono:"Geist Mono Variable", "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ease:cubic-bezier(.2, .7, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-1:.14s;--dur-2:.26s;--dur-3:.52s;--dur-4:.9s;--read-w:700px;--wide-w:980px;--page-w:1240px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}
*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}body{background:var(--paper);color:var(--text);font-family:var(--font-body);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.6}img,svg{max-width:100%}img{height:auto;display:block}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}::selection{background:var(--lime);color:var(--ink)}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);letter-spacing:-.02em;margin:0;line-height:1.08}p{margin:0}code,kbd,pre{font-family:var(--font-mono)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{z-index:100;background:var(--ink);color:var(--paper);border-radius:var(--radius-s);padding:10px 14px;position:absolute;top:-60px;left:16px}.skip:focus{top:12px}.muted{color:var(--muted)}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:12px}.btn{border:1px solid var(--ink);background:var(--ink);min-height:42px;color:var(--paper);transition:transform var(--dur-1) var(--ease), background var(--dur-1) var(--ease), box-shadow var(--dur-2) var(--ease);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:560;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){box-shadow:var(--shadow-2);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.45}.btn-ghost{color:var(--ink);border-color:var(--line-2);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--ink);box-shadow:none}.btn-quiet{color:var(--ink);text-underline-offset:4px;background:0 0;border-color:#0000;text-decoration:underline}.btn-quiet:hover:not(:disabled){box-shadow:none}.btn-hero{background:var(--ink);min-height:54px;padding:0 26px;font-size:17px}.btn-hero:hover:not(:disabled){background:#000}.btn-next{background:var(--lime);color:var(--ink);border-color:var(--lime)}.btn-danger{background:var(--bad);border-color:var(--bad);color:#fff}.link-btn{color:var(--ink);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2);background:0 0;border:0;align-items:center;gap:6px;padding:6px 0;font-size:14px;font-weight:540;display:inline-flex}.link-btn:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.link-arrow{align-items:center;gap:4px;font-size:14px;font-weight:560;text-decoration:none;display:inline-flex}.link-arrow:hover{text-decoration:underline}.chip{border:1px solid var(--line-2);background:var(--surface);min-height:34px;color:var(--ink);border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:14px;display:inline-flex}.chip:hover{border-color:var(--ink)}.chip.is-on{background:var(--ink);color:var(--paper);border-color:var(--ink)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:40;background:color-mix(in srgb, var(--paper) 86%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(14px);border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent);align-items:center;gap:28px;height:64px;padding:0 clamp(16px,4vw,40px);display:flex;position:sticky;top:0}.wordmark{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.wordmark-mark{border-radius:8px;width:28px;height:28px}.wordmark-text{font-family:var(--font-display);letter-spacing:-.03em;font-size:21px;font-weight:800}.wordmark-dot{color:var(--p-lime)}.nav{gap:4px;margin-left:auto;display:flex}.nav a{color:var(--ink-2);border-radius:999px;padding:8px 12px;font-size:15px;font-weight:520;text-decoration:none}.nav a:hover{background:var(--paper-3)}.nav a.is-active{background:var(--ink);color:var(--paper)}.topbar-end{align-items:center;gap:8px;display:flex}.menu-btn{background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;width:42px;height:42px;display:none}.storage-warning{background:var(--warn-soft);color:var(--warn);border-bottom:1px solid #f3d7ae;padding:10px clamp(16px,4vw,40px);font-size:14px}.storage-warning.inline{border-radius:var(--radius);border:1px solid #f3d7ae;margin-bottom:24px}.main{flex:1;width:100%}.footer{border-top:1px solid var(--line);margin-top:96px}.footer-inner{max-width:var(--page-w);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;margin:0 auto;padding:28px clamp(16px,4vw,40px) 40px;font-size:14px;display:flex}.footer-studio{font-family:var(--font-display);color:var(--ink);font-weight:700;text-decoration:none}.footer-studio:hover{text-decoration:underline}.py-status{font-size:12px;font-family:var(--font-mono);color:var(--muted);align-items:center;gap:8px;display:inline-flex}.py-dot{background:var(--faint);width:9px;height:9px;box-shadow:0 0 0 3px color-mix(in srgb, var(--faint) 25%, transparent);border-radius:50%}.py-loading .py-dot{background:var(--p-amber);animation:pulse 1s var(--ease) infinite}.py-ready .py-dot{background:#7fbf2a}.py-running .py-dot{background:var(--p-blue);animation:pulse .7s var(--ease) infinite}.py-error .py-dot{background:var(--bad)}@keyframes pulse{50%{opacity:.6;transform:scale(.7)}}@media (max-width:820px){.menu-btn{display:inline-flex}.nav{background:var(--paper);border-bottom:1px solid var(--line);box-shadow:var(--shadow-2);flex-direction:column;padding:12px 16px 20px;display:none;position:fixed;inset:64px 0 auto}.nav.is-open{display:flex}.nav a{padding:14px 12px;font-size:18px}.topbar-end{margin-left:auto}}
.home{max-width:var(--page-w);margin:0 auto;padding:0 clamp(16px,4vw,40px)}.hero{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;gap:40px;padding:clamp(40px,8vw,110px) 0 clamp(40px,6vw,80px);display:grid}.statement{letter-spacing:-.055em;margin:18px 0 28px;font-size:clamp(54px,9.4vw,148px);font-weight:800;line-height:.9}.statement-line{animation:rise var(--dur-4) var(--ease-out) both;display:block}.statement-line-2{color:var(--ink);animation-delay:.12s}.statement-line-2:after{content:"";background:var(--lime);vertical-align:.02em;border-radius:50%;width:.2em;height:.2em;margin-left:.04em;display:none}@keyframes rise{0%{opacity:0;transform:translateY(.35em)}to{opacity:1;transform:none}}.hero-lede{max-width:34em;color:var(--ink-2);animation:rise var(--dur-4) var(--ease-out) .24s both;font-size:clamp(18px,1.6vw,21px);line-height:1.55}.hero-actions{animation:rise var(--dur-4) var(--ease-out) .32s both;flex-wrap:wrap;align-items:center;gap:12px;margin-top:32px;display:flex}.hero-meta{font-size:13px;font-family:var(--font-mono);color:var(--muted);margin-top:22px}.hero-art{animation:rise 1.2s var(--ease-out) .2s both;position:relative}.hero-art .art img,.hero-art .art-empty{border-radius:var(--radius-l);box-shadow:var(--shadow-3);aspect-ratio:4/5;object-fit:cover;width:100%}.art-empty{background:radial-gradient(circle at 30% 30%, #d4f56b59, transparent 40%), radial-gradient(circle at 70% 70%, #6ea8ff4d, transparent 45%), var(--bench);border-radius:var(--radius-l);aspect-ratio:4/3}.how{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-l);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-bottom:96px;display:grid;overflow:hidden}.how-item{background:var(--surface);padding:26px 24px 28px}.how-item h2{margin:14px 0 8px;font-size:20px}.how-item p{color:var(--muted);font-size:15px}.section-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:20px;display:flex}.section-title{letter-spacing:-.035em;font-size:clamp(30px,4vw,48px);font-weight:800}.section-title.small{margin-bottom:14px;font-size:26px}.module-list{border-top:1px solid var(--ink);margin:0 0 96px;padding:0;list-style:none}.module-row{border-bottom:1px solid var(--line-2);transition:background var(--dur-2) var(--ease), padding var(--dur-2) var(--ease);grid-template-columns:120px minmax(0,1fr) auto 44px;align-items:center;gap:20px;padding:20px 4px;text-decoration:none;display:grid}.module-row:hover{background:var(--surface);padding-left:16px;padding-right:16px}.module-num{font-family:var(--font-display);letter-spacing:-.05em;color:#0000;-webkit-text-stroke:1.5px var(--ink);font-size:54px;font-weight:800;line-height:1}.module-row:hover .module-num{color:var(--lime);-webkit-text-stroke:1.5px var(--ink)}.module-num.small{font-size:34px}.module-main{flex-direction:column;gap:2px;min-width:0;display:flex}.module-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:clamp(20px,2.2vw,28px);font-weight:700}.module-kicker{color:var(--muted)}.module-time{font-family:var(--font-mono);color:var(--muted);font-size:13px}.parts{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.part{border:1px solid var(--line-2);border-radius:var(--radius-l);background:0 0;flex-direction:column;gap:8px;padding:22px 22px 20px;display:flex}.part.is-live{background:var(--bench);border-color:var(--bench);color:var(--bench-text)}.part.is-live h3{color:#fff}.part-num{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:12px}.part.is-live .part-num{color:var(--lime)}.part h3{font-size:22px}.part p{color:var(--muted);flex:1;font-size:15px}.part.is-live p{color:var(--bench-muted)}.part-status{font-size:13px;font-weight:600}.part.is-live .part-status{color:var(--lime)}.page{max-width:var(--page-w);margin:0 auto;padding:clamp(32px,6vw,72px) clamp(16px,4vw,40px) 0}.page-head{max-width:820px;margin-bottom:40px}.page-title{letter-spacing:-.045em;margin:12px 0 18px;font-size:clamp(40px,6.4vw,84px);font-weight:800;line-height:.95}.page-lede{color:var(--ink-2);max-width:40em;font-size:19px}.page-lede code{background:var(--paper-3);border-radius:5px;padding:1px 5px;font-size:.85em}.crumb{color:var(--muted);align-items:center;gap:6px;margin-bottom:18px;font-size:14px;font-weight:540;text-decoration:none;display:inline-flex}.crumb:hover{color:var(--ink)}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.course-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);grid-template-columns:160px minmax(0,1fr);gap:0;display:grid;overflow:hidden}.course-card-art .art,.course-card-art .art img,.course-card-art .art-empty{object-fit:cover;aspect-ratio:auto;border-radius:0;width:100%;height:100%}.course-card-body{padding:20px 22px 22px}.course-card-top{justify-content:space-between;align-items:center;display:flex}.course-card h2{margin:8px 0 6px;font-size:23px}.course-card h2 a{text-decoration:none}.course-card h2 a:hover{text-decoration:underline}.course-card p{color:var(--muted);font-size:14.5px}.mini-lessons{gap:6px;margin:14px 0 0;padding:0;font-size:14.5px;list-style:none;display:grid}.mini-lessons li{grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.mini-lessons a{text-decoration:none}.mini-lessons a:hover{text-decoration:underline}.mini-lessons .muted{font-size:12.5px;font-family:var(--font-mono)}.module-hero{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:end;gap:40px;margin-bottom:48px;display:grid}.module-hero-copy{position:relative}.module-bignum{font-family:var(--font-display);letter-spacing:-.07em;color:#0000;-webkit-text-stroke:2px var(--ink);margin-bottom:18px;font-size:clamp(110px,16vw,220px);font-weight:800;line-height:.8;display:block}.module-hero-art .art img,.module-hero-art .art-empty{border-radius:var(--radius-l);aspect-ratio:4/3;object-fit:cover;width:100%;box-shadow:var(--shadow-2)}.module-progress{flex-wrap:wrap;align-items:center;gap:20px;margin-top:26px;display:flex}.stats-line{flex-wrap:wrap;gap:22px;margin:0;display:flex}.stats-line div{flex-direction:column;display:flex}.stats-line dt{font-size:12px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.stats-line dd{font-family:var(--font-display);color:var(--ink);margin:0;font-size:20px;font-weight:700}.lesson-list{border-top:1px solid var(--ink);margin:0 0 64px;padding:0;list-style:none}.lesson-row{border-bottom:1px solid var(--line-2);transition:background var(--dur-2) var(--ease);grid-template-columns:56px minmax(0,1fr) auto 26px;align-items:center;gap:18px;padding:22px 6px;text-decoration:none;display:grid}.lesson-row:hover{background:var(--surface)}.lesson-idx{font-family:var(--font-display);color:var(--ink);justify-content:center;font-size:30px;font-weight:800;display:flex}.lesson-main{flex-direction:column;gap:4px;display:flex}.lesson-title{font-family:var(--font-display);color:var(--ink);letter-spacing:-.015em;font-size:22px;font-weight:700}.lesson-summary{color:var(--muted);font-size:15px}.lesson-row .muted{font-family:var(--font-mono);font-size:13px}.lesson-row.is-checkpoint{background:var(--bench);color:var(--bench-text);border-radius:0 0 var(--radius) var(--radius)}.lesson-row.is-checkpoint .lesson-title,.lesson-row.is-checkpoint .lesson-idx{color:var(--lime)}.lesson-row.is-checkpoint .lesson-summary{color:var(--bench-muted)}.lesson-dot{border:1.5px solid var(--line-2);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.lesson-dot.is-read{background:var(--ink);border-color:var(--ink);color:var(--lime)}.module-drills{margin-bottom:64px}.drill-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,440px),1fr));align-items:start;gap:16px;margin-top:18px;display:grid}.next-module{border-radius:var(--radius-l);background:var(--ink);color:var(--paper);flex-direction:column;gap:6px;padding:28px 30px;text-decoration:none;display:flex}.next-module .eyebrow{color:var(--lime)}.next-module-title{font-family:var(--font-display);letter-spacing:-.03em;align-items:center;gap:10px;font-size:clamp(26px,3.4vw,42px);font-weight:800;display:flex}.next-module:hover .next-module-title svg{transform:translate(6px)}.next-module-title svg{transition:transform var(--dur-2) var(--ease)}.ring-track{fill:none;stroke:var(--line-2);stroke-width:4px}.ring-fill{fill:none;stroke:var(--ink);stroke-width:4px;stroke-linecap:round;transition:stroke-dasharray var(--dur-3) var(--ease)}.ring-check{fill:none;stroke:var(--p-lime);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.part.is-live .ring-track,.lesson-row.is-checkpoint .ring-track{stroke:var(--bench-line)}.roadmap{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none}.roadmap-part{border-bottom:1px solid var(--line-2);grid-template-columns:140px minmax(0,1fr);gap:24px;padding:30px 0;display:grid}.roadmap-num{font-family:var(--font-display);letter-spacing:-.05em;color:#0000;-webkit-text-stroke:1.5px var(--ink);font-size:72px;font-weight:800;line-height:.9}.roadmap-part.is-live .roadmap-num{color:var(--lime)}.roadmap-part h2{margin-bottom:8px;font-size:30px}.roadmap-part p{color:var(--ink-2);max-width:44em}.topic-chips{flex-wrap:wrap;gap:8px;margin:14px 0;padding:0;list-style:none;display:flex}.topic-chips li{border:1px solid var(--line-2);background:var(--surface);border-radius:999px;padding:4px 12px;font-size:13px}.search{border:1px solid var(--line-2);background:var(--surface);border-radius:999px;align-items:center;gap:10px;max-width:460px;min-height:48px;padding:0 16px;display:flex}.search input{background:0 0;border:0;outline:0;flex:1;font-size:16px}.search:focus-within{border-color:var(--ink)}.glossary .muted{margin:12px 0 20px;font-size:14px}.glossary-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:14px;margin:0;display:grid}.glossary-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}.glossary-item dt{font-family:var(--font-display);color:var(--ink);font-size:19px;font-weight:700}.glossary-item dt .muted{font-family:var(--font-body);font-size:13px;font-weight:400}.glossary-item dd{margin:8px 0 0;font-size:15px}.glossary-link{margin-top:8px;font-size:13px;font-weight:560;display:inline-block}.practice-tabs{margin-bottom:20px}.filter-row{flex-wrap:wrap;gap:8px;display:flex}.review-list{gap:24px;max-width:820px;display:grid}.empty{border:1px dashed var(--line-2);border-radius:var(--radius-l);color:var(--muted);text-align:center;padding:40px}.dash-top{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);flex-wrap:wrap;align-items:center;gap:32px;margin-bottom:40px;padding:28px;display:flex}.dash-stats{grid-template-columns:repeat(3,minmax(120px,1fr));gap:18px 36px;margin:0;display:grid}.dash-stats dt{font-size:12px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.dash-stats dd{font-family:var(--font-display);color:var(--ink);margin:2px 0 0;font-size:30px;font-weight:800}.table-wrap{margin:18px 0;overflow-x:auto}.dash-table{border-collapse:collapse;background:var(--surface);border-radius:var(--radius);width:100%;font-size:15px;overflow:hidden}.dash-table th,.dash-table td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:12px 14px}.dash-table th{font-size:12px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:500}.dash-tools{margin-top:40px}.dash-message{margin-top:14px;font-size:15px}.backup-text,.paste-import{gap:10px;max-width:720px;margin-top:16px;display:grid}.backup-text textarea,.paste-import textarea{width:100%;font-family:var(--font-mono);border:1px solid var(--line-2);border-radius:var(--radius-s);background:var(--surface);padding:10px;font-size:12px}.paste-import summary{cursor:pointer;font-weight:540}.confirm-box{border-radius:var(--radius);border:1px solid var(--ink);background:var(--surface);max-width:720px;margin-top:18px;padding:18px 20px}.confirm-box p{margin-bottom:12px}.not-found{min-height:50vh}@media (max-width:1000px){.hero,.module-hero{grid-template-columns:1fr}.hero-art{max-width:520px}.how{grid-template-columns:repeat(2,minmax(0,1fr))}.parts,.course-grid{grid-template-columns:1fr}}@media (max-width:640px){.how{grid-template-columns:1fr}.module-row{grid-template-columns:64px minmax(0,1fr) 40px;gap:12px}.module-time{display:none}.module-num{font-size:36px}.course-card{grid-template-columns:1fr}.course-card-art{height:150px}.lesson-row{grid-template-columns:36px minmax(0,1fr) 24px;gap:12px}.lesson-row .muted{display:none}.roadmap-part{grid-template-columns:1fr;gap:6px}.roadmap-num{font-size:48px}.dash-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{flex-direction:column;align-items:flex-start}}
.reading-bar{background:var(--lime);transform-origin:0;z-index:41;pointer-events:none;height:3px;position:fixed;top:64px;left:0;right:0}.lesson{max-width:var(--page-w);margin:0 auto;padding:clamp(28px,5vw,60px) clamp(16px,4vw,40px) 0}.lesson-head{max-width:860px;margin:0 auto 48px;padding-left:0}.lesson-title-big{letter-spacing:-.05em;animation:rise var(--dur-4) var(--ease-out) both;margin:12px 0 18px;font-size:clamp(42px,6.6vw,88px);font-weight:800;line-height:.94}.lesson-lede{color:var(--ink-2);max-width:38em;font-size:clamp(18px,1.8vw,21px)}.lesson-meta{color:var(--muted);gap:18px;margin-top:16px;font-size:14px;display:flex}.lesson-meta span{align-items:center;gap:6px;display:inline-flex}.objectives{border-left:3px solid var(--lime);background:var(--surface);border-radius:0 var(--radius) var(--radius) 0;margin-top:26px;padding:18px 22px}.objectives-label,.remember-label,.outline-label,.solution-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--muted);align-items:center;gap:6px;margin-bottom:8px;font-size:12px;display:flex}.objectives ul,.remember ul{margin:0;padding-left:20px}.objectives li,.remember li{margin:4px 0}.objectives .md p,.remember .md p{margin:0}.lesson-layout{grid-template-columns:200px minmax(0, var(--read-w)) minmax(0, 1fr);justify-content:center;gap:40px;display:grid}.outline{align-self:start;max-height:calc(100vh - 120px);font-size:14px;position:sticky;top:96px;overflow:auto}.outline ol{border-left:1px solid var(--line-2);gap:2px;margin:0;padding:0;list-style:none;display:grid}.outline a{color:var(--muted);border-left:1px solid #0000;margin-left:-1px;padding:5px 0 5px 14px;line-height:1.35;text-decoration:none;display:block}.outline a:hover{color:var(--ink);border-left-color:var(--ink)}.lesson-main-col{grid-column:2;min-width:0}.lesson-layout:not(:has(.outline)) .lesson-main-col{grid-column:2}.prose{color:var(--text);font-size:18px;line-height:1.75}.prose>*+*{margin-top:1.1em}.prose h2{letter-spacing:-.035em;margin-top:2.2em;margin-bottom:.2em;font-size:clamp(28px,3.2vw,38px);font-weight:800;line-height:1.05;position:relative}.prose h3{margin-top:1.8em;font-size:23px;font-weight:700}.prose .anchor{color:var(--faint);opacity:0;font-weight:400;text-decoration:none;position:absolute;left:-.9em}.prose h2:hover .anchor{opacity:1}.prose strong{color:var(--ink);background:linear-gradient(transparent 62%, color-mix(in srgb, var(--lime) 70%, transparent) 62%);padding:0 1px;font-weight:650}.prose a{color:var(--ink);-webkit-text-decoration-color:var(--p-blue);text-decoration-color:var(--p-blue)}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.35em}.prose code{background:var(--paper-3);color:var(--ink);border-radius:5px;padding:1px 6px;font-size:.86em}.prose hr{border:0;border-top:1px solid var(--line-2);margin:2.4em 0}.prose table{border-collapse:collapse;width:100%;font-size:15.5px}.prose th,.prose td{border-bottom:1px solid var(--line-2);text-align:left;vertical-align:top;padding:8px 10px}.prose th{color:var(--ink);font-weight:650}.prose .katex-display{margin:1.2em 0;padding:14px 0;overflow:auto hidden}.prose .katex{font-size:1.07em}.prose blockquote{border-left:3px solid var(--line-2);color:var(--ink-2);margin:1.4em 0;padding-left:18px}.lesson-wide{margin:2em calc(-1 * min(140px, (100vw - var(--read-w)) / 2 - 24px))}.content-error{border-radius:var(--radius-s);background:var(--bad-soft);color:var(--bad);font-family:var(--font-mono);padding:12px 14px;font-size:13px}.callout{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);margin:1.6em 0;padding:18px 22px;font-size:17px;line-height:1.65}.callout-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 8px;font-size:12px;font-weight:500}.callout-body>*+*{margin-top:.8em}.callout-key{background:var(--ink);border-color:var(--ink);color:var(--paper)}.callout-key .callout-label{color:var(--lime)}.callout-key strong{color:#fff;border-bottom:2px solid var(--lime);background:0 0}.callout-key .katex{color:#fff}.callout-intuition{border-left:4px solid var(--p-blue)}.callout-intuition .callout-label{color:var(--p-blue)}.callout-trap{background:var(--bad-soft);border-color:#f3c9c4}.callout-trap .callout-label{color:var(--bad)}.callout-llm{background:linear-gradient(135deg,#fbfdf2,#f3f8e4);border-color:#dbe9b4}.callout-llm .callout-label{color:var(--p-lime)}.callout-history{background:0 0;border-style:dashed}.callout-paper{border-left:4px solid var(--p-amber)}.callout-paper .callout-label{color:var(--p-amber)}details.callout-slow{background:var(--paper-2);border-style:solid}details.callout-slow>summary.callout-label{cursor:pointer;color:var(--ink);align-items:center;gap:8px;margin:0;list-style:none;display:flex}details.callout-slow>summary.callout-label:before{content:"+";border:1px solid var(--ink);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:14px;display:inline-flex}details.callout-slow[open]>summary.callout-label:before{content:"−"}details.callout-slow[open]>summary.callout-label{margin-bottom:12px}details.callout-slow>summary::-webkit-details-marker{display:none}.remember{border-radius:var(--radius-l);background:var(--lime);color:var(--ink);margin-top:56px;padding:24px 26px}.remember-label{color:var(--lime-ink)}.remember li{font-size:17px}.mark-read{flex-wrap:wrap;gap:12px;margin:28px 0;display:flex}.pager{border-top:1px solid var(--line-2);grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;padding-top:24px;display:grid}.pager-link{font-family:var(--font-display);color:var(--ink);flex-direction:column;gap:2px;font-size:19px;font-weight:700;text-decoration:none;display:flex}.pager-link .muted{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:400}.pager-link.is-next{text-align:right}.pager-link:hover span:last-child{text-decoration:underline}@media (max-width:1180px){.lesson-layout{grid-template-columns:180px minmax(0,1fr)}.lesson-wide{margin-left:0;margin-right:0}}@media (max-width:900px){.lesson-layout{grid-template-columns:minmax(0,1fr)}.outline{display:none}.lesson-main-col{grid-column:1}.lesson-head{margin-bottom:32px}.prose{font-size:17px}}@media (max-width:640px){.pager{grid-template-columns:1fr}.pager-link.is-next{text-align:left}.callout{padding:16px}}
.exercise{border-radius:var(--radius-l);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);margin:2em 0;font-size:16.5px;line-height:1.65;overflow:hidden}.exercise.is-done{border-color:#c9e39a}.exercise-head{border-bottom:1px solid var(--line);background:var(--paper-2);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 20px;display:flex}.exercise-kind{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink);align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.exercise-paper .exercise-kind{color:var(--p-amber)}.exercise-code .exercise-kind{color:var(--p-blue)}.exercise-explain .exercise-kind{color:var(--p-violet)}.exercise-drill .exercise-kind{color:var(--p-teal)}.exercise-title{color:var(--ink);font-weight:620}.exercise-done{color:var(--lime-ink);background:var(--lime);border-radius:999px;align-items:center;gap:4px;margin-left:auto;padding:2px 10px;font-size:13px;font-weight:600;display:inline-flex}.exercise-body{padding:18px 20px 20px}.exercise-body>*+*{margin-top:14px}.md>*+*{margin-top:.7em}.md p{margin:0}.md ul,.md ol{margin:.4em 0;padding-left:1.3em}.md code{background:var(--paper-3);border-radius:4px;padding:1px 5px;font-size:.86em}.md pre{background:var(--bench);color:var(--bench-text);border-radius:var(--radius-s);padding:12px 14px;font-size:13.5px;overflow-x:auto}.md pre code{color:inherit;background:0 0;padding:0}.md .katex-display{margin:.6em 0;padding:4px 0;overflow:auto hidden}.exercise-note{color:var(--muted);align-items:center;gap:6px;font-size:14px;display:inline-flex}.exercise-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.exercise-privacy{color:var(--faint);font-size:12.5px}.choices{gap:8px;display:grid}.choice{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface);transition:border-color var(--dur-1) var(--ease)}.choice-btn{text-align:left;border-radius:var(--radius);background:0 0;border:0;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;display:flex}.choice:hover{border-color:var(--ink)}.choice.is-on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.choice.is-correct{border-color:var(--good);box-shadow:inset 0 0 0 1px var(--good);background:var(--good-soft)}.choice.is-wrong{border-color:var(--bad);box-shadow:inset 0 0 0 1px var(--bad);background:var(--bad-soft)}.choice-mark{border:1px solid var(--line-2);height:26px;font-family:var(--font-mono);background:var(--paper);border-radius:50%;flex:0 0 26px;justify-content:center;align-items:center;margin-top:1px;font-size:12px;display:inline-flex}.choice.is-on .choice-mark{background:var(--ink);color:var(--paper);border-color:var(--ink)}.choice-text{flex:1}.choice-why{color:var(--ink-2);padding:0 14px 12px 52px;font-size:15px}.choice-btn:disabled{cursor:default}.answer-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.answer-label{font-family:var(--font-mono);color:var(--ink);font-size:14px}.grid-input{align-items:stretch;gap:6px;display:inline-flex}.grid-bracket{border:2px solid var(--ink);border-right:0;border-radius:4px 0 0 4px;width:8px}.grid-bracket.is-right{border:2px solid var(--ink);border-left:0;border-radius:0 4px 4px 0}.grid-cells{gap:6px;padding:4px 0;display:grid}.grid-cell{border:1px solid var(--line-2);border-radius:var(--radius-s);width:76px;min-height:40px;font-family:var(--font-mono);text-align:center;background:var(--paper);padding:0 10px;font-size:15px}.grid-input.is-single .grid-cell{width:130px}.grid-cell:focus{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb, var(--p-blue) 22%, transparent);background:var(--surface);outline:none}.grid-cell.is-wrong{border-color:var(--bad);background:var(--bad-soft)}.grid-cell.is-bad{border-color:var(--warn)}.feedback{border-radius:999px;padding:6px 12px;font-size:15px;font-weight:560}.feedback.is-ok{background:var(--good-soft);color:#1e6b2a}.feedback.is-no{background:var(--bad-soft);color:var(--bad)}.hints{gap:8px;display:grid}.hint{border-radius:var(--radius-s);background:var(--warn-soft);align-items:flex-start;gap:10px;padding:10px 14px;font-size:15px;display:flex}.hint svg{color:var(--p-amber);flex:none;margin-top:4px}.solution{border-radius:var(--radius);background:var(--paper-2);border:1px solid var(--line);padding:16px 18px;font-size:16px}.solution-gate{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.solution-confirm{color:var(--muted);font-size:14px}.steps ol{counter-reset:step;gap:10px;margin:0;padding:0;list-style:none;display:grid}.step{counter-increment:step;border-radius:var(--radius);background:var(--paper-2);animation:rise var(--dur-3) var(--ease-out) both;padding:12px 14px 12px 50px;position:relative}.step:before{content:counter(step);background:var(--p-amber);color:#fff;width:24px;height:24px;font-family:var(--font-mono);border-radius:50%;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;top:12px;left:14px}.steps>*+*{margin-top:12px}.self-grade{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.self-grade-label{margin-right:4px;font-size:14px;font-weight:560}.explain-box{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--paper);resize:vertical;width:100%;padding:12px 14px;font-size:16px;line-height:1.6}.explain-box:focus{border-color:var(--ink);background:var(--surface);outline:none}.rubric ul{margin:0 0 14px;padding-left:1.2em}.rubric>*+*{margin-top:12px}.drill-meta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.drill-streak{gap:5px;display:inline-flex}.drill-pip{background:var(--paper-3);width:22px;height:6px;transition:background var(--dur-2) var(--ease);border-radius:999px}.drill-pip.is-on{background:var(--p-teal)}.drill-problem{border-radius:var(--radius);background:var(--paper-2);padding:14px 16px}.drill-grid .exercise{margin:0}.checkpoint-items{gap:18px;max-width:900px;margin:24px 0;padding:0;list-style:none;display:grid}.checkpoint-item{border-radius:var(--radius-l);background:var(--surface);border:1px solid var(--line);grid-template-columns:44px minmax(0,1fr);gap:14px;padding:20px;display:grid}.checkpoint-item.is-right{border-color:var(--good)}.checkpoint-item.is-wrong{border-color:var(--bad)}.checkpoint-num{font-family:var(--font-display);color:var(--ink);font-size:30px;font-weight:800;line-height:1}.checkpoint-body>*+*{margin-top:14px}.checkpoint-body .exercise{box-shadow:none;border:0;margin:0}.checkpoint-body .exercise-head{display:none}.checkpoint-body .exercise-body{padding:0}.checkpoint-submit{flex-wrap:wrap;align-items:center;gap:16px;margin:24px 0;display:flex}.checkpoint-result{border-radius:var(--radius-l);background:var(--bad-soft);align-items:center;gap:24px;max-width:900px;margin:12px 0 24px;padding:24px 26px;display:flex}.checkpoint-result.is-pass{background:var(--lime)}.checkpoint-result>div>*+*{margin-top:10px}.checkpoint-score{font-family:var(--font-display);color:var(--ink);font-size:32px;font-weight:800}@media (max-width:640px){.exercise-body{padding:16px}.grid-cell{width:64px}.checkpoint-item{grid-template-columns:1fr;padding:16px}.checkpoint-result{flex-direction:column;align-items:flex-start}}
.bench{background:var(--bench);color:var(--bench-text);border-radius:var(--radius-l);box-shadow:var(--shadow-3);isolation:isolate;margin:0;font-size:15px;line-height:1.5;overflow:hidden}.bench-loading{background:linear-gradient(90deg, transparent, #ece8e30a, transparent) 0 0 / 200% 100%, var(--bench);min-height:420px;animation:1.4s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.bench-missing{color:var(--bench-muted);padding:24px}.bench-placeholder{color:var(--bench-muted);text-align:center;padding:40px 20px}.bench-head{border-bottom:1px solid var(--bench-line);align-items:center;gap:12px;padding:12px 18px;display:flex}.bench-kicker{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--lime);font-size:11px}.bench-title{font-family:var(--font-display);color:#fff;letter-spacing:-.01em;font-size:16px;font-weight:700}.bench-reset{border:1px solid var(--bench-line);color:var(--bench-muted);background:0 0;border-radius:999px;align-items:center;gap:6px;margin-left:auto;padding:4px 12px;font-size:13px;display:inline-flex}.bench-reset:hover{color:#fff;border-color:var(--bench-muted)}.bench-body{gap:0;display:grid}.bench-split .bench-body{grid-template-columns:minmax(0,1.35fr) minmax(250px,1fr)}.bench-figure{justify-content:center;align-items:center;min-width:0;padding:16px;display:flex}.bench-figure>svg,.bench-figure>.viz-plane{width:100%;max-height:560px}.bench-side{border-left:1px solid var(--bench-line);flex-direction:column;gap:18px;min-width:0;padding:18px 18px 20px;display:flex}.bench-stack .bench-side{border-left:0;border-top:1px solid var(--bench-line)}.bench-readouts{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px;display:grid}.bench-controls{flex-direction:column;gap:14px;display:flex}.bench-formula{color:var(--bench-text);font-size:14px;overflow-x:auto}.bench-formula .katex-display{text-align:left;margin:4px 0}.bench-formula .katex-display>.katex{text-align:left}.bench-caption{border-top:1px solid var(--bench-line);color:var(--bench-muted);padding:12px 18px 16px;font-size:14px}.bench .katex{color:inherit}.readout{flex-direction:column;gap:2px;min-width:0;display:flex}.readout-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--bench-muted);font-size:11px}.readout-label .katex{text-transform:none;font-size:1.1em}.readout-value{font-family:var(--font-mono);color:#fff;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:26px;font-weight:500;line-height:1.15}.readout-hint{color:var(--bench-faint);font-size:12px}.viz-plane{touch-action:none;-webkit-user-select:none;user-select:none;display:block;overflow:visible}.viz-grid{stroke:var(--bench-grid);stroke-width:1px}.viz-axes line{stroke:var(--bench-grid-2);stroke-width:1.5px}.viz-tick{fill:var(--bench-faint);font-family:var(--font-mono);font-size:11px}.viz-label{font-family:var(--font-display);paint-order:stroke;stroke:var(--bench);stroke-width:4px;stroke-linejoin:round;font-size:17px;font-weight:700}.viz-handle{cursor:grab;outline:none}.viz-handle.is-dragging{cursor:grabbing}.viz-handle-halo{opacity:0;transition:opacity var(--dur-1) var(--ease)}.viz-handle:hover .viz-handle-halo,.viz-handle:focus-visible .viz-handle-halo,.viz-handle.is-dragging .viz-handle-halo{opacity:.28}.viz-handle-dot{stroke:var(--bench);stroke-width:2.5px}.viz-handle:focus-visible .viz-handle-dot{stroke:#fff}.slider{flex-direction:column;gap:6px;display:flex}.slider-top{justify-content:space-between;gap:8px;font-size:13px;display:flex}.slider-label{color:var(--bench-muted)}.slider-value{font-family:var(--font-mono);color:#fff;font-variant-numeric:tabular-nums}.slider input[type=range]{appearance:none;background:0 0;width:100%;height:28px;margin:0}.slider input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--slider-color) var(--fill), var(--bench-3) var(--fill));border-radius:999px;height:4px}.slider input[type=range]::-moz-range-track{background:linear-gradient(90deg, var(--slider-color) var(--fill), var(--bench-3) var(--fill));border-radius:999px;height:4px}.slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:3px solid var(--slider-color);background:#fff;border-radius:50%;width:18px;height:18px;margin-top:-7px;box-shadow:0 2px 6px #0006}.slider input[type=range]::-moz-range-thumb{border:3px solid var(--slider-color);background:#fff;border-radius:50%;width:14px;height:14px}.slider input[type=range]:focus-visible{outline:2px solid var(--v-blue);outline-offset:2px}.segmented{background:var(--paper-3);border-radius:999px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.segmented button{background:0 0;border:0;border-radius:999px;min-height:34px;padding:6px 14px;font-size:14px;font-weight:520}.segmented button.is-on{background:var(--ink);color:var(--paper)}.bench .segmented{background:var(--bench-2)}.bench .segmented button{color:var(--bench-muted);font-size:13px}.bench .segmented button.is-on{background:var(--bench-text);color:var(--bench)}.toggle{cursor:pointer;color:var(--bench-text);align-items:center;gap:10px;font-size:14px;display:inline-flex}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle-track{background:var(--bench-3);width:34px;height:20px;transition:background var(--dur-1) var(--ease);border-radius:999px;flex:none;position:relative}.toggle-thumb{background:var(--bench-muted);width:14px;height:14px;transition:transform var(--dur-2) var(--ease);border-radius:50%;position:absolute;top:3px;left:3px}.toggle input:checked+.toggle-track{background:var(--lime)}.toggle input:checked+.toggle-track .toggle-thumb{background:var(--bench);transform:translate(14px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--v-blue);outline-offset:2px}.bench-btn{border:1px solid var(--bench-line);background:var(--bench-2);min-height:36px;color:var(--bench-text);border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:520;display:inline-flex}.bench-btn:hover:not(:disabled){border-color:var(--bench-muted)}.bench-btn.is-primary{background:var(--lime);border-color:var(--lime);color:var(--bench)}.bench-btn:disabled{opacity:.4}.bench-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bench-note{color:var(--bench-muted);font-size:13px}.matrix-input{align-items:stretch;gap:4px;display:inline-flex}.matrix-bracket{border:2px solid var(--bench-muted);border-right:0;border-radius:3px 0 0 3px;width:7px}.matrix-bracket.is-right{border:2px solid var(--bench-muted);border-left:0;border-radius:0 3px 3px 0}.matrix-grid{gap:4px;padding:3px 0;display:grid}.matrix-cell{background:var(--bench-2);color:#fff;text-align:center;width:62px;height:36px;font-family:var(--font-mono);cursor:ew-resize;font-variant-numeric:tabular-nums;border:1px solid #0000;border-radius:6px;font-size:16px}.matrix-cell:focus{border-color:var(--v-blue);cursor:text;outline:none}.matrix-cell[readonly]{cursor:default}.chart{width:100%;display:block}.chart-grid{stroke:var(--bench-grid)}.chart-axis{stroke:var(--bench-grid-2)}.chart-marker{stroke:var(--v-amber);stroke-dasharray:3 4}.chart-tick{fill:var(--bench-faint);font-family:var(--font-mono);font-size:10.5px}.chart-label{fill:var(--bench-muted);font-family:var(--font-body);font-size:11.5px}.heatmap-wrap{width:100%;position:relative;overflow-x:auto}.heatmap{width:100%;display:block}.heatmap-value{font-family:var(--font-mono);pointer-events:none;font-size:9.5px}.heatmap-hover{font-family:var(--font-mono);color:var(--bench-muted);margin-top:4px;font-size:12px}.bar-rect{transition:height var(--dur-2) var(--ease), y var(--dur-2) var(--ease)}@media (max-width:820px){.bench-split .bench-body{grid-template-columns:1fr}.bench-side{border-left:0;border-top:1px solid var(--bench-line)}.bench-figure{padding:10px}}
.code-cell{background:var(--bench);border-radius:var(--radius);color:var(--bench-text);box-shadow:var(--shadow-2);overflow:hidden}.exercise .code-cell{margin-top:14px}.pyrun{box-shadow:var(--shadow-2)}.code-toolbar{border-bottom:1px solid var(--bench-line);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.code-spacer{flex:1}.code-kbd{font-family:var(--font-mono);color:var(--bench-faint);font-size:11.5px}.btn-run{background:var(--lime);border-color:var(--lime);min-height:34px;color:var(--bench);padding:0 14px;font-size:14px}.btn-run:hover:not(:disabled){box-shadow:0 0 0 4px #d4f56b33}.btn-ghost-dark{min-height:34px;color:var(--bench-muted);border-color:var(--bench-line);background:0 0;padding:0 12px;font-size:13px}.btn-ghost-dark:hover:not(:disabled){color:#fff;border-color:var(--bench-muted);box-shadow:none}.code-cell .py-status{color:var(--bench-faint)}.editor{font-size:14px}.editor .cm-editor{max-height:560px}.code-static{background:var(--bench);color:var(--bench-text);border-radius:var(--radius);margin:1.4em 0;padding:16px 18px;font-size:14px;line-height:1.6;overflow-x:auto}.solution .code-static{margin:10px 0}.code-plain{background:var(--paper-3);border-radius:var(--radius-s);padding:14px 16px;font-size:14px;overflow-x:auto}.tok-keyword{color:#ff8fc7}.tok-string,.tok-string2{color:#d4f56b}.tok-number,.tok-bool,.tok-atom{color:#ffbf47}.tok-comment{color:#8a8178;font-style:italic}.tok-operator{color:#b69cff}.tok-className,.tok-typeName{color:#4fd1c5}.tok-variableName.tok-definition{color:#f4f1ec}.tok-propertyName{color:#c9d6ff}.output{border-top:1px solid var(--bench-line);flex-direction:column;gap:12px;padding:12px 14px 14px;font-size:14px;display:flex}.output-panels{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:12px;display:grid}.panel{background:var(--bench-2);border-radius:var(--radius-s);min-width:0;padding:10px 12px}.panel-title{font-family:var(--font-mono);color:var(--bench-muted);margin-bottom:6px;font-size:11.5px}.panel-text{white-space:pre-wrap;color:var(--bench-text);max-height:260px;margin:0;font-size:13px;overflow:auto}.output-stdout{white-space:pre-wrap;color:var(--bench-text);max-height:340px;margin:0;font-size:13.5px;overflow:auto}.output-error{white-space:pre-wrap;color:#ffb3a9;border-left:3px solid var(--v-coral);background:#ff7a6b14;border-radius:0 6px 6px 0;margin:0;padding:10px 12px;font-size:13px}.output-error.is-todo{color:var(--v-amber);border-left-color:var(--v-amber);background:#ffbf4714}.output-meta{font-family:var(--font-mono);color:var(--bench-faint);text-align:right;font-size:11px}.matrix-table{border-collapse:collapse;font-family:var(--font-mono);font-size:13px}.matrix-table td{text-align:right;color:var(--bench-text);padding:4px 10px}.tests-summary{color:var(--v-coral);margin-bottom:6px;font-weight:600}.tests-summary.is-pass{color:var(--lime)}.tests ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.test{grid-template-columns:20px minmax(0,1fr);align-items:start;gap:6px;display:grid}.test-icon{border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;margin-top:1px;display:inline-flex}.test-pass .test-icon{background:var(--lime);color:var(--bench)}.test-fail .test-icon{background:var(--v-coral);color:var(--bench)}.test-error .test-icon{background:var(--v-amber);color:var(--bench)}.test-name{color:var(--bench-text)}.test-pass .test-name{color:var(--bench-muted)}.test-message{white-space:pre-wrap;color:#ffc9c1;grid-column:2;margin:2px 0 6px;font-size:12.5px}.scratchpad .recipes{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}

