@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:#8f877e;--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}}.footer-links{gap:16px;display:flex}.footer-links a{color:var(--ink);text-decoration:none}.footer-links a:hover{text-decoration:underline}
.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}.hero-copy{min-width:0;container-type:inline-size}.statement{letter-spacing:-.055em;margin:18px 0 28px;font-size:clamp(44px,15cqi,150px);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}}.gallery-stage{max-width:1080px;margin-top:24px}.test-out{color:var(--ink-2);border-left:3px solid var(--lime);background:var(--surface);border-radius:0 var(--radius-s) var(--radius-s) 0;max-width:34em;margin-top:18px;padding:10px 14px;font-size:15px}.test-out a{font-weight:600}
.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(--muted);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}}.md table{border-collapse:collapse;max-width:100%;margin:.4em 0;font-size:15px;display:block;overflow-x:auto}.md th,.md td{border-bottom:1px solid var(--line-2);text-align:left;white-space:nowrap;padding:6px 10px}.md th{color:var(--ink);font-weight:650}
.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);flex-wrap:wrap;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}.viz-plane-fit{justify-content:center;width:100%;display:flex}.viz-plane-fit>.viz-plane{max-width:100%}.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:pan-y pinch-zoom;-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-body);paint-order:stroke;stroke:var(--bench);stroke-width:4px;stroke-linejoin:round;font-size:17px;font-style:italic;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:11px}.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:420px){.bench-kicker{display:none}}@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}}.chart-wrap{width:100%}
.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}.output-running{color:var(--bench-muted);align-items:center;gap:8px;font-size:13px;display:flex}.output-elapsed{font-family:var(--font-mono);color:var(--bench-faint);margin-left:auto}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
.ae-figure{cursor:crosshair;touch-action:pan-y pinch-zoom;width:100%;min-width:0}.ae-figure>.viz-plane{width:100%;height:auto;display:block}.ae-readouts{display:contents}.ae-readouts .readout-value{font-size:22px}.ae-band-label,.ae-x-label{font-family:var(--font-mono);letter-spacing:.02em;paint-order:stroke;stroke:var(--bench);stroke-width:4px;stroke-linejoin:round;font-size:12px;font-weight:500}.ae-table{flex-direction:column;gap:2px;display:flex}.ae-row{border-radius:var(--radius-s);width:100%;min-height:40px;color:var(--bench-text);text-align:left;background:0 0;border:1px solid #0000;grid-template-columns:12px minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.2fr);align-items:center;gap:10px;padding:4px 10px;font-size:14px;display:grid}button.ae-row:hover{background:var(--bench-2)}.ae-row.is-focus{background:var(--bench-2);border-color:var(--ae-color)}.ae-head{min-height:0;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--bench-muted);padding-top:0;padding-bottom:2px;font-size:11px}.ae-swatch{background:var(--ae-color);width:12px;height:12px;box-shadow:0 0 10px var(--ae-color);border-radius:50%}.ae-name{color:var(--ae-color);text-overflow:ellipsis;white-space:nowrap;font-weight:560;overflow:hidden}.ae-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;flex-direction:column;gap:3px;font-size:13.5px;display:flex}.ae-num.is-flat{color:var(--v-coral)}.ae-bar{background:var(--bench-3);border-radius:999px;height:3px;display:block;overflow:hidden}.ae-bar>span{background:var(--v-amber);height:100%;transition:width var(--dur-1) var(--ease);border-radius:999px;display:block}.ae-note-key{color:var(--bench-text);font-weight:600}@media (prefers-reduced-motion:reduce){.ae-bar>span{transition:none}}
.attn-figure{flex-direction:column;align-self:flex-start;gap:10px;width:100%;min-width:0;display:flex}.attn-hull{fill:var(--v-lime);fill-opacity:.05;stroke:var(--v-lime);stroke-opacity:.4;stroke-width:1.5px;stroke-dasharray:5 6}.attn-tag text{transition:opacity var(--dur-2) var(--ease)}.attn-tag .viz-label{font-size:16px}.attn-tag-w{font-family:var(--font-mono);fill:var(--bench-muted);paint-order:stroke;stroke:var(--bench);stroke-width:4px;stroke-linejoin:round;font-variant-numeric:tabular-nums;font-size:15px}.attn-tag.is-strong .attn-tag-w{fill:#fff}.attn-numline-wrap{width:100%;min-width:0}.attn-numline{width:100%;height:auto;display:block;overflow:visible}.attn-numline-axis{stroke:var(--bench-grid-2);stroke-width:1.5px}.attn-numline-label{font-family:var(--font-mono);fill:var(--bench-muted);font-size:12px}.attn-numline-out{font-family:var(--font-mono);fill:var(--v-lime);font-size:13px;font-weight:600}.attn-glow-css{filter:drop-shadow(0 0 5px #d4f56bb3)}.attn-table-wrap{margin:-4px 0 0;overflow-x:auto}.attn-table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12.5px}.attn-table th,.attn-table td{text-align:right;border-bottom:1px solid var(--bench-line);white-space:nowrap;padding:5px 6px}.attn-table thead th{color:var(--bench-muted);font-weight:500}.attn-table thead th .katex{font-size:1.2em}.attn-table tbody th{text-align:left;color:var(--v-coral);font-weight:600}.attn-table td{color:var(--bench-text)}.attn-table tr.is-top td,.attn-table tr.is-top th{background:#ff7a6b14}.attn-table td.attn-w{color:#fff;font-weight:600}
.cg-wrap{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}.cg-formula{text-align:center;color:var(--bench-text);flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 28px;padding:2px 0 4px;font-size:17px;display:flex;overflow:auto hidden}.cg-canvas{border-radius:var(--radius-s);outline:none;width:100%}.cg-canvas:focus-visible{outline:2px solid var(--v-blue);outline-offset:4px}.cg-svg{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block;overflow:visible}.cg-legend text{fill:var(--bench-muted);font-family:var(--font-mono);font-size:11px}.cg-legend-val{fill:var(--v-white)}.cg-legend-grad{fill:var(--v-amber)}.cg-phase-svg{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:600}.cg-phase-svg.is-forward{fill:var(--v-white)}.cg-phase-svg.is-backward{fill:var(--v-amber)}.cg-edge{fill:none;stroke:var(--bench-line);stroke-width:2px;transition:stroke var(--dur-2) var(--ease), stroke-width var(--dur-2) var(--ease)}.cg-edge.is-known{stroke:#f4f1ec61}.cg-edge.is-fwd{stroke:var(--v-white);stroke-width:2.5px;filter:drop-shadow(0 0 5px #f4f1ec73)}.cg-edge.is-bwd{stroke:var(--v-amber);stroke-width:3px;filter:drop-shadow(0 0 6px #ffbf47a6)}.cg-edge.is-bwd-done{stroke:#ffbf4780;stroke-width:2.25px}.cg-edge.is-const{stroke:var(--bench-faint);stroke-dasharray:3 5}.cg-edge-flow{fill:none;stroke-width:3px;stroke-linecap:round;stroke-dasharray:2 14;pointer-events:none;animation:.8s linear infinite cg-flow}.cg-edge-flow.is-fwd{stroke:#fff}.cg-edge-flow.is-bwd{stroke:#fff4d6;animation-direction:reverse}@keyframes cg-flow{0%{stroke-dashoffset:16px}to{stroke-dashoffset:0}}.cg-shape{fill:var(--bench-2);stroke:var(--bench-line);stroke-width:2px;transition:stroke var(--dur-2) var(--ease), fill var(--dur-2) var(--ease)}.cg-node.is-op.is-known .cg-shape{stroke:#f4f1ecb3}.cg-node.is-input .cg-shape{fill:#6ea8ff1f;stroke:var(--v-blue)}.cg-node.is-const .cg-shape{fill:#0000;stroke:var(--bench-faint);stroke-dasharray:4 3}.cg-node.is-loss.is-known .cg-shape{stroke:var(--v-pink);fill:#ff8fc71a}.cg-node.is-out.is-known .cg-shape{stroke:var(--v-white);fill:#f4f1ec14}.cg-node.is-source .cg-shape{fill:#ffbf471a}.cg-node.is-active-fwd .cg-shape{stroke:#fff;fill:#2e2a26;filter:drop-shadow(0 0 10px #f4f1ec80)}.cg-node.is-active-bwd .cg-shape{stroke:var(--v-amber);filter:drop-shadow(0 0 10px #ffbf4799)}.cg-node.is-active-fwd,.cg-node.is-active-bwd{transform-box:fill-box;transform-origin:50%;animation:cg-pop var(--dur-3) var(--ease-out)}@keyframes cg-pop{0%{transform:scale(.88)}to{transform:scale(1)}}.cg-glyph{fill:var(--bench-text);font-family:var(--font-body);pointer-events:none;font-size:20px;font-weight:600}.cg-glyph.is-word{font-family:var(--font-mono);font-size:12px}.cg-node.is-input .cg-glyph{fill:var(--v-blue);font-size:16px;font-style:italic;font-weight:700}.cg-node.is-const .cg-glyph{fill:var(--bench-muted);font-size:16px;font-style:italic;font-weight:700}.cg-name{fill:var(--bench-muted);font-family:var(--font-body);font-size:13px;font-style:italic;font-weight:600}.cg-val,.cg-grad,.cg-edge-label text{font-family:var(--font-mono);font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--bench);stroke-width:4px;stroke-linejoin:round;font-size:12px}.cg-val{fill:var(--v-white);font-weight:500}.cg-node:not(.is-known) .cg-val{fill:var(--bench-faint)}.cg-grad{fill:var(--v-amber);font-weight:600}.cg-edge-label rect{fill:var(--bench);stroke:#ffbf4780;stroke-width:1.5px}.cg-edge-label text{fill:var(--v-amber);stroke-width:0;font-weight:600}.cg-edge-label.is-active rect{fill:#2b2112;stroke:var(--v-amber);filter:drop-shadow(0 0 8px #ffbf4773)}.cg-transport{gap:5px;display:flex}.cg-transport .bench-btn{flex:1 1 0;min-width:0;min-height:40px;padding:0 6px}.cg-transport .bench-btn.is-primary{flex:2.2 1 0}.cg-track{gap:3px;display:flex}.cg-tick{background:var(--bench-3);cursor:pointer;height:6px;transition:background var(--dur-1) var(--ease);border-radius:3px;flex:1}.cg-tick.is-forward.is-done{background:#f4f1eca6}.cg-tick.is-backward.is-done{background:var(--v-amber)}.cg-tick.is-now{box-shadow:0 0 0 2px var(--bench), 0 0 0 3.5px #fff}.cg-stepline{color:var(--bench-text);min-height:4.5em;margin:0;font-size:14px}.cg-phase{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;border-radius:999px;margin-right:4px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.cg-phase.is-forward{color:var(--v-white);background:#f4f1ec1f}.cg-phase.is-backward{color:var(--v-amber);background:#ffbf4724}.cg-inputs{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:4px 14px;display:grid}.cg-label-choice{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:10px;margin-top:4px;display:flex}@media (prefers-reduced-motion:reduce){.cg-edge-flow,.cg-node.is-active-fwd,.cg-node.is-active-bwd{animation:none}.cg-edge,.cg-shape,.cg-tick{transition:none}}.cg-svg.is-reduced .cg-edge-flow,.cg-svg.is-reduced .cg-node{animation:none}
.conv-figure{flex-direction:column;align-self:flex-start;gap:8px;width:100%;min-width:0;display:flex}.conv-heads{font-family:var(--font-mono);white-space:nowrap;color:var(--bench-muted);text-align:center;grid-template-columns:288fr 56fr 240fr;font-size:12px;display:grid}.conv-heads b{color:#fff;font-weight:600}.conv-svg{-webkit-user-select:none;user-select:none;touch-action:manipulation;width:100%;height:auto;max-height:520px;display:block;overflow:visible}.conv-figure.is-stacked .conv-heads{grid-template-columns:1fr}.conv-figure.is-stacked .conv-svg{max-width:360px;max-height:none;margin:0 auto}.conv-svg-head{font-family:var(--font-mono);fill:var(--bench-muted);font-size:12px}.conv-pixel{stroke:var(--bench);stroke-width:1px}.conv-unused{fill:#1513119e;stroke:var(--bench-faint);stroke-width:1px;stroke-dasharray:3 4;pointer-events:none}.conv-beam{fill:#f4f1ec12;stroke:#f4f1ec47;stroke-width:1px;pointer-events:none}.conv-window{fill:#f4f1ec0f;stroke:var(--v-white);stroke-width:3px;pointer-events:none}.conv-kdot{stroke:#151311cc;stroke-width:1.5px;pointer-events:none}.conv-out{outline:none}.conv-out-frame{fill:none;stroke:var(--bench-line);stroke-width:1.5px}.conv-out:focus-visible .conv-out-frame{stroke:var(--v-blue);stroke-width:3px}.conv-cell{stroke:var(--bench);stroke-width:1px;cursor:pointer;transition:fill var(--dur-2) var(--ease)}.conv-cell:not(.is-filled){stroke:var(--bench-line);stroke-dasharray:2 3;fill-opacity:.6}.conv-cell:hover{stroke:var(--bench-muted);stroke-dasharray:none}.conv-current{fill:none;stroke:var(--v-white);stroke-width:3px;pointer-events:none}.conv-legend{font-family:var(--font-mono);color:var(--bench-muted);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;font-size:11px;display:flex}.conv-legend-bar{background:linear-gradient(90deg, var(--v-blue), #1f1c19 50%, var(--v-coral));border-radius:999px;width:72px;height:8px}.conv-math{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.conv-mini{flex-direction:column;gap:3px;margin:0;display:flex}.conv-mini figcaption{font-family:var(--font-mono);color:var(--bench-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.conv-mini-grid{grid-template-rows:repeat(3,auto);gap:2px;display:grid}.conv-mini-row{grid-template-columns:repeat(3,minmax(26px,auto));gap:2px;display:grid}.conv-mini-cell{background:var(--bench-2);min-width:26px;height:24px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--bench-text);border-radius:4px;justify-content:center;align-items:center;padding:0 4px;font-size:12px;display:inline-flex}.conv-mini-cell.is-pos{color:var(--v-coral)}.conv-mini-cell.is-neg{color:var(--v-blue)}.conv-mini-cell.is-zero{color:var(--bench-faint)}.conv-op{font-family:var(--font-mono);color:var(--bench-muted);align-self:center;padding-top:14px;font-size:14px}.conv-sum{border:1px solid var(--bench-line);min-width:44px;font-family:var(--font-mono);text-align:center;font-variant-numeric:tabular-nums;border-radius:8px;align-self:center;margin-top:14px;padding:6px 10px;font-size:18px;font-weight:600}.conv-sum.is-pos{color:var(--v-coral);border-color:#ff7a6b80}.conv-sum.is-neg{color:var(--v-blue);border-color:#6ea8ff80}.conv-sum.is-zero{color:#fff}.conv-field{flex-direction:column;gap:6px;display:flex}.conv-field-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--bench-muted);font-size:11px}.conv-kernel{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.conv-kernel .bench-note{flex:160px}.conv-kernel .matrix-cell{width:64px;font-size:14px}.conv-rlabel .katex{text-transform:none;font-size:1.35em}
.dz-figure{cursor:crosshair;touch-action:pan-y pinch-zoom;width:100%;min-width:0}.dz-figure>.viz-plane{width:100%;height:auto;display:block}.dz-readouts{display:contents}.dz-readouts .readout-value{font-size:21px}.dz-slope-label{font-family:var(--font-mono);paint-order:stroke;stroke:var(--bench);stroke-width:4px;stroke-linejoin:round;font-size:12px;font-weight:500}.dz-h-label{font-family:var(--font-body);paint-order:stroke;stroke:var(--bench);stroke-width:3px;stroke-linejoin:round;font-size:14px;font-style:italic;font-weight:700}.dz-minimap-bg{fill:var(--bench);fill-opacity:.9;stroke:var(--bench-line)}.dz-minimap-label{font-family:var(--font-mono);fill:var(--bench-muted);font-size:11px}.dz-chart{flex-direction:column;gap:6px;width:100%;min-width:0;display:flex}
.det-figure{flex-direction:column;align-self:flex-start;gap:12px;width:100%;min-width:0;display:flex}.det-svg{-webkit-user-select:none;user-select:none;width:100%;height:auto;max-height:520px;display:block}.det-frame{fill:none;stroke:var(--bench-line);stroke-width:2px}.det-current{fill:#f4f1ec14;stroke:var(--v-white);stroke-width:3.5px}.det-missed{fill:none;stroke:var(--v-white);stroke-width:2.5px;stroke-dasharray:8 7;opacity:.85}.det-chip-text{font-family:var(--font-mono);fill:var(--bench);font-size:26px;font-weight:600}.det-fgrid{fill:none;stroke:#ece8e31a;stroke-width:1px}.det-pgrid{fill:none;stroke:#15131173;stroke-width:1px}.det-roi{fill:#ffbf470f;stroke:var(--v-amber);stroke-width:2px;stroke-dasharray:6 5}.det-bins{fill:none;stroke:var(--v-amber);stroke-width:1px;opacity:.55}.det-strip{justify-content:center;align-items:flex-start;gap:6px;min-height:132px;display:flex}.det-station{flex-direction:column;flex:1 1 0;align-items:center;gap:6px;min-width:0;max-width:190px;display:flex}.det-station-body{justify-content:center;align-items:center;height:96px;display:flex}.det-station-cap{font-family:var(--font-mono);color:var(--bench-muted);text-align:center;font-variant-numeric:tabular-nums;font-size:11px;line-height:1.3}.det-flow-arrow{height:96px;color:var(--bench-faint);flex:none;align-items:center;display:flex}.det-crop{outline:1px solid var(--bench-line);background:#1b1815;border-radius:8px;width:88px;height:88px;display:block}.det-crop.is-wide{width:120px;height:90px}.det-crop.is-empty{outline-style:dashed}.det-pooled{width:88px;height:88px;display:block}.det-unet{width:132px;height:72px;display:block}.det-unet-block{fill:var(--bench-3);stroke:var(--bench-line);stroke-width:1px;transition:fill var(--dur-2) var(--ease)}.det-unet-block.is-lit{fill:var(--v-teal);stroke:var(--v-teal)}.det-skip{fill:none;stroke:var(--bench-faint);stroke-width:1.2px;stroke-dasharray:3 3}.det-block{text-align:center;background:var(--bench-2);border:1px solid var(--bench-line);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:100%;min-width:84px;max-width:150px;min-height:64px;padding:8px 10px;display:flex}.det-block.is-heavy{border-color:#f4f1ec80;box-shadow:0 0 22px -8px #f4f1ec73}.det-block.is-light{border-style:dashed}.det-block.is-learned{border-color:var(--v-lime);box-shadow:0 0 22px -8px #d4f56b99}.det-block-title{font-family:var(--font-display);color:#fff;font-size:15px;font-weight:700;line-height:1.15}.det-block-sub{color:var(--bench-muted);font-size:12px}.det-tag{font-family:var(--font-mono);color:var(--bench);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-block}.det-tag.is-bg{color:var(--bench-muted);border:1px dashed var(--bench-line);background:0 0}.det-count{font-family:var(--font-mono);color:var(--v-lime);font-variant-numeric:tabular-nums;text-align:center;font-size:18px;font-weight:600}.det-explain{color:var(--bench-text);flex-direction:column;gap:8px;font-size:14px;line-height:1.55;display:flex}.det-config{background:var(--bench-2);border-radius:12px;flex-direction:column;gap:12px;padding:12px;display:flex}.det-field{flex-direction:column;gap:6px;display:flex}.det-field-label{color:var(--bench-muted);font-size:13px}.det-cost{flex-direction:column;gap:8px;display:flex}.det-cost-head{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--bench-muted);justify-content:space-between;gap:8px;font-size:11px;display:flex}.det-cost-scale{color:var(--bench-muted)}.det-cost-row{opacity:.62;transition:opacity var(--dur-2) var(--ease);flex-direction:column;gap:3px;display:flex}.det-cost-row.is-current{opacity:1}.det-cost-top{justify-content:space-between;gap:8px;font-size:13px;display:flex}.det-cost-label{color:var(--bench-text)}.det-cost-row.is-current .det-cost-label{color:var(--v-lime);font-weight:600}.det-cost-num{font-family:var(--font-mono);color:#fff;font-variant-numeric:tabular-nums}.det-cost-track{background:var(--bench-3);border-radius:999px;height:8px;position:relative;overflow:hidden}.det-cost-bar{background:var(--v-white);transition:width var(--dur-3) var(--ease-out);border-radius:999px;position:absolute;top:0;bottom:0;left:0}.det-cost-bar.is-light{background:repeating-linear-gradient(135deg,#f4f1ec47 0 3px,#0000 3px 7px)}.det-cost-row.is-current .det-cost-bar:not(.is-light){background:var(--v-lime);box-shadow:0 0 10px #d4f56b8c}.det-cost-note{color:var(--bench-muted);font-size:12px}.det-cost-axis{height:16px;font-family:var(--font-mono);color:var(--bench-muted);font-size:11px;position:relative}.det-cost-axis span{position:absolute;top:0;transform:translate(-50%)}.det-cost-axis span:last-child{transform:translate(-100%)}@media (max-width:420px){.det-crop,.det-pooled{width:68px;height:68px}.det-crop.is-wide{width:84px;height:63px}.det-unet{width:92px;height:50px}.det-station-body,.det-flow-arrow{height:76px}.det-block{min-width:0;min-height:56px;padding:6px}.det-block-title{font-size:13px}.det-strip{gap:2px}}
.ee-plane{cursor:crosshair}.ee-pulse{fill:none;stroke-width:2px;transform-box:fill-box;transform-origin:50%;animation:ee-pulse 1.6s var(--ease-out) infinite}@keyframes ee-pulse{0%{opacity:.9;transform:scale(.55)}to{opacity:0;transform:scale(1.7)}}.ee-trail{fill:none;stroke:var(--v-white);stroke-opacity:.3;stroke-width:1.25px;stroke-dasharray:2 4}.ee-new{animation:ee-in var(--dur-2) var(--ease-out)}@keyframes ee-in{0%{opacity:0}}.ee-chart{width:100%;max-width:560px}.ee-status.is-aligned{color:var(--v-lime)}.ee-fate{color:var(--bench-text)}.ee-panel{border-radius:var(--radius);background:var(--bench-2);border:1px solid var(--bench-line);flex-direction:column;gap:8px;min-width:0;padding:12px 14px;display:flex}.ee-pairs{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ee-pairs li{font-family:var(--font-mono);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:4px 14px;font-size:14px;display:flex}.ee-pair-v{color:var(--bench-text)}@media (prefers-reduced-motion:reduce){.ee-pulse{opacity:.8;animation:none}.ee-new{animation:none}}.ee-chart .chart-tick{font-size:11px}.ee-chart .chart-label{font-size:12px}.ee-chart .chart-legend{display:none}.ee-legend{font-family:var(--font-mono);color:var(--bench-muted);flex-wrap:wrap;gap:4px 18px;padding:2px 4px 0 48px;font-size:12px;display:flex}.ee-key{align-items:center;gap:8px;display:inline-flex}.ee-swatch{border-top:2px solid var(--v-white);width:18px;height:0;display:inline-block}.ee-swatch.is-ref{border-top:2px dashed var(--v-lime)}
.gflow-figure{flex-direction:column;align-self:flex-start;align-items:center;gap:10px;width:100%;min-width:0;display:flex}.gflow-title{width:100%;color:var(--bench-muted);margin:0;font-size:13.5px}.gflow-chart{-webkit-user-select:none;user-select:none;touch-action:pan-y;cursor:crosshair;border-radius:6px;width:100%;height:auto;display:block;overflow:visible}.gflow-chart:focus{outline:none}.gflow-chart:focus-visible{outline:2px solid var(--v-lime);outline-offset:4px}.gflow-zone.is-up{fill:#ece8e309}.gflow-zone.is-down{fill:#ece8e303}.gflow-zone-label{font-family:var(--font-mono);fill:var(--bench-muted);font-size:11px}.gflow-grid{stroke:var(--bench-grid)}.gflow-one{stroke:#ece8e366;stroke-width:1.2px}.gflow-mark{stroke:var(--bench-grid-2);stroke-dasharray:2 4}.gflow-tick{font-family:var(--font-mono);fill:var(--bench-faint);font-variant-numeric:tabular-nums;font-size:11px}.gflow-tick.is-one{fill:var(--bench-text)}.gflow-axis{font-family:var(--font-body);fill:var(--bench-muted);font-size:12px}.gflow-line{fill:none;stroke-width:3px;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 0 4px color-mix(in srgb, currentColor 60%, transparent))}.gflow-line.is-faint{stroke-width:1.6px;opacity:.6}.gflow-dot{stroke:var(--bench);stroke-width:1.5px}.gflow-hover line{stroke:#ece8e380;stroke-dasharray:3 3}.gflow-tip{fill:#151311eb;stroke:var(--bench-line)}.gflow-tip-head{font-family:var(--font-mono);fill:var(--bench-muted);font-size:11px}.gflow-tip-row{font-family:var(--font-mono);fill:var(--bench-text);font-size:12px}.gflow-legend{color:var(--bench-text);flex-wrap:wrap;justify-content:center;gap:6px 18px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.gflow-legend li{align-items:center;gap:8px;display:inline-flex}.gflow-swatch{background:var(--c);width:22px;height:3px;box-shadow:0 0 8px var(--c);border-radius:2px;display:inline-block}.gflow-swatch.is-dashed{background:repeating-linear-gradient(90deg, var(--c) 0 6px, transparent 6px 10px);box-shadow:none}.gflow-group{flex-direction:column;gap:12px;display:flex}.gflow-group+.gflow-group{border-top:1px solid var(--bench-line);padding-top:14px}.gflow-notes{flex-direction:column;gap:8px;display:flex}.gflow-notes .bench-note{margin:0}.gflow-table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-variant-numeric:tabular-nums;grid-column:1/-1;font-size:14px}.gflow-table th{text-transform:uppercase;letter-spacing:.06em;color:var(--bench-muted);text-align:left;white-space:nowrap;padding:5px 8px 5px 0;font-size:11px;font-weight:500}.gflow-table thead th{text-align:right;padding:0 0 6px 8px}.gflow-table thead th:first-child{padding-left:0}.gflow-table tbody th,.gflow-table td{border-top:1px solid var(--bench-line)}.gflow-table td{text-align:right;white-space:nowrap;padding:5px 0 5px 8px}.gflow-table .gflow-k{text-transform:none;font-family:var(--font-body);font-size:12.5px;font-weight:700}.gflow-table .is-rnn{color:var(--v-lime)}.gflow-table .is-lstm{color:var(--v-amber)}@media (max-width:420px){.gflow-table{font-size:12.5px}}.gflow-sci{white-space:nowrap}.readout-value .gflow-sci{font-size:.82em}.gflow-times{opacity:.7;margin:0 .18em}.gflow-sci sup{vertical-align:.72em;margin-left:.04em;font-size:.62em;line-height:0}
.jl-panels{justify-content:center;align-items:flex-start;width:100%;min-width:0;display:flex;position:relative}.jl-panels.is-side{flex-direction:row;gap:20px}.jl-panels.is-stacked{flex-direction:column;align-items:center;gap:4px}.jl-panel{flex-direction:column;gap:6px;min-width:0;max-width:100%;display:flex}.jl-panel-head{color:var(--bench-muted);font-size:13px}.jl-panel-kicker{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--lime);margin-right:6px;font-size:11px}.jl-stage{border-radius:var(--radius);background:var(--bench-2);width:100%;box-shadow:inset 0 0 0 1px var(--bench-line);overflow:hidden}.jl-stage.is-input{cursor:crosshair;touch-action:pan-y pinch-zoom}.jl-stage>.viz-plane{width:100%;height:auto;display:block}.jl-arrow{pointer-events:none;justify-content:center;align-items:center;display:flex}.jl-arrow span{background:var(--bench);border:1px solid var(--bench-line);width:30px;height:30px;color:var(--bench-text);font-family:var(--font-body);box-shadow:0 0 16px -4px var(--v-amber);border-radius:50%;justify-content:center;align-items:center;font-size:15px;font-style:italic;font-weight:700;display:inline-flex}.jl-panels.is-side .jl-arrow{z-index:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.jl-panels.is-stacked .jl-arrow span:after{content:"↓";margin-left:2px;font-size:12px;font-style:normal}.jl-loupe-bg{fill:var(--bench);fill-opacity:.94;stroke:var(--bench-line)}.jl-loupe-label{font-family:var(--font-mono);fill:var(--bench-muted);font-size:11px}.jl-readouts{display:contents}.jl-readouts .readout-value{font-size:21px}.jl-readouts .readout-value .katex{font-size:.8em}.jl-controls{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.jl-col{flex-direction:column;gap:14px;min-width:0;display:flex}@media (min-width:900px){.jl-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}}
