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,587 @@
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, viewport-fit=cover" />
6
+ <title>Alma — Two minutes a day. The dark holds the rest.</title>
7
+ <meta name="description" content="A voice journal that takes two minutes a day, transcribes the audio, and forgets the entry after a year unless you save it." />
8
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
9
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
10
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500&family=Newsreader:ital,opsz,wght@1,6..72,400;1,6..72,500&display=swap" />
11
+ <style>
12
+ /* Hallmark · macrostructure: Quote-Led · theme: Halo · enrichment: Tier-A concentric rings SVG
13
+ * tone: atmospheric intimate austere · anchor hue: warm amber
14
+ * studied: no · pre-emit critique: P5 H4 E4 S5 R5 V4
15
+ */
16
+
17
+ :root {
18
+ /* Halo — dark · geometric-sans · warm (charcoal + amber) */
19
+ --color-paper: oklch(13% 0.005 60);
20
+ --color-paper-2: oklch(17% 0.008 60);
21
+ --color-paper-3: oklch(22% 0.012 62);
22
+ --color-rule: oklch(28% 0.012 60);
23
+ --color-rule-2: oklch(38% 0.016 62);
24
+ --color-muted: oklch(58% 0.018 65);
25
+ --color-ink-2: oklch(82% 0.020 68);
26
+ --color-ink: oklch(96% 0.014 70);
27
+ --color-accent: oklch(74% 0.16 70); /* warm amber */
28
+ --color-focus: oklch(74% 0.16 70);
29
+
30
+ --font-display: "Geist", ui-sans-serif, system-ui, sans-serif;
31
+ --font-body: "Geist", ui-sans-serif, system-ui, sans-serif;
32
+ --font-serif: "Newsreader", ui-serif, Georgia, serif;
33
+ --font-label: "Geist Mono", ui-monospace, monospace;
34
+ --font-mono: "Geist Mono", ui-monospace, monospace;
35
+
36
+ --text-xs: 0.75rem;
37
+ --text-sm: 0.875rem;
38
+ --text-md: 1.0625rem;
39
+ --text-lg: 1.375rem;
40
+ --text-xl: 1.875rem;
41
+ --text-2xl: 2.5rem;
42
+ --text-display: clamp(2.75rem, 6.5vw + 0.5rem, 5.5rem);
43
+
44
+ --tracking-display: -0.02em;
45
+ --tracking-tight: -0.015em;
46
+ --tracking-label: 0.14em;
47
+ --lh-tight: 1.05;
48
+ --lh-snug: 1.25;
49
+ --lh-relaxed: 1.6;
50
+
51
+ --space-3xs: 0.25rem;
52
+ --space-2xs: 0.5rem;
53
+ --space-xs: 0.75rem;
54
+ --space-sm: 1rem;
55
+ --space-md: 1.5rem;
56
+ --space-lg: 2rem;
57
+ --space-xl: 3rem;
58
+ --space-2xl: 4.5rem;
59
+ --space-3xl: 7rem;
60
+
61
+ --rule-hair: 1px;
62
+ --radius-pill: 999px;
63
+ --page-gutter: clamp(1.25rem, 4vw, 3rem);
64
+ --page-max: 72rem;
65
+
66
+ --dur-micro: 80ms;
67
+ --dur-short: 150ms;
68
+ --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
69
+ }
70
+
71
+ *, *::before, *::after { box-sizing: border-box; }
72
+ html, body { overflow-x: clip; }
73
+
74
+ html {
75
+ background: var(--color-paper);
76
+ color: var(--color-ink);
77
+ font-family: var(--font-body);
78
+ font-size: 16px;
79
+ line-height: var(--lh-relaxed);
80
+ -webkit-font-smoothing: antialiased;
81
+ text-rendering: optimizeLegibility;
82
+ }
83
+
84
+ body {
85
+ position: relative;
86
+ margin: 0;
87
+ padding-inline: var(--page-gutter);
88
+ min-height: 100dvh;
89
+ }
90
+
91
+ /* Halo glow — fixed warm bloom anchored top-right */
92
+ body::before {
93
+ content: "";
94
+ position: fixed;
95
+ inset: 0 0 auto 0;
96
+ height: 80vh;
97
+ pointer-events: none;
98
+ z-index: 0;
99
+ background:
100
+ radial-gradient(ellipse 60% 80% at 80% 0%,
101
+ color-mix(in oklch, var(--color-accent) 22%, transparent) 0%,
102
+ transparent 65%);
103
+ }
104
+
105
+ main {
106
+ margin-inline: auto;
107
+ max-width: var(--page-max);
108
+ position: relative;
109
+ z-index: 1;
110
+ }
111
+
112
+ a { color: inherit; text-decoration: none; }
113
+ a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
114
+
115
+ img, svg { display: block; max-width: 100%; }
116
+
117
+ h1, h2, h3, p, ul, ol, dl { margin: 0; }
118
+
119
+ /* — Masthead ———————————————————————————————————————— */
120
+ .masthead {
121
+ display: flex;
122
+ align-items: baseline;
123
+ justify-content: space-between;
124
+ gap: var(--space-md);
125
+ padding-block: var(--space-md);
126
+ border-block-end: var(--rule-hair) solid var(--color-rule);
127
+ font-family: var(--font-label);
128
+ font-size: var(--text-xs);
129
+ letter-spacing: var(--tracking-label);
130
+ text-transform: uppercase;
131
+ color: var(--color-muted);
132
+ }
133
+
134
+ .masthead__wordmark {
135
+ font-family: var(--font-display);
136
+ font-weight: 600;
137
+ font-size: var(--text-md);
138
+ letter-spacing: 0;
139
+ text-transform: none;
140
+ color: var(--color-ink);
141
+ }
142
+
143
+ .masthead__nav {
144
+ display: flex;
145
+ gap: var(--space-md);
146
+ }
147
+
148
+ .masthead__nav a:hover { color: var(--color-ink); }
149
+
150
+ @media (max-width: 36rem) {
151
+ .masthead__nav { display: none; }
152
+ }
153
+
154
+ /* — Quote-led hero ————————————————————————————————— */
155
+ .hero {
156
+ display: grid;
157
+ grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
158
+ align-items: center;
159
+ gap: var(--space-2xl);
160
+ padding-block: var(--space-3xl) var(--space-2xl);
161
+ }
162
+
163
+ @media (max-width: 56rem) {
164
+ .hero {
165
+ grid-template-columns: 1fr;
166
+ gap: var(--space-xl);
167
+ }
168
+ }
169
+
170
+ .hero__copy {
171
+ display: grid;
172
+ gap: var(--space-md);
173
+ }
174
+
175
+ .hero__eyebrow {
176
+ font-family: var(--font-label);
177
+ font-size: var(--text-xs);
178
+ letter-spacing: var(--tracking-label);
179
+ text-transform: uppercase;
180
+ color: var(--color-accent);
181
+ margin-block-end: var(--space-sm);
182
+ }
183
+
184
+ .hero__quote {
185
+ margin: 0;
186
+ padding: 0;
187
+ }
188
+
189
+ .hero__quote p {
190
+ font-family: var(--font-display);
191
+ font-weight: 500;
192
+ font-size: var(--text-display);
193
+ line-height: var(--lh-tight);
194
+ letter-spacing: var(--tracking-display);
195
+ color: var(--color-ink);
196
+ max-width: 18ch;
197
+ overflow-wrap: anywhere;
198
+ min-width: 0;
199
+ }
200
+
201
+ .hero__quote em {
202
+ font-style: italic;
203
+ font-family: var(--font-serif);
204
+ font-weight: 400;
205
+ color: var(--color-accent);
206
+ }
207
+
208
+ .hero__attrib {
209
+ margin-block-start: var(--space-md);
210
+ font-family: var(--font-label);
211
+ font-size: var(--text-xs);
212
+ letter-spacing: var(--tracking-label);
213
+ text-transform: uppercase;
214
+ color: var(--color-muted);
215
+ }
216
+
217
+ .hero__lede {
218
+ margin-block-start: var(--space-md);
219
+ font-family: var(--font-body);
220
+ font-size: var(--text-lg);
221
+ line-height: var(--lh-snug);
222
+ color: var(--color-ink-2);
223
+ max-width: 42ch;
224
+ }
225
+
226
+ .hero__cta-row {
227
+ display: flex;
228
+ gap: var(--space-md);
229
+ margin-block-start: var(--space-md);
230
+ flex-wrap: wrap;
231
+ }
232
+
233
+ .cta {
234
+ display: inline-block;
235
+ padding: 0.7rem 1.2rem;
236
+ font-family: var(--font-label);
237
+ font-size: var(--text-xs);
238
+ letter-spacing: var(--tracking-label);
239
+ text-transform: uppercase;
240
+ color: var(--color-paper);
241
+ background: var(--color-ink);
242
+ border: 1px solid var(--color-ink);
243
+ border-radius: var(--radius-pill);
244
+ transition: background-color var(--dur-micro) var(--ease-out);
245
+ }
246
+ .cta:hover { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-paper); }
247
+
248
+ .cta--ghost {
249
+ color: var(--color-ink);
250
+ background: transparent;
251
+ border-color: var(--color-rule-2);
252
+ }
253
+ .cta--ghost:hover { color: var(--color-paper); background: var(--color-ink); border-color: var(--color-ink); }
254
+
255
+ /* — Concentric rings illustration ——————————————————— */
256
+ .rings {
257
+ position: relative;
258
+ aspect-ratio: 1 / 1;
259
+ width: 100%;
260
+ max-width: 24rem;
261
+ margin-inline: auto;
262
+ justify-self: end;
263
+ }
264
+
265
+ .rings__svg {
266
+ width: 100%;
267
+ height: 100%;
268
+ color: var(--color-accent);
269
+ }
270
+
271
+ .rings__center {
272
+ position: absolute;
273
+ top: 50%;
274
+ left: 50%;
275
+ width: 12px;
276
+ height: 12px;
277
+ margin: -6px 0 0 -6px;
278
+ border-radius: 50%;
279
+ background: var(--color-accent);
280
+ box-shadow: 0 0 24px 6px color-mix(in oklch, var(--color-accent) 60%, transparent);
281
+ animation: pulse 4s var(--ease-out) infinite;
282
+ }
283
+
284
+ @keyframes pulse {
285
+ 0%, 100% { transform: scale(1); opacity: 1; }
286
+ 50% { transform: scale(1.4); opacity: 0.85; }
287
+ }
288
+
289
+ @media (prefers-reduced-motion: reduce) {
290
+ .rings__center { animation: none; }
291
+ }
292
+
293
+ /* — Two-minute section ————————————————————————————— */
294
+ .two-min {
295
+ padding-block: var(--space-3xl) var(--space-2xl);
296
+ border-block-start: var(--rule-hair) solid var(--color-rule);
297
+ display: grid;
298
+ grid-template-columns: minmax(10rem, 14rem) minmax(0, 1fr);
299
+ gap: var(--space-2xl);
300
+ }
301
+
302
+ @media (max-width: 56rem) {
303
+ .two-min { grid-template-columns: 1fr; gap: var(--space-md); }
304
+ }
305
+
306
+ .two-min__label {
307
+ font-family: var(--font-label);
308
+ font-size: var(--text-xs);
309
+ letter-spacing: var(--tracking-label);
310
+ text-transform: uppercase;
311
+ color: var(--color-muted);
312
+ }
313
+
314
+ .two-min__body {
315
+ display: grid;
316
+ gap: var(--space-md);
317
+ }
318
+
319
+ .two-min__title {
320
+ font-family: var(--font-display);
321
+ font-weight: 500;
322
+ font-size: clamp(1.875rem, 3.5vw + 0.5rem, 3rem);
323
+ line-height: var(--lh-snug);
324
+ letter-spacing: var(--tracking-tight);
325
+ color: var(--color-ink);
326
+ max-width: 28ch;
327
+ }
328
+
329
+ .two-min__title em {
330
+ font-style: italic;
331
+ font-family: var(--font-serif);
332
+ font-weight: 400;
333
+ color: var(--color-accent);
334
+ }
335
+
336
+ .two-min__steps {
337
+ list-style: none;
338
+ padding: 0;
339
+ display: grid;
340
+ border-block-start: var(--rule-hair) solid var(--color-rule);
341
+ margin-block-start: var(--space-md);
342
+ }
343
+
344
+ .two-min__step {
345
+ display: grid;
346
+ grid-template-columns: 4rem minmax(0, 1fr);
347
+ gap: var(--space-md);
348
+ align-items: baseline;
349
+ padding-block: var(--space-md);
350
+ border-block-end: var(--rule-hair) solid var(--color-rule);
351
+ }
352
+
353
+ .two-min__step-num {
354
+ font-family: var(--font-display);
355
+ font-weight: 500;
356
+ font-size: var(--text-xl);
357
+ color: var(--color-accent);
358
+ font-feature-settings: "tnum";
359
+ }
360
+
361
+ .two-min__step-body {
362
+ font-family: var(--font-body);
363
+ font-size: var(--text-md);
364
+ line-height: var(--lh-relaxed);
365
+ color: var(--color-ink-2);
366
+ }
367
+
368
+ .two-min__step-body strong { color: var(--color-ink); font-weight: 600; }
369
+
370
+ /* — Forgetting band ——————————————————————————————— */
371
+ .forget {
372
+ padding-block: var(--space-3xl);
373
+ border-block-start: var(--rule-hair) solid var(--color-rule);
374
+ border-block-end: var(--rule-hair) solid var(--color-rule);
375
+ text-align: center;
376
+ }
377
+
378
+ .forget__phrase {
379
+ font-family: var(--font-display);
380
+ font-weight: 600;
381
+ font-size: clamp(1.875rem, 4vw + 0.5rem, 3.25rem);
382
+ line-height: var(--lh-snug);
383
+ letter-spacing: var(--tracking-tight);
384
+ color: var(--color-ink);
385
+ max-width: 30ch;
386
+ margin-inline: auto;
387
+ }
388
+
389
+ .forget__phrase em {
390
+ font-style: italic;
391
+ font-family: var(--font-serif);
392
+ font-weight: 400;
393
+ color: var(--color-accent);
394
+ }
395
+
396
+ /* — Privacy ledger ————————————————————————————————— */
397
+ .privacy {
398
+ padding-block: var(--space-3xl) var(--space-2xl);
399
+ display: grid;
400
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
401
+ gap: var(--space-2xl);
402
+ }
403
+
404
+ @media (max-width: 56rem) {
405
+ .privacy { grid-template-columns: 1fr; gap: var(--space-md); }
406
+ }
407
+
408
+ .privacy__head {
409
+ display: grid;
410
+ gap: var(--space-md);
411
+ align-content: start;
412
+ }
413
+
414
+ .privacy__label {
415
+ font-family: var(--font-label);
416
+ font-size: var(--text-xs);
417
+ letter-spacing: var(--tracking-label);
418
+ text-transform: uppercase;
419
+ color: var(--color-muted);
420
+ }
421
+
422
+ .privacy__title {
423
+ font-family: var(--font-display);
424
+ font-weight: 500;
425
+ font-size: var(--text-2xl);
426
+ line-height: var(--lh-snug);
427
+ letter-spacing: var(--tracking-tight);
428
+ color: var(--color-ink);
429
+ max-width: 18ch;
430
+ }
431
+
432
+ .privacy__title em {
433
+ font-style: italic;
434
+ font-family: var(--font-serif);
435
+ font-weight: 400;
436
+ color: var(--color-accent);
437
+ }
438
+
439
+ .privacy__list {
440
+ list-style: none;
441
+ padding: 0;
442
+ display: grid;
443
+ gap: 0;
444
+ border-block-start: var(--rule-hair) solid var(--color-rule);
445
+ }
446
+
447
+ .privacy__row {
448
+ display: grid;
449
+ grid-template-columns: minmax(0, 1fr) auto;
450
+ gap: var(--space-md);
451
+ align-items: baseline;
452
+ padding-block: var(--space-md);
453
+ border-block-end: var(--rule-hair) solid var(--color-rule);
454
+ font-family: var(--font-body);
455
+ font-size: var(--text-md);
456
+ color: var(--color-ink-2);
457
+ }
458
+
459
+ .privacy__row-key { color: var(--color-ink); font-weight: 500; }
460
+
461
+ .privacy__row-value {
462
+ font-family: var(--font-label);
463
+ font-size: var(--text-xs);
464
+ letter-spacing: var(--tracking-label);
465
+ text-transform: uppercase;
466
+ color: var(--color-accent);
467
+ }
468
+
469
+ /* — Colophon ————————————————————————————————————— */
470
+ .colophon {
471
+ margin-block-start: var(--space-2xl);
472
+ padding-block: var(--space-xl) var(--space-md);
473
+ border-block-start: var(--rule-hair) solid var(--color-rule);
474
+ display: grid;
475
+ gap: var(--space-md);
476
+ font-family: var(--font-label);
477
+ font-size: var(--text-xs);
478
+ letter-spacing: var(--tracking-label);
479
+ text-transform: uppercase;
480
+ color: var(--color-muted);
481
+ }
482
+
483
+ .colophon__row {
484
+ display: flex;
485
+ justify-content: space-between;
486
+ flex-wrap: wrap;
487
+ gap: var(--space-md);
488
+ }
489
+
490
+ .colophon strong { color: var(--color-ink); font-weight: 500; }
491
+ </style>
492
+ </head>
493
+ <body>
494
+
495
+ <main>
496
+
497
+ <header class="masthead">
498
+ <span class="masthead__wordmark">Alma</span>
499
+ <nav class="masthead__nav" aria-label="Primary">
500
+ <a href="#how">How it works</a>
501
+ <a href="#privacy">Privacy</a>
502
+ <a href="#install">Get it</a>
503
+ </nav>
504
+ </header>
505
+
506
+ <section class="hero" aria-labelledby="h-quote">
507
+ <div class="hero__copy">
508
+ <p class="hero__eyebrow">A voice journal</p>
509
+ <blockquote class="hero__quote">
510
+ <p id="h-quote">"Two minutes a day. The <em>dark</em> holds the rest."</p>
511
+ </blockquote>
512
+ <p class="hero__attrib">— What Alma is</p>
513
+ <p class="hero__lede">
514
+ Speak for two minutes on the way home. Alma transcribes the audio, leaves the file in your private library, and forgets the entry after a year — unless you say keep it. There is no feed. No share button. No coach.
515
+ </p>
516
+ <div class="hero__cta-row">
517
+ <a class="cta" href="#install">Open Alma &rarr;</a>
518
+ <a class="cta cta--ghost" href="#privacy">Read the privacy ledger</a>
519
+ </div>
520
+ </div>
521
+
522
+ <figure class="rings" aria-hidden="true">
523
+ <svg class="rings__svg" viewBox="0 0 240 240" fill="none" stroke="currentColor">
524
+ <circle cx="120" cy="120" r="110" stroke-width="0.6" stroke-opacity="0.5" />
525
+ <circle cx="120" cy="120" r="86" stroke-width="0.7" stroke-opacity="0.65" />
526
+ <circle cx="120" cy="120" r="62" stroke-width="0.85" stroke-opacity="0.8" />
527
+ <circle cx="120" cy="120" r="38" stroke-width="1" stroke-opacity="0.9" />
528
+ <circle cx="120" cy="120" r="16" stroke-width="1.2" />
529
+ </svg>
530
+ <span class="rings__center"></span>
531
+ </figure>
532
+ </section>
533
+
534
+ <section class="two-min" id="how" aria-labelledby="t-title">
535
+ <p class="two-min__label">02 / The two minutes</p>
536
+ <div class="two-min__body">
537
+ <h2 class="two-min__title" id="t-title">Speak. Alma <em>writes it down</em>. The session ends on its own.</h2>
538
+ <ol class="two-min__steps">
539
+ <li class="two-min__step">
540
+ <span class="two-min__step-num">i</span>
541
+ <p class="two-min__step-body"><strong>Open Alma. Tap the dot.</strong> The dot pulses for two minutes, then stops. There is no countdown ring.</p>
542
+ </li>
543
+ <li class="two-min__step">
544
+ <span class="two-min__step-num">ii</span>
545
+ <p class="two-min__step-body"><strong>Speak.</strong> Whatever's on your mind. The transcription happens on-device — the audio never leaves your phone.</p>
546
+ </li>
547
+ <li class="two-min__step">
548
+ <span class="two-min__step-num">iii</span>
549
+ <p class="two-min__step-body"><strong>The dot stops.</strong> Alma saves the transcript and the audio to your private library. You can mark "keep" or do nothing — the default is forget.</p>
550
+ </li>
551
+ </ol>
552
+ </div>
553
+ </section>
554
+
555
+ <section class="forget" aria-hidden="true">
556
+ <p class="forget__phrase">After 365 days, Alma <em>forgets</em> what you didn't keep.</p>
557
+ </section>
558
+
559
+ <section class="privacy" id="privacy" aria-labelledby="p-title">
560
+ <header class="privacy__head">
561
+ <p class="privacy__label">04 / The ledger</p>
562
+ <h2 class="privacy__title" id="p-title">What stays on your <em>phone</em>. What never leaves.</h2>
563
+ </header>
564
+ <ul class="privacy__list">
565
+ <li class="privacy__row"><span class="privacy__row-key">Audio recording</span><span class="privacy__row-value">on device only</span></li>
566
+ <li class="privacy__row"><span class="privacy__row-key">Transcription</span><span class="privacy__row-value">on device only</span></li>
567
+ <li class="privacy__row"><span class="privacy__row-key">Library backup</span><span class="privacy__row-value">end-to-end encrypted</span></li>
568
+ <li class="privacy__row"><span class="privacy__row-key">Analytics</span><span class="privacy__row-value">none collected</span></li>
569
+ <li class="privacy__row"><span class="privacy__row-key">Default retention</span><span class="privacy__row-value">365 days, then forget</span></li>
570
+ </ul>
571
+ </section>
572
+
573
+ <footer class="colophon" id="install">
574
+ <div class="colophon__row">
575
+ <p>Alma <strong>· iOS 17+ · Free until summer</strong></p>
576
+ <p>v0.4 · 2026</p>
577
+ </div>
578
+ <div class="colophon__row">
579
+ <p>Set in <strong>Geist</strong> &amp; <strong>Newsreader italic</strong>.</p>
580
+ <p>The dark holds the rest.</p>
581
+ </div>
582
+ </footer>
583
+
584
+ </main>
585
+
586
+ </body>
587
+ </html>