lookatstudy-mobile 0.29.0 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/package.json +1 -1
  2. package/server.cjs +3988 -2438
  3. package/web/assets/{CanvasStage-Dq2wdZKr.js → CanvasStage-Cyt4NB7v.js} +1 -1
  4. package/web/assets/{CommandPalette-DqtWHrZ_.js → CommandPalette-maHlqYwL.js} +1 -1
  5. package/web/assets/CompanionBotLab-BjbCeiRW.js +8 -0
  6. package/web/assets/{CourseSearchPanel-DBjYkxhm.js → CourseSearchPanel-wyjGWBGr.js} +1 -1
  7. package/web/assets/{ExamView-Bg5qpDwB.js → ExamView-BoGgfcwj.js} +1 -1
  8. package/web/assets/{ReviewPanel-1vuAQ6Yn.js → ReviewPanel-BxY2T_Ut.js} +1 -1
  9. package/web/assets/SettingsView-CdxkxEkP.js +10 -0
  10. package/web/assets/{VoicePanel-DcMIC_Yl.js → VoicePanel-BzRCM6vH.js} +1 -1
  11. package/web/assets/{abnfDiagram-N423BO3Z-C5VD7Qab.js → abnfDiagram-N423BO3Z-iXwATPSN.js} +1 -1
  12. package/web/assets/{abnfDiagram-VCTEODGH-ODA7YWAP-CL_npDp5.js → abnfDiagram-VCTEODGH-ODA7YWAP-C1yAT6qh.js} +1 -1
  13. package/web/assets/alien-body-DXq5WJRs.png +0 -0
  14. package/web/assets/alien-happy-Ci3JfpxD.png +0 -0
  15. package/web/assets/alien-head-CS10QxqG.png +0 -0
  16. package/web/assets/alien-idle-D2VKjYsl.png +0 -0
  17. package/web/assets/alien-keyL-C_tZriGQ.png +0 -0
  18. package/web/assets/alien-thinking-gWKA2xDz.png +0 -0
  19. package/web/assets/api-web-BCzlfr07.js +1 -0
  20. package/web/assets/{architectureDiagram-5GKGNRK7-C4PU3XN7-DH1p49kR.js → architectureDiagram-5GKGNRK7-C4PU3XN7-NvY1Ic-5.js} +1 -1
  21. package/web/assets/{architectureDiagram-T3A2C74G-D_5zlOmR.js → architectureDiagram-T3A2C74G-DwrvQJhj.js} +1 -1
  22. package/web/assets/{arrow-right-1FDHm4LE.js → arrow-right-33rr0pBZ.js} +1 -1
  23. package/web/assets/{blockDiagram-NRAW4CY4-UMJ6PMQQ-D2x_ORlm.js → blockDiagram-NRAW4CY4-UMJ6PMQQ-DsNh9SAm.js} +1 -1
  24. package/web/assets/{blockDiagram-VBNYF7ZC-CsxakDyn.js → blockDiagram-VBNYF7ZC-BX4qMKoE.js} +1 -1
  25. package/web/assets/{c4Diagram-5PPSVZJV-h6rS5Wdw.js → c4Diagram-5PPSVZJV-wjiwvuPV.js} +1 -1
  26. package/web/assets/{c4Diagram-UCG6FXSJ-75X3U2P3-qy1Qklej.js → c4Diagram-UCG6FXSJ-75X3U2P3-Df4YtSzV.js} +1 -1
  27. package/web/assets/channel-D9baWZnV.js +1 -0
  28. package/web/assets/{chunk-2GRJ4B5K-CtMZR-aK.js → chunk-2GRJ4B5K-BqUg5toN.js} +1 -1
  29. package/web/assets/{chunk-2Q5K7J3B-DYOwGMp2.js → chunk-2Q5K7J3B-D2YxB7H3.js} +1 -1
  30. package/web/assets/{chunk-5RXB4S5H-C_cYDrVr.js → chunk-5RXB4S5H-zfO8batT.js} +1 -1
  31. package/web/assets/{chunk-5VM5RSS4-BY3B5X_h.js → chunk-5VM5RSS4-CdfFIz--.js} +1 -1
  32. package/web/assets/{chunk-6Q2QTUOP-deEEiHfo.js → chunk-6Q2QTUOP-c0FQ_SfU.js} +1 -1
  33. package/web/assets/{chunk-7XDTSPCN-B2NAuEnN.js → chunk-7XDTSPCN-BBCpJUAH.js} +1 -1
  34. package/web/assets/{chunk-CTNIYPP6-DFPMCA_k.js → chunk-CTNIYPP6-DW2rJhu_.js} +1 -1
  35. package/web/assets/{chunk-CXNFBKHE-Yg1W3fwo.js → chunk-CXNFBKHE-renpw2QE.js} +1 -1
  36. package/web/assets/{chunk-GF5L2VYU-BaSh6M6u.js → chunk-GF5L2VYU-DiF8ZWcT.js} +1 -1
  37. package/web/assets/{chunk-ISA7TJRJ-CQ2Nqv8l.js → chunk-ISA7TJRJ-DhN-xjNX.js} +1 -1
  38. package/web/assets/{chunk-JWPE2WC7-D0DWY89F.js → chunk-JWPE2WC7-smESCI0k.js} +1 -1
  39. package/web/assets/{chunk-KBJHAD2P-DMDP7q8j.js → chunk-KBJHAD2P-CLazgX1V.js} +1 -1
  40. package/web/assets/{chunk-LV3HUYFY-BMeLji8S.js → chunk-LV3HUYFY-DTGGOw_N.js} +1 -1
  41. package/web/assets/{chunk-M3IUQBOH-BVlj6Eqc.js → chunk-M3IUQBOH-Cp2xYH3K.js} +1 -1
  42. package/web/assets/{chunk-NDIOYS4C-D3FhOl3h.js → chunk-NDIOYS4C-B_iYUPk5.js} +1 -1
  43. package/web/assets/{chunk-RE4WF27V-CFSQbNEQ.js → chunk-RE4WF27V-DFrNGxeZ.js} +1 -1
  44. package/web/assets/{chunk-RYQCIY6F-DVJNwovK.js → chunk-RYQCIY6F-CXmfoCP1.js} +1 -1
  45. package/web/assets/{chunk-VII2H2IX-vrnvWjsK.js → chunk-VII2H2IX-CTIhHlIp.js} +1 -1
  46. package/web/assets/{chunk-X5GNSKZ3-SfQJru3P.js → chunk-X5GNSKZ3-BnL2P09p.js} +1 -1
  47. package/web/assets/{chunk-XCWWM2C3-r79j1d9V.js → chunk-XCWWM2C3-B3diWYxV.js} +1 -1
  48. package/web/assets/{chunk-XXDRQBXY-B1rrO-gc.js → chunk-XXDRQBXY-Cm9DsbCI.js} +1 -1
  49. package/web/assets/classDiagram-DTDB5LWJ-LWRDKZ5K-CiuZ0TyW.js +1 -0
  50. package/web/assets/classDiagram-JCYQIIEL-DJMqLmfy.js +1 -0
  51. package/web/assets/classDiagram-v2-JRS7N3AN-2BZHGRP2-CiuZ0TyW.js +1 -0
  52. package/web/assets/classDiagram-v2-OCEON4UE-DJMqLmfy.js +1 -0
  53. package/web/assets/{core-wTL1qSGc.js → core-CnhTLa0G.js} +1 -1
  54. package/web/assets/{cose-bilkent-JH36ORCC-DGcoHSZ_.js → cose-bilkent-JH36ORCC-B1ZJcbUV.js} +1 -1
  55. package/web/assets/{cose-bilkent-JH36ORCC-OB24KH3T-kShPGIym.js → cose-bilkent-JH36ORCC-OB24KH3T-BJpRu0cc.js} +1 -1
  56. package/web/assets/{cynefin-OW5HDTMX-GVF3BKWE-Ds0yCd6_.js → cynefin-OW5HDTMX-GVF3BKWE-CLl32jOg.js} +1 -1
  57. package/web/assets/{cynefin-VYW2F7L2-C3IZdtFW.js → cynefin-VYW2F7L2-BFZHy-wK.js} +1 -1
  58. package/web/assets/{cynefinDiagram-5FMLGOSQ-H3WIRU3N-BTl4NoCi.js → cynefinDiagram-5FMLGOSQ-H3WIRU3N-BpmHF9Wo.js} +1 -1
  59. package/web/assets/{cynefinDiagram-MW4NZA55-BvMjk6XA.js → cynefinDiagram-MW4NZA55-BECq_tlH.js} +1 -1
  60. package/web/assets/{dagre-3AP2YEHR-DCERTXHT-BB-hLQyC.js → dagre-3AP2YEHR-DCERTXHT-DIUrMTsj.js} +1 -1
  61. package/web/assets/{dagre-VZM6K2ZE-CDxP66T0.js → dagre-VZM6K2ZE-D-oITinM.js} +1 -1
  62. package/web/assets/{diagram-7IWD3JNH-DQN4-CRn.js → diagram-7IWD3JNH-07yeFgf1.js} +1 -1
  63. package/web/assets/{diagram-B4RE2ZJO-C7hbA9dK.js → diagram-B4RE2ZJO-dNtQBNGN.js} +1 -1
  64. package/web/assets/{diagram-LBJQPF4R-BCGM86dA.js → diagram-LBJQPF4R-BoiQEUHl.js} +1 -1
  65. package/web/assets/{diagram-Q27KOJAE-DCaK1iW8.js → diagram-Q27KOJAE-Bi0oJVBH.js} +1 -1
  66. package/web/assets/{diagram-S7CK7UJ4-MULGZGEL-DzWi84_h.js → diagram-S7CK7UJ4-MULGZGEL-Bpt08-bP.js} +1 -1
  67. package/web/assets/{diagram-UB23O5K3-DZ04kUs6.js → diagram-UB23O5K3-FLVFr6Cc.js} +1 -1
  68. package/web/assets/{diagram-UQ7AKVKN-YQBY353J-W85cspPM.js → diagram-UQ7AKVKN-YQBY353J-DORAQMoA.js} +1 -1
  69. package/web/assets/{diagram-VSXAHHWV-WLNH2ELY-DModU8jF.js → diagram-VSXAHHWV-WLNH2ELY-Ce82dDi6.js} +1 -1
  70. package/web/assets/{diagram-VX7I27RA-XW6YQV5G-BUmqoJ8g.js → diagram-VX7I27RA-XW6YQV5G-D-fdo9DM.js} +1 -1
  71. package/web/assets/{diagram-Z3DM3KII-HG7RF65D-CXk2ODaz.js → diagram-Z3DM3KII-HG7RF65D-ZqMt25Js.js} +1 -1
  72. package/web/assets/{ebnfDiagram-BXEA7PRR-CEoZqJ-V.js → ebnfDiagram-BXEA7PRR-R3UwRAR7.js} +1 -1
  73. package/web/assets/{ebnfDiagram-PWID7BFC-OKY4VHYD-Dzu6ZDrN.js → ebnfDiagram-PWID7BFC-OKY4VHYD-DDVM1P1I.js} +1 -1
  74. package/web/assets/{elk.bundled-COEZiBRU.js → elk.bundled-Dv5OJ-BO.js} +1 -1
  75. package/web/assets/{erDiagram-JOGREHBK-BmILFMWA.js → erDiagram-JOGREHBK-Dr_g_g8q.js} +1 -1
  76. package/web/assets/{erDiagram-SSCWMZ5O-PIPKOIK7-B4oczGiR.js → erDiagram-SSCWMZ5O-PIPKOIK7-CxTLMFn2.js} +1 -1
  77. package/web/assets/{flowDiagram-A5DVABFB-2Z4AVO5R-BJpt7J-f.js → flowDiagram-A5DVABFB-2Z4AVO5R-DRUX3zZ5.js} +1 -1
  78. package/web/assets/{flowDiagram-UKHOOZJN-sNKhDSYk.js → flowDiagram-UKHOOZJN-BEX6wJhw.js} +1 -1
  79. package/web/assets/{ganttDiagram-EL5Y4UJY-JZNG7GOG-jHxWsY2l.js → ganttDiagram-EL5Y4UJY-JZNG7GOG-DjG0obYU.js} +1 -1
  80. package/web/assets/{ganttDiagram-PKOTCBZU-CIvreUyH.js → ganttDiagram-PKOTCBZU-D-5FV0PV.js} +1 -1
  81. package/web/assets/{gitGraphDiagram-DS77QQ5N-QPUifLjg.js → gitGraphDiagram-DS77QQ5N-DF-LawNi.js} +1 -1
  82. package/web/assets/{gitGraphDiagram-WWUBYQGX-DMWMLL3G-DGvPUMhX.js → gitGraphDiagram-WWUBYQGX-DMWMLL3G-D70uly9x.js} +1 -1
  83. package/web/assets/{index-CjNzQ55O.js → index-CApU5KjU.js} +1 -1
  84. package/web/assets/index-CvvLDKMx.css +1 -0
  85. package/web/assets/index-DZN4z5wF.js +53 -0
  86. package/web/assets/{index-BxLho61N.js → index-DawWPxKA.js} +4 -4
  87. package/web/assets/{index-CmpHIw1L.js → index-X3hjUtR3.js} +2 -2
  88. package/web/assets/{infoDiagram-6WML65LV-BvqYNw0x.js → infoDiagram-6WML65LV-w8kz4hEa.js} +1 -1
  89. package/web/assets/{infoDiagram-RXCK75RN-HANS5KVC-DO2NvaI1.js → infoDiagram-RXCK75RN-HANS5KVC-C1PHC-YD.js} +1 -1
  90. package/web/assets/{ishikawaDiagram-5VMMS53U-7GCIT7WU-CVL1v7OU.js → ishikawaDiagram-5VMMS53U-7GCIT7WU-BrPFk2Ox.js} +1 -1
  91. package/web/assets/{ishikawaDiagram-WSZJBQD7-D4XaWMZW.js → ishikawaDiagram-WSZJBQD7-C34Z0ADb.js} +1 -1
  92. package/web/assets/{journeyDiagram-EYS64GPL-OAPELBT7-0oEbsgNG.js → journeyDiagram-EYS64GPL-OAPELBT7-CVn7FA19.js} +1 -1
  93. package/web/assets/{journeyDiagram-NVQOT4AX-DP6VJFGd.js → journeyDiagram-NVQOT4AX-B6wtGi4C.js} +1 -1
  94. package/web/assets/{kanban-definition-27J2QSJJ-btLuAw0g.js → kanban-definition-27J2QSJJ-Cauno8t4.js} +1 -1
  95. package/web/assets/{kanban-definition-3QL26DDD-I7RKWQQY-_XLSoV7u.js → kanban-definition-3QL26DDD-I7RKWQQY-DSkHnZWn.js} +1 -1
  96. package/web/assets/{katex-N6JRN4PM-BE1dE_-f.js → katex-N6JRN4PM-7jQy_F2_.js} +1 -1
  97. package/web/assets/{main-BFF415LN.js → main-CmJlqSDk.js} +130 -106
  98. package/web/assets/{mermaid-layout-elk.core-D_WjF9V9.js → mermaid-layout-elk.core-h_IjwDpP.js} +2 -2
  99. package/web/assets/{mermaid.core-DnUfrtbG.js → mermaid.core-n1vgOa_E.js} +4 -4
  100. package/web/assets/{mindmap-definition-FAOFIHXS-BoOBw8cr.js → mindmap-definition-FAOFIHXS-oc1QsLGD.js} +1 -1
  101. package/web/assets/{mindmap-definition-FBJOCRG2-KIYZG64Y--HZ4n6s3.js → mindmap-definition-FBJOCRG2-KIYZG64Y-De94GIvB.js} +1 -1
  102. package/web/assets/{pegDiagram-VL7TDLO6-D5qqgimZ.js → pegDiagram-VL7TDLO6-C9eNGZDr.js} +1 -1
  103. package/web/assets/{pegDiagram-XKGWAZYB-OIP57N6J-BTr8zwx0.js → pegDiagram-XKGWAZYB-OIP57N6J-C2k8WABX.js} +1 -1
  104. package/web/assets/{pet-BqoPCJEd.js → pet-D6jEJc1f.js} +1 -1
  105. package/web/assets/{pieDiagram-7S7Q4E2Y-DL0M7qqI.js → pieDiagram-7S7Q4E2Y-lAjmXNe_.js} +1 -1
  106. package/web/assets/{pieDiagram-E7YTZNPT-2UOTW327-IsTvwUa-.js → pieDiagram-E7YTZNPT-2UOTW327-h1VN7kXL.js} +1 -1
  107. package/web/assets/{quadrantDiagram-AXDQQJYC-SN3ASJJK-CegnuiPY.js → quadrantDiagram-AXDQQJYC-SN3ASJJK-CVllGfdW.js} +1 -1
  108. package/web/assets/{quadrantDiagram-CIZ2JOQS-D90DDhQu.js → quadrantDiagram-CIZ2JOQS-B0NfwoFD.js} +1 -1
  109. package/web/assets/{railroadDiagram-AXF67PYL-1RaYu4sf.js → railroadDiagram-AXF67PYL-BiLISELA.js} +1 -1
  110. package/web/assets/{railroadDiagram-O6MQD6OU-34742W6X-B9qe4yGJ.js → railroadDiagram-O6MQD6OU-34742W6X-CqYqMw2v.js} +1 -1
  111. package/web/assets/{render-O7CIS3YK-CAljsLJ1.js → render-O7CIS3YK-C1DYXW0Z.js} +7 -7
  112. package/web/assets/{requirementDiagram-EFPCY7ZU-NGAFFSMB-CHDErZTK.js → requirementDiagram-EFPCY7ZU-NGAFFSMB-6i5RYobc.js} +1 -1
  113. package/web/assets/{requirementDiagram-LRYGKXZP-BX5rkrPx.js → requirementDiagram-LRYGKXZP-BMUGWzen.js} +1 -1
  114. package/web/assets/{rotate-ccw-Ca8f_iaH.js → rotate-ccw-DhViz0iw.js} +1 -1
  115. package/web/assets/{sankeyDiagram-P5KCCOFB-3D3M4XPB-hJN3E2Em.js → sankeyDiagram-P5KCCOFB-3D3M4XPB-EtCUQUn1.js} +1 -1
  116. package/web/assets/{sankeyDiagram-W5VNT64P-rJLHYpsc.js → sankeyDiagram-W5VNT64P-C_r4P5MM.js} +1 -1
  117. package/web/assets/{sequenceDiagram-SI44F4Z6-Dap3kBXF.js → sequenceDiagram-SI44F4Z6-pG01U8Cr.js} +1 -1
  118. package/web/assets/{sequenceDiagram-WJ2MYXX4-Q2IOPB4R-BTyP4cnL.js → sequenceDiagram-WJ2MYXX4-Q2IOPB4R-sL3lWU4l.js} +1 -1
  119. package/web/assets/{sizeCapture-X5ZJPWSS-PSGVOMYM-B7DY8fj1.js → sizeCapture-X5ZJPWSS-PSGVOMYM-VHssc8WH.js} +1 -1
  120. package/web/assets/{sizeCapture-X5ZJPWSS-NV1XUN3R.js → sizeCapture-X5ZJPWSS-TfK3b41W.js} +1 -1
  121. package/web/assets/{stateDiagram-HBIQ2CUA-4M2S6MAN-CU01V58X.js → stateDiagram-HBIQ2CUA-4M2S6MAN-DY0svUZL.js} +1 -1
  122. package/web/assets/{stateDiagram-OKZ733FA-CxOHxy7U.js → stateDiagram-OKZ733FA-CHPWqFKU.js} +1 -1
  123. package/web/assets/stateDiagram-v2-4QOOHH4V-LBBLA2WV-B2GuWRPu.js +1 -0
  124. package/web/assets/stateDiagram-v2-UEYNNEHI-mdLp8HQQ.js +1 -0
  125. package/web/assets/{swimlanes-SLNWSIFB-DYDDNhGk.js → swimlanes-SLNWSIFB-BoK2wZ7r.js} +2 -2
  126. package/web/assets/{swimlanes-XN3QIQJK-N6N2CCQ6-1E5mkRmV.js → swimlanes-XN3QIQJK-N6N2CCQ6-tXCXpXUD.js} +1 -1
  127. package/web/assets/swimlanesDiagram-ULZ7WXOC-CI3RFQDZ.js +8 -0
  128. package/web/assets/swimlanesDiagram-VK2B7HYN-E6N4H5SY-DLkFvd5d.js +8 -0
  129. package/web/assets/{timeline-definition-24CTP7MA-KN7RSRVM-CpNVtbgS.js → timeline-definition-24CTP7MA-KN7RSRVM-uhQqtZRP.js} +1 -1
  130. package/web/assets/{timeline-definition-Z64GVDOM-B7ZZET02.js → timeline-definition-Z64GVDOM-BID9BJj_.js} +1 -1
  131. package/web/assets/{vennDiagram-4TSXK5OY-AKJ7LXAN-BeLMAX7E.js → vennDiagram-4TSXK5OY-AKJ7LXAN-MJEMZHM_.js} +1 -1
  132. package/web/assets/{vennDiagram-T6HMQDX7-CXMPHraX.js → vennDiagram-T6HMQDX7-noYkNxPf.js} +1 -1
  133. package/web/assets/{wardleyDiagram-T6FBY63Y-M5YIffLU.js → wardleyDiagram-T6FBY63Y-CnUMOnEG.js} +1 -1
  134. package/web/assets/{wardleyDiagram-VM6X3IG4-3B6A3BN5-DGIoq68j.js → wardleyDiagram-VM6X3IG4-3B6A3BN5-D_oZuxaD.js} +1 -1
  135. package/web/assets/{xychartDiagram-ELKLHX3M-CJapXT7A.js → xychartDiagram-ELKLHX3M-Ck_2zrW5.js} +1 -1
  136. package/web/assets/{xychartDiagram-S5SC5T6Z-OBDNV6WG-CxV9xp9l.js → xychartDiagram-S5SC5T6Z-OBDNV6WG-Cd6y2GuD.js} +1 -1
  137. package/web/index.html +3 -3
  138. package/web/pet.html +3 -3
  139. package/web/assets/SettingsView-CJiVF4Ny.js +0 -7
  140. package/web/assets/api-web-DeJFZI02.js +0 -1
  141. package/web/assets/channel-BKHxrVey.js +0 -1
  142. package/web/assets/classDiagram-DTDB5LWJ-LWRDKZ5K-HAwoAquC.js +0 -1
  143. package/web/assets/classDiagram-JCYQIIEL-BaDf4acq.js +0 -1
  144. package/web/assets/classDiagram-v2-JRS7N3AN-2BZHGRP2-HAwoAquC.js +0 -1
  145. package/web/assets/classDiagram-v2-OCEON4UE-BaDf4acq.js +0 -1
  146. package/web/assets/index-BlYQ3CxE.css +0 -1
  147. package/web/assets/index-DjO1zEnx.js +0 -53
  148. package/web/assets/stateDiagram-v2-4QOOHH4V-LBBLA2WV-CDjpwqy3.js +0 -1
  149. package/web/assets/stateDiagram-v2-UEYNNEHI-D6fTBE-B.js +0 -1
  150. package/web/assets/swimlanesDiagram-ULZ7WXOC-tyL111D2.js +0 -8
  151. package/web/assets/swimlanesDiagram-VK2B7HYN-E6N4H5SY-BaTK-MtU.js +0 -8
