howone 0.1.20 → 0.1.22

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 (293) hide show
  1. package/package.json +1 -1
  2. package/templates/vite/.howone/skills/hallmark/LICENSE +21 -0
  3. package/templates/vite/.howone/skills/hallmark/README.md +147 -0
  4. package/templates/vite/.howone/skills/hallmark/ROADMAP.md +201 -0
  5. package/templates/vite/.howone/skills/hallmark/SKILL.md +551 -0
  6. package/templates/vite/.howone/skills/hallmark/docs/recipes.md +186 -0
  7. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-anya.jpg +0 -0
  8. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-bananastudio.jpg +0 -0
  9. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-hyperlane.jpg +0 -0
  10. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-najm.jpg +0 -0
  11. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-slow-pour.jpg +0 -0
  12. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-soroe.jpg +0 -0
  13. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-tally.jpg +0 -0
  14. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-wayfare.jpg +0 -0
  15. package/templates/vite/.howone/skills/hallmark/docs/study-examples.md +176 -0
  16. package/templates/vite/.howone/skills/hallmark/docs/talk-slides.md +364 -0
  17. package/templates/vite/.howone/skills/hallmark/package.json +36 -0
  18. package/templates/vite/.howone/skills/hallmark/references/anti-patterns.md +412 -0
  19. package/templates/vite/.howone/skills/hallmark/references/assets.md +399 -0
  20. package/templates/vite/.howone/skills/hallmark/references/color.md +95 -0
  21. package/templates/vite/.howone/skills/hallmark/references/component-cookbook.md +256 -0
  22. package/templates/vite/.howone/skills/hallmark/references/components/c1-outlined-chip.md +12 -0
  23. package/templates/vite/.howone/skills/hallmark/references/components/c2-inline-form-as-cta.md +16 -0
  24. package/templates/vite/.howone/skills/hallmark/references/components/c3-typographic-link.md +8 -0
  25. package/templates/vite/.howone/skills/hallmark/references/components/c4-sticky-bottom-bar.md +16 -0
  26. package/templates/vite/.howone/skills/hallmark/references/components/f1-bento-grid.md +20 -0
  27. package/templates/vite/.howone/skills/hallmark/references/components/f2-sticky-scroll-stack.md +20 -0
  28. package/templates/vite/.howone/skills/hallmark/references/components/f3-tabular-spec-sheet.md +11 -0
  29. package/templates/vite/.howone/skills/hallmark/references/components/f4-step-sequence.md +11 -0
  30. package/templates/vite/.howone/skills/hallmark/references/components/f5-annotated-screenshot.md +11 -0
  31. package/templates/vite/.howone/skills/hallmark/references/components/f6-product-card-grid.md +41 -0
  32. package/templates/vite/.howone/skills/hallmark/references/components/ft1-mast-headed.md +13 -0
  33. package/templates/vite/.howone/skills/hallmark/references/components/ft2-inline-rule-single-line.md +10 -0
  34. package/templates/vite/.howone/skills/hallmark/references/components/ft3-index-style-category-list.md +12 -0
  35. package/templates/vite/.howone/skills/hallmark/references/components/ft4-dense-typographic.md +10 -0
  36. package/templates/vite/.howone/skills/hallmark/references/components/ft5-statement.md +21 -0
  37. package/templates/vite/.howone/skills/hallmark/references/components/ft6-letter-close.md +19 -0
  38. package/templates/vite/.howone/skills/hallmark/references/components/ft7-newsletter-first.md +27 -0
  39. package/templates/vite/.howone/skills/hallmark/references/components/ft8-marquee-scroll.md +25 -0
  40. package/templates/vite/.howone/skills/hallmark/references/components/h1-marquee.md +15 -0
  41. package/templates/vite/.howone/skills/hallmark/references/components/h2-split-diptych.md +15 -0
  42. package/templates/vite/.howone/skills/hallmark/references/components/h3-quote-led.md +11 -0
  43. package/templates/vite/.howone/skills/hallmark/references/components/h4-stat-led.md +14 -0
  44. package/templates/vite/.howone/skills/hallmark/references/components/h5-letter-hero.md +11 -0
  45. package/templates/vite/.howone/skills/hallmark/references/components/h6-photographic-fold.md +16 -0
  46. package/templates/vite/.howone/skills/hallmark/references/components/h7-demo-video-clipped-by-viewport-edge.md +27 -0
  47. package/templates/vite/.howone/skills/hallmark/references/components/h8-mockup-split-browser-framed.md +23 -0
  48. package/templates/vite/.howone/skills/hallmark/references/components/h9-custom-illustration-centerpiece.md +27 -0
  49. package/templates/vite/.howone/skills/hallmark/references/components/n1-wordmark-2-links.md +12 -0
  50. package/templates/vite/.howone/skills/hallmark/references/components/n10-floating-on-scroll-morph.md +19 -0
  51. package/templates/vite/.howone/skills/hallmark/references/components/n2-floating-chip.md +14 -0
  52. package/templates/vite/.howone/skills/hallmark/references/components/n3-side-rail.md +14 -0
  53. package/templates/vite/.howone/skills/hallmark/references/components/n4-hidden-behind-k.md +9 -0
  54. package/templates/vite/.howone/skills/hallmark/references/components/n5-floating-pill.md +28 -0
  55. package/templates/vite/.howone/skills/hallmark/references/components/n6-newspaper-masthead.md +24 -0
  56. package/templates/vite/.howone/skills/hallmark/references/components/n7-brutal-slab.md +22 -0
  57. package/templates/vite/.howone/skills/hallmark/references/components/n8-terminal-command.md +21 -0
  58. package/templates/vite/.howone/skills/hallmark/references/components/n9-edge-aligned-minimal.md +17 -0
  59. package/templates/vite/.howone/skills/hallmark/references/components/s1-left-margin-numbered.md +15 -0
  60. package/templates/vite/.howone/skills/hallmark/references/components/s2-hanging.md +13 -0
  61. package/templates/vite/.howone/skills/hallmark/references/components/s3-sticky-pinned.md +19 -0
  62. package/templates/vite/.howone/skills/hallmark/references/components/s4-inline-no-break.md +11 -0
  63. package/templates/vite/.howone/skills/hallmark/references/components/s5-bottom-anchored.md +13 -0
  64. package/templates/vite/.howone/skills/hallmark/references/components/t1-pull-quote-with-marginalia.md +12 -0
  65. package/templates/vite/.howone/skills/hallmark/references/components/t2-logo-wall-hairline.md +19 -0
  66. package/templates/vite/.howone/skills/hallmark/references/components/t3-single-huge-quote.md +11 -0
  67. package/templates/vite/.howone/skills/hallmark/references/components/t4-numbered-stat-strip.md +14 -0
  68. package/templates/vite/.howone/skills/hallmark/references/contract.md +24 -0
  69. package/templates/vite/.howone/skills/hallmark/references/copy.md +182 -0
  70. package/templates/vite/.howone/skills/hallmark/references/custom-craft.md +626 -0
  71. package/templates/vite/.howone/skills/hallmark/references/custom-theme.md +329 -0
  72. package/templates/vite/.howone/skills/hallmark/references/design-md.md +116 -0
  73. package/templates/vite/.howone/skills/hallmark/references/export-formats.md +328 -0
  74. package/templates/vite/.howone/skills/hallmark/references/floating-nav.md +89 -0
  75. package/templates/vite/.howone/skills/hallmark/references/genres/atmospheric.md +65 -0
  76. package/templates/vite/.howone/skills/hallmark/references/genres/editorial.md +70 -0
  77. package/templates/vite/.howone/skills/hallmark/references/genres/modern-minimal.md +67 -0
  78. package/templates/vite/.howone/skills/hallmark/references/genres/playful.md +65 -0
  79. package/templates/vite/.howone/skills/hallmark/references/hero-enrichment.md +474 -0
  80. package/templates/vite/.howone/skills/hallmark/references/imagery-kit.md +170 -0
  81. package/templates/vite/.howone/skills/hallmark/references/interaction-and-states.md +207 -0
  82. package/templates/vite/.howone/skills/hallmark/references/layout-and-space.md +111 -0
  83. package/templates/vite/.howone/skills/hallmark/references/macrostructures/01-bento-grid.md +35 -0
  84. package/templates/vite/.howone/skills/hallmark/references/macrostructures/02-long-document.md +34 -0
  85. package/templates/vite/.howone/skills/hallmark/references/macrostructures/03-marquee-hero.md +31 -0
  86. package/templates/vite/.howone/skills/hallmark/references/macrostructures/04-stat-led.md +32 -0
  87. package/templates/vite/.howone/skills/hallmark/references/macrostructures/05-workbench.md +32 -0
  88. package/templates/vite/.howone/skills/hallmark/references/macrostructures/06-conversational-faq.md +33 -0
  89. package/templates/vite/.howone/skills/hallmark/references/macrostructures/07-manifesto.md +32 -0
  90. package/templates/vite/.howone/skills/hallmark/references/macrostructures/08-photographic.md +34 -0
  91. package/templates/vite/.howone/skills/hallmark/references/macrostructures/09-quote-led.md +32 -0
  92. package/templates/vite/.howone/skills/hallmark/references/macrostructures/10-specimen.md +32 -0
  93. package/templates/vite/.howone/skills/hallmark/references/macrostructures/11-catalogue.md +23 -0
  94. package/templates/vite/.howone/skills/hallmark/references/macrostructures/12-letter.md +23 -0
  95. package/templates/vite/.howone/skills/hallmark/references/macrostructures/13-index-first.md +23 -0
  96. package/templates/vite/.howone/skills/hallmark/references/macrostructures/14-narrative-workflow.md +23 -0
  97. package/templates/vite/.howone/skills/hallmark/references/macrostructures/15-split-studio.md +23 -0
  98. package/templates/vite/.howone/skills/hallmark/references/macrostructures/16-feature-stack.md +23 -0
  99. package/templates/vite/.howone/skills/hallmark/references/macrostructures/17-type-specimen.md +23 -0
  100. package/templates/vite/.howone/skills/hallmark/references/macrostructures/18-portfolio-grid.md +23 -0
  101. package/templates/vite/.howone/skills/hallmark/references/macrostructures/19-map-diagram.md +23 -0
  102. package/templates/vite/.howone/skills/hallmark/references/macrostructures/20-ecosystem-index.md +23 -0
  103. package/templates/vite/.howone/skills/hallmark/references/macrostructures/21-component-playground.md +23 -0
  104. package/templates/vite/.howone/skills/hallmark/references/macrostructures.md +89 -0
  105. package/templates/vite/.howone/skills/hallmark/references/microinteractions.md +260 -0
  106. package/templates/vite/.howone/skills/hallmark/references/motion.md +109 -0
  107. package/templates/vite/.howone/skills/hallmark/references/preview-examples.md +49 -0
  108. package/templates/vite/.howone/skills/hallmark/references/responsive.md +138 -0
  109. package/templates/vite/.howone/skills/hallmark/references/slop-test.md +205 -0
  110. package/templates/vite/.howone/skills/hallmark/references/structure.md +164 -0
  111. package/templates/vite/.howone/skills/hallmark/references/study.md +486 -0
  112. package/templates/vite/.howone/skills/hallmark/references/typography.md +243 -0
  113. package/templates/vite/.howone/skills/hallmark/references/verbs/audit.md +25 -0
  114. package/templates/vite/.howone/skills/hallmark/references/verbs/redesign.md +269 -0
  115. package/templates/vite/.howone/skills/hallmark/site/OG-hallmark.png +0 -0
  116. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/brief.md +71 -0
  117. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/index.html +64 -0
  118. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/style.css +240 -0
  119. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/brief.md +65 -0
  120. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/index.html +105 -0
  121. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/style.css +250 -0
  122. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/brief.md +64 -0
  123. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/index.html +131 -0
  124. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/style.css +240 -0
  125. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/brief.md +67 -0
  126. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/index.html +86 -0
  127. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/style.css +262 -0
  128. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/brief.md +63 -0
  129. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/index.html +167 -0
  130. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/style.css +457 -0
  131. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/brief.md +65 -0
  132. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/index.html +159 -0
  133. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/style.css +288 -0
  134. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/brief.md +64 -0
  135. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/index.html +146 -0
  136. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/style.css +484 -0
  137. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/brief.md +64 -0
  138. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/index.html +116 -0
  139. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/style.css +354 -0
  140. package/templates/vite/.howone/skills/hallmark/site/_tests/09-slow-pour/index.html +638 -0
  141. package/templates/vite/.howone/skills/hallmark/site/_tests/10-owl-hours/index.html +515 -0
  142. package/templates/vite/.howone/skills/hallmark/site/_tests/11-soroe-ceramics/index.html +515 -0
  143. package/templates/vite/.howone/skills/hallmark/site/_tests/12-loafer/index.html +608 -0
  144. package/templates/vite/.howone/skills/hallmark/site/_tests/13-alma/index.html +587 -0
  145. package/templates/vite/.howone/skills/hallmark/site/_tests/README.md +157 -0
  146. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-loop.mp4 +0 -0
  147. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-still.jpg +0 -0
  148. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-example.mp4 +0 -0
  149. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-still.jpg +0 -0
  150. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-loop.mp4 +0 -0
  151. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-still.jpg +0 -0
  152. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Podcast-loop.mp4 +0 -0
  153. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-loop.mp4 +0 -0
  154. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-still.jpg +0 -0
  155. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-loop.mp4 +0 -0
  156. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-still.jpg +0 -0
  157. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/after-quiet-hour.png +0 -0
  158. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-loop.mp4 +0 -0
  159. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-still.jpg +0 -0
  160. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/audit-example.png +0 -0
  161. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/before-quiet-hour.png +0 -0
  162. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/example-redesign-uractivation.png +0 -0
  163. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-loop.mp4 +0 -0
  164. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-still.jpg +0 -0
  165. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/study-example.png +0 -0
  166. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/uractivation-after-loop.mp4 +0 -0
  167. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-loop.mp4 +0 -0
  168. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-still.jpg +0 -0
  169. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/index.html +77 -0
  170. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/style.css +238 -0
  171. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/index.html +110 -0
  172. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/style.css +326 -0
  173. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/index.html +134 -0
  174. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/style.css +262 -0
  175. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/README.md +30 -0
  176. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/README.md +17 -0
  177. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/audit-report.md +56 -0
  178. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/input.html +160 -0
  179. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/notes.md +29 -0
  180. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/input.html +63 -0
  181. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/notes.md +72 -0
  182. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/output.html +374 -0
  183. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/diagnosis.md +52 -0
  184. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/input-description.md +29 -0
  185. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/notes.md +61 -0
  186. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.css +193 -0
  187. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.html +66 -0
  188. package/templates/vite/.howone/skills/hallmark/site/css/base.css +194 -0
  189. package/templates/vite/.howone/skills/hallmark/site/css/components.css +4886 -0
  190. package/templates/vite/.howone/skills/hallmark/site/css/sections.css +2072 -0
  191. package/templates/vite/.howone/skills/hallmark/site/css/tokens.css +1129 -0
  192. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/index.html +475 -0
  193. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/styles.css +1584 -0
  194. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/tokens.css +96 -0
  195. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/index.html +344 -0
  196. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/script.js +103 -0
  197. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/styles.css +1103 -0
  198. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/tokens.css +83 -0
  199. package/templates/vite/.howone/skills/hallmark/site/examples/najm/index.html +368 -0
  200. package/templates/vite/.howone/skills/hallmark/site/examples/najm/script.js +133 -0
  201. package/templates/vite/.howone/skills/hallmark/site/examples/najm/styles.css +1062 -0
  202. package/templates/vite/.howone/skills/hallmark/site/examples/najm/tokens.css +97 -0
  203. package/templates/vite/.howone/skills/hallmark/site/examples/tally/app.js +84 -0
  204. package/templates/vite/.howone/skills/hallmark/site/examples/tally/index.html +446 -0
  205. package/templates/vite/.howone/skills/hallmark/site/examples/tally/styles.css +1087 -0
  206. package/templates/vite/.howone/skills/hallmark/site/examples/tally/tokens.css +101 -0
  207. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/index.html +359 -0
  208. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/style.css +1168 -0
  209. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/tokens.css +81 -0
  210. package/templates/vite/.howone/skills/hallmark/site/favicon-dark.svg +5 -0
  211. package/templates/vite/.howone/skills/hallmark/site/favicon-light.svg +5 -0
  212. package/templates/vite/.howone/skills/hallmark/site/index.html +1043 -0
  213. package/templates/vite/.howone/skills/hallmark/site/js/main.js +1175 -0
  214. package/templates/vite/.howone/skills/hallmark/vercel.json +6 -0
  215. package/templates/vite/.howone/skills/howone-sdk/01-architect/01-app-generation.md +101 -0
  216. package/templates/vite/.howone/skills/howone-sdk/02-database/01-schema-design.md +147 -0
  217. package/templates/vite/.howone/skills/howone-sdk/02-database/02-schema-operations.md +96 -0
  218. package/templates/vite/.howone/skills/howone-sdk/02-database/03-data-access-patterns.md +172 -0
  219. package/templates/vite/.howone/skills/howone-sdk/{references → 03-sdk}/01-client-setup.md +3 -3
  220. package/templates/vite/.howone/skills/howone-sdk/{references/04-auth.md → 03-sdk/03-auth.md} +120 -3
  221. package/templates/vite/.howone/skills/howone-sdk/04-ai/.gitkeep +1 -0
  222. package/templates/vite/.howone/skills/howone-sdk/SKILL.md +67 -93
  223. package/templates/vite/.howone/skills/howone-sdk/agents/openai.yaml +3 -3
  224. package/templates/vite/.howone/skills/impeccable/SKILL.md +168 -0
  225. package/templates/vite/.howone/skills/impeccable/agents/impeccable-asset-producer.md +101 -0
  226. package/templates/vite/.howone/skills/impeccable/reference/adapt.md +190 -0
  227. package/templates/vite/.howone/skills/impeccable/reference/animate.md +175 -0
  228. package/templates/vite/.howone/skills/impeccable/reference/audit.md +133 -0
  229. package/templates/vite/.howone/skills/impeccable/reference/bolder.md +113 -0
  230. package/templates/vite/.howone/skills/impeccable/reference/brand.md +118 -0
  231. package/templates/vite/.howone/skills/impeccable/reference/clarify.md +174 -0
  232. package/templates/vite/.howone/skills/impeccable/reference/codex.md +105 -0
  233. package/templates/vite/.howone/skills/impeccable/reference/cognitive-load.md +106 -0
  234. package/templates/vite/.howone/skills/impeccable/reference/color-and-contrast.md +105 -0
  235. package/templates/vite/.howone/skills/impeccable/reference/colorize.md +154 -0
  236. package/templates/vite/.howone/skills/impeccable/reference/craft.md +123 -0
  237. package/templates/vite/.howone/skills/impeccable/reference/critique.md +273 -0
  238. package/templates/vite/.howone/skills/impeccable/reference/delight.md +302 -0
  239. package/templates/vite/.howone/skills/impeccable/reference/distill.md +111 -0
  240. package/templates/vite/.howone/skills/impeccable/reference/document.md +427 -0
  241. package/templates/vite/.howone/skills/impeccable/reference/extract.md +69 -0
  242. package/templates/vite/.howone/skills/impeccable/reference/harden.md +347 -0
  243. package/templates/vite/.howone/skills/impeccable/reference/heuristics-scoring.md +234 -0
  244. package/templates/vite/.howone/skills/impeccable/reference/interaction-design.md +195 -0
  245. package/templates/vite/.howone/skills/impeccable/reference/layout.md +141 -0
  246. package/templates/vite/.howone/skills/impeccable/reference/live.md +622 -0
  247. package/templates/vite/.howone/skills/impeccable/reference/motion-design.md +109 -0
  248. package/templates/vite/.howone/skills/impeccable/reference/onboard.md +234 -0
  249. package/templates/vite/.howone/skills/impeccable/reference/optimize.md +258 -0
  250. package/templates/vite/.howone/skills/impeccable/reference/overdrive.md +130 -0
  251. package/templates/vite/.howone/skills/impeccable/reference/personas.md +179 -0
  252. package/templates/vite/.howone/skills/impeccable/reference/polish.md +242 -0
  253. package/templates/vite/.howone/skills/impeccable/reference/product.md +62 -0
  254. package/templates/vite/.howone/skills/impeccable/reference/quieter.md +99 -0
  255. package/templates/vite/.howone/skills/impeccable/reference/responsive-design.md +114 -0
  256. package/templates/vite/.howone/skills/impeccable/reference/shape.md +165 -0
  257. package/templates/vite/.howone/skills/impeccable/reference/spatial-design.md +100 -0
  258. package/templates/vite/.howone/skills/impeccable/reference/teach.md +156 -0
  259. package/templates/vite/.howone/skills/impeccable/reference/typeset.md +124 -0
  260. package/templates/vite/.howone/skills/impeccable/reference/typography.md +159 -0
  261. package/templates/vite/.howone/skills/impeccable/reference/ux-writing.md +107 -0
  262. package/templates/vite/.howone/skills/impeccable/scripts/cleanup-deprecated.mjs +284 -0
  263. package/templates/vite/.howone/skills/impeccable/scripts/command-metadata.json +94 -0
  264. package/templates/vite/.howone/skills/impeccable/scripts/critique-storage.mjs +242 -0
  265. package/templates/vite/.howone/skills/impeccable/scripts/design-parser.mjs +820 -0
  266. package/templates/vite/.howone/skills/impeccable/scripts/detect-csp.mjs +198 -0
  267. package/templates/vite/.howone/skills/impeccable/scripts/detect.mjs +21 -0
  268. package/templates/vite/.howone/skills/impeccable/scripts/impeccable-paths.mjs +110 -0
  269. package/templates/vite/.howone/skills/impeccable/scripts/is-generated.mjs +69 -0
  270. package/templates/vite/.howone/skills/impeccable/scripts/live-accept.mjs +595 -0
  271. package/templates/vite/.howone/skills/impeccable/scripts/live-browser-session.js +123 -0
  272. package/templates/vite/.howone/skills/impeccable/scripts/live-browser.js +4860 -0
  273. package/templates/vite/.howone/skills/impeccable/scripts/live-complete.mjs +75 -0
  274. package/templates/vite/.howone/skills/impeccable/scripts/live-completion.mjs +18 -0
  275. package/templates/vite/.howone/skills/impeccable/scripts/live-inject.mjs +446 -0
  276. package/templates/vite/.howone/skills/impeccable/scripts/live-poll.mjs +200 -0
  277. package/templates/vite/.howone/skills/impeccable/scripts/live-resume.mjs +48 -0
  278. package/templates/vite/.howone/skills/impeccable/scripts/live-server.mjs +838 -0
  279. package/templates/vite/.howone/skills/impeccable/scripts/live-session-store.mjs +254 -0
  280. package/templates/vite/.howone/skills/impeccable/scripts/live-status.mjs +47 -0
  281. package/templates/vite/.howone/skills/impeccable/scripts/live-wrap.mjs +632 -0
  282. package/templates/vite/.howone/skills/impeccable/scripts/live.mjs +247 -0
  283. package/templates/vite/.howone/skills/impeccable/scripts/load-context.mjs +141 -0
  284. package/templates/vite/.howone/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
  285. package/templates/vite/.howone/skills/impeccable/scripts/pin.mjs +214 -0
  286. package/templates/vite/AGENTS.md +2 -12
  287. package/templates/vite/package.json +1 -1
  288. /package/templates/vite/.howone/skills/howone-sdk/{references/08-manifest-codegen.md → 01-architect/02-manifest-codegen.md} +0 -0
  289. /package/templates/vite/.howone/skills/howone-sdk/{references → 03-sdk}/02-entity-operations.md +0 -0
  290. /package/templates/vite/.howone/skills/howone-sdk/{references/06-react-integration.md → 03-sdk/04-react-integration.md} +0 -0
  291. /package/templates/vite/.howone/skills/howone-sdk/{references → 03-sdk}/05-file-upload.md +0 -0
  292. /package/templates/vite/.howone/skills/howone-sdk/{references/07-raw-http.md → 03-sdk/06-raw-http.md} +0 -0
  293. /package/templates/vite/.howone/skills/howone-sdk/{references/03-ai-actions.md → 03-sdk/07-ai-action-calls.md} +0 -0
