@the-inclusionist/engine 9.0.0 → 10.0.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 (756) hide show
  1. package/README.md +89 -78
  2. package/app/css/style.css +584 -374
  3. package/app/public/vendor/fonts/bitter-var-ext.woff2 +0 -0
  4. package/app/public/vendor/fonts/bitter-var.woff2 +0 -0
  5. package/app/public/vendor/fonts/bodonimoda-var-ext.woff2 +0 -0
  6. package/app/public/vendor/fonts/bodonimoda-var.woff2 +0 -0
  7. package/app/public/vendor/fonts/cat-abril_fatface-400-ext.woff2 +0 -0
  8. package/app/public/vendor/fonts/cat-abril_fatface-400.woff2 +0 -0
  9. package/app/public/vendor/fonts/cat-adlam_display-400-ext.woff2 +0 -0
  10. package/app/public/vendor/fonts/cat-adlam_display-400.woff2 +0 -0
  11. package/app/public/vendor/fonts/cat-agu_display-400-ext.woff2 +0 -0
  12. package/app/public/vendor/fonts/cat-agu_display-400.woff2 +0 -0
  13. package/app/public/vendor/fonts/cat-alfa_slab_one-400-ext.woff2 +0 -0
  14. package/app/public/vendor/fonts/cat-alfa_slab_one-400.woff2 +0 -0
  15. package/app/public/vendor/fonts/cat-are_you_serious-400-ext.woff2 +0 -0
  16. package/app/public/vendor/fonts/cat-are_you_serious-400.woff2 +0 -0
  17. package/app/public/vendor/fonts/cat-asimovian-400-ext.woff2 +0 -0
  18. package/app/public/vendor/fonts/cat-asimovian-400.woff2 +0 -0
  19. package/app/public/vendor/fonts/cat-atkinson_hyperlegible_next-400-ext.woff2 +0 -0
  20. package/app/public/vendor/fonts/cat-atkinson_hyperlegible_next-400.woff2 +0 -0
  21. package/app/public/vendor/fonts/cat-bakbak_one-400-ext.woff2 +0 -0
  22. package/app/public/vendor/fonts/cat-bakbak_one-400.woff2 +0 -0
  23. package/app/public/vendor/fonts/cat-bangers-400-ext.woff2 +0 -0
  24. package/app/public/vendor/fonts/cat-bangers-400.woff2 +0 -0
  25. package/app/public/vendor/fonts/cat-barriecito-400-ext.woff2 +0 -0
  26. package/app/public/vendor/fonts/cat-barriecito-400.woff2 +0 -0
  27. package/app/public/vendor/fonts/cat-berkshire_swash-400-ext.woff2 +0 -0
  28. package/app/public/vendor/fonts/cat-berkshire_swash-400.woff2 +0 -0
  29. package/app/public/vendor/fonts/cat-bevan-400-ext.woff2 +0 -0
  30. package/app/public/vendor/fonts/cat-bevan-400.woff2 +0 -0
  31. package/app/public/vendor/fonts/cat-bitcount-400-ext.woff2 +0 -0
  32. package/app/public/vendor/fonts/cat-bitcount-400.woff2 +0 -0
  33. package/app/public/vendor/fonts/cat-bowlby_one_sc-400-ext.woff2 +0 -0
  34. package/app/public/vendor/fonts/cat-bowlby_one_sc-400.woff2 +0 -0
  35. package/app/public/vendor/fonts/cat-bungee_shade-400-ext.woff2 +0 -0
  36. package/app/public/vendor/fonts/cat-bungee_shade-400.woff2 +0 -0
  37. package/app/public/vendor/fonts/cat-charm-400-ext.woff2 +0 -0
  38. package/app/public/vendor/fonts/cat-charm-400.woff2 +0 -0
  39. package/app/public/vendor/fonts/cat-charm-700-ext.woff2 +0 -0
  40. package/app/public/vendor/fonts/cat-charm-700.woff2 +0 -0
  41. package/app/public/vendor/fonts/cat-cherry_bomb_one-400-ext.woff2 +0 -0
  42. package/app/public/vendor/fonts/cat-cherry_bomb_one-400.woff2 +0 -0
  43. package/app/public/vendor/fonts/cat-chokokutai-400-ext.woff2 +0 -0
  44. package/app/public/vendor/fonts/cat-chokokutai-400.woff2 +0 -0
  45. package/app/public/vendor/fonts/cat-chonburi-400-ext.woff2 +0 -0
  46. package/app/public/vendor/fonts/cat-chonburi-400.woff2 +0 -0
  47. package/app/public/vendor/fonts/cat-climate_crisis-400-ext.woff2 +0 -0
  48. package/app/public/vendor/fonts/cat-climate_crisis-400.woff2 +0 -0
  49. package/app/public/vendor/fonts/cat-cookie-400.woff2 +0 -0
  50. package/app/public/vendor/fonts/cat-dela_gothic_one-400-ext.woff2 +0 -0
  51. package/app/public/vendor/fonts/cat-dela_gothic_one-400.woff2 +0 -0
  52. package/app/public/vendor/fonts/cat-fascinate_inline-400-ext.woff2 +0 -0
  53. package/app/public/vendor/fonts/cat-fascinate_inline-400.woff2 +0 -0
  54. package/app/public/vendor/fonts/cat-ga_maamli-400-ext.woff2 +0 -0
  55. package/app/public/vendor/fonts/cat-ga_maamli-400.woff2 +0 -0
  56. package/app/public/vendor/fonts/cat-itim-400-ext.woff2 +0 -0
  57. package/app/public/vendor/fonts/cat-itim-400.woff2 +0 -0
  58. package/app/public/vendor/fonts/cat-jacquard_24-400-ext.woff2 +0 -0
  59. package/app/public/vendor/fonts/cat-jacquard_24-400.woff2 +0 -0
  60. package/app/public/vendor/fonts/cat-kablammo-400-ext.woff2 +0 -0
  61. package/app/public/vendor/fonts/cat-kablammo-400.woff2 +0 -0
  62. package/app/public/vendor/fonts/cat-kalam-400-ext.woff2 +0 -0
  63. package/app/public/vendor/fonts/cat-kalam-400.woff2 +0 -0
  64. package/app/public/vendor/fonts/cat-kalam-700-ext.woff2 +0 -0
  65. package/app/public/vendor/fonts/cat-kalam-700.woff2 +0 -0
  66. package/app/public/vendor/fonts/cat-katibeh-400-ext.woff2 +0 -0
  67. package/app/public/vendor/fonts/cat-katibeh-400.woff2 +0 -0
  68. package/app/public/vendor/fonts/cat-lemonada-400-ext.woff2 +0 -0
  69. package/app/public/vendor/fonts/cat-lemonada-400.woff2 +0 -0
  70. package/app/public/vendor/fonts/cat-lilita_one-400-ext.woff2 +0 -0
  71. package/app/public/vendor/fonts/cat-lilita_one-400.woff2 +0 -0
  72. package/app/public/vendor/fonts/cat-lobster-400-ext.woff2 +0 -0
  73. package/app/public/vendor/fonts/cat-lobster-400.woff2 +0 -0
  74. package/app/public/vendor/fonts/cat-luckiest_guy-400-ext.woff2 +0 -0
  75. package/app/public/vendor/fonts/cat-luckiest_guy-400.woff2 +0 -0
  76. package/app/public/vendor/fonts/cat-marhey-400-ext.woff2 +0 -0
  77. package/app/public/vendor/fonts/cat-marhey-400.woff2 +0 -0
  78. package/app/public/vendor/fonts/cat-modak-400-ext.woff2 +0 -0
  79. package/app/public/vendor/fonts/cat-modak-400.woff2 +0 -0
  80. package/app/public/vendor/fonts/cat-momo_signature-400-ext.woff2 +0 -0
  81. package/app/public/vendor/fonts/cat-momo_signature-400.woff2 +0 -0
  82. package/app/public/vendor/fonts/cat-monofett-400-ext.woff2 +0 -0
  83. package/app/public/vendor/fonts/cat-monofett-400.woff2 +0 -0
  84. package/app/public/vendor/fonts/cat-monomakh-400-ext.woff2 +0 -0
  85. package/app/public/vendor/fonts/cat-monomakh-400.woff2 +0 -0
  86. package/app/public/vendor/fonts/cat-monoton-400-ext.woff2 +0 -0
  87. package/app/public/vendor/fonts/cat-monoton-400.woff2 +0 -0
  88. package/app/public/vendor/fonts/cat-nerko_one-400-ext.woff2 +0 -0
  89. package/app/public/vendor/fonts/cat-nerko_one-400.woff2 +0 -0
  90. package/app/public/vendor/fonts/cat-noto_sans_adlam-400-ext.woff2 +0 -0
  91. package/app/public/vendor/fonts/cat-noto_sans_adlam-400.woff2 +0 -0
  92. package/app/public/vendor/fonts/cat-noto_sans_arabic-400-ext.woff2 +0 -0
  93. package/app/public/vendor/fonts/cat-noto_sans_arabic-400.woff2 +0 -0
  94. package/app/public/vendor/fonts/cat-noto_sans_devanagari-400-ext.woff2 +0 -0
  95. package/app/public/vendor/fonts/cat-noto_sans_devanagari-400.woff2 +0 -0
  96. package/app/public/vendor/fonts/cat-noto_sans_hebrew-400-ext.woff2 +0 -0
  97. package/app/public/vendor/fonts/cat-noto_sans_hebrew-400.woff2 +0 -0
  98. package/app/public/vendor/fonts/cat-noto_sans_jp-400-ext.woff2 +0 -0
  99. package/app/public/vendor/fonts/cat-noto_sans_jp-400.woff2 +0 -0
  100. package/app/public/vendor/fonts/cat-noto_sans_khmer-400-ext.woff2 +0 -0
  101. package/app/public/vendor/fonts/cat-noto_sans_khmer-400.woff2 +0 -0
  102. package/app/public/vendor/fonts/cat-noto_sans_kr-400-ext.woff2 +0 -0
  103. package/app/public/vendor/fonts/cat-noto_sans_kr-400.woff2 +0 -0
  104. package/app/public/vendor/fonts/cat-noto_sans_sc-400-ext.woff2 +0 -0
  105. package/app/public/vendor/fonts/cat-noto_sans_sc-400.woff2 +0 -0
  106. package/app/public/vendor/fonts/cat-noto_sans_thai-400-ext.woff2 +0 -0
  107. package/app/public/vendor/fonts/cat-noto_sans_thai-400.woff2 +0 -0
  108. package/app/public/vendor/fonts/cat-ole-400-ext.woff2 +0 -0
  109. package/app/public/vendor/fonts/cat-ole-400.woff2 +0 -0
  110. package/app/public/vendor/fonts/cat-pacifico-400-ext.woff2 +0 -0
  111. package/app/public/vendor/fonts/cat-pacifico-400.woff2 +0 -0
  112. package/app/public/vendor/fonts/cat-patrick_hand-400-ext.woff2 +0 -0
  113. package/app/public/vendor/fonts/cat-patrick_hand-400.woff2 +0 -0
  114. package/app/public/vendor/fonts/cat-petit_formal_script-400-ext.woff2 +0 -0
  115. package/app/public/vendor/fonts/cat-petit_formal_script-400.woff2 +0 -0
  116. package/app/public/vendor/fonts/cat-pixelify_sans-400-ext.woff2 +0 -0
  117. package/app/public/vendor/fonts/cat-pixelify_sans-400.woff2 +0 -0
  118. package/app/public/vendor/fonts/cat-plaster-400-ext.woff2 +0 -0
  119. package/app/public/vendor/fonts/cat-plaster-400.woff2 +0 -0
  120. package/app/public/vendor/fonts/cat-playwrite_ar_guides-400-0.woff2 +0 -0
  121. package/app/public/vendor/fonts/cat-playwrite_at-400-0.woff2 +0 -0
  122. package/app/public/vendor/fonts/cat-playwrite_at_guides-400-0.woff2 +0 -0
  123. package/app/public/vendor/fonts/cat-playwrite_au_nsw-400-0.woff2 +0 -0
  124. package/app/public/vendor/fonts/cat-playwrite_au_nsw_guides-400-0.woff2 +0 -0
  125. package/app/public/vendor/fonts/cat-playwrite_au_qld-400-0.woff2 +0 -0
  126. package/app/public/vendor/fonts/cat-playwrite_au_qld_guides-400-0.woff2 +0 -0
  127. package/app/public/vendor/fonts/cat-playwrite_au_sa-400-0.woff2 +0 -0
  128. package/app/public/vendor/fonts/cat-playwrite_au_sa_guides-400-0.woff2 +0 -0
  129. package/app/public/vendor/fonts/cat-playwrite_au_tas-400-0.woff2 +0 -0
  130. package/app/public/vendor/fonts/cat-playwrite_au_tas_guides-400-0.woff2 +0 -0
  131. package/app/public/vendor/fonts/cat-playwrite_au_vic-400-0.woff2 +0 -0
  132. package/app/public/vendor/fonts/cat-playwrite_au_vic_guides-400-0.woff2 +0 -0
  133. package/app/public/vendor/fonts/cat-playwrite_be_vlg-400-0.woff2 +0 -0
  134. package/app/public/vendor/fonts/cat-playwrite_be_vlg_guides-400-0.woff2 +0 -0
  135. package/app/public/vendor/fonts/cat-playwrite_be_wal-400-0.woff2 +0 -0
  136. package/app/public/vendor/fonts/cat-playwrite_be_wal_guides-400-0.woff2 +0 -0
  137. package/app/public/vendor/fonts/cat-playwrite_br_guides-400-0.woff2 +0 -0
  138. package/app/public/vendor/fonts/cat-playwrite_ca_guides-400-0.woff2 +0 -0
  139. package/app/public/vendor/fonts/cat-playwrite_cl_guides-400-0.woff2 +0 -0
  140. package/app/public/vendor/fonts/cat-playwrite_co_guides-400-0.woff2 +0 -0
  141. package/app/public/vendor/fonts/cat-playwrite_cu_guides-400-0.woff2 +0 -0
  142. package/app/public/vendor/fonts/cat-playwrite_cz-400-0.woff2 +0 -0
  143. package/app/public/vendor/fonts/cat-playwrite_cz_guides-400-0.woff2 +0 -0
  144. package/app/public/vendor/fonts/cat-playwrite_de_grund-400-0.woff2 +0 -0
  145. package/app/public/vendor/fonts/cat-playwrite_de_grund_guides-400-0.woff2 +0 -0
  146. package/app/public/vendor/fonts/cat-playwrite_de_la-400-0.woff2 +0 -0
  147. package/app/public/vendor/fonts/cat-playwrite_de_la_guides-400-0.woff2 +0 -0
  148. package/app/public/vendor/fonts/cat-playwrite_de_sas-400-0.woff2 +0 -0
  149. package/app/public/vendor/fonts/cat-playwrite_de_sas_guides-400-0.woff2 +0 -0
  150. package/app/public/vendor/fonts/cat-playwrite_de_va-400-0.woff2 +0 -0
  151. package/app/public/vendor/fonts/cat-playwrite_de_va_guides-400-0.woff2 +0 -0
  152. package/app/public/vendor/fonts/cat-playwrite_dk_loopet-400-0.woff2 +0 -0
  153. package/app/public/vendor/fonts/cat-playwrite_dk_loopet_guides-400-0.woff2 +0 -0
  154. package/app/public/vendor/fonts/cat-playwrite_dk_uloopet-400-0.woff2 +0 -0
  155. package/app/public/vendor/fonts/cat-playwrite_dk_uloopet_guides-400-0.woff2 +0 -0
  156. package/app/public/vendor/fonts/cat-playwrite_es_deco_guides-400-0.woff2 +0 -0
  157. package/app/public/vendor/fonts/cat-playwrite_es_guides-400-0.woff2 +0 -0
  158. package/app/public/vendor/fonts/cat-playwrite_fr_moderne-400-0.woff2 +0 -0
  159. package/app/public/vendor/fonts/cat-playwrite_fr_moderne_guides-400-0.woff2 +0 -0
  160. package/app/public/vendor/fonts/cat-playwrite_fr_trad-400-0.woff2 +0 -0
  161. package/app/public/vendor/fonts/cat-playwrite_fr_trad_guides-400-0.woff2 +0 -0
  162. package/app/public/vendor/fonts/cat-playwrite_gb_j_guides-400-0.woff2 +0 -0
  163. package/app/public/vendor/fonts/cat-playwrite_gb_s_guides-400-0.woff2 +0 -0
  164. package/app/public/vendor/fonts/cat-playwrite_hr-400-0.woff2 +0 -0
  165. package/app/public/vendor/fonts/cat-playwrite_hr_guides-400-0.woff2 +0 -0
  166. package/app/public/vendor/fonts/cat-playwrite_hr_lijeva-400-0.woff2 +0 -0
  167. package/app/public/vendor/fonts/cat-playwrite_hr_lijeva_guides-400-0.woff2 +0 -0
  168. package/app/public/vendor/fonts/cat-playwrite_hu-400-0.woff2 +0 -0
  169. package/app/public/vendor/fonts/cat-playwrite_hu_guides-400-0.woff2 +0 -0
  170. package/app/public/vendor/fonts/cat-playwrite_id-400-0.woff2 +0 -0
  171. package/app/public/vendor/fonts/cat-playwrite_id_guides-400-0.woff2 +0 -0
  172. package/app/public/vendor/fonts/cat-playwrite_ie-400-0.woff2 +0 -0
  173. package/app/public/vendor/fonts/cat-playwrite_ie_guides-400-0.woff2 +0 -0
  174. package/app/public/vendor/fonts/cat-playwrite_in-400-0.woff2 +0 -0
  175. package/app/public/vendor/fonts/cat-playwrite_in_guides-400-0.woff2 +0 -0
  176. package/app/public/vendor/fonts/cat-playwrite_is-400-0.woff2 +0 -0
  177. package/app/public/vendor/fonts/cat-playwrite_is_guides-400-0.woff2 +0 -0
  178. package/app/public/vendor/fonts/cat-playwrite_it_moderna-400-0.woff2 +0 -0
  179. package/app/public/vendor/fonts/cat-playwrite_it_moderna_guides-400-0.woff2 +0 -0
  180. package/app/public/vendor/fonts/cat-playwrite_it_trad-400-0.woff2 +0 -0
  181. package/app/public/vendor/fonts/cat-playwrite_it_trad_guides-400-0.woff2 +0 -0
  182. package/app/public/vendor/fonts/cat-playwrite_mx_guides-400-0.woff2 +0 -0
  183. package/app/public/vendor/fonts/cat-playwrite_ng_modern-400-0.woff2 +0 -0
  184. package/app/public/vendor/fonts/cat-playwrite_ng_modern_guides-400-0.woff2 +0 -0
  185. package/app/public/vendor/fonts/cat-playwrite_nl-400-0.woff2 +0 -0
  186. package/app/public/vendor/fonts/cat-playwrite_nl_guides-400-0.woff2 +0 -0
  187. package/app/public/vendor/fonts/cat-playwrite_no-400-0.woff2 +0 -0
  188. package/app/public/vendor/fonts/cat-playwrite_no_guides-400-0.woff2 +0 -0
  189. package/app/public/vendor/fonts/cat-playwrite_nz-400-0.woff2 +0 -0
  190. package/app/public/vendor/fonts/cat-playwrite_nz_basic-400-0.woff2 +0 -0
  191. package/app/public/vendor/fonts/cat-playwrite_nz_basic_guides-400-0.woff2 +0 -0
  192. package/app/public/vendor/fonts/cat-playwrite_nz_guides-400-0.woff2 +0 -0
  193. package/app/public/vendor/fonts/cat-playwrite_pe_guides-400-0.woff2 +0 -0
  194. package/app/public/vendor/fonts/cat-playwrite_pl-400-0.woff2 +0 -0
  195. package/app/public/vendor/fonts/cat-playwrite_pl_guides-400-0.woff2 +0 -0
  196. package/app/public/vendor/fonts/cat-playwrite_pt_guides-400-0.woff2 +0 -0
  197. package/app/public/vendor/fonts/cat-playwrite_ro-400-0.woff2 +0 -0
  198. package/app/public/vendor/fonts/cat-playwrite_ro_guides-400-0.woff2 +0 -0
  199. package/app/public/vendor/fonts/cat-playwrite_sk-400-0.woff2 +0 -0
  200. package/app/public/vendor/fonts/cat-playwrite_sk_guides-400-0.woff2 +0 -0
  201. package/app/public/vendor/fonts/cat-playwrite_tz-400-0.woff2 +0 -0
  202. package/app/public/vendor/fonts/cat-playwrite_tz_guides-400-0.woff2 +0 -0
  203. package/app/public/vendor/fonts/cat-playwrite_us_modern_guides-400-0.woff2 +0 -0
  204. package/app/public/vendor/fonts/cat-playwrite_us_trad_guides-400-0.woff2 +0 -0
  205. package/app/public/vendor/fonts/cat-playwrite_vn-400-0.woff2 +0 -0
  206. package/app/public/vendor/fonts/cat-playwrite_vn_guides-400-0.woff2 +0 -0
  207. package/app/public/vendor/fonts/cat-playwrite_za-400-0.woff2 +0 -0
  208. package/app/public/vendor/fonts/cat-playwrite_za_guides-400-0.woff2 +0 -0
  209. package/app/public/vendor/fonts/cat-potta_one-400-ext.woff2 +0 -0
  210. package/app/public/vendor/fonts/cat-potta_one-400.woff2 +0 -0
  211. package/app/public/vendor/fonts/cat-ranchers-400-ext.woff2 +0 -0
  212. package/app/public/vendor/fonts/cat-ranchers-400.woff2 +0 -0
  213. package/app/public/vendor/fonts/cat-ranga-400-ext.woff2 +0 -0
  214. package/app/public/vendor/fonts/cat-ranga-400.woff2 +0 -0
  215. package/app/public/vendor/fonts/cat-ranga-700-ext.woff2 +0 -0
  216. package/app/public/vendor/fonts/cat-ranga-700.woff2 +0 -0
  217. package/app/public/vendor/fonts/cat-risque-400-ext.woff2 +0 -0
  218. package/app/public/vendor/fonts/cat-risque-400.woff2 +0 -0
  219. package/app/public/vendor/fonts/cat-rowdies-400-ext.woff2 +0 -0
  220. package/app/public/vendor/fonts/cat-rowdies-400.woff2 +0 -0
  221. package/app/public/vendor/fonts/cat-rowdies-700-ext.woff2 +0 -0
  222. package/app/public/vendor/fonts/cat-rowdies-700.woff2 +0 -0
  223. package/app/public/vendor/fonts/cat-ruge_boogie-400-ext.woff2 +0 -0
  224. package/app/public/vendor/fonts/cat-ruge_boogie-400.woff2 +0 -0
  225. package/app/public/vendor/fonts/cat-ruslan_display-400-ext.woff2 +0 -0
  226. package/app/public/vendor/fonts/cat-ruslan_display-400.woff2 +0 -0
  227. package/app/public/vendor/fonts/cat-sacramento-400-ext.woff2 +0 -0
  228. package/app/public/vendor/fonts/cat-sacramento-400.woff2 +0 -0
  229. package/app/public/vendor/fonts/cat-sancreek-400-ext.woff2 +0 -0
  230. package/app/public/vendor/fonts/cat-sancreek-400.woff2 +0 -0
  231. package/app/public/vendor/fonts/cat-sankofa_display-400-ext.woff2 +0 -0
  232. package/app/public/vendor/fonts/cat-sankofa_display-400.woff2 +0 -0
  233. package/app/public/vendor/fonts/cat-sedgwick_ave_display-400-ext.woff2 +0 -0
  234. package/app/public/vendor/fonts/cat-sedgwick_ave_display-400.woff2 +0 -0
  235. package/app/public/vendor/fonts/cat-shantell_sans-400-ext.woff2 +0 -0
  236. package/app/public/vendor/fonts/cat-shantell_sans-400.woff2 +0 -0
  237. package/app/public/vendor/fonts/cat-smokum-400-ext.woff2 +0 -0
  238. package/app/public/vendor/fonts/cat-smokum-400.woff2 +0 -0
  239. package/app/public/vendor/fonts/cat-solitreo-400-ext.woff2 +0 -0
  240. package/app/public/vendor/fonts/cat-solitreo-400.woff2 +0 -0
  241. package/app/public/vendor/fonts/cat-spicy_rice-400-ext.woff2 +0 -0
  242. package/app/public/vendor/fonts/cat-spicy_rice-400.woff2 +0 -0
  243. package/app/public/vendor/fonts/cat-sriracha-400-ext.woff2 +0 -0
  244. package/app/public/vendor/fonts/cat-sriracha-400.woff2 +0 -0
  245. package/app/public/vendor/fonts/cat-srisakdi-400-ext.woff2 +0 -0
  246. package/app/public/vendor/fonts/cat-srisakdi-400.woff2 +0 -0
  247. package/app/public/vendor/fonts/cat-srisakdi-700-ext.woff2 +0 -0
  248. package/app/public/vendor/fonts/cat-srisakdi-700.woff2 +0 -0
  249. package/app/public/vendor/fonts/cat-stix_two_math-400-0.woff2 +0 -0
  250. package/app/public/vendor/fonts/cat-tillana-400-ext.woff2 +0 -0
  251. package/app/public/vendor/fonts/cat-tillana-400.woff2 +0 -0
  252. package/app/public/vendor/fonts/cat-tillana-700-ext.woff2 +0 -0
  253. package/app/public/vendor/fonts/cat-tillana-700.woff2 +0 -0
  254. package/app/public/vendor/fonts/cat-titan_one-400-ext.woff2 +0 -0
  255. package/app/public/vendor/fonts/cat-titan_one-400.woff2 +0 -0
  256. package/app/public/vendor/fonts/cat-yatra_one-400-ext.woff2 +0 -0
  257. package/app/public/vendor/fonts/cat-yatra_one-400.woff2 +0 -0
  258. package/app/public/vendor/fonts/cat-yomogi-400-ext.woff2 +0 -0
  259. package/app/public/vendor/fonts/cat-yomogi-400.woff2 +0 -0
  260. package/app/public/vendor/fonts/dmserifdisplay-400-ext.woff2 +0 -0
  261. package/app/public/vendor/fonts/dmserifdisplay-400.woff2 +0 -0
  262. package/app/public/vendor/fonts/domine-var-ext.woff2 +0 -0
  263. package/app/public/vendor/fonts/domine-var.woff2 +0 -0
  264. package/app/public/vendor/fonts/fraunces-var-ext.woff2 +0 -0
  265. package/app/public/vendor/fonts/fraunces-var.woff2 +0 -0
  266. package/app/public/vendor/fonts/fredoka-var-ext.woff2 +0 -0
  267. package/app/public/vendor/fonts/fredoka-var.woff2 +0 -0
  268. package/app/public/vendor/fonts/jakarta-var-ext.woff2 +0 -0
  269. package/app/public/vendor/fonts/jakarta-var.woff2 +0 -0
  270. package/app/public/vendor/fonts/lora-var-ext.woff2 +0 -0
  271. package/app/public/vendor/fonts/lora-var.woff2 +0 -0
  272. package/app/public/vendor/fonts/merriweather-var-ext.woff2 +0 -0
  273. package/app/public/vendor/fonts/merriweather-var.woff2 +0 -0
  274. package/app/public/vendor/fonts/notosans-var-ext.woff2 +0 -0
  275. package/app/public/vendor/fonts/notosans-var.woff2 +0 -0
  276. package/app/public/vendor/fonts/nunito-var-ext.woff2 +0 -0
  277. package/app/public/vendor/fonts/nunito-var.woff2 +0 -0
  278. package/app/public/vendor/fonts/playfair-var-ext.woff2 +0 -0
  279. package/app/public/vendor/fonts/playfair-var.woff2 +0 -0
  280. package/app/public/vendor/fonts/playwrite-cu.woff2 +0 -0
  281. package/app/public/vendor/fonts/playwrite-es-deco.woff2 +0 -0
  282. package/app/public/vendor/fonts/playwrite-es.woff2 +0 -0
  283. package/app/public/vendor/fonts/playwrite-gb-j.woff2 +0 -0
  284. package/app/public/vendor/fonts/playwrite-gb-s.woff2 +0 -0
  285. package/app/public/vendor/fonts/playwrite-pe.woff2 +0 -0
  286. package/app/public/vendor/fonts/playwrite-pt.woff2 +0 -0
  287. package/app/public/vendor/fonts/quicksand-var-ext.woff2 +0 -0
  288. package/app/public/vendor/fonts/quicksand-var.woff2 +0 -0
  289. package/app/public/vendor/fonts/robotoflex-var-ext.woff2 +0 -0
  290. package/app/public/vendor/fonts/robotoflex-var.woff2 +0 -0
  291. package/app/public/vendor/fonts/sora-var-ext.woff2 +0 -0
  292. package/app/public/vendor/fonts/sora-var.woff2 +0 -0
  293. package/app/public/vendor/fonts/spacegrotesk-var-ext.woff2 +0 -0
  294. package/app/public/vendor/fonts/spacegrotesk-var.woff2 +0 -0
  295. package/app/public/vendor/fonts/spectral-400-ext.woff2 +0 -0
  296. package/app/public/vendor/fonts/spectral-400.woff2 +0 -0
  297. package/app/public/vendor/fonts/spectral-700-ext.woff2 +0 -0
  298. package/app/public/vendor/fonts/spectral-700.woff2 +0 -0
  299. package/app/public/vendor/fonts/teachers-var-ext.woff2 +0 -0
  300. package/app/public/vendor/fonts/teachers-var.woff2 +0 -0
  301. package/app/public/vendor/fonts/ubuntu-400-ext.woff2 +0 -0
  302. package/app/public/vendor/fonts/ubuntu-400.woff2 +0 -0
  303. package/app/public/vendor/fonts/ubuntu-700-ext.woff2 +0 -0
  304. package/app/public/vendor/fonts/ubuntu-700.woff2 +0 -0
  305. package/app/public/vendor/fonts.css +1167 -51
  306. package/dist-pkg/boot/create-game.d.ts +444 -215
  307. package/dist-pkg/boot/create-game.js +3530 -549
  308. package/dist-pkg/core/a11y-sr.d.ts +25 -3
  309. package/dist-pkg/core/a11y-sr.js +40 -19
  310. package/dist-pkg/core/accessible-label.d.ts +17 -0
  311. package/dist-pkg/core/accessible-label.js +37 -0
  312. package/dist-pkg/core/accommodation-subjects.d.ts +26 -0
  313. package/dist-pkg/core/accommodation-subjects.js +32 -0
  314. package/dist-pkg/core/accommodations.d.ts +107 -0
  315. package/dist-pkg/core/accommodations.js +178 -0
  316. package/dist-pkg/core/actions.d.ts +75 -51
  317. package/dist-pkg/core/actions.js +98 -69
  318. package/dist-pkg/core/calm-mode.d.ts +31 -0
  319. package/dist-pkg/core/calm-mode.js +47 -0
  320. package/dist-pkg/core/camera-cycle.d.ts +15 -0
  321. package/dist-pkg/core/camera-cycle.js +7 -0
  322. package/dist-pkg/core/caption-duration.d.ts +15 -0
  323. package/dist-pkg/core/caption-duration.js +19 -0
  324. package/dist-pkg/core/cartridge-problems.d.ts +34 -0
  325. package/dist-pkg/core/cartridge-problems.js +53 -0
  326. package/dist-pkg/core/constants.d.ts +0 -54
  327. package/dist-pkg/core/constants.js +9 -76
  328. package/dist-pkg/core/contract.d.ts +143 -163
  329. package/dist-pkg/core/contract.js +223 -207
  330. package/dist-pkg/core/dom-query.d.ts +4 -4
  331. package/dist-pkg/core/dom-query.js +12 -20
  332. package/dist-pkg/core/entity.d.ts +62 -77
  333. package/dist-pkg/core/entity.js +18 -32
  334. package/dist-pkg/core/escape-html.d.ts +9 -10
  335. package/dist-pkg/core/escape-html.js +16 -20
  336. package/dist-pkg/core/flash-threshold.d.ts +17 -0
  337. package/dist-pkg/core/flash-threshold.js +113 -0
  338. package/dist-pkg/core/game-speed.d.ts +11 -0
  339. package/dist-pkg/core/game-speed.js +16 -0
  340. package/dist-pkg/core/genres.d.ts +20 -0
  341. package/dist-pkg/core/genres.js +44 -0
  342. package/dist-pkg/core/i18n.d.ts +87 -41
  343. package/dist-pkg/core/i18n.js +206 -153
  344. package/dist-pkg/core/loop.d.ts +17 -6
  345. package/dist-pkg/core/loop.js +26 -26
  346. package/dist-pkg/core/pause-icon-catalogue.d.ts +15 -0
  347. package/dist-pkg/core/pause-icon-catalogue.js +54 -0
  348. package/dist-pkg/core/ring.d.ts +17 -0
  349. package/dist-pkg/core/ring.js +29 -0
  350. package/dist-pkg/core/rng.d.ts +7 -12
  351. package/dist-pkg/core/rng.js +23 -53
  352. package/dist-pkg/core/route.d.ts +26 -26
  353. package/dist-pkg/core/route.js +126 -121
  354. package/dist-pkg/core/scenes.d.ts +37 -40
  355. package/dist-pkg/core/scenes.js +41 -43
  356. package/dist-pkg/core/screens.d.ts +4 -4
  357. package/dist-pkg/core/screens.js +11 -16
  358. package/dist-pkg/core/setting-defaults.d.ts +61 -0
  359. package/dist-pkg/core/setting-defaults.js +66 -0
  360. package/dist-pkg/core/speech-rate.d.ts +29 -0
  361. package/dist-pkg/core/speech-rate.js +47 -0
  362. package/dist-pkg/core/state.d.ts +118 -118
  363. package/dist-pkg/core/state.js +322 -297
  364. package/dist-pkg/core/visual-cycles.d.ts +30 -0
  365. package/dist-pkg/core/visual-cycles.js +52 -0
  366. package/dist-pkg/core/visual-state.d.ts +13 -0
  367. package/dist-pkg/core/visual-state.js +6 -0
  368. package/dist-pkg/educational/activities-registry.d.ts +1 -1
  369. package/dist-pkg/educational/activities-registry.js +9 -8
  370. package/dist-pkg/educational/adaptive-engine.d.ts +11 -11
  371. package/dist-pkg/educational/adaptive-engine.js +17 -17
  372. package/dist-pkg/educational/segment-bar.d.ts +12 -12
  373. package/dist-pkg/educational/segment-bar.js +9 -9
  374. package/dist-pkg/i18n/en.js +321 -215
  375. package/dist-pkg/i18n/es.js +320 -215
  376. package/dist-pkg/i18n/pt.js +342 -215
  377. package/dist-pkg/input/default-bindings.d.ts +37 -38
  378. package/dist-pkg/input/default-bindings.js +127 -144
  379. package/dist-pkg/input/devices.d.ts +7 -7
  380. package/dist-pkg/input/devices.js +17 -16
  381. package/dist-pkg/input/edges.d.ts +23 -32
  382. package/dist-pkg/input/edges.js +23 -28
  383. package/dist-pkg/input/empathy-filter.d.ts +22 -0
  384. package/dist-pkg/input/empathy-filter.js +34 -0
  385. package/dist-pkg/input/face-map.d.ts +96 -0
  386. package/dist-pkg/input/face-map.js +255 -0
  387. package/dist-pkg/input/face-signals.d.ts +40 -0
  388. package/dist-pkg/input/face-signals.js +48 -0
  389. package/dist-pkg/input/gamepad.d.ts +164 -145
  390. package/dist-pkg/input/gamepad.js +351 -559
  391. package/dist-pkg/input/gaze-cycle.d.ts +64 -0
  392. package/dist-pkg/input/gaze-cycle.js +133 -0
  393. package/dist-pkg/input/gaze-relative.d.ts +68 -0
  394. package/dist-pkg/input/gaze-relative.js +142 -0
  395. package/dist-pkg/input/hand-map.d.ts +28 -0
  396. package/dist-pkg/input/hand-map.js +142 -0
  397. package/dist-pkg/input/input-cooldown.d.ts +17 -0
  398. package/dist-pkg/input/input-cooldown.js +39 -0
  399. package/dist-pkg/input/keyboard-runtime.d.ts +18 -20
  400. package/dist-pkg/input/keyboard-runtime.js +23 -27
  401. package/dist-pkg/input/keyboard.d.ts +68 -62
  402. package/dist-pkg/input/keyboard.js +83 -105
  403. package/dist-pkg/input/keydown.d.ts +124 -132
  404. package/dist-pkg/input/keydown.js +283 -288
  405. package/dist-pkg/input/latch-edge.d.ts +25 -21
  406. package/dist-pkg/input/latch-edge.js +33 -35
  407. package/dist-pkg/input/latch-scope.d.ts +43 -47
  408. package/dist-pkg/input/latch-scope.js +66 -75
  409. package/dist-pkg/input/latch-store.d.ts +28 -29
  410. package/dist-pkg/input/latch-store.js +44 -47
  411. package/dist-pkg/input/latch-sync.d.ts +28 -29
  412. package/dist-pkg/input/latch-sync.js +25 -25
  413. package/dist-pkg/input/latch.d.ts +14 -17
  414. package/dist-pkg/input/latch.js +29 -37
  415. package/dist-pkg/input/pad-defaults.d.ts +13 -16
  416. package/dist-pkg/input/pad-defaults.js +21 -28
  417. package/dist-pkg/input/pad-reading.d.ts +76 -0
  418. package/dist-pkg/input/pad-reading.js +164 -0
  419. package/dist-pkg/input/pad-wizard.d.ts +96 -0
  420. package/dist-pkg/input/pad-wizard.js +205 -0
  421. package/dist-pkg/input/pointer-space.d.ts +19 -20
  422. package/dist-pkg/input/pointer-space.js +27 -32
  423. package/dist-pkg/input/pointer.d.ts +39 -40
  424. package/dist-pkg/input/pointer.js +42 -45
  425. package/dist-pkg/input/state.d.ts +101 -89
  426. package/dist-pkg/input/state.js +54 -134
  427. package/dist-pkg/input/switch-scan.d.ts +42 -0
  428. package/dist-pkg/input/switch-scan.js +54 -0
  429. package/dist-pkg/input/synthetic-source.d.ts +42 -0
  430. package/dist-pkg/input/synthetic-source.js +57 -0
  431. package/dist-pkg/input/touch-bindings.d.ts +127 -113
  432. package/dist-pkg/input/touch-bindings.js +158 -173
  433. package/dist-pkg/input/touch.d.ts +130 -70
  434. package/dist-pkg/input/touch.js +321 -123
  435. package/dist-pkg/input/transport-in-use.d.ts +107 -0
  436. package/dist-pkg/input/transport-in-use.js +130 -0
  437. package/dist-pkg/input/transports.d.ts +96 -114
  438. package/dist-pkg/input/transports.js +104 -106
  439. package/dist-pkg/input/virtual-controller.d.ts +46 -0
  440. package/dist-pkg/input/virtual-controller.js +41 -0
  441. package/dist-pkg/input/vocabulary-migration.d.ts +50 -49
  442. package/dist-pkg/input/vocabulary-migration.js +80 -79
  443. package/dist-pkg/input/voice-map.d.ts +43 -0
  444. package/dist-pkg/input/voice-map.js +125 -0
  445. package/dist-pkg/platform/audio-ambient.d.ts +13 -1
  446. package/dist-pkg/platform/audio-ambient.js +11 -13
  447. package/dist-pkg/platform/audio-earcons.d.ts +20 -19
  448. package/dist-pkg/platform/audio-earcons.js +51 -42
  449. package/dist-pkg/platform/audio-jingles.js +9 -10
  450. package/dist-pkg/platform/audio-mixer.d.ts +14 -2
  451. package/dist-pkg/platform/audio-mixer.js +36 -39
  452. package/dist-pkg/platform/audio-sonar.d.ts +96 -113
  453. package/dist-pkg/platform/audio-sonar.js +245 -238
  454. package/dist-pkg/platform/audio.d.ts +53 -19
  455. package/dist-pkg/platform/audio.js +161 -169
  456. package/dist-pkg/platform/flash-sampler.d.ts +19 -0
  457. package/dist-pkg/platform/flash-sampler.js +79 -0
  458. package/dist-pkg/platform/guide-intensity.d.ts +26 -27
  459. package/dist-pkg/platform/guide-intensity.js +50 -52
  460. package/dist-pkg/platform/heavy-catalogue.d.ts +31 -0
  461. package/dist-pkg/platform/heavy-catalogue.js +223 -0
  462. package/dist-pkg/platform/heavy-mirror.d.ts +26 -0
  463. package/dist-pkg/platform/heavy-mirror.js +76 -0
  464. package/dist-pkg/platform/heavy.d.ts +104 -0
  465. package/dist-pkg/platform/heavy.js +169 -0
  466. package/dist-pkg/platform/interruptible-speech.d.ts +16 -16
  467. package/dist-pkg/platform/interruptible-speech.js +50 -51
  468. package/dist-pkg/platform/kokoro-port.d.ts +27 -0
  469. package/dist-pkg/platform/kokoro-port.js +50 -0
  470. package/dist-pkg/platform/kokoro-runtime.d.ts +20 -0
  471. package/dist-pkg/platform/kokoro-runtime.js +52 -0
  472. package/dist-pkg/platform/kokoro.d.ts +70 -0
  473. package/dist-pkg/platform/kokoro.js +133 -0
  474. package/dist-pkg/platform/listener-scope.d.ts +12 -0
  475. package/dist-pkg/platform/listener-scope.js +81 -0
  476. package/dist-pkg/platform/locale-host.d.ts +10 -0
  477. package/dist-pkg/platform/locale-host.js +34 -0
  478. package/dist-pkg/platform/microphone.d.ts +51 -0
  479. package/dist-pkg/platform/microphone.js +118 -0
  480. package/dist-pkg/platform/onnx-runtime.d.ts +34 -0
  481. package/dist-pkg/platform/onnx-runtime.js +42 -0
  482. package/dist-pkg/platform/reading-in-worker.d.ts +40 -0
  483. package/dist-pkg/platform/reading-in-worker.js +87 -0
  484. package/dist-pkg/platform/reading-model.d.ts +73 -0
  485. package/dist-pkg/platform/reading-model.js +247 -0
  486. package/dist-pkg/platform/reading-runtime.d.ts +24 -0
  487. package/dist-pkg/platform/reading-runtime.js +159 -0
  488. package/dist-pkg/platform/reading-worker.d.ts +41 -0
  489. package/dist-pkg/platform/reading-worker.js +58 -0
  490. package/dist-pkg/platform/reading.d.ts +69 -0
  491. package/dist-pkg/platform/reading.js +128 -0
  492. package/dist-pkg/platform/speech-recognition.d.ts +51 -0
  493. package/dist-pkg/platform/speech-recognition.js +84 -0
  494. package/dist-pkg/platform/speech.d.ts +14 -1
  495. package/dist-pkg/platform/speech.js +13 -13
  496. package/dist-pkg/platform/storage-keys.d.ts +96 -0
  497. package/dist-pkg/platform/storage-keys.js +106 -0
  498. package/dist-pkg/platform/storage.d.ts +46 -111
  499. package/dist-pkg/platform/storage.js +104 -169
  500. package/dist-pkg/platform/tts.d.ts +51 -38
  501. package/dist-pkg/platform/tts.js +217 -119
  502. package/dist-pkg/platform/vision-loop.d.ts +23 -0
  503. package/dist-pkg/platform/vision-loop.js +56 -0
  504. package/dist-pkg/platform/vision.d.ts +132 -0
  505. package/dist-pkg/platform/vision.js +117 -0
  506. package/dist-pkg/platform/voice-listener.d.ts +36 -0
  507. package/dist-pkg/platform/voice-listener.js +88 -0
  508. package/dist-pkg/platform/voice-plan.d.ts +6 -102
  509. package/dist-pkg/platform/voice-plan.js +9 -151
  510. package/dist-pkg/platform/vosk-runtime.d.ts +71 -0
  511. package/dist-pkg/platform/vosk-runtime.js +93 -0
  512. package/dist-pkg/render/canvas.d.ts +13 -7
  513. package/dist-pkg/render/canvas.js +13 -13
  514. package/dist-pkg/render/crt.d.ts +46 -12
  515. package/dist-pkg/render/crt.js +82 -80
  516. package/dist-pkg/render/cvd-matrices.d.ts +18 -18
  517. package/dist-pkg/render/cvd-matrices.js +33 -38
  518. package/dist-pkg/render/hc-role-data.d.ts +7 -7
  519. package/dist-pkg/render/hc-role-data.js +14 -14
  520. package/dist-pkg/render/high-contrast.d.ts +66 -54
  521. package/dist-pkg/render/high-contrast.js +221 -216
  522. package/dist-pkg/render/low-vision-drawing.d.ts +5 -0
  523. package/dist-pkg/render/low-vision-drawing.js +46 -0
  524. package/dist-pkg/render/lq-filter.d.ts +32 -20
  525. package/dist-pkg/render/lq-filter.js +59 -65
  526. package/dist-pkg/render/port.d.ts +86 -88
  527. package/dist-pkg/render/port.js +17 -23
  528. package/dist-pkg/render/screen-pipeline.d.ts +42 -42
  529. package/dist-pkg/render/screen-pipeline.js +80 -87
  530. package/dist-pkg/render/sprite-fx.d.ts +2 -1
  531. package/dist-pkg/render/sprite-fx.js +16 -14
  532. package/dist-pkg/render/viewports.d.ts +20 -15
  533. package/dist-pkg/render/viewports.js +83 -114
  534. package/dist-pkg/render/viz-axes-labels.d.ts +47 -0
  535. package/dist-pkg/render/viz-axes-labels.js +88 -0
  536. package/dist-pkg/render/viz-axes.d.ts +80 -86
  537. package/dist-pkg/render/viz-axes.js +115 -116
  538. package/dist-pkg/render/viz-modes.d.ts +28 -29
  539. package/dist-pkg/render/viz-modes.js +40 -45
  540. package/dist-pkg/render/viz-refusal.d.ts +32 -0
  541. package/dist-pkg/render/viz-refusal.js +57 -0
  542. package/dist-pkg/render/viz-setters.d.ts +104 -66
  543. package/dist-pkg/render/viz-setters.js +182 -191
  544. package/dist-pkg/ui/aac-sets.d.ts +40 -0
  545. package/dist-pkg/ui/aac-sets.js +49 -0
  546. package/dist-pkg/ui/audio-choices.d.ts +63 -0
  547. package/dist-pkg/ui/audio-choices.js +94 -0
  548. package/dist-pkg/ui/audio-rows-that-apply.d.ts +12 -0
  549. package/dist-pkg/ui/audio-rows-that-apply.js +43 -0
  550. package/dist-pkg/ui/camera-control.d.ts +6 -0
  551. package/dist-pkg/ui/camera-control.js +14 -0
  552. package/dist-pkg/ui/changed-mark.d.ts +9 -8
  553. package/dist-pkg/ui/changed-mark.js +22 -53
  554. package/dist-pkg/ui/control-choices.d.ts +37 -0
  555. package/dist-pkg/ui/control-choices.js +84 -0
  556. package/dist-pkg/ui/debug-panel.d.ts +59 -43
  557. package/dist-pkg/ui/debug-panel.js +68 -69
  558. package/dist-pkg/ui/dom.d.ts +10 -14
  559. package/dist-pkg/ui/dom.js +10 -47
  560. package/dist-pkg/ui/drawing-problems.d.ts +25 -0
  561. package/dist-pkg/ui/drawing-problems.js +93 -0
  562. package/dist-pkg/ui/eye-control.d.ts +36 -0
  563. package/dist-pkg/ui/eye-control.js +178 -0
  564. package/dist-pkg/ui/face-control.d.ts +25 -0
  565. package/dist-pkg/ui/face-control.js +183 -0
  566. package/dist-pkg/ui/focus-trap.d.ts +39 -49
  567. package/dist-pkg/ui/focus-trap.js +56 -65
  568. package/dist-pkg/ui/fonts.d.ts +118 -63
  569. package/dist-pkg/ui/fonts.js +267 -111
  570. package/dist-pkg/ui/game-options.d.ts +42 -0
  571. package/dist-pkg/ui/game-options.js +138 -0
  572. package/dist-pkg/ui/gaze-overlay.d.ts +64 -0
  573. package/dist-pkg/ui/gaze-overlay.js +165 -0
  574. package/dist-pkg/ui/hand-control.d.ts +25 -0
  575. package/dist-pkg/ui/hand-control.js +143 -0
  576. package/dist-pkg/ui/help-panel.d.ts +76 -0
  577. package/dist-pkg/ui/help-panel.js +232 -0
  578. package/dist-pkg/ui/hud-bands.d.ts +45 -0
  579. package/dist-pkg/ui/hud-bands.js +108 -0
  580. package/dist-pkg/ui/hud.d.ts +73 -70
  581. package/dist-pkg/ui/hud.js +94 -98
  582. package/dist-pkg/ui/item-announcement.d.ts +13 -12
  583. package/dist-pkg/ui/item-announcement.js +25 -26
  584. package/dist-pkg/ui/latch-refusal.d.ts +22 -21
  585. package/dist-pkg/ui/latch-refusal.js +37 -37
  586. package/dist-pkg/ui/layout.d.ts +103 -28
  587. package/dist-pkg/ui/layout.js +114 -99
  588. package/dist-pkg/ui/locale-flags.d.ts +16 -0
  589. package/dist-pkg/ui/locale-flags.js +30 -0
  590. package/dist-pkg/ui/loop-crash.d.ts +17 -17
  591. package/dist-pkg/ui/loop-crash.js +33 -62
  592. package/dist-pkg/ui/menu-intent.d.ts +32 -0
  593. package/dist-pkg/ui/menu-intent.js +54 -0
  594. package/dist-pkg/ui/menu-items.d.ts +10 -0
  595. package/dist-pkg/ui/menu-items.js +22 -0
  596. package/dist-pkg/ui/menu-nav.d.ts +60 -90
  597. package/dist-pkg/ui/menu-nav.js +301 -274
  598. package/dist-pkg/ui/mobility-choices.d.ts +26 -0
  599. package/dist-pkg/ui/mobility-choices.js +41 -0
  600. package/dist-pkg/ui/motion-choices.d.ts +31 -0
  601. package/dist-pkg/ui/motion-choices.js +68 -0
  602. package/dist-pkg/ui/motion-scene.d.ts +24 -19
  603. package/dist-pkg/ui/motion-scene.js +29 -61
  604. package/dist-pkg/ui/mount-panel.d.ts +81 -0
  605. package/dist-pkg/ui/mount-panel.js +61 -0
  606. package/dist-pkg/ui/panel-shell.d.ts +65 -31
  607. package/dist-pkg/ui/panel-shell.js +92 -66
  608. package/dist-pkg/ui/panel-widgets.d.ts +116 -0
  609. package/dist-pkg/ui/panel-widgets.js +208 -0
  610. package/dist-pkg/ui/pause-buttons.d.ts +35 -0
  611. package/dist-pkg/ui/pause-buttons.js +66 -0
  612. package/dist-pkg/ui/pause-icons.d.ts +249 -351
  613. package/dist-pkg/ui/pause-icons.js +614 -605
  614. package/dist-pkg/ui/pause-markup.d.ts +86 -0
  615. package/dist-pkg/ui/pause-markup.js +125 -0
  616. package/dist-pkg/ui/reach-notice.d.ts +22 -23
  617. package/dist-pkg/ui/reach-notice.js +55 -58
  618. package/dist-pkg/ui/scan-overlay.d.ts +23 -0
  619. package/dist-pkg/ui/scan-overlay.js +42 -0
  620. package/dist-pkg/ui/settings-aac.d.ts +68 -0
  621. package/dist-pkg/ui/settings-aac.js +189 -0
  622. package/dist-pkg/ui/settings-audio.d.ts +91 -113
  623. package/dist-pkg/ui/settings-audio.js +407 -405
  624. package/dist-pkg/ui/settings-controls.d.ts +53 -92
  625. package/dist-pkg/ui/settings-controls.js +143 -215
  626. package/dist-pkg/ui/settings-empathy.d.ts +39 -30
  627. package/dist-pkg/ui/settings-empathy.js +53 -60
  628. package/dist-pkg/ui/settings-mobility.d.ts +195 -0
  629. package/dist-pkg/ui/settings-mobility.js +374 -0
  630. package/dist-pkg/ui/settings-motion.d.ts +91 -70
  631. package/dist-pkg/ui/settings-motion.js +287 -198
  632. package/dist-pkg/ui/settings-panel.d.ts +48 -45
  633. package/dist-pkg/ui/settings-panel.js +164 -93
  634. package/dist-pkg/ui/settings-typo.d.ts +28 -76
  635. package/dist-pkg/ui/settings-typo.js +145 -125
  636. package/dist-pkg/ui/settings-visual.d.ts +29 -87
  637. package/dist-pkg/ui/settings-visual.js +240 -193
  638. package/dist-pkg/ui/shell.d.ts +113 -134
  639. package/dist-pkg/ui/shell.js +143 -216
  640. package/dist-pkg/ui/simulation-list.d.ts +27 -0
  641. package/dist-pkg/ui/simulation-list.js +76 -0
  642. package/dist-pkg/ui/simulation-over-the-world.d.ts +23 -0
  643. package/dist-pkg/ui/simulation-over-the-world.js +131 -0
  644. package/dist-pkg/ui/simulation-refusal.d.ts +5 -31
  645. package/dist-pkg/ui/simulation-refusal.js +8 -56
  646. package/dist-pkg/ui/switchable-control.d.ts +11 -0
  647. package/dist-pkg/ui/switchable-control.js +19 -0
  648. package/dist-pkg/ui/title.d.ts +4 -4
  649. package/dist-pkg/ui/title.js +11 -13
  650. package/dist-pkg/ui/top-band.d.ts +24 -0
  651. package/dist-pkg/ui/top-band.js +100 -0
  652. package/dist-pkg/ui/typo-choices.d.ts +71 -0
  653. package/dist-pkg/ui/typo-choices.js +84 -0
  654. package/dist-pkg/ui/visual-axes-panel.d.ts +11 -47
  655. package/dist-pkg/ui/visual-axes-panel.js +12 -94
  656. package/dist-pkg/ui/visual-choices.d.ts +77 -0
  657. package/dist-pkg/ui/visual-choices.js +107 -0
  658. package/dist-pkg/ui/vlibras.d.ts +33 -10
  659. package/dist-pkg/ui/vlibras.js +58 -81
  660. package/dist-pkg/ui/voice-control.d.ts +46 -0
  661. package/dist-pkg/ui/voice-control.js +143 -0
  662. package/dist-pkg/ui/voice-settings.d.ts +96 -0
  663. package/dist-pkg/ui/voice-settings.js +302 -0
  664. package/dist-pkg/ui/where-the-child-is.d.ts +31 -0
  665. package/dist-pkg/ui/where-the-child-is.js +70 -0
  666. package/docs/CREDITS.md +198 -54
  667. package/docs/LICENSES.md +160 -145
  668. package/package.json +24 -25
  669. package/scripts/heavy-into-the-delivery.mjs +144 -0
  670. package/scripts/licences/Apache-2.0.txt +176 -0
  671. package/scripts/licences/GPL-3.0.txt +674 -0
  672. package/scripts/licences/MIT.txt +17 -0
  673. package/scripts/licences/third-party.mjs +287 -0
  674. package/scripts/licences/vosk-browser.NOTICE.txt +268 -0
  675. package/app/public/vendor/fonts/comicneue-400.woff2 +0 -0
  676. package/app/public/vendor/fonts/comicneue-700.woff2 +0 -0
  677. package/dist-pkg/core/anel.d.ts +0 -17
  678. package/dist-pkg/core/anel.js +0 -31
  679. package/dist-pkg/core/collision.d.ts +0 -21
  680. package/dist-pkg/core/collision.js +0 -62
  681. package/dist-pkg/core/layers.d.ts +0 -63
  682. package/dist-pkg/core/layers.js +0 -95
  683. package/dist-pkg/core/letter-grid.d.ts +0 -55
  684. package/dist-pkg/core/letter-grid.js +0 -116
  685. package/dist-pkg/core/password.d.ts +0 -34
  686. package/dist-pkg/core/password.js +0 -205
  687. package/dist-pkg/core/rotulo-acessivel.d.ts +0 -17
  688. package/dist-pkg/core/rotulo-acessivel.js +0 -41
  689. package/dist-pkg/core/run-state.d.ts +0 -115
  690. package/dist-pkg/core/run-state.js +0 -40
  691. package/dist-pkg/core/tiles.d.ts +0 -12
  692. package/dist-pkg/core/tiles.js +0 -61
  693. package/dist-pkg/core/world.d.ts +0 -4
  694. package/dist-pkg/core/world.js +0 -58
  695. package/dist-pkg/input/origem-sintetica.d.ts +0 -44
  696. package/dist-pkg/input/origem-sintetica.js +0 -60
  697. package/dist-pkg/input/transporte-em-uso.d.ts +0 -101
  698. package/dist-pkg/input/transporte-em-uso.js +0 -130
  699. package/dist-pkg/platform/audio-nav.d.ts +0 -51
  700. package/dist-pkg/platform/audio-nav.js +0 -99
  701. package/dist-pkg/platform/pesados-catalogo.d.ts +0 -14
  702. package/dist-pkg/platform/pesados-catalogo.js +0 -177
  703. package/dist-pkg/platform/pesados.d.ts +0 -31
  704. package/dist-pkg/platform/pesados.js +0 -75
  705. package/dist-pkg/platform/vozes-prontas.d.ts +0 -28
  706. package/dist-pkg/platform/vozes-prontas.js +0 -61
  707. package/dist-pkg/render/camera.d.ts +0 -58
  708. package/dist-pkg/render/camera.js +0 -105
  709. package/dist-pkg/render/cenario-data.d.ts +0 -127
  710. package/dist-pkg/render/cenario-data.js +0 -145
  711. package/dist-pkg/render/city-tex.d.ts +0 -63
  712. package/dist-pkg/render/city-tex.js +0 -228
  713. package/dist-pkg/render/city-tiles.d.ts +0 -11
  714. package/dist-pkg/render/city-tiles.js +0 -140
  715. package/dist-pkg/render/draw.d.ts +0 -149
  716. package/dist-pkg/render/draw.js +0 -231
  717. package/dist-pkg/render/fx.d.ts +0 -63
  718. package/dist-pkg/render/fx.js +0 -123
  719. package/dist-pkg/render/minimap.d.ts +0 -11
  720. package/dist-pkg/render/minimap.js +0 -94
  721. package/dist-pkg/render/parallax.d.ts +0 -85
  722. package/dist-pkg/render/parallax.js +0 -158
  723. package/dist-pkg/render/player-anim.d.ts +0 -71
  724. package/dist-pkg/render/player-anim.js +0 -152
  725. package/dist-pkg/render/recycling-tex.d.ts +0 -48
  726. package/dist-pkg/render/recycling-tex.js +0 -164
  727. package/dist-pkg/render/scene-city.d.ts +0 -77
  728. package/dist-pkg/render/scene-city.js +0 -181
  729. package/dist-pkg/render/scene-parallax.d.ts +0 -72
  730. package/dist-pkg/render/scene-parallax.js +0 -426
  731. package/dist-pkg/render/scene-sky.d.ts +0 -126
  732. package/dist-pkg/render/scene-sky.js +0 -295
  733. package/dist-pkg/render/set-cenario.d.ts +0 -54
  734. package/dist-pkg/render/set-cenario.js +0 -103
  735. package/dist-pkg/render/textures.d.ts +0 -75
  736. package/dist-pkg/render/textures.js +0 -240
  737. package/dist-pkg/render/title-scene.d.ts +0 -46
  738. package/dist-pkg/render/title-scene.js +0 -75
  739. package/dist-pkg/render/weather.d.ts +0 -96
  740. package/dist-pkg/render/weather.js +0 -171
  741. package/dist-pkg/render/wheelchair-sprites.d.ts +0 -32
  742. package/dist-pkg/render/wheelchair-sprites.js +0 -69
  743. package/dist-pkg/render/world-tex.d.ts +0 -18
  744. package/dist-pkg/render/world-tex.js +0 -87
  745. package/dist-pkg/ui/activities-menu.d.ts +0 -258
  746. package/dist-pkg/ui/activities-menu.js +0 -648
  747. package/dist-pkg/ui/caa-sets.d.ts +0 -39
  748. package/dist-pkg/ui/caa-sets.js +0 -65
  749. package/dist-pkg/ui/map-hub.d.ts +0 -56
  750. package/dist-pkg/ui/map-hub.js +0 -138
  751. package/dist-pkg/ui/settings-caa.d.ts +0 -45
  752. package/dist-pkg/ui/settings-caa.js +0 -137
  753. package/dist-pkg/ui/settings-motor.d.ts +0 -175
  754. package/dist-pkg/ui/settings-motor.js +0 -342
  755. package/dist-pkg/ui/webcam.d.ts +0 -7
  756. package/dist-pkg/ui/webcam.js +0 -93
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: AGPL-3.0-or-later
2
- // Locale es — SEED (só as chaves-piloto; completar UI+Matemática+Lúdico na Etapa 4). Ver docs/plano-i18n.md.
2
+ // Locale es — SEED (só as chaves-piloto; completar UI+Matemática+Lúdico na Etapa 4). Ver docs/1-Discovery/plan-i18n.md.
3
3
  // Parcial de propósito: as chaves ausentes caem no fallback pt (core/i18n).
