@pieai/swimmer-ui-kit 1.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 (359) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/LICENSE +41 -0
  3. package/README.md +114 -0
  4. package/dist/assets/game/ui/clay/asset-manifest.json +2823 -0
  5. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-blue-large-v1.png +0 -0
  6. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-blue-large-v2.png +0 -0
  7. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-brown-large-v1.png +0 -0
  8. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-brown-large-v2.png +0 -0
  9. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-green-large-v1.png +0 -0
  10. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-green-large-v2.png +0 -0
  11. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-purple-large-v1.png +0 -0
  12. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-purple-large-v2.png +0 -0
  13. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-red-large-v1.png +0 -0
  14. package/dist/assets/game/ui/clay/phase03-clay-kit/buttons/button-red-large-v2.png +0 -0
  15. package/dist/assets/game/ui/clay/phase03-clay-kit/catalog/common-icons-contact-sheet-v1.png +0 -0
  16. package/dist/assets/game/ui/clay/phase03-clay-kit/catalog/component-candidates-contact-sheet-v1.png +0 -0
  17. package/dist/assets/game/ui/clay/phase03-clay-kit/catalog/function-icons-contact-sheet-v1.png +0 -0
  18. package/dist/assets/game/ui/clay/phase03-clay-kit/catalog/phase03-clay-ui-catalog.json +3476 -0
  19. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/alert-v1.png +0 -0
  20. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/bar-v1.png +0 -0
  21. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/best-v1.png +0 -0
  22. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/check-off-v1.png +0 -0
  23. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/check-on-v1.png +0 -0
  24. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/count-v1.png +0 -0
  25. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/direction-v1.png +0 -0
  26. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/gauge-v1.png +0 -0
  27. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/hot-v1.png +0 -0
  28. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/label-2-v1.png +0 -0
  29. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/label-v1.png +0 -0
  30. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/loading-v1.png +0 -0
  31. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/mission-badge-v1.png +0 -0
  32. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/new-v1.png +0 -0
  33. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/page-arrow-next-v1.png +0 -0
  34. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/page-arrow-prev-v1.png +0 -0
  35. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/pagenavigation-v1.png +0 -0
  36. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/radiobtn-off-v1.png +0 -0
  37. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/radiobtn-on-v1.png +0 -0
  38. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/ribbon-2-v1.png +0 -0
  39. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/ribbon-v1.png +0 -0
  40. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/slidebar-dim-v1.png +0 -0
  41. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/stage-v1.png +0 -0
  42. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/switch-off-v1.png +0 -0
  43. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/switch-on-v1.png +0 -0
  44. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/tab-n-v1.png +0 -0
  45. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/tab-s-v1.png +0 -0
  46. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/top-v1.png +0 -0
  47. package/dist/assets/game/ui/clay/phase03-clay-kit/components/common/user-info-v1.png +0 -0
  48. package/dist/assets/game/ui/clay/phase03-clay-kit/components/language/button-close-v1.png +0 -0
  49. package/dist/assets/game/ui/clay/phase03-clay-kit/components/language/check-v1.png +0 -0
  50. package/dist/assets/game/ui/clay/phase03-clay-kit/components/language/language-v1.png +0 -0
  51. package/dist/assets/game/ui/clay/phase03-clay-kit/components/popup/popup-v1.png +0 -0
  52. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/btn-blue-v1.png +0 -0
  53. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/btn-brown-2-v1.png +0 -0
  54. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/btn-brown-v1.png +0 -0
  55. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/btn-facebook-v1.png +0 -0
  56. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/btn-green-v1.png +0 -0
  57. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/button-close-v1.png +0 -0
  58. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/common-popup-title-v1.png +0 -0
  59. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/language-v1.png +0 -0
  60. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/radio-btn-v1.png +0 -0
  61. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/slidebar-v1.png +0 -0
  62. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/switch-2-v1.png +0 -0
  63. package/dist/assets/game/ui/clay/phase03-clay-kit/components/settings/switch-v1.png +0 -0
  64. package/dist/assets/game/ui/clay/phase03-clay-kit/components/stage-lock/stage-lock-badge-v1.png +0 -0
  65. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/checkbox-checked-v1.png +0 -0
  66. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/anvil-v1.png +0 -0
  67. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/arrow-v1.png +0 -0
  68. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/bomb-v1.png +0 -0
  69. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/candle-v1.png +0 -0
  70. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/chicken-v1.png +0 -0
  71. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/crown-v1.png +0 -0
  72. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/energy-v1.png +0 -0
  73. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/envelope-v1.png +0 -0
  74. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/gem-v1.png +0 -0
  75. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/gift-blue-v1.png +0 -0
  76. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/gift-red-v1.png +0 -0
  77. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/gold-v1.png +0 -0
  78. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/hammer-v1.png +0 -0
  79. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/horner-v1.png +0 -0
  80. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/horseshoes-v1.png +0 -0
  81. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/key-v1.png +0 -0
  82. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/laurel-v1.png +0 -0
  83. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/letter-v1.png +0 -0
  84. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/lock-v1.png +0 -0
  85. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/lucky-v1.png +0 -0
  86. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/medal-bronze-v1.png +0 -0
  87. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/medal-gold-v1.png +0 -0
  88. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/medal-silver-v1.png +0 -0
  89. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/mission-v1.png +0 -0
  90. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/pickax-v1.png +0 -0
  91. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/poition-red-v1.png +0 -0
  92. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/poiton-purple-v1.png +0 -0
  93. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/purplegem-v1.png +0 -0
  94. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/sandglass-v1.png +0 -0
  95. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/scroll-v1.png +0 -0
  96. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/setting-v1.png +0 -0
  97. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/shield-a-v1.png +0 -0
  98. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/shield-b-v1.png +0 -0
  99. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/shield-c-v1.png +0 -0
  100. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/shield-d-v1.png +0 -0
  101. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/shop-v1.png +0 -0
  102. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/skull-v1.png +0 -0
  103. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/soulgem-v1.png +0 -0
  104. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/sword-a-v1.png +0 -0
  105. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/sword-b-v1.png +0 -0
  106. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/talaria-v1.png +0 -0
  107. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/target-v1.png +0 -0
  108. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/timer-v1.png +0 -0
  109. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/treasure-v1.png +0 -0
  110. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/common/trophy-v1.png +0 -0
  111. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/account-v1.png +0 -0
  112. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/add-friend-v1.png +0 -0
  113. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/add-v1.png +0 -0
  114. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/align-v1.png +0 -0
  115. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/alram-v1.png +0 -0
  116. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/appstore-v1.png +0 -0
  117. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/arrow-down-v1.png +0 -0
  118. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/arrow-next-v1.png +0 -0
  119. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/arrow-prev-v1.png +0 -0
  120. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/arrow-up-v1.png +0 -0
  121. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/arrow-v1.png +0 -0
  122. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/asterisk-v1.png +0 -0
  123. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/attachment-v1.png +0 -0
  124. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/ax-v1.png +0 -0
  125. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/back-v1.png +0 -0
  126. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bad-v1.png +0 -0
  127. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/badge-v1.png +0 -0
  128. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bank-v1.png +0 -0
  129. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/basket-v1.png +0 -0
  130. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/battle-v1.png +0 -0
  131. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bin-v1.png +0 -0
  132. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/binoculars-v1.png +0 -0
  133. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bitcoin-v1.png +0 -0
  134. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/block-v1.png +0 -0
  135. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bluetooth-v1.png +0 -0
  136. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bomb-v1.png +0 -0
  137. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/book-v1.png +0 -0
  138. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bookmark-add-v1.png +0 -0
  139. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bookmark-v1.png +0 -0
  140. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bottom-v1.png +0 -0
  141. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/brain-v1.png +0 -0
  142. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bug-v1.png +0 -0
  143. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/bulb-v1.png +0 -0
  144. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/calendar-v1.png +0 -0
  145. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/call-reject-v1.png +0 -0
  146. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/call-v1.png +0 -0
  147. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/camera-v1.png +0 -0
  148. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/cancel-v1.png +0 -0
  149. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/card-v1.png +0 -0
  150. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/cart-v1.png +0 -0
  151. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/category-v1.png +0 -0
  152. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/chat-v1.png +0 -0
  153. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/check-v1.png +0 -0
  154. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/cloud-v1.png +0 -0
  155. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/cny-v1.png +0 -0
  156. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/coffee-v1.png +0 -0
  157. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/compass-v1.png +0 -0
  158. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/confirm-v1.png +0 -0
  159. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/contact-v1.png +0 -0
  160. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/control-next-v1.png +0 -0
  161. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/control-pause-v1.png +0 -0
  162. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/control-play-v1.png +0 -0
  163. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/control-prev-v1.png +0 -0
  164. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/control-stop-v1.png +0 -0
  165. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/control-v1.png +0 -0
  166. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/copy-v1.png +0 -0
  167. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/coupon-v1.png +0 -0
  168. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/crop-v1.png +0 -0
  169. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/crown-v1.png +0 -0
  170. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/defense-v1.png +0 -0
  171. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/delete-v1.png +0 -0
  172. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/dislike-v1.png +0 -0
  173. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/document-v1.png +0 -0
  174. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/dollar-v1.png +0 -0
  175. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/down-v1.png +0 -0
  176. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/download-v1.png +0 -0
  177. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/dynamite-v1.png +0 -0
  178. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/earth-v1.png +0 -0
  179. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/eat-v1.png +0 -0
  180. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/emoji-good-v1.png +0 -0
  181. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/emoji-soso-v1.png +0 -0
  182. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/energy-v1.png +0 -0
  183. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/exit-v1.png +0 -0
  184. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/expand-v1.png +0 -0
  185. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/export-v1.png +0 -0
  186. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/facebook-v1.png +0 -0
  187. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/feather-v1.png +0 -0
  188. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/filter-v1.png +0 -0
  189. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/fingerprint-v1.png +0 -0
  190. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/fire-v1.png +0 -0
  191. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/firm-v1.png +0 -0
  192. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/fix-v1.png +0 -0
  193. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/flag-v1.png +0 -0
  194. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/flask-01-v1.png +0 -0
  195. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/flask-02-v1.png +0 -0
  196. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/flask-03-v1.png +0 -0
  197. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/folder-open-v1.png +0 -0
  198. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/folder-v1.png +0 -0
  199. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/game-v1.png +0 -0
  200. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/gem-v1.png +0 -0
  201. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/gender-fale-v1.png +0 -0
  202. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/gender-female-v1.png +0 -0
  203. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/gift-v1.png +0 -0
  204. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/globe-v1.png +0 -0
  205. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/gmail-v1.png +0 -0
  206. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/gold-v1.png +0 -0
  207. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/googleplay-v1.png +0 -0
  208. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/graduation-v1.png +0 -0
  209. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/graph-v1.png +0 -0
  210. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/hammer-v1.png +0 -0
  211. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/hand-v1.png +0 -0
  212. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/hashtag-v1.png +0 -0
  213. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/headset-v1.png +0 -0
  214. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/heart-empty-v1.png +0 -0
  215. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/heart-v1.png +0 -0
  216. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/helmet-v1.png +0 -0
  217. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/hide-v1.png +0 -0
  218. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/home-v1.png +0 -0
  219. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/key-v1.png +0 -0
  220. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/knowledge-v1.png +0 -0
  221. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/left-v1.png +0 -0
  222. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/like-v1.png +0 -0
  223. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/link-v1.png +0 -0
  224. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/list-v1.png +0 -0
  225. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/location-v1.png +0 -0
  226. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/lock-v1.png +0 -0
  227. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/magnetic-v1.png +0 -0
  228. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mail-read-v1.png +0 -0
  229. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mail-unread-v1.png +0 -0
  230. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/map-v1.png +0 -0
  231. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mark-caution-1-v1.png +0 -0
  232. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mark-caution-2-v1.png +0 -0
  233. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mark-info-1-v1.png +0 -0
  234. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mark-info-2-v1.png +0 -0
  235. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mark-question-1-v1.png +0 -0
  236. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mark-question-2-v1.png +0 -0
  237. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/medal-v1.png +0 -0
  238. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/media-v1.png +0 -0
  239. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/megaphone-v1.png +0 -0
  240. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/menu-v1.png +0 -0
  241. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/message-v1.png +0 -0
  242. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/minus-v1.png +0 -0
  243. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/mobile-v1.png +0 -0
  244. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/money-v1.png +0 -0
  245. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/more-v1.png +0 -0
  246. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/music-1-v1.png +0 -0
  247. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/music-2-v1.png +0 -0
  248. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/newpaper-v1.png +0 -0
  249. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/next-v1.png +0 -0
  250. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/notification-off-v1.png +0 -0
  251. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/notification-v1.png +0 -0
  252. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/paper-v1.png +0 -0
  253. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/pc-v1.png +0 -0
  254. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/pen-v1.png +0 -0
  255. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/pencil-v1.png +0 -0
  256. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/percent-v1.png +0 -0
  257. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/photo-v1.png +0 -0
  258. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/pick-v1.png +0 -0
  259. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/piechart-v1.png +0 -0
  260. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/pinterest-v1.png +0 -0
  261. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/pinwheel-v1.png +0 -0
  262. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/planet-v1.png +0 -0
  263. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/player-v1.png +0 -0
  264. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/plus-v1.png +0 -0
  265. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/preferense-v1.png +0 -0
  266. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/prev-v1.png +0 -0
  267. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/printer-v1.png +0 -0
  268. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/quit-v1.png +0 -0
  269. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/random-v1.png +0 -0
  270. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/ranking-v1.png +0 -0
  271. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/record-off-v1.png +0 -0
  272. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/record-v1.png +0 -0
  273. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/refresh-v1.png +0 -0
  274. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/reload-v1.png +0 -0
  275. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/remove-v1.png +0 -0
  276. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/reset-v1.png +0 -0
  277. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/right-v1.png +0 -0
  278. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/ring-v1.png +0 -0
  279. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/safe-v1.png +0 -0
  280. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/sandglass-v1.png +0 -0
  281. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/scan-v1.png +0 -0
  282. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/screwdriver-v1.png +0 -0
  283. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/search-v1.png +0 -0
  284. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/send-1-v1.png +0 -0
  285. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/send-2-v1.png +0 -0
  286. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/service-v1.png +0 -0
  287. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/setting-1-v1.png +0 -0
  288. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/setting-2-v1.png +0 -0
  289. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/share-v1.png +0 -0
  290. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/shop-v1.png +0 -0
  291. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/shopping-v1.png +0 -0
  292. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/show-v1.png +0 -0
  293. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/sign-v1.png +0 -0
  294. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/siren-v1.png +0 -0
  295. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/skull-v1.png +0 -0
  296. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/skype-v1.png +0 -0
  297. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/sort-v1.png +0 -0
  298. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/sparkle-v1.png +0 -0
  299. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/speedmeter-v1.png +0 -0
  300. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/star-circle-v1.png +0 -0
  301. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/star-v1.png +0 -0
  302. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/stopwatch-v1.png +0 -0
  303. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/support-v1.png +0 -0
  304. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/sword-v1.png +0 -0
  305. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/tag-v1.png +0 -0
  306. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/target-v1.png +0 -0
  307. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/tent-v1.png +0 -0
  308. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/text-v1.png +0 -0
  309. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/thumbnails-v1.png +0 -0
  310. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/thunder-v1.png +0 -0
  311. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/time-v1.png +0 -0
  312. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/toolbox-v1.png +0 -0
  313. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/top-v1.png +0 -0
  314. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/treasure-v1.png +0 -0
  315. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/trophy-v1.png +0 -0
  316. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/twitter-v1.png +0 -0
  317. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/ufo-v1.png +0 -0
  318. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/unlock-v1.png +0 -0
  319. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/up-v1.png +0 -0
  320. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/upload-v1.png +0 -0
  321. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/user-v1.png +0 -0
  322. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/video-v1.png +0 -0
  323. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/volume-mute-v1.png +0 -0
  324. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/volume-v1.png +0 -0
  325. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/wallet-v1.png +0 -0
  326. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/warning-v1.png +0 -0
  327. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/water-v1.png +0 -0
  328. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/wifi-v1.png +0 -0
  329. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/youtube-v1.png +0 -0
  330. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/zoom-in-v1.png +0 -0
  331. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/function/zoom-out-v1.png +0 -0
  332. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/icon-add-friend-v1.png +0 -0
  333. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/icon-card-v1.png +0 -0
  334. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/icon-check-v1.png +0 -0
  335. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/icon-game-v1.png +0 -0
  336. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/icon-refresh-v1.png +0 -0
  337. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/icon-target-v1.png +0 -0
  338. package/dist/assets/game/ui/clay/phase03-clay-kit/icons/icon-user-v1.png +0 -0
  339. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-entered-v1.png +0 -0
  340. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-entered-v2.png +0 -0
  341. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-error-v1.png +0 -0
  342. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-error-v2.png +0 -0
  343. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-required-v1.png +0 -0
  344. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-required-v2.png +0 -0
  345. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-typing-v1.png +0 -0
  346. package/dist/assets/game/ui/clay/phase03-clay-kit/inputs/input-typing-v2.png +0 -0
  347. package/dist/assets/game/ui/clay/phase03-clay-kit/panels/popup-frame-v1.png +0 -0
  348. package/dist/assets/game/ui/clay/phase03-clay-kit/panels/settings-frame-v1.png +0 -0
  349. package/dist/assets/game/ui/clay/phase03-clay-kit/screens/00_title-v1.png +0 -0
  350. package/dist/assets/game/ui/clay/phase03-clay-kit/screens/01_login-v1.png +0 -0
  351. package/dist/assets/game/ui/clay/phase03-clay-kit/screens/03_stage-v1.png +0 -0
  352. package/dist/assets/game/ui/clay/phase03-clay-kit/screens/04_stageready-v1.png +0 -0
  353. package/dist/assets/game/ui/clay/phase03-clay-kit/screens/05_complete-v1.png +0 -0
  354. package/dist/assets/game/ui/clay/phase03-clay-kit/screens/06_lose-v1.png +0 -0
  355. package/dist/index.d.ts +1781 -0
  356. package/dist/index.js +3058 -0
  357. package/dist/styles.css +1 -0
  358. package/dist/tailwind.css +36 -0
  359. package/package.json +93 -0