@@ -0,0 +1,97 @@
1
+ /* Hallmark tokens · custom theme · NAJM
2
+ * vibe: "hyped Moroccan drop, editorial fashion, sun-warm earth"
3
+ * axes: light / geometric-sans / warm
4
+ */
5
+
6
+ :root {
7
+ /* ── Color (OKLCH) ──────────────────────────── */
8
+ --color-paper: oklch(96.5% 0.012 75);
9
+ --color-paper-soft: oklch(99% 0.006 75);
10
+ --color-paper-warm: oklch(93% 0.020 70);
11
+ --color-ink: oklch(20% 0.022 55);
12
+ --color-ink-soft: oklch(38% 0.018 55);
13
+ --color-ink-mute: oklch(56% 0.012 60);
14
+ --color-rule: oklch(86% 0.014 70);
15
+ --color-rule-soft: oklch(91% 0.010 70);
16
+
17
+ --color-accent: oklch(58% 0.18 35);
18
+ /* terracotta */
19
+ --color-accent-deep: oklch(48% 0.20 32);
20
+ --color-accent-soft: oklch(82% 0.08 45);
21
+ --color-saffron: oklch(78% 0.16 78);
22
+ /* sparing */
23
+ --color-marine: oklch(34% 0.09 240);
24
+ /* sparing */
25
+
26
+ --color-overlay-ink: oklch(20% 0.022 55 / 0.55);
27
+ --color-focus-ring: oklch(48% 0.20 32);
28
+
29
+ /* ── Typography ─────────────────────────────── */
30
+ --font-display: "Bricolage Grotesque", -apple-system, system-ui, sans-serif;
31
+ --font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
32
+ --font-mono: "JetBrains Mono", ui-monospace, monospace;
33
+
34
+ /* Scale */
35
+ --text-xs: 0.75rem;
36
+ --text-sm: 0.875rem;
37
+ --text-base: 1rem;
38
+ --text-md: 1.0625rem;
39
+ --text-lg: 1.25rem;
40
+ --text-xl: 1.625rem;
41
+ --text-2xl: 2.25rem;
42
+ --text-3xl: 3.25rem;
43
+ --text-4xl: clamp(2.75rem, 6vw, 4.5rem);
44
+ --text-5xl: clamp(3.5rem, 9vw, 7rem);
45
+ --text-hero: clamp(2.25rem, 7vw, 5.5rem);
46
+
47
+ /* Tracking + leading */
48
+ --track-tight: -0.04em;
49
+ --track-display: -0.045em;
50
+ --track-wide: 0.16em;
51
+ --leading-tight: 0.92;
52
+ --leading-snug: 1.1;
53
+ --leading-body: 1.55;
54
+
55
+ /* ── Spacing · 4pt scale ─────────────────────── */
56
+ --space-1: 0.25rem;
57
+ --space-2: 0.5rem;
58
+ --space-3: 0.75rem;
59
+ --space-4: 1rem;
60
+ --space-5: 1.5rem;
61
+ --space-6: 2rem;
62
+ --space-7: 3rem;
63
+ --space-8: 4rem;
64
+ --space-9: 6rem;
65
+ --space-10: 8rem;
66
+ --space-11: 12rem;
67
+
68
+ /* ── Motion ─────────────────────────────────── */
69
+ --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
70
+ --ease-in: cubic-bezier(0.7, 0, 0.84, 0);
71
+ --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
72
+
73
+ --dur-fast: 120ms;
74
+ --dur-base: 200ms;
75
+ --dur-slow: 320ms;
76
+
77
+ /* ── Surface ────────────────────────────────── */
78
+ --radius-sm: 4px;
79
+ --radius-md: 10px;
80
+ --radius-lg: 18px;
81
+ --radius-pill: 999px;
82
+
83
+ --rule-thin: 1px;
84
+ --rule-base: 2px;
85
+
86
+ /* Layout */
87
+ --gutter: clamp(1rem, 4vw, 2.5rem);
88
+ --max-w: 1440px;
89
+ }
90
+
91
+ @media (prefers-reduced-motion: reduce) {
92
+ :root {
93
+ --dur-fast: 0ms;
94
+ --dur-base: 0ms;
95
+ --dur-slow: 0ms;
96
+ }
97
+ }
@@ -0,0 +1,84 @@
1
+ /* Hallmark · motion primitives: counter · marquee (CSS) · hover-tilt
2
+ * respects prefers-reduced-motion
3
+ */
4
+
5
+ (function () {
6
+ const reduceMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
7
+
8
+ /* ── counter · live ticker for hero status + invoice + bench stats ── */
9
+ const liveEvents = document.getElementById("live-events");
10
+ const benchEps = document.getElementById("bench-eps");
11
+ const invCalls = document.getElementById("inv-calls");
12
+ const invTotal = document.getElementById("inv-total");
13
+ const benchMrr = document.getElementById("bench-mrr");
14
+
15
+ let eps = 12847;
16
+ let calls = 1284512;
17
+ let total = 5142.86;
18
+ let mrr = 412.6;
19
+
20
+ const fmt = (n) => n.toLocaleString("en-US");
21
+
22
+ function tick() {
23
+ // small jitter, bounded
24
+ eps += Math.round((Math.random() - 0.4) * 80);
25
+ if (eps < 11000) eps = 11200;
26
+ if (eps > 14500) eps = 14200;
27
+
28
+ calls += Math.round(Math.random() * 24 + 4);
29
+ total += Math.random() * 0.18;
30
+ mrr += (Math.random() - 0.5) * 0.4;
31
+ if (mrr < 410) mrr = 410.3;
32
+ if (mrr > 416) mrr = 415.8;
33
+
34
+ if (liveEvents) liveEvents.textContent = fmt(eps);
35
+ if (benchEps) benchEps.textContent = fmt(eps);
36
+ if (invCalls) invCalls.textContent = fmt(calls);
37
+ if (invTotal) invTotal.textContent = total.toFixed(2);
38
+ if (benchMrr) benchMrr.textContent = mrr.toFixed(1);
39
+ }
40
+
41
+ if (!reduceMotion) {
42
+ tick();
43
+ setInterval(tick, 1100);
44
+ }
45
+
46
+ /* ── pricing toggle ── */
47
+ const pricingButtons = document.querySelectorAll(".pricing__toggle button");
48
+ const pricedSpans = document.querySelectorAll("[data-price-monthly]");
49
+
50
+ pricingButtons.forEach((btn) => {
51
+ btn.addEventListener("click", () => {
52
+ const period = btn.dataset.period;
53
+ pricingButtons.forEach((b) => b.setAttribute("aria-pressed", b === btn ? "true" : "false"));
54
+ pricedSpans.forEach((span) => {
55
+ span.textContent = period === "annual" ? span.dataset.priceAnnual : span.dataset.priceMonthly;
56
+ });
57
+ });
58
+ });
59
+
60
+ /* ── hover-tilt on feature cards ── */
61
+ const tiltCards = document.querySelectorAll("[data-tilt]");
62
+
63
+ if (!reduceMotion) {
64
+ tiltCards.forEach((card) => {
65
+ let raf = null;
66
+
67
+ card.addEventListener("mousemove", (e) => {
68
+ const rect = card.getBoundingClientRect();
69
+ const x = (e.clientX - rect.left) / rect.width - 0.5;
70
+ const y = (e.clientY - rect.top) / rect.height - 0.5;
71
+ if (raf) cancelAnimationFrame(raf);
72
+ raf = requestAnimationFrame(() => {
73
+ card.style.transform =
74
+ `perspective(900px) rotateX(${(-y * 4).toFixed(2)}deg) rotateY(${(x * 5).toFixed(2)}deg) translateY(-2px)`;
75
+ });
76
+ });
77
+
78
+ card.addEventListener("mouseleave", () => {
79
+ if (raf) cancelAnimationFrame(raf);
80
+ card.style.transform = "";
81
+ });
82
+ });
83
+ }
84
+ })();
@@ -0,0 +1,446 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Tally · Bill what your customers actually use</title>
7
+ <meta name="description" content="Tally meters every API call, every minute, every byte — and turns it into invoices your finance team trusts." />
8
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
9
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
10
+ <link href="https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500;600&family=Instrument+Serif:ital@0;1&display=swap" rel="stylesheet" />
11
+ <link rel="stylesheet" href="./styles.css" />
12
+ </head>
13
+ <body>
14
+
15
+ <!-- ───────── nav · N5 Floating pill ───────── -->
16
+ <nav class="nav" aria-label="Primary">
17
+ <a href="#" class="nav__brand" aria-label="Tally home">
18
+ <svg width="22" height="22" viewBox="0 0 24 24" fill="none" aria-hidden="true">
19
+ <rect x="3" y="3" width="6" height="18" rx="1.5" fill="currentColor"/>
20
+ <rect x="11" y="9" width="6" height="12" rx="1.5" fill="currentColor" opacity="0.55"/>
21
+ <rect x="19" y="14" width="3" height="7" rx="1" fill="currentColor" opacity="0.3"/>
22
+ </svg>
23
+ Tally
24
+ </a>
25
+ <div class="nav__links">
26
+ <a class="nav__link" href="#workbench">Product</a>
27
+ <a class="nav__link" href="#pricing">Pricing</a>
28
+ <a class="nav__link" href="#">Docs</a>
29
+ <a class="nav__link" href="#">Changelog</a>
30
+ </div>
31
+ <a class="nav__link" href="#">Sign in</a>
32
+ <button class="nav__cta" type="button">Start free</button>
33
+ </nav>
34
+
35
+ <!-- ───────── hero · Marquee Hero ───────── -->
36
+ <section class="hero">
37
+ <div class="container">
38
+ <div class="hero__live" role="status" aria-live="polite">
39
+ <span class="dot" aria-hidden="true"></span>
40
+ <span>LIVE · METERING <strong id="live-events">12,847</strong> EVENTS / SEC</span>
41
+ </div>
42
+
43
+ <div class="hero__layout">
44
+ <div>
45
+ <h1 class="hero__h1">
46
+ Bill what your customers <span class="italic-accent">actually</span> use.
47
+ </h1>
48
+ <p class="hero__sub">
49
+ Tally meters every API call, every minute, every byte — and turns it
50
+ into invoices your finance team trusts. No usage spreadsheets,
51
+ no end-of-month dread, no creative accounting.
52
+ </p>
53
+ <div class="hero__ctas">
54
+ <button class="btn btn--primary" type="button">Start free <span aria-hidden="true">→</span></button>
55
+ <button class="btn btn--ghost" type="button">Book a demo</button>
56
+ </div>
57
+ <div class="hero__fineprint">
58
+ <span>no credit card</span>
59
+ <span>5-min setup</span>
60
+ <span>first 100k events free / mo</span>
61
+ </div>
62
+ </div>
63
+
64
+ <!-- live invoice card (Tier-A pure-CSS art) -->
65
+ <aside class="invoice" aria-label="Live invoice preview">
66
+ <div class="invoice__head">
67
+ <div>
68
+ <div class="invoice__title">INV-04212</div>
69
+ <div style="font-size: var(--text-xs); color: var(--color-ink-2); margin-top: 2px;">Acme Robotics · May 2026</div>
70
+ </div>
71
+ <span class="invoice__tag">draft · live</span>
72
+ </div>
73
+ <div class="invoice__rows">
74
+ <div class="invoice__row"><span>API calls</span><strong id="inv-calls">1,284,512</strong></div>
75
+ <div class="invoice__row"><span>Compute (vCPU·hr)</span><strong>3,847.2</strong></div>
76
+ <div class="invoice__row"><span>Storage (GB)</span><strong>912.8</strong></div>
77
+ <div class="invoice__row" style="color: var(--color-success);"><span>Volume discount</span><strong>−$214.20</strong></div>
78
+ </div>
79
+ <div class="invoice__total">
80
+ <span>Total this month</span>
81
+ <span class="num">$<span id="inv-total">5,142.86</span></span>
82
+ </div>
83
+ <div class="invoice__bar" aria-hidden="true"><i></i></div>
84
+ <div style="font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-ink-2); margin-top: 8px;">
85
+ 64 % of $8,000 budget · 12 days remaining
86
+ </div>
87
+ </aside>
88
+ </div>
89
+
90
+ <!-- marquee strip -->
91
+ <div class="hero__marquee" aria-hidden="true">
92
+ <div class="hero__marquee__track">
93
+ <span>METER · EVERY · CALL</span>
94
+ <span>PRICE · WITHOUT · GUESSING</span>
95
+ <span>INVOICE · ON · AUTOPILOT</span>
96
+ <span>SYNC · TO · STRIPE</span>
97
+ <span>AUDIT · WITHOUT · PANIC</span>
98
+ <span>METER · EVERY · CALL</span>
99
+ <span>PRICE · WITHOUT · GUESSING</span>
100
+ <span>INVOICE · ON · AUTOPILOT</span>
101
+ <span>SYNC · TO · STRIPE</span>
102
+ <span>AUDIT · WITHOUT · PANIC</span>
103
+ </div>
104
+ </div>
105
+ </div>
106
+ </section>
107
+
108
+ <!-- ───────── logos ───────── -->
109
+ <section class="logos">
110
+ <div class="container">
111
+ <div class="logos__label">Metering revenue for fast-moving teams</div>
112
+ <div class="logos__row">
113
+ <div class="l-1">Bramble</div>
114
+ <div class="l-2">orbit/labs</div>
115
+ <div class="l-3">FORGE</div>
116
+ <div class="l-4">Quietly</div>
117
+ <div class="l-5">Northsky</div>
118
+ <div class="l-6">Mercer &amp; Co.</div>
119
+ </div>
120
+ </div>
121
+ </section>
122
+
123
+ <!-- ───────── workbench ───────── -->
124
+ <section class="workbench" id="workbench">
125
+ <div class="container">
126
+ <div class="section-head">
127
+ <div>
128
+ <span class="eyebrow">◇ workbench</span>
129
+ <h2 class="section-head__title">A pricing console that <em>knows</em> your model.</h2>
130
+ </div>
131
+ <p class="section-head__desc">
132
+ Drop in a meter. Tally watches the events flow in, suggests a
133
+ price model that fits, and shows you what next month's invoice
134
+ looks like — before you ship a line of pricing code.
135
+ </p>
136
+ </div>
137
+
138
+ <div class="bench" role="img" aria-label="Tally console preview">
139
+ <div class="bench__rail">
140
+ <div class="bench__brand">
141
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
142
+ <rect x="3" y="3" width="6" height="18" rx="1.5"/>
143
+ <rect x="11" y="9" width="6" height="12" rx="1.5" opacity="0.55"/>
144
+ <rect x="19" y="14" width="3" height="7" rx="1" opacity="0.3"/>
145
+ </svg>
146
+ Tally
147
+ </div>
148
+ <div class="bench__nav">
149
+ <div class="bench__navitem" aria-current="page">
150
+ <svg class="glyph" viewBox="0 0 16 16" fill="currentColor"><circle cx="8" cy="8" r="3"/><circle cx="8" cy="8" r="6.5" fill="none" stroke="currentColor"/></svg>
151
+ Live meters
152
+ </div>
153
+ <div class="bench__navitem">
154
+ <svg class="glyph" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6"><rect x="2" y="2" width="12" height="12" rx="1.5"/><path d="M2 6h12M6 2v12"/></svg>
155
+ Price models
156
+ </div>
157
+ <div class="bench__navitem">
158
+ <svg class="glyph" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6"><rect x="3" y="2" width="10" height="12" rx="1.5"/><path d="M5 5h6M5 8h6M5 11h4"/></svg>
159
+ Invoices
160
+ </div>
161
+ <div class="bench__navitem">
162
+ <svg class="glyph" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6"><circle cx="8" cy="8" r="6"/><path d="M8 4v4l3 2"/></svg>
163
+ Forecasts
164
+ </div>
165
+ <div class="bench__navitem">
166
+ <svg class="glyph" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6"><path d="M3 13l4-4 3 3 4-6"/><circle cx="13" cy="6" r="0.8" fill="currentColor"/></svg>
167
+ Audit log
168
+ </div>
169
+ </div>
170
+ </div>
171
+
172
+ <div class="bench__main">
173
+ <div class="bench__statrow">
174
+ <div class="bench__stat">
175
+ <div class="label">Events / sec</div>
176
+ <div class="value"><span id="bench-eps">12,847</span><span class="delta">+8.4%</span></div>
177
+ </div>
178
+ <div class="bench__stat">
179
+ <div class="label">MRR (live)</div>
180
+ <div class="value">$<span id="bench-mrr">412.6</span><small>K</small><span class="delta">+12.1%</span></div>
181
+ </div>
182
+ <div class="bench__stat">
183
+ <div class="label">Active meters</div>
184
+ <div class="value">237<span class="delta">+6</span></div>
185
+ </div>
186
+ </div>
187
+
188
+ <div class="bench__chart">
189
+ <h4>Revenue · last 30 days <span class="live">live</span></h4>
190
+ <svg viewBox="0 0 600 200" preserveAspectRatio="none" aria-hidden="true">
191
+ <defs>
192
+ <linearGradient id="area-grad" x1="0" y1="0" x2="0" y2="1">
193
+ <stop offset="0%" stop-color="oklch(54% 0.220 268)" stop-opacity="0.34"/>
194
+ <stop offset="100%" stop-color="oklch(54% 0.220 268)" stop-opacity="0"/>
195
+ </linearGradient>
196
+ </defs>
197
+ <g class="grid">
198
+ <line x1="0" y1="40" x2="600" y2="40"/>
199
+ <line x1="0" y1="80" x2="600" y2="80"/>
200
+ <line x1="0" y1="120" x2="600" y2="120"/>
201
+ <line x1="0" y1="160" x2="600" y2="160"/>
202
+ </g>
203
+ <path class="area"
204
+ d="M0,160 L40,150 L80,140 L120,148 L160,128 L200,134 L240,110 L280,118 L320,96 L360,82 L400,90 L440,68 L480,76 L520,52 L560,44 L600,30 L600,200 L0,200 Z"/>
205
+ <path class="line"
206
+ d="M0,160 L40,150 L80,140 L120,148 L160,128 L200,134 L240,110 L280,118 L320,96 L360,82 L400,90 L440,68 L480,76 L520,52 L560,44 L600,30"/>
207
+ <circle class="dot" cx="600" cy="30" r="6"/>
208
+ </svg>
209
+ </div>
210
+ </div>
211
+ </div>
212
+ </div>
213
+ </section>
214
+
215
+ <!-- ───────── stats triplet ───────── -->
216
+ <section class="stats">
217
+ <div class="container">
218
+ <div class="section-head">
219
+ <div>
220
+ <span class="eyebrow">◇ proof</span>
221
+ <h2 class="section-head__title">Numbers that <em>don't</em> need a footnote.</h2>
222
+ </div>
223
+ <p class="section-head__desc">
224
+ Tally has metered north of forty billion events for teams shipping
225
+ to seven-figure customers. The math holds.
226
+ </p>
227
+ </div>
228
+
229
+ <div class="stats__grid">
230
+ <div class="stats__card">
231
+ <div class="stats__num">42<small>B+</small></div>
232
+ <div class="stats__label">events metered</div>
233
+ <div class="stats__note">Across 14,000+ meters since 2024 — every one of them auditable.</div>
234
+ </div>
235
+ <div class="stats__card">
236
+ <div class="stats__num">9.2<small>×</small></div>
237
+ <div class="stats__label">faster month-end close</div>
238
+ <div class="stats__note">From 4-day spreadsheet hell to 11 minutes of "looks good — send."</div>
239
+ </div>
240
+ <div class="stats__card">
241
+ <div class="stats__num">$0.00</div>
242
+ <div class="stats__label">in invoice disputes</div>
243
+ <div class="stats__note">Per-call audit trails. Customers see the same numbers you do.</div>
244
+ </div>
245
+ </div>
246
+ </div>
247
+ </section>
248
+
249
+ <!-- ───────── three feature cards ───────── -->
250
+ <section class="features">
251
+ <div class="container">
252
+ <div class="section-head">
253
+ <div>
254
+ <span class="eyebrow">◇ how it works</span>
255
+ <h2 class="section-head__title">Meter, price, invoice — <em>then</em> sleep.</h2>
256
+ </div>
257
+ <p class="section-head__desc">
258
+ Three primitives, one console. Wire one event, configure one model,
259
+ ship invoices that don't need anyone to "check the math."
260
+ </p>
261
+ </div>
262
+
263
+ <div class="features__grid">
264
+ <article class="feature" data-tilt>
265
+ <div class="feature__art art-meter" aria-hidden="true"></div>
266
+ <h3 class="feature__title">Meter anything in one line</h3>
267
+ <p class="feature__desc">
268
+ Drop a single SDK call wherever the value happens. We handle
269
+ dedup, ordering, and replay so your meters never lie.
270
+ </p>
271
+ <a class="feature__link" href="#">Read the SDK docs</a>
272
+ </article>
273
+
274
+ <article class="feature" data-tilt>
275
+ <div class="feature__art art-tiers" aria-hidden="true">
276
+ <i></i><i></i><i></i><i></i><i></i>
277
+ </div>
278
+ <h3 class="feature__title">Price without rebuilding</h3>
279
+ <p class="feature__desc">
280
+ Tiered, volume, package, hybrid — pick a model in the console
281
+ and Tally retro-prices the meter. No deploy required.
282
+ </p>
283
+ <a class="feature__link" href="#">See price models</a>
284
+ </article>
285
+
286
+ <article class="feature" data-tilt>
287
+ <div class="feature__art art-invoice" aria-hidden="true">
288
+ <div class="sheet"><b>INV-04210</b>Bramble · Apr<br/><em>$3,118.40</em></div>
289
+ <div class="sheet"><b>INV-04211</b>Forge · Apr<br/><em>$8,940.20</em></div>
290
+ <div class="sheet"><b>INV-04212</b>Acme · May<br/><em>$5,142.86</em></div>
291
+ </div>
292
+ <h3 class="feature__title">Invoices customers don't argue with</h3>
293
+ <p class="feature__desc">
294
+ Every line ties back to a metered event. When a customer asks
295
+ "what's this?", you point at a clickable trail.
296
+ </p>
297
+ <a class="feature__link" href="#">Browse invoice templates</a>
298
+ </article>
299
+ </div>
300
+ </div>
301
+ </section>
302
+
303
+ <!-- ───────── pricing ───────── -->
304
+ <section class="pricing" id="pricing">
305
+ <div class="container">
306
+ <div class="pricing__head">
307
+ <span class="eyebrow">◇ pricing</span>
308
+ <h2 class="section-head__title" style="text-align:center; margin-inline:auto;">Plans that scale with you, <em>not</em> against you.</h2>
309
+ <div class="pricing__toggle" role="group" aria-label="Billing period">
310
+ <button type="button" data-period="monthly" aria-pressed="true">Monthly</button>
311
+ <button type="button" data-period="annual" aria-pressed="false">Annual <span class="save">save 20%</span></button>
312
+ </div>
313
+ </div>
314
+
315
+ <div class="pricing__grid">
316
+ <article class="tier">
317
+ <div class="tier__name">Starter</div>
318
+ <div class="tier__price"><span data-price-monthly="$0" data-price-annual="$0">$0</span></div>
319
+ <p class="tier__desc">Up to 100k events / month. For weekend builds and side projects.</p>
320
+ <ul class="tier__features">
321
+ <li>1 meter, 1 product</li>
322
+ <li>Stripe sync</li>
323
+ <li>Basic invoice PDF</li>
324
+ <li>Community support</li>
325
+ </ul>
326
+ <button class="btn btn--ghost" type="button" style="margin-top: auto;">Start free</button>
327
+ </article>
328
+
329
+ <article class="tier tier--featured">
330
+ <span class="tier__badge">Most teams pick this</span>
331
+ <div class="tier__name">Scale</div>
332
+ <div class="tier__price">
333
+ <span data-price-monthly="$249" data-price-annual="$199">$249</span>
334
+ <small>/ mo</small>
335
+ </div>
336
+ <p class="tier__desc">For teams shipping to real customers with real revenue. No event ceiling.</p>
337
+ <ul class="tier__features">
338
+ <li>Unlimited meters &amp; products</li>
339
+ <li>Hybrid &amp; tiered pricing</li>
340
+ <li>Net-terms &amp; multi-currency invoicing</li>
341
+ <li>Audit log &amp; SSO</li>
342
+ <li>Dedicated solutions engineer</li>
343
+ </ul>
344
+ <button class="btn btn--primary" type="button" style="margin-top: auto;">Start 14-day trial</button>
345
+ </article>
346
+
347
+ <article class="tier">
348
+ <div class="tier__name">Enterprise</div>
349
+ <div class="tier__price"><span>Custom</span></div>
350
+ <p class="tier__desc">Self-hosted option, custom SLAs, procurement-friendly contracts.</p>
351
+ <ul class="tier__features">
352
+ <li>Self-host or VPC peering</li>
353
+ <li>SOC 2 Type II + HIPAA</li>
354
+ <li>Custom data residency</li>
355
+ <li>White-glove onboarding</li>
356
+ </ul>
357
+ <button class="btn btn--ghost" type="button" style="margin-top: auto;">Talk to sales</button>
358
+ </article>
359
+ </div>
360
+ </div>
361
+ </section>
362
+
363
+ <!-- ───────── testimonial ───────── -->
364
+ <section class="testimonial">
365
+ <div class="container">
366
+ <p class="testimonial__quote">
367
+ We went from a four-day month-end to closing the books before lunch.
368
+ </p>
369
+ <div class="testimonial__byline">
370
+ <strong>Imani Okafor</strong>
371
+ <span>VP Finance · Northsky · 1.4M API calls/day</span>
372
+ </div>
373
+ </div>
374
+ </section>
375
+
376
+ <!-- ───────── CTA ───────── -->
377
+ <section class="cta">
378
+ <div class="container">
379
+ <div class="cta__panel">
380
+ <h2 class="cta__title">Ship usage billing this <em>afternoon</em>.</h2>
381
+ <p class="cta__sub">
382
+ Wire a meter, pick a model, send your first invoice — all before
383
+ your standup runs long. We'll be your finance team's favourite tool by Friday.
384
+ </p>
385
+ <div style="display:flex; gap: var(--space-sm); justify-content: center; flex-wrap: wrap;">
386
+ <button class="btn btn--primary" type="button">Start free <span aria-hidden="true">→</span></button>
387
+ <button class="btn btn--ghost" type="button">Book a 20-minute demo</button>
388
+ </div>
389
+ </div>
390
+ </div>
391
+ </section>
392
+
393
+ <!-- ───────── footer · Ft5 Statement ───────── -->
394
+ <footer class="footer">
395
+ <div class="container">
396
+ <p class="footer__statement">
397
+ Tally is a pricing engine for teams who'd rather <em>build</em> than reconcile.
398
+ </p>
399
+ <div class="footer__row">
400
+ <div class="footer__col">
401
+ <h5>Product</h5>
402
+ <ul>
403
+ <li><a href="#">Metering</a></li>
404
+ <li><a href="#">Pricing models</a></li>
405
+ <li><a href="#">Invoicing</a></li>
406
+ <li><a href="#">Audit log</a></li>
407
+ </ul>
408
+ </div>
409
+ <div class="footer__col">
410
+ <h5>Developers</h5>
411
+ <ul>
412
+ <li><a href="#">API reference</a></li>
413
+ <li><a href="#">SDKs</a></li>
414
+ <li><a href="#">Quickstarts</a></li>
415
+ <li><a href="#">Status</a></li>
416
+ </ul>
417
+ </div>
418
+ <div class="footer__col">
419
+ <h5>Company</h5>
420
+ <ul>
421
+ <li><a href="#">About</a></li>
422
+ <li><a href="#">Customers</a></li>
423
+ <li><a href="#">Careers</a></li>
424
+ <li><a href="#">Press</a></li>
425
+ </ul>
426
+ </div>
427
+ <div class="footer__col">
428
+ <h5>Resources</h5>
429
+ <ul>
430
+ <li><a href="#">Pricing playbook</a></li>
431
+ <li><a href="#">Changelog</a></li>
432
+ <li><a href="#">Security</a></li>
433
+ <li><a href="#">Contact</a></li>
434
+ </ul>
435
+ </div>
436
+ </div>
437
+ <div class="footer__legal">
438
+ <span class="wordmark">Tally</span>
439
+ <span>© 2026 Tally Labs · Made in Brooklyn &amp; Lisbon · v0.8.0</span>
440
+ </div>
441
+ </div>
442
+ </footer>
443
+
444
+ <script src="./app.js"></script>
445
+ </body>
446
+ </html>