@@ -1,4 +1,4 @@
1
- import{s as mi,g as yi,o as li,n as bi,a as Ai,b as Ci,_ as n,l as ci,G as wi,d as Si,p as Ri,A as Mt,h as _i,C as gi,D as ki,I as Ti,J as Di}from"./render-O7CIS3YK-CAljsLJ1.js";import{_ as r}from"./mermaid-layout-elk.core-D_WjF9V9.js";import{l as ai}from"./transform-B5_amWNh.js";import{b as ni}from"./band-dPffDWoQ.js";import{l as oi}from"./linear-DQOfHiUP.js";import"./main-BFF415LN.js";import"./index-DjO1zEnx.js";import"./_commonjs-dynamic-modules-TDtrdbi3.js";import"./init-Gi6I4Gst.js";import"./ordinal-Cboi1Yqb.js";import"./defaultLocale-5voVPcsN.js";var It=(function(){var e=n(function(F,l,u,x){for(u=u||{},x=F.length;x--;u[F[x]]=l);return u},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],a=[1,5],h=[1,6],c=[1,7],b=[1,5,10,12,14,16,18,19,21,23,36,37,38],p=[1,25],m=[1,26],k=[1,28],T=[1,29],L=[1,30],W=[1,31],X=[1,32],E=[1,33],B=[1,34],A=[1,35],D=[1,36],g=[1,37],M=[1,43],V=[1,42],Y=[1,47],N=[1,50],R=[1,10,12,14,16,18,19,21,23,36,37,38],U=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],C=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],w=[1,65],z=[26,28],_={trace:n(r(function(){},"trace"),"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:n(r(function(l,u,x,d,S,o,ct){var f=o.length-1;switch(S){case 5:d.setOrientation(o[f]);break;case 9:d.setDiagramTitle(o[f].text.trim());break;case 12:d.setLineData({text:"",type:"text"},o[f]);break;case 13:d.setLineData(o[f-1],o[f]);break;case 14:d.setBarData({text:"",type:"text"},o[f]);break;case 15:d.setBarData(o[f-1],o[f]);break;case 16:this.$=o[f].trim(),d.setAccTitle(this.$);break;case 17:case 18:this.$=o[f].trim(),d.setAccDescription(this.$);break;case 19:this.$=o[f-1];break;case 20:case 30:this.$=[o[f-2],...o[f]];break;case 21:case 31:this.$=[o[f]];break;case 22:this.$={value:Number(o[f-1]),label:o[f]};break;case 23:this.$={value:Number(o[f]),label:""};break;case 24:d.setXAxisTitle(o[f]);break;case 25:d.setXAxisTitle(o[f-1]);break;case 26:d.setXAxisTitle({type:"text",text:""});break;case 27:d.setXAxisBand(o[f]);break;case 28:d.setXAxisRangeData(Number(o[f-2]),Number(o[f]));break;case 29:this.$=o[f-1];break;case 32:d.setYAxisTitle(o[f]);break;case 33:d.setYAxisTitle(o[f-1]);break;case 34:d.setYAxisTitle({type:"text",text:""});break;case 35:d.setYAxisRangeData(Number(o[f-2]),Number(o[f]));break;case 39:this.$={text:o[f],type:"text"};break;case 40:this.$={text:o[f],type:"text"};break;case 41:this.$={text:o[f],type:"markdown"};break;case 42:this.$=o[f];break;case 43:this.$=o[f-1]+""+o[f];break}},"anonymous"),"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,36:a,37:h,38:c}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,36:a,37:h,38:c}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],36:a,37:h,38:c}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(b,[2,36]),e(b,[2,37]),e(b,[2,38]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,36:a,37:h,38:c}),{1:[2,3]},e(b,[2,5]),e(t,[2,7],{4:22,36:a,37:h,38:c}),{11:23,30:p,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:39,13:38,24:M,29:V,30:p,31:40,32:41,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:45,15:44,29:Y,30:p,35:46,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:49,17:48,24:N,30:p,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:52,17:51,24:N,30:p,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{20:[1,53]},{22:[1,54]},e(R,[2,18]),{1:[2,2]},e(R,[2,8]),e(R,[2,9]),e(U,[2,39],{41:55,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g}),e(U,[2,40]),e(U,[2,41]),e(C,[2,42]),e(C,[2,44]),e(C,[2,45]),e(C,[2,46]),e(C,[2,47]),e(C,[2,48]),e(C,[2,49]),e(C,[2,50]),e(C,[2,51]),e(C,[2,52]),e(C,[2,53]),e(R,[2,10]),e(R,[2,24],{32:41,31:56,24:M,29:V}),e(R,[2,26]),e(R,[2,27]),{33:[1,57]},{11:59,30:p,34:58,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},e(R,[2,11]),e(R,[2,32],{35:60,29:Y}),e(R,[2,34]),{33:[1,61]},e(R,[2,12]),{17:62,24:N},{25:63,27:64,29:w},e(R,[2,14]),{17:66,24:N},e(R,[2,16]),e(R,[2,17]),e(C,[2,43]),e(R,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},e(R,[2,33]),{29:[1,70]},e(R,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},e(z,[2,23],{30:[1,73]}),e(R,[2,15]),e(R,[2,28]),e(R,[2,29]),{11:59,30:p,34:74,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},e(R,[2,35]),e(R,[2,19]),{25:75,27:64,29:w},e(z,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:n(r(function(l,u){if(u.recoverable)this.trace(l);else{var x=new Error(l);throw x.hash=u,x}},"parseError"),"parseError"),parse:n(r(function(l){var u=this,x=[0],d=[],S=[null],o=[],ct=this.table,f="",ft=0,ti=0,di=2,ii=1,pi=o.slice.call(arguments,1),P=Object.create(this.lexer),q={yy:{}};for(var Dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Dt)&&(q.yy[Dt]=this.yy[Dt]);P.setInput(l,q.yy),q.yy.lexer=P,q.yy.parser=this,typeof P.yylloc>"u"&&(P.yylloc={});var Pt=P.yylloc;o.push(Pt);var fi=P.options&&P.options.ranges;typeof q.yy.parseError=="function"?this.parseError=q.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ei(I){x.length=x.length-2*I,S.length=S.length-I,o.length=o.length-I}r(ei,"popStack"),n(ei,"popStack");function Lt(){var I;return I=d.pop()||P.lex()||ii,typeof I!="number"&&(I instanceof Array&&(d=I,I=d.pop()),I=u.symbols_[I]||I),I}r(Lt,"lex"),n(Lt,"lex");for(var v,j,O,vt,rt={},mt,H,si,yt;;){if(j=x[x.length-1],this.defaultActions[j]?O=this.defaultActions[j]:((v===null||typeof v>"u")&&(v=Lt()),O=ct[j]&&ct[j][v]),typeof O>"u"||!O.length||!O[0]){var Et="";yt=[];for(mt in ct[j])this.terminals_[mt]&&mt>di&&yt.push("'"+this.terminals_[mt]+"'");P.showPosition?Et="Parse error on line "+(ft+1)+`:
1
+ import{s as mi,g as yi,o as li,n as bi,a as Ai,b as Ci,_ as n,l as ci,G as wi,d as Si,p as Ri,A as Mt,h as _i,C as gi,D as ki,I as Ti,J as Di}from"./render-O7CIS3YK-C1DYXW0Z.js";import{_ as r}from"./mermaid-layout-elk.core-h_IjwDpP.js";import{l as ai}from"./transform-B5_amWNh.js";import{b as ni}from"./band-dPffDWoQ.js";import{l as oi}from"./linear-DQOfHiUP.js";import"./main-CmJlqSDk.js";import"./index-DZN4z5wF.js";import"./_commonjs-dynamic-modules-TDtrdbi3.js";import"./init-Gi6I4Gst.js";import"./ordinal-Cboi1Yqb.js";import"./defaultLocale-5voVPcsN.js";var It=(function(){var e=n(function(F,l,u,x){for(u=u||{},x=F.length;x--;u[F[x]]=l);return u},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],a=[1,5],h=[1,6],c=[1,7],b=[1,5,10,12,14,16,18,19,21,23,36,37,38],p=[1,25],m=[1,26],k=[1,28],T=[1,29],L=[1,30],W=[1,31],X=[1,32],E=[1,33],B=[1,34],A=[1,35],D=[1,36],g=[1,37],M=[1,43],V=[1,42],Y=[1,47],N=[1,50],R=[1,10,12,14,16,18,19,21,23,36,37,38],U=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],C=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],w=[1,65],z=[26,28],_={trace:n(r(function(){},"trace"),"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:n(r(function(l,u,x,d,S,o,ct){var f=o.length-1;switch(S){case 5:d.setOrientation(o[f]);break;case 9:d.setDiagramTitle(o[f].text.trim());break;case 12:d.setLineData({text:"",type:"text"},o[f]);break;case 13:d.setLineData(o[f-1],o[f]);break;case 14:d.setBarData({text:"",type:"text"},o[f]);break;case 15:d.setBarData(o[f-1],o[f]);break;case 16:this.$=o[f].trim(),d.setAccTitle(this.$);break;case 17:case 18:this.$=o[f].trim(),d.setAccDescription(this.$);break;case 19:this.$=o[f-1];break;case 20:case 30:this.$=[o[f-2],...o[f]];break;case 21:case 31:this.$=[o[f]];break;case 22:this.$={value:Number(o[f-1]),label:o[f]};break;case 23:this.$={value:Number(o[f]),label:""};break;case 24:d.setXAxisTitle(o[f]);break;case 25:d.setXAxisTitle(o[f-1]);break;case 26:d.setXAxisTitle({type:"text",text:""});break;case 27:d.setXAxisBand(o[f]);break;case 28:d.setXAxisRangeData(Number(o[f-2]),Number(o[f]));break;case 29:this.$=o[f-1];break;case 32:d.setYAxisTitle(o[f]);break;case 33:d.setYAxisTitle(o[f-1]);break;case 34:d.setYAxisTitle({type:"text",text:""});break;case 35:d.setYAxisRangeData(Number(o[f-2]),Number(o[f]));break;case 39:this.$={text:o[f],type:"text"};break;case 40:this.$={text:o[f],type:"text"};break;case 41:this.$={text:o[f],type:"markdown"};break;case 42:this.$=o[f];break;case 43:this.$=o[f-1]+""+o[f];break}},"anonymous"),"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,36:a,37:h,38:c}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,36:a,37:h,38:c}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],36:a,37:h,38:c}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(b,[2,36]),e(b,[2,37]),e(b,[2,38]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,36:a,37:h,38:c}),{1:[2,3]},e(b,[2,5]),e(t,[2,7],{4:22,36:a,37:h,38:c}),{11:23,30:p,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:39,13:38,24:M,29:V,30:p,31:40,32:41,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:45,15:44,29:Y,30:p,35:46,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:49,17:48,24:N,30:p,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:52,17:51,24:N,30:p,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{20:[1,53]},{22:[1,54]},e(R,[2,18]),{1:[2,2]},e(R,[2,8]),e(R,[2,9]),e(U,[2,39],{41:55,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g}),e(U,[2,40]),e(U,[2,41]),e(C,[2,42]),e(C,[2,44]),e(C,[2,45]),e(C,[2,46]),e(C,[2,47]),e(C,[2,48]),e(C,[2,49]),e(C,[2,50]),e(C,[2,51]),e(C,[2,52]),e(C,[2,53]),e(R,[2,10]),e(R,[2,24],{32:41,31:56,24:M,29:V}),e(R,[2,26]),e(R,[2,27]),{33:[1,57]},{11:59,30:p,34:58,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},e(R,[2,11]),e(R,[2,32],{35:60,29:Y}),e(R,[2,34]),{33:[1,61]},e(R,[2,12]),{17:62,24:N},{25:63,27:64,29:w},e(R,[2,14]),{17:66,24:N},e(R,[2,16]),e(R,[2,17]),e(C,[2,43]),e(R,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},e(R,[2,33]),{29:[1,70]},e(R,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},e(z,[2,23],{30:[1,73]}),e(R,[2,15]),e(R,[2,28]),e(R,[2,29]),{11:59,30:p,34:74,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},e(R,[2,35]),e(R,[2,19]),{25:75,27:64,29:w},e(z,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:n(r(function(l,u){if(u.recoverable)this.trace(l);else{var x=new Error(l);throw x.hash=u,x}},"parseError"),"parseError"),parse:n(r(function(l){var u=this,x=[0],d=[],S=[null],o=[],ct=this.table,f="",ft=0,ti=0,di=2,ii=1,pi=o.slice.call(arguments,1),P=Object.create(this.lexer),q={yy:{}};for(var Dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Dt)&&(q.yy[Dt]=this.yy[Dt]);P.setInput(l,q.yy),q.yy.lexer=P,q.yy.parser=this,typeof P.yylloc>"u"&&(P.yylloc={});var Pt=P.yylloc;o.push(Pt);var fi=P.options&&P.options.ranges;typeof q.yy.parseError=="function"?this.parseError=q.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ei(I){x.length=x.length-2*I,S.length=S.length-I,o.length=o.length-I}r(ei,"popStack"),n(ei,"popStack");function Lt(){var I;return I=d.pop()||P.lex()||ii,typeof I!="number"&&(I instanceof Array&&(d=I,I=d.pop()),I=u.symbols_[I]||I),I}r(Lt,"lex"),n(Lt,"lex");for(var v,j,O,vt,rt={},mt,H,si,yt;;){if(j=x[x.length-1],this.defaultActions[j]?O=this.defaultActions[j]:((v===null||typeof v>"u")&&(v=Lt()),O=ct[j]&&ct[j][v]),typeof O>"u"||!O.length||!O[0]){var Et="";yt=[];for(mt in ct[j])this.terminals_[mt]&&mt>di&&yt.push("'"+this.terminals_[mt]+"'");P.showPosition?Et="Parse error on line "+(ft+1)+`:
2
2
  `+P.showPosition()+`
3
3
  Expecting `+yt.join(", ")+", got '"+(this.terminals_[v]||v)+"'":Et="Parse error on line "+(ft+1)+": Unexpected "+(v==ii?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(Et,{text:P.match,token:this.terminals_[v]||v,line:P.yylineno,loc:Pt,expected:yt})}if(O[0]instanceof Array&&O.length>1)throw new Error("Parse Error: multiple actions possible at state: "+j+", token: "+v);switch(O[0]){case 1:x.push(v),S.push(P.yytext),o.push(P.yylloc),x.push(O[1]),v=null,ti=P.yyleng,f=P.yytext,ft=P.yylineno,Pt=P.yylloc;break;case 2:if(H=this.productions_[O[1]][1],rt.$=S[S.length-H],rt._$={first_line:o[o.length-(H||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(H||1)].first_column,last_column:o[o.length-1].last_column},fi&&(rt._$.range=[o[o.length-(H||1)].range[0],o[o.length-1].range[1]]),vt=this.performAction.apply(rt,[f,ti,ft,q.yy,O[1],S,o].concat(pi)),typeof vt<"u")return vt;H&&(x=x.slice(0,-1*H*2),S=S.slice(0,-1*H),o=o.slice(0,-1*H)),x.push(this.productions_[O[1]][0]),S.push(rt.$),o.push(rt._$),si=ct[x[x.length-2]][x[x.length-1]],x.push(si);break;case 3:return!0}}return!0},"parse"),"parse")},lt=(function(){var F={EOF:1,parseError:n(r(function(u,x){if(this.yy.parser)this.yy.parser.parseError(u,x);else throw new Error(u)},"parseError"),"parseError"),setInput:n(function(l,u){return this.yy=u||this.yy||{},this._input=l,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:n(function(){var l=this._input[0];this.yytext+=l,this.yyleng++,this.offset++,this.match+=l,this.matched+=l;var u=l.match(/(?:\r\n?|\n).*/g);return u?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),l},"input"),unput:n(function(l){var u=l.length,x=l.split(/(?:\r\n?|\n)/g);this._input=l+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),x.length-1&&(this.yylineno-=x.length-1);var S=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:x?(x.length===d.length?this.yylloc.first_column:0)+d[d.length-x.length].length-x[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-u]),this.yyleng=this.yytext.length,this},"unput"),more:n(function(){return this._more=!0,this},"more"),reject:n(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:n(function(l){this.unput(this.match.slice(l))},"less"),pastInput:n(function(){var l=this.matched.substr(0,this.matched.length-this.match.length);return(l.length>20?"...":"")+l.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:n(function(){var l=this.match;return l.length<20&&(l+=this._input.substr(0,20-l.length)),(l.substr(0,20)+(l.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:n(function(){var l=this.pastInput(),u=new Array(l.length+1).join("-");return l+this.upcomingInput()+`
package/web/index.html CHANGED
@@ -32,9 +32,9 @@
32
32
  }
33
33
  })();
34
34
  </script>
35
- <script type="module" crossorigin src="./assets/main-BFF415LN.js"></script>
36
- <link rel="modulepreload" crossorigin href="./assets/index-DjO1zEnx.js">
37
- <link rel="stylesheet" crossorigin href="./assets/index-BlYQ3CxE.css">
35
+ <script type="module" crossorigin src="./assets/main-CmJlqSDk.js"></script>
36
+ <link rel="modulepreload" crossorigin href="./assets/index-DZN4z5wF.js">
37
+ <link rel="stylesheet" crossorigin href="./assets/index-CvvLDKMx.css">
38
38
  <link rel="stylesheet" crossorigin href="./assets/main-BXa7WYYr.css">
39
39
  </head>
40
40
  <body>
package/web/pet.html CHANGED
@@ -8,9 +8,9 @@
8
8
  content="default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' http://localhost:5173 ws://localhost:5173"
9
9
  />
10
10
  <title>LookatStudy Pet</title>
11
- <script type="module" crossorigin src="./assets/pet-BqoPCJEd.js"></script>
12
- <link rel="modulepreload" crossorigin href="./assets/index-DjO1zEnx.js">
13
- <link rel="stylesheet" crossorigin href="./assets/index-BlYQ3CxE.css">
11
+ <script type="module" crossorigin src="./assets/pet-D6jEJc1f.js"></script>
12
+ <link rel="modulepreload" crossorigin href="./assets/index-DZN4z5wF.js">
13
+ <link rel="stylesheet" crossorigin href="./assets/index-CvvLDKMx.css">
14
14
  <link rel="stylesheet" crossorigin href="./assets/pet-CTf4hJTR.css">
15
15
  </head>
16
16
  <body>
@@ -1,7 +0,0 @@
1
- import{r as a,j as e,s as Ze,k as Qe,C as et,M as tt}from"./index-DjO1zEnx.js";import{c as st,u as de,j as ne,k as he,a as i,W as $e,P as nt,l as ze,s as at,i as it,g as lt,m as ot,n as dt,o as rt}from"./main-BFF415LN.js";/**
2
- * @license lucide-react v0.468.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const ct=st("RotateCw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]),xe="bg-ink/[0.04] text-ink-strong text-label rounded-lg border border-transparent focus:border-accent focus:bg-ink/[0.06] transition-colors placeholder:text-ink-faint";function ye({kind:t,showProtocol:x=!0,testPrefix:b="custom",titleKey:p="settings.custom.form_title",modelPhKey:c="settings.custom.model_ph",testOverride:d,onSaved:r,onCancel:h}){const m=de(),[j,T]=a.useState(""),[g,S]=a.useState("openai-compatible"),[k,P]=a.useState(""),[o,_]=a.useState(""),[w,W]=a.useState(""),[B,V]=a.useState(!1),[I,D]=a.useState(!1),[A,z]=a.useState(null),L=async()=>{if(!(!k.trim()||!w.trim()||I)){D(!0),z(null);try{const l=d?await d({baseUrl:k.trim(),apiKey:o.trim(),model:w.trim()}):await i.testCustomProvider({label:j||m("settings.custom.test_label"),protocol:g,baseUrl:k.trim(),apiKey:o.trim()||void 0,defaultModel:w.trim()});z({ok:l.ok,detail:l.detail})}catch(l){z({ok:!1,detail:l instanceof Error?l.message:String(l)})}finally{D(!1)}}},N=async()=>{if(!(!j.trim()||!k.trim()||!w.trim()))try{const l=await i.createCustomProvider({label:j.trim(),kind:t,protocol:x?g:"openai-compatible",baseUrl:k.trim(),apiKey:o.trim()||void 0,defaultModel:w.trim(),vision:t==="llm"?B:void 0});r(l)}catch{}};return e.jsxs("div",{className:"space-y-2.5","data-testid":`${b}-provider-form`,children:[e.jsx("div",{className:"text-label font-bold text-ink-strong",children:m(p)}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{type:"text",value:j,onChange:l=>T(l.target.value),placeholder:m("settings.custom.label_ph"),"data-testid":`${b}-label`,className:`${xe} flex-1 px-2.5 py-1.5`}),x&&e.jsxs("select",{value:g,onChange:l=>S(l.target.value),"data-testid":`${b}-protocol`,className:`${xe} px-2 py-1.5`,children:[e.jsx("option",{value:"openai-compatible",children:m("settings.proto.openai")}),e.jsx("option",{value:"anthropic",children:"Anthropic"}),e.jsx("option",{value:"google",children:"Google"})]})]}),e.jsx("input",{type:"text",value:k,onChange:l=>P(l.target.value),placeholder:m("settings.custom.baseurl_ph"),"data-testid":`${b}-baseurl`,className:`${xe} w-full px-2.5 py-1.5 font-mono`}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{type:"text",value:w,onChange:l=>W(l.target.value),placeholder:m(c),"data-testid":`${b}-model`,className:`${xe} flex-1 px-2.5 py-1.5 font-mono`}),e.jsx("input",{type:"password",value:o,onChange:l=>_(l.target.value),placeholder:m("settings.custom.apikey_ph"),"data-testid":`${b}-apikey`,className:`${xe} flex-1 px-2.5 py-1.5`})]}),t==="llm"&&e.jsxs("label",{className:"inline-flex items-center gap-2 text-label cursor-pointer select-none","data-testid":`${b}-vision`,children:[e.jsx("input",{type:"checkbox",checked:B,onChange:l=>V(l.target.checked),className:"w-4 h-4 rounded accent-brand"}),e.jsx("span",{className:"text-ink-strong",children:m("settings.custom.vision")}),e.jsx("span",{className:"text-ink-faint",children:m("settings.custom.visionHint")})]}),A&&e.jsxs("div",{className:`text-label rounded p-2 inline-flex items-start gap-1.5 ${A.ok?"bg-brand/10 text-brand":"bg-warning/10 text-warning"}`,children:[A.ok?e.jsx(ne,{className:"w-4 h-4 mt-px shrink-0","aria-hidden":"true"}):e.jsx(he,{className:"w-4 h-4 mt-px shrink-0","aria-hidden":"true"}),e.jsx("span",{className:"break-words",children:A.detail})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("button",{onClick:()=>void L(),disabled:!k.trim()||!w.trim()||I,"data-testid":`${b}-test`,className:"btn-3d-neutral px-3 py-1.5 text-label disabled:opacity-40",children:m(I?"settings.testing":"settings.test")}),e.jsx("button",{onClick:()=>void N(),disabled:!j.trim()||!k.trim()||!w.trim(),"data-testid":`${b}-save`,className:"btn-3d-brand px-3 py-1.5 text-label disabled:opacity-40",children:m("settings.custom.save")}),h&&e.jsx("button",{onClick:h,className:"text-label text-ink-muted hover:text-ink-strong px-3 py-1.5 transition-colors",children:m("action.cancel")})]})]})}const We="lookatstudy-theme",Ke="auto",Ue="(prefers-color-scheme: dark)";function _e(){return typeof window>"u"||window.matchMedia(Ue).matches?"dark":"light"}function mt(){if(typeof localStorage>"u")return Ke;const t=localStorage.getItem(We);return t==="auto"||t==="light"||t==="dark"?t:Ke}function Ce(t){const x=document.documentElement;x.classList.remove("dark","light"),x.classList.add(t),window.dispatchEvent(new CustomEvent("theme-changed",{detail:{resolved:t}}))}function ut(){const[t,x]=a.useState(()=>mt()),[b,p]=a.useState(()=>t==="auto"?_e():t),c=a.useCallback(d=>{x(d),localStorage.setItem(We,d);const r=d==="auto"?_e():d;p(r),Ce(r)},[]);return a.useEffect(()=>{if(t!=="auto")return;const d=window.matchMedia(Ue),r=h=>{const m=h.matches?"dark":"light";p(m),Ce(m)};return d.addEventListener("change",r),()=>d.removeEventListener("change",r)},[t]),a.useEffect(()=>{const d=t==="auto"?_e():t;p(d),Ce(d)},[t]),{mode:t,resolved:b,setMode:c}}const xt="0.29.0",ht={version:xt};function we(){window.dispatchEvent(new Event(rt))}const G="bg-surface-1 text-ink text-body rounded-lg border border-[var(--border)] focus:border-brand focus:outline-none transition-colors placeholder:text-ink-faint",F="bg-surface-3 text-ink-muted hover:bg-surface-3 hover:bg-surface-3 hover:text-ink-strong",R="bg-brand text-white shadow-sm";function v(t){return t?"px-4 py-3.5 border-t border-[var(--border-faint)]":"px-4 py-3.5"}function yt(){const t=de(),[x,b]=a.useState([]),[p,c]=a.useState([]),[d,r]=a.useState("glm"),[h,m]=a.useState(""),[j,T]=a.useState(""),[g,S]=a.useState(null),[k,P]=a.useState(!1),[o,_]=a.useState(null),[w,W]=a.useState(!1),[B,V]=a.useState(!1),[I,D]=a.useState([]),[A,z]=a.useState(!1),[L,N]=a.useState(null),[l,H]=a.useState(null),[Q,re]=a.useState(""),[ge,ce]=a.useState(!1),ee=ut(),ie=async n=>{if($)try{await i.updateCustomProvider($.id,{vision:n}),await U()}catch{}},le=async()=>{z(!0),N(null);try{const n=await i.discoverModels();n.ok&&n.models?D(n.models):N(n.error||t("settings.discover_failed"))}catch(n){N(n instanceof Error?n.message:String(n))}finally{z(!1)}},U=a.useCallback(async()=>{try{const[n,f,E,J]=await Promise.all([i.getProviderPresets(),i.listCustomProviders(),i.getSetting("active_provider"),i.getSetting("active_model")]);b(n),c(f);const M=E??"glm";if(r(M),M.startsWith("custom-")){const y=f.find(C=>C.id===M);S(y!=null&&y.hasApiKey?t("settings.key.configured"):null)}else{const y=n.find(C=>C.id===M);if(y){const C=await i.getSetting(y.apiKeySetting);S(C?`${C.slice(0,4)}…${C.slice(-4)}`:null)}}if(M.startsWith("custom-")){const y=f.find(C=>C.id===M);m(J??(y==null?void 0:y.defaultModel)??"")}else{const y=n.find(C=>C.id===M);m(J??(y==null?void 0:y.defaultModel)??"")}}catch(n){console.error("[SettingsView] load() failed:",n)}},[t]);a.useEffect(()=>{U()},[U]);const me=async n=>{r(n),_(null),T("");const f=x.find(E=>E.id===n);if(f){const E=await i.getSetting(f.apiKeySetting);S(E?`${E.slice(0,4)}…${E.slice(-4)}`:null),m(h||f.defaultModel)}},pe=async()=>{W(!1);try{if(await i.setSetting("active_provider",d),await i.setSetting("active_model",h),j.trim()){const n=x.find(f=>f.id===d);n&&(await i.setSetting(n.apiKeySetting,j.trim()),S(`${j.trim().slice(0,4)}…${j.trim().slice(-4)}`),T(""))}W(!0),setTimeout(()=>W(!1),2e3),window.dispatchEvent(new Event("llm-config-changed"))}catch{}},O=async()=>{P(!0),_(null);try{const n=await i.testLlmConnection();_(n)}catch(n){_({ok:!1,detail:n instanceof Error?n.message:String(n),errorKind:"unknown"})}finally{P(!1)}},fe=async n=>{await i.setSetting("active_provider",n.id),await i.setSetting("active_model",n.defaultModel),r(n.id),m(n.defaultModel),V(!1),await U(),window.dispatchEvent(new Event("llm-config-changed"))},te=async n=>{try{await i.deleteCustomProvider(n),d===n&&(await i.setSetting("active_provider","glm"),r("glm")),await U()}catch{}},$=d.startsWith("custom-")?p.find(n=>n.id===d):null;a.useEffect(()=>{if(!$)return;const n=$.models.find(f=>f.id===h);re(n!=null&&n.contextWindow?String(n.contextWindow):"")},[$,h]);const be=async()=>{var M,y;if(!$)return;const n=Q.trim().replace(/[,\s_]/g,""),f=/^(\d+)([km]?)$/i.exec(n);if(n!==""&&!f)return;const E=((M=f==null?void 0:f[2])==null?void 0:M.toLowerCase())==="k"?1e3:((y=f==null?void 0:f[2])==null?void 0:y.toLowerCase())==="m"?1e6:1,J=n===""||!f?null:Math.max(1,Math.round(parseInt(f[1],10)*E));ce(!0);try{const C=$.models.map(q=>q.id===h?{...q,contextWindow:J}:q);await i.updateCustomProvider($.id,{models:C}),await U(),window.dispatchEvent(new Event("llm-config-changed"))}catch{}finally{ce(!1)}},Y=d.startsWith("custom-")?null:x.find(n=>n.id===d);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"px-5 pt-5 space-y-6",children:[e.jsxs("section",{children:[e.jsx("h3",{className:"text-label font-bold text-ink-muted mb-2 px-1",children:t("settings.group.ai")}),e.jsxs("div",{className:"surface-card overflow-hidden",children:[e.jsxs("div",{className:v(!1),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-2",children:t("settings.row.provider")}),e.jsxs("div",{className:"flex flex-wrap gap-1.5","data-testid":"provider-grid",children:[x.map(n=>e.jsx("button",{onClick:()=>me(n.id),"data-testid":`provider-card-${n.id}`,"aria-pressed":d===n.id,className:`px-3 py-1.5 rounded-lg text-label font-medium whitespace-nowrap transition-colors ${d===n.id?R:F}`,children:n.label},n.id)),p.filter(n=>n.kind==="llm").map(n=>e.jsxs("button",{onClick:()=>me(n.id),"data-testid":`provider-card-${n.id}`,"aria-pressed":d===n.id,className:`px-3 py-1.5 rounded-lg text-label font-medium whitespace-nowrap transition-colors inline-flex items-center gap-1 ${d===n.id?R:F}`,children:[e.jsx($e,{className:"w-3.5 h-3.5","aria-hidden":"true"}),n.label]},n.id)),e.jsxs("button",{onClick:()=>V(n=>!n),"data-testid":"add-custom-provider",className:"px-3 py-1.5 rounded-lg text-label whitespace-nowrap inline-flex items-center gap-1 border border-dashed border-[var(--border)] text-ink-muted hover:border-ink-muted hover:text-ink-strong transition-colors",children:[e.jsx(nt,{className:"w-3.5 h-3.5","aria-hidden":"true"}),t("settings.add_custom")]})]})]}),B&&e.jsx("div",{className:"px-4 py-3.5 bg-surface-1 border-t border-[var(--border-faint)]",children:e.jsx(ye,{kind:"llm",testPrefix:"custom",onSaved:n=>void fe(n),onCancel:()=>V(!1)})}),p.length>0&&d.startsWith("custom-")&&e.jsx("div",{className:v(!0),children:e.jsx("button",{onClick:n=>{const f=n.currentTarget.getBoundingClientRect(),E=p.find(J=>J.id===d);E&&H({id:E.id,label:E.label,rect:f})},className:"text-label text-warning hover:underline",children:t("settings.delete_custom")})}),Y&&e.jsxs(e.Fragment,{children:[Y.baseUrl&&e.jsxs("div",{className:v(!0),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:"Base URL"}),e.jsx("code",{className:"text-label text-ink-faint font-mono break-all",children:Y.baseUrl})]}),e.jsxs("div",{className:v(!0),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-label font-medium text-ink-strong shrink-0 w-14",children:t("settings.model")}),e.jsxs("div",{className:"flex-1 flex items-center gap-2",children:[e.jsxs("select",{value:h,onChange:n=>m(n.target.value),"data-testid":"model-select",className:`${G} flex-1 px-2.5 py-1.5`,children:[Y.models.map(n=>e.jsx("option",{value:n.id,children:n.id},n.id)),d==="openrouter"&&I.map(n=>e.jsx("option",{value:n.id,children:n.id},n.id))]}),d==="openrouter"&&e.jsxs("button",{onClick:le,disabled:A,"data-testid":"discover-models-btn",className:"text-label text-accent hover:underline disabled:opacity-40 whitespace-nowrap inline-flex items-center gap-1",children:[e.jsx(ct,{className:`w-3.5 h-3.5 ${A?"animate-spin":""}`,"aria-hidden":"true"}),t(A?"settings.discovering":"settings.refresh")]})]})]}),L&&e.jsx("div",{className:"text-label text-warning mt-1.5 ml-[68px]",children:L})]}),e.jsx("div",{className:v(!0),children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-label font-medium text-ink-strong shrink-0 w-14",children:t("settings.apikey")}),e.jsxs("div",{className:"flex-1 flex items-center gap-2",children:[g&&e.jsxs("span",{className:"text-label text-brand shrink-0 inline-flex items-center gap-1",children:[e.jsx(ne,{className:"w-3.5 h-3.5","aria-hidden":"true"}),g]}),e.jsx("input",{type:"password",value:j,onChange:n=>T(n.target.value),placeholder:t(g?"settings.key.overwrite_ph":"settings.key.paste_ph"),"data-testid":"settings-key-input",className:`${G} flex-1 px-2.5 py-1.5`}),e.jsx("a",{href:Y.keyUrl,target:"_blank",rel:"noopener noreferrer",className:"text-label text-brand hover:underline whitespace-nowrap",children:t("settings.key.get")})]})]})}),e.jsx("div",{className:v(!0),children:e.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 min-w-0",children:[e.jsx("button",{onClick:O,disabled:k,"data-testid":"test-connection-btn",className:"btn-3d-neutral px-3 py-1.5 text-label disabled:opacity-40",children:t(k?"settings.testing":"settings.test")}),o&&e.jsxs("span",{className:`text-label inline-flex items-center gap-1 min-w-0 break-words ${o.ok?"text-brand":"text-warning"}`,children:[o.ok?e.jsx(ne,{className:"w-4 h-4 shrink-0","aria-hidden":"true"}):e.jsx(he,{className:"w-4 h-4 shrink-0","aria-hidden":"true"}),o.detail]})]})})]}),$&&!Y&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:v(!0),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:"Base URL"}),e.jsx("code",{className:"text-label text-ink-faint font-mono break-all",children:$.baseUrl})]}),e.jsx("div",{className:v(!0),children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-label font-medium text-ink-strong shrink-0 w-14",children:t("settings.model")}),$.models.length>1?e.jsx("select",{value:h,onChange:n=>m(n.target.value),"data-testid":"model-select-custom",className:`${G} flex-1 px-2.5 py-1.5`,children:$.models.map(n=>e.jsx("option",{value:n.id,children:n.id},n.id))}):e.jsx("input",{type:"text",value:h,onChange:n=>m(n.target.value),placeholder:t("settings.custom.model_ph"),"data-testid":"model-input-custom",className:`${G} flex-1 px-2.5 py-1.5 font-mono`})]})}),e.jsxs("div",{className:v(!0),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:t("settings.custom.windowLabel")}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{type:"text",inputMode:"numeric",value:Q,onChange:n=>re(n.target.value),placeholder:t("settings.custom.windowPh"),"data-testid":"context-window-input",className:`${G} flex-1 px-2.5 py-1.5 font-mono tabular-nums`}),e.jsx("button",{onClick:be,disabled:ge,"data-testid":"context-window-save",className:"btn-3d-neutral px-3 py-1.5 text-label shrink-0 disabled:opacity-40",children:t("settings.custom.save")})]}),e.jsx("div",{className:"text-caption text-ink-faint mt-1",children:t("settings.custom.windowHint")})]}),e.jsx("div",{className:v(!0),children:e.jsxs("label",{className:"inline-flex items-center gap-2 text-label cursor-pointer select-none","data-testid":"custom-vision-toggle",children:[e.jsx("input",{type:"checkbox",checked:$.vision,onChange:n=>void ie(n.target.checked),className:"w-4 h-4 rounded accent-brand"}),e.jsx("span",{className:"text-ink-strong",children:t("settings.custom.vision")}),e.jsx("span",{className:"text-ink-faint",children:t("settings.custom.visionHint")})]})}),e.jsx("div",{className:v(!0),children:e.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 min-w-0",children:[e.jsx("button",{onClick:O,disabled:k,"data-testid":"test-connection-btn",className:"btn-3d-neutral px-3 py-1.5 text-label disabled:opacity-40",children:t(k?"settings.testing":"settings.test")}),o&&e.jsxs("span",{className:`text-label inline-flex items-center gap-1 min-w-0 break-words ${o.ok?"text-brand":"text-warning"}`,children:[o.ok?e.jsx(ne,{className:"w-4 h-4 shrink-0","aria-hidden":"true"}):e.jsx(he,{className:"w-4 h-4 shrink-0","aria-hidden":"true"}),o.detail]})]})})]})]})]}),e.jsxs("section",{children:[e.jsx("h3",{className:"text-label font-bold text-ink-muted mb-2 px-1",children:t("settings.group.vision")}),e.jsx("div",{className:"surface-card overflow-hidden",children:e.jsx(pt,{activeProvider:d,activeModel:h,presets:x,customProviders:p})})]}),e.jsxs("section",{children:[e.jsx("h3",{className:"text-label font-bold text-ink-muted mb-2 px-1",children:t("settings.group.speech")}),e.jsx("div",{className:"surface-card overflow-hidden",children:e.jsx(Nt,{})})]}),e.jsxs("section",{children:[e.jsx("h3",{className:"text-label font-bold text-ink-muted mb-2 px-1",children:t("settings.group.memory")}),e.jsx("div",{className:"surface-card overflow-hidden",children:e.jsx(ft,{})})]}),e.jsxs("section",{children:[e.jsx("h3",{className:"text-label font-bold text-ink-muted mb-2 px-1",children:t("settings.group.companion")}),e.jsx("div",{className:"surface-card overflow-hidden",children:e.jsx(bt,{})})]}),e.jsxs("section",{children:[e.jsx("h3",{className:"text-label font-bold text-ink-muted mb-2 px-1",children:t("settings.group.appearance")}),e.jsxs("div",{className:"surface-card overflow-hidden",children:[e.jsxs("div",{className:v(!1),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-2",children:t("settings.row.theme")}),e.jsx("div",{className:"flex gap-2",children:[{mode:"auto",label:t("settings.theme.auto")},{mode:"light",label:t("settings.theme.light")},{mode:"dark",label:t("settings.theme.dark")}].map(({mode:n,label:f})=>e.jsx("button",{onClick:()=>ee.setMode(n),"data-testid":`theme-${n}`,"aria-pressed":ee.mode===n,className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${ee.mode===n?R:F}`,children:f},n))}),e.jsx("p",{className:"text-label text-ink-muted mt-2",children:ee.mode==="auto"?t("settings.theme.following",{mode:t(`settings.theme.${ee.resolved}`)}):null})]}),e.jsxs("div",{className:v(!0),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-2",children:t("settings.row.interface_lang")}),e.jsx("div",{className:"flex gap-2",children:["zh-CN","en"].map(n=>e.jsx("button",{onClick:()=>at(n),"data-testid":`lang-${n}`,"aria-pressed":ze()===n,className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${ze()===n?R:F}`,children:n==="zh-CN"?"中文":"English"},n))})]}),e.jsxs("div",{className:v(!0),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-2",children:t("settings.row.import_lang")}),e.jsx(gt,{})]})]})]}),e.jsxs("section",{children:[e.jsx("h3",{className:"text-label font-bold text-ink-muted mb-2 px-1",children:t("settings.group.about")}),e.jsx("div",{className:"surface-card overflow-hidden",children:e.jsxs("div",{className:v(!1),children:[e.jsxs("div",{className:"flex items-baseline justify-between gap-3",children:[e.jsx("div",{className:"text-label font-medium text-ink-strong",children:t("settings.row.version")}),e.jsxs("a",{href:"https://github.com/Kaiji-Z/LookatStudy/releases",target:"_blank",rel:"noopener noreferrer",className:"text-label font-mono text-brand hover:underline","data-testid":"settings-version",children:["v",ht.version]})]}),e.jsx("p",{className:"text-label text-ink-muted mt-2",children:t("settings.version.hint")})]})})]})]}),e.jsxs("div",{className:"sticky bottom-0 px-5 py-3 bg-surface-0 border-t border-[var(--border)] flex items-center justify-between gap-3",children:[e.jsx("span",{className:"text-label text-ink-muted",children:t("settings.footer.hint")}),e.jsxs("button",{onClick:pe,"data-testid":"settings-save",className:"btn-3d-brand px-5 py-2 text-body inline-flex items-center gap-1.5",children:[w&&e.jsx(it,{className:"w-4 h-4","aria-hidden":"true"}),t(w?"settings.saved_text":"settings.footer.save")]})]}),l&&e.jsx(lt,{anchorRect:l.rect,message:t("settings.delete_custom_confirm",{name:l.label}),danger:!0,confirmLabel:t("action.delete"),testid:"custom-provider-delete-confirm",onConfirm:()=>{te(l.id),H(null)},onCancel:()=>H(null)})]})}function gt(){const[t,x]=a.useState("en"),[b,p]=a.useState(!1);a.useEffect(()=>{i.getSetting("pref_lang").then(r=>{r&&x(r),p(!0)})},[]);const c=async r=>{x(r),await i.setSetting("pref_lang",r)},d=[{code:"en",label:"English"},{code:"zh-CN",label:"简体中文"},{code:"zh-TW",label:"繁體中文"}];return b?e.jsx("div",{className:"flex gap-2","data-testid":"pref-lang-options",children:d.map(r=>e.jsx("button",{onClick:()=>c(r.code),"data-testid":`pref-lang-${r.code}`,"aria-pressed":t===r.code,className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${t===r.code?R:F}`,children:r.label},r.code))}):null}function pt({activeProvider:t,activeModel:x,presets:b,customProviders:p}){const c=de(),[d,r]=a.useState(!1),[h,m]=a.useState(!1),[j,T]=a.useState(""),[g,S]=a.useState(!1),[k,P]=a.useState(!1),[o,_]=a.useState(null),[w,W]=a.useState(!1);a.useEffect(()=>{Promise.all([i.getSetting("flag_multimodal_import"),i.getSetting("vision_provider_override"),i.getSetting("vision_model_override"),i.getSetting("flag_math_vision")]).then(([l,H,Q])=>{r(l==="true"),T(H??""),W(Q==="true"),m(!0)})},[]);const B=async()=>{const l=!d;r(l),await i.setSetting("flag_multimodal_import",String(l))},V=async()=>{const l=!w;W(l),await i.setSetting("flag_math_vision",String(l))},I=async l=>{await i.setSetting("vision_provider_override",l.id),await i.setSetting("vision_model_override",l.defaultModel),T(l.id),S(!1)},D=async()=>{await i.setSetting("vision_provider_override",""),await i.setSetting("vision_model_override",""),T(""),S(!1)},A=async()=>{if(!k){P(!0),_(null);try{const l=await i.testLlmConnection({vision:!0});_({ok:l.ok,detail:l.detail})}catch(l){_({ok:!1,detail:l instanceof Error?l.message:String(l)})}finally{P(!1)}}},z=p.filter(l=>l.kind==="vision"),L=j.startsWith("custom-")?p.find(l=>l.id===j):null,N=j&&!j.startsWith("custom-")?b.find(l=>l.id===j):null;return h?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"px-4 py-3.5 flex items-center gap-3",children:[e.jsx(ae,{checked:d,onChange:B,label:c("settings.multimodal.toggle"),testid:"multimodal-toggle"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-body font-medium text-ink-strong",children:c("settings.multimodal.toggle")}),e.jsx("div",{className:"text-label text-ink-muted",children:c("settings.multimodal.toggle.desc")})]})]}),e.jsxs("div",{className:"px-4 py-3.5 border-t border-[var(--border-faint)] space-y-3",children:[e.jsxs("div",{className:"text-label text-ink-muted bg-ink/5 rounded-lg p-3",children:[e.jsx("div",{className:"font-medium mb-1",children:c("settings.multimodal.current_model",{model:x||c("settings.multimodal.not_selected")})}),e.jsx("div",{children:t.startsWith("custom-")?c("settings.multimodal.hint_custom"):c("settings.multimodal.hint_preset")})]}),e.jsxs("div",{className:"bg-ink/5 rounded-lg p-3",children:[e.jsx("div",{className:"text-label font-medium text-ink-muted mb-2",children:c("settings.multimodal.override_title")}),e.jsx("div",{className:"text-caption text-ink-muted mb-2",children:c("settings.multimodal.override_bridge_hint")}),e.jsxs("div",{className:"space-y-3 mt-1",children:[L&&e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-label",children:[e.jsx($e,{className:"w-3.5 h-3.5 text-ink-faint shrink-0","aria-hidden":"true"}),e.jsx("span",{className:"font-medium text-ink-strong",children:L.label}),e.jsx("code",{className:"text-ink-faint font-mono break-all",children:L.defaultModel}),e.jsx("span",{className:"text-ink-faint break-all min-w-0",children:L.baseUrl})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("button",{onClick:()=>void A(),disabled:k,"data-testid":"vision-override-test",className:"btn-3d-neutral px-4 py-1.5 text-label disabled:opacity-50",children:c(k?"settings.testing":"settings.multimodal.test_override")}),e.jsx("button",{onClick:()=>S(l=>!l),className:"text-label text-accent hover:underline",children:c("settings.multimodal.replace_custom")}),e.jsx("button",{onClick:()=>void D(),className:"text-label text-ink-muted hover:text-ink-strong",children:c("settings.multimodal.stop_override")}),o&&e.jsxs("span",{className:`text-label inline-flex items-center gap-1 ${o.ok?"text-brand":"text-warning"}`,children:[o.ok?e.jsx(ne,{className:"w-4 h-4","aria-hidden":"true"}):e.jsx(he,{className:"w-4 h-4","aria-hidden":"true"}),o.detail]})]})]}),N&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-label",children:[e.jsx("span",{className:"text-ink-muted",children:c("settings.multimodal.legacy_preset",{label:N.label})}),e.jsx("button",{onClick:()=>void D(),className:"text-label text-ink-muted hover:text-ink-strong underline",children:c("settings.multimodal.stop_override")})]}),!L&&!N&&e.jsxs(e.Fragment,{children:[z.map(l=>e.jsxs("button",{onClick:()=>void I(l),className:"w-full text-left px-3 py-2 rounded-lg bg-surface-1 hover:bg-surface-3 transition-colors","data-testid":`vision-pick-${l.id}`,children:[e.jsx("span",{className:"text-label font-medium text-ink-strong",children:l.label}),e.jsx("span",{className:"text-label text-ink-faint font-mono break-all ml-2",children:l.defaultModel})]},l.id)),(g||z.length===0)&&e.jsx(ye,{kind:"vision",testPrefix:"vision-custom",titleKey:"settings.custom.form_title_vision",modelPhKey:"settings.custom.model_ph_vision",onSaved:l=>void I(l),onCancel:()=>S(!1)}),z.length>0&&e.jsx("button",{onClick:()=>S(l=>!l),className:"text-label text-accent hover:underline",children:c(g?"action.cancel":"settings.custom.new")})]})]})]}),e.jsxs("div",{className:"bg-ink/5 rounded-lg p-3 flex items-center gap-3",children:[e.jsx(ae,{checked:w,onChange:V,label:c("settings.mathvision.toggle"),testid:"math-vision-toggle"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-label font-medium text-ink-strong",children:c("settings.mathvision.toggle")}),e.jsx("div",{className:"text-caption text-ink-muted",children:c("settings.mathvision.desc")})]})]})]})]}):null}function ft(){const t=de(),[x,b]=a.useState(!1),[p,c]=a.useState(!1);a.useEffect(()=>{i.getSetting("flag_memory_system").then(r=>{b(r==="true"),c(!0)})},[]);const d=async()=>{const r=!x;b(r),await i.setSetting("flag_memory_system",String(r))};return p?e.jsxs("div",{className:"px-4 py-3.5 flex items-center gap-3",children:[e.jsx(ae,{checked:x,onChange:d,label:t("settings.memory.toggle"),testid:"memory-toggle"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-body font-medium text-ink-strong",children:t("settings.memory.toggle")}),e.jsx("div",{className:"text-label text-ink-muted",children:t("settings.memory.toggle.desc")})]})]}):null}function bt(){const t=de(),[x,b]=a.useState(!0),[p,c]=a.useState(!1),d=a.useSyncExternalStore(Ze,Qe),[r,h]=a.useState(!0),[m,j]=a.useState(!1),T=typeof window<"u"&&!!window.__lookatstudyWeb;a.useEffect(()=>{i.getSetting("companion_enabled").then(o=>{b(o!=="false"&&o!=="0"),c(!0)}),i.getSetting("companion_sfx").then(o=>{h(o!=="false"&&o!=="0")}),i.getSetting("companion_pet_mode").then(o=>{j(o==="1")})},[]);const g=async()=>{const o=!x;b(o),await i.setSetting("companion_enabled",String(o)),window.dispatchEvent(new Event("companion-config-changed"))},S=async()=>{const o=!r;h(o),await i.setSetting("companion_sfx",String(o)),window.dispatchEvent(new Event("companion-config-changed"))},k=async()=>{const o=!m;j(o),await i.setSetting("companion_pet_mode",o?"1":"0"),window.dispatchEvent(new Event("companion-config-changed"))},P=async o=>{o!==d.form&&(await i.setSetting("companion_form",o),window.dispatchEvent(new Event("companion-config-changed")))};return p?e.jsxs("div",{className:"px-4 py-3.5 flex flex-col gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(ae,{checked:x,onChange:g,label:t("settings.companion.toggle"),testid:"companion-toggle"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-body font-medium text-ink-strong",children:t("settings.companion.toggle")}),e.jsx("div",{className:"text-label text-ink-muted",children:t("settings.companion.toggle.desc")})]})]}),x&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(ae,{checked:r,onChange:S,label:t("settings.companion.sfx"),testid:"companion-sfx-toggle"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-body font-medium text-ink-strong",children:t("settings.companion.sfx")}),e.jsx("div",{className:"text-label text-ink-muted",children:t("settings.companion.sfx.desc")})]})]}),!T&&e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(ae,{checked:m,onChange:k,label:t("settings.companion.pet"),testid:"companion-pet-toggle"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-body font-medium text-ink-strong",children:t("settings.companion.pet")}),e.jsx("div",{className:"text-label text-ink-muted",children:t("settings.companion.pet.desc")})]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-label text-ink-muted mb-2",children:t("settings.companion.form")}),e.jsx("div",{className:"flex flex-wrap gap-2",role:"radiogroup","aria-label":t("settings.companion.form"),children:et.map(o=>{const _=d.form===o;return e.jsxs("button",{type:"button",role:"radio","aria-checked":_,"data-testid":`companion-form-${o}`,onClick:()=>{P(o)},className:`flex flex-col items-center gap-0.5 rounded-xl p-1.5 border motion-safe:transition-colors
7
- ${_?"border-[var(--accent)] bg-surface-2 shadow-card":"border-[var(--border-faint)] hover:bg-surface-2"}`,title:t(`companion.form.${o}.desc`),children:[e.jsx(tt,{form:o,expression:"happy",pose:"float",size:64}),e.jsx("span",{className:`text-label ${_?"text-ink-strong font-medium":"text-ink-muted"}`,children:t(`companion.form.${o}.name`)})]},o)})})]})]})]}):null}function ae({checked:t,onChange:x,label:b,testid:p}){return e.jsx("button",{type:"button",role:"switch","aria-checked":t,"aria-label":b,onClick:x,"data-testid":p,className:`relative w-12 h-6 rounded-full transition-colors shrink-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/60 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface-2)] ${t?"bg-brand":"bg-ink/20 hover:bg-ink/25"}`,children:e.jsx("span",{className:`absolute left-0.5 top-1/2 -translate-y-1/2 w-5 h-5 rounded-full bg-white shadow transition-transform ${t?"translate-x-6":""}`})})}const vt=[{id:"zh-CN-XiaoxiaoNeural",label:"zh-CN · 晓晓(女)"},{id:"zh-CN-XiaoyiNeural",label:"zh-CN · 晓伊(女)"},{id:"zh-CN-YunxiNeural",label:"zh-CN · 云希(男)"},{id:"zh-CN-YunyangNeural",label:"zh-CN · 云扬(男·新闻)"},{id:"zh-CN-liaoning-XiaobeiNeural",label:"zh-CN · 晓北(女·东北)"},{id:"zh-CN-shaanxi-XiaoniNeural",label:"zh-CN · 晓妮(女·陕西)"},{id:"en-US-AriaNeural",label:"en-US · Aria(女)"},{id:"en-US-GuyNeural",label:"en-US · Guy(男)"},{id:"en-US-JennyNeural",label:"en-US · Jenny(女)"}],jt=[{sid:"45",label:"zf_xiaobei(女)"},{sid:"46",label:"zf_xiaoni(女)"},{sid:"47",label:"zf_xiaoxiao(女)"},{sid:"48",label:"zf_xiaoyi(女·默认)"},{sid:"49",label:"zm_yunjian(男)"},{sid:"50",label:"zm_yunxi(男)"},{sid:"51",label:"zm_yunxia(男)"},{sid:"52",label:"zm_yunyang(男)"}];function Nt(){const t=de(),[x,b]=a.useState([]),[p,c]=a.useState(null),[d,r]=a.useState(null),[h,m]=a.useState(null),[j,T]=a.useState(null),[g,S]=a.useState("edge"),[k,P]=a.useState("zh-CN-XiaoxiaoNeural"),[o,_]=a.useState("48"),[w,W]=a.useState("1.0"),[B,V]=a.useState(""),[I,D]=a.useState(""),[A,z]=a.useState([]),L=typeof window<"u"&&"speechSynthesis"in window,[N,l]=a.useState("local"),[H,Q]=a.useState("asr-whisper-turbo"),[re,ge]=a.useState(!0),[ce,ee]=a.useState([]),[ie,le]=a.useState(!1),[U,me]=a.useState(!1),[pe,O]=a.useState(!1),[fe,te]=a.useState(!1),[$,be]=a.useState(!1),[Y,n]=a.useState(null),[f,E]=a.useState(!1),[J,M]=a.useState(null),[y,C]=a.useState(null),q=a.useCallback(()=>{i.listCustomProviders().then(s=>ee(s.filter(u=>u.kind==="tts"||u.kind==="asr"))).catch(()=>{})},[]);a.useEffect(()=>{Promise.all([i.getSetting("tts_engine"),i.getSetting("tts_voice_edge"),i.getSetting("tts_sid_local"),i.getSetting("tts_speed"),i.getSetting("tts_custom_voice"),i.getSetting("tts_system_voice"),i.getSetting("asr_engine"),i.getSetting("asr_local_model"),i.getSetting("asr_auto_stop")]).then(([s,u,K,X,ke,Pe,Ae,Se,Je])=>{s&&S(s),u&&P(u),K&&_(K),X&&W(X),ke&&V(ke),Pe&&D(Pe),Ae&&l(Ae),(Se==="asr-whisper-turbo"||Se==="asr-whisper-small")&&Q(Se),ge(Je!=="0")}),q()},[q]),a.useEffect(()=>{if(typeof window>"u"||!("speechSynthesis"in window))return;const s=()=>z(dt(window.speechSynthesis.getVoices()));return s(),window.speechSynthesis.addEventListener("voiceschanged",s),()=>window.speechSynthesis.removeEventListener("voiceschanged",s)},[]);const ue=a.useCallback(()=>{window.api.getSpeechModelStatus().then(s=>b(s)).catch(()=>{})},[]);a.useEffect(()=>(ue(),window.api.on("speech:modelProgress",u=>{m({id:u.id,pct:Math.floor(u.progress*100),label:u.currentFile?u.currentFile.split("/").pop()??"":""})})),[ue]);const Fe=s=>{r(null),c(s),m({id:s,pct:0,label:""}),window.api.ensureSpeechModel(s).then(()=>{c(null),m(null),ue()}).catch(u=>{c(null),m(null),r(u instanceof Error?u.message:String(u)),ue()})},Re=s=>{c(s),T(null),window.api.deleteSpeechModel(s).then(ue).catch(u=>r(u instanceof Error?u.message:String(u))).finally(()=>c(null))},Ve=s=>t(s==="tts-kokoro"?"settings.speech.model.tts":s==="asr-whisper-turbo"?"settings.speech.model.asr_turbo":"settings.speech.model.asr_small"),Ie=s=>t(s==="asr-whisper-turbo"?"settings.speech.model.turbo_short":"settings.speech.model.small_short"),De=s=>s.startsWith("asr-whisper")?t("settings.speech.license_mit"):t("settings.speech.license"),Ee=s=>t(s==="ready"?"settings.speech.state.ready":s==="error"?"settings.speech.state.error":"settings.speech.state.absent"),Te=s=>{var u;return((u=x.find(K=>K.id===s))==null?void 0:u.state)??"absent"},oe=s=>{S(s),n(null),i.setSetting("tts_engine",s),we()},Oe=s=>{D(s),i.setSetting("tts_system_voice",s),we()},ve=s=>{l(s),M(null),i.setSetting("asr_engine",s)},je=ce.filter(s=>s.kind==="tts"),Ne=ce.filter(s=>s.kind==="asr"),Z=g.startsWith("custom-")?je.find(s=>s.id===g)??null:null,se=N.startsWith("custom-")?Ne.find(s=>s.id===N)??null:null,Ge=g==="azure",Be=N==="groq",qe=N==="azure",Xe=async()=>{if(!(!Z||$)){be(!0),n(null);try{n(await i.testCustomTts({providerId:Z.id}))}catch(s){n({ok:!1,detail:s instanceof Error?s.message:String(s)})}finally{be(!1)}}},He=async()=>{if(!(!se||f)){E(!0),M(null);try{M(await i.testCustomAsr({providerId:se.id}))}catch(s){M({ok:!1,detail:s instanceof Error?s.message:String(s)})}finally{E(!1)}}},Ye=async(s,u)=>{C(null);try{await i.deleteCustomProvider(s),u==="tts"&&g===s&&oe("edge"),u==="asr"&&N===s&&ve("local"),q()}catch{}},Me=s=>{const u=x.find(X=>X.id===s),K=(u==null?void 0:u.state)??"absent";return e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-label font-medium text-ink-strong truncate",children:Ve(s)}),e.jsxs("div",{className:"text-caption text-ink-muted",children:[Ee(K)," · ",De(s)]}),p===s&&(h==null?void 0:h.id)===s&&e.jsx("div",{className:"mt-1.5 h-1.5 rounded-full bg-ink/[0.08] overflow-hidden","data-testid":`speech-dl-bar-${s}`,children:e.jsx("div",{className:"h-full bg-brand transition-all",style:{width:`${h.pct}%`}})}),p===s&&(h==null?void 0:h.id)===s&&e.jsxs("div",{className:"text-caption text-ink-faint mt-0.5","data-testid":`speech-dl-pct-${s}`,children:[h.pct,"%",h.label?` · ${h.label}`:""]})]}),K==="ready"?j===s?e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"text-caption text-warning",children:t("settings.speech.confirm_del")}),e.jsx("button",{onClick:()=>Re(s),className:"text-label text-warning hover:underline","data-testid":`speech-del-confirm-${s}`,children:t("settings.speech.delete")}),e.jsx("button",{onClick:()=>T(null),className:"text-label text-ink-muted hover:text-ink-strong",children:t("action.cancel")})]}):e.jsx("button",{onClick:()=>T(s),disabled:p===s,className:"text-label text-ink-muted hover:text-warning disabled:opacity-40","data-testid":`speech-del-${s}`,children:t("settings.speech.delete")}):e.jsx("button",{onClick:()=>Fe(s),disabled:p!=null||K==="downloading",className:"btn-3d-brand px-3 py-1 text-label disabled:opacity-40","data-testid":`speech-dl-${s}`,children:t(p===s||K==="downloading"?"settings.speech.downloading":"settings.speech.download")})]},s)},Le=(s,u,K,X,ke)=>e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-label",children:[e.jsx($e,{className:"w-3.5 h-3.5 text-ink-faint shrink-0","aria-hidden":"true"}),e.jsx("span",{className:"font-medium text-ink-strong",children:s.label}),e.jsx("code",{className:"text-ink-faint font-mono break-all",children:s.defaultModel}),e.jsx("span",{className:"text-ink-faint break-all min-w-0",children:s.baseUrl}),s.hasApiKey&&e.jsxs("span",{className:"text-brand shrink-0 inline-flex items-center gap-0.5",children:[e.jsx(ne,{className:"w-3.5 h-3.5","aria-hidden":"true"}),t("settings.speech.key_saved")]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsx("button",{onClick:()=>void ke(),disabled:K,className:"btn-3d-neutral px-3 py-1 text-label disabled:opacity-40","data-testid":`${u}-custom-test`,children:t(K?"settings.testing":"settings.test")}),y===s.id?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-caption text-warning",children:t("settings.speech.confirm_del_custom")}),e.jsx("button",{onClick:()=>void Ye(s.id,u),className:"text-label text-warning hover:underline","data-testid":`${u}-custom-del-confirm`,children:t("settings.speech.delete")}),e.jsx("button",{onClick:()=>C(null),className:"text-label text-ink-muted hover:text-ink-strong",children:t("action.cancel")})]}):e.jsx("button",{onClick:()=>C(s.id),className:"text-label text-ink-muted hover:text-warning","data-testid":`${u}-custom-del`,children:t("settings.speech.delete")}),X&&e.jsxs("span",{className:`text-label inline-flex items-center gap-1 ${X.ok?"text-brand":"text-warning"}`,children:[X.ok?e.jsx(ne,{className:"w-4 h-4","aria-hidden":"true"}):e.jsx(he,{className:"w-4 h-4","aria-hidden":"true"}),X.detail]})]})]});return e.jsxs("div",{"data-testid":"settings-speech",children:[e.jsxs("div",{className:v(!1),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-2",children:t("settings.speech.tts_title")}),e.jsxs("div",{className:"flex gap-2 flex-wrap",children:[e.jsx("button",{onClick:()=>{oe("edge"),le(!1),O(!1)},"data-testid":"tts-engine-edge","aria-pressed":g==="edge",className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${g==="edge"?R:F}`,children:t("settings.speech.engine.edge")}),e.jsxs("button",{onClick:()=>{oe("local"),le(!1),O(!1)},"data-testid":"tts-engine-local","aria-pressed":g==="local",className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${g==="local"?R:F}`,children:[t("settings.speech.engine.local"),Te("tts-kokoro")!=="ready"?` · ${t("settings.speech.state.absent")}`:""]}),e.jsx("button",{onClick:()=>{oe("system"),le(!1),O(!1)},disabled:!L,"data-testid":"tts-engine-system","aria-pressed":g==="system",title:L?void 0:t("settings.speech.engine.system_unavailable"),className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${g==="system"?R:F} ${L?"":"opacity-40 cursor-not-allowed"}`,children:t("settings.speech.engine.system")}),e.jsx("button",{onClick:()=>{le(s=>!s),ie||O(!1)},"data-testid":"tts-engine-custom","aria-pressed":g.startsWith("custom-")||ie,className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${g.startsWith("custom-")||ie?R:F}`,children:t("settings.speech.engine.custom")}),Ge&&e.jsxs("button",{disabled:!0,"data-testid":"tts-engine-azure",className:"px-4 py-2 rounded-xl text-body font-bold opacity-50 cursor-not-allowed",children:["Azure · ",t("settings.speech.legacy")]})]}),g==="edge"&&e.jsx("p",{className:"text-label text-ink-muted mt-2",children:t("settings.speech.engine.edge_note")})]}),g==="edge"&&e.jsxs("div",{className:v(!1),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:t("settings.speech.voice")}),e.jsx("select",{value:k,onChange:s=>{P(s.target.value),i.setSetting("tts_voice_edge",s.target.value)},"data-testid":"tts-voice-select",className:`${G} w-full min-w-0 px-2.5 py-1.5`,children:vt.map(s=>e.jsx("option",{value:s.id,children:s.label},s.id))})]}),g==="local"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:v(!1),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:t("settings.speech.voice")}),e.jsx("select",{value:o,onChange:s=>{_(s.target.value),i.setSetting("tts_sid_local",s.target.value)},"data-testid":"tts-sid-select",className:`${G} w-full min-w-0 px-2.5 py-1.5`,children:jt.map(s=>e.jsx("option",{value:s.sid,children:s.label},s.sid))})]}),e.jsx("div",{className:v(!1),children:Me("tts-kokoro")})]}),g==="system"&&e.jsx(e.Fragment,{children:e.jsxs("div",{className:v(!1),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:t("settings.speech.voice")}),e.jsxs("select",{value:I,onChange:s=>Oe(s.target.value),"data-testid":"tts-system-voice-select",className:`${G} w-full min-w-0 px-2.5 py-1.5`,children:[e.jsx("option",{value:"",children:t("settings.speech.voice_auto")}),A.map(s=>e.jsx("option",{value:s.name,children:ot(s)},s.voiceURI))]}),e.jsx("p",{className:"text-label text-ink-muted mt-2",children:t("settings.speech.engine.system_note")})]})}),ie&&e.jsx("div",{className:v(!1),children:e.jsxs("div",{className:"space-y-3",children:[Z&&Le(Z,"tts",$,Y,Xe),Z&&e.jsxs("div",{children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:t("settings.speech.voice")}),e.jsx("input",{type:"text",value:B,onChange:s=>V(s.target.value),onBlur:()=>void i.setSetting("tts_custom_voice",B.trim()),placeholder:t("settings.speech.custom_voice_ph"),"data-testid":"tts-custom-voice",className:`${G} w-full min-w-0 px-2.5 py-1.5 font-mono`})]}),!Z&&je.map(s=>e.jsxs("button",{onClick:()=>oe(s.id),className:"w-full text-left px-3 py-2 rounded-lg bg-surface-1 hover:bg-surface-3 transition-colors","data-testid":`tts-pick-${s.id}`,children:[e.jsx("span",{className:"text-label font-medium text-ink-strong",children:s.label}),e.jsx("span",{className:"text-label text-ink-faint font-mono break-all ml-2",children:s.defaultModel})]},s.id)),(pe||!Z&&je.length===0)&&e.jsx(ye,{kind:"tts",showProtocol:!1,testPrefix:"tts-custom",titleKey:"settings.custom.form_title_tts",modelPhKey:"settings.custom.model_ph_tts",testOverride:s=>i.testCustomTts({baseUrl:s.baseUrl,apiKey:s.apiKey||void 0,model:s.model}),onSaved:s=>{oe(s.id),O(!1),q()},onCancel:()=>O(!1)}),(Z||je.length>0)&&e.jsx("button",{onClick:()=>O(s=>!s),className:"text-label text-accent hover:underline",children:t(pe?"action.cancel":"settings.custom.new")})]})}),e.jsx("div",{className:v(!0),children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-label font-medium text-ink-strong shrink-0 w-14",children:t("settings.speech.speed")}),e.jsx("input",{type:"range",min:"0.5",max:"2",step:"0.05",value:w,onChange:s=>W(s.target.value),onPointerUp:()=>{i.setSetting("tts_speed",w),we()},onKeyUp:()=>{i.setSetting("tts_speed",w),we()},"data-testid":"tts-speed-range",className:"flex-1 min-w-0 accent-[var(--brand)]"}),e.jsxs("span",{className:"text-label text-ink-muted tabular-nums w-10 text-right","data-testid":"tts-speed-value",children:[Number(w).toFixed(2),"x"]})]})}),e.jsxs("div",{className:v(!0),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-2",children:t("settings.speech.asr_title")}),e.jsxs("div",{className:"flex gap-2 flex-wrap",children:[e.jsx("button",{onClick:()=>{ve("local"),me(!1),te(!1)},"data-testid":"asr-engine-local","aria-pressed":N==="local",className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${N==="local"?R:F}`,children:t("settings.speech.asr_engine.local")}),e.jsx("button",{onClick:()=>{me(s=>!s),U||te(!1)},"data-testid":"asr-engine-custom","aria-pressed":N.startsWith("custom-")||U,className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${N.startsWith("custom-")||U?R:F}`,children:t("settings.speech.engine.custom")}),Be&&e.jsxs("button",{disabled:!0,"data-testid":"asr-engine-groq",className:"px-4 py-2 rounded-xl text-body font-bold opacity-50 cursor-not-allowed",children:["Groq · ",t("settings.speech.legacy")]}),qe&&e.jsxs("button",{disabled:!0,"data-testid":"asr-engine-azure",className:"px-4 py-2 rounded-xl text-body font-bold opacity-50 cursor-not-allowed",children:["Azure · ",t("settings.speech.legacy")]})]}),N==="local"?e.jsx("p",{className:"text-label text-ink-muted mt-2",children:t("settings.speech.asr_engine.local_note")}):N.startsWith("custom-")&&e.jsx("p",{className:"text-label text-ink-muted mt-2",children:t("settings.speech.asr_engine.custom_note")})]}),N==="local"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:v(!1),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:t("settings.model")}),e.jsx("select",{value:H,onChange:s=>{Q(s.target.value),i.setSetting("asr_local_model",s.target.value)},"data-testid":"asr-model-select",className:`${G} w-full min-w-0 px-2.5 py-1.5`,children:["asr-whisper-turbo","asr-whisper-small"].map(s=>e.jsxs("option",{value:s,children:[Ie(s)," · ",Ee(Te(s))]},s))})]}),e.jsx("div",{className:v(!1),children:Me(H)})]}),U&&e.jsx("div",{className:v(!1),children:e.jsxs("div",{className:"space-y-3",children:[se&&Le(se,"asr",f,J,He),!se&&Ne.map(s=>e.jsxs("button",{onClick:()=>ve(s.id),className:"w-full text-left px-3 py-2 rounded-lg bg-surface-1 hover:bg-surface-3 transition-colors","data-testid":`asr-pick-${s.id}`,children:[e.jsx("span",{className:"text-label font-medium text-ink-strong",children:s.label}),e.jsx("span",{className:"text-label text-ink-faint font-mono break-all ml-2",children:s.defaultModel})]},s.id)),(fe||!se&&Ne.length===0)&&e.jsx(ye,{kind:"asr",showProtocol:!1,testPrefix:"asr-custom",titleKey:"settings.custom.form_title_asr",modelPhKey:"settings.custom.model_ph_asr",testOverride:s=>i.testCustomAsr({baseUrl:s.baseUrl,apiKey:s.apiKey||void 0,model:s.model}),onSaved:s=>{ve(s.id),te(!1),q()},onCancel:()=>te(!1)}),(se||Ne.length>0)&&e.jsx("button",{onClick:()=>te(s=>!s),className:"text-label text-accent hover:underline",children:t(fe?"action.cancel":"settings.custom.new")})]})}),e.jsxs("div",{className:v(!0),children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(ae,{checked:re,onChange:()=>{const s=!re;ge(s),i.setSetting("asr_auto_stop",s?"1":"0")},label:t("settings.speech.asr_auto_stop"),testid:"asr-auto-stop-toggle"}),e.jsx("div",{className:"text-body font-medium text-ink-strong",children:t("settings.speech.asr_auto_stop")})]}),e.jsx("p",{className:"text-label text-ink-muted mt-2",children:t("settings.speech.asr_ux_note")})]}),d&&e.jsx("div",{className:"px-4 py-3 text-label text-warning break-all",role:"alert",children:d==="engine-unavailable"?t("chat.speech.engine_unavailable"):d})]})}export{yt as SettingsView};
@@ -1 +0,0 @@
1
- var f=Object.defineProperty;var P=(s,e,t)=>e in s?f(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var g=(s,e,t)=>P(s,typeof e!="symbol"?e+"":e,t);const S={listCourses:"course:list",getCourseTree:"course:getTree",importCourseFromRepo:"course:importFromRepo",detectLanguages:"course:detectLanguages",getCourseLanguages:"course:getLanguages",setCourseLanguage:"course:setLanguage",getCourseLanguage:"course:getLanguage",analyzeRepo:"course:analyzeRepo",importAnalyzed:"course:importAnalyzed",importLocalFolder:"import:localFolder",importGithub:"import:github",importUrl:"import:url",importText:"import:text",importEpub:"import:epub",importAudio:"import:audio",importCancel:"import:cancel",importResume:"import:resume",importPack:"import:importPack",exportPack:"import:exportPack",generateCourseFromMarkdown:"course:generateFromMarkdown",deleteCourse:"course:delete",restructureCourse:"course:restructure",generateSummaries:"course:generateSummaries",getStarterPrompts:"course:getStarterPrompts",getNodeContent:"course:getNodeContent",getNodeSummary:"course:getNodeSummary",getPracticeForLesson:"course:getPracticeForLesson",getLessonForPractice:"course:getLessonForPractice",listAssetsByNode:"asset:listByNode",listAssetsByCourse:"asset:listByCourse",getAssetDataUrl:"asset:getDataUrl",repairMermaidDiagram:"artifact:repairMermaid",getProgress:"progress:get",updateProgress:"progress:update",markNodeAttempted:"progress:markAttempted",generateExercise:"exercise:generate",listExercises:"exercise:list",submitExerciseAnswer:"exercise:submit",examPrepare:"exam:prepare",examRegenerate:"exam:regenerate",examGetStatus:"exam:getStatus",examStartAttempt:"exam:startAttempt",examRecordAnswer:"exam:recordAnswer",examSubmitAttempt:"exam:submitAttempt",getDueReviews:"srs:getDue",getAllSrsItems:"srs:getAll",recordReview:"srs:record",getStreak:"streak:get",touchStreakToday:"streak:touchToday",listSouls:"soul:list",getSoul:"soul:get",createSoul:"soul:create",setActiveSoul:"soul:setActive",getActiveSoul:"soul:getActive",agentChat:"agent:chat",abortAgentChat:"agent:abort",getChatHistory:"agent:getHistory",clearChatHistory:"agent:clearHistory",agentChatThread:"agent:chatThread",abortAgentChatThread:"agent:abortThread",getContextUsage:"agent:getContextUsage",getSpeechModelStatus:"speech:getModelStatus",ensureSpeechModel:"speech:ensureModel",deleteSpeechModel:"speech:deleteModel",ttsSpeak:"speech:ttsSpeak",ttsStop:"speech:ttsStop",asrTranscribe:"speech:asrTranscribe",testCustomTts:"speech:testCustomTts",testCustomAsr:"speech:testCustomAsr",getAttachmentDataUrl:"attachment:getDataUrl",isAgentReady:"agent:isReady",getProviderPresets:"agent:getProviderPresets",testLlmConnection:"agent:testConnection",testCustomProvider:"agent:testCustomProvider",discoverModels:"agent:discoverModels",discoverProviderModels:"agent:discoverProviderModels",listCustomProviders:"customProvider:list",createCustomProvider:"customProvider:create",updateCustomProvider:"customProvider:update",deleteCustomProvider:"customProvider:delete",listPendingProposals:"proposal:listPending",applyProposal:"proposal:apply",rejectProposal:"proposal:reject",recordQuizAnswer:"quiz:recordAnswer",logFriction:"friction:log",getDashboard:"dashboard:get",searchContent:"search:content",updateMemory:"memory:update",getMemory:"memory:get",consolidateMemory:"consolidate:run",getSetting:"settings:get",setSetting:"settings:set",companionPetSetClickThrough:"companionPet:setClickThrough",getXpStatus:"xp:getStatus",exportCourse:"course:export",canvasList:"canvas:list",canvasSave:"canvas:save",canvasDelete:"canvas:delete",canvasTogglePin:"canvas:togglePin",canvasSaveUserNote:"canvas:saveUserNote",canvasRecordQuizResult:"canvas:recordQuizResult",canvasUpdateUserNoteComment:"canvas:updateUserNoteComment",threadList:"thread:list",threadCreate:"thread:create",threadUpdate:"thread:update",threadDelete:"thread:delete",threadGetMessages:"thread:getMessages",threadFindRecentByNode:"thread:findRecentByNode"},h=1,m="ls-serve-token";function y(){const s=new URLSearchParams(window.location.search).get("token");if(s){try{window.localStorage.setItem(m,s)}catch{}return s}try{return window.localStorage.getItem(m)??""}catch{return""}}class p{constructor(){g(this,"ws",null);g(this,"everOpened",!1);g(this,"pending",new Map);g(this,"listeners",new Map);g(this,"connectPromise",null)}connect(){return this.ws&&this.ws.readyState===WebSocket.OPEN?Promise.resolve(this.ws):this.connectPromise?this.connectPromise:(this.connectPromise=new Promise((e,t)=>{const c=window.location.protocol==="https:"?"wss:":"ws:",o=y(),a=`${c}//${window.location.host}/?token=${encodeURIComponent(o)}`;let i=!1;const d=new WebSocket(a);this.ws=d;const l=window.setTimeout(()=>{i||(i=!0,this.connectPromise=null,t(new Error("连接学习服务超时(serve 未启动?)")))},5e3);d.addEventListener("open",()=>{this.everOpened=!0,window.clearTimeout(l),i||(i=!0,this.connectPromise=null,e(d))}),d.addEventListener("message",u=>{let r=null;try{r=JSON.parse(String(u.data))}catch{return}if(!(!r||r.v!==h)){if(r.type==="res"){const n=this.pending.get(r.id);if(!n)return;this.pending.delete(r.id),window.clearTimeout(n.timer),r.ok?n.resolve(r.result):n.reject(new Error(r.error))}else if(r.type==="event"){const n=this.listeners.get(r.channel);if(n)for(const v of n)v(...r.args)}}}),d.addEventListener("close",u=>{if(this.connectPromise=null,this.ws===d&&(this.ws=null),!i){i=!0,window.clearTimeout(l),t(new Error(A(u)));return}const r=u.code===4001?"学习服务拒绝了连接(token 无效)——请用启动时打印的带 token 链接打开":"与服务端的连接已断开";for(const[,n]of this.pending)window.clearTimeout(n.timer),n.reject(new Error(r));if(u.code===4001&&(this.everOpened=!1),this.pending.clear(),u.code===4001){window.dispatchEvent(new CustomEvent(C));return}this.everOpened&&window.setTimeout(()=>void this.connect().catch(()=>{}),2e3)}),d.addEventListener("error",()=>{})}),this.connectPromise)}static bytesToB64(e){const t=new Uint8Array(e);let c="";const o=32768;for(let a=0;a<t.length;a+=o)c+=String.fromCharCode(...t.subarray(a,a+o));return btoa(c)}async invoke(e,...t){var a,i;const c=await this.connect(),o=((i=(a=globalThis.crypto)==null?void 0:a.randomUUID)==null?void 0:i.call(a))??String(Math.random()).slice(2);return new Promise((d,l)=>{const u=window.setTimeout(()=>{this.pending.delete(o),l(new Error(`调用 ${e} 超时`))},3e5);this.pending.set(o,{resolve:d,reject:l,timer:u});const r=e==="speech:asrTranscribe"&&t[0]instanceof ArrayBuffer?[p.bytesToB64(t[0]),...t.slice(1)]:t;c.send(JSON.stringify({v:h,type:"req",id:o,channel:e,args:r}))})}on(e,t){const c=e==="speech:ttsAudio"?(...a)=>{const i=a[0];if(i&&typeof i.wavBase64=="string"){const d=atob(i.wavBase64),l=new Uint8Array(d.length);for(let n=0;n<d.length;n++)l[n]=d.charCodeAt(n);const{wavBase64:u,...r}=i;t({...r,wavBytes:l.buffer})}else t(...a)}:t;let o=this.listeners.get(e);return o||(o=new Set,this.listeners.set(e,o)),o.add(c),this.connect().catch(()=>{}),()=>{o.delete(c)}}}function b(){if(typeof window>"u")return!1;if(new URLSearchParams(window.location.search).get("token"))return!0;try{return!!window.localStorage.getItem(m)}catch{return!1}}function k(s){try{window.localStorage.setItem(m,s)}catch{}const e=new URL(window.location.href);e.searchParams.set("token",s),window.location.replace(e.toString())}const C="ls-web-token-rejected";function A(s){return s.code===4001?"学习服务拒绝了连接(token 无效)——请用启动时打印的带 token 链接打开":"无法连接学习服务(serve 未启动?)"}let w=!1;async function x(){if(w||window.api)return;w=!0;const s=new p,e={};for(const[t,c]of Object.entries(S))e[t]=(...o)=>s.invoke(c,...o);e.on=(t,c)=>s.on(t,c),window.api=e,window.__lookatstudyWeb=!0}function E(){return new p}export{C as TOKEN_REJECTED_EVENT,E as createWebTransportForTest,b as hasWebToken,x as installWebApi,k as setWebToken};
@@ -1 +0,0 @@
1
- import{U as a,C as n}from"./mermaid.core-DnUfrtbG.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as t,C as e}from"./chunk-X5GNSKZ3-SfQJru3P.js";import{_ as i}from"./render-O7CIS3YK-CAljsLJ1.js";import"./transform-B5_amWNh.js";import"./chunk-LV3HUYFY-BMeLji8S.js";import"./chunk-CXNFBKHE-Yg1W3fwo.js";import"./chunk-NDIOYS4C-D3FhOl3h.js";import"./chunk-ISA7TJRJ-CQ2Nqv8l.js";import"./mermaid-layout-elk.core-D_WjF9V9.js";import"./main-BFF415LN.js";import"./index-DjO1zEnx.js";import"./_commonjs-dynamic-modules-TDtrdbi3.js";var g={parser:t,get db(){return new e},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{g as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-GF5L2VYU-BaSh6M6u.js";import{_ as i}from"./mermaid.core-DnUfrtbG.js";import"./transform-B5_amWNh.js";import"./chunk-5VM5RSS4-BY3B5X_h.js";import"./chunk-XXDRQBXY-B1rrO-gc.js";import"./chunk-KBJHAD2P-DMDP7q8j.js";import"./chunk-2GRJ4B5K-CtMZR-aK.js";import"./main-BFF415LN.js";import"./index-DjO1zEnx.js";var b={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{b as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as t,C as e}from"./chunk-X5GNSKZ3-SfQJru3P.js";import{_ as i}from"./render-O7CIS3YK-CAljsLJ1.js";import"./transform-B5_amWNh.js";import"./chunk-LV3HUYFY-BMeLji8S.js";import"./chunk-CXNFBKHE-Yg1W3fwo.js";import"./chunk-NDIOYS4C-D3FhOl3h.js";import"./chunk-ISA7TJRJ-CQ2Nqv8l.js";import"./mermaid-layout-elk.core-D_WjF9V9.js";import"./main-BFF415LN.js";import"./index-DjO1zEnx.js";import"./_commonjs-dynamic-modules-TDtrdbi3.js";var g={parser:t,get db(){return new e},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{g as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-GF5L2VYU-BaSh6M6u.js";import{_ as i}from"./mermaid.core-DnUfrtbG.js";import"./transform-B5_amWNh.js";import"./chunk-5VM5RSS4-BY3B5X_h.js";import"./chunk-XXDRQBXY-B1rrO-gc.js";import"./chunk-KBJHAD2P-DMDP7q8j.js";import"./chunk-2GRJ4B5K-CtMZR-aK.js";import"./main-BFF415LN.js";import"./index-DjO1zEnx.js";var b={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{b as diagram};
@@ -1 +0,0 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:DIN Round,system-ui,-apple-system,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html,body,#root{height:100%}.text-caption{font-size:.75rem}.text-label{font-size:.825rem}.text-body{font-size:.875rem}.text-lead{font-size:1rem}.text-title{font-size:1.125rem}.text-hero{font-size:1.5rem}.canvas-grid{background-image:radial-gradient(rgb(var(--ink-rgb) / .1) 1px,transparent 1px);background-size:22px 22px;background-position:center}.canvas-stage-gesture{cursor:grab}.canvas-stage-gesture:active{cursor:grabbing}body{font-feature-settings:"cv02","cv03","cv04","cv11";-webkit-font-smoothing:antialiased;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation}input,textarea,[contenteditable]{-webkit-user-select:text;-moz-user-select:text;user-select:text}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.\!prose{color:var(--ink)!important;max-width:none!important}.prose{color:var(--ink);max-width:none}.\!prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6em!important;margin-bottom:.6em!important;line-height:1.65!important}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6em;margin-bottom:.6em;line-height:1.65}.\!prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead)!important;font-size:1.25em!important;line-height:1.6!important;margin-top:1.2em!important;margin-bottom:1.2em!important}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.\!prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:rgb(var(--accent-rgb))!important;text-decoration:none!important;font-weight:500!important}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:rgb(var(--accent-rgb));text-decoration:none;font-weight:500}.\!prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)):hover{text-decoration:underline!important}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)):hover{text-decoration:underline}.\!prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink-strong)!important;font-weight:700!important}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink-strong);font-weight:700}.\!prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit!important}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.\!prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit!important}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.\!prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit!important}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.\!prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal!important;margin-top:.5em!important;margin-bottom:.5em!important;padding-inline-start:1.625em!important;padding-left:1.3em!important}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:.5em;margin-bottom:.5em;padding-inline-start:1.625em;padding-left:1.3em}.\!prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha!important}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.\!prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha!important}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.\!prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha!important}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.\!prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha!important}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.\!prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman!important}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.\!prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman!important}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.\!prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman!important}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.\!prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman!important}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.\!prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal!important}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.\!prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc!important;margin-top:.5em!important;margin-bottom:.5em!important;padding-inline-start:1.625em!important;padding-left:1.3em!important}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:.5em;margin-bottom:.5em;padding-inline-start:1.625em;padding-left:1.3em}.\!prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400!important;color:var(--tw-prose-counters)!important}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.\!prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)!important}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.\!prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings)!important;font-weight:600!important;margin-top:1.25em!important}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.\!prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:rgb(var(--border-rgb))!important;border-top-width:1px!important;margin-top:1.2em!important;margin-bottom:1.2em!important}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:rgb(var(--border-rgb));border-top-width:1px;margin-top:1.2em;margin-bottom:1.2em}.\!prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500!important;font-style:normal!important;color:var(--ink-muted)!important;border-inline-start-width:.25rem!important;border-inline-start-color:var(--tw-prose-quote-borders)!important;quotes:"“""”""‘""’"!important;margin-top:.8em!important;margin-bottom:.8em!important;padding-inline-start:1em!important;border-left-color:rgb(var(--accent-rgb))!important;border-left-width:3px!important;background-color:rgb(var(--accent-rgb) / .06)!important;padding-left:.9em!important;padding-top:.4em!important;padding-bottom:.4em!important;border-radius:0 .4rem .4rem 0!important}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:normal;color:var(--ink-muted);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:.8em;margin-bottom:.8em;padding-inline-start:1em;border-left-color:rgb(var(--accent-rgb));border-left-width:3px;background-color:rgb(var(--accent-rgb) / .06);padding-left:.9em;padding-top:.4em;padding-bottom:.4em;border-radius:0 .4rem .4rem 0}.\!prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote!important}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.\!prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote!important}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.\!prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink-strong)!important;font-weight:800!important;font-size:1.25rem!important;margin-top:1.25em!important;margin-bottom:.5em!important;line-height:1.1111111!important}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink-strong);font-weight:800;font-size:1.25rem;margin-top:1.25em;margin-bottom:.5em;line-height:1.1111111}.\!prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900!important;color:inherit!important}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.\!prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink-strong)!important;font-weight:700!important;font-size:1.1rem!important;margin-top:1.2em!important;margin-bottom:.4em!important;line-height:1.3333333!important;padding-bottom:.3em!important;border-bottom:1px solid rgb(var(--border-rgb))!important}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink-strong);font-weight:700;font-size:1.1rem;margin-top:1.2em;margin-bottom:.4em;line-height:1.3333333;padding-bottom:.3em;border-bottom:1px solid rgb(var(--border-rgb))}.\!prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800!important;color:inherit!important}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.\!prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink)!important;font-weight:700!important;font-size:1rem!important;margin-top:1em!important;margin-bottom:.3em!important;line-height:1.6!important}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink);font-weight:700;font-size:1rem;margin-top:1em;margin-bottom:.3em;line-height:1.6}.\!prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700!important;color:inherit!important}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.\!prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink)!important;font-weight:700!important;margin-top:.8em!important;margin-bottom:.2em!important;line-height:1.5!important;font-size:.9rem!important}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink);font-weight:700;margin-top:.8em;margin-bottom:.2em;line-height:1.5;font-size:.9rem}.\!prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700!important;color:inherit!important}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.\!prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6em!important;margin-bottom:.6em!important;border-radius:.5rem!important}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6em;margin-bottom:.6em;border-radius:.5rem}.\!prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block!important;margin-top:2em!important;margin-bottom:2em!important}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.\!prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em!important;margin-bottom:2em!important}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.\!prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500!important;font-family:inherit!important;color:var(--tw-prose-kbd)!important;box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows)!important;font-size:.875em!important;border-radius:.3125rem!important;padding-top:.1875em!important;padding-inline-end:.375em!important;padding-bottom:.1875em!important;padding-inline-start:.375em!important}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.\!prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:rgb(var(--accent-rgb))!important;font-weight:500!important;font-size:.85em!important;background-color:rgb(var(--surface-3-rgb) / .6)!important;padding:.15em .4em!important;border-radius:.3rem!important}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:rgb(var(--accent-rgb));font-weight:500;font-size:.85em;background-color:rgb(var(--surface-3-rgb) / .6);padding:.15em .4em;border-radius:.3rem}.\!prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:""!important}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:""}.\!prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:""!important}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:""}.\!prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"!important}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.\!prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"!important}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.\!prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit!important}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.\!prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit!important}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.\!prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit!important;font-size:.875em!important}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.\!prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit!important;font-size:.9em!important}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.\!prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit!important}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.\!prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit!important}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.\!prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit!important}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.\!prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink)!important;background-color:rgb(var(--surface-0-rgb))!important;overflow-x:auto!important;font-weight:400!important;font-size:.82em!important;line-height:1.55!important;margin-top:.7em!important;margin-bottom:.7em!important;border-radius:.5rem!important;padding-inline-end:1.1428571em!important;padding-inline-start:1.1428571em!important;padding:.9em 1em!important;border:1px solid rgb(var(--border-rgb))!important}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink);background-color:rgb(var(--surface-0-rgb));overflow-x:auto;font-weight:400;font-size:.82em;line-height:1.55;margin-top:.7em;margin-bottom:.7em;border-radius:.5rem;padding-inline-end:1.1428571em;padding-inline-start:1.1428571em;padding:.9em 1em;border:1px solid rgb(var(--border-rgb))}.\!prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent!important;border-width:0!important;border-radius:0!important;padding:0!important;font-weight:inherit!important;color:inherit!important;font-size:inherit!important;font-family:inherit!important;line-height:inherit!important}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.\!prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none!important}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.\!prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none!important}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.\!prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%!important;table-layout:auto!important;margin-top:.8em!important;margin-bottom:.8em!important;font-size:.85em!important;line-height:1.7142857!important;border-collapse:collapse!important;display:block!important;overflow-x:auto!important}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:.8em;margin-bottom:.8em;font-size:.85em;line-height:1.7142857;border-collapse:collapse;display:block;overflow-x:auto}.\!prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:2px!important;border-bottom-color:rgb(var(--brand-rgb))!important}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:2px;border-bottom-color:rgb(var(--brand-rgb))}.\!prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings)!important;font-weight:600!important;vertical-align:bottom!important;padding-inline-end:.5714286em!important;padding-bottom:.5714286em!important;padding-inline-start:.5714286em!important}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.\!prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px!important;border-bottom-color:var(--tw-prose-td-borders)!important}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.\!prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0!important}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.\!prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline!important}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.\!prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px!important;border-top-color:var(--tw-prose-th-borders)!important}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.\!prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top!important}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.\!prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start!important}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.\!prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0!important;margin-bottom:0!important}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.\!prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions)!important;font-size:.875em!important;line-height:1.4285714!important;margin-top:.8571429em!important}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.\!prose{--tw-prose-body: #374151 !important;--tw-prose-headings: #111827 !important;--tw-prose-lead: #4b5563 !important;--tw-prose-links: #111827 !important;--tw-prose-bold: #111827 !important;--tw-prose-counters: #6b7280 !important;--tw-prose-bullets: #d1d5db !important;--tw-prose-hr: #e5e7eb !important;--tw-prose-quotes: #111827 !important;--tw-prose-quote-borders: #e5e7eb !important;--tw-prose-captions: #6b7280 !important;--tw-prose-kbd: #111827 !important;--tw-prose-kbd-shadows: rgb(17 24 39 / 10%) !important;--tw-prose-code: #111827 !important;--tw-prose-pre-code: #e5e7eb !important;--tw-prose-pre-bg: #1f2937 !important;--tw-prose-th-borders: #d1d5db !important;--tw-prose-td-borders: #e5e7eb !important;--tw-prose-invert-body: #d1d5db !important;--tw-prose-invert-headings: #fff !important;--tw-prose-invert-lead: #9ca3af !important;--tw-prose-invert-links: #fff !important;--tw-prose-invert-bold: #fff !important;--tw-prose-invert-counters: #9ca3af !important;--tw-prose-invert-bullets: #4b5563 !important;--tw-prose-invert-hr: #374151 !important;--tw-prose-invert-quotes: #f3f4f6 !important;--tw-prose-invert-quote-borders: #374151 !important;--tw-prose-invert-captions: #9ca3af !important;--tw-prose-invert-kbd: #fff !important;--tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%) !important;--tw-prose-invert-code: #fff !important;--tw-prose-invert-pre-code: #d1d5db !important;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%) !important;--tw-prose-invert-th-borders: #4b5563 !important;--tw-prose-invert-td-borders: #374151 !important;font-size:1rem!important;line-height:1.75!important}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: rgb(17 24 39 / 10%);--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.\!prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0!important;margin-bottom:0!important}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.\!prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.25em!important;margin-bottom:.25em!important;padding-left:.2em!important}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.25em;margin-bottom:.25em;padding-left:.2em}.\!prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em!important}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.\!prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em!important}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.\!prose :where(.\!prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em!important;margin-bottom:.75em!important}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.\!prose :where(.\!prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em!important}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.\!prose :where(.\!prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em!important}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.\!prose :where(.\!prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em!important}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.\!prose :where(.\!prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em!important}.\!prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em!important;margin-bottom:.75em!important}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.\!prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em!important;margin-bottom:1.25em!important}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.\!prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em!important;padding-inline-start:1.625em!important}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.\!prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0!important}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.\!prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0!important}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.\!prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0!important}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.\!prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0!important}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.\!prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0!important}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.\!prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0!important}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.\!prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em!important;padding-inline-end:.5714286em!important;padding-bottom:.5714286em!important;padding-inline-start:.5714286em!important}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.\!prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0!important}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.\!prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0!important}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.\!prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em!important;margin-bottom:2em!important}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.\!prose :where(.\!prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0!important}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.\!prose :where(.\!prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0!important}.\!prose :where(em):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink)!important}.prose :where(em):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink)}.\!prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:rgb(var(--brand-rgb))!important}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:rgb(var(--brand-rgb))}.\!prose :where(th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink-strong)!important;font-weight:700!important;text-align:left!important;padding:.5em .7em!important;font-size:.95em!important}.prose :where(th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--ink-strong);font-weight:700;text-align:left;padding:.5em .7em;font-size:.95em}.\!prose :where(td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.45em .7em!important;border-bottom:1px solid rgb(var(--border-rgb))!important;vertical-align:top!important;color:var(--ink)!important}.prose :where(td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.45em .7em;border-bottom:1px solid rgb(var(--border-rgb));vertical-align:top;color:var(--ink)}.\!prose :where(tbody tr:nth-child(odd)):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:rgb(var(--surface-3-rgb) / .3)!important}.prose :where(tbody tr:nth-child(odd)):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:rgb(var(--surface-3-rgb) / .3)}.prose-sm{font-size:.875rem;line-height:1.7142857}.prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-top:.8888889em;margin-bottom:.8888889em}.prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.1111111em}.prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.1428571em;margin-top:0;margin-bottom:.8em;line-height:1.2}.prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.4285714em;margin-top:1.6em;margin-bottom:.8em;line-height:1.4}.prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;margin-top:1.5555556em;margin-bottom:.4444444em;line-height:1.5555556}.prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.4285714em;margin-bottom:.5714286em;line-height:1.4285714}.prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;border-radius:.3125rem;padding-top:.1428571em;padding-inline-end:.3571429em;padding-bottom:.1428571em;padding-inline-start:.3571429em}.prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em}.prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.6666667;margin-top:1.6666667em;margin-bottom:1.6666667em;border-radius:.25rem;padding-top:.6666667em;padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-inline-start:1.5714286em}.prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-inline-start:1.5714286em}.prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;margin-bottom:.2857143em}.prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}.prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}.prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}.prose-sm :where(.prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(.prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}.prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em}.prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;padding-inline-start:1.5714286em}.prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.8571429em;margin-bottom:2.8571429em}.prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.6666667em;padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.shadow-elevated{box-shadow:0 8px 24px -4px rgb(var(--shadow-rgb) / .18),0 2px 6px -2px rgb(var(--shadow-rgb) / .12)}.shadow-card{box-shadow:0 1px 3px -1px rgb(var(--shadow-rgb) / .08)}.shadow-pop{box-shadow:0 4px 12px -2px rgb(var(--shadow-rgb) / .14),0 1px 3px -1px rgb(var(--shadow-rgb) / .08)}.btn-3d{position:relative;border-radius:1rem;font-weight:700;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.btn-3d:active{--tw-translate-y: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-3d-brand{position:relative;border-radius:1rem;font-weight:700;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.btn-3d-brand:active{--tw-translate-y: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-3d-brand{--tw-bg-opacity: 1;background-color:rgb(var(--brand-rgb) / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));box-shadow:0 4px 0 0 var(--brand-dark)}.btn-3d-brand:hover{--tw-bg-opacity: 1;background-color:rgb(var(--brand-light-rgb) / var(--tw-bg-opacity, 1))}.btn-3d-brand:active{box-shadow:0 1px 0 0 var(--brand-dark)}.btn-3d-neutral{position:relative;border-radius:1rem;font-weight:700;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.btn-3d-neutral:active{--tw-translate-y: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-3d-neutral{--tw-bg-opacity: 1;background-color:rgb(229 229 229 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(38 38 38 / var(--tw-text-opacity, 1))}.btn-3d-neutral:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.btn-3d-neutral{box-shadow:0 4px rgb(var(--shadow-rgb) / .2)}.btn-3d-neutral:active{box-shadow:0 1px rgb(var(--shadow-rgb) / .2)}.btn-icon-3d-brand{position:relative;display:flex;align-items:center;justify-content:center;border-radius:9999px;font-weight:700;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.btn-icon-3d-brand:active{--tw-translate-y: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-icon-3d-brand{--tw-bg-opacity: 1;background-color:rgb(var(--brand-rgb) / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));box-shadow:0 3px 0 0 var(--brand-dark)}.btn-icon-3d-brand:hover{--tw-bg-opacity: 1;background-color:rgb(var(--brand-light-rgb) / var(--tw-bg-opacity, 1))}.btn-icon-3d-brand:active{box-shadow:0 1px 0 0 var(--brand-dark)}.btn-icon-3d-brand:disabled{cursor:not-allowed;background-color:#73737380;box-shadow:none}.btn-icon-3d-warning{position:relative;display:flex;align-items:center;justify-content:center;border-radius:9999px;font-weight:700;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.btn-icon-3d-warning:active{--tw-translate-y: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-icon-3d-warning{--tw-bg-opacity: 1;background-color:rgb(var(--warning-rgb) / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));box-shadow:0 3px 0 0 var(--warning-dark)}.btn-icon-3d-warning:hover{--tw-bg-opacity: 1;background-color:rgb(var(--warning-light-rgb) / var(--tw-bg-opacity, 1))}.btn-icon-3d-warning:active{box-shadow:0 1px 0 0 var(--warning-dark)}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.-right-0\.5{right:-.125rem}.-right-1{right:-.25rem}.-right-1\.5{right:-.375rem}.-top-0\.5{top:-.125rem}.-top-1{top:-.25rem}.-top-1\.5{top:-.375rem}.bottom-0{bottom:0}.bottom-1\.5{bottom:.375rem}.bottom-3{bottom:.75rem}.bottom-4{bottom:1rem}.bottom-full{bottom:100%}.left-0{left:0}.left-0\.5{left:.125rem}.left-1\/2{left:50%}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.right-48{right:12rem}.top-0{top:0}.top-1\/2{top:50%}.top-14{top:3.5rem}.top-4{top:1rem}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.float-right{float:right}.m-2{margin:.5rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-8{margin-top:2rem;margin-bottom:2rem}.\!mt-0{margin-top:0!important}.-mt-2{margin-top:-.5rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-5{margin-left:1.25rem}.ml-\[68px\]{margin-left:68px}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-px{margin-top:1px}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.\!hidden{display:none!important}.hidden{display:none}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[152px\]{height:152px}.h-\[var\(--app-height\,100vh\)\]{height:var(--app-height,100vh)}.h-auto{height:auto}.h-full{height:100%}.max-h-48{max-height:12rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.max-h-\[40vh\]{max-height:40vh}.max-h-\[420px\]{max-height:420px}.max-h-\[500px\]{max-height:500px}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-0{min-height:0px}.min-h-\[120px\]{min-height:120px}.min-h-\[160px\]{min-height:160px}.min-h-\[var\(--app-height\,100vh\)\]{min-height:var(--app-height,100vh)}.min-h-full{min-height:100%}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[220px\]{width:220px}.w-\[300px\]{width:300px}.w-\[min\(400px\,90vw\)\]{width:min(400px,90vw)}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[100px\]{min-width:100px}.min-w-\[3\.25rem\]{min-width:3.25rem}.min-w-\[320px\]{min-width:320px}.min-w-\[440px\]{min-width:440px}.min-w-\[72px\]{min-width:72px}.max-w-2xl{max-width:42rem}.max-w-\[10rem\]{max-width:10rem}.max-w-\[120px\]{max-width:120px}.max-w-\[12rem\]{max-width:12rem}.max-w-\[13rem\]{max-width:13rem}.max-w-\[140px\]{max-width:140px}.max-w-\[80ch\]{max-width:80ch}.max-w-\[85\%\]{max-width:85%}.max-w-\[90vw\]{max-width:90vw}.max-w-\[960px\]{max-width:960px}.max-w-\[calc\(100vw-1\.5rem\)\]{max-width:calc(100vw - 1.5rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-6{--tw-translate-x: 1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[0\.99\]{--tw-scale-x: .99;--tw-scale-y: .99;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-\[toast-enter_\.15s_ease-out\]{animation:toast-enter .15s ease-out}@keyframes answer-correct{0%{transform:scale(1)}40%{transform:scale(1.05)}to{transform:scale(1)}}.animate-answer-correct{animation:answer-correct .35s cubic-bezier(.34,1.56,.64,1)}@keyframes answer-wrong{0%,to{transform:translate(0)}20%,60%{transform:translate(-3px)}40%,80%{transform:translate(3px)}}.animate-answer-wrong{animation:answer-wrong .32s ease-in-out}@keyframes artifact-render{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-artifact-render{animation:artifact-render .22s cubic-bezier(.34,1.2,.64,1)}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}@keyframes tab-slide{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.animate-tab-slide{animation:tab-slide .18s cubic-bezier(.16,1,.3,1)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-zoom-out{cursor:zoom-out}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.resize-none{resize:none}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-0\.5{-moz-column-gap:.125rem;column-gap:.125rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-1{row-gap:.25rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.\!rounded-t-none{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.rounded-br-md{border-bottom-right-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.\!border-t-0{border-top-width:0px!important}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[var\(--accent\)\]{border-color:var(--accent)}.border-\[var\(--border\)\]{border-color:var(--border)}.border-\[var\(--border-faint\)\]{border-color:var(--border-faint)}.border-\[var\(--ink-strong\)\]{border-color:var(--ink-strong)}.border-accent{--tw-border-opacity: 1;border-color:rgb(var(--accent-rgb) / var(--tw-border-opacity, 1))}.border-accent\/20{border-color:rgb(var(--accent-rgb) / .2)}.border-accent\/40{border-color:rgb(var(--accent-rgb) / .4)}.border-brand{--tw-border-opacity: 1;border-color:rgb(var(--brand-rgb) / var(--tw-border-opacity, 1))}.border-brand\/30{border-color:rgb(var(--brand-rgb) / .3)}.border-brand\/40{border-color:rgb(var(--brand-rgb) / .4)}.border-gold\/30{border-color:rgb(var(--gold-rgb) / .3)}.border-ink\/10{border-color:rgb(var(--ink-rgb) / .1)}.border-neutral-50{--tw-border-opacity: 1;border-color:rgb(250 250 250 / var(--tw-border-opacity, 1))}.border-neutral-800{--tw-border-opacity: 1;border-color:rgb(38 38 38 / var(--tw-border-opacity, 1))}.border-review\/20{border-color:rgb(var(--review-rgb) / .2)}.border-transparent{border-color:transparent}.border-warning{--tw-border-opacity: 1;border-color:rgb(var(--warning-rgb) / var(--tw-border-opacity, 1))}.border-warning\/30{border-color:rgb(var(--warning-rgb) / .3)}.border-warning\/40{border-color:rgb(var(--warning-rgb) / .4)}.border-warning\/50{border-color:rgb(var(--warning-rgb) / .5)}.border-white\/15{border-color:#ffffff26}.border-white\/20{border-color:#fff3}.border-t-transparent{border-top-color:transparent}.bg-\[\#0e2a12\]{--tw-bg-opacity: 1;background-color:rgb(14 42 18 / var(--tw-bg-opacity, 1))}.bg-\[var\(--border\)\]{background-color:var(--border)}.bg-accent{--tw-bg-opacity: 1;background-color:rgb(var(--accent-rgb) / var(--tw-bg-opacity, 1))}.bg-accent\/10{background-color:rgb(var(--accent-rgb) / .1)}.bg-accent\/15{background-color:rgb(var(--accent-rgb) / .15)}.bg-accent\/20{background-color:rgb(var(--accent-rgb) / .2)}.bg-accent\/25{background-color:rgb(var(--accent-rgb) / .25)}.bg-accent\/30{background-color:rgb(var(--accent-rgb) / .3)}.bg-accent\/5{background-color:rgb(var(--accent-rgb) / .05)}.bg-black\/25{background-color:#00000040}.bg-black\/30{background-color:#0000004d}.bg-black\/40{background-color:#0006}.bg-black\/50{background-color:#00000080}.bg-black\/80{background-color:#000c}.bg-brand{--tw-bg-opacity: 1;background-color:rgb(var(--brand-rgb) / var(--tw-bg-opacity, 1))}.bg-brand\/10{background-color:rgb(var(--brand-rgb) / .1)}.bg-brand\/15{background-color:rgb(var(--brand-rgb) / .15)}.bg-brand\/20{background-color:rgb(var(--brand-rgb) / .2)}.bg-brand\/30{background-color:rgb(var(--brand-rgb) / .3)}.bg-brand\/5{background-color:rgb(var(--brand-rgb) / .05)}.bg-brand\/90{background-color:rgb(var(--brand-rgb) / .9)}.bg-exam{--tw-bg-opacity: 1;background-color:rgb(var(--exam-rgb) / var(--tw-bg-opacity, 1))}.bg-gold{--tw-bg-opacity: 1;background-color:rgb(var(--gold-rgb) / var(--tw-bg-opacity, 1))}.bg-gold\/5{background-color:rgb(var(--gold-rgb) / .05)}.bg-ink-faint{--tw-bg-opacity: 1;background-color:rgb(var(--ink-faint-rgb) / var(--tw-bg-opacity, 1))}.bg-ink-strong{--tw-bg-opacity: 1;background-color:rgb(var(--ink-strong-rgb) / var(--tw-bg-opacity, 1))}.bg-ink\/10{background-color:rgb(var(--ink-rgb) / .1)}.bg-ink\/20{background-color:rgb(var(--ink-rgb) / .2)}.bg-ink\/5{background-color:rgb(var(--ink-rgb) / .05)}.bg-ink\/50{background-color:rgb(var(--ink-rgb) / .5)}.bg-ink\/70{background-color:rgb(var(--ink-rgb) / .7)}.bg-ink\/\[0\.04\]{background-color:rgb(var(--ink-rgb) / .04)}.bg-ink\/\[0\.05\]{background-color:rgb(var(--ink-rgb) / .05)}.bg-ink\/\[0\.06\]{background-color:rgb(var(--ink-rgb) / .06)}.bg-ink\/\[0\.08\]{background-color:rgb(var(--ink-rgb) / .08)}.bg-neutral-200{--tw-bg-opacity: 1;background-color:rgb(229 229 229 / var(--tw-bg-opacity, 1))}.bg-neutral-950{--tw-bg-opacity: 1;background-color:rgb(10 10 10 / var(--tw-bg-opacity, 1))}.bg-review{--tw-bg-opacity: 1;background-color:rgb(var(--review-rgb) / var(--tw-bg-opacity, 1))}.bg-review\/10{background-color:rgb(var(--review-rgb) / .1)}.bg-review\/20{background-color:rgb(var(--review-rgb) / .2)}.bg-surface-0{--tw-bg-opacity: 1;background-color:rgb(var(--surface-0-rgb) / var(--tw-bg-opacity, 1))}.bg-surface-0\/40{background-color:rgb(var(--surface-0-rgb) / .4)}.bg-surface-0\/60{background-color:rgb(var(--surface-0-rgb) / .6)}.bg-surface-0\/90{background-color:rgb(var(--surface-0-rgb) / .9)}.bg-surface-1{--tw-bg-opacity: 1;background-color:rgb(var(--surface-1-rgb) / var(--tw-bg-opacity, 1))}.bg-surface-1\/40{background-color:rgb(var(--surface-1-rgb) / .4)}.bg-surface-1\/50{background-color:rgb(var(--surface-1-rgb) / .5)}.bg-surface-1\/60{background-color:rgb(var(--surface-1-rgb) / .6)}.bg-surface-2{--tw-bg-opacity: 1;background-color:rgb(var(--surface-2-rgb) / var(--tw-bg-opacity, 1))}.bg-surface-3{--tw-bg-opacity: 1;background-color:rgb(var(--surface-3-rgb) / var(--tw-bg-opacity, 1))}.bg-surface-3\/60{background-color:rgb(var(--surface-3-rgb) / .6)}.bg-surface-rail{--tw-bg-opacity: 1;background-color:rgb(var(--surface-rail-rgb) / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-warning{--tw-bg-opacity: 1;background-color:rgb(var(--warning-rgb) / var(--tw-bg-opacity, 1))}.bg-warning\/10{background-color:rgb(var(--warning-rgb) / .1)}.bg-warning\/15{background-color:rgb(var(--warning-rgb) / .15)}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/5{background-color:#ffffff0d}.fill-current{fill:currentColor}.fill-gold{fill:rgb(var(--gold-rgb) / 1)}.fill-ink{fill:rgb(var(--ink-rgb) / 1)}.fill-ink-faint{fill:rgb(var(--ink-faint-rgb) / 1)}.fill-ink-muted{fill:rgb(var(--ink-muted-rgb) / 1)}.fill-ink-strong{fill:rgb(var(--ink-strong-rgb) / 1)}.fill-none{fill:none}.fill-surface-0\/95{fill:rgb(var(--surface-0-rgb) / .95)}.stroke-\[var\(--border-faint\)\]{stroke:var(--border-faint)}.stroke-ink-faint\/80{stroke:rgb(var(--ink-faint-rgb) / .8)}.stroke-ink\/20{stroke:rgb(var(--ink-rgb) / .2)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-20{padding-top:5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-48{padding-top:12rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-\[15vh\]{padding-top:15vh}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-\[-3px\]{vertical-align:-3px}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-accent{--tw-text-opacity: 1;color:rgb(var(--accent-rgb) / var(--tw-text-opacity, 1))}.text-brand{--tw-text-opacity: 1;color:rgb(var(--brand-rgb) / var(--tw-text-opacity, 1))}.text-gold{--tw-text-opacity: 1;color:rgb(var(--gold-rgb) / var(--tw-text-opacity, 1))}.text-ink{--tw-text-opacity: 1;color:rgb(var(--ink-rgb) / var(--tw-text-opacity, 1))}.text-ink-faint{--tw-text-opacity: 1;color:rgb(var(--ink-faint-rgb) / var(--tw-text-opacity, 1))}.text-ink-muted{--tw-text-opacity: 1;color:rgb(var(--ink-muted-rgb) / var(--tw-text-opacity, 1))}.text-ink-strong{--tw-text-opacity: 1;color:rgb(var(--ink-strong-rgb) / var(--tw-text-opacity, 1))}.text-ink\/20{color:rgb(var(--ink-rgb) / .2)}.text-neutral-200{--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity, 1))}.text-neutral-500{--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity, 1))}.text-neutral-600{--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}.text-neutral-900{--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}.text-review{--tw-text-opacity: 1;color:rgb(var(--review-rgb) / var(--tw-text-opacity, 1))}.text-review\/80{color:rgb(var(--review-rgb) / .8)}.text-surface-0{--tw-text-opacity: 1;color:rgb(var(--surface-0-rgb) / var(--tw-text-opacity, 1))}.text-warning{--tw-text-opacity: 1;color:rgb(var(--warning-rgb) / var(--tw-text-opacity, 1))}.text-warning-light{--tw-text-opacity: 1;color:rgb(var(--warning-light-rgb) / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/25{color:#ffffff40}.text-white\/35{color:#ffffff59}.text-white\/40{color:#fff6}.text-white\/45{color:#ffffff73}.text-white\/50{color:#ffffff80}.text-white\/55{color:#ffffff8c}.text-white\/60{color:#fff9}.text-white\/70{color:#ffffffb3}.text-white\/80{color:#fffc}.text-white\/90{color:#ffffffe6}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.accent-\[var\(--brand\)\]{accent-color:var(--brand)}.accent-brand{accent-color:rgb(var(--brand-rgb) / 1)}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-4{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-\[var\(--border\)\]{--tw-ring-color: var(--border)}.ring-accent{--tw-ring-opacity: 1;--tw-ring-color: rgb(var(--accent-rgb) / var(--tw-ring-opacity, 1))}.ring-accent\/40{--tw-ring-color: rgb(var(--accent-rgb) / .4)}.ring-brand\/30{--tw-ring-color: rgb(var(--brand-rgb) / .3)}.ring-brand\/40{--tw-ring-color: rgb(var(--brand-rgb) / .4)}.ring-gold\/40{--tw-ring-color: rgb(var(--gold-rgb) / .4)}.ring-review\/20{--tw-ring-color: rgb(var(--review-rgb) / .2)}.ring-review\/30{--tw-ring-color: rgb(var(--review-rgb) / .3)}.ring-white\/10{--tw-ring-color: rgb(255 255 255 / .1)}.ring-white\/15{--tw-ring-color: rgb(255 255 255 / .15)}.ring-offset-2{--tw-ring-offset-width: 2px}.ring-offset-neutral-50{--tw-ring-offset-color: #fafafa}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.4\)\]{--tw-drop-shadow: drop-shadow(0 1px 2px rgba(0,0,0,.4));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.7\)\]{--tw-drop-shadow: drop-shadow(0 1px 2px rgba(0,0,0,.7));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-\[0_1px_3px_rgba\(0\,0\,0\,0\.6\)\]{--tw-drop-shadow: drop-shadow(0 1px 3px rgba(0,0,0,.6));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-out-back{transition-timing-function:cubic-bezier(.34,1.2,.64,1)}.ease-out-expo{transition-timing-function:cubic-bezier(.16,1,.3,1)}.will-change-transform{will-change:transform}:root{--brand: #58CC01;--brand-rgb: 88 204 2;--brand-dark: #46A302;--brand-dark-rgb: 70 163 2;--brand-light: #7ED957;--brand-light-rgb: 126 217 87;--brand-glow: #58CC0159;--brand-ring: #58CC0126;--accent: #1DB0F6;--accent-rgb: 28 176 246;--accent-dark: #098CDC;--accent-dark-rgb: 10 140 220;--accent-light: #65C6FF;--accent-light-rgb: 94 212 255;--accent-glow: #1DB0F64C;--accent-ring: #1DB0F626;--gold: #FFC801;--gold-rgb: 255 200 0;--gold-dark: #D59800;--gold-dark-rgb: 217 158 0;--gold-light: #FFE294;--gold-light-rgb: 255 230 128;--gold-glow: #FFC80173;--gold-ring: #FFC80133;--warning: #FF4B4B;--warning-rgb: 255 75 75;--warning-dark: #D01C29;--warning-dark-rgb: 230 43 43;--warning-light: #FF7E77;--warning-light-rgb: 255 117 117;--warning-glow: #FF4B4B4C;--warning-ring: #FF4B4B26;--warning-tint: #FF4B4B1A;--warning-tint-border: #FF4B4B40;--review: #FA6E1D;--review-rgb: 255 122 26;--review-glow: #FA6E1D26;--review-tint: #FA6E1D1A;--exam: #A855F7;--exam-rgb: 168 85 247;--exam-dark: #7E22CE;--exam-dark-rgb: 126 34 206;--exam-light: #C084FC;--exam-light-rgb: 192 132 252;--exam-locked: #524569;--exam-glow: #A855F759;--exam-ring: #A855F726;--surface-rail: #08090B;--surface-rail-rgb: 8 9 11;--surface-0: #0C0D0F;--surface-0-rgb: 12 13 15;--surface-1: #111114;--surface-1-rgb: 17 17 20;--surface-2: #1A1A1D;--surface-2-rgb: 26 26 29;--surface-3: #2A2B2E;--surface-3-rgb: 42 43 46;--ink: #F1F2F4;--ink-rgb: 245 245 250;--ink-strong: #FAFAFA;--ink-strong-rgb: 250 250 250;--ink-muted: #9D9EA2;--ink-muted-rgb: 166 166 176;--ink-faint: #88898C;--ink-faint-rgb: 136 137 140;--border: #252629;--border-rgb: 37 38 41;--border-faint: #1A1A1D;--border-faint-rgb: 26 26 29;--shadow-rgb: 0 0 0;--inner-highlight: rgb(255 255 255 / .55);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-back: cubic-bezier(.34, 1.2, .64, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-out-quart: cubic-bezier(.25, 1, .5, 1)}@supports (color: oklch(.748 .229 137.6)){:root{--brand: oklch(.748 .229 137.6);--brand-dark: oklch(.633 .193 137.5);--brand-light: oklch(.801 .188 137.5);--brand-glow: oklch(.748 .229 137.6 / .35);--brand-ring: oklch(.748 .229 137.6 / .15);--accent: oklch(.718 .151 237.1);--accent-dark: oklch(.619 .155 245.4);--accent-light: oklch(.79 .13 237);--accent-glow: oklch(.718 .151 237.1 / .3);--accent-ring: oklch(.718 .151 237.1 / .15);--gold: oklch(.857 .175 88.5);--gold-dark: oklch(.72 .16 80);--gold-light: oklch(.92 .16 90);--gold-glow: oklch(.857 .175 88.5 / .45);--gold-ring: oklch(.857 .175 88.5 / .2);--warning: oklch(.671 .217 25.2);--warning-dark: oklch(.55 .21 25);--warning-light: oklch(.74 .18 25);--warning-glow: oklch(.671 .217 25.2 / .3);--warning-ring: oklch(.671 .217 25.2 / .15);--warning-tint: oklch(.671 .217 25.2 / .1);--warning-tint-border: oklch(.671 .217 25.2 / .25);--review: oklch(.7 .19 45);--review-glow: oklch(.7 .19 45 / .15);--review-tint: oklch(.7 .19 45 / .1);--exam: oklch(.627 .233 303.9);--exam-dark: oklch(.496 .237 301.9);--exam-light: oklch(.722 .177 305.5);--exam-locked: oklch(.42 .06 300);--exam-glow: oklch(.627 .233 303.9 / .35);--exam-ring: oklch(.627 .233 303.9 / .15);--surface-rail: oklch(.14 .005 270);--surface-0: oklch(.16 .005 270);--surface-1: oklch(.18 .005 270);--surface-2: oklch(.22 .005 270);--surface-3: oklch(.29 .005 270);--ink: oklch(.96 .003 270);--ink-strong: oklch(.985 0 0);--ink-muted: oklch(.7 .005 270);--ink-faint: oklch(.63 .005 270);--border: oklch(.27 .005 270);--border-faint: oklch(.22 .005 270)}}:where(button,a,[role=button],[tabindex="0"]):focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}html.light{--surface-rail: #F1F2F4;--surface-rail-rgb: 241 242 244;--surface-0: #FFFFFF;--surface-0-rgb: 255 255 255;--surface-1: #F8F8F8;--surface-1-rgb: 248 248 248;--surface-2: #FFFFFF;--surface-2-rgb: 255 255 255;--surface-3: #EAEBED;--surface-3-rgb: 234 235 237;--ink: #181818;--ink-rgb: 24 24 24;--ink-strong: #0A0A0A;--ink-strong-rgb: 10 10 10;--ink-muted: #555555;--ink-muted-rgb: 85 85 85;--ink-faint: #717171;--ink-faint-rgb: 113 113 113;--border: #E4E4E4;--border-rgb: 228 228 228;--border-faint: #EEEEEE;--border-faint-rgb: 238 238 238;--inner-highlight: rgb(255 255 255 / .3);--brand: #3C8613;--brand-rgb: 60 134 19;--brand-dark: #286600;--brand-dark-rgb: 34 103 0;--brand-light: #559A38;--brand-light-rgb: 85 154 56;--brand-glow: #3C861340;--brand-ring: #3C86132E;--accent: #006B99;--accent-rgb: 0 108 177;--accent-dark: #005183;--accent-dark-rgb: 0 79 152;--accent-light: #0084BB;--accent-light-rgb: 0 132 194;--accent-glow: #006B9938;--accent-ring: #006B992E;--gold: #B08900;--gold-rgb: 180 136 0;--gold-dark: #946900;--gold-dark-rgb: 155 101 0;--gold-light: #C7A01E;--gold-light-rgb: 199 160 30;--gold-glow: #B089004C;--gold-ring: #B0890033;--warning: #BB071E;--warning-rgb: 187 7 30;--warning-dark: #940015;--warning-dark-rgb: 158 0 0;--warning-light: #C8393A;--warning-light-rgb: 200 57 58;--warning-glow: #BB071E38;--warning-ring: #BB071E2E;--warning-tint: #BB071E14;--warning-tint-border: #BB071E38;--review: #B84B00;--review-rgb: 189 70 0;--review-glow: #B84B001F;--review-tint: #B84B0014;--exam: #7D37BD;--exam-rgb: 125 55 189;--exam-dark: #641AA5;--exam-dark-rgb: 100 26 165;--exam-light: #905FC0;--exam-light-rgb: 144 95 192;--exam-locked: #756D86;--exam-locked-mix: #A7A2B2;--exam-locked-rgb: 117 109 134;--exam-glow: #7D37BD40;--exam-ring: #7D37BD2E}@supports (color: oklch(.748 .229 137.6)){html.light{--surface-rail: oklch(.96 .003 270);--surface-0: oklch(1 0 0);--surface-1: oklch(.98 0 0);--surface-2: oklch(1 0 0);--surface-3: oklch(.94 .003 270);--ink: oklch(.21 0 0);--ink-strong: oklch(.145 0 0);--ink-muted: oklch(.45 0 0);--ink-faint: oklch(.55 0 0);--border: oklch(.92 0 0);--border-faint: oklch(.95 0 0);--brand: oklch(.55 .16 137.6);--brand-dark: oklch(.45 .15 137.6);--brand-light: oklch(.62 .15 137.6);--brand-glow: oklch(.55 .16 137.6 / .25);--brand-ring: oklch(.55 .16 137.6 / .18);--accent: oklch(.5 .16 237.1);--accent-dark: oklch(.42 .15 245.4);--accent-light: oklch(.58 .14 237);--accent-glow: oklch(.5 .16 237.1 / .22);--accent-ring: oklch(.5 .16 237.1 / .18);--gold: oklch(.65 .15 88.5);--gold-dark: oklch(.55 .14 80);--gold-light: oklch(.72 .14 90);--gold-glow: oklch(.65 .15 88.5 / .3);--gold-ring: oklch(.65 .15 88.5 / .2);--warning: oklch(.5 .2 25.2);--warning-dark: oklch(.42 .2 25);--warning-light: oklch(.56 .18 25);--warning-glow: oklch(.5 .2 25.2 / .22);--warning-ring: oklch(.5 .2 25.2 / .18);--warning-tint: oklch(.5 .2 25.2 / .08);--warning-tint-border: oklch(.5 .2 25.2 / .22);--review: oklch(.55 .17 45);--review-glow: oklch(.55 .17 45 / .12);--review-tint: oklch(.55 .17 45 / .08);--exam: oklch(.5 .2 303.9);--exam-dark: oklch(.42 .2 301.9);--exam-light: oklch(.58 .15 305.5);--exam-locked: oklch(.55 .04 300);--exam-glow: oklch(.5 .2 303.9 / .25);--exam-ring: oklch(.5 .2 303.9 / .18)}}html.light .map-rail-scope{--surface-rail: #08090B;--surface-rail-rgb: 8 9 11;--surface-0: #0C0D0F;--surface-0-rgb: 12 13 15;--surface-1: #111114;--surface-1-rgb: 17 17 20;--surface-2: #1A1A1D;--surface-2-rgb: 26 26 29;--ink: #F1F2F4;--ink-rgb: 245 245 250;--ink-strong: #FAFAFA;--ink-strong-rgb: 250 250 250;--ink-muted: #9D9EA2;--ink-muted-rgb: 166 166 176;--ink-faint: #88898C;--ink-faint-rgb: 136 137 140;--border: #252629;--border-faint: #1A1A1D}@supports (color: oklch(.748 .229 137.6)){html.light .map-rail-scope{--border: oklch(.27 .005 270);--border-faint: oklch(.22 .005 270)}}html.light .lesson-bubble-locked{background:radial-gradient(circle at 35% 30%,#858689,#68696c 60%,#545558);box-shadow:inset 0 3px 6px #00000040,inset 0 -2px 4px #ffffff26,0 2px 4px #00000026}html.light .lesson-bubble-locked:before{background:radial-gradient(ellipse at center,#ffffff40,#fff0 70%)}html.light .exam-bubble-locked{background:radial-gradient(circle at 35% 30%,#7d778a,#605a6c 60%,#4a4553);box-shadow:inset 0 3px 6px #00000040,inset 0 -2px 4px #ffffff1f,0 2px 4px #00000026}.pane-resize-handle{position:relative;flex:none;width:6px;cursor:col-resize;touch-action:none;z-index:5}.pane-resize-handle:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:44px;transform:translate(-50%)}@media(pointer:fine){.pane-resize-handle:before{width:12px}}.pane-resize-handle:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;transform:translate(-50%);border-radius:1px;background:transparent;transition:background .12s}.pane-resize-handle:hover:after,.pane-resize-handle[data-dragging=true]:after{background:color-mix(in srgb,var(--accent) 55%,transparent)}body.pane-dragging{cursor:col-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none}.coarse-only{display:none}@media(pointer:coarse){.coarse-only{display:inline-flex}.tb-label,.tb-chevron{display:none}.composer-toolbar,.composer-toolbar .flex-wrap{flex-wrap:nowrap}.composer-toolbar button:not([role=menuitemradio]):not([role=menuitem]),.touch-lift{min-height:40px;min-width:40px;max-width:44px;justify-content:center;padding-left:.25rem;padding-right:.25rem}.composer-toolbar button:not([role=menuitemradio]):not([role=menuitem]) svg,.touch-lift svg{width:1.1rem;height:1.1rem}.composer-card .btn-icon-3d-brand,.composer-card .btn-icon-3d-warning{width:2.75rem;height:2.75rem}.touch-target-sm{position:relative}.touch-target-sm:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}}[data-selection-popover]{white-space:nowrap}@media(pointer:coarse){[data-selection-popover] button{min-height:44px;padding-left:.875rem;padding-right:.875rem;font-size:1rem;font-weight:700}[data-selection-popover] button svg{width:1rem;height:1rem}}.lesson-bubble{position:relative;border-radius:9999px;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;transition-timing-function:cubic-bezier(.34,1.2,.64,1);background-position:30% 25%}.lesson-bubble:before{content:"";position:absolute;top:12%;left:22%;width:38%;height:28%;border-radius:50%;background:radial-gradient(ellipse at center,var(--inner-highlight) 0%,rgb(255 255 255 / 0) 70%);pointer-events:none;z-index:1}.lesson-bubble-locked{background:radial-gradient(circle at 35% 30%,var(--surface-3) 0%,var(--surface-2) 60%,var(--surface-1) 100%);box-shadow:inset 0 3px 6px rgb(var(--shadow-rgb) / .5),inset 0 -2px 4px #ffffff0a,0 2px 4px rgb(var(--shadow-rgb) / .3)}.lesson-bubble-locked:before{background:radial-gradient(ellipse at center,#ffffff1f,#fff0 70%)}.lesson-bubble-available{background:radial-gradient(circle at 32% 28%,var(--brand-light) 0%,var(--brand) 45%,var(--brand-dark) 100%);box-shadow:0 0 0 4px var(--brand-ring),0 0 16px var(--brand-glow),0 4px 10px rgb(var(--shadow-rgb) / .25)}.lesson-bubble-available:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 0 0 5px rgb(var(--brand-rgb) / .2),0 0 22px rgb(var(--brand-rgb) / .5),0 6px 14px rgb(var(--shadow-rgb) / .3)}.lesson-bubble-available:active{transform:translateY(2px) scale(.97);box-shadow:0 0 0 3px var(--brand-ring),0 0 10px rgb(var(--brand-rgb) / .3),0 2px 6px rgb(var(--shadow-rgb) / .2)}.lesson-bubble-in-progress{background:radial-gradient(circle at 32% 28%,var(--accent-light) 0%,var(--accent) 45%,var(--accent-dark) 100%);box-shadow:0 0 0 4px var(--accent-ring),0 0 14px var(--accent-glow),0 4px 10px rgb(var(--shadow-rgb) / .25)}.lesson-bubble-in-progress:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 0 0 5px rgb(var(--accent-rgb) / .2),0 0 20px rgb(var(--accent-rgb) / .45),0 6px 14px rgb(var(--shadow-rgb) / .3)}.lesson-bubble-mastered{background:radial-gradient(circle at 32% 28%,var(--gold-light) 0%,var(--gold) 45%,var(--gold-dark) 100%);box-shadow:0 0 0 4px var(--gold-ring),0 0 22px var(--gold-glow),0 0 40px rgb(var(--gold-rgb) / .15),0 4px 12px rgb(var(--shadow-rgb) / .25);transform:scale(1.1)}.lesson-bubble-mastered:before{background:radial-gradient(ellipse at center,#ffffffb3,#fff0 70%)}.lesson-bubble-mastered:hover{transform:scale(1.13) translateY(-2px);box-shadow:0 0 0 5px rgb(var(--gold-rgb) / .25),0 0 28px rgb(var(--gold-rgb) / .55),0 0 50px rgb(var(--gold-rgb) / .2),0 6px 16px rgb(var(--shadow-rgb) / .3)}.exam-bubble{background:radial-gradient(circle at 32% 28%,var(--exam-light) 0%,var(--exam) 45%,var(--exam-dark) 100%);box-shadow:0 0 0 4px var(--exam-ring),0 0 16px var(--exam-glow),0 4px 10px rgb(var(--shadow-rgb) / .25)}.exam-bubble-locked{background:radial-gradient(circle at 35% 30%,var(--exam-locked) 0%,var(--exam-locked-mix) 60%,var(--surface-1) 100%);box-shadow:inset 0 3px 6px rgb(var(--shadow-rgb) / .5),inset 0 -2px 4px #ffffff0a,0 2px 4px rgb(var(--shadow-rgb) / .3)}.exam-bubble-passed{background:radial-gradient(circle at 32% 28%,rgb(var(--exam-light-rgb)) 0%,var(--exam-light) 40%,var(--exam) 100%);box-shadow:0 0 0 4px var(--gold-ring),0 0 18px var(--exam-glow),0 0 28px rgb(var(--gold-rgb) / .15),0 4px 12px rgb(var(--shadow-rgb) / .25)}@keyframes bubble-active-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.lesson-bubble-available{animation:bubble-active-pulse 2.4s ease-in-out infinite}.env-spring .lesson-bubble{filter:hue-rotate(-12deg) saturate(1.15) brightness(1.02)}.env-summer .lesson-bubble{filter:saturate(1.4) brightness(1.08) contrast(1.05)}.env-autumn .lesson-bubble{filter:hue-rotate(-22deg) saturate(1.1) brightness(.97)}.env-winter .lesson-bubble{filter:saturate(.5) brightness(1.05) hue-rotate(8deg)}.surface-card{background:var(--surface-2);border:1px solid var(--border-faint);border-radius:1rem}:root{--cm-c0-fill: #1C3352;--cm-c0-line: #6F9FD4;--cm-c1-fill: #1F3A29;--cm-c1-line: #7FB37F;--cm-c2-fill: #42301A;--cm-c2-line: #CFA05E;--cm-c3-fill: #3D3620;--cm-c3-line: #CBB75E;--cm-c4-fill: #33294A;--cm-c4-line: #A48DCB}html.light{--cm-c0-fill: #DAE8FC;--cm-c0-line: #6C8EBF;--cm-c1-fill: #D5E8D4;--cm-c1-line: #82B366;--cm-c2-fill: #FFE6CC;--cm-c2-line: #D79B00;--cm-c3-fill: #FFF2CC;--cm-c3-line: #D6B656;--cm-c4-fill: #E1D5E7;--cm-c4-line: #9673A6}@keyframes cm-node-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.cm-enter{animation:cm-node-enter .22s var(--ease-out-expo, ease-out) both}.cm-group-box{fill-opacity:.42;stroke-opacity:.85;stroke-width:1.25}.cm-group-head{fill-opacity:.18}html.light .cm-group-box{fill-opacity:.55;stroke-opacity:.95}html.light .cm-group-head{fill-opacity:.22}.md-shiki pre.shiki{background-color:rgb(var(--surface-0-rgb));color:var(--ink);margin:0;padding:.9em 1em;border:1px solid rgb(var(--border-rgb));border-top:0;border-radius:0 0 .5rem .5rem;overflow-x:auto;font-size:.82em;line-height:1.55;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.md-shiki pre.shiki code{display:block;width:-moz-max-content;width:max-content}.md-shiki pre.shiki .line{display:block;white-space:pre}.md-shiki pre.shiki .line:empty:after{content:" "}html.light .md-shiki pre.shiki span{color:var(--shiki-light)!important}.md-walk-line:empty:after{content:" "}@keyframes msg-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.msg-enter{animation:msg-enter .2s var(--ease-out-expo)}.proposal-card{border-color:rgb(var(--brand-rgb) / .3);padding:.75rem;background:var(--surface-2);border:1px solid var(--border-faint);border-radius:1rem;box-shadow:0 0 0 1px var(--brand-ring),0 4px 12px rgb(var(--brand-rgb) / .08)}@keyframes typing-dot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.typing-dot{animation:typing-dot 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}@keyframes toast-enter{0%{opacity:0;transform:translateY(-12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-exit{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-8px) scale(.97)}}.toast-enter{animation:toast-enter .22s var(--ease-out-back)}.toast-exit{animation:toast-exit .18s var(--ease-out-quart) forwards}@keyframes confirm-enter{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.confirm-card{animation:confirm-enter .16s var(--ease-out-back)}.map-sky-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;display:block}.map-orb-weather-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:20;display:block}.map-path{background:transparent}.map-sky-content{position:relative;z-index:1}.map-header{z-index:30;background:linear-gradient(to bottom,rgb(var(--surface-rail-rgb) / .66) 0%,rgb(var(--surface-rail-rgb) / .5) 40%,rgb(var(--surface-rail-rgb) / .28) 65%,rgb(var(--surface-rail-rgb) / .12) 82%,rgb(var(--surface-rail-rgb) / .04) 92%,transparent 100%)}.map-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);-webkit-mask:linear-gradient(to bottom,black 0%,black 70%,transparent 100%);mask:linear-gradient(to bottom,black 0%,black 70%,transparent 100%)}.app-header{position:relative;background:transparent;z-index:30}.app-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);-webkit-mask:linear-gradient(to bottom,black 0%,black 65%,transparent 100%);mask:linear-gradient(to bottom,black 0%,black 65%,transparent 100%);background:linear-gradient(to bottom,rgb(var(--surface-1-rgb) / .85) 0%,rgb(var(--surface-1-rgb) / .55) 60%,rgb(var(--surface-1-rgb) / .15) 85%,transparent 100%)}.map-signpost{background:rgb(var(--surface-rail-rgb) / .55);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);border:1px solid rgb(var(--gold-rgb) / .18);border-top-color:rgb(var(--gold-rgb) / .35);box-shadow:0 2px 8px rgb(var(--shadow-rgb) / .35),inset 0 1px #ffffff0f}@keyframes balloon-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.balloon-bob{animation:balloon-bob var(--bob-duration, 6s) ease-in-out infinite;animation-delay:var(--bob-delay, 0s)}@keyframes path-draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}.progress-ring-circle{transition:stroke-dashoffset .5s var(--ease-out-expo);transform:rotate(-90deg);transform-origin:50% 50%}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:9999px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--surface-3);background-clip:padding-box}html.light ::-webkit-scrollbar-thumb{background:#0000002e}html.light ::-webkit-scrollbar-thumb:hover{background:#00000047}@keyframes energy-breathe{0%,to{opacity:.78;filter:drop-shadow(0 0 0 var(--brand))}50%{opacity:1;filter:drop-shadow(0 0 4px var(--brand-glow))}}.energy-breathe{animation:energy-breathe 2s ease-in-out infinite}@keyframes flame-flicker{0%,to{transform:scale(1) rotate(-2deg)}25%{transform:scale(1.06) rotate(1deg)}50%{transform:scale(.97) rotate(-1deg)}75%{transform:scale(1.04) rotate(2deg)}}.flame-flicker{animation:flame-flicker 1.4s ease-in-out infinite;transform-origin:50% 80%}@keyframes crown-sparkle{0%,to{transform:scale(1);filter:drop-shadow(0 0 0 var(--gold))}50%{transform:scale(1.08);filter:drop-shadow(0 0 6px var(--gold-glow))}}.crown-sparkle{animation:crown-sparkle 1.6s ease-in-out infinite;display:inline-block}@media(prefers-reduced-motion:reduce){.cp-screen-key,.cp-writing,.cp-pen,.cp-core-lit,.cp-note-tick{animation:none;stroke-dashoffset:0}.cp-scope-bar{animation:none;opacity:.7}.cp-keypress .cp-mascot{animation:none}.cp-screen-key-flash{animation:none;opacity:.9}.cp-screen-wave rect{animation:none;transform:scaleY(.6)}.cm-enter{animation-delay:0ms!important}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.cp-mascot{pointer-events:none;cursor:default;overflow:visible}.cp-mascot *{pointer-events:visiblePainted}.cp-bot{transform-box:fill-box;transform-origin:50% 90%;animation:cp-bob 3.4s ease-in-out infinite alternate}@keyframes cp-bob{0%{transform:translateY(0)}to{transform:translateY(-5px)}}.cp-thrust{transform-box:fill-box;transform-origin:center;animation:cp-flick .38s ease-in-out infinite alternate}@keyframes cp-flick{0%{transform:scaleY(1)}to{transform:scaleY(.72)}}.cp-ant-glow{animation:cp-glow 2.2s ease-in-out infinite}@keyframes cp-glow{0%,to{opacity:.15}50%{opacity:.4}}.cp-pose-hop .cp-bot{animation:cp-hop .9s cubic-bezier(.3,1.4,.5,1) 1,cp-bob 3.4s ease-in-out .95s infinite alternate}@keyframes cp-hop{0%{transform:none}18%{transform:translateY(2px) scale(1.05,.92)}45%{transform:translateY(-16px) scale(.96,1.07)}75%{transform:translateY(0) scale(1.04,.95)}to{transform:none}}.cp-pose-punch .cp-armR{transform-box:fill-box;transform-origin:30% 20%;animation:cp-punch .5s cubic-bezier(.2,1.6,.4,1) 1}@keyframes cp-punch{0%{transform:rotate(0)}35%{transform:rotate(-72deg)}to{transform:rotate(0)}}.cp-pose-punch .cp-bot{animation:cp-tilt .5s ease-out 1,cp-bob 3.4s ease-in-out .55s infinite alternate}@keyframes cp-tilt{0%{transform:none}30%{transform:rotate(-4deg)}to{transform:none}}.cp-pose-oops .cp-head{transform-box:fill-box;transform-origin:50% 95%;animation:cp-oops-head .8s ease-in-out 1}.cp-pose-oops .cp-armL{transform-box:fill-box;transform-origin:70% 15%;animation:cp-oops-armL .8s ease-in-out 1}.cp-pose-oops .cp-armR{transform-box:fill-box;transform-origin:30% 15%;animation:cp-oops-armR .8s ease-in-out 1}@keyframes cp-oops-head{0%,to{transform:rotate(0)}40%{transform:rotate(6deg)}70%{transform:rotate(3deg)}}@keyframes cp-oops-armL{0%,to{transform:rotate(0)}40%{transform:rotate(24deg)}}@keyframes cp-oops-armR{0%,to{transform:rotate(0)}40%{transform:rotate(-24deg)}}.cp-pose-thinking .cp-armL{transform-box:fill-box;transform-origin:50% 12%;transform:rotate(108deg)}.cp-pose-thinking .cp-head{transform-box:fill-box;transform-origin:50% 95%;transform:rotate(-7deg);animation:cp-think-head 3.2s ease-in-out infinite alternate}@keyframes cp-think-head{0%{transform:rotate(-7deg)}to{transform:rotate(-3deg)}}.cp-pose-lean-right .cp-bot{transform:rotate(5deg);animation:none}.cp-pose-doze .cp-bot{transform:translateY(4px) rotate(2.5deg);animation:cp-breath 4.5s ease-in-out infinite alternate}@keyframes cp-breath{0%{transform:translateY(4px) rotate(2.5deg) scale(1)}to{transform:translateY(5px) rotate(2.5deg) scale(1.015,.985)}}.cp-sweat{animation:cp-drip 1.1s ease-in-out infinite}@keyframes cp-drip{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.cp-waves path{animation:cp-wave 1s ease-in-out infinite}.cp-waves path:nth-child(2){animation-delay:.15s}.cp-waves path:nth-child(3){animation-delay:.3s}@keyframes cp-wave{0%,to{opacity:.25}50%{opacity:1}}.cp-zzz path{animation:cp-z 2.4s ease-in-out infinite}.cp-zzz path:nth-child(2){animation-delay:.8s}.cp-zzz path:nth-child(3){animation-delay:1.6s}@keyframes cp-z{0%{opacity:0;transform:translate(2px,2px)}30%{opacity:1}to{opacity:0;transform:translate(-3px,-6px)}}.cp-mouth{transition:transform .06s linear}.cp-bubble{animation:cp-bubble-in .18s cubic-bezier(.3,1.4,.5,1) 1}@keyframes cp-bubble-in{0%{opacity:0;transform:translateY(4px) scale(.9)}to{opacity:1;transform:none}}.cp-pose-typing .cp-armL{transform-box:fill-box;transform-origin:50% 12%;transform:rotate(12deg)}.cp-pose-typing .cp-armR{transform-box:fill-box;transform-origin:50% 12%;transform:rotate(-12deg)}.cp-antenna{transform-box:fill-box;transform-origin:80% 96%;animation:cp-ant-sway 3.4s ease-in-out -.35s infinite alternate}@keyframes cp-ant-sway{0%{transform:rotate(-2deg)}to{transform:rotate(2deg)}}.cp-face-pop{transform-box:fill-box;transform-origin:center;animation:cp-pop .16s cubic-bezier(.2,1.6,.4,1) 1}@keyframes cp-pop{0%{transform:scale(.9)}to{transform:scale(1)}}.cp-expr-talking .cp-head{transform-box:fill-box;transform-origin:50% 100%;animation:cp-talk-bob .55s ease-in-out infinite alternate}@keyframes cp-talk-bob{0%{transform:translateY(0)}to{transform:translateY(-1.4px)}}.cp-waves-wrap{opacity:0}.cp-creature{pointer-events:none;transition:opacity .45s ease}.cp-creature>svg{pointer-events:visiblePainted}.cp-veil{opacity:.3;filter:blur(1px) saturate(.72);transition:opacity .6s ease,filter .6s ease}.cp-creature[data-zone=rail].cp-veil{opacity:.55;filter:blur(.5px) saturate(.85)}.cp-occluding{opacity:.45;transition:opacity .3s ease}.cp-titlebar-dim{opacity:.25;transition:opacity .25s ease}.cp-titlebar-dim>svg{pointer-events:none}.cp-pose-flying .cp-armL{transform-box:fill-box;transform-origin:50% 12%;transform:rotate(26deg)}.cp-pose-flying .cp-armR{transform-box:fill-box;transform-origin:50% 12%;transform:rotate(-26deg)}.cp-pose-writing .cp-armR{transform-box:fill-box;transform-origin:50% 12%;animation:cp-write .42s ease-in-out infinite}@keyframes cp-write{0%{transform:rotate(-4deg) translateY(0)}50%{transform:rotate(8deg) translateY(-1.5px)}to{transform:rotate(-4deg) translateY(0)}}.cp-pose-wave .cp-armR{transform-box:fill-box;transform-origin:50% 12%;animation:cp-wave-arm .38s ease-in-out 3;transform:rotate(-108deg)}@keyframes cp-wave-arm{0%{transform:rotate(-96deg)}50%{transform:rotate(-124deg)}to{transform:rotate(-96deg)}}.cp-pose-spin .cp-bot{transform-box:fill-box;transform-origin:50% 60%;animation:cp-spin .75s cubic-bezier(.45,.1,.3,1) 1}@keyframes cp-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cp-pose-point .cp-armL{transform-box:fill-box;transform-origin:50% 12%;transform:rotate(92deg)}.cp-pose-point .cp-bot{transform-box:fill-box;transform-origin:50% 62%;transform:rotate(-3deg)}.cp-pose-pointr .cp-armR{transform-box:fill-box;transform-origin:50% 12%;transform:rotate(-92deg)}.cp-pose-pointr .cp-bot{transform-box:fill-box;transform-origin:50% 62%;transform:rotate(3deg)}.cp-pose-pointu .cp-armL{transform-box:fill-box;transform-origin:50% 12%;transform:rotate(172deg)}.cp-pose-pointu .cp-bot{transform-box:fill-box;transform-origin:50% 62%;transform:rotate(-3deg)}.cp-pose-pointd .cp-armR{transform-box:fill-box;transform-origin:50% 12%;transform:rotate(-38deg)}.cp-pose-pointd .cp-bot{transform-box:fill-box;transform-origin:50% 62%;transform:rotate(3deg)}.cp-reading-mark{background-color:#1cb0f629;border-radius:4px;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-color .25s ease}.cp-star-tw{transform-box:fill-box;transform-origin:center;animation:cp-star-tw .62s ease-in-out infinite alternate}@keyframes cp-star-tw{0%{transform:scale(.82);opacity:.75}to{transform:scale(1.12);opacity:1}}.cp-expr-sleeping .cp-bot{transform-box:fill-box;transform-origin:50% 100%;animation:cp-sleep-breath 2.8s ease-in-out infinite alternate}@keyframes cp-sleep-breath{0%{transform:scale(1)}to{transform:scale(1.015,.985)}}[data-zone=chat] .cp-mascot,[data-zone=notebook] .cp-mascot{filter:drop-shadow(4px 6px 5px rgb(15 12 20 / .32))}.cp-creature{--cp-speed: 0;--cp-thrust-deg: 90deg}.cp-thruster{opacity:0;transform-box:view-box;transform-origin:100px 135px;rotate:var(--cp-thrust-deg, 90deg);scale:calc(.5 + .6*min(1,var(--cp-speed, 0)));transition:opacity .16s linear}.cp-creature .cp-thruster{opacity:calc(min(1,var(--cp-speed, 0))*.95)}.cp-pose-flying .cp-thruster circle{r:6.4}.cp-pose-flying .cp-thruster circle:nth-child(2){r:8}.cp-pose-flying .cp-thruster{scale:1.15;filter:drop-shadow(0 0 6px rgba(53,224,232,.8));animation:cp-thruster-pulse .28s ease-in-out infinite alternate}@keyframes cp-thruster-pulse{0%{opacity:.85}to{opacity:1}}::highlight(cp-reading){background-color:#1cb0f633}.cp-beacons circle{fill:currentColor;opacity:.55}.cp-screen-key{font:700 15px ui-monospace,Cascadia Mono,Consolas,monospace;fill:#0e2a38;paint-order:stroke;stroke:#35e0e8d9;stroke-width:2.5px;animation:cp-key-pop .18s cubic-bezier(.2,1.6,.4,1);pointer-events:none}@keyframes cp-key-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.cp-screen-key{transform-box:fill-box;transform-origin:center}.cp-keypress .cp-mascot{transform-box:fill-box;transform-origin:50% 92%;animation:cp-key-squash .15s ease-out}@keyframes cp-key-squash{0%{transform:scaleY(1)}35%{transform:scaleY(.965) scaleX(1.02)}to{transform:scaleY(1)}}.cp-scope-bar{fill:#0e2a38;opacity:.8;transform-box:fill-box;transform-origin:50% 100%;animation:cp-scope-pulse .5s ease-out backwards}@keyframes cp-scope-pulse{0%{transform:scaleY(1.9);opacity:1}to{transform:scaleY(1);opacity:.55}}.cp-screen-key-flash{animation:cp-key-pop .18s cubic-bezier(.2,1.6,.4,1),cp-key-flash .55s ease-out forwards}@keyframes cp-key-flash{0%,55%{opacity:1}to{opacity:0}}.cp-screen-wave rect{fill:#0e2a38;opacity:.88;transform-box:fill-box;transform-origin:center;animation:cp-wave-bar .9s ease-in-out infinite}.cp-screen-wave rect:nth-child(2),.cp-screen-wave rect:nth-child(4){animation-delay:.13s}.cp-screen-wave rect:nth-child(3){animation-delay:.26s}@keyframes cp-wave-bar{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}.cp-writing{animation:cp-notebook-in .28s cubic-bezier(.2,1.4,.4,1);pointer-events:none}@keyframes cp-notebook-in{0%{opacity:0;transform:translateY(10px) scale(.7)}to{opacity:1;transform:translateY(0) scale(1)}}.cp-writing{transform-box:fill-box;transform-origin:50% 100%}.cp-pen{animation:cp-scribble .42s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 90%}@keyframes cp-scribble{0%{transform:rotate(0) translate(0)}to{transform:rotate(-5deg) translate(-1.5px,1px)}}.cp-note-tick{stroke-dasharray:26;stroke-dashoffset:26;animation:cp-note-tick .36s cubic-bezier(.3,1.2,.4,1) forwards}@keyframes cp-note-tick{to{stroke-dashoffset:0}}.cp-core-lit{opacity:.85;stroke-dasharray:8 6;animation:cp-core-lit .9s ease-in-out infinite alternate}@keyframes cp-core-lit{0%{opacity:.45;stroke-width:2.5}to{opacity:1;stroke-width:3.6}}.cp-shoulders{pointer-events:none}.cp-beacon-l{color:#ff4b4b;animation:cp-beacon 2.6s ease-in-out infinite}.cp-beacon-r{color:#58cc02;animation:cp-beacon 2.6s ease-in-out 1.3s infinite}.cp-pose-flying .cp-beacon-l,.cp-takeoff .cp-beacon-l,.cp-pose-flying .cp-beacon-r,.cp-takeoff .cp-beacon-r{animation-duration:.62s}@keyframes cp-beacon{0%,to{opacity:.18}50%{opacity:1}}.cp-takeoff .cp-thruster{opacity:1}.cp-takeoff .cp-thruster circle{animation-duration:.12s;r:6}.cp-pose-flying .cp-thruster{opacity:1}.cp-thruster circle{fill:#ffc800}.cp-thruster circle:nth-child(2){fill:#ff9a3d}.cp-pose-flying .cp-thruster circle{animation:cp-thruster .22s ease-in-out infinite alternate}.cp-pose-flying .cp-thruster circle:nth-child(2){animation-delay:.08s}.cp-pose-flying .cp-thruster circle:nth-child(3){animation-delay:.14s}@keyframes cp-thruster{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(4px) scale(.55);opacity:.55}}.cp-thruster circle{transform-box:fill-box;transform-origin:center}.cp-halo{animation:cp-halo-spin 7s linear infinite;transform-box:fill-box;transform-origin:center}@keyframes cp-halo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cp-crown-badge{animation:cp-crown-float 2.4s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}@keyframes cp-crown-float{0%{transform:translateY(0)}to{transform:translateY(-1.6px)}}.cp-creature>svg{cursor:grab}.cp-grabbed{cursor:grabbing}.cp-grabbed>svg{cursor:grabbing}.cp-grabbed .cp-bot{animation:cp-struggle .3s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes cp-struggle{0%{transform:rotate(-2.5deg)}to{transform:rotate(2.5deg)}}.cp-shiver{animation:cp-shiver .09s linear 5}@keyframes cp-shiver{0%{margin-left:-2px}to{margin-left:2px}}.cp-huffy{transform-box:fill-box;transform-origin:center;animation:cp-huffy-puff .8s ease-in-out infinite alternate}@keyframes cp-huffy-puff{0%{transform:scale(.85)}to{transform:scale(1.1)}}@media(prefers-reduced-motion:reduce){.cp-pose-writing .cp-armR{animation:none;transform:rotate(2deg)}.cp-pose-thinking .cp-head,.cp-pose-wave .cp-armR,.cp-pose-spin .cp-bot,.cp-star-tw,.cp-expr-sleeping .cp-bot{animation:none}.cp-veil{filter:none}.cp-thruster,.cp-pose-flying .cp-thruster{opacity:0}.cp-beacons circle{animation:none;opacity:.35}.cp-pose-flying .cp-thruster circle{animation:none}.cp-halo,.cp-crown-badge,.cp-grabbed .cp-bot,.cp-shiver,.cp-huffy{animation:none}}.placeholder\:text-ink-faint::-moz-placeholder{--tw-text-opacity: 1;color:rgb(var(--ink-faint-rgb) / var(--tw-text-opacity, 1))}.placeholder\:text-ink-faint::placeholder{--tw-text-opacity: 1;color:rgb(var(--ink-faint-rgb) / var(--tw-text-opacity, 1))}.placeholder\:text-white\/30::-moz-placeholder{color:#ffffff4d}.placeholder\:text-white\/30::placeholder{color:#ffffff4d}.placeholder\:text-white\/35::-moz-placeholder{color:#ffffff59}.placeholder\:text-white\/35::placeholder{color:#ffffff59}.focus-within\:bg-ink\/\[0\.07\]:focus-within{background-color:rgb(var(--ink-rgb) / .07)}.focus-within\:opacity-100:focus-within{opacity:1}.focus-within\:ring-brand\/60:focus-within{--tw-ring-color: rgb(var(--brand-rgb) / .6)}.hover\:z-30:hover{z-index:30}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[var\(--border\)\]:hover{border-color:var(--border)}.hover\:border-accent:hover{--tw-border-opacity: 1;border-color:rgb(var(--accent-rgb) / var(--tw-border-opacity, 1))}.hover\:border-brand:hover{--tw-border-opacity: 1;border-color:rgb(var(--brand-rgb) / var(--tw-border-opacity, 1))}.hover\:border-brand\/50:hover{border-color:rgb(var(--brand-rgb) / .5)}.hover\:border-ink-muted:hover{--tw-border-opacity: 1;border-color:rgb(var(--ink-muted-rgb) / var(--tw-border-opacity, 1))}.hover\:border-ink\/25:hover{border-color:rgb(var(--ink-rgb) / .25)}.hover\:bg-accent\/10:hover{background-color:rgb(var(--accent-rgb) / .1)}.hover\:bg-accent\/20:hover{background-color:rgb(var(--accent-rgb) / .2)}.hover\:bg-brand-light:hover{--tw-bg-opacity: 1;background-color:rgb(var(--brand-light-rgb) / var(--tw-bg-opacity, 1))}.hover\:bg-brand\/10:hover{background-color:rgb(var(--brand-rgb) / .1)}.hover\:bg-brand\/25:hover{background-color:rgb(var(--brand-rgb) / .25)}.hover\:bg-brand\/5:hover{background-color:rgb(var(--brand-rgb) / .05)}.hover\:bg-brand\/90:hover{background-color:rgb(var(--brand-rgb) / .9)}.hover\:bg-ink\/20:hover{background-color:rgb(var(--ink-rgb) / .2)}.hover\:bg-ink\/25:hover{background-color:rgb(var(--ink-rgb) / .25)}.hover\:bg-ink\/5:hover{background-color:rgb(var(--ink-rgb) / .05)}.hover\:bg-ink\/\[0\.06\]:hover{background-color:rgb(var(--ink-rgb) / .06)}.hover\:bg-neutral-100:hover{--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity, 1))}.hover\:bg-neutral-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 229 229 / var(--tw-bg-opacity, 1))}.hover\:bg-review\/20:hover{background-color:rgb(var(--review-rgb) / .2)}.hover\:bg-review\/30:hover{background-color:rgb(var(--review-rgb) / .3)}.hover\:bg-surface-1:hover{--tw-bg-opacity: 1;background-color:rgb(var(--surface-1-rgb) / var(--tw-bg-opacity, 1))}.hover\:bg-surface-2:hover{--tw-bg-opacity: 1;background-color:rgb(var(--surface-2-rgb) / var(--tw-bg-opacity, 1))}.hover\:bg-surface-3:hover{--tw-bg-opacity: 1;background-color:rgb(var(--surface-3-rgb) / var(--tw-bg-opacity, 1))}.hover\:bg-surface-3\/50:hover{background-color:rgb(var(--surface-3-rgb) / .5)}.hover\:bg-surface-3\/60:hover{background-color:rgb(var(--surface-3-rgb) / .6)}.hover\:bg-surface-3\/80:hover{background-color:rgb(var(--surface-3-rgb) / .8)}.hover\:bg-warning:hover{--tw-bg-opacity: 1;background-color:rgb(var(--warning-rgb) / var(--tw-bg-opacity, 1))}.hover\:bg-warning\/10:hover{background-color:rgb(var(--warning-rgb) / .1)}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-white\/20:hover{background-color:#fff3}.hover\:text-accent:hover{--tw-text-opacity: 1;color:rgb(var(--accent-rgb) / var(--tw-text-opacity, 1))}.hover\:text-brand:hover{--tw-text-opacity: 1;color:rgb(var(--brand-rgb) / var(--tw-text-opacity, 1))}.hover\:text-ink:hover{--tw-text-opacity: 1;color:rgb(var(--ink-rgb) / var(--tw-text-opacity, 1))}.hover\:text-ink-strong:hover{--tw-text-opacity: 1;color:rgb(var(--ink-strong-rgb) / var(--tw-text-opacity, 1))}.hover\:text-neutral-700:hover{--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity, 1))}.hover\:text-warning:hover{--tw-text-opacity: 1;color:rgb(var(--warning-rgb) / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:text-white\/80:hover{color:#fffc}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:ring-2:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:ring-accent:hover{--tw-ring-opacity: 1;--tw-ring-color: rgb(var(--accent-rgb) / var(--tw-ring-opacity, 1))}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:border-accent:focus{--tw-border-opacity: 1;border-color:rgb(var(--accent-rgb) / var(--tw-border-opacity, 1))}.focus\:border-brand:focus{--tw-border-opacity: 1;border-color:rgb(var(--brand-rgb) / var(--tw-border-opacity, 1))}.focus\:bg-ink\/\[0\.06\]:focus{background-color:rgb(var(--ink-rgb) / .06)}.focus\:bg-ink\/\[0\.08\]:focus{background-color:rgb(var(--ink-rgb) / .08)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-brand\/20:focus{--tw-ring-color: rgb(var(--brand-rgb) / .2)}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-brand\/60:focus-visible{--tw-ring-color: rgb(var(--brand-rgb) / .6)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-\[var\(--surface-2\)\]:focus-visible{--tw-ring-offset-color: var(--surface-2)}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.99\]:active{--tw-scale-x: .99;--tw-scale-y: .99;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:cursor-grabbing:active{cursor:grabbing}.active\:bg-accent\/25:active{background-color:rgb(var(--accent-rgb) / .25)}.active\:bg-ink\/10:active{background-color:rgb(var(--ink-rgb) / .1)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-20:disabled{opacity:.2}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:opacity-60{opacity:.6}@media(prefers-reduced-motion:no-preference){.motion-safe\:transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.motion-safe\:transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.motion-safe\:transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.motion-safe\:duration-150{transition-duration:.15s}.motion-safe\:duration-200{transition-duration:.2s}.motion-safe\:ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}}.dark\:border-neutral-950:is(.dark *){--tw-border-opacity: 1;border-color:rgb(10 10 10 / var(--tw-border-opacity, 1))}.dark\:bg-ink\/10:is(.dark *){background-color:rgb(var(--ink-rgb) / .1)}.dark\:bg-neutral-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity, 1))}.dark\:text-neutral-100:is(.dark *){--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity, 1))}.dark\:text-neutral-300:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity, 1))}.dark\:text-neutral-400:is(.dark *){--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity, 1))}.dark\:ring-offset-neutral-950:is(.dark *){--tw-ring-offset-color: #0a0a0a}.dark\:hover\:bg-neutral-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-neutral-800\/50:hover:is(.dark *){background-color:#26262680}.dark\:hover\:text-neutral-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity, 1))}.dark\:hover\:text-neutral-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity, 1))}@media(min-width:640px){.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.\[\&_button\]\:pointer-events-auto button{pointer-events:auto}.\[\&_iframe\]\:max-w-full iframe,.\[\&_img\]\:max-w-full img,.\[\&_pre\]\:max-w-full pre{max-width:100%}.\[\&_pre\]\:overflow-x-auto pre{overflow-x:auto}.\[\&_video\]\:max-w-full video{max-width:100%}