@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2)format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff)format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff)format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff)format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2)format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff)format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2)format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff)format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2)format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff)format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2)format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff)format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2)format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff)format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2)format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff)format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff)format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff)format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff)format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2)format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff)format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2)format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff)format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2)format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff)format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC)format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff)format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2)format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff)format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2)format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff)format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.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.16.47"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{white-space:nowrap;width:min-content;position:relative}.katex .base,.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 .vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{flex-direction:row;display:inline-flex}.katex .thinbox{width:0;max-width:0}.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 .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.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 .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.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 .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.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 .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 .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>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}:root{--bg:#f8fafc;--card:#fff;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--primary:#2563eb;--primary-soft:#dbeafe;--good:#16a34a;--good-soft:#dcfce7;--warn:#d97706;--warn-soft:#fef3c7;--bad:#dc2626;--bad-soft:#fee2e2;--radius:14px;--subj-math:#2a78d6;--subj-english:#eb6834;--subj-civics:#8b5cf6;--subj-other:#1baf7a;--subj-unclassified:#c3c2b7;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,PingFang TC,Noto Sans TC,Microsoft JhengHei,sans-serif;font-size:17px;line-height:1.6}*{box-sizing:border-box}body{margin:0}a{color:var(--primary);text-decoration:none}h2{margin:.6em 0 .5em}h3{margin:0 0 .6em;font-size:1.1rem}.muted{color:var(--muted)}.small{font-size:.85rem}.nowrap{white-space:nowrap}.center{place-items:center;min-height:60vh;display:grid}.error{color:var(--bad);margin:.5em 0}.ok{color:var(--good);margin:.5em 0}.good{color:var(--good)}.warn{color:var(--warn)}.bad{color:var(--bad)}.spacer{flex:1}.topbar{z-index:10;padding:.5rem 1rem;padding-top:max(.5rem, env(safe-area-inset-top));background:var(--card);border-bottom:1px solid var(--line);align-items:center;gap:1rem;display:flex;position:sticky;top:0}.brand{color:var(--text);align-items:center;gap:.5rem;font-weight:700;display:flex}.topbar nav{flex:1;gap:.25rem;display:flex;overflow-x:auto}.topbar nav a{color:var(--muted);white-space:nowrap;border-radius:10px;padding:.5rem .8rem}.topbar nav a.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.topbar .user{align-items:center;gap:.5rem;display:flex}.container{max-width:1100px;margin:0 auto;padding:1rem 1rem 7rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:1rem;padding:1.1rem 1.2rem}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.grid.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid3{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;display:grid}.row-btns{flex-wrap:wrap;gap:.5rem;margin-top:.8rem;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.btn{border:1px solid var(--line);background:var(--card);min-height:44px;color:var(--text);font:inherit;cursor:pointer;touch-action:manipulation;border-radius:12px;justify-content:center;align-items:center;gap:.4rem;padding:.5rem 1rem;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--primary)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.small{min-height:34px;padding:.25rem .7rem;font-size:.9rem}.btn.big{min-height:52px;padding:.6rem 1.6rem;font-size:1.05rem}.btn.block{width:100%}.link{color:var(--primary);cursor:pointer;font:inherit;background:0 0;border:none;padding:.3rem 0}.input{border:1px solid var(--line);width:100%;min-height:44px;font:inherit;color:inherit;background:#fff;border-radius:10px;padding:.5rem .75rem}.input:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}.input.big{min-height:54px;font-size:1.2rem}.input.narrow{width:6rem}textarea.input{resize:vertical}select.input{width:auto}label{display:block}.form label,.login label{color:var(--muted);margin-bottom:.8rem;font-size:.9rem}.form label .input,.login label .input{color:var(--text);margin-top:.25rem}.form select.input{width:100%}.label{color:var(--muted);margin:.6rem 0 .3rem;font-size:.9rem}.tag{background:var(--primary-soft);color:var(--primary);vertical-align:middle;border-radius:999px;margin-right:.25rem;padding:.05rem .5rem;font-size:.78rem;font-weight:600;display:inline-block}.tag.good{background:var(--good-soft);color:var(--good)}.tag.warn{background:var(--warn-soft);color:var(--warn)}.seg{flex-wrap:wrap;gap:.35rem;display:inline-flex}.seg button{border:1px solid var(--line);min-width:48px;min-height:42px;font:inherit;cursor:pointer;background:#fff;border-radius:10px;padding:.3rem .9rem}.seg button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.tabs{border-bottom:1px solid var(--line);gap:.3rem;margin-bottom:1rem;display:flex;overflow-x:auto}.tabs a,.tabs button{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;padding:.6rem 1rem}.tabs a.active,.tabs button.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.login-wrap{place-items:center;min-height:100vh;padding:1rem;display:grid}.login{text-align:center;width:min(400px,100%)}.login h1{margin:.3rem 0 0}.login label{text-align:left}.login .btn{width:100%}.subject{text-align:center}.subject-icon{font-size:2.6rem}.subject .row-btns{justify-content:center}.list{margin:0 0 .6rem;padding:0;list-style:none}.list li{border-bottom:1px dashed var(--line);align-items:center;gap:.4rem;padding:.45rem 0;display:flex}.list li .right{white-space:nowrap;margin-left:auto}.practice{grid-template-columns:1fr 320px;align-items:start;gap:1rem;display:grid}.settings{position:sticky;top:76px}.field{margin-bottom:1rem}.volume-title{margin:.8rem 0 .3rem;font-weight:600}@media (width<=820px){.practice{grid-template-columns:1fr}.settings{position:static}}.tree,.tree ul{margin:0;padding-left:0;list-style:none}.tree ul{padding-left:1.4rem}.tree-row{align-items:center;display:flex}.tree-toggle{width:34px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:none;flex:none;font-size:1rem}.tree label{cursor:pointer;flex:1;align-items:center;gap:.45rem;min-height:40px;display:flex}.tree label.empty{color:var(--muted)}.tree input[type=checkbox]{flex:none;width:22px;height:22px}.tree .count{color:var(--muted);background:var(--bg);border-radius:999px;margin-left:auto;padding:0 .5rem;font-size:.8rem}.tree-box{border:1px solid var(--line);border-radius:10px;max-height:320px;padding:.3rem;overflow:auto}.quiz-head{flex-wrap:wrap;align-items:baseline;gap:1rem;display:flex}.question{scroll-margin-top:80px}.question.correct{border-left:5px solid var(--good)}.question.partial{border-left:5px solid var(--warn)}.question.wrong{border-left:5px solid var(--bad)}.q-head{align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.q-num{background:var(--text);color:#fff;border-radius:50%;place-items:center;width:32px;height:32px;font-size:.9rem;font-weight:700;display:inline-grid}.score{margin-left:auto;font-weight:700}.score.correct{color:var(--good)}.score.partial{color:var(--warn)}.score.wrong{color:var(--bad)}.q-stem{margin-bottom:.6rem;font-size:1.08rem}.md p{margin:.3em 0}.md .katex-display{overflow:auto hidden}.options{gap:.5rem;display:grid}.option{text-align:left;border:2px solid var(--line);min-height:54px;font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:#fff;border-radius:12px;align-items:center;gap:.75rem;padding:.55rem .9rem;display:flex}.option:disabled{cursor:default}.option.chosen{border-color:var(--primary);background:var(--primary-soft)}.option.is-answer{border-color:var(--good);background:var(--good-soft)}.option.is-wrong{border-color:var(--bad);background:var(--bad-soft)}.opt-label{width:34px;height:34px;color:var(--muted);background:#fff;border:2px solid;border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid}.option.chosen .opt-label{color:var(--primary)}.option.is-answer .opt-label,.opt-label.is-answer{color:var(--good)}.fill{gap:.4rem;max-width:420px;display:grid}.explain{background:var(--bg);border-radius:10px;margin-top:.8rem;padding:.6rem .8rem}.explain summary{cursor:pointer;font-weight:600}.passage{background:#fffdf5}.passage .md{font-size:1.02rem}.passage summary{cursor:pointer}.source{border:1px dashed var(--primary);background:#f8fbff;border-radius:10px;margin-top:.8rem;padding:.7rem .9rem}.source-title{margin-bottom:.3rem;font-weight:700}.source dl{margin:0}.source .row{grid-template-columns:3rem 1fr;gap:.5rem;padding:.2rem 0;display:grid}.source dt{color:var(--muted);padding-top:.15rem;font-size:.85rem}.source dd{margin:0}.submit-bar{z-index:10;padding:.6rem 1rem;padding-bottom:max(.6rem, env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:1rem;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0000000d}.submit-bar .dots{flex-wrap:wrap;flex:1;gap:.3rem;display:flex}.submit-bar .dots a{border:1px solid var(--line);width:34px;height:34px;color:var(--muted);border-radius:8px;place-items:center;font-size:.85rem;display:inline-grid}.submit-bar .dots a.done{background:var(--primary);border-color:var(--primary);color:#fff}.result{flex-wrap:wrap;align-items:center;gap:1.5rem;display:flex}.big-score{font-size:3rem;font-weight:800;line-height:1}.big-score span{color:var(--muted);font-size:1.4rem;font-weight:600}.big-score.good{color:var(--good)}.big-score.warn{color:var(--warn)}.big-score.bad{color:var(--bad)}.mistake-meta{color:var(--muted);justify-content:space-between;align-items:center;gap:.5rem;margin:1.2rem 0 .3rem;font-size:.85rem;display:flex}.lesson-list{gap:.5rem;margin-bottom:.8rem;display:grid}.lesson-item{border:1px solid var(--line);color:var(--text);background:#fff;border-radius:12px;align-items:flex-start;gap:.8rem;padding:.7rem .9rem;display:flex}.lesson-item:hover{border-color:var(--primary)}.lesson-item.done{background:#f6fdf8}.lesson-status{color:var(--primary);text-align:center;width:1.4rem;font-size:1.2rem}.lesson-item.done .lesson-status{color:var(--good)}.lesson-title{font-weight:600}.lesson{max-width:820px;margin:0 auto}.lesson-head h2{margin:.2em 0 .1em}.lesson-head{margin-bottom:1rem}.progress{background:var(--line);border-radius:999px;height:6px;margin-top:.6rem;overflow:hidden}.progress>div{background:var(--primary);height:100%;transition:width .3s}.block{animation:.25s ease-out fadein}@keyframes fadein{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.block-head{align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.block-example{background:#f5f8ff}.block-practice{border-color:#c7d2fe}.block-tip{background:var(--warn-soft);border-color:#fde68a}.block-summary{background:var(--good-soft);border-color:#bbf7d0}.tag.kind-example{color:#4338ca;background:#e0e7ff}.tag.kind-practice{color:#6d28d9;background:#ede9fe}.tag.kind-tip{color:#92400e;background:#fde68a}.tag.kind-summary{color:#166534;background:#bbf7d0}.md blockquote{border-left:4px solid var(--primary);background:#fff7ed;border-radius:6px;margin:.6em 0;padding:.5em .9em}.md blockquote>p{margin:.25em 0}.md table{border-collapse:collapse;max-width:100%;margin:.6em 0;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--line);text-align:center;white-space:nowrap;padding:.3em .65em}.md th{background:var(--bg);font-weight:600}.md th:first-child,.md td:first-child{text-align:left;background:var(--bg)}.steps{margin-top:.4rem}.step-list{margin:.4rem 0;padding-left:1.6rem}.step-list li{padding:.25rem 0;animation:.25s ease-out fadein}.hint{background:var(--warn-soft);border-radius:10px;margin:.4rem 0;padding:.5rem .8rem}.practice-q{margin-top:.6rem}.practice-q .card{box-shadow:none;margin-bottom:.4rem}.lesson-next{padding:.7rem 0;padding-bottom:max(.7rem, env(safe-area-inset-bottom));background:linear-gradient(transparent, var(--bg) 30%);justify-content:flex-end;align-items:center;gap:.8rem;display:flex;position:sticky;bottom:0}.lesson-next .muted{margin-right:auto}.license{text-align:center;margin-top:1.5rem}.tutor-backdrop{z-index:50;background:#0f172a40;justify-content:flex-end;display:flex;position:fixed;inset:0}.tutor{background:var(--card);flex-direction:column;width:min(460px,100%);height:100%;animation:.2s ease-out slidein;display:flex;box-shadow:-8px 0 24px #0000001f}@keyframes slidein{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:none}}.tutor header{padding:.8rem 1rem;padding-top:max(.8rem, env(safe-area-inset-top));border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex}.tutor-body{flex-direction:column;flex:1;gap:.6rem;padding:.8rem 1rem;display:flex;overflow-y:auto}.tutor-input{padding:.7rem 1rem;padding-bottom:max(.7rem, env(safe-area-inset-bottom));border-top:1px solid var(--line);gap:.5rem;display:flex}.tutor-input textarea{resize:none;flex:1}.bubble{overflow-wrap:anywhere;border-radius:14px;max-width:90%;padding:.55rem .8rem;line-height:1.55}.bubble.user{background:var(--primary);color:#fff;white-space:pre-wrap;border-bottom-right-radius:4px;align-self:flex-end}.bubble.assistant{background:var(--bg);border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start}.bubble.assistant .md p:first-child{margin-top:0}.typing{color:var(--muted);animation:1.2s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 #dc262680}to{box-shadow:0 0 0 16px #dc262600}}.chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip{border:1px solid var(--line);font:inherit;cursor:pointer;background:#fff;border-radius:999px;padding:.4rem .8rem;font-size:.9rem}.chip:hover{border-color:var(--primary);color:var(--primary)}.ask-ai{justify-content:flex-end;margin:-.6rem 0 1rem;display:flex}@media (width<=700px){.tutor-backdrop{align-items:flex-end}.tutor{border-radius:16px 16px 0 0;width:100%;height:85%;animation:.2s ease-out slideup}@keyframes slideup{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}}.stat-value{font-size:1.8rem;font-weight:800}.budget-bar{background:var(--line);border-radius:999px;height:12px;margin:.3rem 0;overflow:hidden}.budget-bar>div{background:var(--good);height:100%}.budget-bar>div.warn{background:var(--warn)}.budget-bar>div.over{background:var(--bad)}.table{border-collapse:collapse;width:100%}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:.5rem .4rem}.table th{color:var(--muted);font-size:.85rem;font-weight:600}.table td.clip{text-overflow:ellipsis;white-space:nowrap;max-width:380px;overflow:hidden}.table tr.chapter-row td{background:var(--bg);font-weight:600}.pager{justify-content:center;align-items:center;gap:1rem;margin-top:.8rem;display:flex}.card{overflow-x:auto}.editor{grid-template-columns:1fr 1fr;align-items:start;gap:1rem;display:grid}.editor .preview{position:sticky;top:76px}@media (width<=900px){.editor{grid-template-columns:1fr}.editor .preview{position:static}}.opt-edit{align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.opt-edit .opt-label{cursor:pointer}.code{color:#e2e8f0;white-space:pre;background:#0f172a;border-radius:10px;padding:.8rem;font-size:.8rem;overflow-x:auto}.report{background:var(--bg);border-radius:10px;margin-top:.8rem;padding:.6rem .8rem}@media (width<=600px){:root{font-size:16px}.topbar{grid-template-columns:1fr auto;gap:.25rem .5rem;padding-bottom:.25rem;display:grid}.topbar .brand{grid-area:1/1}.topbar .user{grid-area:1/2}.topbar nav{grid-area:2/1/auto/-1;gap:0}.topbar nav a{text-align:center;flex:1;padding:.45rem .2rem}.topbar .user .muted{display:none}.container{padding:.75rem .75rem 8rem}.card{padding:.9rem}}.card.block-reading{overflow:visible}.btn.tiny{min-width:30px;min-height:28px;padding:.1rem .4rem;font-size:.82rem}.btn.tiny.on{background:var(--primary-soft);color:var(--primary)}.reading-bar{top:var(--top-gap);z-index:5;background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.4rem;padding:.5rem 0;transition:top .25s;display:flex;position:sticky}.reading-bar label{align-items:center;gap:.3rem;display:inline-flex}.reading-bar select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:8px;padding:.2rem .3rem;font-size:.9rem}.voice-pick select{max-width:230px}.seg{border:1px solid var(--line);border-radius:999px;display:inline-flex;overflow:hidden}.seg button{font:inherit;cursor:pointer;background:#fff;border:0;min-height:34px;padding:.3rem .75rem;font-size:.9rem}.seg button.active{background:var(--primary);color:#fff}.reading-body{font-size:1.08rem}.rpara{margin:.2rem 0 .9rem}.ren-row{align-items:flex-start;gap:.3rem;display:flex}.ren{flex:1;margin:0;font-family:Georgia,Times New Roman,serif;line-height:1.85}h3.ren{margin-top:.6rem;font-size:1.12rem}.rpara-tools{opacity:.75;flex-direction:column;gap:2px;display:flex}.rzh{color:#334155;white-space:pre-line;background:#f1f5f9;border-radius:8px;margin:.25rem 0 0;padding:.35rem .7rem;font-size:.98rem;line-height:1.8}.rzh.heading{font-weight:600}.ren .w{cursor:pointer;border-radius:3px}.ren .w:hover{background:var(--primary-soft)}.ren .sent.speaking{background:#fef08a;border-radius:4px;box-shadow:0 0 0 2px #fef08a}.rmark{color:var(--warn);margin-left:1px;font-weight:700}.reading-note{margin-top:.4rem}.word-pop{z-index:60;background:var(--card);border:1px solid var(--line);border-radius:12px;width:min(420px,100vw - 16px);max-height:70vh;padding:.7rem .9rem;font-size:.95rem;position:absolute;overflow-y:auto;box-shadow:0 12px 32px #0f172a2e}.word-pop.sheet{width:100%;max-height:62vh;padding-bottom:max(.9rem, env(safe-area-inset-bottom));border-radius:16px 16px 0 0;position:fixed;inset:auto 0 0}.wp-head{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.wp-term{margin-right:.5rem;font-family:Georgia,serif;font-size:1.3rem}.wp-ipa{color:var(--muted);font-family:Lucida Sans Unicode,Segoe UI,Arial Unicode MS,sans-serif}.speakers{gap:.2rem;margin:.2rem 0;display:inline-flex}.wp-sec{border-top:1px dashed var(--line);margin-top:.5rem;padding-top:.45rem}.wp-sec h4{color:var(--muted);margin:0 0 .25rem;font-size:.85rem;font-weight:600}.wp-sec .chip{cursor:default;margin:.15rem .2rem 0 0;padding:.1rem .5rem;font-size:.82rem;display:inline-block}.wp-sense{margin-bottom:.3rem}.pos{color:var(--primary);margin-right:.2rem}.wp-ex{align-items:flex-start;gap:.25rem;margin:.15rem 0 .15rem .3rem;display:flex}.wp-ai ul{margin:.3rem 0;padding-left:1.2rem}.wp-sentence{align-items:flex-start;gap:.3rem;display:flex}.tiny-text{font-size:.78rem}.md img.fig{background:#fff;border-radius:6px;max-width:min(100%,560px);height:auto;margin:.5rem auto;display:block}.md img.fig.small{max-width:min(100%,300px)}.md img.fig.native{max-width:100%;margin-left:0}.md.inline img.fig{vertical-align:middle;max-height:150px;margin:.2rem 0;display:inline-block}.img-loading{background:linear-gradient(90deg,#f1f5f9,#e2e8f0,#f1f5f9);border-radius:6px;width:100%;height:120px;display:block}.img-missing{color:var(--muted);font-size:.9rem}.md p:has(>img.fig+img.fig){flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:.4rem 1rem;display:flex}.md p:has(>img.fig+img.fig)>img.fig{margin:.2rem 0}.scratch-open{margin:.2rem 0 .4rem}.scratch{margin:.4rem 0 .8rem}.scratch-bar{flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.3rem;display:flex}.scratch-bar .spacer{flex:1}.swatch{width:26px;height:26px;box-shadow:0 0 0 1px var(--line);cursor:pointer;border:2px solid #fff;border-radius:50%}.swatch.on{box-shadow:0 0 0 2px var(--primary)}.scratch-paper{border:1px solid var(--line);background-color:#fffef8;background-image:linear-gradient(#eef2f7 1px,#0000 1px),linear-gradient(90deg,#eef2f7 1px,#0000 1px);background-size:24px 24px;border-radius:10px;overflow:hidden}.scratch-paper canvas{cursor:crosshair;display:block}.bubble-img{background:#fff;border-radius:8px;max-width:100%;max-height:220px;margin-bottom:.3rem;display:block}.pending-img{flex-direction:column;align-items:flex-end;gap:.2rem;display:flex}.pending-img img{border:1px solid var(--line);background:#fff;border-radius:8px;max-width:70%;max-height:160px}.ren .ph{text-underline-offset:4px;-webkit-text-decoration:underline dotted #94a3b8;text-decoration:underline dotted #94a3b8;text-decoration-thickness:1.5px}.ren .ph-lesson{-webkit-text-decoration:underline dotted #d97706;text-decoration:underline dotted #d97706;text-decoration-thickness:2px}.ph-btn{vertical-align:super;color:#475569;cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;justify-content:center;align-items:center;min-width:18px;min-height:18px;margin-left:2px;padding:2px 4px;font:600 .62rem/1 system-ui,sans-serif;display:inline-flex}.ph-btn.lesson{color:#92400e;background:#fef3c7;border-color:#f59e0b}.ph-btn:hover{background:var(--primary-soft)}.phrase-tag{color:#92400e;background:#fef3c7;margin:.15rem 0}.phrase-hint{text-align:left;white-space:normal;margin:.3rem 0}.phrase-toggle{align-items:center;gap:.25rem;display:inline-flex}.lesson-tools{flex-wrap:wrap;gap:.4rem;margin-top:.5rem;display:flex}.block.narrating{box-shadow:0 0 0 3px #fde68a}.block-head .narr-btn{margin-left:auto}.narr-bar{z-index:30;color:#fff;background:#0f172aeb;border-radius:14px;width:min(760px,100vw - 16px);padding:.6rem 2.9rem .6rem .8rem;position:fixed;bottom:72px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000040}.narr-collapse{color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:50%;width:34px;height:34px;font-size:1.2rem;line-height:1;position:absolute;top:6px;right:8px}.narr-bubble{z-index:30;touch-action:none;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:flex;position:fixed}.nb-main{color:#fff;cursor:pointer;background:#0f172adb;border:0;border-radius:50%;width:58px;height:58px;font-size:1.45rem;box-shadow:0 6px 18px #0000004d}.nb-main:disabled{opacity:.6}.narr-bubble.playing .nb-main{background:var(--primary);animation:1.8s infinite narr-pulse}@keyframes narr-pulse{0%{box-shadow:0 0 #2563eb80}70%{box-shadow:0 0 0 14px #2563eb00}to{box-shadow:0 0 #2563eb00}}.nb-more{color:#fff;cursor:pointer;background:#0f172aa8;border:0;border-radius:50%;order:-1;width:36px;height:36px;font-size:1.1rem}.narr-sub{z-index:29;pointer-events:none;color:#fff;-webkit-line-clamp:2;background:#0f172ac7;border-radius:10px;-webkit-box-orient:vertical;padding:.3rem .6rem;font-size:.9rem;line-height:1.45;display:-webkit-box;position:fixed;bottom:76px;left:8px;right:90px;overflow:hidden}.narr-caption{min-height:1.6em;margin-bottom:.4rem;font-size:1.05rem;line-height:1.6}.narr-controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.narr-controls label{color:#e2e8f0;align-items:center;gap:.3rem;display:inline-flex}.narr-controls select{font:inherit;border-radius:8px;padding:.15rem .3rem;font-size:.85rem}.narr-controls .btn.ghost{color:#cbd5e1}.video-panel .block-head .spacer{flex:1}.video-frame{background:#000;border-radius:10px;width:100%;margin:.4rem 0;padding-top:56.25%;position:relative;overflow:hidden}.video-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.video-list{margin:.4rem 0;padding:0;list-style:none}.video-list li{border-bottom:1px dashed var(--line);flex-wrap:wrap;align-items:baseline;gap:.5rem;padding:.3rem 0;display:flex}.video-list li.on .link-btn{font-weight:700}.link-btn{color:var(--primary);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}figure.geo{flex-direction:column;align-items:flex-start;gap:6px;margin:10px 0;display:flex}.geo-svg{border:1px solid var(--line,#e5e7eb);touch-action:manipulation;background:#fff;border-radius:10px}.geo-axis{stroke:#475569;stroke-width:1.3px}.geo-grid{stroke:#e2e8f0;stroke-width:1px}.geo-stroke{stroke-linecap:round;stroke-linejoin:round}.geo-stroke.dash{stroke-dasharray:6 5}.geo-label{fill:#1f2937;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;font-size:15px}.geo-label.it,.geo-tick.it{font-family:Times New Roman,Cambria Math,serif;font-size:17px;font-style:italic}.geo-tick{fill:#475569;paint-order:stroke;stroke:#fff;stroke-width:3px;font-size:12px}.geo-draw{stroke-dasharray:1;stroke-dashoffset:1px;animation:.9s ease-out forwards geo-draw}@keyframes geo-draw{to{stroke-dashoffset:0}}.geo-fade{animation:.7s ease-out both geo-fade}@keyframes geo-fade{0%{opacity:0}to{opacity:1}}.geo-pop{transform-box:fill-box;transform-origin:50%;animation:.45s ease-out both geo-pop}@keyframes geo-pop{0%{transform:scale(0)}70%{transform:scale(1.6)}to{transform:scale(1)}}.geo-hl{fill:#dc26261f;stroke:#dc2626;stroke-width:2.5px;transform-box:fill-box;transform-origin:50%;animation:1.1s ease-in-out infinite geo-pulse}@keyframes geo-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.35)}}.geo-hl-stroke{stroke:#dc2626;stroke-width:6px;stroke-opacity:.35;stroke-linecap:round;animation:.4s ease-out both geo-fade}.geo-hl-fill{fill:#dc262626;animation:.4s ease-out both geo-fade}.geo-steps{flex-wrap:wrap;align-items:center;gap:6px;display:flex}figure.geo{position:relative}.geo-replay{opacity:.6;background:#fffc;padding:0 6px;font-size:14px;position:absolute;top:2px;left:2px}.geo-replay:hover{opacity:1}.geo-cap{color:#334155;background:#f1f5f9;border-radius:6px;padding:2px 8px}.geo-wait{color:#64748b;border:1px dashed #cbd5e1;border-radius:10px;margin:8px 0;padding:12px}.geo-error{color:#b91c1c;background:#fef2f2;border-radius:8px;margin:8px 0;padding:8px 10px;font-size:14px}@media (prefers-reduced-motion:reduce){.geo-draw,.geo-fade,.geo-pop,.geo-hl{stroke-dashoffset:0;animation:none}}.update-banner{z-index:200;color:#fff;white-space:nowrap;background:#1e293b;border-radius:12px;align-items:center;gap:10px;padding:8px 12px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000040}.update-banner .btn.ghost{color:#cbd5e1}.fs-btn{padding:4px 8px;font-size:18px;line-height:1}.fs-icon{vertical-align:-.12em}.tag{white-space:nowrap}.build-ver{text-align:center;opacity:.7;margin:2rem 0 0}.tutor header{flex-wrap:wrap;gap:.5rem}.tutor-title{min-width:0}.tutor-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.3rem;display:flex}.tutor.size-wide{width:min(900px,70vw)}.tutor.size-full{width:100vw}.tutor.size-full .tutor-body,.tutor.size-full .tutor-input{width:min(980px,100%);margin:0 auto}.tutor.size-full .bubble{max-width:100%}@media (width>=1000px){.tutor-backdrop.size-side{pointer-events:none;background:0 0}.tutor-backdrop.size-side .tutor{pointer-events:auto}body.tutor-docked .container{max-width:none;margin:0 min(470px,46vw) 0 0}body.tutor-docked .narr-bar{width:min(700px,100vw - min(470px,46vw) - 16px);left:calc(50vw - min(470px,46vw)/2)}body.tutor-docked .submit-bar{right:min(470px,46vw)}body.tutor-docked .update-banner{left:calc(50vw - min(470px,46vw)/2)}.tutor.size-side{width:min(470px,46vw)}}.tutor-history{border-bottom:1px dashed var(--line);flex-direction:column;gap:.35rem;padding-bottom:.6rem;display:flex}.hist-row{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:.3rem;display:flex}.hist-row.on{border-color:var(--primary);background:var(--primary-soft)}.hist-open{min-width:0;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:.1rem;padding:.45rem .6rem;display:flex}.hist-title{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tutor-resumed{background:#f1f5f9;border-radius:8px;padding:.35rem .6rem}@media (width<=700px){.tutor.size-wide,.tutor.size-side{width:100%}.tutor.size-full{border-radius:0;height:100%}}.linklike{font:inherit;color:var(--primary);cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.linklike:hover{text-decoration:underline}.seg.wrap{flex-wrap:wrap}.quiz-clock{font-variant-numeric:tabular-nums;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.25rem .6rem;font-weight:700}.quiz-clock.warn{color:#c2410c;background:#fff7ed;border-color:#fdba74}.quiz-clock.danger{color:#b91c1c;background:#fef2f2;border-color:#fca5a5;animation:1s infinite pulse}.q-time{margin:-.6rem 0 1rem .2rem}.scratch-paper canvas{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none}.seg.tiny-seg button{padding:.2rem .55rem;font-size:.8rem}.badge{color:#fff;background:#dc2626;border-radius:999px;place-items:center;min-width:1.25rem;height:1.25rem;margin-left:.3rem;padding:0 .3rem;font-size:.75rem;font-weight:700;line-height:1;display:inline-grid}.parent .card h3{margin-top:0}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.card-head h3{margin:0}.stat-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.6rem;margin-bottom:.6rem;display:grid}.stat{background:var(--bg);border-radius:10px;padding:.5rem .7rem}.grant-row{border-bottom:1px dashed var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:.5rem 0;display:flex}.rule-row{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:.6rem;padding:.7rem 0;display:flex}.rule-row.off{opacity:.55}.rule-main{flex-direction:column;flex:1;align-items:flex-start;gap:.3rem;min-width:240px;display:flex}.prog-list{flex-direction:column;gap:.3rem;width:100%;max-width:520px;display:flex}.prog{grid-template-columns:minmax(0,1fr) 140px;align-items:center;gap:.5rem;display:grid}.prog-bar{background:var(--line);border-radius:999px;height:8px;overflow:hidden}.prog-bar div{background:var(--primary);border-radius:999px;height:100%;transition:width .4s}.prog.met .prog-bar div{background:#16a34a}.tag.grant-pending{color:#c2410c;background:#fff7ed}.tag.grant-approved{color:#15803d;background:#dcfce7}.tag.grant-declined{color:#64748b;background:#f1f5f9}.bonus-row{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.7rem;display:flex}.small-input{width:5.5rem;display:inline-block}.rule-editor{border:1px solid var(--primary);background:#f8fbff;border-radius:12px;flex-direction:column;gap:.5rem;margin-top:.8rem;padding:.8rem;display:flex}.rule-editor h4{margin:0}.field-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.card.notice{background:#f0fdf4;border-color:#86efac;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.card.tasks{background:#fffbf5;border-color:#fdba74}@media (width<=600px){.prog{grid-template-columns:1fr}}.rule-row>.row-btns{align-self:flex-start;align-items:center}.attn-backdrop{z-index:300;background:#0f172a73;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.attn{width:min(560px,100%);margin:0}.attn-head{justify-content:space-between;align-items:center;display:flex}.attn-options{flex-direction:column;gap:.5rem;display:flex}.attn-opt{text-align:left;white-space:normal;padding:.6rem .8rem;line-height:1.45}.audio-tracks{background:#f0f9ff;border:1px solid #bae6fd;border-radius:12px;flex-direction:column;gap:.5rem;margin-bottom:.8rem;padding:.6rem .8rem;display:flex}.audio-head,.audio-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.audio-row audio{flex:1;min-width:240px}.split{flex-direction:column-reverse;gap:.8rem;display:flex}.split-fig{position:relative}.split-fig figure.geo{margin:0}.split-handle{touch-action:none;z-index:4;place-items:center;display:none}.split-handle span{background:#cbd5e1;border-radius:4px;display:block}.split-handle:hover span,.split-handle:active span{background:var(--primary)}@media (width>=900px),(orientation:landscape) and (width>=560px){.split{grid-template-columns:minmax(0, 1fr) minmax(0, var(--fig-w,46%));align-items:start;gap:1.2rem;display:grid}.split-fig{top:calc(var(--top-gap) + 8px);transition:top .25s;position:sticky}.split-fig .geo-svg{width:100%;height:auto;max-height:calc(100vh - var(--top-gap) - 110px);max-height:calc(100dvh - var(--top-gap) - 110px)}.split-handle{cursor:col-resize;width:.8rem;display:grid;position:absolute;top:0;bottom:0;left:-1rem}.split-handle span{width:4px;height:48px}}@media (width<=899px) and (orientation:portrait),(width<=559px){.split-fig{top:var(--top-gap);z-index:3;background:var(--card);padding:4px 0 12px;transition:top .25s;position:sticky}.split-fig .geo-svg{width:100%;height:auto;max-height:var(--fig-h,40vh);max-height:var(--fig-hd,40dvh)}.split-handle{cursor:row-resize;height:16px;display:grid;position:absolute;bottom:-4px;left:0;right:0}.split-handle span{width:48px;height:4px}}.card.block:has(.split){overflow:visible}.edition-tabs button{font-size:1rem}.volume-tabs{margin-bottom:.8rem}.tab-count{opacity:.75;margin-left:.15rem;font-size:.75rem}.sent.gram{text-underline-offset:4px;-webkit-text-decoration:underline dotted #7c3aed;text-decoration:underline dotted #7c3aed;text-decoration-thickness:2px}.gram-btn{vertical-align:.15em;color:#6d28d9;cursor:pointer;background:#f5f3ff;border:1px solid #7c3aed;border-radius:6px;place-items:center;width:1.35em;height:1.35em;margin:0 .15em;padding:0;font-size:.72em;font-weight:700;display:inline-grid}.gram-backdrop{z-index:60;position:fixed;inset:0}.gram-pop{z-index:61;background:#fff;border:1px solid #c4b5fd;border-radius:12px;max-height:min(70vh,520px);padding:.6rem .9rem .8rem;position:fixed;overflow:auto;box-shadow:0 12px 32px #0000002e}.gram-pop-head{background:#fff;justify-content:space-between;align-items:center;gap:.5rem;padding-top:.2rem;display:flex;position:sticky;top:-.6rem}.gram-pop-body{font-size:.95rem}.wp-actions{flex-shrink:0;align-items:flex-start;gap:.15rem;display:inline-flex}.save-word{display:inline-flex;position:relative}.save-word .btn.saved{color:#b45309;background:#fef3c7;border-color:#fcd34d}.save-menu{z-index:5;background:var(--card);border:1px solid var(--line);border-radius:10px;min-width:210px;padding:.45rem .6rem;position:absolute;top:100%;right:0;box-shadow:0 8px 22px #0f172a29}.save-row{cursor:pointer;align-items:center;gap:.4rem;padding:.2rem 0;font-size:.9rem;display:flex}.save-new{border-top:1px dashed var(--line);gap:.3rem;margin-top:.35rem;padding-top:.4rem;display:flex}.save-new input{flex:1;min-width:0;padding:.2rem .4rem;font-size:.85rem}.words-layout{grid-template-columns:230px 1fr;align-items:start;gap:1rem;display:grid}@media (width<=760px){.words-layout{grid-template-columns:1fr}}.words-lists{flex-direction:column;gap:.25rem;padding:.6rem;display:flex}.words-list-btn{text-align:left;cursor:pointer;font:inherit;color:inherit;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:.4rem;padding:.45rem .6rem;display:flex}.words-list-btn:hover{background:var(--primary-soft)}.words-list-btn.active{background:var(--primary-soft);border-color:var(--primary);font-weight:600}.words-toolbar{margin-bottom:.6rem}.words-search{width:100%;margin-bottom:.5rem}.words-items{margin:0;padding:0;list-style:none}.words-items li{border-top:1px solid var(--line);padding:.5rem .1rem}.words-term{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.words-term b{font-family:Georgia,serif;font-size:1.1rem}.words-streak{color:var(--muted);margin-left:auto;font-size:.78rem}.words-sent{margin-top:.15rem}.flash{flex-direction:column;gap:.8rem;display:flex}.flash-card{background:var(--card);border:2px solid var(--line);cursor:pointer;min-height:220px;font:inherit;color:inherit;text-align:center;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.2rem;display:flex;box-shadow:0 6px 18px #0f172a14}.flash-term{font-family:Georgia,serif;font-size:2rem;font-weight:700}.flash-zh{font-size:1.3rem}.flash-back{border-top:1px dashed var(--line);flex-direction:column;align-items:center;gap:.3rem;padding-top:.6rem;display:flex}.flash-actions{justify-content:center;gap:.6rem;display:flex}.flash-actions .btn{min-width:110px}.btn.good{background:var(--good);border-color:var(--good);color:#fff}.btn.bad{color:#fff;background:#dc2626;border-color:#dc2626}.flash-done{text-align:center;padding:1.5rem .5rem}.word-share{flex-direction:column;gap:.2rem;display:flex}.warn-text{color:var(--warn)}.error-text{color:var(--bad)}.speak-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem;margin-bottom:1.2rem;display:grid}.speak-card{text-align:left;cursor:pointer;font:inherit;color:inherit;flex-direction:column;gap:.3rem;transition:transform .1s,box-shadow .1s;display:flex}.speak-card:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #0f172a1a}.speak-card:disabled{opacity:.6;cursor:default}.speak-emoji{font-size:2rem}.speak-title{font-size:1.05rem;font-weight:700}.speak-goals{color:var(--muted);margin:.2rem 0 0;padding-left:1.1rem}.speak-lesson-row{flex-wrap:wrap;gap:.5rem;display:flex}.speak-lesson-row select{flex:200px;min-width:0}.speak-history td{vertical-align:middle}.speak-head{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.speak-layout{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:1rem;display:grid}@media (width<=820px){.speak-layout{grid-template-columns:1fr}.speak-side .avatar svg{width:64px;height:64px}}.speak-side{flex-direction:column;gap:.35rem;display:flex;position:sticky;top:76px}@media (width<=820px){.speak-side{position:static}}.speak-side h4{margin:.4rem 0 0}.speak-checklist{flex-direction:column;gap:.3rem;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.speak-checklist li{align-items:flex-start;gap:.4rem;display:flex}.speak-checklist li.met{color:var(--good)}.speak-opts{border-top:1px dashed var(--line);flex-direction:column;gap:.2rem;margin-top:.3rem;padding-top:.4rem;display:flex}.avatar{flex-direction:column;align-items:center;display:flex}.avatar-name{font-weight:700}.avatar .mouth{transform-origin:50px 57px}.avatar.talking .mouth{animation:.28s ease-in-out infinite alternate talk}.avatar.talking svg{filter:drop-shadow(0 0 6px #2563eb73)}@keyframes talk{0%{transform:scaleY(.6)}to{transform:scaleY(2.6)}}.speak-main{flex-direction:column;gap:.6rem;min-width:0;display:flex}.speak-chat{flex-direction:column;gap:.6rem;padding-bottom:.5rem;display:flex}.bubble-row{flex-direction:column;gap:.3rem;display:flex}.bubble-row.ai{align-items:flex-start}.bubble-row.me{align-items:flex-end}.bubble{border-radius:14px;max-width:min(560px,88%);padding:.55rem .8rem;font-size:1.02rem;line-height:1.45}.bubble.ai{background:var(--card);border:1px solid var(--line);border-top-left-radius:4px}.bubble.me{background:var(--primary);color:#fff;border-top-right-radius:4px}.bubble.typing{color:var(--muted);align-self:flex-start;font-style:italic}.bubble-who{color:var(--muted);font-size:.75rem;font-weight:600}.bubble-tools{flex-wrap:wrap;gap:.15rem;margin-top:.2rem;display:flex}.bubble-meta{opacity:.8;margin-top:.15rem;font-size:.72rem}.speak-hints{flex-wrap:wrap;gap:.3rem;margin-top:.3rem;display:flex}.speak-hints .chip{cursor:pointer;text-align:left}.feedback{border-radius:10px;flex-direction:column;gap:.25rem;max-width:min(560px,92%);padding:.45rem .7rem;font-size:.92rem;display:flex}.feedback.good{background:var(--good-soft);border:1px solid #bbf7d0}.feedback.fix{background:#fff7ed;border:1px solid #fed7aa}.fb-head{flex-wrap:wrap;justify-content:space-between;gap:.6rem;font-weight:600;display:flex}.fb-scores{color:var(--muted);font-size:.78rem;font-weight:400}.fb-line{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.shadow-res{width:100%;font-size:.9rem}.sw.ok{color:var(--good)}.sw.miss{color:var(--bad);-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.speak-input{background:var(--bg,#f8fafc);padding:.5rem 0 max(.5rem, env(safe-area-inset-bottom));position:sticky;bottom:0}.speak-input-row{align-items:center;gap:.5rem;display:flex}.speak-input-row input{flex:1;min-width:0;padding:.6rem .7rem;font-size:1rem}.mic-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;width:56px;height:56px;font-size:1.5rem;box-shadow:0 4px 12px #2563eb59}.mic-btn:disabled{box-shadow:none;cursor:default;background:#94a3b8}.mic-btn.on{background:#dc2626;animation:1.2s infinite pulse}.speak-result{text-align:center}.speak-score{color:var(--primary);font-size:3rem;font-weight:800}.speak-score span{font-size:1.1rem;font-weight:600}.speak-bars{flex-direction:column;gap:.35rem;max-width:360px;margin:.5rem auto;display:flex}.speak-bar{grid-template-columns:3em 1fr 1.5em;align-items:center;gap:.5rem;font-size:.9rem;display:grid}.speak-bar .bar{background:var(--line);border-radius:5px;height:10px;overflow:hidden}.speak-bar .bar div{background:var(--primary);height:100%}.speak-result .row-btns{justify-content:center}.speak-who{text-align:left;flex-direction:column;align-items:center;gap:.3rem;display:flex}.speak-situation{margin:.3rem 0 0}.speak-opts summary{cursor:pointer;color:var(--muted)}.speak-opts[open]{flex-direction:column;gap:.2rem;display:flex}@media (width<=820px){.speak-who{flex-direction:row;align-items:flex-start;gap:.7rem}.speak-checklist .tiny-text{display:none}.speak-side{gap:.25rem;padding:.7rem}}.viz{touch-action:pan-y;width:100%;margin:.4rem 0 .8rem;position:relative}.viz svg{display:block;overflow:visible}.viz-grid{stroke:var(--line);stroke-width:1px}.viz-base{stroke:#cbd5e1;stroke-width:1px}.viz-axis{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.viz-axis.strong{fill:var(--text);font-weight:600}.viz-hit{outline:none}.viz-hit.clickable{cursor:pointer}.viz-hit:hover path,.viz-hit:hover rect[fill^=var],.viz-hit:focus-visible path{filter:brightness(1.12)}.viz-sel{fill:var(--primary-soft);opacity:.7}.viz-title{margin:.8rem 0 0;font-size:.95rem}.viz-stats .stat-value{white-space:nowrap;font-size:1.45rem}@media (width<=600px){.viz-stats{grid-template-columns:repeat(2,1fr)}.viz-stats .stat-value{font-size:1.15rem}}.viz-legend{color:var(--muted);flex-wrap:wrap;gap:.3rem 1rem;display:flex}.viz-swatch{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:.35rem;display:inline-block}.viz-tip{z-index:5;pointer-events:none;background:var(--card);border:1px solid var(--line);white-space:nowrap;border-radius:10px;padding:.4rem .6rem;font-size:.85rem;position:absolute;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 4px 16px #0f172a1f}.viz-tip-title{color:var(--muted);font-size:.8rem}.viz-tip-row{align-items:center;gap:.4rem;display:flex}.viz-key{border-radius:2px;width:12px;height:3px;display:inline-block}.viz-key.none{background:0 0}.table .num{text-align:right;font-variant-numeric:tabular-nums}.key-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.4rem 0;display:flex}.key-row .input{flex:1;min-width:220px;font-family:ui-monospace,Consolas,monospace}.key-status{align-items:center;gap:.3rem;display:inline-flex}.child-pick{flex-wrap:wrap;gap:.3rem .9rem;margin-top:.3rem;display:flex}.users-toolbar .input:first-child{flex:200px;max-width:280px}.narrow-select{width:auto}.users-layout{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);align-items:start;gap:1rem;display:grid}@media (width<=1000px){.users-layout{grid-template-columns:1fr}.users-side{order:-1}}.users-list{overflow-x:auto}.table tr.clickable{cursor:pointer}.table tr.clickable:hover{background:var(--bg)}.table tr.selected{background:var(--primary-soft)}.role-badge{white-space:nowrap;border-radius:999px;padding:.05rem .5rem;font-size:.78rem;font-weight:600;display:inline-block}.role-badge.student{color:#1d4ed8;background:#dbeafe}.role-badge.parent{color:#9d174d;background:#fce7f3}.role-badge.teacher{color:#166534;background:#dcfce7}.role-badge.admin{color:#5b21b6;background:#ede9fe}.tag.warn-tag{background:var(--warn-soft);color:var(--warn)}.cred-card{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.cred{margin:.4rem 0;font-size:1.05rem}.cred code{border:1px solid var(--line);letter-spacing:.04em;background:#fff;border-radius:6px;padding:.1rem .45rem;font-size:1.1rem}.field-block{flex-direction:column;gap:.35rem;display:flex}.inline-check{align-items:center;gap:.35rem;flex-direction:row!important;display:flex!important}.user-edit h4{margin:.6rem 0 .3rem;font-size:.95rem}.user-edit .section{border-top:1px solid var(--line);margin-top:.9rem;padding-top:.4rem}.user-edit details.danger summary{color:var(--bad);cursor:pointer;margin:.4rem 0}.btn.danger-btn{background:var(--bad);color:#fff;border-color:var(--bad)}.btn.danger-btn:disabled{opacity:.45}.account .notice{margin-bottom:1rem}.teacher3d{flex-direction:column;align-items:center;width:100%;max-width:230px;display:flex}.teacher3d-canvas{aspect-ratio:1/1.05;background:radial-gradient(circle at 50% 35%,#eff6ff,#dbeafe 70%);border-radius:16px;width:100%;overflow:hidden}.teacher3d-canvas canvas{display:block;width:100%!important;height:100%!important}@media (width<=820px){.speak-side .teacher3d{max-width:120px}}.pron{border:1px solid var(--line);background:#f8fafc;border-radius:10px;align-self:flex-end;max-width:92%;margin:.15rem 0 .3rem;padding:.4rem .6rem}.fb-line .pron{align-self:auto;max-width:100%;margin-top:.4rem}.pron-scores{flex-wrap:wrap;gap:.2rem .8rem;font-size:.85rem;display:flex}.pron-words{flex-wrap:wrap;gap:.15rem .3rem;margin-top:.25rem;display:flex}.pw{font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 .1rem;font-size:.95rem}.pw.ok{color:var(--text)}.pw.warn-text{color:var(--warn);border-bottom-color:var(--warn)}.pw.error-text{color:var(--bad);border-bottom-color:var(--bad)}.pw.omit{color:var(--bad);text-decoration:line-through}.pw.insert{color:var(--muted);font-style:italic}.otp-input{letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums;font-size:1.4rem}.mfa-card{max-width:640px}.mfa-qr{border:1px solid var(--line);background:#fff;border-radius:10px;margin:.6rem 0;display:block}.mfa-secret{background:var(--bg);letter-spacing:.08em;border-radius:6px;margin:.3rem 0;padding:.2rem .5rem;display:inline-block}.recovery-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.4rem;margin:.5rem 0;display:grid}.recovery-grid code{background:var(--bg);border:1px solid var(--line);text-align:center;border-radius:6px;padding:.3rem;font-size:1rem}.check{cursor:pointer;align-items:flex-start;gap:.5rem;margin:.5rem 0;display:flex}.check input{margin-top:.35rem}.field>span{margin-bottom:.3rem;display:block}.field input[type=range]{width:100%;max-width:420px}.xp-pop{color:#b45309;background:#fef3c7;border-radius:999px;margin-left:.5rem;padding:0 .5rem;font-size:.9rem;font-weight:700;animation:.5s ease-out pop;display:inline-block}@keyframes pop{0%{opacity:0;transform:scale(.4)}70%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.adventure{background:linear-gradient(135deg,#eef2ff 0%,#fff7ed 100%);border-color:#c7d2fe}.adv-top{flex-wrap:wrap;align-items:center;gap:1rem 1.6rem;display:flex}.adv-level{flex:280px;align-items:center;gap:.8rem;display:flex}.lv-badge{color:#fff;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:50%;flex:none;place-items:center;width:64px;height:64px;font-size:1.05rem;font-weight:800;display:grid;box-shadow:0 3px 10px #6366f159}.adv-level-main{flex:1;min-width:0}.xp-bar{background:#e0e7ff;border-radius:999px;height:12px;margin:.3rem 0;overflow:hidden}.xp-bar>div{background:linear-gradient(90deg,#6366f1,#f59e0b);border-radius:999px;height:100%;transition:width .6s}.adv-streak{flex:220px;align-items:center;gap:.6rem;display:flex}.adv-streak .flame{filter:grayscale(.8);opacity:.7;font-size:2.2rem}.adv-streak.lit .flame{filter:none;opacity:1;animation:1.6s infinite alternate flicker}@keyframes flicker{0%{transform:scale(1)rotate(-3deg)}to{transform:scale(1.08)rotate(3deg)}}.adv-stats{flex-direction:column;gap:.1rem;display:flex}.quests{background:#ffffffb3;border-radius:12px;margin-top:.9rem;padding:.6rem .8rem}.quests-head{flex-wrap:wrap;justify-content:space-between;gap:.3rem;margin-bottom:.3rem;display:flex}.quest{color:var(--text);border-bottom:1px dashed var(--line);align-items:center;gap:.5rem;padding:.35rem .2rem;display:flex}.quest:last-child{border-bottom:0}.quest.done .quest-label{color:var(--muted);text-decoration:line-through}.quest-prog{color:var(--muted);white-space:nowrap;margin-left:auto}.today-tidbit{margin-bottom:1rem}.today-tidbit>.small{margin:0 0 .3rem .3rem}.tidbit{background:#fffbeb;border-left:5px solid #f59e0b}.tidbit.compact{margin:.8rem 0}.tidbit-story{background:#f5f3ff;border-left-color:#8b5cf6}.tidbit-joke{background:#fdf2f8;border-left-color:#ec4899}.tidbit-life{background:#ecfdf5;border-left-color:#10b981}.tidbit-guess{background:#eff6ff;border-left-color:#3b82f6}.tidbit-tip{background:#f8fafc;border-left-color:#64748b}.tidbit-head{color:var(--muted);align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;display:flex}.tidbit-title{margin:.2rem 0 .4rem;font-size:1.05rem;font-weight:700}.tidbit-body{animation:.35s ease-out pop}.tidbit-body p{margin:.4rem 0}.tidbit-options{flex-wrap:wrap;gap:.4rem;margin:.5rem 0;display:flex}.tidbit-options .btn.right{background:var(--good-soft);border-color:var(--good);color:var(--good)}.tidbit-options .btn.wrong{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}.tidbit-reveal{margin-top:.4rem}.fun-toast{z-index:60;cursor:pointer;background:#fff;border:2px solid #fbbf24;border-radius:16px;align-items:center;gap:.8rem;min-width:260px;max-width:92vw;padding:.8rem 1.2rem;animation:.45s ease-out drop;display:flex;position:fixed;top:70px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 10px 30px #00000026}@keyframes drop{0%{opacity:0;transform:translate(-50%,-30px)}to{opacity:1;transform:translate(-50%)}}.fun-toast-icon{font-size:2.2rem}.confetti{pointer-events:none;position:absolute;inset:0}.confetti span{font-size:1.1rem;animation:1.4s ease-in forwards fall;position:absolute;top:-10px}@keyframes fall{to{opacity:0;transform:translateY(90px)rotate(200deg)}}.break-overlay{z-index:55;background:#0f172a59;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.break-card{text-align:center;max-width:420px;animation:.4s ease-out pop}.break-icon{font-size:3rem}.break-tip{background:var(--good-soft);border-radius:10px;padding:.5rem}.break-timer{font-variant-numeric:tabular-nums;color:var(--good);font-size:2.6rem;font-weight:800}.break-card .row-btns{justify-content:center}.games-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.game-card .game-icon{font-size:2.4rem}.game-modes{flex-direction:column;gap:.5rem;display:flex}.mode-btn{text-align:left;flex-direction:column;align-items:flex-start;gap:.1rem;height:auto;padding:.55rem .8rem;display:flex}.mode-btn .best{color:#b45309;font-size:.8rem;font-weight:600}.game-head{flex-wrap:wrap;align-items:baseline;gap:.8rem;display:flex}.game-head h2{margin:.3rem 0 .6rem}.game-start{text-align:center}.countdown{min-height:40vh;color:var(--primary);place-items:center;font-size:5rem;font-weight:800;animation:.6s ease-out pop;display:grid}.sprint-play{text-align:center;max-width:480px;margin:0 auto;transition:background .2s}.sprint-play.right{background:var(--good-soft)}.sprint-play.wrong{background:var(--bad-soft);animation:.3s shake}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.sprint-bar{justify-content:space-between;font-size:1.2rem;font-weight:700;display:flex}.sprint-bar .timer.hurry{color:var(--bad);animation:.5s infinite alternate flicker}.sprint-q{min-height:3.2rem;margin:1rem 0 .5rem;font-size:2rem}.sprint-input{border-bottom:3px solid var(--primary);font-variant-numeric:tabular-nums;max-width:220px;min-height:3rem;margin:0 auto .8rem;font-size:2rem;font-weight:700}.keypad{grid-template-columns:repeat(3,1fr);gap:.45rem;display:grid}.keypad .key{min-height:56px;font-size:1.4rem;font-weight:700}.keypad .skip,.keypad .enter{font-size:1.05rem}.keypad .enter{grid-column:span 2}.game-over{flex-wrap:wrap;align-items:center;gap:1.5rem;display:flex}.game-over .missed{border-top:1px dashed var(--line);flex-basis:100%;padding-top:.5rem}.match-grid{grid-template-columns:repeat(4,1fr);gap:.6rem;max-width:720px;margin:0 auto 1rem;display:grid}@media (width<=560px){.match-grid{grid-template-columns:repeat(3,1fr)}}.match-card{aspect-ratio:4/3;color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:2px solid #c7d2fe;border-radius:14px;place-items:center;padding:.3rem;font-size:1.6rem;transition:transform .25s,background .25s;display:grid}.match-card.up{color:var(--text);background:#fff;font-size:1.05rem;transform:rotateY(360deg)}.match-card.matched{background:var(--good-soft);border-color:var(--good);opacity:.85;cursor:default}.match-card .en{font-size:1.15rem;font-weight:700}.match-card .zh{font-size:1.1rem}.match-inner{overflow-wrap:anywhere}.map-page .toolbar{flex-wrap:wrap;align-items:center;gap:.8rem;margin-bottom:.4rem;display:flex}.map-page .toolbar select{max-width:100%}.island{background:linear-gradient(#ecfeff,#f0fdf4);border-color:#a5f3fc}.island-1{background:linear-gradient(#fef9c3,#fff7ed);border-color:#fde68a}.island-2{background:linear-gradient(#ede9fe,#fdf2f8);border-color:#ddd6fe}.island-3{background:linear-gradient(#e0f2fe,#f0f9ff);border-color:#bae6fd}.path{flex-wrap:wrap;align-items:flex-start;gap:.4rem .9rem;padding-bottom:.4rem;display:flex}.node{cursor:pointer;width:92px;color:var(--text);background:0 0;border:0;flex-direction:column;align-items:center;padding:0;display:flex}.node-dot{background:#fff;border:3px solid #94a3b8;border-radius:50%;place-items:center;width:52px;height:52px;font-size:.9rem;font-weight:700;display:grid}.node.cleared .node-dot{background:#fffbeb;border-color:#f59e0b}.node.next .node-dot{border-color:var(--primary);animation:1.2s infinite alternate flicker;box-shadow:0 0 0 5px #2563eb33}.node-stars{color:#f59e0b;letter-spacing:1px;font-size:.95rem}.node-stars .dim{color:#cbd5e1}.node-stars.big{font-size:1.8rem}.node-title{text-align:center;color:var(--muted);max-height:2.6em;font-size:.75rem;line-height:1.25;overflow:hidden}.map-result{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.3rem;font-weight:600;display:flex}.league .board{margin:0;padding:0;list-style:none}.board li{border-bottom:1px dashed var(--line);align-items:center;gap:.6rem;padding:.5rem .4rem;display:flex}.board li.me{background:var(--primary-soft);border-radius:10px;font-weight:600}.board li.ai .who{color:#475569}.board .rank{text-align:center;width:2rem;font-weight:700}.board .who{flex:1;min-width:0}.board .pts{font-variant-numeric:tabular-nums;white-space:nowrap}.tag.ai-tag{color:#64748b;background:#f1f5f9;margin-left:.3rem}.week-bars{align-items:flex-end;gap:.4rem;height:120px;margin:.6rem 0;display:flex}.wb{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex}.wb-bar{background:#c7d2fe;border-radius:6px 6px 0 0;width:100%;min-height:2px}.wb.now .wb-bar{background:linear-gradient(#6366f1,#f59e0b)}.wb .small{white-space:nowrap;font-size:.7rem}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem;display:grid}.badge-card{text-align:center;border:1px solid var(--line);background:var(--card);filter:grayscale();opacity:.55;border-radius:14px;padding:.8rem .5rem}.badge-card.got{filter:none;opacity:1;background:#fffbeb;border-color:#fbbf24}.badge-icon{font-size:2.2rem}.match-card .katex{font-size:1.35em}:root{--top-gap:var(--topbar-h,60px)}body.bar-hide{--top-gap:0px}.topbar{transition:transform .25s}.quiz-page{font-size:calc(1rem * var(--lesson-fs,1))}.lesson .block,.lesson .events,.lesson .result{zoom:var(--lesson-fs,1)}.rb-more-btn{display:none}.btn.rb-more-btn.on{background:var(--primary-soft);color:var(--primary)}.layout-pop-wrap{display:inline-block;position:relative}.layout-pop{z-index:40;width:min(320px,88vw);margin:0;font-size:1rem;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 30px #0000002e}.layout-pop .field{margin-bottom:.6rem}.layout-pop input[type=range]{width:100%}.quiz-head .layout-pop-wrap{margin-left:auto}.quiz-head .layout-pop{left:auto;right:0}.zoom-box{touch-action:pan-y;border-radius:10px;position:relative;overflow:hidden}.zoom-box.zoomed{touch-action:none;cursor:grab}.zoom-content{transform-origin:0 0}.zoom-tools{z-index:2;gap:4px;display:flex;position:absolute;top:6px;right:6px}.zoom-btn{border:1px solid var(--line);min-width:34px;height:34px;color:var(--text);font:inherit;cursor:pointer;background:#ffffffeb;border-radius:17px;padding:0 6px;font-size:.95rem;box-shadow:0 2px 6px #0000001f}img.fig{cursor:zoom-in}.lightbox{z-index:400;background:#0f172ae6;flex-direction:column;justify-content:center;align-items:center;padding:52px 8px 10px;display:flex;position:fixed;inset:0}.lightbox-body{background:#fff;border-radius:12px;width:min(100%,1100px);overflow:hidden}.lightbox-body .zoom-box{border-radius:12px}.lightbox-body figure.geo{align-items:stretch;margin:0}.lightbox-body .geo-svg{border:0;width:100%;height:auto;max-height:calc(100dvh - 100px)}.lightbox-img{max-width:100%;max-height:calc(100dvh - 100px);margin:0 auto;display:block}.lightbox-close{cursor:pointer;background:#fff;border:0;border-radius:50%;width:40px;height:40px;font-size:1.2rem;position:absolute;top:8px;right:10px}.lightbox-hint{color:#cbd5e1;margin-top:6px;font-size:.8rem}@media (width<=700px),(height<=560px){body.bar-hide .topbar{transform:translateY(-100%)}.lesson-next{padding:.3rem 0;padding-bottom:max(.3rem, env(safe-area-inset-bottom));gap:.5rem}.lesson-next .btn{min-height:40px}.lesson-next .btn.big{padding:.3rem 1.1rem;font-size:1rem}.lesson-next .lbl{display:none}.narr-bar{padding:.45rem 2.7rem .45rem .6rem;bottom:58px}.narr-caption{max-height:3em;margin-bottom:.25rem;font-size:.92rem;overflow:auto}.narr-controls{flex-wrap:nowrap;gap:.4rem;padding-bottom:2px;overflow-x:auto}.narr-controls>*{flex:none}.narr-sub{bottom:58px}.submit-bar{padding:.3rem .6rem;padding-bottom:max(.3rem, env(safe-area-inset-bottom));flex-wrap:nowrap;gap:.5rem}.submit-bar .dots{flex-wrap:nowrap;min-width:0;overflow-x:auto}.submit-bar .dots a{flex:none;width:30px;height:30px}.submit-bar .btn.big{min-height:40px;padding:.3rem 1rem;font-size:1rem}.submit-bar .answered-count{display:none}.quiz-clock{white-space:nowrap;padding:.15rem .45rem;font-size:.9rem}.rb-more-btn{display:inline-flex}.layout-pop,.quiz-head .layout-pop{left:50%;right:auto;top:calc(var(--top-gap) + 10px);position:fixed;transform:translate(-50%)}.reading-bar{gap:.4rem;padding:.35rem 0}.reading-bar:not(.more) .rb-extra{display:none}}@media (height<=560px){.topbar{padding-top:.25rem;padding-bottom:.25rem}.lesson-head h2{font-size:1.25rem}}.rec-play{margin-left:.4rem}.child-speak .speak-transcript{border-top:1px dashed var(--line);margin-top:.8rem;padding-top:.8rem}.child-speak .transcript-head{flex-direction:column;gap:.3rem;margin-bottom:.6rem;display:flex}.child-speak .speak-chat{max-height:none}.child-speak tr.selected td{background:var(--primary-soft)}.event-banner{color:#92400e;background:linear-gradient(90deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:12px;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.6rem 1rem;display:flex}.event-emoji{font-size:1.5rem}.event-row{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.4rem;display:flex}.event-row .input{width:auto}.team-card{background:linear-gradient(135deg,#ecfeff,#f0fdf4);border-color:#99f6e4}.team-card.done{background:linear-gradient(135deg,#dcfce7,#fef9c3);border-color:#86efac}.spell-play,.numline-play,.graph-play{max-width:760px;margin:0 auto;transition:background .2s}.spell-play.ok{background:var(--good-soft)}.spell-play.fail{background:var(--bad-soft)}.spell-sound{justify-content:center;margin-top:0}.spell-hint{text-align:center;margin:.8rem 0 .4rem;font-size:1.1rem}.spell-blanks{flex-wrap:wrap;justify-content:center;gap:.3rem;margin:.6rem 0;display:flex}.spell-blanks .blank{border-bottom:3px solid var(--primary);text-align:center;width:1.8rem;height:2.2rem;font-size:1.4rem;font-weight:700}.spell-input{text-align:center;letter-spacing:.08em;max-width:360px;margin:0 auto;font-size:1.4rem;display:block}.spell-play .row-btns{justify-content:center}.spell-say{text-align:center;margin-top:.6rem;font-size:1.1rem}.spell-say .mic-on{color:var(--primary);font-weight:700;animation:1s infinite alternate flicker}.spell-say-toggle{cursor:pointer;align-items:center;gap:.3rem;margin-left:auto;display:inline-flex}.numline-q{text-align:center;margin-bottom:.4rem;font-size:1.5rem}.numline-svg{touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;background:#f8fafc;border-radius:12px;width:100%;height:auto}.nl-axis{stroke:#334155;stroke-width:3px}.nl-tick{stroke:#334155;stroke-width:2px}.nl-label{fill:#334155;font-size:18px}.nl-guess{fill:var(--primary)}.nl-true{fill:var(--good);stroke:#fff;stroke-width:2px}.nl-small{fill:var(--primary);font-size:14px;font-weight:700}.nl-small.true{fill:var(--good)}.numline-play .row-btns{justify-content:center;align-items:center}.graph-q{text-align:center;margin-bottom:.6rem;font-size:1.3rem}.fg-grid-4{grid-template-columns:repeat(4,1fr);gap:.6rem;display:grid}@media (width<=700px){.fg-grid-4{grid-template-columns:repeat(2,1fr)}}.fg-choice{border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;padding:.3rem;position:relative}.fg-choice:hover{border-color:var(--primary)}.fg-choice.right{border-color:var(--good);background:var(--good-soft)}.fg-choice.wrong{border-color:var(--bad);background:var(--bad-soft)}.fg-label{color:var(--muted);font-weight:700;position:absolute;top:4px;left:8px}.fg-svg{width:100%;height:auto;display:block}.fg-grid{stroke:#eef2f7;stroke-width:.5px}.fg-axis{stroke:#94a3b8;stroke-width:.8px}.fg-curve{fill:none;stroke:#2563eb;stroke-width:1.8px;stroke-linejoin:round;stroke-linecap:round}.fg-tex{font-size:.85rem;display:block}.monster-intro p{margin-top:0}.monster-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.7rem;display:grid}.monster-card{text-align:center;background:#faf5ff;border:2px solid #ddd6fe;border-radius:16px;padding:.7rem .5rem}.monster-card.lv3,.monster-card.lv4{background:#fff1f2;border-color:#fecdd3}.monster-card.lv5{background:#fef2f2;border-color:#fca5a5}.monster-face{font-size:2.6rem;animation:2.4s infinite alternate flicker}.monster-hp{letter-spacing:2px}.monster-text{color:var(--muted);max-height:3.9em;overflow:hidden}.live-code-input{text-align:center;letter-spacing:.3em;width:8rem;font-size:2rem}.live-top{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.live-center{text-align:center}.live-code{letter-spacing:.25em;color:var(--primary);font-size:4.5rem;font-weight:800}.live-players{flex-wrap:wrap;justify-content:center;gap:.4rem;margin:1rem 0;display:flex}.live-players .chip.me{background:var(--primary-soft)}.live-timer{background:#e2e8f0;border-radius:13px;height:26px;margin-bottom:.8rem;position:relative;overflow:hidden}.live-timer div{background:linear-gradient(90deg,#22c55e,#f59e0b);height:100%;transition:width 1s linear}.live-timer span{place-items:center;font-size:.85rem;font-weight:700;display:grid;position:absolute;inset:0}.live-stem{margin-bottom:.8rem;font-size:1.2rem}.live-room.host .live-stem{font-size:1.5rem}.live-options{grid-template-columns:repeat(2,1fr);gap:.6rem;display:grid}@media (width<=560px){.live-options{grid-template-columns:1fr}}.live-opt{color:#fff;min-height:72px;font:inherit;text-align:left;cursor:pointer;border:0;border-radius:14px;align-items:center;gap:.6rem;padding:.6rem .9rem;font-size:1.1rem;display:flex;box-shadow:0 4px #0000002e}.live-opt:disabled{cursor:default}.live-opt.red{background:#e11d48}.live-opt.blue{background:#2563eb}.live-opt.yellow{background:#d97706}.live-opt.green{background:#16a34a}.live-opt.purple{background:#7c3aed}.live-opt.dim{opacity:.35}.live-opt.right{outline:4px solid #facc15}.live-opt.mine{box-shadow:0 0 0 4px #0f172a}.live-opt .shape{font-size:1.5rem}.live-opt-text{flex:1}.live-opt .katex{color:#fff}.live-count{background:#0003;border-radius:10px;padding:0 .5rem;font-weight:700}.live-fill{text-align:center;justify-content:center;margin:.6rem 0;font-size:1.2rem}.live-fill-input{text-align:center;max-width:16rem;font-size:1.4rem}.live-fill-answer{margin-bottom:.3rem;font-size:1.6rem}.live-fill .chip.good{color:#15803d;cursor:default;background:#f0fdf4;border-color:#16a34a}.live-fill .chip.bad{color:#b91c1c;cursor:default;background:#fef2f2;border-color:#fca5a5}.live-wait,.live-result{text-align:center;margin:.8rem 0;font-size:1.3rem;font-weight:700}.live-rank{margin-top:.8rem}.podium{justify-content:center;align-items:flex-end;gap:.6rem;margin:1rem 0;display:flex}.podium-step{background:#e0e7ff;border-radius:12px 12px 0 0;width:120px;padding:.6rem .3rem}.podium-step.p1{background:#fef3c7;order:2;min-height:170px}.podium-step.p2{order:1;min-height:130px}.podium-step.p3{background:#ffedd5;order:3;min-height:100px}.podium-medal{font-size:2rem}.outfit-card{grid-template-columns:220px 1fr;align-items:center;gap:1rem;display:grid}@media (width<=600px){.outfit-card{grid-template-columns:1fr}}.outfit-preview{width:100%;max-width:220px;margin:0 auto}.outfit-items{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.5rem;display:grid}.outfit-item{border:2px solid var(--line);font:inherit;cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:.1rem;padding:.5rem;display:flex}.outfit-item.on{border-color:var(--primary);background:var(--primary-soft)}.outfit-item:disabled{opacity:.55;cursor:default}.outfit-icon{font-size:1.8rem}.fg-num text{fill:#64748b;font-size:5px}.bubble.me .rec-play{color:#fff;background:#ffffff2e;border:1px solid #ffffff8c}.bubble.me .rec-play:hover{background:#ffffff4d}.mindmap{border:1px solid var(--line);background:#fff;border-radius:14px;margin:.6rem 0;padding:.8rem}.mm-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.mm-root{background:var(--primary);color:#fff;border-radius:999px;padding:.35rem .9rem;font-size:1.15rem;font-weight:800}.mm-branches{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.6rem;margin-top:.7rem;display:grid}.mm-branch{border:2px solid;border-radius:12px;padding:.5rem .7rem}.mm-title{margin-bottom:.2rem;font-weight:800}.mm-branch ul{margin:.2rem 0 0;padding-left:1rem}.mm-branch li{margin:.15rem 0;list-style:none;position:relative}.mm-branch li:before{content:"";border-top:1px solid #cbd5e1;width:.5rem;position:absolute;top:.75em;left:-.75rem}.mm-node.hidden{text-align:center;cursor:pointer;color:#64748b;background:#f1f5f9;border:1px dashed #94a3b8;border-radius:6px;min-width:2.5rem;display:inline-block}.mindmap.recall .mm-node:not(.hidden){background:#fef9c3;border-radius:4px}.events h3{margin-top:0}.events-list{gap:.7rem;display:grid}.event-card{border:1px solid var(--line);background:#fff;border-left:4px solid #2a78d6;border-radius:10px;padding:.6rem .8rem}.event-card.world{border-left-color:#16a34a}.event-meta{align-items:center;gap:.5rem;margin-bottom:.2rem;display:flex}.event-q{background:#fffbeb;border-radius:8px;margin:.4rem 0;padding:.4rem .6rem}.event-a{color:#334155;margin-top:.3rem}.yt-list{gap:.7rem;margin:.5rem 0;display:grid}.yt-item{grid-template-columns:minmax(160px,260px) 1fr;align-items:center;gap:.7rem;display:grid}.yt-item:has(.yt-frame){grid-template-columns:1fr}@media (width<=560px){.yt-item{grid-template-columns:1fr}}.yt-thumb{cursor:pointer;aspect-ratio:16/9;background:#000;border:0;border-radius:10px;padding:0;position:relative;overflow:hidden}.yt-thumb img{object-fit:cover;opacity:.92;width:100%;height:100%;display:block}.yt-play{color:#fff;text-shadow:0 2px 8px #0009;place-items:center;font-size:2rem;display:grid;position:absolute;inset:0}.yt-frame{aspect-ratio:16/9;width:100%;position:relative}.yt-frame iframe{border:0;border-radius:10px;width:100%;height:100%;position:absolute;inset:0}.yt-meta{flex-direction:column;gap:.2rem;display:flex}.step-list.walk{padding-left:0;list-style:none}.step-list.walk>li{border-left:3px solid #c7d2fe;margin:8px 0;padding-left:10px}.step-list.walk>li:last-child{border-left-color:#6366f1}.step-list>li.pickable{cursor:pointer;border-radius:6px}.step-list>li.pickable:hover{background:#eef2ff}.step-list>li.picked{background:#e0e7ff;box-shadow:inset 3px 0 #6366f1}.lesson .md img.fig.native{max-width:calc(100% * var(--lesson-fs,1))}.lesson .md p:has(>img.fig.native){overflow-x:auto}.lesson .block{scroll-margin-top:calc(var(--top-gap,0px) + 10px)}
