@cyberskill/design 2.7.0 → 2.9.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 (390) hide show
  1. package/DESIGN.md +8 -8
  2. package/README.md +15 -9
  3. package/SECURITY.md +4 -4
  4. package/SKILL.md +1 -1
  5. package/THIRD-PARTY-NOTICES.md +1 -1
  6. package/VERSION +1 -1
  7. package/_ds_bundle.js +2 -2
  8. package/_ds_bundle.js.map +1 -1
  9. package/_ds_manifest.json +210 -200
  10. package/_esm/cs.mjs +2 -2
  11. package/base/a11y.css +18 -2
  12. package/base/ai.css +2 -2
  13. package/base/collections.css +6 -2
  14. package/base/components.css +107 -20
  15. package/base/controls.css +59 -31
  16. package/base/data.css +17 -5
  17. package/base/feedback.css +8 -0
  18. package/base/forms.css +7 -4
  19. package/base/glass.css +95 -0
  20. package/base/navigation.css +9 -1
  21. package/base/responsive.css +9 -4
  22. package/components/contracts.json +202 -62
  23. package/components/css-index.json +145 -41
  24. package/components/data/data.card.html +1 -1
  25. package/components/prompt-api.json +2 -2
  26. package/components/release-compatibility.json +1 -1
  27. package/components/specifications.json +204 -64
  28. package/components/static-html-reference.json +20 -20
  29. package/dist/esm/build.json +1 -1
  30. package/dist/styles.css +389 -89
  31. package/dist/styles.min.css +1 -1
  32. package/docs/UPSTREAM.md +3 -6
  33. package/docs/benchmark-rubric.md +1 -1
  34. package/docs/browser-support.md +1 -1
  35. package/docs/component-api.md +1 -1
  36. package/docs/consuming.md +1 -1
  37. package/docs/contrast-report.md +8 -8
  38. package/docs/conventions.md +5 -5
  39. package/docs/decisions.md +3 -3
  40. package/docs/deploy.md +2 -2
  41. package/docs/design-styles.md +9 -8
  42. package/docs/doctrine.md +1 -1
  43. package/docs/four-axes.md +3 -3
  44. package/docs/quality-gates.md +3 -1
  45. package/docs/reference-catalog.json +59 -59
  46. package/docs/release-notes.md +30 -2
  47. package/docs/static-html-reference.md +18 -18
  48. package/docs/storybook.md +1 -1
  49. package/docs/template-inventory.json +35 -35
  50. package/docs/vi/UPSTREAM.md +3 -6
  51. package/docs/vi/benchmark-rubric.md +1 -1
  52. package/docs/vi/browser-support.md +1 -1
  53. package/docs/vi/component-api.md +1 -1
  54. package/docs/vi/consuming.md +1 -1
  55. package/docs/vi/contrast-report.md +8 -8
  56. package/docs/vi/conventions.md +5 -5
  57. package/docs/vi/decisions.md +3 -3
  58. package/docs/vi/deploy.md +2 -2
  59. package/docs/vi/design-styles.md +9 -8
  60. package/docs/vi/doctrine.md +1 -1
  61. package/docs/vi/entrypoints/CONTRIBUTING.md +9 -2
  62. package/docs/vi/entrypoints/DESIGN.md +8 -8
  63. package/docs/vi/entrypoints/README.md +15 -9
  64. package/docs/vi/entrypoints/SKILL.md +1 -1
  65. package/docs/vi/entrypoints/llms.txt +1 -1
  66. package/docs/vi/four-axes.md +3 -3
  67. package/docs/vi/quality-gates.md +3 -1
  68. package/docs/vi/release-notes.md +30 -2
  69. package/docs/vi/static-html-reference.md +18 -18
  70. package/docs/vi/storybook.md +1 -1
  71. package/guidance/agent-contract.json +3 -3
  72. package/guidelines/atomic-view.html +7 -7
  73. package/guidelines/brand-imagery.html +1 -1
  74. package/guidelines/colors-surfaces.html +4 -4
  75. package/guidelines/colors-text.html +4 -4
  76. package/guidelines/elements-components.html +3 -3
  77. package/guidelines/elements-concept.html +1 -1
  78. package/guidelines/guideline-language.js +1 -1
  79. package/guidelines/motion.html +4 -4
  80. package/guidelines/responsive-bilingual.html +4 -4
  81. package/llms.txt +1 -1
  82. package/package.json +11 -10
  83. package/styles/components/manifest.json +184 -140
  84. package/styles.layered.css +245 -59
  85. package/styles.layered.provenance.json +16 -16
  86. package/templates/_vendor/doc-export.js +8 -1
  87. package/templates/ai-cluster-demo.html +2 -2
  88. package/templates/app-shell/AppShell.dc.html +2 -2
  89. package/templates/bod-deck/BodDeck.dc.html +3 -3
  90. package/templates/bod-investor-update/BodInvestorUpdate.dc.html +1 -1
  91. package/templates/dashboard/Dashboard.dc.html +2 -2
  92. package/templates/delivery-qbr-deck/DeliveryQbrDeck.dc.html +2 -2
  93. package/templates/delivery-status-email/DeliveryStatusEmail.dc.html +1 -1
  94. package/templates/email/Email-VN-standalone.html +2 -2
  95. package/templates/email-safe/email-announcement.html +5 -5
  96. package/templates/email-safe/email-dunning.html +5 -5
  97. package/templates/email-safe/email-investor.html +5 -5
  98. package/templates/email-safe/email-launch.html +5 -5
  99. package/templates/email-safe/email-newsletter.html +6 -6
  100. package/templates/email-safe/email-status.html +5 -5
  101. package/templates/email-safe/email-transactional.html +5 -5
  102. package/templates/kitchen-sink.html +10 -6
  103. package/templates/marketing-newsletter/MarketingNewsletter.dc.html +4 -4
  104. package/templates/marketing-page/MarketingPage.dc.html +4 -2
  105. package/templates/playground.html +5 -4
  106. package/templates/sales-proposal-deck/SalesProposalDeck.dc.html +5 -5
  107. package/tokens/colors.css +1 -1
  108. package/tokens/declarations.json +1851 -1355
  109. package/tokens/element-seeds.json +1 -1
  110. package/tokens/elements.css +40 -10
  111. package/tokens/elevation.css +2 -2
  112. package/tokens/modes/dark__default__comfortable__high.dtcg.json +1 -1
  113. package/tokens/modes/dark__default__comfortable__standard.dtcg.json +1 -1
  114. package/tokens/modes/dark__default__compact__high.dtcg.json +1 -1
  115. package/tokens/modes/dark__default__compact__standard.dtcg.json +1 -1
  116. package/tokens/modes/dark__hoa-lava__comfortable__high.dtcg.json +1 -1
  117. package/tokens/modes/dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
  118. package/tokens/modes/dark__hoa-lava__compact__high.dtcg.json +1 -1
  119. package/tokens/modes/dark__hoa-lava__compact__standard.dtcg.json +1 -1
  120. package/tokens/modes/dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
  121. package/tokens/modes/dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  122. package/tokens/modes/dark__hoa-plasma__compact__high.dtcg.json +1 -1
  123. package/tokens/modes/dark__hoa-plasma__compact__standard.dtcg.json +1 -1
  124. package/tokens/modes/dark__hoa__comfortable__high.dtcg.json +1 -1
  125. package/tokens/modes/dark__hoa__comfortable__standard.dtcg.json +1 -1
  126. package/tokens/modes/dark__hoa__compact__high.dtcg.json +1 -1
  127. package/tokens/modes/dark__hoa__compact__standard.dtcg.json +1 -1
  128. package/tokens/modes/dark__kim-steel__comfortable__high.dtcg.json +1 -1
  129. package/tokens/modes/dark__kim-steel__comfortable__standard.dtcg.json +1 -1
  130. package/tokens/modes/dark__kim-steel__compact__high.dtcg.json +1 -1
  131. package/tokens/modes/dark__kim-steel__compact__standard.dtcg.json +1 -1
  132. package/tokens/modes/dark__kim-titanium__comfortable__high.dtcg.json +1 -1
  133. package/tokens/modes/dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
  134. package/tokens/modes/dark__kim-titanium__compact__high.dtcg.json +1 -1
  135. package/tokens/modes/dark__kim-titanium__compact__standard.dtcg.json +1 -1
  136. package/tokens/modes/dark__kim__comfortable__high.dtcg.json +1 -1
  137. package/tokens/modes/dark__kim__comfortable__standard.dtcg.json +1 -1
  138. package/tokens/modes/dark__kim__compact__high.dtcg.json +1 -1
  139. package/tokens/modes/dark__kim__compact__standard.dtcg.json +1 -1
  140. package/tokens/modes/dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
  141. package/tokens/modes/dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  142. package/tokens/modes/dark__moc-bamboo__compact__high.dtcg.json +1 -1
  143. package/tokens/modes/dark__moc-bamboo__compact__standard.dtcg.json +1 -1
  144. package/tokens/modes/dark__moc-forest__comfortable__high.dtcg.json +1 -1
  145. package/tokens/modes/dark__moc-forest__comfortable__standard.dtcg.json +1 -1
  146. package/tokens/modes/dark__moc-forest__compact__high.dtcg.json +1 -1
  147. package/tokens/modes/dark__moc-forest__compact__standard.dtcg.json +1 -1
  148. package/tokens/modes/dark__moc__comfortable__high.dtcg.json +1 -1
  149. package/tokens/modes/dark__moc__comfortable__standard.dtcg.json +1 -1
  150. package/tokens/modes/dark__moc__compact__high.dtcg.json +1 -1
  151. package/tokens/modes/dark__moc__compact__standard.dtcg.json +1 -1
  152. package/tokens/modes/dark__tho-clay__comfortable__high.dtcg.json +1 -1
  153. package/tokens/modes/dark__tho-clay__comfortable__standard.dtcg.json +1 -1
  154. package/tokens/modes/dark__tho-clay__compact__high.dtcg.json +1 -1
  155. package/tokens/modes/dark__tho-clay__compact__standard.dtcg.json +1 -1
  156. package/tokens/modes/dark__tho-sand__comfortable__high.dtcg.json +1 -1
  157. package/tokens/modes/dark__tho-sand__comfortable__standard.dtcg.json +1 -1
  158. package/tokens/modes/dark__tho-sand__compact__high.dtcg.json +1 -1
  159. package/tokens/modes/dark__tho-sand__compact__standard.dtcg.json +1 -1
  160. package/tokens/modes/dark__tho__comfortable__high.dtcg.json +1 -1
  161. package/tokens/modes/dark__tho__comfortable__standard.dtcg.json +1 -1
  162. package/tokens/modes/dark__tho__compact__high.dtcg.json +1 -1
  163. package/tokens/modes/dark__tho__compact__standard.dtcg.json +1 -1
  164. package/tokens/modes/dark__thuy-mist__comfortable__high.dtcg.json +1 -1
  165. package/tokens/modes/dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
  166. package/tokens/modes/dark__thuy-mist__compact__high.dtcg.json +1 -1
  167. package/tokens/modes/dark__thuy-mist__compact__standard.dtcg.json +1 -1
  168. package/tokens/modes/dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
  169. package/tokens/modes/dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  170. package/tokens/modes/dark__thuy-ocean__compact__high.dtcg.json +1 -1
  171. package/tokens/modes/dark__thuy-ocean__compact__standard.dtcg.json +1 -1
  172. package/tokens/modes/dark__thuy__comfortable__high.dtcg.json +1 -1
  173. package/tokens/modes/dark__thuy__comfortable__standard.dtcg.json +1 -1
  174. package/tokens/modes/dark__thuy__compact__high.dtcg.json +1 -1
  175. package/tokens/modes/dark__thuy__compact__standard.dtcg.json +1 -1
  176. package/tokens/modes/index.json +275 -275
  177. package/tokens/modes/light__default__comfortable__high.dtcg.json +1 -1
  178. package/tokens/modes/light__default__comfortable__standard.dtcg.json +1 -1
  179. package/tokens/modes/light__default__compact__high.dtcg.json +1 -1
  180. package/tokens/modes/light__default__compact__standard.dtcg.json +1 -1
  181. package/tokens/modes/light__hoa-lava__comfortable__high.dtcg.json +1 -1
  182. package/tokens/modes/light__hoa-lava__comfortable__standard.dtcg.json +1 -1
  183. package/tokens/modes/light__hoa-lava__compact__high.dtcg.json +1 -1
  184. package/tokens/modes/light__hoa-lava__compact__standard.dtcg.json +1 -1
  185. package/tokens/modes/light__hoa-plasma__comfortable__high.dtcg.json +1 -1
  186. package/tokens/modes/light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  187. package/tokens/modes/light__hoa-plasma__compact__high.dtcg.json +1 -1
  188. package/tokens/modes/light__hoa-plasma__compact__standard.dtcg.json +1 -1
  189. package/tokens/modes/light__hoa__comfortable__high.dtcg.json +1 -1
  190. package/tokens/modes/light__hoa__comfortable__standard.dtcg.json +1 -1
  191. package/tokens/modes/light__hoa__compact__high.dtcg.json +1 -1
  192. package/tokens/modes/light__hoa__compact__standard.dtcg.json +1 -1
  193. package/tokens/modes/light__kim-steel__comfortable__high.dtcg.json +1 -1
  194. package/tokens/modes/light__kim-steel__comfortable__standard.dtcg.json +1 -1
  195. package/tokens/modes/light__kim-steel__compact__high.dtcg.json +1 -1
  196. package/tokens/modes/light__kim-steel__compact__standard.dtcg.json +1 -1
  197. package/tokens/modes/light__kim-titanium__comfortable__high.dtcg.json +1 -1
  198. package/tokens/modes/light__kim-titanium__comfortable__standard.dtcg.json +1 -1
  199. package/tokens/modes/light__kim-titanium__compact__high.dtcg.json +1 -1
  200. package/tokens/modes/light__kim-titanium__compact__standard.dtcg.json +1 -1
  201. package/tokens/modes/light__kim__comfortable__high.dtcg.json +1 -1
  202. package/tokens/modes/light__kim__comfortable__standard.dtcg.json +1 -1
  203. package/tokens/modes/light__kim__compact__high.dtcg.json +1 -1
  204. package/tokens/modes/light__kim__compact__standard.dtcg.json +1 -1
  205. package/tokens/modes/light__moc-bamboo__comfortable__high.dtcg.json +1 -1
  206. package/tokens/modes/light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  207. package/tokens/modes/light__moc-bamboo__compact__high.dtcg.json +1 -1
  208. package/tokens/modes/light__moc-bamboo__compact__standard.dtcg.json +1 -1
  209. package/tokens/modes/light__moc-forest__comfortable__high.dtcg.json +1 -1
  210. package/tokens/modes/light__moc-forest__comfortable__standard.dtcg.json +1 -1
  211. package/tokens/modes/light__moc-forest__compact__high.dtcg.json +1 -1
  212. package/tokens/modes/light__moc-forest__compact__standard.dtcg.json +1 -1
  213. package/tokens/modes/light__moc__comfortable__high.dtcg.json +1 -1
  214. package/tokens/modes/light__moc__comfortable__standard.dtcg.json +1 -1
  215. package/tokens/modes/light__moc__compact__high.dtcg.json +1 -1
  216. package/tokens/modes/light__moc__compact__standard.dtcg.json +1 -1
  217. package/tokens/modes/light__tho-clay__comfortable__high.dtcg.json +1 -1
  218. package/tokens/modes/light__tho-clay__comfortable__standard.dtcg.json +1 -1
  219. package/tokens/modes/light__tho-clay__compact__high.dtcg.json +1 -1
  220. package/tokens/modes/light__tho-clay__compact__standard.dtcg.json +1 -1
  221. package/tokens/modes/light__tho-sand__comfortable__high.dtcg.json +1 -1
  222. package/tokens/modes/light__tho-sand__comfortable__standard.dtcg.json +1 -1
  223. package/tokens/modes/light__tho-sand__compact__high.dtcg.json +1 -1
  224. package/tokens/modes/light__tho-sand__compact__standard.dtcg.json +1 -1
  225. package/tokens/modes/light__tho__comfortable__high.dtcg.json +1 -1
  226. package/tokens/modes/light__tho__comfortable__standard.dtcg.json +1 -1
  227. package/tokens/modes/light__tho__compact__high.dtcg.json +1 -1
  228. package/tokens/modes/light__tho__compact__standard.dtcg.json +1 -1
  229. package/tokens/modes/light__thuy-mist__comfortable__high.dtcg.json +1 -1
  230. package/tokens/modes/light__thuy-mist__comfortable__standard.dtcg.json +1 -1
  231. package/tokens/modes/light__thuy-mist__compact__high.dtcg.json +1 -1
  232. package/tokens/modes/light__thuy-mist__compact__standard.dtcg.json +1 -1
  233. package/tokens/modes/light__thuy-ocean__comfortable__high.dtcg.json +1 -1
  234. package/tokens/modes/light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  235. package/tokens/modes/light__thuy-ocean__compact__high.dtcg.json +1 -1
  236. package/tokens/modes/light__thuy-ocean__compact__standard.dtcg.json +1 -1
  237. package/tokens/modes/light__thuy__comfortable__high.dtcg.json +1 -1
  238. package/tokens/modes/light__thuy__comfortable__standard.dtcg.json +1 -1
  239. package/tokens/modes/light__thuy__compact__high.dtcg.json +1 -1
  240. package/tokens/modes/light__thuy__compact__standard.dtcg.json +1 -1
  241. package/tokens/modes/system-dark__default__comfortable__high.dtcg.json +1 -1
  242. package/tokens/modes/system-dark__default__comfortable__standard.dtcg.json +1 -1
  243. package/tokens/modes/system-dark__default__compact__high.dtcg.json +1 -1
  244. package/tokens/modes/system-dark__default__compact__standard.dtcg.json +1 -1
  245. package/tokens/modes/system-dark__hoa-lava__comfortable__high.dtcg.json +1 -1
  246. package/tokens/modes/system-dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
  247. package/tokens/modes/system-dark__hoa-lava__compact__high.dtcg.json +1 -1
  248. package/tokens/modes/system-dark__hoa-lava__compact__standard.dtcg.json +1 -1
  249. package/tokens/modes/system-dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
  250. package/tokens/modes/system-dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  251. package/tokens/modes/system-dark__hoa-plasma__compact__high.dtcg.json +1 -1
  252. package/tokens/modes/system-dark__hoa-plasma__compact__standard.dtcg.json +1 -1
  253. package/tokens/modes/system-dark__hoa__comfortable__high.dtcg.json +1 -1
  254. package/tokens/modes/system-dark__hoa__comfortable__standard.dtcg.json +1 -1
  255. package/tokens/modes/system-dark__hoa__compact__high.dtcg.json +1 -1
  256. package/tokens/modes/system-dark__hoa__compact__standard.dtcg.json +1 -1
  257. package/tokens/modes/system-dark__kim-steel__comfortable__high.dtcg.json +1 -1
  258. package/tokens/modes/system-dark__kim-steel__comfortable__standard.dtcg.json +1 -1
  259. package/tokens/modes/system-dark__kim-steel__compact__high.dtcg.json +1 -1
  260. package/tokens/modes/system-dark__kim-steel__compact__standard.dtcg.json +1 -1
  261. package/tokens/modes/system-dark__kim-titanium__comfortable__high.dtcg.json +1 -1
  262. package/tokens/modes/system-dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
  263. package/tokens/modes/system-dark__kim-titanium__compact__high.dtcg.json +1 -1
  264. package/tokens/modes/system-dark__kim-titanium__compact__standard.dtcg.json +1 -1
  265. package/tokens/modes/system-dark__kim__comfortable__high.dtcg.json +1 -1
  266. package/tokens/modes/system-dark__kim__comfortable__standard.dtcg.json +1 -1
  267. package/tokens/modes/system-dark__kim__compact__high.dtcg.json +1 -1
  268. package/tokens/modes/system-dark__kim__compact__standard.dtcg.json +1 -1
  269. package/tokens/modes/system-dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
  270. package/tokens/modes/system-dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  271. package/tokens/modes/system-dark__moc-bamboo__compact__high.dtcg.json +1 -1
  272. package/tokens/modes/system-dark__moc-bamboo__compact__standard.dtcg.json +1 -1
  273. package/tokens/modes/system-dark__moc-forest__comfortable__high.dtcg.json +1 -1
  274. package/tokens/modes/system-dark__moc-forest__comfortable__standard.dtcg.json +1 -1
  275. package/tokens/modes/system-dark__moc-forest__compact__high.dtcg.json +1 -1
  276. package/tokens/modes/system-dark__moc-forest__compact__standard.dtcg.json +1 -1
  277. package/tokens/modes/system-dark__moc__comfortable__high.dtcg.json +1 -1
  278. package/tokens/modes/system-dark__moc__comfortable__standard.dtcg.json +1 -1
  279. package/tokens/modes/system-dark__moc__compact__high.dtcg.json +1 -1
  280. package/tokens/modes/system-dark__moc__compact__standard.dtcg.json +1 -1
  281. package/tokens/modes/system-dark__tho-clay__comfortable__high.dtcg.json +1 -1
  282. package/tokens/modes/system-dark__tho-clay__comfortable__standard.dtcg.json +1 -1
  283. package/tokens/modes/system-dark__tho-clay__compact__high.dtcg.json +1 -1
  284. package/tokens/modes/system-dark__tho-clay__compact__standard.dtcg.json +1 -1
  285. package/tokens/modes/system-dark__tho-sand__comfortable__high.dtcg.json +1 -1
  286. package/tokens/modes/system-dark__tho-sand__comfortable__standard.dtcg.json +1 -1
  287. package/tokens/modes/system-dark__tho-sand__compact__high.dtcg.json +1 -1
  288. package/tokens/modes/system-dark__tho-sand__compact__standard.dtcg.json +1 -1
  289. package/tokens/modes/system-dark__tho__comfortable__high.dtcg.json +1 -1
  290. package/tokens/modes/system-dark__tho__comfortable__standard.dtcg.json +1 -1
  291. package/tokens/modes/system-dark__tho__compact__high.dtcg.json +1 -1
  292. package/tokens/modes/system-dark__tho__compact__standard.dtcg.json +1 -1
  293. package/tokens/modes/system-dark__thuy-mist__comfortable__high.dtcg.json +1 -1
  294. package/tokens/modes/system-dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
  295. package/tokens/modes/system-dark__thuy-mist__compact__high.dtcg.json +1 -1
  296. package/tokens/modes/system-dark__thuy-mist__compact__standard.dtcg.json +1 -1
  297. package/tokens/modes/system-dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
  298. package/tokens/modes/system-dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  299. package/tokens/modes/system-dark__thuy-ocean__compact__high.dtcg.json +1 -1
  300. package/tokens/modes/system-dark__thuy-ocean__compact__standard.dtcg.json +1 -1
  301. package/tokens/modes/system-dark__thuy__comfortable__high.dtcg.json +1 -1
  302. package/tokens/modes/system-dark__thuy__comfortable__standard.dtcg.json +1 -1
  303. package/tokens/modes/system-dark__thuy__compact__high.dtcg.json +1 -1
  304. package/tokens/modes/system-dark__thuy__compact__standard.dtcg.json +1 -1
  305. package/tokens/modes/system-light__default__comfortable__high.dtcg.json +1 -1
  306. package/tokens/modes/system-light__default__comfortable__standard.dtcg.json +1 -1
  307. package/tokens/modes/system-light__default__compact__high.dtcg.json +1 -1
  308. package/tokens/modes/system-light__default__compact__standard.dtcg.json +1 -1
  309. package/tokens/modes/system-light__hoa-lava__comfortable__high.dtcg.json +1 -1
  310. package/tokens/modes/system-light__hoa-lava__comfortable__standard.dtcg.json +1 -1
  311. package/tokens/modes/system-light__hoa-lava__compact__high.dtcg.json +1 -1
  312. package/tokens/modes/system-light__hoa-lava__compact__standard.dtcg.json +1 -1
  313. package/tokens/modes/system-light__hoa-plasma__comfortable__high.dtcg.json +1 -1
  314. package/tokens/modes/system-light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  315. package/tokens/modes/system-light__hoa-plasma__compact__high.dtcg.json +1 -1
  316. package/tokens/modes/system-light__hoa-plasma__compact__standard.dtcg.json +1 -1
  317. package/tokens/modes/system-light__hoa__comfortable__high.dtcg.json +1 -1
  318. package/tokens/modes/system-light__hoa__comfortable__standard.dtcg.json +1 -1
  319. package/tokens/modes/system-light__hoa__compact__high.dtcg.json +1 -1
  320. package/tokens/modes/system-light__hoa__compact__standard.dtcg.json +1 -1
  321. package/tokens/modes/system-light__kim-steel__comfortable__high.dtcg.json +1 -1
  322. package/tokens/modes/system-light__kim-steel__comfortable__standard.dtcg.json +1 -1
  323. package/tokens/modes/system-light__kim-steel__compact__high.dtcg.json +1 -1
  324. package/tokens/modes/system-light__kim-steel__compact__standard.dtcg.json +1 -1
  325. package/tokens/modes/system-light__kim-titanium__comfortable__high.dtcg.json +1 -1
  326. package/tokens/modes/system-light__kim-titanium__comfortable__standard.dtcg.json +1 -1
  327. package/tokens/modes/system-light__kim-titanium__compact__high.dtcg.json +1 -1
  328. package/tokens/modes/system-light__kim-titanium__compact__standard.dtcg.json +1 -1
  329. package/tokens/modes/system-light__kim__comfortable__high.dtcg.json +1 -1
  330. package/tokens/modes/system-light__kim__comfortable__standard.dtcg.json +1 -1
  331. package/tokens/modes/system-light__kim__compact__high.dtcg.json +1 -1
  332. package/tokens/modes/system-light__kim__compact__standard.dtcg.json +1 -1
  333. package/tokens/modes/system-light__moc-bamboo__comfortable__high.dtcg.json +1 -1
  334. package/tokens/modes/system-light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  335. package/tokens/modes/system-light__moc-bamboo__compact__high.dtcg.json +1 -1
  336. package/tokens/modes/system-light__moc-bamboo__compact__standard.dtcg.json +1 -1
  337. package/tokens/modes/system-light__moc-forest__comfortable__high.dtcg.json +1 -1
  338. package/tokens/modes/system-light__moc-forest__comfortable__standard.dtcg.json +1 -1
  339. package/tokens/modes/system-light__moc-forest__compact__high.dtcg.json +1 -1
  340. package/tokens/modes/system-light__moc-forest__compact__standard.dtcg.json +1 -1
  341. package/tokens/modes/system-light__moc__comfortable__high.dtcg.json +1 -1
  342. package/tokens/modes/system-light__moc__comfortable__standard.dtcg.json +1 -1
  343. package/tokens/modes/system-light__moc__compact__high.dtcg.json +1 -1
  344. package/tokens/modes/system-light__moc__compact__standard.dtcg.json +1 -1
  345. package/tokens/modes/system-light__tho-clay__comfortable__high.dtcg.json +1 -1
  346. package/tokens/modes/system-light__tho-clay__comfortable__standard.dtcg.json +1 -1
  347. package/tokens/modes/system-light__tho-clay__compact__high.dtcg.json +1 -1
  348. package/tokens/modes/system-light__tho-clay__compact__standard.dtcg.json +1 -1
  349. package/tokens/modes/system-light__tho-sand__comfortable__high.dtcg.json +1 -1
  350. package/tokens/modes/system-light__tho-sand__comfortable__standard.dtcg.json +1 -1
  351. package/tokens/modes/system-light__tho-sand__compact__high.dtcg.json +1 -1
  352. package/tokens/modes/system-light__tho-sand__compact__standard.dtcg.json +1 -1
  353. package/tokens/modes/system-light__tho__comfortable__high.dtcg.json +1 -1
  354. package/tokens/modes/system-light__tho__comfortable__standard.dtcg.json +1 -1
  355. package/tokens/modes/system-light__tho__compact__high.dtcg.json +1 -1
  356. package/tokens/modes/system-light__tho__compact__standard.dtcg.json +1 -1
  357. package/tokens/modes/system-light__thuy-mist__comfortable__high.dtcg.json +1 -1
  358. package/tokens/modes/system-light__thuy-mist__comfortable__standard.dtcg.json +1 -1
  359. package/tokens/modes/system-light__thuy-mist__compact__high.dtcg.json +1 -1
  360. package/tokens/modes/system-light__thuy-mist__compact__standard.dtcg.json +1 -1
  361. package/tokens/modes/system-light__thuy-ocean__comfortable__high.dtcg.json +1 -1
  362. package/tokens/modes/system-light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  363. package/tokens/modes/system-light__thuy-ocean__compact__high.dtcg.json +1 -1
  364. package/tokens/modes/system-light__thuy-ocean__compact__standard.dtcg.json +1 -1
  365. package/tokens/modes/system-light__thuy__comfortable__high.dtcg.json +1 -1
  366. package/tokens/modes/system-light__thuy__comfortable__standard.dtcg.json +1 -1
  367. package/tokens/modes/system-light__thuy__compact__high.dtcg.json +1 -1
  368. package/tokens/modes/system-light__thuy__compact__standard.dtcg.json +1 -1
  369. package/tokens/native/CSModes.kt +129 -125
  370. package/tokens/native/CSModes.swift +129 -125
  371. package/tokens/native/CSTokens.kt +8 -8
  372. package/tokens/native/CSTokens.swift +8 -8
  373. package/tokens/native/cs_modes.dart +129 -125
  374. package/tokens/native/cs_tokens.dart +8 -8
  375. package/tokens/native/mode-provenance.json +11 -11
  376. package/tokens/provenance.json +6 -6
  377. package/tokens/styles.css +8 -4
  378. package/tokens/tokens.dtcg.json +26 -26
  379. package/tokens/tokens.js +12 -12
  380. package/tokens/tokens.json +11 -11
  381. package/tokens/variables.css +48 -15
  382. package/tokens/viewer.html +1 -0
  383. package/ui_kits/status-hub/login.html +3 -3
  384. package/ui_kits/status-hub/project.html +4 -6
  385. package/ui_kits/status-hub/settings.html +2 -3
  386. package/ui_kits/status-hub/status.css +24 -15
  387. package/ui_kits/website/careers.html +10 -17
  388. package/ui_kits/website/chat.html +14 -3
  389. package/ui_kits/website/site.css +21 -21
  390. package/ui_kits/website/work.html +4 -10