@@ -0,0 +1 @@
1
+ :root{color-scheme:light;--game-ui-font-display:"Baloo 2", "Geist Variable", "Noto Sans SC", system-ui, sans-serif;--game-ui-font-body:"Geist Variable", "Noto Sans SC", "Noto Sans", system-ui, sans-serif;--game-ui-font-xs:.72rem;--game-ui-font-sm:.82rem;--game-ui-font-md:.95rem;--game-ui-font-lg:1.18rem;--game-ui-font-xl:clamp(1.5rem, 2.4vw, 2.35rem);--game-ui-font-xxl:clamp(2.3rem, 5vw, 4.5rem);--game-ui-line-tight:1.05;--game-ui-line-body:1.52;--game-ui-weight-body:620;--game-ui-weight-strong:800;--game-ui-weight-title:930;--game-ui-bg:#f3e8d8;--game-ui-playfield-scrim:#2a1e146b;--game-ui-surface:#fff8ecc7;--game-ui-surface-raised:#fffaf0f0;--game-ui-panel:#fff8ece6;--game-ui-panel-strong:#fff8ec;--game-ui-panel-deep:#efd1a3;--game-ui-text:#3b2d23;--game-ui-text-muted:#7b6652;--game-ui-accent:#e8743b;--game-ui-accent-bright:#f28d50;--game-ui-accent-pale:#ffd4a2;--game-ui-accent-contrast:#fff8ec;--game-ui-secondary:#1d9a8b;--game-ui-secondary-pale:#baf5df;--game-ui-success:#4f9d6b;--game-ui-success-bright:#7ee0b6;--game-ui-on-success:#16382d;--game-ui-danger:#d85a45;--game-ui-danger-bright:#ef8a72;--game-ui-warning:#f2b35c;--game-ui-berry:#9b6dd6;--game-ui-berry-pale:#d9c6ff;--game-ui-focus-ring:#1d9a8bb8;--game-ui-border-subtle:#6c4f3838;--game-ui-border-strong:#6c4f386b;--game-ui-disabled:#7b66527a;--game-ui-ink-deep:#3a2518;--game-ui-border-ink:#5c3c27;--game-ui-wood:#6c4f38;--game-ui-ink-title:#4a2f1f;--game-ui-ink-heading:#5a3924;--game-ui-text-on-dark:#fff8ec;--game-ui-glass-night:#1f1812ad;--game-ui-glass-night-soft:#1f1812a3;--game-ui-scrim-strong:#1e140e94;--game-ui-space-2:2px;--game-ui-space-4:4px;--game-ui-space-6:6px;--game-ui-space-8:8px;--game-ui-space-10:10px;--game-ui-space-12:12px;--game-ui-space-16:16px;--game-ui-space-20:20px;--game-ui-space-24:24px;--game-ui-space-32:32px;--game-ui-safe-top:max(14px, env(safe-area-inset-top));--game-ui-safe-right:max(14px, env(safe-area-inset-right));--game-ui-safe-bottom:max(14px, env(safe-area-inset-bottom));--game-ui-safe-left:max(14px, env(safe-area-inset-left));--game-ui-radius-bead:999px;--game-ui-radius-control:999px;--game-ui-radius-card:18px;--game-ui-radius-panel:26px;--game-ui-radius-modal:34px;--game-ui-shadow-button:0 13px 26px #4c341c38, inset 0 2px 0 #ffffff6b;--game-ui-shadow-panel:0 22px 60px #4c341c2e, inset 0 1px 0 #ffffffb3;--game-ui-shadow-modal:0 32px 90px #301e1261, inset 0 1px 0 #ffffffb3;--game-ui-shadow-inset:inset 0 2px 8px #4c341c1f;--game-ui-shadow-scenery:0 28px 70px #00000057, inset 0 8px 20px #ffffff1a;--game-ui-shadow-seat:0 8px 18px #00000052;--game-ui-shadow-callout:0 8px 18px #00000038;--game-ui-stroke:1px solid var(--game-ui-border-subtle);--game-ui-motion-fast:.12s;--game-ui-motion-base:.22s;--game-ui-motion-slow:.36s;--game-ui-ease-pop:cubic-bezier(.2, 1.35, .26, 1);--game-ui-ease-soft:cubic-bezier(.22, 1, .36, 1);--game-ui-reduced-motion-policy:disable non-essential transform/opacity animation;--game-ui-z-playfield:0;--game-ui-z-hud:20;--game-ui-z-sidebar:40;--game-ui-z-overlay:60;--game-ui-z-modal:80;--game-ui-z-toast:100;--game-ui-asset-icon-sm:22px;--game-ui-asset-icon-md:34px;--game-ui-asset-icon-lg:48px;--game-ui-asset-icon-xl:64px;--game-ui-asset-button-min-width:148px;--game-ui-asset-card-fan-width:132px;--game-ui-stage-tile-min-height:122px;--game-ui-terrain-swatch-size:34px;--game-ui-terrain-tool-hit-size:44px;--game-ui-build-rail-card-size:52px;--game-ui-brush-number-width:76px;--game-ui-scenery-canopy:#40543c;--game-ui-scenery-moss:#2d3a2d;--game-ui-scenery-soil:#261b14;--game-ui-scenery-pine:#314b38;--game-ui-scenery-clearing:#5f3b20db;--game-ui-scenery-wood-hi:#9a6c42;--game-ui-scenery-wood-lo:#563621;--game-ui-scenery-dusk-1:#27180e;--game-ui-scenery-dusk-2:#7f5735;--game-ui-scenery-dusk-3:#d7b174;--game-ui-scenery-grid-strong:#ffffff12;--game-ui-scenery-grid-soft:#ffffff0d;--game-ui-preview-glow-warm:#fff6cae6;--game-ui-preview-glow-mint:#7ee0b63d;--game-ui-preview-canvas-1:#f6e8d2;--game-ui-preview-canvas-2:#e4cda8;--game-ui-preview-canvas-3:#b98d5d}[data-game-ui-theme=night]{color-scheme:dark;--game-ui-bg:#221812;--game-ui-playfield-scrim:#0a060480;--game-ui-surface:#34261cb8;--game-ui-surface-raised:#402f22f0;--game-ui-panel:#2e2118eb;--game-ui-panel-strong:#3a2a1e;--game-ui-panel-deep:#2c1f16;--game-ui-text:#f6e7d3;--game-ui-text-muted:#c9ac8d;--game-ui-accent:#ef8148;--game-ui-accent-bright:#ffa06b;--game-ui-accent-pale:#8a4f28;--game-ui-secondary:#2fb3a2;--game-ui-secondary-pale:#1d5c53;--game-ui-success:#63b381;--game-ui-success-bright:#3d7c58;--game-ui-on-success:#eafff3;--game-ui-danger:#e26a55;--game-ui-danger-bright:#8a3a2c;--game-ui-warning:#f2b35c;--game-ui-berry:#b58ae0;--game-ui-berry-pale:#55407a;--game-ui-focus-ring:#2fb3a2bf;--game-ui-border-subtle:#f6e7d329;--game-ui-border-strong:#f6e7d352;--game-ui-disabled:#c9ac8d73;--game-ui-ink-deep:#f6e7d3;--game-ui-border-ink:#e8d3b8;--game-ui-wood:#d8b892;--game-ui-ink-title:#f6e2c8;--game-ui-ink-heading:#ecd6b8;--game-ui-text-on-dark:#fff8ec;--game-ui-scrim-strong:#0000009e;--game-ui-shadow-button:0 13px 26px #00000073, inset 0 2px 0 #ffffff14;--game-ui-shadow-panel:0 22px 60px #0006, inset 0 1px 0 #ffffff0f;--game-ui-shadow-modal:0 32px 90px #0009, inset 0 1px 0 #ffffff0f;--game-ui-shadow-inset:inset 0 2px 8px #00000059;--game-ui-preview-glow-warm:#78582a59;--game-ui-preview-glow-mint:#2fb3a224;--game-ui-preview-canvas-1:#2a1d13;--game-ui-preview-canvas-2:#201510;--game-ui-preview-canvas-3:#150d08}@layer swimmer-ui{html[data-game-ui-preview=clay],html[data-game-ui-preview=clay] body,html[data-game-ui-preview=clay] #root{min-height:100%;margin:0}.game-ui-clay-preview{min-height:100dvh;color:var(--game-ui-text);font-family:var(--game-ui-font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 12% 4%, var(--game-ui-preview-glow-warm), transparent 27rem), radial-gradient(circle at 86% 8%, var(--game-ui-preview-glow-mint), transparent 26rem), linear-gradient(160deg, var(--game-ui-preview-canvas-1) 0%, var(--game-ui-preview-canvas-2) 52%, var(--game-ui-preview-canvas-3) 100%);padding:24px}.game-ui-clay-preview *,.game-ui-clay-preview :before,.game-ui-clay-preview :after{box-sizing:border-box}.game-ui-clay-preview code{background:color-mix(in srgb, var(--game-ui-ink-deep) 8%, transparent);color:var(--game-ui-border-ink);border-radius:8px;padding:1px 6px;font-size:.74em}.game-ui-preview-hero,.game-ui-preview-section{width:min(100%,1180px);margin:0 auto}.game-ui-preview-hero{grid-template-columns:auto 1fr auto;align-items:start;gap:14px;padding:18px 0 22px;display:grid}.game-ui-preview-hero h1{max-width:13ch;color:var(--game-ui-ink-title);font-family:var(--game-ui-font-display);font-size:var(--game-ui-font-xxl);font-weight:var(--game-ui-weight-title);text-shadow:0 3px 0 color-mix(in srgb, var(--game-ui-panel-strong) 72%, transparent);grid-column:1/-1;margin:0;line-height:.9}.game-ui-preview-hero p{max-width:72ch;color:var(--game-ui-text-muted);font-size:var(--game-ui-font-lg);line-height:var(--game-ui-line-body);grid-column:1/-1;margin:0}.game-ui-preview-section{border:var(--game-ui-stroke);border-radius:var(--game-ui-radius-modal);background:color-mix(in srgb, var(--game-ui-panel-strong) 50%, transparent);box-shadow:var(--game-ui-shadow-panel);gap:16px;margin-top:22px;padding:clamp(16px,2vw,24px);display:grid}.game-ui-preview-section>h2,.game-ui-token-card h3,.game-ui-dialog h2,.game-ui-panel h3,.game-ui-prompt h3,.swimmer-first-session-onboarding-card h2{color:var(--game-ui-ink-heading);font-family:var(--game-ui-font-display);margin:0;font-weight:900}.game-ui-preview-section>h2{font-size:clamp(1.35rem,2.2vw,2rem)}.game-ui-swatch-grid,.game-ui-token-ledger{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.game-ui-swatch,.game-ui-token-card,.game-ui-type-scale,.game-ui-stage-world,.game-ui-stage-sidecar,.game-ui-proof-frame,.game-ui-dialog,.game-ui-history,.game-ui-panel,.game-ui-prompt,.game-ui-toast{border:var(--game-ui-stroke);border-radius:var(--game-ui-radius-panel);background:var(--game-ui-panel);box-shadow:var(--game-ui-shadow-panel)}.game-ui-swatch{align-items:center;gap:10px;margin:0;padding:10px;display:flex}.game-ui-swatch>span{border:1px solid color-mix(in srgb, var(--game-ui-ink-deep) 16%, transparent);width:46px;height:46px;box-shadow:var(--game-ui-shadow-inset);border-radius:15px;flex:none}.game-ui-swatch figcaption,.game-ui-token-row,.game-ui-type-scale,.game-ui-stage-tile-copy,.game-ui-hud-chip span,.game-ui-language-popover button span,.game-ui-history-entry-header,.swimmer-first-session-control-copy{gap:2px;display:grid}.game-ui-token-card,.game-ui-dialog,.game-ui-panel,.game-ui-history,.game-ui-prompt{gap:12px;padding:14px;display:grid}.game-ui-token-grid{gap:6px;display:grid}.game-ui-token-row{background:color-mix(in srgb, var(--game-ui-wood) 6%, transparent);border-radius:10px;grid-template-columns:minmax(92px,.42fr) minmax(0,.58fr);align-items:center;padding:7px 8px}.game-ui-token-row span,.game-ui-small-copy,.game-ui-stage-tile small,.game-ui-hud-chip small,.game-ui-hud-chip em,.game-ui-language-popover small,.game-ui-type-kicker{color:var(--game-ui-text-muted);font-size:var(--game-ui-font-xs);letter-spacing:.08em;text-transform:uppercase;font-style:normal;font-weight:820}.game-ui-token-row code{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.game-ui-token-row>span:first-child{overflow-wrap:anywhere;letter-spacing:.04em;min-width:0;line-height:1.15}.game-ui-type-scale{gap:9px;padding:clamp(18px,3vw,30px)}.game-ui-type-scale h1,.game-ui-type-scale h2,.game-ui-type-scale p,.game-ui-type-scale small{margin:0}.game-ui-type-scale h1{color:var(--game-ui-ink-title);font-family:var(--game-ui-font-display);font-size:var(--game-ui-font-xxl);font-weight:var(--game-ui-weight-title);line-height:var(--game-ui-line-tight)}.game-ui-type-scale h2{font-size:var(--game-ui-font-xl);font-weight:880}.game-ui-type-scale p,.game-ui-dialog p,.game-ui-history-entry p,.game-ui-prompt p,.swimmer-first-session-onboarding-card p{max-width:62ch;color:var(--game-ui-text-muted);font-size:var(--game-ui-font-md);line-height:var(--game-ui-line-body)}.game-ui-component-row,.game-ui-asset-path-grid,.game-ui-hud-cluster,.game-ui-hud-tools,.game-ui-input-strip,.game-ui-tabs,.game-ui-segmented,.game-ui-radial-menu,.game-ui-hud-actions,.swimmer-first-session-onboarding-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.game-ui-button,.game-ui-icon-button,.game-ui-tab,.game-ui-segmented-option,.game-ui-toggle,.game-ui-language-trigger,.game-ui-language-popover button,.game-ui-stage-tile,.game-ui-orientation-card button{border:1px solid color-mix(in srgb, var(--game-ui-border-ink) 18%, transparent);border-radius:var(--game-ui-radius-control);min-height:44px;font:inherit;font-family:var(--game-ui-font-body);cursor:pointer;box-shadow:var(--game-ui-shadow-button);transition:transform var(--game-ui-motion-fast) var(--game-ui-ease-pop), scale var(--game-ui-motion-fast) var(--game-ui-ease-pop), box-shadow var(--game-ui-motion-fast) var(--game-ui-ease-soft);font-weight:860}.game-ui-button,.game-ui-icon-button{justify-content:center;align-items:center;gap:8px;min-width:fit-content;padding:0 16px;display:inline-flex}@media (hover:hover){.game-ui-button:hover,.game-ui-icon-button:hover,.game-ui-language-trigger:hover,.game-ui-language-popover button:hover,.game-ui-stage-tile:hover,.game-ui-orientation-card button:hover{transform:translateY(-1px)}}.game-ui-button:active,.game-ui-icon-button:active,.game-ui-tab:active,.game-ui-segmented-option:active,.game-ui-toggle:active,.game-ui-language-trigger:active,.game-ui-language-popover button:active,.game-ui-stage-tile:active,.game-ui-orientation-card button:active{scale:.96}.game-ui-button--primary,.game-ui-orientation-card button{background:linear-gradient(180deg, var(--game-ui-accent-bright), var(--game-ui-accent));color:var(--game-ui-accent-contrast)}.game-ui-button--secondary,.game-ui-icon-button,.game-ui-tab,.game-ui-segmented-option,.game-ui-toggle,.game-ui-language-trigger,.game-ui-language-popover button{background:var(--game-ui-surface-raised);color:var(--game-ui-text)}.game-ui-button--ghost{border-color:var(--game-ui-border-subtle);background:color-mix(in srgb, var(--game-ui-panel-strong) 18%, transparent);color:var(--game-ui-text-muted);box-shadow:none}.game-ui-button--success{background:linear-gradient(180deg, var(--game-ui-success-bright), var(--game-ui-success));color:var(--game-ui-on-success)}.game-ui-button--danger{background:linear-gradient(180deg, var(--game-ui-danger-bright), var(--game-ui-danger));color:var(--game-ui-accent-contrast)}.game-ui-button:disabled{background:color-mix(in srgb, var(--game-ui-text-muted) 16%, transparent);color:var(--game-ui-disabled);cursor:not-allowed;transform:none}.game-ui-asset-icon{width:var(--game-ui-asset-icon-md);height:var(--game-ui-asset-icon-md);flex:none;place-items:center;display:inline-grid}.game-ui-asset-icon[data-icon-size=sm]{width:var(--game-ui-asset-icon-sm);height:var(--game-ui-asset-icon-sm)}.game-ui-asset-icon[data-icon-size=lg]{width:var(--game-ui-asset-icon-lg);height:var(--game-ui-asset-icon-lg)}.game-ui-asset-icon[data-icon-size=xl]{width:var(--game-ui-asset-icon-xl);height:var(--game-ui-asset-icon-xl)}.game-ui-asset-icon img{object-fit:contain;width:100%;height:100%}.game-ui-badge{border:1px solid var(--game-ui-border-subtle);border-radius:var(--game-ui-radius-bead);background:color-mix(in srgb, var(--game-ui-panel-strong) 90%, transparent);width:fit-content;min-height:28px;color:var(--game-ui-text);font-size:var(--game-ui-font-xs);letter-spacing:.05em;text-transform:uppercase;justify-content:center;align-items:center;padding:0 10px;font-weight:900;display:inline-flex}.game-ui-badge[data-badge-tone=success]{border-color:color-mix(in srgb, var(--game-ui-success) 42%, transparent);background:color-mix(in srgb, var(--game-ui-success-bright) 28%, transparent)}.game-ui-badge[data-badge-tone=warning]{border-color:color-mix(in srgb, var(--game-ui-accent) 42%, transparent);background:color-mix(in srgb, var(--game-ui-warning) 28%, transparent)}.game-ui-badge[data-badge-tone=danger]{border-color:color-mix(in srgb, var(--game-ui-danger) 42%, transparent);background:color-mix(in srgb, var(--game-ui-danger) 16%, transparent)}.game-ui-badge[data-badge-tone=ai]{border-color:color-mix(in srgb, var(--game-ui-secondary) 42%, transparent);background:color-mix(in srgb, var(--game-ui-secondary) 16%, transparent)}.game-ui-toast{padding:12px 14px;font-weight:820}.game-ui-toast[data-toast-tone=success]{border-color:color-mix(in srgb, var(--game-ui-success) 42%, transparent);background:color-mix(in srgb, var(--game-ui-success-bright) 22%, transparent)}.game-ui-toast[data-toast-tone=danger]{border-color:color-mix(in srgb, var(--game-ui-danger) 42%, transparent);background:color-mix(in srgb, var(--game-ui-danger) 13%, transparent)}.game-ui-history-entry{border-radius:var(--game-ui-radius-card);background:color-mix(in srgb, var(--game-ui-panel-strong) 56%, transparent);gap:4px;padding:12px;display:grid}.game-ui-history-entry[data-entry-kind=mystery]{background:color-mix(in srgb, var(--game-ui-berry) 12%, transparent)}.game-ui-history-entry[data-entry-kind=system]{background:color-mix(in srgb, var(--game-ui-secondary) 12%, transparent)}.game-ui-history-entry-header{grid-template-columns:1fr auto;align-items:center}.game-ui-history-entry-header span{color:var(--game-ui-text-muted);font-size:var(--game-ui-font-xs);font-weight:760}.game-ui-tab[aria-selected=true],.game-ui-segmented-option[aria-pressed=true]{background:var(--game-ui-secondary);color:var(--game-ui-accent-contrast)}.game-ui-slider{color:var(--game-ui-text-muted);gap:6px;font-weight:820;display:grid}.game-ui-slider input{accent-color:var(--game-ui-secondary)}.game-ui-toggle{justify-content:space-between;align-items:center;gap:10px;padding:0 10px 0 14px;display:inline-flex}.game-ui-toggle-track{border:2px solid var(--game-ui-panel-strong);border-radius:var(--game-ui-radius-bead);background:var(--game-ui-secondary);width:42px;height:24px;box-shadow:inset -8px 0 0 color-mix(in srgb, var(--game-ui-panel-strong) 62%, transparent)}.game-ui-tooltip{display:inline-flex;position:relative}.game-ui-tooltip [role=tooltip]{background:var(--game-ui-text);min-width:150px;color:var(--game-ui-accent-contrast);font-size:var(--game-ui-font-xs);opacity:0;pointer-events:none;transition:opacity var(--game-ui-motion-fast) var(--game-ui-ease-soft), transform var(--game-ui-motion-fast) var(--game-ui-ease-pop);border-radius:12px;padding:7px 9px;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(3px)}.game-ui-tooltip [role=tooltip]:after{background:var(--game-ui-text);content:"";border-radius:2px;width:8px;height:8px;margin-top:-5px;position:absolute;top:100%;left:50%;transform:translate(-50%)rotate(45deg)}.game-ui-tooltip:hover [role=tooltip],.game-ui-tooltip:focus-within [role=tooltip]{opacity:1;transform:translate(-50%)translateY(0)}.game-ui-stage-demo,.game-ui-preview-two-up,.game-ui-proof-frames{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:14px;display:grid}.game-ui-first-session-preview{grid-template-columns:1fr;gap:14px;display:grid}.game-ui-stage-world{background:radial-gradient(ellipse at 50% 66%, var(--game-ui-scenery-clearing) 0 18%, transparent 18.5%), radial-gradient(circle at 25% 32%, color-mix(in srgb, var(--game-ui-secondary) 38%, transparent), transparent 11rem), radial-gradient(circle at 74% 28%, color-mix(in srgb, var(--game-ui-accent) 34%, transparent), transparent 12rem), linear-gradient(160deg, var(--game-ui-scenery-canopy), var(--game-ui-scenery-moss) 48%, var(--game-ui-scenery-soil) 100%);min-height:430px;padding:16px;position:relative;overflow:hidden}.game-ui-stage-world:before{background:linear-gradient(90deg, var(--game-ui-scenery-grid-strong) 1px, transparent 1px), linear-gradient(0deg, var(--game-ui-scenery-grid-soft) 1px, transparent 1px);content:"";opacity:.28;background-size:56px 56px;position:absolute;inset:0}.game-ui-hud{z-index:var(--game-ui-z-hud);justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:relative}.game-ui-hud-chip{border:1px solid color-mix(in srgb, var(--game-ui-text-on-dark) 30%, transparent);background:var(--game-ui-glass-night);min-height:54px;color:var(--game-ui-text-on-dark);backdrop-filter:blur(10px);font-variant-numeric:tabular-nums;border-radius:20px;align-items:center;gap:8px;padding:6px 10px 6px 6px;display:inline-flex}.game-ui-hud-chip strong{color:var(--game-ui-text-on-dark);font-size:var(--game-ui-font-sm)}.game-ui-hud-chip small,.game-ui-hud-chip em{color:color-mix(in srgb, var(--game-ui-text-on-dark) 72%, transparent)}.game-ui-table-prop{aspect-ratio:1.9;border:4px solid color-mix(in srgb, var(--game-ui-text-on-dark) 24%, transparent);background:radial-gradient(ellipse at 50% 38%, var(--game-ui-scenery-wood-hi), var(--game-ui-scenery-wood-lo) 72%);width:min(46%,360px);box-shadow:var(--game-ui-shadow-scenery);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-42%)}.game-ui-seat{border:3px solid var(--game-ui-text-on-dark);background:radial-gradient(circle at 35% 28%, var(--game-ui-accent-pale), var(--game-ui-accent));width:36px;height:36px;box-shadow:var(--game-ui-shadow-seat);border-radius:50%;position:absolute}.game-ui-seat.is-host{top:-10px;left:46%}.game-ui-seat.is-guest-a{background:radial-gradient(circle at 35% 28%, var(--game-ui-secondary-pale), var(--game-ui-secondary));bottom:6%;right:7%}.game-ui-seat.is-guest-b{background:radial-gradient(circle at 35% 28%, var(--game-ui-berry-pale), var(--game-ui-berry));bottom:6%;left:7%}.game-ui-callout{background:var(--game-ui-panel-strong);color:var(--game-ui-text);font-size:var(--game-ui-font-xs);box-shadow:var(--game-ui-shadow-callout);white-space:nowrap;border-radius:16px 16px 16px 5px;padding:6px 9px;font-weight:820;position:absolute}.game-ui-callout.is-a{top:-44px;left:20%}.game-ui-callout.is-b{top:-28px;right:8%}.game-ui-input-strip{z-index:var(--game-ui-z-hud);justify-content:flex-end;position:absolute;bottom:16px;left:16px;right:16px}.game-ui-stage-sidecar{align-content:start;gap:10px;padding:12px;display:grid}.game-ui-stage-tile{min-height:var(--game-ui-stage-tile-min-height);border-radius:var(--game-ui-radius-panel);background:color-mix(in srgb, var(--game-ui-panel-strong) 92%, transparent);width:100%;color:var(--game-ui-text);text-align:left;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;display:grid}.game-ui-stage-tile[data-stage-tone=portal]{border-color:color-mix(in srgb, var(--game-ui-secondary) 42%, transparent)}.game-ui-stage-tile[data-stage-tone=host]{border-color:color-mix(in srgb, var(--game-ui-accent) 42%, transparent)}.game-ui-stage-tile[data-stage-tone=danger]{border-color:color-mix(in srgb, var(--game-ui-danger) 42%, transparent)}.game-ui-stage-tile:disabled{cursor:not-allowed;opacity:.76;filter:saturate(.72);transform:none}.game-ui-stage-tile-copy>span{color:var(--game-ui-text-muted);font-size:var(--game-ui-font-sm);line-height:1.35}.game-ui-card-fan{place-items:center;min-height:190px;display:grid;position:relative}.game-ui-card-fan-card{width:var(--game-ui-asset-card-fan-width);border:2px solid color-mix(in srgb, var(--game-ui-border-ink) 16%, transparent);background:linear-gradient(180deg, var(--game-ui-panel-strong), var(--game-ui-panel-deep));text-align:center;min-height:170px;transform:translateX(calc(var(--game-ui-card-offset) * 54px)) rotate(calc(var(--game-ui-card-offset) * 8deg));box-shadow:var(--game-ui-shadow-button);border-radius:22px;place-items:center;gap:6px;padding:12px;display:grid;position:absolute}.game-ui-card-fan-card:nth-child(2){z-index:2;transform:translateY(-10px)}.game-ui-card-fan-card small{color:var(--game-ui-text-muted);font-size:var(--game-ui-font-xs);text-transform:uppercase;font-weight:860}.game-ui-card-fan-card strong{font-size:var(--game-ui-font-lg)}.game-ui-orientation-gate{border:1px dashed var(--game-ui-border-strong);border-radius:var(--game-ui-radius-modal);background:color-mix(in srgb, var(--game-ui-ink-deep) 14%, transparent);place-items:center;min-height:320px;padding:16px;display:grid}.game-ui-orientation-card{border:2px solid color-mix(in srgb, var(--game-ui-panel-strong) 62%, transparent);border-radius:var(--game-ui-radius-modal);background:color-mix(in srgb, var(--game-ui-panel-strong) 94%, transparent);max-width:440px;color:var(--game-ui-text);text-align:center;box-shadow:var(--game-ui-shadow-modal);justify-items:center;gap:10px;padding:24px;display:grid}.game-ui-orientation-card h2,.game-ui-orientation-card p,.game-ui-orientation-card small{margin:0}.game-ui-language-menu{justify-self:end;position:relative}.game-ui-language-trigger,.game-ui-language-popover button{align-items:center;gap:8px;padding:0 12px;display:inline-flex}.game-ui-language-popover{z-index:var(--game-ui-z-toast);border:var(--game-ui-stroke);background:var(--game-ui-panel-strong);min-width:210px;box-shadow:var(--game-ui-shadow-modal);border-radius:18px;gap:6px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.game-ui-language-popover button{text-align:left;border-radius:14px;justify-content:flex-start;width:100%}.game-ui-loading-state{border:var(--game-ui-stroke);border-radius:var(--game-ui-radius-control);background:color-mix(in srgb, var(--game-ui-panel-strong) 72%, transparent);min-height:48px;color:var(--game-ui-text);align-items:center;gap:8px;padding:8px 12px;font-weight:820;display:inline-flex}.game-ui-loading-state[data-loading-tone=error]{border-color:color-mix(in srgb, var(--game-ui-danger) 42%, transparent);background:color-mix(in srgb, var(--game-ui-danger) 12%, transparent)}.game-ui-loading-state img{object-fit:contain;width:30px;height:30px}.game-ui-asset-path-grid code{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.game-ui-icon-gallery{gap:18px;display:grid}.game-ui-icon-family{gap:10px;display:grid}.game-ui-icon-family-head{gap:6px;display:grid}.game-ui-icon-grid{grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:10px;display:grid}.game-ui-icon-cell{border:var(--game-ui-stroke);border-radius:var(--game-ui-radius-panel);background:var(--game-ui-panel);box-shadow:var(--game-ui-shadow-panel);justify-items:center;gap:7px;margin:0;padding:12px 6px;display:grid}.game-ui-icon-cell figcaption{overflow-wrap:anywhere;min-width:0;max-width:100%;color:var(--game-ui-text-muted);font-size:var(--game-ui-font-xs);letter-spacing:.03em;text-align:center;font-weight:760}.game-ui-input{border:1px solid var(--game-ui-border-strong);border-radius:var(--game-ui-radius-card);background:var(--game-ui-surface-raised);width:100%;min-height:48px;box-shadow:var(--game-ui-shadow-inset);color:var(--game-ui-text);font:inherit;font-weight:var(--game-ui-weight-body);transition:border-color var(--game-ui-motion-fast) var(--game-ui-ease-soft), box-shadow var(--game-ui-motion-fast) var(--game-ui-ease-soft);padding:12px 16px}.game-ui-input::placeholder{color:var(--game-ui-disabled)}.game-ui-input:focus-visible{border-color:var(--game-ui-secondary);box-shadow:var(--game-ui-shadow-inset), 0 0 0 3px var(--game-ui-focus-ring);outline:none}.game-ui-input:disabled{opacity:.6;cursor:not-allowed}.game-ui-input[data-invalid=true],.game-ui-field[data-invalid=true] .game-ui-input{border-color:var(--game-ui-danger);box-shadow:var(--game-ui-shadow-inset), 0 0 0 3px color-mix(in srgb, var(--game-ui-danger) 26%, transparent)}.game-ui-textarea{min-height:92px;line-height:var(--game-ui-line-body);resize:vertical}.game-ui-field{gap:6px;display:grid}.game-ui-field-label{color:var(--game-ui-text-muted);font-size:var(--game-ui-font-xs);font-weight:var(--game-ui-weight-strong);letter-spacing:.06em;text-transform:uppercase}.game-ui-field-required{color:var(--game-ui-danger)}.game-ui-field-hint{color:var(--game-ui-text-muted);font-size:var(--game-ui-font-sm)}.game-ui-field-error{color:var(--game-ui-danger);font-size:var(--game-ui-font-sm);font-weight:var(--game-ui-weight-strong)}.game-ui-checkbox{cursor:pointer;min-height:40px;color:var(--game-ui-text);font-weight:var(--game-ui-weight-body);align-items:center;gap:10px;display:inline-flex}.game-ui-checkbox-input{opacity:0;width:1px;height:1px;position:absolute}.game-ui-checkbox-box{border:1px solid var(--game-ui-border-strong);background:var(--game-ui-surface-raised);width:26px;height:26px;box-shadow:var(--game-ui-shadow-inset);transition:background var(--game-ui-motion-fast), border-color var(--game-ui-motion-fast);border-radius:9px;flex:none;place-items:center;display:grid;position:relative}.game-ui-checkbox-box:after{content:"";border-left:3px solid var(--game-ui-accent-contrast);border-bottom:3px solid var(--game-ui-accent-contrast);opacity:0;width:12px;height:7px;transition:transform var(--game-ui-motion-fast) var(--game-ui-ease-pop), opacity var(--game-ui-motion-fast);margin-top:-3px;transform:rotate(-45deg)scale(.3)}.game-ui-checkbox-input:checked+.game-ui-checkbox-box{background:var(--game-ui-accent);border-color:var(--game-ui-accent)}.game-ui-checkbox-input:checked+.game-ui-checkbox-box:after{opacity:1;transform:rotate(-45deg)scale(1)}.game-ui-checkbox-input:focus-visible+.game-ui-checkbox-box{box-shadow:var(--game-ui-shadow-inset), 0 0 0 3px var(--game-ui-focus-ring)}.game-ui-checkbox-input:disabled~*{opacity:.55;cursor:not-allowed}.game-ui-sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.game-ui-avatar{border:2px solid var(--game-ui-panel-strong);background:linear-gradient(150deg, var(--game-ui-warning), var(--game-ui-accent));color:var(--game-ui-accent-contrast);font-family:var(--game-ui-font-display);font-weight:var(--game-ui-weight-title);box-shadow:var(--game-ui-shadow-button);border-radius:50%;flex:none;place-items:center;display:inline-grid;position:relative}.game-ui-avatar img,.game-ui-avatar-initials{grid-area:1/1}.game-ui-avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%}.game-ui-avatar[data-avatar-size=sm]{width:32px;height:32px;font-size:.72rem}.game-ui-avatar[data-avatar-size=md]{width:44px;height:44px;font-size:.95rem}.game-ui-avatar[data-avatar-size=lg]{width:60px;height:60px;font-size:1.25rem}.game-ui-avatar[data-avatar-size=xl]{width:84px;height:84px;font-size:1.7rem}.game-ui-avatar-status{border:2px solid var(--game-ui-panel-strong);border-radius:50%;width:30%;min-width:9px;height:30%;min-height:9px;position:absolute;bottom:-1px;right:-1px}.game-ui-avatar[data-avatar-status=online] .game-ui-avatar-status{background:var(--game-ui-success)}.game-ui-avatar[data-avatar-status=busy] .game-ui-avatar-status{background:var(--game-ui-danger)}.game-ui-avatar[data-avatar-status=away] .game-ui-avatar-status{background:var(--game-ui-warning)}.game-ui-progress{align-items:center;gap:10px;display:flex}.game-ui-progress-track{border-radius:var(--game-ui-radius-control);background:var(--game-ui-surface);height:14px;box-shadow:var(--game-ui-shadow-inset);flex:1;position:relative;overflow:hidden}.game-ui-progress-fill{border-radius:inherit;background:var(--game-ui-accent);height:100%;transition:width var(--game-ui-motion-base) var(--game-ui-ease-soft)}.game-ui-progress[data-progress-tone=success] .game-ui-progress-fill{background:var(--game-ui-success)}.game-ui-progress[data-progress-tone=danger] .game-ui-progress-fill{background:var(--game-ui-danger)}.game-ui-progress[data-progress-tone=warning] .game-ui-progress-fill{background:var(--game-ui-warning)}.game-ui-progress-value{min-width:3ch;color:var(--game-ui-text-muted);font-size:var(--game-ui-font-sm);font-weight:var(--game-ui-weight-strong);text-align:right;font-variant-numeric:tabular-nums}.game-ui-empty-state{border:1px dashed var(--game-ui-border-strong);border-radius:var(--game-ui-radius-panel);background:var(--game-ui-surface);text-align:center;justify-items:center;gap:8px;padding:28px 20px;display:grid}.game-ui-empty-state-title{color:var(--game-ui-text);font-family:var(--game-ui-font-display);font-size:var(--game-ui-font-lg);font-weight:var(--game-ui-weight-strong)}.game-ui-empty-state-body{max-width:42ch;color:var(--game-ui-text-muted);font-size:var(--game-ui-font-sm);line-height:var(--game-ui-line-body);margin:0}.game-ui-empty-state-action{margin-top:6px}@media (prefers-reduced-motion:reduce){.game-ui-input,.game-ui-checkbox-box,.game-ui-checkbox-box:after,.game-ui-progress-fill{transition:none}}.game-ui-proof-frames{grid-template-columns:1fr}.game-ui-proof-frame{padding:12px;overflow:hidden}.game-ui-proof-frame>header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.game-ui-proof-frame.is-desktop .game-ui-stage-demo{width:min(100%,1440px);min-height:min(900px,64dvh)}.game-ui-proof-frame.is-mobile-landscape .game-ui-stage-demo{grid-template-columns:minmax(0,1fr) minmax(220px,.54fr);width:min(100%,844px);min-height:390px}.game-ui-proof-frame.is-mobile-landscape .game-ui-stage-world{min-height:390px}.game-ui-proof-frame.is-mobile-landscape .game-ui-hud-chip{min-height:44px;padding:4px 8px 4px 5px}.game-ui-proof-frame.is-mobile-landscape .game-ui-hud-chip:nth-child(3),.game-ui-proof-frame.is-mobile-landscape .game-ui-hud-tools{display:none}.game-ui-stage-tile strong,.game-ui-dialog h2,.game-ui-panel h3,.game-ui-prompt h3,.game-ui-empty-state-title,.swimmer-first-session-onboarding-card h2,.game-ui-clay-preview h1,.game-ui-clay-preview h2,.game-ui-clay-preview h3{text-wrap:balance}.game-ui-stage-tile-copy>span,.game-ui-small-copy,.game-ui-field-hint,.game-ui-empty-state-body,.game-ui-prompt p,.game-ui-dialog p,.game-ui-preview-hero p{text-wrap:pretty}.game-ui-button:has(>.game-ui-asset-icon:last-child),.game-ui-button:has(>svg:last-child){padding-right:14px}.game-ui-button:has(>.game-ui-asset-icon:first-child),.game-ui-button:has(>svg:first-child){padding-left:14px}@keyframes game-ui-pop{0%{opacity:0;filter:blur(4px);transform:translateY(8px)scale(.96)}to{opacity:1;filter:blur();transform:none}}@keyframes game-ui-rise{0%{opacity:0;filter:blur(3px);transform:translateY(10px)}to{opacity:1;filter:blur();transform:none}}.game-ui-dialog,.swimmer-first-session-onboarding-card{animation:game-ui-pop var(--game-ui-motion-base) var(--game-ui-ease-pop) both}.game-ui-language-popover{animation:game-ui-pop var(--game-ui-motion-fast) var(--game-ui-ease-pop) both;transform-origin:100% 0}.game-ui-toast{animation:game-ui-rise var(--game-ui-motion-base) var(--game-ui-ease-soft) both}.game-ui-preview-hero>*{animation:game-ui-rise var(--game-ui-motion-slow) var(--game-ui-ease-soft) both}.game-ui-preview-hero>:nth-child(2){animation-delay:60ms}.game-ui-preview-hero>:nth-child(3){animation-delay:.12s}.game-ui-preview-hero>:nth-child(4){animation-delay:.18s}@media (prefers-reduced-motion:reduce){.game-ui-dialog,.swimmer-first-session-onboarding-card,.game-ui-language-popover,.game-ui-toast,.game-ui-preview-hero>*{animation:none}}.game-ui-button--static:active{scale:1}.game-ui-first-session-world{border-radius:var(--game-ui-radius-modal);background:linear-gradient(145deg, var(--game-ui-scenery-dusk-1) 0%, var(--game-ui-scenery-dusk-2) 48%, var(--game-ui-scenery-dusk-3) 100%);min-height:360px;box-shadow:var(--game-ui-shadow-modal);position:relative;overflow:hidden}.game-ui-first-session-world:before{border:4px solid color-mix(in srgb, var(--game-ui-text-on-dark) 22%, transparent);background:radial-gradient(ellipse at 50% 38%, var(--game-ui-scenery-wood-hi), var(--game-ui-scenery-wood-lo) 72%);content:"";border-radius:50%;position:absolute;inset:18% 22% 30%}.swimmer-first-session-shell{z-index:5;pointer-events:none;position:absolute;inset:0}.swimmer-first-session-hud{top:var(--game-ui-safe-top);right:var(--game-ui-safe-right);left:var(--game-ui-safe-left);align-items:flex-start;position:absolute}.swimmer-first-session-hud .game-ui-hud-cluster,.swimmer-first-session-hud .game-ui-hud-tools,.swimmer-first-session-hud-actions{pointer-events:auto}.swimmer-first-session-controls{right:max(18px, var(--game-ui-safe-right));bottom:max(16px, var(--game-ui-safe-bottom));left:max(18px, var(--game-ui-safe-left));border:var(--game-ui-stroke);border-radius:var(--game-ui-radius-modal);background:color-mix(in srgb, var(--game-ui-panel-strong) 86%, transparent);pointer-events:none;box-shadow:var(--game-ui-shadow-panel);backdrop-filter:blur(16px);grid-template-columns:auto minmax(120px,1fr) minmax(180px,.72fr) auto;align-items:center;gap:12px;padding:10px 12px;display:grid;position:absolute}.swimmer-first-session-joystick{border:1px solid color-mix(in srgb, var(--game-ui-border-ink) 18%, transparent);background:color-mix(in srgb, var(--game-ui-ink-deep) 8%, transparent);width:58px;height:58px;box-shadow:var(--game-ui-shadow-inset);border-radius:50%;place-items:center;display:grid}.swimmer-first-session-joystick span{background:linear-gradient(180deg, var(--game-ui-accent-bright), var(--game-ui-accent));width:25px;height:25px;box-shadow:var(--game-ui-shadow-button);border-radius:50%}.swimmer-first-session-control-copy strong{color:var(--game-ui-text);font-size:var(--game-ui-font-sm)}.swimmer-first-session-input,.swimmer-first-session-emote{border:1px solid color-mix(in srgb, var(--game-ui-border-ink) 18%, transparent);border-radius:var(--game-ui-radius-control);background:color-mix(in srgb, var(--game-ui-panel-strong) 74%, transparent);min-height:44px;color:var(--game-ui-text-muted);font-size:var(--game-ui-font-sm);align-items:center;gap:8px;padding:0 12px;font-weight:860;display:inline-flex}.swimmer-first-session-emote{color:var(--game-ui-text);cursor:pointer;pointer-events:auto}.game-ui-first-session-modal-slot{border-radius:var(--game-ui-radius-modal);background:color-mix(in srgb, var(--game-ui-ink-deep) 18%, transparent);min-height:360px;position:relative;overflow:hidden}.swimmer-first-session-onboarding{z-index:var(--game-ui-z-modal);place-items:center;padding:18px;display:grid;position:absolute;inset:0}.swimmer-first-session-onboarding-scrim{background:var(--game-ui-scrim-strong);backdrop-filter:blur(10px);position:absolute;inset:0}.swimmer-first-session-onboarding-card{border:var(--game-ui-stroke);border-radius:var(--game-ui-radius-modal);background:color-mix(in srgb, var(--game-ui-panel-strong) 90%, transparent);width:min(720px,100vw - 40px);max-height:min(720px,100dvh - 28px);color:var(--game-ui-text);box-shadow:var(--game-ui-shadow-modal);gap:12px;padding:clamp(18px,3vw,30px);display:grid;position:relative;overflow:auto}.swimmer-first-session-onboarding-card h2{max-width:15ch;font-size:clamp(1.8rem,4vw,3.4rem);line-height:.95}.game-ui-first-session-modal-slot .swimmer-first-session-onboarding-card{width:min(100%,360px);padding:18px}.game-ui-first-session-modal-slot .swimmer-first-session-onboarding-card h2{max-width:none;font-size:clamp(1.55rem,3vw,2.25rem)}.game-ui-first-session-modal-slot .swimmer-first-session-onboarding-steps{grid-template-columns:1fr}.swimmer-first-session-onboarding-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:4px 0 0;padding:0;list-style:none;display:grid}.swimmer-first-session-onboarding-steps li{border:1px solid color-mix(in srgb, var(--game-ui-border-ink) 14%, transparent);border-radius:var(--game-ui-radius-panel);background:color-mix(in srgb, var(--game-ui-panel-strong) 56%, transparent);gap:5px;padding:12px;display:grid}.swimmer-first-session-onboarding-steps span{color:var(--game-ui-accent);font-size:var(--game-ui-font-xs);font-weight:950}.swimmer-first-session-onboarding-steps small{color:var(--game-ui-text-muted);line-height:1.35}@media (width<=900px){.game-ui-clay-preview{padding:14px}.game-ui-preview-hero,.game-ui-stage-demo,.game-ui-preview-two-up,.game-ui-proof-frame.is-mobile-landscape .game-ui-stage-demo,.game-ui-first-session-preview{grid-template-columns:1fr}.game-ui-preview-hero h1,.game-ui-preview-hero p{grid-column:auto}.game-ui-language-menu{justify-self:start}.game-ui-stage-world{min-height:390px}.game-ui-hud{display:grid}}@media (width<=900px) and (height<=500px) and (orientation:landscape){.swimmer-first-session-hud .game-ui-hud-chip:nth-child(3),.swimmer-first-session-hud .game-ui-hud-chip:nth-child(4){display:none}.swimmer-first-session-hud .game-ui-button{min-height:34px;padding:0 10px;font-size:11px}.swimmer-first-session-controls{grid-template-columns:auto minmax(0,1fr) auto;gap:8px;padding:8px 10px}.swimmer-first-session-input{display:none}.swimmer-first-session-joystick{width:46px;height:46px}.swimmer-first-session-onboarding-card{grid-template-columns:minmax(0,.7fr) minmax(260px,1fr);gap:12px;padding:14px}.swimmer-first-session-onboarding-steps{grid-area:1/2/span 5;grid-template-columns:1fr}.game-ui-first-session-modal-slot .swimmer-first-session-onboarding-card{grid-template-columns:1fr;width:min(100%,360px);max-height:330px}.game-ui-first-session-modal-slot .swimmer-first-session-onboarding-steps{grid-area:auto;grid-template-columns:1fr}}.game-ui-asset-compression-repro{grid-template-columns:repeat(3,minmax(0,auto));align-items:start;gap:14px;display:grid;overflow-x:auto}.game-ui-asset-compression-repro-surface{width:var(--repro-width);min-width:var(--repro-width);border:var(--game-ui-stroke);border-radius:var(--game-ui-radius-panel);background:color-mix(in srgb, var(--game-ui-panel-strong) 42%, transparent);gap:8px;padding:10px;display:grid;overflow:hidden}.game-ui-asset-compression-repro-surface .game-ui-asset-library{width:100%}.game-ui-asset-compression-repro-surface[data-repro-surface=rail] .game-ui-asset-library{max-height:330px;overflow:auto}.game-ui-shell{border-radius:var(--game-ui-radius-modal);background:radial-gradient(circle at 18% 16%, color-mix(in srgb, var(--game-ui-success-bright) 24%, transparent), transparent 24rem), linear-gradient(150deg, var(--game-ui-scenery-pine), var(--game-ui-scenery-soil) 78%);min-height:min(760px,100dvh);color:var(--game-ui-text);isolation:isolate;box-shadow:var(--game-ui-shadow-modal);display:grid;position:relative;overflow:hidden}.game-ui-shell-scene{min-width:0;min-height:420px;position:relative;overflow:hidden}.game-ui-shell-scene>*{min-width:0}.game-ui-shell-hud,.game-ui-shell-library,.game-ui-shell-side-panel,.game-ui-shell-movement,.game-ui-shell-bottom-bar,.game-ui-shell-overlay{z-index:var(--game-ui-z-hud);position:absolute}.game-ui-shell-hud{top:var(--game-ui-safe-top);right:var(--game-ui-safe-right);left:var(--game-ui-safe-left)}.game-ui-shell-library{top:calc(var(--game-ui-safe-top) + 76px);right:var(--game-ui-safe-right);bottom:calc(var(--game-ui-safe-bottom) + 96px);width:min(360px,100% - 32px);overflow:auto}.game-ui-shell-side-panel{top:calc(var(--game-ui-safe-top) + 76px);left:var(--game-ui-safe-left);bottom:calc(var(--game-ui-safe-bottom) + 96px);width:min(320px,100% - 32px);overflow:auto}.game-ui-shell-movement{bottom:calc(var(--game-ui-safe-bottom) + 20px);left:var(--game-ui-safe-left)}.game-ui-shell-bottom-bar{right:var(--game-ui-safe-right);bottom:var(--game-ui-safe-bottom);left:max(172px, var(--game-ui-safe-left))}.game-ui-shell-overlay{pointer-events:none;place-items:center;display:grid;inset:0}.game-ui-shell-overlay>*{pointer-events:auto}.game-ui-shell[data-density=dense] .game-ui-panel{padding:10px}.game-ui-shell[data-layout=mobile] .game-ui-shell-library,.game-ui-shell[data-layout=mobile] .game-ui-shell-side-panel{top:auto;right:var(--game-ui-safe-right);bottom:calc(var(--game-ui-safe-bottom) + 78px);left:var(--game-ui-safe-left);width:auto;max-height:min(48dvh,320px)}.game-ui-shell[data-layout=mobile] .game-ui-shell-bottom-bar{left:var(--game-ui-safe-left)}.game-ui-shell[data-layout=mobile] .game-ui-shell-movement{bottom:calc(var(--game-ui-safe-bottom) + 86px)}.game-ui-fact-list{flex-wrap:wrap;gap:8px;display:flex}.game-ui-fact-list[data-variant=stats]{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));display:grid}.game-ui-fact{border:1px solid color-mix(in srgb, var(--game-ui-text-on-dark) 32%, transparent);border-radius:var(--game-ui-radius-control);background:var(--game-ui-glass-night-soft);min-width:0;color:var(--game-ui-text-on-dark);box-shadow:var(--game-ui-shadow-button);backdrop-filter:blur(12px);align-items:center;gap:8px;padding:7px 9px;display:inline-flex}.game-ui-fact-list[data-density=dense] .game-ui-fact{min-height:38px;padding:5px 7px}.game-ui-fact-copy{gap:1px;min-width:0;display:grid}.game-ui-fact-copy small,.game-ui-fact-copy em{color:color-mix(in srgb, var(--game-ui-text-on-dark) 72%, transparent);font-size:var(--game-ui-font-xs);letter-spacing:.06em;text-transform:uppercase;font-style:normal;font-weight:820}.game-ui-fact-copy strong{color:var(--game-ui-text-on-dark);font-size:var(--game-ui-font-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.game-ui-action-grid{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.game-ui-action-grid-button{min-width:0}.game-ui-action-grid kbd,.game-ui-movement-button kbd{background:color-mix(in srgb, var(--game-ui-ink-deep) 12%, transparent);color:inherit;border-radius:8px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72em;font-weight:900}.game-ui-action-grid .game-ui-icon-button{width:48px;min-width:0;padding:0}.game-ui-action-grid[data-icon-label-mode=caption] .game-ui-icon-button{width:var(--game-ui-terrain-tool-hit-size,54px);min-height:calc(var(--game-ui-terrain-tool-hit-size,54px) + 14px);flex-direction:column;gap:2px;padding:5px 4px 4px;line-height:1}.game-ui-action-grid[data-icon-label-mode=caption] .game-ui-icon-button .game-ui-asset-icon{background:color-mix(in srgb, var(--game-ui-ink-deep) 8%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--game-ui-ink-deep) 8%, transparent);border-radius:999px;padding:2px}.game-ui-action-grid[data-icon-label-mode=caption] .game-ui-icon-button[aria-pressed=true] .game-ui-asset-icon{background:color-mix(in srgb, var(--game-ui-panel-strong) 32%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--game-ui-ink-deep) 12%, transparent)}.game-ui-action-grid-caption{max-width:100%;color:var(--game-ui-text-muted);letter-spacing:.015em;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;font-weight:920;line-height:1;display:block;overflow:hidden}.game-ui-action-grid .game-ui-icon-button[aria-pressed=true] .game-ui-action-grid-caption{color:var(--game-ui-text)}.game-ui-movement-pad{border:var(--game-ui-stroke);border-radius:var(--game-ui-radius-modal);background:color-mix(in srgb, var(--game-ui-panel-strong) 82%, transparent);width:fit-content;box-shadow:var(--game-ui-shadow-panel);backdrop-filter:blur(14px);gap:7px;padding:10px;display:grid}.game-ui-movement-pad:focus-visible{outline:3px solid var(--game-ui-focus-ring);outline-offset:3px}.game-ui-movement-pad-grid{grid-template-columns:repeat(3,48px);grid-template-areas:".forward.""left reset right"".backward.";gap:6px;display:grid}.game-ui-movement-pad[data-density=dense] .game-ui-movement-pad-grid{grid-template-columns:repeat(3,40px);gap:5px}.game-ui-movement-pad[data-layout=row] .game-ui-movement-pad-grid{flex-wrap:wrap;display:flex}.game-ui-movement-button{width:48px;min-width:0;padding:0}.game-ui-movement-pad[data-density=dense] .game-ui-movement-button{width:40px;min-height:40px}.game-ui-movement-button[data-direction=forward]{grid-area:forward}.game-ui-movement-button[data-direction=left]{grid-area:left}.game-ui-movement-button[data-direction=right]{grid-area:right}.game-ui-movement-button[data-direction=backward]{grid-area:backward}.game-ui-movement-button[data-direction=reset]{grid-area:reset}.game-ui-movement-pad p{max-width:18ch;color:var(--game-ui-text-muted);font-size:var(--game-ui-font-xs);margin:0;font-weight:760;line-height:1.25}.game-ui-asset-library{min-width:0;container:game-asset-library/inline-size}.game-ui-asset-library>section{gap:12px;min-width:0;display:grid}.game-ui-asset-library-subtitle{color:var(--game-ui-text-muted);font-size:var(--game-ui-font-sm);line-height:var(--game-ui-line-body);margin:0}.game-ui-asset-library-counts,.game-ui-asset-card-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.game-ui-asset-library-groups{gap:14px;min-width:0;display:grid}.game-ui-asset-library-group{gap:8px;min-width:0;display:grid}.game-ui-asset-library-group>header{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.game-ui-asset-library-group>header strong{min-width:0;color:var(--game-ui-text);font-family:var(--game-ui-font-display);font-weight:var(--game-ui-weight-title);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.game-ui-asset-library-grid{grid-template-columns:repeat(auto-fill, minmax(min(var(--game-ui-asset-card-min-width,168px), 100%), 1fr));gap:9px;display:grid}.game-ui-asset-library [data-density=dense] .game-ui-asset-library-grid{grid-template-columns:repeat(auto-fill, minmax(min(var(--game-ui-asset-card-dense-min-width,132px), 100%), 1fr))}.game-ui-asset-card{box-sizing:border-box;border:1px solid color-mix(in srgb, var(--game-ui-border-ink) 16%, transparent);border-radius:var(--game-ui-radius-panel);background:color-mix(in srgb, var(--game-ui-panel-strong) 90%, transparent);width:100%;min-width:0;color:var(--game-ui-text);text-align:left;box-shadow:var(--game-ui-shadow-button);cursor:pointer;transition:transform var(--game-ui-motion-fast) var(--game-ui-ease-pop), box-shadow var(--game-ui-motion-fast) var(--game-ui-ease-soft);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:10px;display:grid}@media (hover:hover){.game-ui-asset-card:hover{transform:translateY(-1px)}}.game-ui-asset-card:active{scale:.98}.game-ui-asset-card:focus-visible{outline:3px solid var(--game-ui-focus-ring);outline-offset:2px}.game-ui-asset-card:disabled{cursor:not-allowed;opacity:.62;transform:none}.game-ui-asset-card[aria-pressed=true]{border-color:var(--game-ui-secondary);box-shadow:var(--game-ui-shadow-button), 0 0 0 3px color-mix(in srgb, var(--game-ui-secondary) 22%, transparent)}.game-ui-asset-card-preview{box-sizing:border-box;background:color-mix(in srgb, var(--game-ui-ink-deep) 7%, transparent);width:64px;height:64px;box-shadow:var(--game-ui-shadow-inset);border-radius:18px;flex:none;place-items:center;display:grid;overflow:hidden}.game-ui-asset-card-preview img{object-fit:contain;width:100%;height:100%}.game-ui-asset-card-icon{width:min(100%, var(--game-ui-asset-icon-xl));height:min(100%, var(--game-ui-asset-icon-xl))}.game-ui-asset-card-copy{gap:5px;min-width:0;display:grid}.game-ui-asset-card-copy>strong{color:var(--game-ui-text);font-size:var(--game-ui-font-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.game-ui-asset-card-copy>span:not(.game-ui-asset-card-badges):not(.game-ui-asset-card-facts){color:var(--game-ui-text-muted);font-size:var(--game-ui-font-xs);line-height:1.3}.game-ui-asset-card-facts{flex-wrap:wrap;gap:5px;display:flex}.game-ui-asset-card-facts>span{background:color-mix(in srgb, var(--game-ui-ink-deep) 8%, transparent);border-radius:9px;padding:4px 6px;display:inline-grid}.game-ui-asset-card-facts small{color:var(--game-ui-text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.66rem;font-weight:820}.game-ui-asset-card-facts b{color:var(--game-ui-text);font-size:.76rem}.game-ui-asset-card[data-asset-source=generated]{border-color:color-mix(in srgb, var(--game-ui-secondary) 28%, transparent)}.game-ui-asset-card[data-asset-source=imported]{border-color:color-mix(in srgb, var(--game-ui-accent) 30%, transparent)}.game-ui-asset-card[data-asset-card-layout=rail],.game-ui-asset-library[data-card-layout=rail] .game-ui-asset-card{width:min(var(--game-ui-asset-rail-card-size,52px), 100%);min-width:0;min-height:min(var(--game-ui-asset-rail-card-size,52px), 100%);text-align:center;border-radius:20px;grid-template-columns:1fr;place-items:center;gap:0;padding:5px}.game-ui-asset-card[data-asset-card-layout=rail] .game-ui-asset-card-preview,.game-ui-asset-library[data-card-layout=rail] .game-ui-asset-card-preview{width:min(var(--game-ui-asset-rail-preview-size,42px), 100%);height:min(var(--game-ui-asset-rail-preview-size,42px), 100%);border-radius:15px;overflow:visible}.game-ui-asset-card[data-asset-card-layout=rail] .game-ui-asset-card-icon,.game-ui-asset-library[data-card-layout=rail] .game-ui-asset-card-icon{width:min(78%, var(--game-ui-asset-icon-lg));height:min(78%, var(--game-ui-asset-icon-lg))}.game-ui-asset-card[data-asset-card-layout=rail] .game-ui-asset-card-copy,.game-ui-asset-library[data-card-layout=rail] .game-ui-asset-card-copy{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.game-ui-asset-library[data-card-layout=rail]{padding:6px}.game-ui-asset-library[data-card-layout=rail]>h3,.game-ui-asset-library[data-card-layout=rail] .game-ui-asset-library-subtitle,.game-ui-asset-library[data-card-layout=rail] .game-ui-asset-library-counts,.game-ui-asset-library[data-card-layout=rail] .game-ui-asset-library-group>header{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.game-ui-asset-library[data-card-layout=rail]>section,.game-ui-asset-library[data-card-layout=rail] .game-ui-asset-library-groups,.game-ui-asset-library[data-card-layout=rail] .game-ui-asset-library-group,.game-ui-asset-library[data-card-layout=rail] .game-ui-asset-library-grid{grid-template-columns:1fr;justify-items:center;gap:8px;display:grid}@container game-asset-library (width<=180px){.game-ui-asset-library[data-card-layout=auto]{padding:6px}.game-ui-asset-library[data-card-layout=auto]>h3,.game-ui-asset-library[data-card-layout=auto] .game-ui-asset-library-subtitle,.game-ui-asset-library[data-card-layout=auto] .game-ui-asset-library-counts,.game-ui-asset-library[data-card-layout=auto] .game-ui-asset-library-group>header{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.game-ui-asset-library[data-card-layout=auto]>section,.game-ui-asset-library[data-card-layout=auto] .game-ui-asset-library-groups,.game-ui-asset-library[data-card-layout=auto] .game-ui-asset-library-group,.game-ui-asset-library[data-card-layout=auto] .game-ui-asset-library-grid{grid-template-columns:1fr;justify-items:center;gap:8px;display:grid}.game-ui-asset-library[data-card-layout=auto] .game-ui-asset-card{width:min(var(--game-ui-asset-rail-card-size,52px), 100%);min-width:0;min-height:min(var(--game-ui-asset-rail-card-size,52px), 100%);text-align:center;border-radius:20px;grid-template-columns:1fr;place-items:center;gap:0;padding:5px}.game-ui-asset-library[data-card-layout=auto] .game-ui-asset-card-preview{width:min(var(--game-ui-asset-rail-preview-size,42px), 100%);height:min(var(--game-ui-asset-rail-preview-size,42px), 100%);border-radius:15px;overflow:visible}.game-ui-asset-library[data-card-layout=auto] .game-ui-asset-card-icon{width:min(78%, var(--game-ui-asset-icon-lg));height:min(78%, var(--game-ui-asset-icon-lg))}.game-ui-asset-library[data-card-layout=auto] .game-ui-asset-card-copy{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.game-ui-placement-toolbar>div{gap:10px;display:grid}.game-ui-placement-toolbar .game-ui-progress{min-width:min(100%,260px)}.game-ui-placement-toolbar .game-ui-action-grid+.game-ui-action-grid{padding-top:2px}.game-ui-placement-toolbar [data-density=dense] .game-ui-fact-list{gap:6px}.game-ui-surface-pack-demo-scene{color:color-mix(in srgb, var(--game-ui-text-on-dark) 72%, transparent);letter-spacing:.08em;text-transform:uppercase;place-items:center;font-weight:900;display:grid;position:absolute;inset:0}.game-ui-surface-pack-demo-scene:before{aspect-ratio:1.7;border:4px solid color-mix(in srgb, var(--game-ui-text-on-dark) 22%, transparent);background:radial-gradient(ellipse at 50% 42%, var(--game-ui-scenery-wood-hi), var(--game-ui-scenery-wood-lo) 72%);width:min(46%,360px);box-shadow:var(--game-ui-shadow-scenery);content:"";border-radius:50%;position:absolute}.game-ui-surface-pack-demo-scene span{z-index:1;position:relative}.game-ui-terrain-build-toolbox{min-width:0;container:game-terrain-build/inline-size}.game-ui-terrain-build-toolbox>section,.game-ui-terrain-build-toolbox-body{gap:12px;min-width:0;display:grid}.game-ui-terrain-status{border:1px solid color-mix(in srgb, var(--game-ui-border-ink) 12%, transparent);border-radius:var(--game-ui-radius-card);background:color-mix(in srgb, var(--game-ui-panel-strong) 50%, transparent);gap:6px;padding:10px;display:grid}.game-ui-terrain-status p{color:var(--game-ui-text-muted);font-size:var(--game-ui-font-sm);line-height:var(--game-ui-line-body);margin:0}.game-ui-terrain-mode-control,.game-ui-terrain-tool-strip,.game-ui-brush-controls,.game-ui-material-swatches,.game-ui-undo-redo-actions,.game-ui-build-library{min-width:0}.game-ui-terrain-build-main-grid{grid-template-columns:minmax(0,1.1fr) auto minmax(240px,.9fr);align-items:start;gap:12px;display:grid}.game-ui-terrain-mode-options,.game-ui-build-categories{flex-wrap:wrap;gap:8px;display:flex}.game-ui-terrain-mode-option,.game-ui-build-category,.game-ui-material-swatch,.game-ui-build-item{border:1px solid color-mix(in srgb, var(--game-ui-border-ink) 16%, transparent);border-radius:var(--game-ui-radius-control);background:color-mix(in srgb, var(--game-ui-panel-strong) 82%, transparent);min-width:0;color:var(--game-ui-text);font:inherit;font-weight:var(--game-ui-weight-strong);cursor:pointer;box-shadow:var(--game-ui-shadow-button)}.game-ui-terrain-mode-option{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;min-height:44px;padding:6px 10px;display:inline-grid}.game-ui-terrain-mode-option>span,.game-ui-build-category>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.game-ui-terrain-mode-option small,.game-ui-build-category small,.game-ui-material-swatch-copy small,.game-ui-build-item-copy small{color:var(--game-ui-text-muted);font-size:var(--game-ui-font-xs);font-weight:760;line-height:1.2}.game-ui-terrain-mode-option[aria-pressed=true],.game-ui-build-category[aria-selected=true],.game-ui-material-swatch[aria-selected=true],.game-ui-build-item[aria-pressed=true]{border-color:var(--game-ui-secondary);background:color-mix(in srgb, var(--game-ui-secondary) 18%, transparent);box-shadow:var(--game-ui-shadow-button), 0 0 0 3px color-mix(in srgb, var(--game-ui-secondary) 20%, transparent)}.game-ui-terrain-mode-option:disabled,.game-ui-build-category:disabled,.game-ui-material-swatch:disabled,.game-ui-build-item:disabled{cursor:not-allowed;opacity:.58;transform:none}.game-ui-terrain-mode-option:focus-visible,.game-ui-build-category:focus-visible,.game-ui-material-swatch:focus-visible,.game-ui-build-item:focus-visible,.game-ui-brush-range:focus-visible,.game-ui-brush-number:focus-visible{outline:3px solid var(--game-ui-focus-ring);outline-offset:2px}.game-ui-terrain-tool-strip .game-ui-action-grid-button[aria-pressed=true]{box-shadow:var(--game-ui-shadow-button), 0 0 0 3px color-mix(in srgb, var(--game-ui-secondary) 24%, transparent)}.game-ui-brush-controls{gap:10px;display:grid}.game-ui-brush-control-row{grid-template-columns:minmax(120px, 1fr) var(--game-ui-brush-number-width);align-items:center;gap:8px;display:grid}.game-ui-brush-range{width:100%;accent-color:var(--game-ui-secondary)}.game-ui-brush-number{border:1px solid var(--game-ui-border-strong);background:var(--game-ui-surface-raised);width:100%;min-height:40px;color:var(--game-ui-text);font:inherit;font-weight:var(--game-ui-weight-strong);box-shadow:var(--game-ui-shadow-inset);border-radius:12px;padding:0 8px}.game-ui-material-swatch-grid{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;display:grid}.game-ui-material-swatch{grid-template-columns:var(--game-ui-terrain-swatch-size) minmax(0, 1fr);text-align:left;align-items:center;gap:8px;min-height:48px;padding:7px;display:grid}.game-ui-material-swatch-chip{width:var(--game-ui-terrain-swatch-size);height:var(--game-ui-terrain-swatch-size);border:2px solid color-mix(in srgb, var(--game-ui-panel-strong) 90%, transparent);background:var(--swatch-color);box-shadow:var(--game-ui-shadow-inset), 0 2px 8px color-mix(in srgb, var(--game-ui-ink-deep) 16%, transparent);border-radius:13px}.game-ui-material-swatch-chip[data-swatch-pattern=speckled]{background:radial-gradient(circle at 24% 28%, var(--swatch-secondary-color) 0 3px, transparent 3.5px), radial-gradient(circle at 70% 64%, color-mix(in srgb, var(--game-ui-panel-strong) 72%, transparent) 0 2px, transparent 2.5px), var(--swatch-color);background-size:18px 18px,16px 16px,auto}.game-ui-material-swatch-chip[data-swatch-pattern=hatched]{background:repeating-linear-gradient(135deg, var(--swatch-secondary-color) 0 3px, transparent 3px 8px), var(--swatch-color)}.game-ui-material-swatch-chip[data-swatch-pattern=grid]{background:linear-gradient(90deg, color-mix(in srgb, var(--game-ui-panel-strong) 50%, transparent) 1px, transparent 1px), linear-gradient(0deg, color-mix(in srgb, var(--game-ui-panel-strong) 42%, transparent) 1px, transparent 1px), var(--swatch-color);background-size:10px 10px}.game-ui-material-swatch-copy,.game-ui-build-item-copy{gap:2px;min-width:0;display:grid}.game-ui-material-swatch-copy strong,.game-ui-build-item-copy strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.game-ui-build-library>section{gap:10px;display:grid}.game-ui-build-category{text-align:left;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;min-height:42px;padding:6px 9px;display:inline-grid}.game-ui-build-items{grid-template-columns:repeat(auto-fill,minmax(min(168px,100%),1fr));gap:9px;display:grid}.game-ui-build-item{text-align:left;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:9px;width:100%;min-height:70px;padding:9px;display:grid}.game-ui-build-item-icon{background:color-mix(in srgb, var(--game-ui-ink-deep) 8%, transparent);width:42px;height:42px;box-shadow:var(--game-ui-shadow-inset);border-radius:14px;place-items:center;display:grid;overflow:hidden}.game-ui-build-item-preview{object-fit:contain;width:100%;height:100%}.game-ui-build-item-badges{flex-wrap:wrap;gap:5px;display:flex}.game-ui-build-item-copy>span:not(.game-ui-build-item-badges){color:var(--game-ui-text-muted);font-size:var(--game-ui-font-xs);line-height:1.25}.game-ui-compact-game-drawer{gap:8px;width:min(100%,360px);min-width:0;display:grid}.game-ui-compact-game-drawer[data-variant=small-mobile]{width:min(100%,320px)}.game-ui-compact-game-drawer-trigger{justify-self:start;max-width:100%}.game-ui-compact-game-drawer-panel{overscroll-behavior:contain;min-width:0;max-height:min(72dvh,520px);display:none;overflow:auto}.game-ui-compact-game-drawer[data-open=true] .game-ui-compact-game-drawer-panel{display:grid}.game-ui-compact-game-drawer .game-ui-panel{max-width:100%}.game-ui-terrain-build-toolbox[data-variant=dense] .game-ui-terrain-build-main-grid,.game-ui-terrain-build-toolbox-body[data-variant=dense] .game-ui-terrain-build-main-grid{grid-template-columns:minmax(0,1fr) auto}.game-ui-terrain-build-toolbox[data-variant=dense] .game-ui-brush-controls,.game-ui-terrain-build-toolbox-body[data-variant=dense] .game-ui-brush-controls{grid-column:1/-1}.game-ui-terrain-mode-control[data-variant=mobile] .game-ui-terrain-mode-options,.game-ui-terrain-mode-control[data-variant=small-mobile] .game-ui-terrain-mode-options{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.game-ui-terrain-tool-strip[data-variant=mobile] .game-ui-action-grid,.game-ui-terrain-tool-strip[data-variant=small-mobile] .game-ui-action-grid,.game-ui-undo-redo-actions .game-ui-action-grid{gap:6px}.game-ui-terrain-tool-strip[data-variant=mobile] .game-ui-action-grid .game-ui-icon-button,.game-ui-terrain-tool-strip[data-variant=small-mobile] .game-ui-action-grid .game-ui-icon-button,.game-ui-undo-redo-actions .game-ui-action-grid .game-ui-icon-button{width:var(--game-ui-terrain-tool-hit-size);min-height:var(--game-ui-terrain-tool-hit-size)}.game-ui-terrain-tool-strip[data-icon-label-mode=caption] .game-ui-action-grid .game-ui-icon-button{min-height:calc(var(--game-ui-terrain-tool-hit-size) + 14px)}.game-ui-terrain-tool-strip[data-variant=mobile] .game-ui-action-grid kbd,.game-ui-terrain-tool-strip[data-variant=small-mobile] .game-ui-action-grid kbd,.game-ui-undo-redo-actions .game-ui-action-grid kbd{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.game-ui-material-swatches[data-variant=small-mobile] .game-ui-material-swatch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.game-ui-material-swatches[data-variant=small-mobile] .game-ui-material-swatch{grid-template-columns:30px minmax(0,1fr);min-height:44px}.game-ui-material-swatches[data-variant=small-mobile] .game-ui-material-swatch-chip{width:30px;height:30px}.game-ui-build-library[data-variant=small-mobile] .game-ui-build-categories{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.game-ui-build-items[data-card-layout=rail]{grid-template-columns:repeat(auto-fill, minmax(var(--game-ui-build-rail-card-size), 1fr));justify-items:start}.game-ui-build-items[data-card-layout=rail] .game-ui-build-item{width:var(--game-ui-build-rail-card-size);min-height:var(--game-ui-build-rail-card-size);grid-template-columns:1fr;place-items:center;padding:5px}.game-ui-build-items[data-card-layout=rail] .game-ui-build-item-icon{width:42px;height:42px}.game-ui-build-items[data-card-layout=rail] .game-ui-build-item-copy{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@container game-terrain-build (width<=560px){.game-ui-terrain-build-main-grid{grid-template-columns:minmax(0,1fr)}.game-ui-undo-redo-actions{justify-self:start}.game-ui-brush-control-row{grid-template-columns:minmax(0,1fr) 70px}.game-ui-build-items{grid-template-columns:repeat(auto-fill,minmax(min(140px,100%),1fr))}}@media (prefers-reduced-motion:reduce){.game-ui-terrain-mode-option,.game-ui-build-category,.game-ui-material-swatch,.game-ui-build-item{transition:none}}@media (width<=900px){.game-ui-shell{min-height:640px}.game-ui-shell-library,.game-ui-shell-side-panel{top:auto;right:var(--game-ui-safe-right);bottom:calc(var(--game-ui-safe-bottom) + 78px);left:var(--game-ui-safe-left);width:auto;max-height:min(48dvh,320px)}.game-ui-shell-bottom-bar{left:var(--game-ui-safe-left)}.game-ui-shell-movement{bottom:calc(var(--game-ui-safe-bottom) + 86px)}.game-ui-asset-library-grid{grid-template-columns:repeat(auto-fill,minmax(136px,1fr))}}@media (width<=900px) and (height<=500px) and (orientation:landscape){.game-ui-shell{min-height:390px}.game-ui-shell-library{top:calc(var(--game-ui-safe-top) + 58px);right:var(--game-ui-safe-right);bottom:calc(var(--game-ui-safe-bottom) + 70px);width:min(300px,46vw);left:auto}.game-ui-shell-bottom-bar{left:max(132px, var(--game-ui-safe-left))}.game-ui-asset-card-preview{width:48px;height:48px}.game-ui-asset-card-copy>span:not(.game-ui-asset-card-badges):not(.game-ui-asset-card-facts),.game-ui-asset-card-facts{display:none}}.game-ui-contractor-panel{min-width:0;container:game-contractor-panel/inline-size}.game-ui-contractor-panel>section,.game-ui-contractor-panel[data-variant=mobile],.game-ui-contractor-panel[data-variant=small-mobile]{gap:12px;min-width:0;display:grid}.game-ui-contractor-panel-subtitle{color:var(--game-ui-text-muted);font-size:var(--game-ui-font-sm);line-height:var(--game-ui-line-body);margin:0}.game-ui-contractor-panel-grid{grid-template-columns:minmax(300px,.92fr) minmax(320px,1.08fr);align-items:start;gap:12px;display:grid}.game-ui-contractor-job-list,.game-ui-contractor-detail,.game-ui-compact-job-drawer-list{gap:10px;min-width:0;display:grid}.game-ui-contractor-job-list{overscroll-behavior:contain;max-height:min(68dvh,620px);padding-right:2px;overflow:auto}.game-ui-contractor-detail{border:1px solid color-mix(in srgb, var(--game-ui-border-ink) 12%, transparent);border-radius:var(--game-ui-radius-panel);background:color-mix(in srgb, var(--game-ui-panel-strong) 46%, transparent);padding:12px}.game-ui-contractor-panel[data-variant=mobile],.game-ui-contractor-panel[data-variant=small-mobile]{width:min(100%,420px)}.game-ui-construction-job-card{border:1px solid color-mix(in srgb, var(--game-ui-border-ink) 16%, transparent);border-radius:var(--game-ui-radius-panel);background:color-mix(in srgb, var(--game-ui-panel-strong) 88%, transparent);min-width:0;box-shadow:var(--game-ui-shadow-panel);gap:10px;padding:12px;display:grid}.game-ui-construction-job-card[data-selected=true]{border-color:var(--game-ui-secondary);box-shadow:var(--game-ui-shadow-panel), 0 0 0 3px color-mix(in srgb, var(--game-ui-secondary) 20%, transparent)}.game-ui-construction-job-card[data-status=blocked]{border-color:color-mix(in srgb, var(--game-ui-danger) 34%, transparent)}.game-ui-construction-job-card[data-status=readyForReview]{border-color:color-mix(in srgb, var(--game-ui-success) 36%, transparent)}.game-ui-construction-job-card[data-density=dense]{gap:8px;padding:10px}.game-ui-construction-job-header{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;display:grid}.game-ui-construction-job-select{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;padding:0;display:inline-grid}.game-ui-construction-job-select:disabled{cursor:default}.game-ui-construction-job-select:focus-visible{outline:3px solid var(--game-ui-focus-ring);outline-offset:3px;border-radius:14px}.game-ui-construction-job-select span,.game-ui-robot-crew-copy{gap:2px;min-width:0;display:grid}.game-ui-construction-job-select strong,.game-ui-robot-crew-copy strong{min-width:0;color:var(--game-ui-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.game-ui-construction-job-select small,.game-ui-robot-crew-copy small,.game-ui-robot-crew-copy em,.game-ui-construction-steps small,.game-ui-construction-warning small,.game-ui-before-after-preview figcaption{color:var(--game-ui-text-muted);font-size:var(--game-ui-font-xs);font-style:normal;line-height:1.25}.game-ui-construction-job-badges,.game-ui-construction-approval-meta{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.game-ui-construction-job-facts{flex-wrap:wrap;gap:6px;display:flex}.game-ui-construction-job-facts>span{background:color-mix(in srgb, var(--game-ui-ink-deep) 8%, transparent);border-radius:10px;gap:1px;min-width:82px;padding:6px 8px;display:inline-grid}.game-ui-construction-job-facts small{color:var(--game-ui-text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.66rem;font-weight:860}.game-ui-construction-job-facts b{min-width:0;color:var(--game-ui-text);font-size:var(--game-ui-font-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.game-ui-construction-progress{gap:8px;min-width:0;display:grid}.game-ui-construction-progress-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.game-ui-construction-progress-header>span{align-items:center;gap:7px;min-width:0;display:inline-flex}.game-ui-construction-progress-header strong{min-width:0;color:var(--game-ui-text);font-size:var(--game-ui-font-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.game-ui-construction-steps{gap:6px;margin:0;padding:0;list-style:none;display:grid}.game-ui-construction-steps li{background:color-mix(in srgb, var(--game-ui-ink-deep) 6%, transparent);border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 8px;display:grid}.game-ui-construction-step-dot{background:var(--game-ui-disabled);width:11px;height:11px;box-shadow:0 0 0 3px color-mix(in srgb, var(--game-ui-ink-deep) 8%, transparent);border-radius:999px}.game-ui-construction-steps li[data-step-status=active] .game-ui-construction-step-dot{background:var(--game-ui-secondary)}.game-ui-construction-steps li[data-step-status=complete] .game-ui-construction-step-dot{background:var(--game-ui-success)}.game-ui-construction-steps li[data-step-status=blocked] .game-ui-construction-step-dot{background:var(--game-ui-danger)}.game-ui-construction-steps strong{min-width:0;color:var(--game-ui-text);font-size:var(--game-ui-font-xs);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.game-ui-construction-warnings{gap:6px;display:grid}.game-ui-construction-warning{border:1px solid color-mix(in srgb, var(--game-ui-accent) 28%, transparent);background:color-mix(in srgb, var(--game-ui-warning) 16%, transparent);border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:7px;padding:8px;display:grid}.game-ui-construction-warning>span{gap:2px;min-width:0;display:grid}.game-ui-construction-warning[data-warning-tone=danger]{border-color:color-mix(in srgb, var(--game-ui-danger) 34%, transparent);background:color-mix(in srgb, var(--game-ui-danger) 13%, transparent)}.game-ui-construction-warning[data-warning-tone=success]{border-color:color-mix(in srgb, var(--game-ui-success) 34%, transparent);background:color-mix(in srgb, var(--game-ui-success-bright) 18%, transparent)}.game-ui-construction-warning strong{color:var(--game-ui-text);font-size:var(--game-ui-font-xs)}.game-ui-construction-approval-bar{border-top:1px solid color-mix(in srgb, var(--game-ui-border-ink) 10%, transparent);gap:8px;min-width:0;padding-top:8px;display:grid}.game-ui-construction-approval-bar .game-ui-action-grid{gap:7px}.game-ui-construction-approval-bar[data-variant=small-mobile] .game-ui-button{min-height:40px;font-size:var(--game-ui-font-xs);padding:0 10px}.game-ui-robot-crew-status{gap:8px;min-width:0;display:grid}.game-ui-robot-crew-status>header strong{color:var(--game-ui-text);font-family:var(--game-ui-font-display);font-weight:var(--game-ui-weight-title)}.game-ui-robot-crew-list{gap:7px;display:grid}.game-ui-robot-crew-member{background:color-mix(in srgb, var(--game-ui-ink-deep) 7%, transparent);border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.game-ui-robot-crew-member[data-crew-status=working]{background:color-mix(in srgb, var(--game-ui-secondary) 11%, transparent)}.game-ui-robot-crew-member[data-crew-status=blocked]{background:color-mix(in srgb, var(--game-ui-danger) 10%, transparent)}.game-ui-before-after-toggle{gap:8px;min-width:0;display:grid}.game-ui-before-after-toggle .game-ui-segmented{width:fit-content;max-width:100%}.game-ui-before-after-preview{gap:7px;min-width:0;margin:0;display:grid}.game-ui-before-after-content,.game-ui-before-after-placeholder{border:1px solid color-mix(in srgb, var(--game-ui-border-ink) 12%, transparent);border-radius:var(--game-ui-radius-panel);background:radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--game-ui-success-bright) 18%, transparent), transparent 8rem), color-mix(in srgb, var(--game-ui-ink-deep) 8%, transparent);place-items:center;min-height:160px;display:grid;overflow:hidden}.game-ui-before-after-placeholder{color:var(--game-ui-text-muted)}.game-ui-construction-preview-card{text-align:center;place-items:center;gap:6px;width:100%;height:100%;padding:18px;display:grid}.game-ui-construction-preview-card strong{color:var(--game-ui-text);font-family:var(--game-ui-font-display);font-size:var(--game-ui-font-lg)}.game-ui-construction-preview-card small{color:var(--game-ui-text-muted);font-size:var(--game-ui-font-xs);text-transform:uppercase;font-weight:820}.game-ui-construction-preview-card[data-preview=after]{background:radial-gradient(circle at 50% 58%, color-mix(in srgb, var(--game-ui-success) 30%, transparent), transparent 7rem)}.game-ui-construction-preview-card[data-preview=before]{background:radial-gradient(circle at 50% 58%, color-mix(in srgb, var(--game-ui-accent) 22%, transparent), transparent 7rem)}.game-ui-compact-job-drawer .game-ui-compact-game-drawer{width:100%}.game-ui-compact-job-drawer,.game-ui-compact-job-drawer .game-ui-compact-game-drawer,.game-ui-compact-job-drawer-list,.game-ui-compact-job-drawer-list>*{box-sizing:border-box;min-width:0;max-width:100%}.game-ui-compact-job-drawer-list{max-height:min(58dvh,440px);padding:2px;overflow:auto}.game-ui-contractor-panel[data-variant=small-mobile] .game-ui-construction-job-header,.game-ui-contractor-panel[data-variant=mobile] .game-ui-construction-job-header{grid-template-columns:minmax(0,1fr)}.game-ui-contractor-panel[data-variant=small-mobile] .game-ui-construction-job-badges,.game-ui-contractor-panel[data-variant=mobile] .game-ui-construction-job-badges{justify-content:flex-start}.game-ui-contractor-panel[data-variant=small-mobile] .game-ui-construction-steps{display:none}.game-ui-contractor-panel[data-variant=small-mobile] .game-ui-before-after-content,.game-ui-contractor-panel[data-variant=small-mobile] .game-ui-before-after-placeholder{min-height:118px}@container game-contractor-panel (width<=760px){.game-ui-contractor-panel-grid{grid-template-columns:minmax(0,1fr)}.game-ui-contractor-job-list{max-height:none;padding-right:0;overflow:visible}.game-ui-contractor-detail{padding:10px}}@media (width<=900px){.game-ui-contractor-panel-grid{grid-template-columns:minmax(0,1fr)}.game-ui-construction-job-facts>span{min-width:min(108px,100%)}}@media (prefers-reduced-motion:reduce){.game-ui-clay-preview *,.game-ui-clay-preview :before,.game-ui-clay-preview :after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.game-ui-button:hover,.game-ui-icon-button:hover,.game-ui-language-trigger:hover,.game-ui-language-popover button:hover,.game-ui-stage-tile:hover,.game-ui-orientation-card button:hover,.game-ui-asset-card:hover{transform:none}}.game-ui-button:focus-visible,.game-ui-icon-button:focus-visible,.game-ui-tab:focus-visible,.game-ui-segmented-option:focus-visible,.game-ui-toggle:focus-visible,.game-ui-language-trigger:focus-visible,.game-ui-language-popover button:focus-visible,.game-ui-stage-tile:focus-visible,.game-ui-orientation-card button:focus-visible,.game-ui-collapsible-toggle:focus-visible,.game-ui-construction-job-select:focus-visible{outline:3px solid var(--game-ui-focus-ring);outline-offset:2px}.game-ui-window-body,.game-ui-contractor-job-list,.game-ui-compact-job-drawer-list,.game-ui-compact-game-drawer-panel,.game-ui-shell-library,.game-ui-shell-side-panel,.game-ui-modal-frame{scrollbar-width:thin;scrollbar-color:var(--game-ui-border-strong) transparent}.game-ui-panel ::selection,.game-ui-modal-frame ::selection,.game-ui-window ::selection,.game-ui-collapsible ::selection,.game-ui-dialog ::selection{background:color-mix(in srgb, var(--game-ui-accent) 28%, transparent)}.game-ui-button,.game-ui-icon-button,.game-ui-tab,.game-ui-segmented-option,.game-ui-toggle,.game-ui-language-trigger,.game-ui-language-popover button,.game-ui-stage-tile,.game-ui-orientation-card button,.game-ui-collapsible-toggle,.game-ui-window-button,.game-ui-movement-button,.game-ui-asset-card,.game-ui-terrain-mode-option,.game-ui-build-category,.game-ui-material-swatch,.game-ui-build-item,.game-ui-brush-range,.game-ui-construction-job-select,.game-ui-checkbox,.game-ui-card-fan-card{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.game-ui-movement-pad,.game-ui-placement-toolbar,.game-ui-terrain-tool-strip,.game-ui-hud,.game-ui-hud-actions,.swimmer-first-session-controls{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.game-ui-collapsible{border:var(--game-ui-stroke);border-radius:var(--game-ui-radius-panel);background:var(--game-ui-panel);min-width:0;box-shadow:var(--game-ui-shadow-panel);display:grid}.game-ui-collapsible[data-panel-tone=strong]{background:var(--game-ui-panel-strong)}.game-ui-collapsible-header{align-items:center;gap:8px;padding:5px 8px 5px 5px;display:flex}.game-ui-collapsible-heading{flex:1;min-width:0;margin:0;display:flex}.game-ui-collapsible-toggle{border-radius:var(--game-ui-radius-card);min-width:0;min-height:44px;color:var(--game-ui-text);font:inherit;font-family:var(--game-ui-font-display);font-weight:var(--game-ui-weight-title);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:10px;padding:4px 10px;display:flex}@media (hover:hover){.game-ui-collapsible-toggle:hover{background:color-mix(in srgb, var(--game-ui-ink-deep) 6%, transparent)}}.game-ui-collapsible-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.game-ui-collapsible-chevron{border-right:3px solid var(--game-ui-accent);border-bottom:3px solid var(--game-ui-accent);width:9px;height:9px;transition:transform var(--game-ui-motion-base) var(--game-ui-ease-pop), margin-top var(--game-ui-motion-base) var(--game-ui-ease-pop);border-radius:1px;flex:none;margin-top:-4px;transform:rotate(45deg)}.game-ui-collapsible[data-open=false] .game-ui-collapsible-chevron{margin-top:2px;transform:rotate(-45deg)}.game-ui-collapsible-actions{flex:none;align-items:center;gap:6px;display:inline-flex}.game-ui-collapsible-region{transition:grid-template-rows var(--game-ui-motion-base) var(--game-ui-ease-soft);grid-template-rows:1fr;display:grid}.game-ui-collapsible[data-open=false] .game-ui-collapsible-region{grid-template-rows:0fr}.game-ui-collapsible-clip{min-height:0;overflow:hidden}.game-ui-collapsible-content{gap:12px;padding:2px 14px 14px;display:grid}.game-ui-window{border:var(--game-ui-stroke);border-radius:var(--game-ui-radius-panel);background:var(--game-ui-panel);width:min(420px,100%);min-width:0;box-shadow:var(--game-ui-shadow-panel);interpolate-size:allow-keywords;transition:width var(--game-ui-motion-base) var(--game-ui-ease-soft), border-radius var(--game-ui-motion-base) var(--game-ui-ease-soft), box-shadow var(--game-ui-motion-base) var(--game-ui-ease-soft);grid-template-rows:auto 1fr;display:grid;position:relative;overflow:hidden}.game-ui-window-titlebar{border-bottom:var(--game-ui-stroke);background:color-mix(in srgb, var(--game-ui-ink-deep) 5%, transparent);align-items:center;gap:8px;min-height:48px;padding:6px 8px 6px 14px;display:flex}.game-ui-window-icon{flex:none;place-items:center;display:inline-grid}.game-ui-window-title{min-width:0;color:var(--game-ui-text);font-family:var(--game-ui-font-display);font-size:var(--game-ui-font-md);font-weight:var(--game-ui-weight-title);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;overflow:hidden}.game-ui-window-actions{flex:none;align-items:center;gap:6px;display:inline-flex}.game-ui-window-button{width:34px;min-width:34px;min-height:34px;padding:0}.game-ui-window-region{min-height:0;transition:grid-template-rows var(--game-ui-motion-base) var(--game-ui-ease-soft);grid-template-rows:1fr;display:grid}.game-ui-window-clip{min-height:0;display:grid;overflow:hidden}.game-ui-window-body{overscroll-behavior:contain;min-height:0;padding:12px 14px;overflow:auto}.game-ui-window-footer{border-top:var(--game-ui-stroke);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:10px 14px;display:flex}.game-ui-window[data-window-state=minimized]{border-radius:var(--game-ui-radius-control);width:fit-content;max-width:100%}.game-ui-window[data-window-state=minimized] .game-ui-window-region{grid-template-rows:0fr}.game-ui-window[data-window-state=minimized] .game-ui-window-titlebar{background:0 0;border-bottom-color:#0000}.game-ui-window[data-window-state=maximized]{inset:var(--game-ui-safe-top) var(--game-ui-safe-right) var(--game-ui-safe-bottom) var(--game-ui-safe-left);z-index:var(--game-ui-z-overlay);width:auto;animation:game-ui-pop var(--game-ui-motion-base) var(--game-ui-ease-pop) both;position:absolute}.game-ui-window[data-window-state=maximized] .game-ui-window-body{max-height:none}.game-ui-modal{background:0 0;border:0;max-width:min(560px,100vw - 32px);margin:auto;padding:0;overflow:visible}.game-ui-modal[data-size=sm]{max-width:min(380px,100vw - 32px)}.game-ui-modal[data-size=lg]{max-width:min(780px,100vw - 32px)}.game-ui-modal::backdrop{background:var(--game-ui-scrim-strong);backdrop-filter:blur(8px)}.game-ui-modal-frame{overscroll-behavior:contain;border:var(--game-ui-stroke);border-radius:var(--game-ui-radius-modal);background:var(--game-ui-panel-strong);max-height:min(82dvh,720px);color:var(--game-ui-text);box-shadow:var(--game-ui-shadow-modal);gap:12px;padding:clamp(16px,2.5vw,24px);display:grid;overflow:auto}.game-ui-modal[open] .game-ui-modal-frame{animation:game-ui-pop var(--game-ui-motion-base) var(--game-ui-ease-pop) both}.game-ui-modal-header{align-items:center;gap:10px;display:flex}.game-ui-modal-title{min-width:0;color:var(--game-ui-ink-heading);font-family:var(--game-ui-font-display);font-weight:var(--game-ui-weight-title);flex:1;margin:0}.game-ui-modal-body{min-width:0;color:var(--game-ui-text)}.game-ui-modal-footer{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}@media (prefers-reduced-motion:reduce){.game-ui-collapsible-region,.game-ui-collapsible-chevron,.game-ui-window,.game-ui-window-region{transition:none}.game-ui-window[data-window-state=maximized],.game-ui-modal[open] .game-ui-modal-frame{animation:none}}}
@@ -0,0 +1,36 @@
1
+ /*
2
+ * OPTIONAL Tailwind v4 bridge — NOT part of styles.css.
3
+ *
4
+ * Only import this file if the consuming app uses Tailwind v4 and wants
5
+ * Tailwind theme names (bg-primary, text-foreground, rounded-md…) to
6
+ * resolve to SwimmerUIKit tokens:
7
+ *
8
+ * import '@pieai/swimmer-ui-kit/styles.css';
9
+ * import '@pieai/swimmer-ui-kit/tailwind.css'; // Tailwind users only
10
+ *
11
+ * It must go through the consumer's Tailwind build (@tailwindcss/vite or
12
+ * the tailwindcss PostCSS plugin). Non-Tailwind consumers must NOT import
13
+ * it — plain CSS pipelines treat @theme as an unknown at-rule.
14
+ *
15
+ * styles.css stays 100% standard CSS on purpose (guard-tested), so the kit
16
+ * itself never requires Tailwind anywhere.
17
+ */
18
+ @theme inline {
19
+ --font-sans: var(--game-ui-font-body);
20
+ --color-background: var(--game-ui-bg);
21
+ --color-foreground: var(--game-ui-text);
22
+ --color-card: var(--game-ui-panel);
23
+ --color-card-foreground: var(--game-ui-text);
24
+ --color-muted: var(--game-ui-surface);
25
+ --color-muted-foreground: var(--game-ui-text-muted);
26
+ --color-primary: var(--game-ui-accent);
27
+ --color-primary-foreground: var(--game-ui-accent-contrast);
28
+ --color-secondary: var(--game-ui-secondary);
29
+ --color-secondary-foreground: var(--game-ui-accent-contrast);
30
+ --color-border: var(--game-ui-border-subtle);
31
+ --color-input: var(--game-ui-surface-raised);
32
+ --color-ring: var(--game-ui-focus-ring);
33
+ --radius-sm: var(--game-ui-radius-control);
34
+ --radius-md: var(--game-ui-radius-card);
35
+ --radius-lg: var(--game-ui-radius-panel);
36
+ }
package/package.json ADDED
@@ -0,0 +1,93 @@
1
+ {
2
+ "name": "@pieai/swimmer-ui-kit",
3
+ "version": "1.0.0",
4
+ "description": "Token-driven React game UI kit for web and wrapped PieAI game surfaces.",
5
+ "keywords": [
6
+ "react",
7
+ "game-ui",
8
+ "design-system",
9
+ "typescript",
10
+ "webview"
11
+ ],
12
+ "homepage": "https://github.com/PieAIStudio/SwimmerUIKit#readme",
13
+ "bugs": {
14
+ "url": "https://github.com/PieAIStudio/SwimmerUIKit/issues"
15
+ },
16
+ "author": "PieAI <PIEAI@hotmail.com>",
17
+ "type": "module",
18
+ "engines": {
19
+ "node": ">=24 <25"
20
+ },
21
+ "license": "SEE LICENSE IN LICENSE",
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "git+https://github.com/PieAIStudio/SwimmerUIKit.git"
25
+ },
26
+ "publishConfig": {
27
+ "access": "public",
28
+ "registry": "https://registry.npmjs.org"
29
+ },
30
+ "files": [
31
+ "dist",
32
+ "CHANGELOG.md",
33
+ "LICENSE"
34
+ ],
35
+ "types": "./dist/index.d.ts",
36
+ "exports": {
37
+ ".": {
38
+ "types": "./dist/index.d.ts",
39
+ "default": "./dist/index.js"
40
+ },
41
+ "./styles.css": "./dist/styles.css",
42
+ "./tailwind.css": "./dist/tailwind.css",
43
+ "./package.json": "./package.json"
44
+ },
45
+ "sideEffects": [
46
+ "*.css"
47
+ ],
48
+ "peerDependencies": {
49
+ "react": ">=19.0.0",
50
+ "react-dom": ">=19.0.0"
51
+ },
52
+ "devDependencies": {
53
+ "@chromatic-com/storybook": "^5.2.1",
54
+ "@microsoft/api-extractor": "^7.58.9",
55
+ "@pieai/doc-gov": "0.3.17",
56
+ "@pieai/pro-gov": "0.3.17",
57
+ "@storybook/addon-a11y": "^10.4.6",
58
+ "@storybook/addon-docs": "^10.4.6",
59
+ "@storybook/addon-mcp": "^0.6.0",
60
+ "@storybook/addon-vitest": "^10.4.6",
61
+ "@storybook/react-vite": "^10.4.6",
62
+ "@types/node": "^24.10.1",
63
+ "@types/react": "^19.2.7",
64
+ "@types/react-dom": "^19.2.3",
65
+ "@vitejs/plugin-react": "^5.1.1",
66
+ "@vitest/browser-playwright": "^4.0.15",
67
+ "@vitest/coverage-v8": "^4.0.15",
68
+ "lefthook": "^2.1.9",
69
+ "lightningcss": "^1.32.0",
70
+ "playwright": "^1.61.1",
71
+ "react": "^19.2.1",
72
+ "react-dom": "^19.2.1",
73
+ "storybook": "^10.4.6",
74
+ "typescript": "^5.9.3",
75
+ "vite": "^7.2.6",
76
+ "vite-plugin-dts": "^5.0.3",
77
+ "vitest": "^4.0.15"
78
+ },
79
+ "scripts": {
80
+ "dev": "vite --host 127.0.0.1 --port 5174",
81
+ "typecheck": "tsc -p tsconfig.json --noEmit",
82
+ "build": "vite build && node scripts/build-css.mjs && cp src/tailwind-bridge.css dist/tailwind.css && find dist -name '.DS_Store' -delete",
83
+ "build:site": "vite build --config vite.config.site.ts",
84
+ "preview:site": "vite preview --config vite.config.site.ts --host 127.0.0.1 --port 4175",
85
+ "test": "vitest run",
86
+ "storybook": "storybook dev -p 6006",
87
+ "build-storybook": "storybook build",
88
+ "build:deploy": "pnpm run build:site && pnpm run build-storybook && rm -rf site-dist/storybook && cp -r storybook-static site-dist/storybook",
89
+ "doc-gov": "doc-gov",
90
+ "pro-gov": "pro-gov",
91
+ "docs:check": "pnpm pro-gov doctor --strict-hooks && pnpm doc-gov router-check && pnpm doc-gov check && pnpm doc-gov scan --check && pnpm doc-gov links && pnpm doc-gov audit && pnpm doc-gov doctor"
92
+ }
93
+ }