4
4
  const es = {
5
5
  // ===================== ANUNCIOS DE LECTOR DE PANTALLA (`sr.*`) =====================
@@ -14,15 +14,11 @@ const es = {
14
14
  'sr.player.entered': '¡Jugador {n} entró!',
15
15
  // El reciclaje (ADR-0049 §1). Los cuatro colores son contenido curricular (CONAMA 275/2001, la norma
16
16
  // brasileña), así que el aviso DICE el color y no solo "bien/mal".
17
- 'sr.lixo.pegou': 'Recogiste: {o}.',
18
17
  'sr.lixo.soltou': 'Soltaste: {o}.',
19
- 'sr.lixo.acertou': '¡Bien! {o} va en el contenedor {cor}. Un punto.',
20
- 'sr.lixo.errou': 'Ese no es el contenedor del {o}. Prueba otro color.',
21
18
  'sr.lixo.solta': 'Aquí no se tira basura. Se te cayó junto al cartel.',
22
19
  'sr.lixo.barreira': 'El cartel no deja pasar la basura.',
23
20
  'lixo.obj.papel': 'caja de cartón',
24
21
  'lixo.obj.plastico': 'botella PET',
25
- 'lixo.obj.metal': 'lata de aluminio',
26
22
  'lixo.obj.vidro': 'frasco de vidrio',
27
23
  'lixo.cor.azul': 'azul',
28
24
  'lixo.cor.vermelha': 'rojo',
@@ -30,65 +26,66 @@ const es = {
30
26
  'lixo.cor.verde': 'verde',
31
27
  'sr.print.on': 'Modo Foto: mira la pantalla sin menús. Aprieta cualquier botón para volver.',
32
28
  'sr.player.pressToJoin': 'Jugador {n}: aprieta un botón para entrar.',
29
+ 'hud.waitBadge': 'Jugador {n}: aprieta un botón de TU teclado, o de un mando libre, para entrar',
30
+ 'menu.help': 'Ayuda',
31
+ 'help.grupo.rotulo': 'Los botones de este juego',
32
+ 'help.noKey': 'sin tecla',
33
+ 'help.slide.tecla': 'Tecla {k}',
33
34
  'sr.libras.loading': 'El intérprete de lengua de señas todavía está cargando — inténtalo de nuevo en un momento.',
34
- 'sr.eyes.loadFailed': 'WebGazer no cargó.',
35
- 'sr.eyes.calibrate': 'Jugar con los ojos: mira por la pantalla y haz clic en algunos puntos para calibrar. Mirar izquierda y derecha camina; mirar arriba salta.',
36
- 'sr.eyes.needsInternet': 'No se pudo cargar WebGazer (necesita internet la primera vez).',
35
+ 'sr.libras.on': '¡Hola! El intérprete de lengua de señas está activado.',
36
+ 'sr.eyes.needsInternet': 'El control con la mirada todavía no llegó a este aparato: se descarga la primera vez que el juego se abre con internet.',
37
+ // the eye control's words over the game (ADR-0213 §6): a region tells a preparing look which way to go, the opposite of itself
38
+ 'gaze.lookHere': 'Mira aquí',
39
+ 'gaze.loading': 'Cargando...',
40
+ 'gaze.prepare.up': '¡Baja!',
41
+ 'gaze.prepare.right': '¡A la izquierda!',
42
+ 'gaze.prepare.down': '¡Sube!',
43
+ 'gaze.prepare.left': '¡A la derecha!',
44
+ 'sr.face.lookMiddle': 'Mira al centro de la pantalla con la cara quieta hasta que diga listo.',
45
+ 'sr.face.ready': 'Listo: ya puedes jugar con la cara.',
46
+ 'sr.face.noCamera': 'El control con la cara necesita la cámara, y no se abrió. Permite la cámara para esta página.',
47
+ 'sr.face.needsInternet': 'El control con la cara todavía no llegó a este dispositivo: baja la primera vez que el juego se abre con internet.',
48
+ 'sr.face.stopped': 'El control con la cara dejó de recibir imágenes de la cámara.',
49
+ 'sr.face.slow': 'El control con la cara va lento en este dispositivo y puede no responder.',
50
+ 'sr.eyes.lookMiddle': 'Mira al centro de la pantalla y no muevas los ojos hasta que diga listo.',
51
+ 'sr.eyes.ready': 'Listo: ya puedes jugar con los ojos.',
52
+ 'sr.eyes.noCamera': 'El control con la mirada necesita la cámara, y no se abrió. Permite la cámara para esta página.',
53
+ 'sr.eyes.stopped': 'El control con la mirada dejó de recibir imágenes de la cámara.',
54
+ 'sr.eyes.slow': 'El control con la mirada va lento en este dispositivo y puede no responder.',
37
55
  'sr.typo.font': 'Tipografía: {fam}.',
56
+ 'sr.icon.velocidade': 'Velocidad del juego: {pct} %.',
38
57
  'sr.visual.contrast': 'Alto contraste: {v}.',
39
58
  'sr.visual.lq': 'Realce de contraste: {v}.',
40
- 'sr.gate.open': '¡Portón abierto!',
41
- 'sr.key.taken': '{who}recogió la llave. Toca el portón para abrirlo.',
42
- 'sr.key.returned': 'La llave volvió a su lugar de origen.',
43
- 'sr.power.swapHint': '{msg} (Cambiar poder alterna entre los que ya tienes.)',
44
- 'sr.round.multi': '{n} jugadores, cada uno en su pantalla. Corran por las monedas.',
45
- 'sr.round.somasub': 'Modo Suma y Resta. Toca las figuras y resuelve las cuentas.',
46
- 'sr.round.silabas': 'Modo Sílabas. Toca las letras y arma las palabras.',
47
- 'sr.round.ludico': 'Nueva ronda. Junta 10 monedas.',
48
- 'sr.screens.mobileOnly': 'En el celular el juego funciona en una sola pantalla.',
49
- 'sr.screens.alreadyN': '{n} pantallas ya activas.',
50
- 'sr.screens.already1': 'Una pantalla.',
51
- 'sr.screens.wontFitN': 'No caben {n} pantallas en esta ventana — cada pantalla necesita al menos 640 por 360. Agranda la ventana o usa pantalla completa.',
52
59
  'sr.screens.wontFitOneMore': 'No cabe una pantalla más en esta ventana — cada pantalla necesita al menos 640 por 360. Agranda la ventana o usa pantalla completa.',
53
- 'sr.screens.activeN': '{n} pantallas activas.',
54
- 'sr.screens.newRoundN': '{n} pantallas activas — nueva ronda.',
55
- 'sr.screens.newRound1': 'Una pantalla — nueva ronda.',
56
60
  'sr.screens.maxPlayers': 'Ya son 4 jugadores.',
57
- 'sr.player.restarted': 'Jugador {n} volvió a empezar en esta pantalla.',
58
- 'sr.player.joined': 'Jugador {n} entró al juego en curso.',
59
- 'sr.player.quit': 'Jugador {n} abandonó el juego.',
60
61
  // Objetivo del HUD (texto en DOM; el mismo árbol de decisión del anuncio de ronda)
61
- 'hud.objective.multi': '{n} jugadores — carrera por las {alvo} monedas',
62
- 'hud.objective.somasub': 'Resuelve 10 cuentas',
63
- 'hud.objective.silabas': 'Arma 10 palabras',
64
- 'hud.objective.ludico': 'Junta 10 monedas',
65
62
  'hud.contador': '{have} de {need} {nome}',
66
- 'hud.nome.moedas': 'monedas',
67
- 'hud.nome.moeda': 'moneda',
63
+ 'hud.numero': '{nome}: {valor}',
64
+ 'hud.barra': '{nome}: {azuis} a la primera, {verdes} con ayuda, {vermelhos} sin acertar',
65
+ 'hud.barra.sobe': 'el nivel sube',
66
+ 'hud.barra.desce': 'el nivel baja',
68
67
  'pause.nivel': '📚 Nivel {n} · {nome}',
69
- 'sfx.jump': '🔊 Salto',
70
- 'sfx.coin': '🔊 Recogida',
71
- 'sfx.hurt': '🔊 ¡Ay! Daño',
72
- 'sfx.win': '🔊 ¡Ganaste!',
73
- 'sfx.correct': '🔊 ¡Correcto!',
74
- 'sfx.wrong': '🔊 Inténtalo de nuevo',
75
- 'sfx.power': '🔊 ¡Power-up!',
76
- 'sfx.key': '🔊 Llave',
77
- 'sfx.gate': '🔊 Portón abierto',
78
68
  'skip.toGame': 'Saltar al juego',
79
- 'menu.ludico': 'Juego libre',
80
- 'menu.alfabetizacao': 'Alfabetización',
81
- 'menu.matematica': 'Matemáticas',
82
69
  // Controles táctiles — las 9 posiciones, las 9 acciones asignables (panel #touchcfg) y los anuncios.
83
70
  'touch.slot.up': 'Direccional ↑ (arriba)',
84
71
  'touch.slot.down': 'Direccional ↓ (abajo)',
85
72
  'touch.slot.left': 'Direccional ← (izquierda)',
86
73
  'touch.slot.right': 'Direccional → (derecha)',
87
74
  'touch.slot.start': 'START (enter)',
75
+ 'touch.start': 'START',
76
+ 'touch.nome.up': 'Arriba',
77
+ 'touch.nome.down': 'Abajo',
78
+ 'touch.nome.left': 'Izquierda',
79
+ 'touch.nome.right': 'Derecha',
80
+ 'touch.select': 'SELECT',
88
81
  'touch.slot.b0': 'Botón 0 (abajo)',
89
82
  'touch.slot.b1': 'Botón 1 (derecha)',
90
83
  'touch.slot.b2': 'Botón 2 (izquierda)',
91
84
  'touch.slot.b3': 'Botón 3 (arriba)',
85
+ 'touch.slot.bl2': 'L2 (gatillo izquierdo)',
86
+ 'touch.slot.bl1': 'L1 (hombro izquierdo)',
87
+ 'touch.slot.br2': 'R2 (gatillo derecho)',
88
+ 'touch.slot.br1': 'R1 (hombro derecho)',
92
89
  'touch.slot.fallback': 'Botón',
93
90
  'touch.act.left': 'Caminar a la izquierda',
94
91
  'touch.act.right': 'Caminar a la derecha',
@@ -98,7 +95,6 @@ const es = {
98
95
  'touch.act.run': 'Correr / interactuar',
99
96
  'touch.act.especial': 'Especial',
100
97
  'touch.act.swap': 'Cambiar poder',
101
- 'touch.act.pause': 'Pausar (START)',
102
98
  'touch.dir.cross': 'cruceta (D-pad)',
103
99
  'touch.dir.stick': 'palanca analógica',
104
100
  'sr.touch.slotSet': '{slot}: {acao}.',
@@ -135,7 +131,6 @@ const es = {
135
131
  'audio.sinksUnsupported': 'Este navegador no permite cambiar la salida (p. ej. Safari/iOS).',
136
132
  'audio.voiceSample': '¡Hola! Esta es la voz de la narración del Inclusionista. Uno, dos, tres, probando.',
137
133
  'tts.engine.webspeech': 'Voz del navegador (Web Speech)',
138
- 'tts.engine.piper': 'Piper (neuronal, sin conexión) — se descarga en el 1.er uso',
139
134
  'tts.engine.kokoro': 'Kokoro-82M (neuronal) — se descarga en el 1.er uso',
140
135
  'tts.engine.kitten': 'Kitten (neuronal) — se descarga en el 1.er uso',
141
136
  'tts.engine.espeak': 'eSpeak NG (integrado)',
@@ -152,18 +147,56 @@ const es = {
152
147
  'sr.audio.voicePicked': 'Voz seleccionada.',
153
148
  'sr.audio.testingVoice': 'Probando la voz seleccionada.',
154
149
  // Barra de iconos de accesibilidad (menu de pausa y portada) + los niveles que recorre.
155
- 'icon.blind': 'Modo ciego (navegación sonora)',
156
- 'icon.tts': 'Narración por voz (TTS)',
157
- 'icon.libras': 'Modo persona sorda (lengua de señas)',
158
- 'icon.tea': 'Modo TEA (calmado / silencioso)',
159
- 'icon.altmove': 'Teclas de alternancia',
150
+ 'icon.blind': 'Modo ciego',
151
+ 'icon.tts': 'Narración por voz',
152
+ 'icon.libras': 'Modo persona sorda',
153
+ 'icon.tea': 'Modo TEA',
154
+ // ☝️ dejó de ser un interruptor y pasó a tres posiciones (ADR-0218): el nombre dice el ASUNTO y el valor dice la posición.
155
+ 'icon.altmove': 'Cómo pulsar',
156
+ 'input.standard': 'estándar',
157
+ 'input.sticky': 'no hace falta mantener',
158
+ 'scan.nothing': 'cancelar',
159
+ 'input.scan': 'un botón solo',
160
160
  'icon.contrast': 'Alto contraste',
161
- 'icon.cvd': 'Corrección de daltonismo (protan/deutan/tritan)',
162
- 'icon.face': 'Cámara web — rostro',
163
- 'icon.eyes': 'Cámara web — ojos',
161
+ 'icon.cvd': 'Corrección de daltonismo',
164
162
  'icon.voice': 'Comando de voz',
163
+ 'icon.tipografia': 'Comunicación',
164
+ 'icon.velocidade': 'Velocidad del juego',
165
+ 'icon.velocidade.valor': '{pct} %',
166
+ 'icon.blind.dica': 'Se juega por el sonido: la navegación sonora dice lo que muestra la pantalla.',
167
+ 'icon.tts.dica': 'El juego lee en voz alta lo que está escrito en la pantalla.',
168
+ 'icon.libras.dica': 'Un intérprete de lengua de señas muestra en señas lo que dice el juego.',
169
+ 'icon.tea.dica': 'Deja el juego más tranquilo o en silencio, para quien se sobrecarga con estímulos.',
170
+ 'icon.altmove.dica': 'Cómo se leen tus pulsaciones: del modo estándar; o con un toque que activa y otro que desactiva, sin mantener; o con un botón solo, donde el juego muestra una cosa por vez y tú pulsas en la que quieres.',
171
+ 'sr.icon.inputMode': 'Cómo pulsar: {v}.',
172
+ 'icon.contrast.dica': 'Aumenta la diferencia entre lo que importa y el fondo: 3:1, 4,5:1 o 7:1.',
173
+ 'icon.cvd.dica': 'Ajusta los colores para quien confunde rojo y verde (protan, deutan) o azul y amarillo (tritan).',
174
+ 'icon.idioma': 'Idioma',
175
+ 'icon.idioma.dica': 'Cambiar el idioma del juego: menús, explicaciones, voz y reconocimiento de voz.',
176
+ 'icon.camera': 'Cámara web',
177
+ 'icon.camera.dica': 'Jugar con la cámara web: con gestos de las manos, con la cara o con los ojos. Las líneas muestran lo que lee la cámara.',
178
+ 'camera.hands': 'gestos de las manos',
179
+ 'camera.face': 'cara',
180
+ 'camera.eyes': 'ojos',
181
+ 'sr.icon.voice': 'Comando de voz: {v}.',
182
+ 'sr.icon.camera': 'Jugar con la cámara web: {v}.',
183
+ 'sr.voice.ready': 'Listo: ya puedes jugar hablando.',
184
+ 'sr.voice.noMicrophone': 'El control por voz necesita el micrófono, y no se abrió. Permite el micrófono para esta página.',
185
+ 'sr.voice.failed': 'El comando de voz no pudo empezar en este aparato.',
186
+ 'sr.voice.needsInternet': 'El control por voz todavía no llegó a este aparato: baja la primera vez que el juego se abre con internet.',
187
+ 'sr.hands.ready': 'Listo: ya puedes jugar con gestos de las manos.',
188
+ 'sr.hands.noCamera': 'El control con gestos necesita la cámara, y no se abrió. Permite la cámara para esta página.',
189
+ 'sr.hands.needsInternet': 'El control con gestos todavía no llegó a este dispositivo: baja la primera vez que el juego se abre con internet.',
190
+ 'sr.hands.stopped': 'El control con gestos dejó de recibir imágenes de la cámara.',
191
+ 'sr.hands.slow': 'El control con gestos va lento en este dispositivo y puede no responder.',
192
+ 'icon.menu': 'Menú',
193
+ 'icon.menu.dica': 'Abrir los menús: ayuda, configuraciones de inclusión, opciones del juego y salir.',
194
+ 'sr.icon.idioma': 'Idioma elegido: {v}.',
195
+ 'icon.voice.dica': 'Controlar el juego hablando.',
196
+ 'icon.tipografia.dica': 'Cambia la forma de las letras: mayúsculas, letras más legibles o la letra cursiva de tu país.',
197
+ 'icon.velocidade.dica': 'Hace más lento todo el juego: el tiempo, el mundo y el momento de actuar.',
165
198
  'icon.state': '{nome}: {v}',
166
- 'icon.soon': '{nome} (en construcción)',
199
+ 'ui.soon': 'próximamente',
167
200
  'state.on': 'activado',
168
201
  'state.off': 'desactivado',
169
202
  'calm.off': 'desactivado',
@@ -178,6 +211,29 @@ const es = {
178
211
  'contrast.3': '3:1',
179
212
  'contrast.45': '4,5:1',
180
213
  'contrast.7': '7:1',
214
+ 'visual.lq': 'Realce de contraste',
215
+ 'visual.lq.dica': 'Curva de tono en toda la pantalla: lineal estira el contraste, cuadrático realza sombras y luces, y mixto queda entre los dos. Vale para todos los jugadores.',
216
+ 'menu.visual': 'Accesibilidad visual',
217
+ 'menu.empathy': 'Modo empatía',
218
+ 'empathy.grupo.rotulo': 'Simulaciones',
219
+ 'empathy.simulacao.dica': 'Muestra el juego como lo ve quien tiene la discapacidad elegida.',
220
+ 'empathy.hearing': 'Simular pérdida auditiva',
221
+ 'empathy.hearing.dica': 'Los sonidos suaves se oyen apagados y los agudos se cortan, como oye quien tiene pérdida auditiva.',
222
+ 'empathy.onebtn': 'Simular un botón a la vez',
223
+ 'empathy.onebtn.dica': 'Mientras un botón está presionado, el juego no acepta un segundo, como para quien no puede presionar dos a la vez.',
224
+ 'empathy.semforca': 'Simular sin fuerza para mantener',
225
+ 'empathy.semforca.dica': 'Mantener un botón cuenta como un solo toque, como para quien no tiene fuerza para mantenerlo presionado.',
226
+ 'empathy.select': 'Seleccionar',
227
+ 'empathy.selected': '✓ Seleccionado',
228
+ 'visual.grupo.rotulo': 'Ajustes visuales',
229
+ 'visual.cbsafe': 'Paleta segura para daltonismo',
230
+ 'visual.cbsafe.dica': 'Cambia los colores de los menús y del HUD por una paleta que se distingue en cualquier tipo de daltonismo (Okabe-Ito).',
231
+ 'visual.dono': 'Objetos en el color de su dueño',
232
+ 'visual.dono.dica': 'En multijugador, cada jugador ve sus propios objetos en su color. Apagado: todos ven los colores originales.',
233
+ 'visual.papeis': 'Colores del color-blocking',
234
+ 'visual.papeis.dica': 'En los modos de alto contraste, elige el color de cada papel. ↺ restaura el valor por defecto.',
235
+ 'visual.papel.cor': 'Color de {papel}',
236
+ 'visual.papel.repor': 'Restaurar los colores por defecto',
181
237
  'lq.off': 'desactivado',
182
238
  'lq.linear': 'lineal',
183
239
  'lq.mixed': 'mixto',
@@ -194,22 +250,19 @@ const es = {
194
250
  'icon.cvd.short': 'Corrección de daltonismo',
195
251
  'pause.iconBarAria': 'Atajos de accesibilidad',
196
252
  // Menú de actividades (portada) — actividad, escenario, número de jugadores y notaciones de fracción.
197
- 'fnot.v': 'Fraccionaria vertical',
198
- 'fnot.d': 'Fraccionaria diagonal',
199
- 'fnot.dec': 'Decimal',
200
- 'fnot.pct': 'Porcentual',
201
- 'fnot.mix': 'Mixta',
202
- 'menu.playerCountAria': 'Número de jugadores: {n}. Pulsa a la izquierda para menos, a la derecha para más.',
203
- 'sr.menu.pickScenario': 'Elige el escenario.',
204
- 'sr.menu.gameStarted': '{atividade}. Juego iniciado.',
205
- 'sr.menu.pickNumbers': '{atividade}: elige los números.',
206
- 'sr.menu.player1': '{n} jugador.',
207
- 'sr.menu.playersN': '{n} jugadores.',
208
253
  'sr.menu.index': '{n} de {m}',
254
+ 'sr.papel.botao': 'botón',
255
+ 'sr.papel.interruptor': 'interruptor',
256
+ 'sr.papel.lista': 'lista',
257
+ 'sr.papel.cursor': 'control deslizante',
258
+ 'sr.papel.passos': 'selector',
259
+ 'sr.papel.opcao': 'opción',
260
+ 'sr.estado.selecionado': 'seleccionada',
209
261
  'sr.menu.indexOn': 'Posición en la lista activada.',
210
262
  'sr.menu.indexOff': 'Posición en la lista desactivada.',
211
- 'sr.a11y.barEnter': 'Barra de accesibilidad. Usa las direcciones para elegir y confirmar para activar. Para volver al juego, pulsa volver o START.',
263
+ 'sr.a11y.barEnter': 'Juego en pausa. Barra de accesibilidad. Usa las direcciones para elegir y confirmar para activar. Para volver al juego, pulsa volver o START.',
212
264
  'sr.a11y.barExit': 'De vuelta al juego.',
265
+ 'sr.a11y.quickPause': 'Juego en pausa. Para volver al juego, pulsa START.',
213
266
  'pad.glyph.cross': 'equis',
214
267
  'pad.glyph.circle': 'círculo',
215
268
  'pad.glyph.square': 'cuadrado',
@@ -220,23 +273,9 @@ const es = {
220
273
  'pad.wiz.detected': 'Mando nuevo detectado: {id}. El juego se pausó para que puedas configurarlo. SUELTA todo para empezar.',
221
274
  'pad.wiz.releaseAll': 'Mando: {id}. Ahora SUELTA todo.',
222
275
  'menu.legendSpoken': 'Botón {sim} para confirmar, botón {nao} para volver.',
223
- 'sr.menu.fractionsIntro': 'Suma y resta de fracciones: elige la notación y el tipo.',
224
- 'sr.menu.keepOneNotation': 'Deja al menos una notación activada.',
225
- 'sr.menu.notationOn': '{notacao} activada.',
226
- 'sr.menu.notationOff': '{notacao} desactivada.',
227
- 'sr.menu.pickOneNumber': 'Elige al menos un número para practicar.',
228
- 'sr.menu.numberOn': 'Número {n} activado.',
229
- 'sr.menu.numberOff': 'Número {n} desactivado.',
230
- 'fnot.desc.v': 'Muestra fracciones verticales, un número sobre el otro.',
231
- 'fnot.desc.d': 'Muestra fracciones en una línea, con barra.',
232
276
  'fnot.desc.dec': 'Muestra números que siempre llevan un decimal.',
233
- 'fnot.desc.pct': 'Muestra porcentajes.',
234
- 'fnot.desc.mix': 'Muestra números enteros junto con fracciones reducidas.',
235
- 'menu.notationGroupAria': 'Notación',
236
277
  // Física (lava, ventosa araña), navegación sonora y el modo demostración.
237
- 'sr.physics.lava': '¡Cuidado! Tocaste la lava. Las monedas volvieron a posiciones aleatorias.',
238
278
  'sr.physics.spiderOn': '¡Modo araña! Trepas por paredes y techos y doblas esquinas. {botao} suelta.',
239
- 'sr.physics.spiderOff': 'Soltaste la superficie.',
240
279
  'sr.nav.noTargetNear': 'No hay nada cerca.',
241
280
  // El bucle se detuvo porque un fotograma lanzó (ADR-0054). Una niña ciega no ve una pantalla congelada.
242
281
  'sr.laco.parou': 'El juego se detuvo por un error. Recarga la página para volver a jugar.',
@@ -250,6 +289,7 @@ const es = {
250
289
  'eixo.correcao.tricro': 'Visión tricromática',
251
290
  'viz.escolher': 'Seleccionar',
252
291
  'viz.escolhido': '✓ Seleccionado',
292
+ 'sim.indisponivel.alternancia': 'Para ver la simulación sin fuerza para mantener, las teclas de alternancia tienen que estar desactivadas: con ellas activadas, la demostración mostraría el ajuste y no la dificultad.',
253
293
  'sim.indisponivel.tema': 'Para ver la simulación, el tema tiene que estar en su valor predeterminado: sobre el alto contraste mostraría lo que hace el tema, y no lo que hace la deficiencia.',
254
294
  'sim.indisponivel.correcao': 'Para ver la simulación, la corrección de color tiene que estar en visión tricromática: desde una pantalla ya corregida no mostraría ni la deficiencia ni la corrección.',
255
295
  'sim.indisponivel.ambos': 'Para ver la simulación, el tema y la corrección de color tienen que estar en sus valores predeterminados: sobre un ajuste, la demostración muestra el ajuste y no la deficiencia.',
@@ -260,18 +300,9 @@ const es = {
260
300
  'reach.nome.gamepad': 'mando',
261
301
  'reach.nome.teclado': 'teclado',
262
302
  'reach.nome.toque': 'control en pantalla',
263
- 'sr.attract.demo': 'Demostración.',
264
- 'sr.attract.recorded': 'Demo de 30 segundos grabada para {cenario}.',
265
303
  // Marcos de los submenús de título y los nombres de los escenarios.
266
304
  'menu.back': 'Volver',
267
- 'menu.play': 'Jugar',
268
305
  'menu.alf': 'Alfabetización',
269
- 'menu.mat': 'Matemáticas',
270
- 'menu.frac': 'Fracción',
271
- 'menu.fracTitle': 'Suma y resta de fracciones',
272
- 'menu.tab': 'Tablas de multiplicar',
273
- 'menu.tabHint': 'Elige los números para practicar',
274
- 'menu.cen': 'Escenario',
275
306
  'cen.cidade': 'Ciudad',
276
307
  'cen.campo': 'Día en el Campo',
277
308
  'cen.cemiterio': 'Amanecer en el Campo',
@@ -279,55 +310,127 @@ const es = {
279
310
  'cen.floresta': 'Bosque',
280
311
  // Narración por voz (TTS).
281
312
  'audio.noSystemVoices': '(sin voces del sistema)',
282
- 'sr.tts.engineNoLanguage': 'Este motor todavía no habla este idioma — por ahora, usa Piper (neuronal) o la voz del navegador.',
313
+ 'sr.tts.engineNoLanguage': 'Este motor todavía no habla este idioma — por ahora, usa la voz del navegador.',
283
314
  'sr.tts.noNeuralForLanguage': 'Todavía no hay voz neuronal para este idioma — seguimos con la voz del navegador, que sí lo habla.',
284
315
  'sr.tts.neuralNotBundled': 'Esta versión del juego no trae voz neuronal — seguimos con la voz del navegador.',
285
316
  'sr.tts.downloading': 'Descargando la voz neuronal (necesita internet solo en el 1.er uso)…',
286
- 'sr.tts.progress': 'Voz neuronal: {pct} %.',
287
317
  'sr.tts.ready': 'Voz neuronal lista, en {s} segundos.',
288
318
  'sr.tts.loadFailed': 'No se pudo cargar la voz neuronal (necesita internet en el 1.er uso) — seguimos con la voz del navegador.',
289
319
  // Quiz — solo el MARCO; el currículo de alfabetización se mantiene en pt-BR por decisión.
290
- 'sr.quiz.tryAgain': 'Inténtalo de nuevo.',
291
- 'sr.quiz.erase': 'borrar',
292
320
  'sr.quiz.ok': 'ok',
293
321
  'sr.blind.on': 'Modo ciego activado: bastón y pistas de audio activas. El 1.er objeto de poder pasa a ser el bastón de carrera.',
294
322
  'sr.blind.off': 'Modo ciego desactivado.',
295
323
  'sr.motor.oneButtonOn': 'Un botón a la vez activado: solo una tecla o botón cada vez.',
296
- 'sr.motor.oneButtonOff': 'Un botón a la vez desactivado.',
297
- 'sr.motor.wheelchairOn': 'Modo silla de ruedas activado: sin salto; rampas y ascensores en lugar de escalones y escalera; monedas en el suelo; solo vuelo y súper carrera.',
298
- 'sr.motor.wheelchairOff': 'Modo silla de ruedas desactivado.',
299
- 'sr.visual.ownerColorsOn': 'Objetos en el color de su dueño: activado.',
300
- 'sr.visual.ownerColorsOff': 'Objetos en el color de su dueño: desactivado — todos en su color original.',
301
- 'sr.visual.cbSafeOn': 'Paleta segura para daltonismo activada (Okabe-Ito).',
302
- 'sr.visual.cbSafeOff': 'Paleta segura para daltonismo desactivada.',
303
- 'sr.visual.outlineFg': 'Contorno del primer plano: {v}.',
304
- 'sr.visual.outlineBg': 'Contorno del segundo plano: {v}.',
305
- 'outline.none': 'ninguno',
306
- 'outline.thin': 'fino',
307
- 'outline.thick': 'grueso',
308
- 'sr.captions.on': 'Subtítulos activados.',
309
- 'sr.captions.off': 'Subtítulos desactivados.',
310
324
  // Quiz — MATEMÁTICAS: el enunciado entero se traduce, operadores incluidos (2+3 no depende del idioma).
311
- 'math.howManyDots': '¿Cuántas bolitas?',
312
- 'math.op.plus': 'más',
313
- 'math.op.minus': 'menos',
314
- 'math.op.times': 'por',
315
- 'math.op.dividedBy': 'dividido por',
316
- 'sr.math.howManyDots': '¿Cuántas bolitas ves?',
317
- 'sr.math.howMuchIs': '¿Cuánto es {a} {op} {b}?',
318
325
  // Quiz — ALFABETIZACIÓN: el MARCO se traduce; la palabra, la letra y la celda Braille pasan como
319
326
  // parámetros, en pt-BR, porque son la materia de una disciplina de idioma.
320
- 'sr.quiz.who': 'Jugador {n}: ',
321
- 'sr.quiz.wins': '{n} de 3 aciertos para la moneda',
322
327
  'sr.quiz.buildWord': 'Letra {letra}. Forma la palabra: {palavra}.',
323
328
  'sr.quiz.whichSpelling': '{palavra}. ¿Cuál es la escritura correcta? El juego deletrea cada opción.',
324
329
  'sr.quiz.writeWord': 'Escribe la palabra: {palavra}. {n} letras.',
325
330
  'sr.quiz.brailleDictation': '{palavra}. {celas} Salta para recoger.',
326
331
  'sr.quiz.wellDone': '¡Muy bien! {palavra}. {n} de 3.',
327
- 'sr.quiz.correctSoFar': '¡Acertaste! {n} de 3 para ganar la moneda.',
328
332
  'menu.restoreDefaults': 'Restaurar los valores predeterminados de este menú',
329
333
  'menu.close': 'Cerrar',
330
334
  'menu.typo': 'Tipografía',
335
+ // El TÍTULO del panel, sin el emoji: `pause.caa` rotula el BOTÓN de la tarjeta de pausa, donde un símbolo
336
+ // ayuda a distinguir siete elementos de un vistazo. Dentro del panel ya se sabe dónde se está, y un emoji en
337
+ // el `<h2>` se lee en voz alta antes del nombre de lo que abrió.
338
+ 'menu.caa': 'Comunicación',
339
+ 'aac.grupo.rotulo': 'Opciones de comunicación',
340
+ // Nombrado por lo que la persona siente, no por lo que hace el código: quien necesita este panel llega por
341
+ // mareo o por riesgo de crisis, no por curiosidad sobre los fotogramas.
342
+ 'menu.animation': 'Sensibilidad visual',
343
+ 'animation.grupo.rotulo': 'Movimiento y animación',
344
+ // ===================== LAS LÍNEAS DEL PANEL MOTOR =====================
345
+ // Rótulo CORTO y la explicación en una sola pista, que la casca mueve al pie (CLAUDE.md §4). Las pistas son
346
+ // las mismas frases que los anuncios `sr.motor.*On` ya dicen, en presente en vez de en pasado: dos
347
+ // redacciones de la misma opción divergen, y quien oye el anuncio tras leer la línea merece reconocerla.
348
+ 'motor.facil': 'Modo Fácil',
349
+ 'motor.facil.dica': 'Menos gravedad, salto más alto, recogida tolerante, monedas en el suelo, sin peligros ni caídas accidentales.',
350
+ 'motor.altmove': 'Cómo pulsar',
351
+ 'motor.espera': 'Esperar entre pulsaciones',
352
+ 'motora.camera': 'Jugar con la cámara',
353
+ 'motora.camera.dica': 'La cámara se queda en el aparato: nada de lo que ve sale de aquí. Elige qué juega — las manos, la cara o los ojos.',
354
+ 'motora.voz': 'Jugar hablando',
355
+ 'motora.voz.dica': 'El micrófono se queda en el aparato: lo que la niña dice se oye aquí y no sale de aquí. Di el nombre de lo que quieres — «arriba», «confirma» — o el nombre del ítem del menú que está a la vista.',
356
+ 'motor.espera.dica': 'Después de un toque, espera medio segundo antes de aceptar el siguiente — para cuando la mano tiembla y el toque sale doble.',
357
+ 'motor.altmove.dica': 'Un toque lo activa y otro lo desactiva, en vez de mantener el botón pulsado.',
358
+ 'motor.togglerun': 'Alternancia de correr',
359
+ 'motor.togglerun.dica': 'El botón de correr queda activado con un toque, en vez de tener que mantenerlo.',
360
+ 'motor.grupo.rotulo': 'Opciones de movimiento',
361
+ 'motora.pad': 'Tamaño del control',
362
+ 'motora.pad.dica': 'Elige por la mano de quien juega: niño pequeño hasta 6 años, niño mayor alrededor de 12. El niño pequeño tiene los botones más grandes: todavía acierta lejos del centro.',
363
+ 'motora.pad.crianca-pequena': 'niño pequeño',
364
+ 'motora.pad.crianca-grande': 'niño mayor',
365
+ 'motora.pad.adulto-pequeno': 'adulto pequeño',
366
+ 'motora.pad.adulto-maos-grandes': 'adulto de manos grandes',
367
+ 'motora.teclado.1': 'Asignar teclado — 1 jugador',
368
+ 'motora.teclado.2': 'Asignar teclado — 2 jugadores',
369
+ 'motora.teclado.34': 'Asignar teclado — 3–4 jugadores',
370
+ 'motora.controle': 'Mapear mando',
371
+ 'motora.toque': 'Mapear táctil',
372
+ 'motora.abrir': 'Abrir',
373
+ 'ctrl.assento': 'Teclado de',
374
+ 'ctrl.jogador': 'Jugador {n}',
375
+ 'menu.motora': 'Accesibilidad motora',
376
+ // ===================== LAS LÍNEAS DEL PANEL AUDITIVO =====================
377
+ // Donde ya había palabra para la cosa, se REUSA — `icon.blind` e `icon.tts` nombran esos mismos dos ajustes
378
+ // en la barra de accesibilidad. Dos nombres para un ajuste en dos pantallas del mismo motor es como una
379
+ // niña deja de reconocer lo que ya aprendió.
380
+ 'audio.som': 'Sonido',
381
+ 'audio.som.dica': 'Apaga todo el sonido del juego de una vez, sin tocar las opciones de cada tipo.',
382
+ 'audio.volume': 'Volumen general',
383
+ 'audio.modocego': 'Modo ciego',
384
+ 'audio.narracao': 'Narración por voz',
385
+ 'audio.cat.music': 'Música',
386
+ 'audio.cat.ambient': 'Sonidos ambientales',
387
+ 'audio.cat.interact': 'Efectos de interacción',
388
+ 'audio.cat.earcons': 'Earcons',
389
+ 'audio.cat.tts': 'Narración',
390
+ 'audio.cat.sonar': 'Sonar',
391
+ 'audio.cat.guard': 'Guarda de borde',
392
+ 'audio.cat.guide': 'Pista / guía auditiva',
393
+ 'audio.cat.volumeDe': 'Volumen de {c}',
394
+ 'audio.navsound.grupo': 'Sonidos de navegación',
395
+ 'audio.cane': 'Golpe del bastón',
396
+ 'audio.cane.dica': 'Cada cuánto suelo golpea el bastón. Uno por bloque es más calmo; cada medio bloque da más detalle.',
397
+ 'audio.menuindex': 'Índice hablado de los menús',
398
+ 'audio.menuindex.dica': 'El lector de pantalla dice "3 de 7" al recorrer un menú, para saber dónde se está sin contar.',
399
+ 'audio.tts.dica': 'El juego lee en voz alta lo que está escrito en la pantalla.',
400
+ 'audio.ttsEngine': 'Motor de voz',
401
+ 'audio.ttsEngine.dica': 'La voz del navegador funciona enseguida; las neuronales suenan mejor y se descargan en el primer uso.',
402
+ 'audio.ttsVoice': 'Voz',
403
+ 'audio.ttsVol': 'Volumen de la narración',
404
+ 'audio.ttsPpm': 'Ritmo del habla',
405
+ 'audio.ttsPpm.dica': 'Cuántas palabras por minuto dice la narración.',
406
+ 'tts.kokoro.teste': 'Hola.', // the short sentence that tests whether WebGPU speaks (ADR-0198 §4)
407
+ 'visual.captions': 'Subtítulos',
408
+ 'visual.legenda.ritmo': 'Ritmo de los subtítulos',
409
+ 'visual.legenda.ppm': '{n} PPM',
410
+ 'visual.legenda.ritmo.dica': 'Cuánto tiempo queda el subtítulo en pantalla, en palabras por minuto.',
411
+ 'visual.contorno.fg': 'Contorno del primer plano',
412
+ 'visual.contorno.bg': 'Contorno del segundo plano',
413
+ 'visual.contorno.fg.dica': 'En alto contraste, contornea lo que se mueve y lo que se recoge.',
414
+ 'visual.contorno.bg.dica': 'En alto contraste, contornea por dónde se camina y por dónde no.',
415
+ 'visual.contorno.0': 'ninguno',
416
+ 'visual.contorno.1': 'fino',
417
+ 'visual.contorno.2': 'grueso',
418
+ 'visual.captions.dica': 'Escribe en la pantalla los sonidos del juego.',
419
+ 'sr.visual.captionsOn': 'Subtítulos activados.',
420
+ 'sr.visual.captionsOff': 'Subtítulos desactivados.',
421
+ 'audio.voz': 'Voz de narración',
422
+ 'audio.voz.nenhuma': 'Ninguna voz',
423
+ 'audio.semVoz': 'No hay ninguna voz que hable este idioma.',
424
+ 'sr.audio.voz': 'Voz de narración: {nome}.',
425
+ 'audio.ttsTest': 'Probar la voz',
426
+ 'audio.ttsTest.dica': 'Dice una frase de ejemplo con la voz elegida ahora.',
427
+ 'audio.sinks.grupo': 'Salida de audio por jugador',
428
+ 'audio.detect': 'Detectar salidas',
429
+ 'menu.audio': 'Accesibilidad auditiva',
430
+ 'menu.som': 'Confort auditivo',
431
+ 'audio.grupo.rotulo': 'Sonidos del juego',
432
+ // El texto de REPOSO del pie de cada panel — lo que dice mientras nadie apunta a ninguna línea.
433
+ 'menu.explainIdle': 'Pasa el ratón o navega por las opciones para ver la explicación.',
331
434
  'sr.audio.reset': 'Accesibilidad auditiva restaurada a sus valores predeterminados. Los demás menús no cambiaron.',
332
435
  'sr.empathy.reset': 'Modo empatía restaurado a sus valores predeterminados: simulaciones desactivadas. Las correcciones de daltonismo y los demás menús no cambiaron.',
333
436
  'sr.motor.reset': 'Modo Fácil y movimiento por alternancia restaurados a sus valores predeterminados. El control con los ojos y el mapeo de teclas siguen igual.',
@@ -335,20 +438,61 @@ const es = {
335
438
  'a11y.changed': 'modificado',
336
439
  'sr.visual.reset': 'Accesibilidad visual restaurada a sus valores predeterminados: contraste, realce, colores y contornos. Los subtítulos y los demás menús no cambiaron.',
337
440
  'sr.motion.reset': 'Sensibilidad visual restaurada a sus valores predeterminados: animaciones y estética CRT. Las animaciones vuelven a lo que pide su sistema.',
338
- 'caa.emPreparo': 'en preparación',
339
- 'caa.aguardandoNegociacao': 'esperando negociación',
340
- 'caa.secao.agora': 'Disponible ahora',
341
- 'caa.secao.agoraTag': 'funciona sin red',
342
- 'caa.secao.preparo': 'En preparación',
343
- 'caa.secao.preparoTag': 'licencia resuelta; falta el trabajo',
344
- 'caa.secao.negociacao': 'Esperando negociación',
345
- 'caa.secao.negociacaoTag': 'el permiso no es nuestro',
346
- 'sr.caa.escolha': 'Comunicación: {v}.',
347
- 'sr.caa.reset': 'Comunicación restaurada a su valor predeterminado: letras mayúsculas, donde suele comenzar la alfabetización.',
348
- 'pause.caa': '🔠 Comunicación',
349
- 'sr.caa.caixaAltaOn': 'Letras mayúsculas activadas: todo el juego en mayúsculas.',
350
- 'sr.caa.caixaAltaOff': 'Letras mayúsculas desactivadas: mayúsculas y minúsculas.',
441
+ 'aac.letras': 'Letras mayúsculas',
442
+ 'aac.letras.dica': 'Encendido: todo el juego en mayúsculas, como suele empezar la alfabetización. '
443
+ + 'Apagado: mayúsculas y minúsculas, la escritura de cada día.',
444
+ 'aac.emPreparo': 'en preparación',
445
+ 'aac.aguardandoNegociacao': 'esperando negociación',
446
+ 'aac.secao.agora': 'Disponible ahora',
447
+ 'aac.secao.agoraTag': 'funciona sin red',
448
+ 'aac.secao.preparo': 'En preparación',
449
+ 'aac.secao.preparoTag': 'licencia resuelta; falta el trabajo',
450
+ 'aac.secao.negociacao': 'Esperando negociación',
451
+ 'aac.secao.negociacaoTag': 'el permiso no es nuestro',
452
+ 'sr.aac.escolha': 'Comunicación: {v}.',
453
+ 'sr.aac.reset': 'Comunicación restaurada a su valor predeterminado: letras mayúsculas, donde suele comenzar la alfabetización.',
454
+ 'pause.caa': 'Comunicación',
455
+ 'sr.aac.caixaAltaOn': 'Letras mayúsculas activadas: todo el juego en mayúsculas.',
456
+ 'sr.aac.caixaAltaOff': 'Letras mayúsculas desactivadas: mayúsculas y minúsculas.',
351
457
  'sr.quiz.bemVindo': 'Cuestionario. Use las flechas para elegir y Enter para responder.',
458
+ // Las preguntas del quiz — claves, no frases, para que cambiar la bandera alcance la ACTIVIDAD y no sólo el
459
+ // marco del motor (ADR-0225). Un quiz no es una materia de idioma: nada de esto queda sin traducir.
460
+ 'quiz.pageTitle': 'The Inclusionist — cuestionario de demostración',
461
+ 'quiz.p1': '¿Qué animal pone huevos y tiene pico?',
462
+ 'quiz.p1.a': 'Gato',
463
+ 'quiz.p1.b': 'Gallina',
464
+ 'quiz.p1.c': 'Caballo',
465
+ 'quiz.p1.d': 'Pez',
466
+ 'quiz.p2': '¿Cuántos lados tiene un triángulo?',
467
+ 'quiz.p2.a': 'Tres',
468
+ 'quiz.p2.b': 'Cuatro',
469
+ 'quiz.p2.c': 'Cinco',
470
+ 'quiz.p2.d': 'Dos',
471
+ 'quiz.p3': '¿Cuál de estas es una fruta?',
472
+ 'quiz.p3.a': 'Lechuga',
473
+ 'quiz.p3.b': 'Zanahoria',
474
+ 'quiz.p3.c': 'Banana',
475
+ 'quiz.p3.d': 'Papa',
476
+ 'quiz.pos.up': 'Arriba',
477
+ 'quiz.pos.down': 'Abajo',
478
+ 'quiz.pos.confirm': 'Confirmar',
479
+ 'quiz.comoJogar.ler': 'Lee la pregunta arriba de la pantalla.',
480
+ 'quiz.comoJogar.escolher': 'Elige la respuesta con las flechas y confirma.',
481
+ 'quiz.pos.back': 'Volver',
482
+ 'quiz.pos.sonar': 'Sonar',
483
+ 'quiz.pos.falar': 'Decir la respuesta',
484
+ 'quiz.ouvindo': 'Estoy escuchando. Di la respuesta.',
485
+ 'quiz.naoEntendi': 'Escuché «{texto}», que no es ninguna de las alternativas. Dilo otra vez o elige con las flechas.',
486
+ 'quiz.ouviNada': 'No escuché nada. Dilo otra vez o elige con las flechas.',
487
+ 'quiz.semLeitura': 'Este aparato no puede escuchar ahora. Elige con las flechas.',
488
+ 'quiz.resposta.certa': '¡Correcto! {certa}.',
489
+ 'quiz.resposta.errada': 'Todavía no. La respuesta correcta es {certa}.',
490
+ 'quiz.fim': '¡Fin! {n} de {m}.',
491
+ 'quiz.alternativas': 'Alternativas',
492
+ 'quiz.acom.hints': 'Pistas',
493
+ 'quiz.acom.textPace': 'Ritmo del texto',
494
+ 'quiz.acom.lexicalDifficulty': 'Dificultad de las palabras',
495
+ 'quiz.acom.wordHighlight': 'Resaltado de palabras',
352
496
  'sr.nav.sonarFound': 'Sonar: {alvo} {lado}, {dist}.',
353
497
  'sr.nav.coin': 'moneda',
354
498
  'sr.nav.target': 'objetivo',
@@ -367,42 +511,36 @@ const es = {
367
511
  'sr.player.prefix': 'Jugador {n}: ',
368
512
  'sr.empathy.hearingOn': 'Simulación de pérdida auditiva activada: los sonidos débiles se apagan y los agudos se cortan; el habla se vuelve difícil de entender.',
369
513
  'sr.empathy.hearingOff': 'Simulación de pérdida auditiva desactivada.',
370
- 'sr.pad.disconnected': 'El mando del Jugador {n} se desconectó — el teclado sigue funcionando. Pulse START para volver a asociarlo.',
371
- 'sr.quiz.levelSet': 'Nivel {n}: {v}.',
372
- 'sr.visual.roleColorSet': 'Color de {v} cambiado.',
373
- 'sr.visual.roleColorsReset': 'Colores del color-blocking restaurados a sus valores predeterminados.',
374
- 'sr.visual.defaultColors': 'Colores predeterminados restaurados.',
375
- 'sr.pad.connected': 'Mando conectado: diseño {v}.',
376
- 'sr.pad.design': 'Diseño de los botones: {v}.',
377
- 'sr.eyes.loading': 'Jugar con los ojos: cargando la cámara web (permita el acceso).',
378
- 'sr.eyes.off': 'Jugar con los ojos desactivado.',
379
- 'sr.boot.loaded': 'Juego cargado. Recoge {n} monedas. Sube escaleras con W/S, nada manteniendo el salto en el agua.',
514
+ 'sr.empathy.onebtnOn': 'Simulación de un botón a la vez activada: un segundo botón presionado a la vez no cuenta.',
515
+ 'sr.empathy.onebtnOff': 'Simulación de un botón a la vez desactivada.',
516
+ 'sr.empathy.semforcaOn': 'Simulación sin fuerza para mantener activada: mantener un botón cuenta como un solo toque.',
517
+ 'sr.empathy.semforcaOff': 'Simulación sin fuerza para mantener desactivada.',
380
518
  // ===================== PODERES =====================
381
519
  'sr.power.superjump': '¡Súper salto! El salto llega siempre a su altura máxima.',
382
520
  'sr.power.ultrajump': '¡Ultra salto! Saltos de distancia gigante.',
383
521
  'sr.power.turbo': '¡Súper carrera! Al correr te vuelves mucho más rápido.',
384
522
  'sr.power.fly': '¡Vuelo! En el aire, pulsa Saltar para empezar a volar; Saltar de nuevo lo termina.',
385
523
  'sr.power.wallcling': '¡Escalada (araña)! En el aire, pulsa {botao} cerca de una pared o techo para pegarte; trepas y doblas esquinas; {botao} otra vez suelta.',
386
- 'sr.power.none': 'Sin poder activo.',
387
- 'sr.power.generic': '¡Poder activado!',
388
524
  'hud.power.off': '—',
389
525
  'hud.power.superjump': '🐇 Súper salto',
390
526
  'hud.power.ultrajump': '🦘 Ultra salto',
391
527
  'hud.power.turbo': '👟 Súper carrera',
392
- 'hud.power.fly': '🎈 Vuelo',
393
528
  'hud.power.wallcling': '🕷️ Escalada',
394
529
  'hud.power.runcane': '👟 Bastón de carrera',
395
530
  // ===================== MOVIMIENTO REDUCIDO (WCAG 2.3.3) + CRT =====================
396
531
  'rm.parallax': 'Parallax del fondo',
397
- 'rm.decor': 'Decoración (nubes, hierba)',
398
- 'rm.items': 'Animación de objetos (monedas)',
399
- 'rm.walk': 'Personaje en movimiento (andar, trepar, nadar, saltar)',
400
- 'rm.breath': 'Respiración (quieto)',
401
- 'rm.flavor': 'Gracias (animaciones de descanso)',
532
+ 'rm.decor': 'Decoración',
533
+ 'rm.items': 'Animación de objetos',
534
+ 'rm.walk': 'Personaje en movimiento',
535
+ 'rm.breath': 'Respiración',
536
+ 'rm.flavor': 'Gracias',
402
537
  'rm.particles': 'Partículas y destellos',
403
538
  'rm.crt.scan': 'Líneas de barrido',
404
539
  'rm.crt.vig': 'Viñeta',
405
540
  'rm.crt.round': 'Esquinas redondeadas',
541
+ 'crt.round.off': 'desactivado',
542
+ 'crt.round.small': 'pequeño',
543
+ 'crt.round.large': 'grande',
406
544
  'rm.sec.all': 'todos los jugadores',
407
545
  'sr.rm.frozen': '{alvo} congelado.',
408
546
  'sr.rm.animated': '{alvo} animado.',
@@ -412,32 +550,23 @@ const es = {
412
550
  'sr.crt.off': '{efeito} desactivada.',
413
551
  'sr.crt.round': '{efeito}: {nivel}.',
414
552
  // ===================== ENCENDIDO / APAGADO =====================
415
- 'ui.toggle.on': '❚❚ Activado',
416
- 'ui.toggle.off': '▶ Desactivado',
553
+ 'ui.toggle.on': 'Activado',
554
+ 'ui.toggle.off': 'Desactivado',
417
555
  'ui.toggle.ariaOn': '{alvo}: activado',
418
556
  'ui.toggle.ariaOff': '{alvo}: desactivado',
419
557
  // ===================== LAS DOS OPCIONES MOTORAS POR JUGADOR =====================
420
558
  'sr.motor.easyOn': 'Modo Fácil activado: menos gravedad, salto más alto, recogida tolerante, monedas en el suelo, sin peligros ni caídas accidentales (mantén ↓ para bajar).',
421
559
  'sr.motor.easyOff': 'Modo Fácil desactivado.',
422
- 'sr.motor.toggleMoveOn': 'Movimiento por alternancia activado: toca la dirección para andar sin mantener; toca de nuevo para parar; mantén para ir más rápido. El salto no interrumpe la marcha.',
423
- 'sr.motor.toggleMoveOff': 'Movimiento por alternancia desactivado.',
560
+ 'sr.motor.toggleMoveOn': 'No hace falta mantener, activado: un toque lo activa y otro lo desactiva.',
561
+ 'sr.motor.toggleMoveOff': 'No hace falta mantener, desactivado.',
424
562
  'alt.exigida.olhos': 'El control por mirada necesita el movimiento por alternancia para funcionar.',
425
563
  'alt.exigida.rosto': 'El control por rostro necesita el movimiento por alternancia para funcionar.',
426
564
  'alt.exigida.gestos': 'Los gestos necesitan el movimiento por alternancia para funcionar.',
427
565
  'alt.exigida.fala': 'El comando de voz necesita el movimiento por alternancia para funcionar.',
428
566
  'sr.motor.toggleRunOn': 'Alternancia de correr activada.',
429
567
  'sr.motor.toggleRunOff': 'Alternancia de correr desactivada.',
430
- 'sr.physics.runLatchOn': 'Corriendo.',
431
- 'sr.physics.runLatchOff': 'Caminando.',
432
568
  // ===================== AYUDA (menú de pausa) + etiqueta de nivel =====================
433
569
  'pause.level': '📚 Nivel {n} · {v}',
434
- 'help.controls': 'Tus controles',
435
- 'help.controlsPlayer': 'Tus controles · Jugador {n}',
436
- 'help.keyboard': 'teclado',
437
- 'help.buildNotes': 'Notas de esta versión',
438
- 'help.powerups': 'Poderes: 👟 súper carrera · 🕷️ escalada · 🎈 vuelo · 🐇 súper salto · 🦘 ultra salto · 🔑 la llave abre la 🚪 puerta.',
439
- 'help.multiplayer': '2–4 jugadores: pantallas una al lado de la otra, cada una con su menú y su configuración.',
440
- 'help.tech': 'v{v} — PixiJS (WebGL, Canvas de reserva) · texto e interfaz en el DOM (accesibilidad) · sin conexión vía PWA.',
441
570
  'menu.yes': 'Sí',
442
571
  'menu.no': 'No',
443
572
  // ===================== LOS 16 MODOS DE VISIÓN =====================
@@ -474,16 +603,17 @@ const es = {
474
603
  'viz.blind': 'Simular ceguera total',
475
604
  'viz.desc.blind': 'Pantalla negra — juega como lo hace una persona ciega (respuesta táctil y sonora). (punto blanco; toca 2 veces para salir)',
476
605
  // ===================== LO QUE FALTABA (item 14, ronda final) =====================
477
- 'title.byline': 'por el Prof. José Rocha',
478
- 'title.wait': 'Espera a que el Jugador 1 elija el juego',
479
- 'win.title': '🎉 ¡Recogiste las 10 monedas!',
480
- 'win.again': 'Jugar de nuevo',
481
606
  'pause.title': 'En pausa',
482
- 'pause.resume': '▶ Continuar',
483
- 'pause.acessibilidade': '♿ Accesibilidad',
484
- 'pause.options': '⚙ Opciones',
485
- 'pause.pmback': '↩ Volver',
607
+ 'pause.resume': 'Volver',
608
+ 'pause.quick': 'EN PAUSA',
609
+ 'pause.quick.legenda': '2: confirmar · 3: volver · 4: menú · START: volver al juego',
610
+ 'pause.card.legenda': '2: confirmar · 3: volver',
611
+ 'pause.acessibilidade': 'Accesibilidad',
612
+ 'pause.options': 'Ajustes de inclusión',
613
+ 'pause.opcoesdojogo': 'Opciones del juego',
614
+ 'pause.pmback': 'Volver',
486
615
  'pause.cardAria': 'Menú de pausa del jugador {n}',
616
+ 'pause.cardSeat': ' · Jugador {n}',
487
617
  /* --- CATÁLOGO DE ACTIVIDADES: todo menos alfabetización. Las cinco de alfabetización siguen en pt-BR
488
618
  crudo en `educational/activities-registry`: la palabra y la sílaba SON la materia (pilar 3). --- */
489
619
  'act.ludico.nome': 'Recoger 10 monedas',
@@ -511,54 +641,26 @@ const es = {
511
641
  'act.fr632.d': 'Suma y resta sextos, tercios y medios.',
512
642
  'act.fr2a6.nome': 'Suma y resta con fracciones de medios a sextos',
513
643
  'act.fr2a6.d': 'Suma y resta fracciones de medios a sextos.',
514
- 'pause.tipo': '🔤 Tipografía',
515
- 'pause.addplayer': '👥 Añadir jugador',
516
- 'pause.audio': '🦻 Accesibilidad auditiva',
517
- 'pause.motora': '♿ Accesibilidad motora',
518
- 'pause.anim': '🎞 Sensibilidad visual',
519
- 'pause.visual': '🎨 Accesibilidad visual',
520
- 'pause.empatia': '🫂 Modo empatía',
521
- 'pause.ajuda': '❓ Ayuda',
522
- 'pause.print': '📷 Print (ver la pantalla)',
523
- 'pause.quit': '🚪 Salir del juego',
524
- 'a11y.gameRegion': 'Área de juego. Muévete con A y D o las flechas; salta con L o Espacio; sube y baja escaleras (y nada en el agua) con W y S o las flechas; corre con P o Shift. Recoge 10 monedas.',
525
- 'game.instructions': 'Mueve al personaje por la cueva y recoge 10 monedas. Sin límite de tiempo. Controles: A y D o las flechas mueven; L o Espacio saltan; W y S (o flechas arriba/abajo) suben escaleras y nadan; P o Shift corren.',
644
+ 'pause.tipo': 'Tipografía',
645
+ 'pause.addplayer': 'Número de jugadores',
646
+ 'pause.audio': 'Accesibilidad auditiva',
647
+ 'pause.som': 'Confort auditivo',
648
+ 'pause.motora': 'Accesibilidad motora',
649
+ 'pause.anim': 'Sensibilidad visual',
650
+ 'pause.visual': 'Accesibilidad visual',
651
+ 'pause.empatia': 'Modo empatía',
652
+ 'pause.ajuda': 'Ayuda — Cómo jugar',
653
+ 'pause.print': 'Print (ver la pantalla)',
654
+ 'pause.quit': 'Salir del juego',
655
+ 'pause.motivo': 'Este juego no usa esta opción.',
656
+ 'pause.motivo.ajuda': 'Este juego todavía no dijo qué hace cada botón.',
657
+ 'pause.motivo.addplayer': 'Es el juego quien decide cuántos jugadores pueden jugar.',
658
+ 'pause.motivo.opcoesdojogo': 'Este juego no tiene opciones propias.',
526
659
  // ===================== ARIA-LABEL DEL index.html =====================
527
- 'a11y.choosePlayer': 'Elige el jugador',
528
- 'a11y.animations': 'Animaciones',
529
- 'a11y.literacy': 'Alfabetización',
530
- 'a11y.shortcuts': 'Atajos de accesibilidad',
531
- 'a11y.hearing': 'Audición',
532
- 'a11y.actionButtons': 'Botones de acción',
533
- 'a11y.screenButtons': 'Botones en pantalla (táctil)',
534
- 'a11y.touchButtons': 'Botones táctiles en pantalla',
535
- 'a11y.audioCategories': 'Categorías de audio',
536
660
  'a11y.communication': 'Comunicación: letras y símbolos',
537
- 'a11y.outlineFg': 'Contorno de primer plano',
538
- 'a11y.outlineBg': 'Contorno de segundo plano',
539
- 'a11y.outlines': 'Contornos del alto contraste',
540
- 'a11y.touchControls': 'Controles táctiles',
541
- 'a11y.padDesign': 'Diseño de los botones',
542
- 'a11y.chooseScenery': 'Elige el escenario',
543
- 'a11y.chooseGame': 'Elige el juego',
544
- 'a11y.chooseNumbers': 'Elige los números',
545
- 'a11y.hideDebug': 'Ocultar las herramientas de depuración',
546
- 'a11y.btnSpecial': 'Especial (botón 1)',
547
- 'a11y.fraction': 'Fracción',
548
- 'a11y.touchRoles': 'Función de cada botón táctil',
549
- 'a11y.btnRun': 'Interactuar / correr (botón 2)',
550
- 'a11y.eyeGaze': 'Jugar con los ojos',
551
- 'a11y.mapControls': 'Asignar controles (por jugador)',
552
- 'a11y.math': 'Matemáticas',
553
661
  'a11y.pauseMenu': 'Menú de pausa',
554
- 'a11y.simActive': 'Modo de simulación activo. Toca dos veces para volver a los colores normales.',
555
662
  'a11y.stopAll': 'Detener todas las animaciones',
556
- 'a11y.btnJump': 'Saltar (botón 0)',
557
- 'a11y.audioOut': 'Salida de audio por jugador',
558
- 'a11y.visualSim': 'Simulación visual',
559
- 'a11y.switchScreens': 'Cambiar el número de pantallas (jugadores)',
560
- 'a11y.btnSwap': 'Cambiar poder (botón 3)',
561
- 'menu.playerCount': '◀ Nº de jugadores: {n} ▶',
663
+ 'a11y.resumeAll': 'Reanudar todas las animaciones',
562
664
  // ===================== LEYENDA DE CONTROLES (fila bajo el título) =====================
563
665
  'legend.move': 'moverse',
564
666
  'legend.pause': 'pausa',
@@ -568,6 +670,10 @@ const es = {
568
670
  'legend.swap': 'cambiar',
569
671
  // ===================== CATÁLOGO DE FUENTES =====================
570
672
  'font.grupo.rotulo': 'Familia de letra',
673
+ // UN PANGRAMA, y por eso cambia de idioma en vez de traducirse: la muestra existe para poner el alfabeto
674
+ // entero a la vista de quien pregunta «¿consigo leer esto?». Este lleva la ñ, los acentos y la apertura de
675
+ // exclamación — las formas que deciden si una fuente sirve en español.
676
+ 'font.amostra': 'Jovencillo emponzoñado de whisky: ¡qué figurota exhibe!',
571
677
  'font.group.sans': 'Sin serifa',
572
678
  'font.group.serif': 'Con serifa',
573
679
  'font.group.hand': 'Manuscrita',
@@ -593,7 +699,6 @@ const es = {
593
699
  'font.desc.pinyon': 'caligráfica inglesa',
594
700
  'font.desc.ufcook': 'blackletter alemana',
595
701
  'font.desc.ufmag': 'blackletter alemana',
596
- 'font.desc.comicneue': 'bola y palo (alfabetización)',
597
702
  'font.desc.pressstart': 'píxel de 8 bits (HUD y título del juego)',
598
703
  'font.desc.learningcurve': 'cursiva inglesa',
599
704
  'font.desc.kindergarten': 'cursiva brasileña',