@@ -20,7 +20,7 @@
20
20
  },
21
21
  {
22
22
  "path": "tokens/colors.css",
23
- "sha256": "40914e9efbdde8c8b9f81a49881d4c5c98646ccf8b53397d4fbf7fc8ce0b54f4"
23
+ "sha256": "8156d4d2ae951e1939a522bf835c151e8e987c841d49129a0ebfaf8f20b8ca56"
24
24
  },
25
25
  {
26
26
  "path": "tokens/typography.css",
@@ -32,7 +32,7 @@
32
32
  },
33
33
  {
34
34
  "path": "tokens/elevation.css",
35
- "sha256": "0c24e92a2026cc036ee53b72d6bb4ffef3e44ca12641650e8ad97c687acb7f6b"
35
+ "sha256": "2014355eac5748460932783ca3fa03bfd26bc2bb6d1a3144347792b4fdd8ee7b"
36
36
  },
37
37
  {
38
38
  "path": "tokens/motion.css",
@@ -44,11 +44,11 @@
44
44
  },
45
45
  {
46
46
  "path": "tokens/elements.css",
47
- "sha256": "b6282cecc7e8b3c154530b36e62f36e9744c73c24e8ae59cbe1ea5650d3073cb"
47
+ "sha256": "fdc5f1597d253fa8ad63f46fe26b4856060971d8c58ce1e1f8de2f745013ea2f"
48
48
  },
49
49
  {
50
50
  "path": "tokens/styles.css",
51
- "sha256": "4b677b90823a026f96e295ea5b6537a3c125b04bb93d3f67c09a7dcf341a6630"
51
+ "sha256": "d0b582f5d054406280e44a6edd452deb329e0950d8ebca1106be14e583af7c7c"
52
52
  },
53
53
  {
54
54
  "path": "tokens/theme-attributes.css",
@@ -64,35 +64,35 @@
64
64
  },
65
65
  {
66
66
  "path": "base/components.css",
67
- "sha256": "568dd72532092ccc5530944772f63509a69cc4d1de89f9f9a44f5bcbefa3ccb6"
67
+ "sha256": "77b6b6cd7df2ed9c65e531a6d3e9c869b173d85c2bd7a9657cc6731dc1139726"
68
68
  },
69
69
  {
70
70
  "path": "base/forms.css",
71
- "sha256": "4999e66483fa95bab74e087471b7762f2a2e566331809488e5416cbf1d662522"
71
+ "sha256": "5e380ff5a6ba6f0cbaa5bf0b8f1da3af6c6415a2451c86acfa430a0ced014052"
72
72
  },
73
73
  {
74
74
  "path": "base/feedback.css",
75
- "sha256": "ba1aadc4ae1c9f9a07ad9df36df06184244ebe488ec723b30ab691d97d09ae4d"
75
+ "sha256": "ba6e95a6316c9b65f6d279306a9e2f447874a06f709e2d5f62d3e62de3a0436d"
76
76
  },
77
77
  {
78
78
  "path": "base/data.css",
79
- "sha256": "4c92290bf35d51a0f0244ca05ab70f57fe4453abb8f71ba23327606f5a2a4227"
79
+ "sha256": "f910e6a023cd1444cb4b8288ca939c223311e8a2124e465e5f5aea254dfcf4f9"
80
80
  },
81
81
  {
82
82
  "path": "base/navigation.css",
83
- "sha256": "4958938bd2775bf4fa430c9eeee514242dc5931fee66113c1b94d043e0fd0964"
83
+ "sha256": "48799ecc9eae03301003f05fd194194f49d210e65ce9d2ad721686dfd8c8dc7e"
84
84
  },
85
85
  {
86
86
  "path": "base/ai.css",
87
- "sha256": "fe288cee4345584a0fc189c6deb356e0af078a18fb0e8ad2f6ef4dd4e1511665"
87
+ "sha256": "6f00788d6efdcc62435834ccb065158f8e80f7b5208f089080cf10a7dbe0f8d5"
88
88
  },
89
89
  {
90
90
  "path": "base/controls.css",
91
- "sha256": "d16d8e017a5c300d10d75d36f379dfad1a8c25bb7ded61fbf08740082456331b"
91
+ "sha256": "f6ff09b41ed693b4c9de6a699209e8744a8b116104cf3120e94fbacb42bd0dba"
92
92
  },
93
93
  {
94
94
  "path": "base/collections.css",
95
- "sha256": "307287655287da43c275c56f14bdd846cd3d4a57d0cd1ddb4305996f0c2cba3c"
95
+ "sha256": "fd5d59fb1ef0adac438c7decf0abbdf6de217e33072df79ab609ca9a96a3890c"
96
96
  },
97
97
  {
98
98
  "path": "base/shell.css",
@@ -100,7 +100,7 @@
100
100
  },
101
101
  {
102
102
  "path": "base/glass.css",
103
- "sha256": "fe27603ead71c265aa4f30deb0bc754d09f5e71d7cfc656e282a740fffb87f2f"
103
+ "sha256": "70a9c914734c6b5f5d51fa214c3747c5d294e9c4a1c5d505a942072c53451192"
104
104
  },
105
105
  {
106
106
  "path": "base/interaction.css",
@@ -108,11 +108,11 @@
108
108
  },
109
109
  {
110
110
  "path": "base/a11y.css",
111
- "sha256": "07ea769359d4eefe6fc820b9fc13fef2790cc278c1289f0f1cc493ca5c288bd4"
111
+ "sha256": "15a6dec38ca80f791f68c417e8eaa0fc93c1b6795f749bdaf66c6ae7b8cef37e"
112
112
  },
113
113
  {
114
114
  "path": "base/responsive.css",
115
- "sha256": "e3e3509509d6d495a26e582dc6c9263a9e525e16f4f8936386ee5b372e7c5947"
115
+ "sha256": "2365ed1f0b1ce2d062581c0bd48942c4c24185654f0b2ee6fc4eb688d76839eb"
116
116
  }
117
117
  ],
118
118
  "assets": [
@@ -156,5 +156,5 @@
156
156
  "fonts/spacegrotesk-var-vietnamese.woff2"
157
157
  ],
158
158
  "importantCount": 46,
159
- "sha256": "fbf1fa3b1b2cd1b611c24e500852149d845467580b0b5bc6a96d7720225729bd"
159
+ "sha256": "21f6aad8afd38694dc3282ccaf461e50e61e278fcdeff49941ab94bd73a9fb9e"
160
160
  }
@@ -190,6 +190,10 @@
190
190
  if (isChrome(node)) return;
191
191
  const tag = node.tagName.toLowerCase();
192
192
  if (tag === 'script' || tag === 'style' || tag === 'noscript' || tag === 'svg') return;
193
+ if (tag === 'br') {
194
+ parts.push({ t: '', br: true, italic, bold, color, fill, size });
195
+ return;
196
+ }
193
197
  const st = window.getComputedStyle(node);
194
198
  const nextItalic = italic || st.fontStyle === 'italic' || tag === 'i' || tag === 'em';
195
199
  const nextBold =
@@ -214,7 +218,7 @@
214
218
  if (parts.length > before && nxt) {
215
219
  const last = parts[parts.length - 1];
216
220
  const nextRaw = nxt.textContent || '';
217
- if (last && last.t && !/\s$/.test(last.t) && nextRaw.replace(/\s+/g, '') && !/^\s/.test(nextRaw)) {
221
+ if (last && !last.br && last.t && !/\s$/.test(last.t) && nextRaw.replace(/\s+/g, '') && !/^\s/.test(nextRaw)) {
218
222
  parts.push({
219
223
  t: ' ',
220
224
  italic: nextItalic,
@@ -237,6 +241,8 @@
237
241
  const prev = merged[merged.length - 1];
238
242
  if (
239
243
  prev &&
244
+ !prev.br &&
245
+ !r.br &&
240
246
  prev.italic === r.italic &&
241
247
  prev.bold === r.bold &&
242
248
  prev.color === r.color &&
@@ -257,6 +263,7 @@
257
263
  }
258
264
  return runs
259
265
  .map((r) => {
266
+ if (r.br) return '<w:r><w:br/></w:r>';
260
267
  const rPr = [];
261
268
  if (r.bold) rPr.push('<w:b/>');
262
269
  if (r.italic) rPr.push('<w:i/>');
@@ -7,7 +7,7 @@
7
7
  <style>
8
8
  body{margin:0 auto;font-family:var(--cs-font-family-ui);background:var(--cs-color-surface-page);color:var(--cs-color-text-primary);padding:24px;max-width:720px}
9
9
  h1{font-size:18px;margin:0 0 8px} .sub{color:var(--cs-color-text-muted);font-size:13px;line-height:1.5;margin:0 0 18px}
10
- #root{display:grid;gap:14px}
10
+ #root,#cluster{display:grid;gap:16px;align-items:start}
11
11
  </style>
12
12
  <script src="../_vendor/react/react.production.min.js"></script>
13
13
  <script src="../_vendor/react/react-dom.production.min.js"></script>
@@ -19,7 +19,7 @@
19
19
  <div id="root"></div>
20
20
  </main>
21
21
  <script>
22
- const NS=window[Object.keys(window).find(k=>/^CyberSkillDesignSystem_[0-9a-f]{6}$/.test(k))];
22
+ const NS=window[Object.keys(window).find(k=>k.startsWith('CyberSkillDesignSystem_'))];
23
23
  const h=React.createElement;
24
24
  function App(){
25
25
  const [lang,setLang]=React.useState('en');
@@ -42,13 +42,13 @@
42
42
  <h1 style="font-size:26px;font-weight:800;letter-spacing:-0.02em;margin:0 0 4px">{{ h1 }}</h1>
43
43
  <p style="color:var(--cs-color-text-muted);margin:0">{{ sub }}</p>
44
44
  </div>
45
- <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px;background:var(--cs-color-surface-panel);border:1px solid var(--cs-color-border-default);border-radius:var(--cs-radius-lg);padding:22px 24px">
45
+ <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:start;gap:20px;background:var(--cs-color-surface-panel);border:1px solid var(--cs-color-border-default);border-radius:var(--cs-radius-lg);padding:22px 24px;box-shadow:var(--cs-shadow-xs)">
46
46
  <x-import component-from-global-scope="CyberSkillDS.Stat" label="{{ s1 }}" value="6" hint-size="140px,70px"></x-import>
47
47
  <x-import component-from-global-scope="CyberSkillDS.Stat" label="{{ s2 }}" value="4" hint-size="140px,70px"></x-import>
48
48
  <x-import component-from-global-scope="CyberSkillDS.Stat" label="{{ s3 }}" value="1" hint-size="140px,70px"></x-import>
49
49
  <x-import component-from-global-scope="CyberSkillDS.Stat" label="{{ s4 }}" value="70%" delta="{{ s4d }}" trend="up" hint-size="140px,70px"></x-import>
50
50
  </div>
51
- <div style="background:var(--cs-color-surface-panel);border:1px solid var(--cs-color-border-default);border-radius:var(--cs-radius-lg);padding:6px 18px 12px">
51
+ <div style="background:var(--cs-color-surface-panel);border:1px solid var(--cs-color-border-default);border-radius:var(--cs-radius-lg);padding:16px 20px 14px;box-shadow:var(--cs-shadow-xs)">
52
52
  <x-import component-from-global-scope="CyberSkillDS.DataTable" caption="{{ tblCap }}" columns="{{ cols }}" rows="{{ rows }}" row-key="key" hint-size="100%,220px"></x-import>
53
53
  </div>
54
54
  </main>
@@ -30,9 +30,9 @@
30
30
  </section>
31
31
 
32
32
  <section style="position:relative;width:100%;aspect-ratio:16/9;background:var(--cs-color-surface-panel);color:var(--cs-color-text-primary);border-radius:var(--cs-radius-lg);overflow:hidden;box-shadow:var(--cs-shadow-xl);padding:64px 88px;display:flex;flex-direction:column;justify-content:center">
33
- <div style="font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:0.12em;color:var(--cs-color-text-primary)">{{ s2kicker }}</div>
33
+ <div style="font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:0.12em;color:var(--cs-color-text-accent)">{{ s2kicker }}</div>
34
34
  <h2 style="font-size:44px;font-weight:800;letter-spacing:-0.02em;margin:10px 0 40px">{{ s2h }}</h2>
35
- <div style="display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px;overflow-wrap:anywhere">
35
+ <div style="display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px;align-items:start;font-variant-numeric:tabular-nums;overflow-wrap:anywhere">
36
36
  <div><div style="font-size:60px;font-weight:800;color:var(--cs-color-text-accent);line-height:1;letter-spacing:-0.02em">+18%</div><div style="font-size:19px;color:var(--cs-color-text-muted);margin-top:10px">{{ n1 }}</div></div>
37
37
  <div><div style="font-size:60px;font-weight:800;color:var(--cs-color-text-accent);line-height:1;letter-spacing:-0.02em">14</div><div style="font-size:19px;color:var(--cs-color-text-muted);margin-top:10px">{{ n2 }}</div></div>
38
38
  <div><div style="font-size:60px;font-weight:800;color:var(--cs-color-text-accent);line-height:1;letter-spacing:-0.02em">{{ runway }}</div><div style="font-size:19px;color:var(--cs-color-text-muted);margin-top:10px">{{ n3 }}</div></div>
@@ -42,7 +42,7 @@
42
42
  </section>
43
43
 
44
44
  <section style="position:relative;width:100%;aspect-ratio:16/9;background:var(--cs-color-surface-panel);color:var(--cs-color-text-primary);border-radius:var(--cs-radius-lg);overflow:hidden;box-shadow:var(--cs-shadow-xl);padding:64px 88px;display:flex;flex-direction:column;justify-content:center">
45
- <div style="font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:0.12em;color:var(--cs-color-text-primary)">{{ s3kicker }}</div>
45
+ <div style="font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:0.12em;color:var(--cs-color-text-accent)">{{ s3kicker }}</div>
46
46
  <h2 style="font-size:44px;font-weight:800;letter-spacing:-0.02em;margin:10px 0 34px">{{ s3h }}</h2>
47
47
  <div style="display:grid;gap:16px;font-size:22px">
48
48
  <div style="display:flex;align-items:center;gap:20px;border-top:3px solid var(--cs-accent);padding-top:16px"><b style="flex:1">{{ p1n }}</b><span style="color:var(--cs-color-semantic-success-text);font-weight:700">{{ p1s }}</span><span style="width:140px;text-align:right;font-family:var(--cs-font-family-mono)">₫3.1B</span></div>
@@ -23,7 +23,7 @@
23
23
  </div>
24
24
  <div style="padding:30px 32px">
25
25
  <h1 style="font-size:24px;font-weight:800;letter-spacing:-0.02em;line-height:1.2;margin:0 0 14px">{{ h1 }}</h1>
26
- <div style="display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px">
26
+ <div style="display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px;font-variant-numeric:tabular-nums">
27
27
  <div style="background:var(--cs-accent-tint);border-radius:var(--cs-radius-md);padding:12px 14px"><div style="font-size:22px;font-weight:800;letter-spacing:-0.02em;color:var(--cs-color-text-accent)">+18%</div><div style="font-size:11px;color:var(--cs-color-text-muted);margin-top:2px">{{ k1 }}</div></div>
28
28
  <div style="background:var(--cs-accent-tint);border-radius:var(--cs-radius-md);padding:12px 14px"><div style="font-size:22px;font-weight:800;letter-spacing:-0.02em;color:var(--cs-color-text-accent)">{{ runway }}</div><div style="font-size:11px;color:var(--cs-color-text-muted);margin-top:2px">{{ k2 }}</div></div>
29
29
  <div style="background:var(--cs-accent-tint);border-radius:var(--cs-radius-md);padding:12px 14px"><div style="font-size:22px;font-weight:800;letter-spacing:-0.02em;color:var(--cs-color-text-accent)">14</div><div style="font-size:11px;color:var(--cs-color-text-muted);margin-top:2px">{{ k3 }}</div></div>
@@ -27,14 +27,14 @@
27
27
  <p style="margin:2px 0 0;font-size:13px;color:var(--cs-accent-on-strong)">{{ tagline }}</p>
28
28
  </div>
29
29
  </div>
30
- <span>
30
+ <span style="--cs-component-button-primary-bg:var(--cs-accent-on-strong);--cs-component-button-primary-fg:var(--cs-accent-strong)">
31
31
  <x-import component-from-global-scope="CyberSkillDS.Button" variant="primary" size="sm" hint-size="130px,36px">{{ newBtn }}</x-import>
32
32
  </span>
33
33
  </div>
34
34
  </header>
35
35
 
36
36
  <div style="max-width:1280px;margin:0 auto;padding:28px">
37
- <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px;padding:22px 24px;background:var(--cs-color-surface-panel);border:1px solid var(--cs-color-border-default);border-radius:var(--cs-radius-lg);box-shadow:var(--cs-shadow-sm)">
37
+ <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:start;gap:20px;padding:22px 24px;background:var(--cs-color-surface-panel);border:1px solid var(--cs-color-border-default);border-radius:var(--cs-radius-lg);box-shadow:var(--cs-shadow-sm)">
38
38
  <x-import component-from-global-scope="CyberSkillDS.Stat" label="{{ s1 }}" value="6" hint-size="140px,70px"></x-import>
39
39
  <x-import component-from-global-scope="CyberSkillDS.Stat" label="{{ s2 }}" value="4" hint-size="140px,70px"></x-import>
40
40
  <x-import component-from-global-scope="CyberSkillDS.Stat" label="{{ s3 }}" value="1" hint-size="140px,70px"></x-import>
@@ -32,7 +32,7 @@
32
32
  <section style="position:relative;width:100%;aspect-ratio:16/9;background:var(--cs-color-surface-panel);color:var(--cs-color-text-primary);border-radius:var(--cs-radius-lg);overflow:hidden;box-shadow:var(--cs-shadow-xl);padding:64px 88px;display:flex;flex-direction:column;justify-content:center">
33
33
  <div style="font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:0.12em;color:var(--cs-color-text-accent)">{{ s2kicker }}</div>
34
34
  <h2 style="font-size:44px;font-weight:800;letter-spacing:-0.02em;margin:10px 0 40px">{{ s2h }}</h2>
35
- <div style="display:grid;grid-template-columns:repeat(4,1fr);gap:40px">
35
+ <div style="display:grid;grid-template-columns:repeat(4,1fr);gap:40px;align-items:start;font-variant-numeric:tabular-nums">
36
36
  <div><div style="font-size:56px;font-weight:800;color:var(--cs-color-text-accent);line-height:1;letter-spacing:-0.02em">+31%</div><div style="font-size:18px;color:var(--cs-color-text-muted);margin-top:10px">{{ k1 }}</div></div>
37
37
  <div><div style="font-size:56px;font-weight:800;color:var(--cs-color-text-accent);line-height:1;letter-spacing:-0.02em">−1.8s</div><div style="font-size:18px;color:var(--cs-color-text-muted);margin-top:10px">{{ k2 }}</div></div>
38
38
  <div><div style="font-size:56px;font-weight:800;color:var(--cs-color-text-accent);line-height:1;letter-spacing:-0.02em">0</div><div style="font-size:18px;color:var(--cs-color-text-muted);margin-top:10px">{{ k3 }}</div></div>
@@ -66,7 +66,7 @@
66
66
 
67
67
  <section style="position:relative;width:100%;aspect-ratio:16/9;background:var(--cs-color-brand-umber);color:#FFFDF8;border-radius:var(--cs-radius-lg);overflow:hidden;box-shadow:var(--cs-shadow-xl);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:0 88px">
68
68
  <img data-cs-official-logo="" class="cs-logo" width="66" height="66" role="img" alt="CyberSkill" title="CyberSkill">
69
- <h2 style="font-size:50px;font-weight:800;letter-spacing:-0.02em;color:var(--cs-accent-strong);margin:24px 0 10px">{{ closeH }}</h2>
69
+ <h2 style="font-size:50px;font-weight:800;letter-spacing:-0.02em;color:var(--cs-accent-bright);margin:24px 0 10px">{{ closeH }}</h2>
70
70
  <p style="font-size:22px;opacity:0.9;margin:0 0 8px;max-width:860px">{{ closeP }}</p>
71
71
  <p style="font-size:17px;opacity:0.7;margin:0">vu@cyberskill.world · Status Hub</p>
72
72
  <sc-if value="{{ showNumbers }}"><div style="position:absolute;bottom:40px;right:88px;font-family:var(--cs-font-family-mono);font-size:14px;color:var(--cs-accent-bright)">05 / 05</div></sc-if>
@@ -18,7 +18,7 @@
18
18
  <div style="background:var(--cs-accent-strong);padding:22px 32px;display:flex;flex-wrap:wrap;align-items:center;gap:12px">
19
19
  <img data-cs-official-logo="" class="cs-logo" width="28" height="28" role="img" alt="CyberSkill" title="CyberSkill">
20
20
  <span style="color:var(--cs-accent-on-strong);font-weight:800;font-size:16px">CyberSkill · Delivery</span>
21
- <span style="margin-left:auto;background:var(--cs-accent-strong);color:var(--cs-accent-on-strong);font-weight:700;font-size:13px;white-space:nowrap;flex-shrink:0;padding:4px 12px;border-radius:var(--cs-radius-full)">On track</span>
21
+ <span style="margin-left:auto;background:var(--cs-accent-strong);color:var(--cs-accent-on-strong);border:1.5px solid var(--cs-accent-on-strong);font-weight:700;font-size:13px;white-space:nowrap;flex-shrink:0;padding:4px 12px;border-radius:var(--cs-radius-full)">On track</span>
22
22
  </div>
23
23
  <div style="padding:30px 32px">
24
24
  <sc-if value="{{ isEN }}" hint-placeholder-val="{{ true }}">
@@ -32,14 +32,14 @@
32
32
  <sc-if value="{{ showLogo }}" hint-placeholder-val="{{ true }}">
33
33
  <x-import component-from-global-scope="CyberSkillDS.Logo" size="34" hint-size="34px,34px"></x-import>
34
34
  </sc-if>
35
- <span style="color:#fff;font-weight:800;font-size:19px;letter-spacing:-0.01em">CyberSkill</span>
35
+ <span style="color:var(--cs-accent-on-strong);font-weight:800;font-size:19px;letter-spacing:-0.01em">CyberSkill</span>
36
36
  </div>
37
37
  <div style="padding:36px 32px">
38
38
  <div style="font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0.12em;color:var(--cs-color-text-accent)">Điều ước của bạn đang được thực hiện</div>
39
39
  <h1 style="font-size:28px;font-weight:800;letter-spacing:-0.02em;line-height:1.2;margin:10px 0 14px">Chúng tôi đã bắt đầu điều ước của bạn, An.</h1>
40
40
  <p style="font-size:16px;line-height:1.65;margin:0 0 16px">Một người thật trong đội đã tiếp nhận yêu cầu thanh toán nhanh hơn của bạn. Chúng tôi sẽ gửi bản hình dung đầu tiên trong vòng một ngày làm việc — làm để chạy được, và làm để bền lâu.</p>
41
41
  <p style="font-size:16px;line-height:1.65;margin:0 0 28px;color:var(--cs-color-text-muted)">Trong lúc chờ, bạn có thể theo dõi tiến độ trên Status Hub của mình.</p>
42
- <a class="cs-touch-target" href="#" style="display:inline-block;background:var(--cs-accent-bright);color:var(--cs-accent-ink);font-weight:700;font-size:15px;text-decoration:none;padding:14px 26px;border-radius:var(--cs-radius-full)">Xem Status Hub của bạn →</a>
42
+ <a class="cs-touch-target" href="#" style="display:inline-block;background:var(--cs-accent-strong);color:var(--cs-accent-on-strong);font-weight:700;font-size:15px;text-decoration:none;padding:14px 26px;border-radius:var(--cs-radius-full)">Xem Status Hub của bạn →</a>
43
43
  </div>
44
44
  <div style="border-top:1px solid var(--cs-color-border-default);padding:22px 32px;background:var(--cs-color-surface-raised)">
45
45
  <p style="margin:0 0 6px;font-size:13px;color:var(--cs-color-text-muted)">Hiện Thực Hoá Ý Chí · Turn Your Will Into Real</p>
@@ -23,7 +23,7 @@
23
23
  .container,.card{background:#221710!important;color:#f5ead9!important}
24
24
  .raise{background:#2b1e14!important}
25
25
  .ink{color:#f5ead9!important}
26
- .muted{color:#c9b7a3!important}
26
+ .muted{color:#E9D6C2!important}
27
27
  .eyebrow,.footlink{color:#F4BA17!important}
28
28
  }
29
29
  </style>
@@ -49,7 +49,7 @@
49
49
  <p class="eyebrow" style="margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;color:#6E3B0E;">Team announcement</p>
50
50
  <h1 class="h1 ink" style="margin:0 0 14px;font-family:Arial,Helvetica,sans-serif;font-size:27px;line-height:1.2;font-weight:bold;color:#45210E;">Please welcome An to Platform.</h1>
51
51
  <p class="ink" style="margin:0 0 16px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#3d2c1e;">An joins us from 1 September with a decade of product work across web and mobile. She’ll be pairing on the checkout rebuild first.</p>
52
- <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#6e5a4c;">Say hello in #platform — and ask her about her rooftop garden.</p>
52
+ <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#5E4436;">Say hello in #platform — and ask her about her rooftop garden.</p>
53
53
  <!-- Bulletproof button -->
54
54
  <table role="presentation" cellpadding="0" cellspacing="0" border="0"><tr>
55
55
  <td align="center" bgcolor="#F4BA17" style="border-radius:26px;">
@@ -67,7 +67,7 @@
67
67
  <p class="eyebrow" style="margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;color:#6E3B0E;">Thông báo nội bộ</p>
68
68
  <h1 class="h1 ink" style="margin:0 0 14px;font-family:Arial,Helvetica,sans-serif;font-size:27px;line-height:1.25;font-weight:bold;color:#45210E;">Xin chào mừng An gia nhập Platform.</h1>
69
69
  <p class="ink" style="margin:0 0 16px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;color:#3d2c1e;">An gia nhập từ 1 tháng 9, mang theo một thập kỷ làm sản phẩm trên web và di động. Bạn ấy sẽ cùng làm phần xây lại thanh toán trước tiên.</p>
70
- <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;color:#6e5a4c;">Chào An trong #platform — và hỏi bạn ấy về khu vườn sân thượng nhé.</p>
70
+ <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;color:#5E4436;">Chào An trong #platform — và hỏi bạn ấy về khu vườn sân thượng nhé.</p>
71
71
  <table role="presentation" cellpadding="0" cellspacing="0" border="0"><tr>
72
72
  <td align="center" bgcolor="#F4BA17" style="border-radius:26px;">
73
73
  <!--[if mso]><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="https://cyberskill.world/team" style="height:48px;v-text-anchor:middle;width:250px;" arcsize="54%" strokecolor="#F4BA17" fillcolor="#F4BA17"><w:anchorlock/><center style="color:#45210E;font-family:Arial,sans-serif;font-size:15px;font-weight:bold;">Gặp đội ngũ &rarr;</center></v:roundrect><![endif]-->
@@ -79,8 +79,8 @@
79
79
  <!-- Footer -->
80
80
  <tr>
81
81
  <td class="px raise" bgcolor="#fbf4e9" style="background:#fbf4e9;padding:22px 32px;border-top:1px solid #e7d9c6;">
82
- <p class="muted" style="margin:0 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#6e5a4c;">Hiện Thực Hoá Ý Chí · Turn Your Will Into Real</p>
83
- <p class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.5;color:#6e5a4c;">CyberSkill Co., Ltd · 12 Nguyễn Huệ, Quận 1, Sài Gòn, Việt Nam<br><a class="footlink" href="https://cyberskill.world/unsubscribe" style="color:#6E3B0E;"><span lang="en">Unsubscribe</span> · <span lang="vi">Huỷ đăng ký</span></a> · <a class="footlink" href="https://cyberskill.world/preferences" style="color:#6E3B0E;"><span lang="en">Preferences</span> · <span lang="vi">Tuỳ chọn</span></a></p>
82
+ <p class="muted" style="margin:0 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#5E4436;">Hiện Thực Hoá Ý Chí · Turn Your Will Into Real</p>
83
+ <p class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.5;color:#5E4436;">CyberSkill Co., Ltd · 12 Nguyễn Huệ, Quận 1, Sài Gòn, Việt Nam<br><a class="footlink" href="https://cyberskill.world/unsubscribe" style="color:#6E3B0E;"><span lang="en">Unsubscribe</span> · <span lang="vi">Huỷ đăng ký</span></a> · <a class="footlink" href="https://cyberskill.world/preferences" style="color:#6E3B0E;"><span lang="en">Preferences</span> · <span lang="vi">Tuỳ chọn</span></a></p>
84
84
  </td>
85
85
  </tr>
86
86
  </table>
@@ -12,7 +12,7 @@
12
12
  <style>
13
13
  a{color:#6E3B0E}
14
14
  @media only screen and (max-width:600px){.container{width:100%!important}.px{padding-left:22px!important;padding-right:22px!important}}
15
- @media (prefers-color-scheme: dark){.bodybg{background:#1a1108!important}.container,.card{background:#221710!important;color:#f5ead9!important}.ink{color:#f5ead9!important}.muted{color:#c9b7a3!important}.box{background:#2b1e14!important}.eyebrow,.footlink{color:#F4BA17!important}}
15
+ @media (prefers-color-scheme: dark){.bodybg{background:#1a1108!important}.container,.card{background:#221710!important;color:#f5ead9!important}.ink{color:#f5ead9!important}.muted{color:#E9D6C2!important}.box{background:#2b1e14!important}.eyebrow,.footlink{color:#F4BA17!important}}
16
16
  </style>
17
17
  </head>
18
18
  <body class="bodybg" style="margin:0;padding:0;background:#efe6d8;-webkit-text-size-adjust:100%;">
@@ -32,9 +32,9 @@
32
32
  <tr><td class="px card" lang="en" style="padding:0 32px 6px;">
33
33
  <table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%" class="box" bgcolor="#fbf4e9" style="background:#fbf4e9;border:1px solid #e7d9c6;border-radius:12px;"><tr><td style="padding:16px 20px;">
34
34
  <table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%">
35
- <tr><td class="muted" style="font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#6e5a4c;">Amount due</td><td class="ink" align="right" style="font-family:Arial,Helvetica,sans-serif;font-size:20px;font-weight:bold;color:#45210E;">78.000.000&#8363;</td></tr>
35
+ <tr><td class="muted" style="font-family:Arial,Helvetica,sans-serif;font-size:14px;color:#5E4436;">Amount due</td><td class="ink" align="right" style="font-family:Arial,Helvetica,sans-serif;font-size:20px;font-weight:bold;color:#45210E;">78.000.000&#8363;</td></tr>
36
36
  <tr><td colspan="2" style="font-size:8px;line-height:8px;">&nbsp;</td></tr>
37
- <tr><td class="muted" style="font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#6e5a4c;">Due date</td><td class="ink" align="right" style="font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#45210E;">10/07/2026</td></tr>
37
+ <tr><td class="muted" style="font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#5E4436;">Due date</td><td class="ink" align="right" style="font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#45210E;">10/07/2026</td></tr>
38
38
  </table>
39
39
  </td></tr></table>
40
40
  </td></tr>
@@ -49,10 +49,10 @@
49
49
  <tr><td class="px card" lang="vi" bgcolor="#ffffff" style="background:#ffffff;padding:20px 32px 30px;">
50
50
  <p class="eyebrow" style="margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;color:#6E3B0E;">Một lời nhắc nhẹ</p>
51
51
  <p class="ink" style="margin:0 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.65;color:#3d2c1e;"><b>Hoá đơn INV-2026-0142 đã quá hạn 7 ngày.</b> Nếu bạn đã thanh toán, xin cảm ơn và bỏ qua thư này. Nếu cần xem lại, chỉ cần trả lời email.</p>
52
- <p class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.6;color:#6e5a4c;">Số tiền: <b class="ink" style="color:#45210E">78.000.000&#8363;</b> · Hạn: 10/07/2026 · Theo MSA, khoản chưa tranh chấp chịu lãi 1%/tháng sau hạn — chúng tôi thật lòng không mong điều đó.</p>
52
+ <p class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.6;color:#5E4436;">Số tiền: <b class="ink" style="color:#45210E">78.000.000&#8363;</b> · Hạn: 10/07/2026 · Theo MSA, khoản chưa tranh chấp chịu lãi 1%/tháng sau hạn — chúng tôi thật lòng không mong điều đó.</p>
53
53
  </td></tr>
54
54
  <tr><td class="px box" bgcolor="#fbf4e9" style="background:#fbf4e9;padding:20px 32px;border-top:1px solid #e7d9c6;">
55
- <p class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.5;color:#6e5a4c;">CyberSkill Co., Ltd · 12 Nguyễn Huệ, Quận 1, Sài Gòn · <a class="footlink" href="https://cyberskill.world/billing" style="color:#6E3B0E;"><span lang="en">Billing</span> / <span lang="vi">Thanh toán</span></a></p>
55
+ <p class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.5;color:#5E4436;">CyberSkill Co., Ltd · 12 Nguyễn Huệ, Quận 1, Sài Gòn · <a class="footlink" href="https://cyberskill.world/billing" style="color:#6E3B0E;"><span lang="en">Billing</span> / <span lang="vi">Thanh toán</span></a></p>
56
56
  </td></tr>
57
57
  </table>
58
58
  </td></tr></table>
@@ -23,7 +23,7 @@
23
23
  .container,.card{background:#221710!important;color:#f5ead9!important}
24
24
  .raise{background:#2b1e14!important}
25
25
  .ink{color:#f5ead9!important}
26
- .muted{color:#c9b7a3!important}
26
+ .muted{color:#E9D6C2!important}
27
27
  .eyebrow,.footlink{color:#F4BA17!important}
28
28
  }
29
29
  </style>
@@ -49,7 +49,7 @@
49
49
  <p class="eyebrow" style="margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;color:#6E3B0E;">Investor update · Q3 2026</p>
50
50
  <h1 class="h1 ink" style="margin:0 0 14px;font-family:Arial,Helvetica,sans-serif;font-size:27px;line-height:1.2;font-weight:bold;color:#45210E;">A strong quarter, one honest miss.</h1>
51
51
  <p class="ink" style="margin:0 0 16px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#3d2c1e;">Revenue up, runway healthy at 19 months, and delivery on time. We missed our hiring target by two roles — a deliberate choice to hold the bar rather than fill fast.</p>
52
- <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#6e5a4c;">The full numbers, commentary, and the ask are in the linked memo.</p>
52
+ <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#5E4436;">The full numbers, commentary, and the ask are in the linked memo.</p>
53
53
  <!-- Bulletproof button -->
54
54
  <table role="presentation" cellpadding="0" cellspacing="0" border="0"><tr>
55
55
  <td align="center" bgcolor="#F4BA17" style="border-radius:26px;">
@@ -67,7 +67,7 @@
67
67
  <p class="eyebrow" style="margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;color:#6E3B0E;">Cập nhật nhà đầu tư · Q3 2026</p>
68
68
  <h1 class="h1 ink" style="margin:0 0 14px;font-family:Arial,Helvetica,sans-serif;font-size:27px;line-height:1.25;font-weight:bold;color:#45210E;">Một quý vững vàng, một điểm chưa đạt.</h1>
69
69
  <p class="ink" style="margin:0 0 16px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;color:#3d2c1e;">Doanh thu tăng, số tháng còn vốn ở mức lành mạnh 19 tháng, giao đúng hạn. Chúng tôi hụt chỉ tiêu tuyển dụng hai vị trí — một lựa chọn có chủ đích: giữ chuẩn thay vì tuyển vội.</p>
70
- <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;color:#6e5a4c;">Toàn bộ con số, bình luận và đề xuất nằm trong bản ghi đính kèm.</p>
70
+ <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;color:#5E4436;">Toàn bộ con số, bình luận và đề xuất nằm trong bản ghi đính kèm.</p>
71
71
  <table role="presentation" cellpadding="0" cellspacing="0" border="0"><tr>
72
72
  <td align="center" bgcolor="#F4BA17" style="border-radius:26px;">
73
73
  <!--[if mso]><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="https://cyberskill.world/investors" style="height:48px;v-text-anchor:middle;width:250px;" arcsize="54%" strokecolor="#F4BA17" fillcolor="#F4BA17"><w:anchorlock/><center style="color:#45210E;font-family:Arial,sans-serif;font-size:15px;font-weight:bold;">Đọc bản cập nhật &rarr;</center></v:roundrect><![endif]-->
@@ -79,8 +79,8 @@
79
79
  <!-- Footer -->
80
80
  <tr>
81
81
  <td class="px raise" bgcolor="#fbf4e9" style="background:#fbf4e9;padding:22px 32px;border-top:1px solid #e7d9c6;">
82
- <p class="muted" style="margin:0 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#6e5a4c;">Hiện Thực Hoá Ý Chí · Turn Your Will Into Real</p>
83
- <p class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.5;color:#6e5a4c;">CyberSkill Co., Ltd · 12 Nguyễn Huệ, Quận 1, Sài Gòn, Việt Nam<br><a class="footlink" href="https://cyberskill.world/unsubscribe" style="color:#6E3B0E;"><span lang="en">Unsubscribe</span> · <span lang="vi">Huỷ đăng ký</span></a> · <a class="footlink" href="https://cyberskill.world/preferences" style="color:#6E3B0E;"><span lang="en">Preferences</span> · <span lang="vi">Tuỳ chọn</span></a></p>
82
+ <p class="muted" style="margin:0 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#5E4436;">Hiện Thực Hoá Ý Chí · Turn Your Will Into Real</p>
83
+ <p class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.5;color:#5E4436;">CyberSkill Co., Ltd · 12 Nguyễn Huệ, Quận 1, Sài Gòn, Việt Nam<br><a class="footlink" href="https://cyberskill.world/unsubscribe" style="color:#6E3B0E;"><span lang="en">Unsubscribe</span> · <span lang="vi">Huỷ đăng ký</span></a> · <a class="footlink" href="https://cyberskill.world/preferences" style="color:#6E3B0E;"><span lang="en">Preferences</span> · <span lang="vi">Tuỳ chọn</span></a></p>
84
84
  </td>
85
85
  </tr>
86
86
  </table>
@@ -23,7 +23,7 @@
23
23
  .container,.card{background:#221710!important;color:#f5ead9!important}
24
24
  .raise{background:#2b1e14!important}
25
25
  .ink{color:#f5ead9!important}
26
- .muted{color:#c9b7a3!important}
26
+ .muted{color:#E9D6C2!important}
27
27
  .eyebrow,.footlink{color:#F4BA17!important}
28
28
  }
29
29
  </style>
@@ -49,7 +49,7 @@
49
49
  <p class="eyebrow" style="margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;color:#6E3B0E;">Just shipped</p>
50
50
  <h1 class="h1 ink" style="margin:0 0 14px;font-family:Arial,Helvetica,sans-serif;font-size:27px;line-height:1.2;font-weight:bold;color:#45210E;">15 element packs, verified.</h1>
51
51
  <p class="ink" style="margin:0 0 16px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#3d2c1e;">Theme × Element × Language × Style across the whole system. The same components re-skin with no code change.</p>
52
- <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#6e5a4c;">See them live in the playground, then pick your product’s pack.</p>
52
+ <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#5E4436;">See them live in the playground, then pick your product’s pack.</p>
53
53
  <!-- Bulletproof button -->
54
54
  <table role="presentation" cellpadding="0" cellspacing="0" border="0"><tr>
55
55
  <td align="center" bgcolor="#F4BA17" style="border-radius:26px;">
@@ -67,7 +67,7 @@
67
67
  <p class="eyebrow" style="margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;color:#6E3B0E;">Vừa ra mắt</p>
68
68
  <h1 class="h1 ink" style="margin:0 0 14px;font-family:Arial,Helvetica,sans-serif;font-size:27px;line-height:1.25;font-weight:bold;color:#45210E;">15 element pack, đã kiểm định.</h1>
69
69
  <p class="ink" style="margin:0 0 16px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;color:#3d2c1e;">Theme × Element × Language × Style trên toàn hệ thống. Cùng một component đổi da theo trục mà không cần sửa code.</p>
70
- <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;color:#6e5a4c;">Xem trực tiếp trong playground, rồi chọn pack cho sản phẩm của bạn.</p>
70
+ <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;color:#5E4436;">Xem trực tiếp trong playground, rồi chọn pack cho sản phẩm của bạn.</p>
71
71
  <table role="presentation" cellpadding="0" cellspacing="0" border="0"><tr>
72
72
  <td align="center" bgcolor="#F4BA17" style="border-radius:26px;">
73
73
  <!--[if mso]><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="https://cyberskill.world/packs" style="height:48px;v-text-anchor:middle;width:250px;" arcsize="54%" strokecolor="#F4BA17" fillcolor="#F4BA17"><w:anchorlock/><center style="color:#45210E;font-family:Arial,sans-serif;font-size:15px;font-weight:bold;">Khám phá các pack &rarr;</center></v:roundrect><![endif]-->
@@ -79,8 +79,8 @@
79
79
  <!-- Footer -->
80
80
  <tr>
81
81
  <td class="px raise" bgcolor="#fbf4e9" style="background:#fbf4e9;padding:22px 32px;border-top:1px solid #e7d9c6;">
82
- <p class="muted" style="margin:0 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#6e5a4c;">Hiện Thực Hoá Ý Chí · Turn Your Will Into Real</p>
83
- <p class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.5;color:#6e5a4c;">CyberSkill Co., Ltd · 12 Nguyễn Huệ, Quận 1, Sài Gòn, Việt Nam<br><a class="footlink" href="https://cyberskill.world/unsubscribe" style="color:#6E3B0E;"><span lang="en">Unsubscribe</span> · <span lang="vi">Huỷ đăng ký</span></a> · <a class="footlink" href="https://cyberskill.world/preferences" style="color:#6E3B0E;"><span lang="en">Preferences</span> · <span lang="vi">Tuỳ chọn</span></a></p>
82
+ <p class="muted" style="margin:0 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#5E4436;">Hiện Thực Hoá Ý Chí · Turn Your Will Into Real</p>
83
+ <p class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.5;color:#5E4436;">CyberSkill Co., Ltd · 12 Nguyễn Huệ, Quận 1, Sài Gòn, Việt Nam<br><a class="footlink" href="https://cyberskill.world/unsubscribe" style="color:#6E3B0E;"><span lang="en">Unsubscribe</span> · <span lang="vi">Huỷ đăng ký</span></a> · <a class="footlink" href="https://cyberskill.world/preferences" style="color:#6E3B0E;"><span lang="en">Preferences</span> · <span lang="vi">Tuỳ chọn</span></a></p>
84
84
  </td>
85
85
  </tr>
86
86
  </table>
@@ -12,7 +12,7 @@
12
12
  <style>
13
13
  a{color:#6E3B0E}
14
14
  @media only screen and (max-width:600px){.container{width:100%!important}.px{padding-left:22px!important;padding-right:22px!important}}
15
- @media (prefers-color-scheme: dark){.bodybg{background:#1a1108!important}.container,.card{background:#221710!important;color:#f5ead9!important}.ink{color:#f5ead9!important}.muted{color:#c9b7a3!important}.raise{background:#2b1e14!important}.eyebrow,.footlink{color:#F4BA17!important}}
15
+ @media (prefers-color-scheme: dark){.bodybg{background:#1a1108!important}.container,.card{background:#221710!important;color:#f5ead9!important}.ink{color:#f5ead9!important}.muted{color:#E9D6C2!important}.raise{background:#2b1e14!important}.eyebrow,.footlink{color:#F4BA17!important}}
16
16
  </style>
17
17
  </head>
18
18
  <body class="bodybg" style="margin:0;padding:0;background:#efe6d8;-webkit-text-size-adjust:100%;">
@@ -30,21 +30,21 @@
30
30
  <tr><td class="px card" lang="en" bgcolor="#ffffff" style="background:#ffffff;padding:32px 32px 6px;">
31
31
  <h1 class="ink" style="margin:0 0 12px;font-family:Arial,Helvetica,sans-serif;font-size:26px;line-height:1.2;font-weight:bold;color:#45210E;">Design System v1.6 is live</h1>
32
32
  <p class="ink" style="margin:0 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#3d2c1e;">Warmer, faster, and bilingual by default. Here's what it means for your next release.</p>
33
- <p lang="vi" class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.6;color:#6e5a4c;">Hệ thiết kế v1.6 — ấm hơn, nhanh hơn, song ngữ mặc định. Đây là điều nó mang lại cho bản phát hành tiếp theo của bạn.</p>
33
+ <p lang="vi" class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.6;color:#5E4436;">Hệ thiết kế v1.6 — ấm hơn, nhanh hơn, song ngữ mặc định. Đây là điều nó mang lại cho bản phát hành tiếp theo của bạn.</p>
34
34
  </td></tr>
35
35
  <!-- Story cards (stacked rows) -->
36
36
  <tr><td class="px card" lang="en" style="padding:20px 32px 4px;">
37
37
  <table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%" class="raise" bgcolor="#fbf4e9" style="background:#fbf4e9;border-radius:12px;"><tr><td style="padding:16px 18px;">
38
38
  <p class="eyebrow" style="margin:0 0 4px;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;color:#6E3B0E;">Liquid Glass · Vật liệu kính lỏng</p>
39
39
  <p class="ink" style="margin:0 0 4px;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.55;color:#3d2c1e;">Five materials, now one class away on any surface — nav, cards, modals.</p>
40
- <p lang="vi" class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.55;color:#6e5a4c;">Năm chất liệu kính, nay chỉ cách một class trên mọi bề mặt — thanh điều hướng, thẻ, hộp thoại.</p>
40
+ <p lang="vi" class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.55;color:#5E4436;">Năm chất liệu kính, nay chỉ cách một class trên mọi bề mặt — thanh điều hướng, thẻ, hộp thoại.</p>
41
41
  </td></tr></table>
42
42
  </td></tr>
43
43
  <tr><td class="px card" lang="en" style="padding:12px 32px 4px;">
44
44
  <table role="presentation" cellpadding="0" cellspacing="0" border="0" width="100%" class="raise" bgcolor="#fbf4e9" style="background:#fbf4e9;border-radius:12px;"><tr><td style="padding:16px 18px;">
45
45
  <p class="eyebrow" style="margin:0 0 4px;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;color:#6E3B0E;">15 element packs · 15 gói nguyên tố</p>
46
46
  <p class="ink" style="margin:0 0 4px;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.55;color:#3d2c1e;">Theme × Element × Language × Style — verified across the whole set.</p>
47
- <p lang="vi" class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.55;color:#6e5a4c;">Theme × Element × Language × Style — đã kiểm định trên toàn bộ hệ thống.</p>
47
+ <p lang="vi" class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.55;color:#5E4436;">Theme × Element × Language × Style — đã kiểm định trên toàn bộ hệ thống.</p>
48
48
  </td></tr></table>
49
49
  </td></tr>
50
50
  <!-- CTA -->
@@ -56,8 +56,8 @@
56
56
  </td></tr>
57
57
  <!-- Footer -->
58
58
  <tr><td class="px raise" bgcolor="#fbf4e9" style="background:#fbf4e9;padding:22px 32px;border-top:1px solid #e7d9c6;">
59
- <p class="muted" style="margin:0 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#6e5a4c;">Hiện Thực Hoá Ý Chí · Turn Your Will Into Real</p>
60
- <p class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.5;color:#6e5a4c;">CyberSkill Co., Ltd · 12 Nguyễn Huệ, Quận 1, Sài Gòn, Việt Nam<br><a class="footlink" href="https://cyberskill.world/unsubscribe" style="color:#6E3B0E;"><span lang="en">Unsubscribe</span> · <span lang="vi">Huỷ đăng ký</span></a></p>
59
+ <p class="muted" style="margin:0 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#5E4436;">Hiện Thực Hoá Ý Chí · Turn Your Will Into Real</p>
60
+ <p class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.5;color:#5E4436;">CyberSkill Co., Ltd · 12 Nguyễn Huệ, Quận 1, Sài Gòn, Việt Nam<br><a class="footlink" href="https://cyberskill.world/unsubscribe" style="color:#6E3B0E;"><span lang="en">Unsubscribe</span> · <span lang="vi">Huỷ đăng ký</span></a></p>
61
61
  </td></tr>
62
62
  </table>
63
63
  </td></tr></table>
@@ -23,7 +23,7 @@
23
23
  .container,.card{background:#221710!important;color:#f5ead9!important}
24
24
  .raise{background:#2b1e14!important}
25
25
  .ink{color:#f5ead9!important}
26
- .muted{color:#c9b7a3!important}
26
+ .muted{color:#E9D6C2!important}
27
27
  .eyebrow,.footlink{color:#F4BA17!important}
28
28
  }
29
29
  </style>
@@ -49,7 +49,7 @@
49
49
  <p class="eyebrow" style="margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;color:#6E3B0E;">Weekly update · Checkout</p>
50
50
  <h1 class="h1 ink" style="margin:0 0 14px;font-family:Arial,Helvetica,sans-serif;font-size:27px;line-height:1.2;font-weight:bold;color:#45210E;">On track — one risk to watch.</h1>
51
51
  <p class="ink" style="margin:0 0 16px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#3d2c1e;">Two of three deliverables are done and in review. The A/B kit is a week behind on data, not build — we flagged it early so there are no surprises.</p>
52
- <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#6e5a4c;">Full detail, decisions, and next steps are on your Status Hub.</p>
52
+ <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#5E4436;">Full detail, decisions, and next steps are on your Status Hub.</p>
53
53
  <!-- Bulletproof button -->
54
54
  <table role="presentation" cellpadding="0" cellspacing="0" border="0"><tr>
55
55
  <td align="center" bgcolor="#F4BA17" style="border-radius:26px;">
@@ -67,7 +67,7 @@
67
67
  <p class="eyebrow" style="margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;color:#6E3B0E;">Cập nhật tuần · Thanh toán</p>
68
68
  <h1 class="h1 ink" style="margin:0 0 14px;font-family:Arial,Helvetica,sans-serif;font-size:27px;line-height:1.25;font-weight:bold;color:#45210E;">Đúng tiến độ — một rủi ro cần theo dõi.</h1>
69
69
  <p class="ink" style="margin:0 0 16px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;color:#3d2c1e;">Hai trong ba hạng mục đã xong và đang review. Bộ A/B chậm một tuần vì dữ liệu, không phải do code — chúng tôi báo sớm để không có bất ngờ.</p>
70
- <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;color:#6e5a4c;">Chi tiết, quyết định và bước tiếp theo đều trên Status Hub của bạn.</p>
70
+ <p class="muted" style="margin:0 0 26px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;color:#5E4436;">Chi tiết, quyết định và bước tiếp theo đều trên Status Hub của bạn.</p>
71
71
  <table role="presentation" cellpadding="0" cellspacing="0" border="0"><tr>
72
72
  <td align="center" bgcolor="#F4BA17" style="border-radius:26px;">
73
73
  <!--[if mso]><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="https://cyberskill.world/status" style="height:48px;v-text-anchor:middle;width:250px;" arcsize="54%" strokecolor="#F4BA17" fillcolor="#F4BA17"><w:anchorlock/><center style="color:#45210E;font-family:Arial,sans-serif;font-size:15px;font-weight:bold;">Mở Status Hub &rarr;</center></v:roundrect><![endif]-->
@@ -79,8 +79,8 @@
79
79
  <!-- Footer -->
80
80
  <tr>
81
81
  <td class="px raise" bgcolor="#fbf4e9" style="background:#fbf4e9;padding:22px 32px;border-top:1px solid #e7d9c6;">
82
- <p class="muted" style="margin:0 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#6e5a4c;">Hiện Thực Hoá Ý Chí · Turn Your Will Into Real</p>
83
- <p class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.5;color:#6e5a4c;">CyberSkill Co., Ltd · 12 Nguyễn Huệ, Quận 1, Sài Gòn, Việt Nam<br><a class="footlink" href="https://cyberskill.world/unsubscribe" style="color:#6E3B0E;"><span lang="en">Unsubscribe</span> · <span lang="vi">Huỷ đăng ký</span></a> · <a class="footlink" href="https://cyberskill.world/preferences" style="color:#6E3B0E;"><span lang="en">Preferences</span> · <span lang="vi">Tuỳ chọn</span></a></p>
82
+ <p class="muted" style="margin:0 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#5E4436;">Hiện Thực Hoá Ý Chí · Turn Your Will Into Real</p>
83
+ <p class="muted" style="margin:0;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.5;color:#5E4436;">CyberSkill Co., Ltd · 12 Nguyễn Huệ, Quận 1, Sài Gòn, Việt Nam<br><a class="footlink" href="https://cyberskill.world/unsubscribe" style="color:#6E3B0E;"><span lang="en">Unsubscribe</span> · <span lang="vi">Huỷ đăng ký</span></a> · <a class="footlink" href="https://cyberskill.world/preferences" style="color:#6E3B0E;"><span lang="en">Preferences</span> · <span lang="vi">Tuỳ chọn</span></a></p>
84
84
  </td>
85
85
  </tr>
86
86
  </table>