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,1168 @@
1
+ /* Hallmark · pre-emit critique: P5 H5 E5 S5 R4 V5
2
+ * Hallmark · genre: editorial · macrostructure: Marquee Hero · theme: Manifesto-dark
3
+ * enrichment: Tier-A pure-CSS departure board + scrolling ticker · nav: N9 · footer: Ft4
4
+ * tone: bold-airline-late-night · anchor hue: bleed red 25°
5
+ */
6
+
7
+ @import url("./tokens.css");
8
+
9
+ *, *::before, *::after { box-sizing: border-box; }
10
+
11
+ html, body {
12
+ margin: 0;
13
+ overflow-x: clip;
14
+ background: var(--color-paper);
15
+ color: var(--color-ink);
16
+ font-family: var(--font-body);
17
+ font-size: var(--text-base);
18
+ line-height: 1.55;
19
+ font-feature-settings: "kern", "liga", "onum";
20
+ -webkit-font-smoothing: antialiased;
21
+ text-rendering: optimizeLegibility;
22
+ }
23
+
24
+ img, svg { display: block; max-width: 100%; }
25
+
26
+ a {
27
+ color: inherit;
28
+ text-decoration: none;
29
+ text-underline-offset: 4px;
30
+ text-decoration-thickness: 1px;
31
+ }
32
+
33
+ a:hover { text-decoration: underline; text-decoration-color: var(--color-accent); }
34
+
35
+ ::selection { background: var(--color-accent); color: var(--color-paper); }
36
+
37
+ :focus-visible {
38
+ outline: 2px solid var(--color-focus);
39
+ outline-offset: 3px;
40
+ border-radius: var(--radius-xs);
41
+ }
42
+
43
+ button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; padding: 0; }
44
+
45
+ /* ───────── Layout shell ───────── */
46
+
47
+ .shell {
48
+ width: 100%;
49
+ max-width: 1320px;
50
+ margin-inline: auto;
51
+ padding-inline: clamp(var(--space-md), 4vw, var(--space-2xl));
52
+ }
53
+
54
+ /* ───────── Top ticker ───────── */
55
+
56
+ .ticker {
57
+ border-bottom: var(--rule-hair);
58
+ background: var(--color-paper);
59
+ overflow: hidden;
60
+ position: relative;
61
+ }
62
+
63
+ .ticker::before,
64
+ .ticker::after {
65
+ content: "";
66
+ position: absolute;
67
+ top: 0;
68
+ bottom: 0;
69
+ width: 80px;
70
+ z-index: 2;
71
+ pointer-events: none;
72
+ }
73
+
74
+ .ticker::before {
75
+ left: 0;
76
+ background: linear-gradient(90deg, var(--color-paper) 0%, transparent 100%);
77
+ }
78
+
79
+ .ticker::after {
80
+ right: 0;
81
+ background: linear-gradient(270deg, var(--color-paper) 0%, transparent 100%);
82
+ }
83
+
84
+ .ticker-track {
85
+ display: flex;
86
+ gap: var(--space-xl);
87
+ padding-block: var(--space-sm);
88
+ white-space: nowrap;
89
+ width: max-content;
90
+ animation: ticker-scroll var(--dur-ticker) linear infinite;
91
+ font-family: var(--font-mono);
92
+ font-size: var(--text-xs);
93
+ letter-spacing: 0.18em;
94
+ text-transform: uppercase;
95
+ color: var(--color-ink-mute);
96
+ }
97
+
98
+ .ticker:hover .ticker-track { animation-play-state: paused; }
99
+
100
+ .ticker-track > span {
101
+ display: inline-flex;
102
+ align-items: center;
103
+ gap: var(--space-md);
104
+ flex-shrink: 0;
105
+ }
106
+
107
+ .ticker-track > span::after {
108
+ content: "";
109
+ width: 5px;
110
+ height: 5px;
111
+ border-radius: 50%;
112
+ background: var(--color-accent);
113
+ display: inline-block;
114
+ }
115
+
116
+ .ticker-track > span:last-child::after { display: none; }
117
+
118
+ .ticker-track strong {
119
+ color: var(--color-ink);
120
+ font-weight: 500;
121
+ }
122
+
123
+ @keyframes ticker-scroll {
124
+ 0% { transform: translateX(0); }
125
+ 100% { transform: translateX(-50%); }
126
+ }
127
+
128
+ /* ───────── Nav · N9 edge-aligned minimal ───────── */
129
+
130
+ .masthead {
131
+ display: grid;
132
+ grid-template-columns: auto 1fr auto;
133
+ align-items: baseline;
134
+ gap: var(--space-lg);
135
+ padding-block: var(--space-lg) var(--space-md);
136
+ border-bottom: var(--rule-hair);
137
+ }
138
+
139
+ .wordmark {
140
+ font-family: var(--font-display);
141
+ font-weight: 800;
142
+ font-size: var(--text-xl);
143
+ letter-spacing: -0.02em;
144
+ color: var(--color-ink);
145
+ }
146
+
147
+ .wordmark::before {
148
+ content: "✱ ";
149
+ color: var(--color-accent);
150
+ }
151
+
152
+ .masthead-meta {
153
+ font-family: var(--font-italic);
154
+ font-style: italic;
155
+ font-weight: 300;
156
+ font-size: var(--text-sm);
157
+ color: var(--color-ink-mute);
158
+ letter-spacing: 0.01em;
159
+ justify-self: center;
160
+ }
161
+
162
+ .masthead-links {
163
+ display: flex;
164
+ gap: var(--space-lg);
165
+ font-family: var(--font-mono);
166
+ font-size: var(--text-xs);
167
+ text-transform: uppercase;
168
+ letter-spacing: 0.12em;
169
+ color: var(--color-ink-2);
170
+ }
171
+
172
+ .masthead-links a:hover { color: var(--color-ink); }
173
+
174
+ /* ───────── Hero — Marquee with departure board ───────── */
175
+
176
+ .hero {
177
+ padding-block: var(--space-2xl) var(--space-3xl);
178
+ position: relative;
179
+ }
180
+
181
+ .hero-strip {
182
+ display: flex;
183
+ flex-wrap: wrap;
184
+ gap: var(--space-md) var(--space-xl);
185
+ align-items: baseline;
186
+ font-family: var(--font-mono);
187
+ font-size: var(--text-xs);
188
+ text-transform: uppercase;
189
+ letter-spacing: 0.16em;
190
+ color: var(--color-ink-mute);
191
+ margin-bottom: var(--space-xl);
192
+ }
193
+
194
+ .hero-strip .live {
195
+ display: inline-flex;
196
+ align-items: center;
197
+ gap: var(--space-xs);
198
+ color: var(--color-ink);
199
+ }
200
+
201
+ .hero-strip .live::before {
202
+ content: "";
203
+ width: 8px;
204
+ height: 8px;
205
+ border-radius: 50%;
206
+ background: var(--color-accent);
207
+ display: inline-block;
208
+ box-shadow: 0 0 10px var(--color-accent);
209
+ }
210
+
211
+ /* Hero composition: title block + corner stamp */
212
+ .hero-composition {
213
+ display: grid;
214
+ grid-template-columns: minmax(0, 1fr) auto;
215
+ align-items: start;
216
+ gap: var(--space-xl);
217
+ margin-bottom: var(--space-2xl);
218
+ }
219
+
220
+ .hero-title {
221
+ font-family: var(--font-display);
222
+ font-weight: 900;
223
+ font-size: var(--text-mark);
224
+ line-height: 0.92;
225
+ letter-spacing: -0.04em;
226
+ margin: 0 0 var(--space-md);
227
+ color: var(--color-ink);
228
+ max-width: 16ch;
229
+ overflow-wrap: anywhere;
230
+ min-width: 0;
231
+ font-variation-settings: "wdth" 75, "opsz" 96;
232
+ }
233
+
234
+ .hero-title em {
235
+ font-family: var(--font-italic);
236
+ font-style: italic;
237
+ font-weight: 300;
238
+ color: var(--color-accent);
239
+ letter-spacing: -0.02em;
240
+ font-variation-settings: normal;
241
+ }
242
+
243
+ .hero-title span.tonk {
244
+ display: inline-block;
245
+ font-family: var(--font-mono);
246
+ font-weight: 400;
247
+ font-size: 0.32em;
248
+ vertical-align: super;
249
+ letter-spacing: 0.18em;
250
+ color: var(--color-accent-2);
251
+ margin-left: 0.4em;
252
+ text-transform: uppercase;
253
+ font-variation-settings: normal;
254
+ }
255
+
256
+ .hero-sub {
257
+ font-family: var(--font-body);
258
+ font-size: var(--text-lg);
259
+ color: var(--color-ink-2);
260
+ max-width: 52ch;
261
+ margin: 0;
262
+ line-height: 1.5;
263
+ }
264
+
265
+ /* Corner stamp — diegetic passport / customs */
266
+ .hero-stamp {
267
+ align-self: start;
268
+ transform: rotate(-6deg);
269
+ border: 2px solid var(--color-accent);
270
+ padding: var(--space-md) var(--space-lg);
271
+ text-align: center;
272
+ font-family: var(--font-mono);
273
+ text-transform: uppercase;
274
+ letter-spacing: 0.14em;
275
+ color: var(--color-accent);
276
+ background: transparent;
277
+ position: relative;
278
+ width: 13rem;
279
+ margin-top: var(--space-md);
280
+ }
281
+
282
+ .hero-stamp::before,
283
+ .hero-stamp::after {
284
+ content: "";
285
+ position: absolute;
286
+ height: 2px;
287
+ background: var(--color-accent);
288
+ left: var(--space-sm);
289
+ right: var(--space-sm);
290
+ }
291
+
292
+ .hero-stamp::before { top: 6px; }
293
+ .hero-stamp::after { bottom: 6px; }
294
+
295
+ .hero-stamp .lg {
296
+ display: block;
297
+ font-family: var(--font-display);
298
+ font-weight: 900;
299
+ font-size: var(--text-2xl);
300
+ line-height: 1;
301
+ margin-block: var(--space-xs) var(--space-2xs);
302
+ letter-spacing: -0.02em;
303
+ }
304
+
305
+ .hero-stamp .sm {
306
+ display: block;
307
+ font-size: 0.65rem;
308
+ letter-spacing: 0.2em;
309
+ color: var(--color-accent-2);
310
+ }
311
+
312
+ .hero-stamp .num {
313
+ display: block;
314
+ font-size: 0.7rem;
315
+ margin-top: var(--space-xs);
316
+ border-top: 1px solid var(--color-accent);
317
+ padding-top: var(--space-xs);
318
+ color: var(--color-accent-2);
319
+ }
320
+
321
+ /* ── The board ── */
322
+
323
+ .board {
324
+ border-top: 2px solid var(--color-ink);
325
+ border-bottom: 2px solid var(--color-ink);
326
+ background: var(--color-paper);
327
+ margin-top: var(--space-xl);
328
+ }
329
+
330
+ .board-head {
331
+ display: grid;
332
+ grid-template-columns: 1.5rem 5.5rem minmax(0, 1fr) 4rem 6rem 7rem;
333
+ gap: var(--space-md);
334
+ padding: var(--space-sm) var(--space-md);
335
+ border-bottom: var(--rule-hair);
336
+ font-family: var(--font-mono);
337
+ font-size: 0.7rem;
338
+ text-transform: uppercase;
339
+ letter-spacing: 0.16em;
340
+ color: var(--color-ink-mute);
341
+ }
342
+
343
+ .board-row {
344
+ display: grid;
345
+ grid-template-columns: 1.5rem 5.5rem minmax(0, 1fr) 4rem 6rem 7rem;
346
+ gap: var(--space-md);
347
+ padding: var(--space-md);
348
+ align-items: center;
349
+ border-bottom: var(--rule-hair);
350
+ position: relative;
351
+ cursor: pointer;
352
+ transition:
353
+ background var(--dur-base) var(--ease-out),
354
+ transform var(--dur-base) var(--ease-out);
355
+ opacity: 0;
356
+ transform: translateY(8px);
357
+ animation: board-tick var(--dur-stagger) var(--ease-out) forwards;
358
+ }
359
+
360
+ .board-row:nth-child(1) { animation-delay: 60ms; }
361
+ .board-row:nth-child(2) { animation-delay: 140ms; }
362
+ .board-row:nth-child(3) { animation-delay: 220ms; }
363
+ .board-row:nth-child(4) { animation-delay: 300ms; }
364
+ .board-row:nth-child(5) { animation-delay: 380ms; }
365
+ .board-row:nth-child(6) { animation-delay: 460ms; }
366
+
367
+ .board-row:last-child { border-bottom: 0; }
368
+
369
+ .board-row::before {
370
+ content: "";
371
+ position: absolute;
372
+ left: 0;
373
+ top: 0;
374
+ bottom: 0;
375
+ width: 0;
376
+ background: var(--color-accent);
377
+ transition: width var(--dur-base) var(--ease-out);
378
+ }
379
+
380
+ .board-row:hover {
381
+ background: var(--color-paper-2);
382
+ }
383
+
384
+ .board-row:hover::before {
385
+ width: 3px;
386
+ }
387
+
388
+ /* Boarding-now row — permanent treatment */
389
+ .board-row[data-status="boarding"] {
390
+ background: linear-gradient(90deg, var(--color-paper-2) 0%, var(--color-paper) 65%);
391
+ }
392
+
393
+ .board-row[data-status="boarding"]::before {
394
+ width: 4px;
395
+ box-shadow: 0 0 18px var(--color-accent);
396
+ }
397
+
398
+ .board-row[data-status="boarding"] .board-dest {
399
+ font-size: var(--text-board-headline);
400
+ }
401
+
402
+ .board-row[data-status="boarding"] .board-time {
403
+ color: var(--color-accent);
404
+ }
405
+
406
+ /* Day/night glyph */
407
+ .board-glyph {
408
+ width: 16px;
409
+ height: 16px;
410
+ color: var(--color-ink-mute);
411
+ }
412
+
413
+ .board-row[data-status="boarding"] .board-glyph { color: var(--color-accent-2); }
414
+
415
+ .board-time {
416
+ font-family: var(--font-mono);
417
+ font-size: var(--text-base);
418
+ font-weight: 500;
419
+ color: var(--color-ink);
420
+ letter-spacing: 0.04em;
421
+ font-variant-numeric: tabular-nums;
422
+ }
423
+
424
+ .board-dest {
425
+ font-family: var(--font-display);
426
+ font-weight: 900;
427
+ font-size: var(--text-board);
428
+ line-height: 0.9;
429
+ letter-spacing: -0.025em;
430
+ color: var(--color-ink);
431
+ min-width: 0;
432
+ overflow-wrap: anywhere;
433
+ display: flex;
434
+ align-items: baseline;
435
+ gap: var(--space-md);
436
+ font-variation-settings: "wdth" 80, "opsz" 96;
437
+ }
438
+
439
+ .board-dest small {
440
+ font-family: var(--font-italic);
441
+ font-style: italic;
442
+ font-weight: 300;
443
+ font-size: 0.95rem;
444
+ letter-spacing: 0;
445
+ color: var(--color-ink-mute);
446
+ margin-left: var(--space-xs);
447
+ font-variation-settings: normal;
448
+ }
449
+
450
+ .board-row[data-status="boarding"] .board-dest small {
451
+ color: var(--color-ink-2);
452
+ font-size: 1.1rem;
453
+ }
454
+
455
+ .board-code {
456
+ font-family: var(--font-mono);
457
+ font-size: var(--text-sm);
458
+ letter-spacing: 0.18em;
459
+ color: var(--color-ink-2);
460
+ text-transform: uppercase;
461
+ font-variant-numeric: tabular-nums;
462
+ }
463
+
464
+ .board-status {
465
+ font-family: var(--font-mono);
466
+ font-size: 0.7rem;
467
+ letter-spacing: 0.16em;
468
+ text-transform: uppercase;
469
+ color: var(--color-ink-2);
470
+ display: inline-flex;
471
+ align-items: center;
472
+ gap: var(--space-2xs);
473
+ }
474
+
475
+ .board-status::before {
476
+ content: "";
477
+ width: 6px;
478
+ height: 6px;
479
+ border-radius: 50%;
480
+ background: var(--color-status-hold);
481
+ display: inline-block;
482
+ }
483
+
484
+ .board-row[data-status="boarding"] .board-status {
485
+ color: var(--color-paper);
486
+ background: var(--color-accent);
487
+ padding: 4px var(--space-sm);
488
+ border-radius: var(--radius-xs);
489
+ font-weight: 600;
490
+ }
491
+
492
+ .board-row[data-status="boarding"] .board-status::before {
493
+ background: var(--color-paper);
494
+ animation: pulse-dot 1.4s ease-in-out infinite;
495
+ }
496
+
497
+ @keyframes pulse-dot {
498
+ 0%, 100% { opacity: 1; }
499
+ 50% { opacity: 0.35; }
500
+ }
501
+
502
+ .board-row[data-status="ontime"] .board-status::before { background: var(--color-status-go); }
503
+ .board-row[data-status="open"] .board-status::before { background: var(--color-ink-2); }
504
+
505
+ .board-fare {
506
+ font-family: var(--font-mono);
507
+ font-size: var(--text-base);
508
+ font-weight: 500;
509
+ color: var(--color-ink);
510
+ text-align: right;
511
+ font-variant-numeric: tabular-nums;
512
+ letter-spacing: 0.02em;
513
+ }
514
+
515
+ .board-fare small {
516
+ font-family: var(--font-italic);
517
+ font-style: italic;
518
+ font-weight: 300;
519
+ font-size: 0.7rem;
520
+ color: var(--color-ink-mute);
521
+ text-transform: uppercase;
522
+ letter-spacing: 0.1em;
523
+ display: block;
524
+ }
525
+
526
+ .board-row[data-status="boarding"] .board-fare {
527
+ font-size: var(--text-lg);
528
+ color: var(--color-ink);
529
+ }
530
+
531
+ /* Board footnote */
532
+ .board-foot {
533
+ display: flex;
534
+ flex-wrap: wrap;
535
+ justify-content: space-between;
536
+ gap: var(--space-md);
537
+ padding-top: var(--space-md);
538
+ font-family: var(--font-italic);
539
+ font-style: italic;
540
+ font-size: var(--text-sm);
541
+ color: var(--color-ink-mute);
542
+ }
543
+
544
+ .board-foot kbd {
545
+ font-family: var(--font-mono);
546
+ font-size: 0.7rem;
547
+ padding: 2px 6px;
548
+ border: 1px solid var(--color-rule);
549
+ border-radius: 3px;
550
+ color: var(--color-ink-2);
551
+ font-style: normal;
552
+ }
553
+
554
+ /* CTA row beneath board */
555
+ .hero-cta {
556
+ display: flex;
557
+ flex-wrap: wrap;
558
+ align-items: baseline;
559
+ gap: var(--space-lg);
560
+ margin-top: var(--space-2xl);
561
+ }
562
+
563
+ .btn {
564
+ display: inline-flex;
565
+ align-items: center;
566
+ gap: var(--space-sm);
567
+ padding: var(--space-sm) var(--space-lg);
568
+ font-family: var(--font-mono);
569
+ font-size: var(--text-xs);
570
+ text-transform: uppercase;
571
+ letter-spacing: 0.16em;
572
+ border: 2px solid var(--color-accent);
573
+ background: var(--color-accent);
574
+ color: var(--color-paper);
575
+ border-radius: var(--radius-xs);
576
+ white-space: nowrap;
577
+ font-weight: 600;
578
+ transition:
579
+ background var(--dur-base) var(--ease-out),
580
+ color var(--dur-base) var(--ease-out),
581
+ border-color var(--dur-base) var(--ease-out);
582
+ }
583
+
584
+ .btn:hover {
585
+ background: var(--color-paper);
586
+ border-color: var(--color-ink);
587
+ color: var(--color-ink);
588
+ text-decoration: none;
589
+ }
590
+
591
+ .btn-ghost {
592
+ display: inline-flex;
593
+ align-items: center;
594
+ gap: var(--space-xs);
595
+ font-family: var(--font-italic);
596
+ font-style: italic;
597
+ font-size: var(--text-base);
598
+ color: var(--color-ink-2);
599
+ }
600
+
601
+ .btn-ghost::after {
602
+ content: "→";
603
+ transition: transform var(--dur-base) var(--ease-out);
604
+ }
605
+
606
+ .btn-ghost:hover::after { transform: translateX(4px); }
607
+ .btn-ghost:hover { color: var(--color-ink); text-decoration: none; }
608
+
609
+ /* ───────── Pitch ───────── */
610
+
611
+ .pitch {
612
+ padding-block: var(--space-3xl);
613
+ border-top: var(--rule-hair);
614
+ }
615
+
616
+ .pitch-grid {
617
+ display: grid;
618
+ grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
619
+ gap: var(--space-2xl);
620
+ align-items: start;
621
+ }
622
+
623
+ .pitch-label {
624
+ font-family: var(--font-mono);
625
+ font-size: var(--text-xs);
626
+ text-transform: uppercase;
627
+ letter-spacing: 0.18em;
628
+ color: var(--color-ink-mute);
629
+ }
630
+
631
+ .pitch-label::before {
632
+ content: "§ ";
633
+ color: var(--color-accent);
634
+ }
635
+
636
+ .pitch-body {
637
+ font-family: var(--font-body);
638
+ font-size: var(--text-xl);
639
+ line-height: 1.5;
640
+ color: var(--color-ink);
641
+ max-width: 58ch;
642
+ min-width: 0;
643
+ }
644
+
645
+ .pitch-body p + p { margin-top: var(--space-md); }
646
+ .pitch-body em {
647
+ font-family: var(--font-italic);
648
+ font-style: italic;
649
+ color: var(--color-accent-2);
650
+ }
651
+
652
+ /* ───────── Three picks ───────── */
653
+
654
+ .picks {
655
+ padding-block: var(--space-3xl);
656
+ border-top: var(--rule-hair);
657
+ }
658
+
659
+ .picks-head {
660
+ display: flex;
661
+ align-items: baseline;
662
+ justify-content: space-between;
663
+ flex-wrap: wrap;
664
+ gap: var(--space-md);
665
+ margin-bottom: var(--space-2xl);
666
+ }
667
+
668
+ .picks-head h2 {
669
+ font-family: var(--font-display);
670
+ font-weight: 900;
671
+ font-size: var(--text-4xl);
672
+ letter-spacing: -0.035em;
673
+ margin: 0;
674
+ overflow-wrap: anywhere;
675
+ min-width: 0;
676
+ font-variation-settings: "wdth" 80, "opsz" 96;
677
+ }
678
+
679
+ .picks-head h2 em {
680
+ font-family: var(--font-italic);
681
+ font-style: italic;
682
+ font-weight: 300;
683
+ color: var(--color-accent);
684
+ font-variation-settings: normal;
685
+ }
686
+
687
+ .picks-head .count {
688
+ font-family: var(--font-mono);
689
+ font-size: var(--text-xs);
690
+ letter-spacing: 0.16em;
691
+ text-transform: uppercase;
692
+ color: var(--color-ink-mute);
693
+ }
694
+
695
+ .picks-grid {
696
+ display: grid;
697
+ grid-template-columns: repeat(3, minmax(0, 1fr));
698
+ gap: var(--space-xl);
699
+ }
700
+
701
+ .pick {
702
+ display: grid;
703
+ grid-template-rows: auto 1fr auto;
704
+ gap: var(--space-md);
705
+ padding-top: var(--space-md);
706
+ border-top: 2px solid var(--color-ink);
707
+ min-width: 0;
708
+ }
709
+
710
+ .pick-num {
711
+ font-family: var(--font-mono);
712
+ font-size: var(--text-xs);
713
+ letter-spacing: 0.18em;
714
+ text-transform: uppercase;
715
+ color: var(--color-ink-mute);
716
+ display: flex;
717
+ justify-content: space-between;
718
+ }
719
+
720
+ .pick-num span:last-child { color: var(--color-accent); }
721
+
722
+ .pick-figure {
723
+ position: relative;
724
+ aspect-ratio: 4 / 5;
725
+ background: var(--color-paper-2);
726
+ overflow: hidden;
727
+ border-radius: var(--radius-xs);
728
+ display: grid;
729
+ place-items: center;
730
+ isolation: isolate;
731
+ border: 1px solid var(--color-hairline);
732
+ }
733
+
734
+ .pick-figure::before {
735
+ content: "";
736
+ position: absolute;
737
+ inset: 0;
738
+ background:
739
+ radial-gradient(circle at 30% 30%, var(--color-accent-mute) 0%, transparent 55%),
740
+ radial-gradient(circle at 70% 80%, var(--color-paper-3) 0%, transparent 60%);
741
+ z-index: -1;
742
+ opacity: 0.6;
743
+ }
744
+
745
+ .pick-figure svg {
746
+ width: 70%;
747
+ height: auto;
748
+ color: var(--color-ink-2);
749
+ }
750
+
751
+ .pick-figure-2::before {
752
+ background:
753
+ linear-gradient(135deg, var(--color-paper-3) 0%, var(--color-paper-2) 100%),
754
+ radial-gradient(circle at 50% 30%, var(--color-accent-mute) 0%, transparent 60%);
755
+ }
756
+
757
+ .pick-figure-3::before {
758
+ background:
759
+ radial-gradient(ellipse at 50% 100%, var(--color-accent-mute) 0%, transparent 50%),
760
+ linear-gradient(180deg, var(--color-paper-2) 0%, var(--color-paper-3) 100%);
761
+ }
762
+
763
+ .pick-title {
764
+ font-family: var(--font-display);
765
+ font-weight: 900;
766
+ font-size: var(--text-2xl);
767
+ letter-spacing: -0.025em;
768
+ margin: 0;
769
+ line-height: 0.95;
770
+ overflow-wrap: anywhere;
771
+ min-width: 0;
772
+ font-variation-settings: "wdth" 80, "opsz" 72;
773
+ }
774
+
775
+ .pick-title small {
776
+ font-family: var(--font-italic);
777
+ font-style: italic;
778
+ font-weight: 300;
779
+ font-size: 0.65em;
780
+ color: var(--color-ink-mute);
781
+ letter-spacing: 0;
782
+ margin-left: var(--space-xs);
783
+ font-variation-settings: normal;
784
+ }
785
+
786
+ .pick-body {
787
+ font-family: var(--font-body);
788
+ font-size: var(--text-base);
789
+ line-height: 1.55;
790
+ color: var(--color-ink-2);
791
+ margin: 0;
792
+ }
793
+
794
+ .pick-meta {
795
+ display: flex;
796
+ justify-content: space-between;
797
+ font-family: var(--font-mono);
798
+ font-size: var(--text-xs);
799
+ text-transform: uppercase;
800
+ letter-spacing: 0.14em;
801
+ color: var(--color-ink-mute);
802
+ padding-top: var(--space-sm);
803
+ border-top: var(--rule-hair);
804
+ }
805
+
806
+ .pick-meta strong {
807
+ color: var(--color-accent);
808
+ font-weight: 500;
809
+ }
810
+
811
+ /* ───────── How it works ───────── */
812
+
813
+ .process {
814
+ padding-block: var(--space-3xl);
815
+ border-top: var(--rule-hair);
816
+ background: var(--color-paper-2);
817
+ margin-inline: calc(50% - 50vw);
818
+ padding-inline: calc(50vw - 50%);
819
+ }
820
+
821
+ .process-shell {
822
+ width: 100%;
823
+ max-width: 1320px;
824
+ margin-inline: auto;
825
+ padding-inline: clamp(var(--space-md), 4vw, var(--space-2xl));
826
+ }
827
+
828
+ .process-head {
829
+ font-family: var(--font-mono);
830
+ font-size: var(--text-xs);
831
+ letter-spacing: 0.18em;
832
+ text-transform: uppercase;
833
+ color: var(--color-ink-mute);
834
+ margin-bottom: var(--space-2xl);
835
+ }
836
+
837
+ .process-head::before {
838
+ content: "§ ";
839
+ color: var(--color-accent);
840
+ }
841
+
842
+ .process-grid {
843
+ display: grid;
844
+ grid-template-columns: repeat(3, minmax(0, 1fr));
845
+ gap: var(--space-xl);
846
+ }
847
+
848
+ .stage {
849
+ display: grid;
850
+ gap: var(--space-md);
851
+ min-width: 0;
852
+ }
853
+
854
+ .stage-num {
855
+ font-family: var(--font-display);
856
+ font-weight: 900;
857
+ font-size: clamp(2.25rem, 4.5vw, 3.75rem);
858
+ line-height: 0.85;
859
+ color: var(--color-accent);
860
+ letter-spacing: -0.04em;
861
+ display: flex;
862
+ align-items: baseline;
863
+ justify-content: space-between;
864
+ font-variation-settings: "wdth" 80, "opsz" 96;
865
+ }
866
+
867
+ .stage-num small {
868
+ font-family: var(--font-mono);
869
+ font-weight: 400;
870
+ font-size: 0.7rem;
871
+ color: var(--color-ink-mute);
872
+ letter-spacing: 0.18em;
873
+ text-transform: uppercase;
874
+ font-variation-settings: normal;
875
+ }
876
+
877
+ .stage h3 {
878
+ font-family: var(--font-italic);
879
+ font-style: italic;
880
+ font-weight: 400;
881
+ font-size: var(--text-xl);
882
+ letter-spacing: -0.01em;
883
+ margin: 0;
884
+ color: var(--color-ink);
885
+ overflow-wrap: anywhere;
886
+ min-width: 0;
887
+ }
888
+
889
+ .stage p {
890
+ font-family: var(--font-body);
891
+ font-size: var(--text-base);
892
+ line-height: 1.55;
893
+ color: var(--color-ink-2);
894
+ margin: 0;
895
+ max-width: 36ch;
896
+ }
897
+
898
+ /* ───────── A note (voice block) ───────── */
899
+
900
+ .note {
901
+ padding-block: var(--space-3xl);
902
+ border-top: var(--rule-hair);
903
+ display: grid;
904
+ grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
905
+ gap: var(--space-2xl);
906
+ }
907
+
908
+ .note-label {
909
+ font-family: var(--font-mono);
910
+ font-size: var(--text-xs);
911
+ letter-spacing: 0.18em;
912
+ text-transform: uppercase;
913
+ color: var(--color-ink-mute);
914
+ }
915
+
916
+ .note-label::before {
917
+ content: "§ ";
918
+ color: var(--color-accent);
919
+ }
920
+
921
+ .note-body {
922
+ font-family: var(--font-italic);
923
+ font-style: italic;
924
+ font-weight: 300;
925
+ font-size: clamp(1.5rem, 2.6vw, 2.25rem);
926
+ line-height: 1.3;
927
+ color: var(--color-ink);
928
+ max-width: 28ch;
929
+ letter-spacing: -0.015em;
930
+ overflow-wrap: anywhere;
931
+ min-width: 0;
932
+ }
933
+
934
+ .note-body em {
935
+ color: var(--color-accent);
936
+ }
937
+
938
+ .note-sig {
939
+ font-family: var(--font-mono);
940
+ font-size: var(--text-xs);
941
+ text-transform: uppercase;
942
+ letter-spacing: 0.16em;
943
+ color: var(--color-ink-mute);
944
+ margin-top: var(--space-lg);
945
+ display: block;
946
+ font-style: normal;
947
+ }
948
+
949
+ /* ───────── Final CTA strip ───────── */
950
+
951
+ .final-cta {
952
+ padding-block: var(--space-3xl);
953
+ border-top: var(--rule-hair);
954
+ display: flex;
955
+ flex-wrap: wrap;
956
+ gap: var(--space-xl);
957
+ align-items: baseline;
958
+ justify-content: space-between;
959
+ }
960
+
961
+ .final-cta h2 {
962
+ font-family: var(--font-display);
963
+ font-weight: 900;
964
+ font-size: clamp(2.25rem, 5vw, 4rem);
965
+ margin: 0;
966
+ letter-spacing: -0.035em;
967
+ max-width: 16ch;
968
+ min-width: 0;
969
+ overflow-wrap: anywhere;
970
+ line-height: 0.95;
971
+ color: var(--color-ink);
972
+ font-variation-settings: "wdth" 80, "opsz" 96;
973
+ }
974
+
975
+ .final-cta h2 em {
976
+ font-family: var(--font-italic);
977
+ font-style: italic;
978
+ font-weight: 300;
979
+ color: var(--color-accent);
980
+ font-variation-settings: normal;
981
+ }
982
+
983
+ /* ───────── Footer · Ft4 dense colophon ───────── */
984
+
985
+ .colophon {
986
+ border-top: 2px solid var(--color-ink);
987
+ padding-block: var(--space-2xl);
988
+ }
989
+
990
+ .colophon-head {
991
+ display: flex;
992
+ align-items: baseline;
993
+ justify-content: space-between;
994
+ flex-wrap: wrap;
995
+ gap: var(--space-md);
996
+ padding-bottom: var(--space-lg);
997
+ border-bottom: var(--rule-hair);
998
+ }
999
+
1000
+ .colophon-head .wordmark { font-size: var(--text-2xl); }
1001
+
1002
+ .colophon-head em {
1003
+ font-family: var(--font-italic);
1004
+ font-style: italic;
1005
+ font-weight: 300;
1006
+ color: var(--color-ink-mute);
1007
+ font-size: var(--text-base);
1008
+ }
1009
+
1010
+ .colophon-grid {
1011
+ display: grid;
1012
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1013
+ gap: var(--space-xl);
1014
+ padding-block: var(--space-xl);
1015
+ }
1016
+
1017
+ .col-block dt {
1018
+ font-family: var(--font-mono);
1019
+ font-size: var(--text-xs);
1020
+ letter-spacing: 0.18em;
1021
+ text-transform: uppercase;
1022
+ color: var(--color-ink-mute);
1023
+ margin-bottom: var(--space-sm);
1024
+ }
1025
+
1026
+ .col-block dd {
1027
+ margin: 0 0 var(--space-2xs);
1028
+ font-size: var(--text-sm);
1029
+ color: var(--color-ink);
1030
+ }
1031
+
1032
+ .col-block dd a:hover { color: var(--color-accent); }
1033
+
1034
+ .colophon-foot {
1035
+ display: flex;
1036
+ justify-content: space-between;
1037
+ flex-wrap: wrap;
1038
+ gap: var(--space-md);
1039
+ padding-top: var(--space-lg);
1040
+ border-top: var(--rule-hair);
1041
+ font-family: var(--font-mono);
1042
+ font-size: var(--text-xs);
1043
+ letter-spacing: 0.14em;
1044
+ text-transform: uppercase;
1045
+ color: var(--color-ink-mute);
1046
+ }
1047
+
1048
+ .colophon-foot .lead { color: var(--color-ink-2); }
1049
+
1050
+ /* ───────── Animations ───────── */
1051
+
1052
+ @keyframes board-tick {
1053
+ 0% {
1054
+ opacity: 0;
1055
+ transform: translateY(8px);
1056
+ filter: blur(2px);
1057
+ }
1058
+ 60% {
1059
+ opacity: 1;
1060
+ filter: blur(0);
1061
+ }
1062
+ 100% {
1063
+ opacity: 1;
1064
+ transform: translateY(0);
1065
+ filter: blur(0);
1066
+ }
1067
+ }
1068
+
1069
+ /* ───────── Responsive ───────── */
1070
+
1071
+ @media (max-width: 880px) {
1072
+ .pitch-grid,
1073
+ .picks-grid,
1074
+ .process-grid,
1075
+ .note,
1076
+ .colophon-grid {
1077
+ grid-template-columns: minmax(0, 1fr);
1078
+ gap: var(--space-xl);
1079
+ }
1080
+
1081
+ .colophon-grid { gap: var(--space-lg); }
1082
+
1083
+ .hero-composition {
1084
+ grid-template-columns: minmax(0, 1fr);
1085
+ }
1086
+
1087
+ .hero-stamp {
1088
+ transform: rotate(-4deg);
1089
+ width: 12rem;
1090
+ margin-top: 0;
1091
+ }
1092
+
1093
+ .board-head { display: none; }
1094
+
1095
+ .board-row {
1096
+ grid-template-columns: 1.25rem 4.25rem minmax(0, 1fr);
1097
+ grid-template-areas:
1098
+ "glyph time dest"
1099
+ ". code status"
1100
+ "fare fare fare";
1101
+ row-gap: var(--space-xs);
1102
+ column-gap: var(--space-md);
1103
+ padding: var(--space-md);
1104
+ }
1105
+
1106
+ .board-glyph { grid-area: glyph; align-self: center; }
1107
+ .board-time { grid-area: time; }
1108
+ .board-dest {
1109
+ grid-area: dest;
1110
+ font-size: clamp(1.5rem, 7vw, 2.25rem);
1111
+ }
1112
+ .board-row[data-status="boarding"] .board-dest {
1113
+ font-size: clamp(1.85rem, 9vw, 2.85rem);
1114
+ }
1115
+ .board-code { grid-area: code; }
1116
+ .board-status { grid-area: status; justify-self: end; }
1117
+ .board-fare {
1118
+ grid-area: fare;
1119
+ text-align: left;
1120
+ padding-top: var(--space-xs);
1121
+ border-top: var(--rule-hair);
1122
+ display: flex;
1123
+ gap: var(--space-md);
1124
+ align-items: baseline;
1125
+ }
1126
+ .board-fare small { display: inline; }
1127
+
1128
+ .masthead {
1129
+ grid-template-columns: 1fr auto;
1130
+ gap: var(--space-sm);
1131
+ }
1132
+
1133
+ .masthead-meta { display: none; }
1134
+ .masthead-links { gap: var(--space-md); }
1135
+
1136
+ .colophon-head .wordmark { font-size: var(--text-xl); }
1137
+ }
1138
+
1139
+ @media (max-width: 480px) {
1140
+ .hero { padding-block: var(--space-xl) var(--space-2xl); }
1141
+ .pitch, .picks, .process, .note, .final-cta { padding-block: var(--space-2xl); }
1142
+ .hero-strip { gap: var(--space-sm) var(--space-md); }
1143
+ .hero-cta { gap: var(--space-md); }
1144
+ .colophon-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
1145
+ .ticker-track { gap: var(--space-lg); }
1146
+ }
1147
+
1148
+ /* ───────── Reduced motion ───────── */
1149
+
1150
+ @media (prefers-reduced-motion: reduce) {
1151
+ *, *::before, *::after {
1152
+ animation-duration: 0.001ms !important;
1153
+ animation-delay: 0ms !important;
1154
+ transition-duration: 100ms !important;
1155
+ transition-property: opacity, color, background-color, border-color !important;
1156
+ }
1157
+
1158
+ .board-row {
1159
+ opacity: 1;
1160
+ transform: none;
1161
+ filter: none;
1162
+ }
1163
+
1164
+ .ticker-track {
1165
+ animation: none !important;
1166
+ transform: none !important;
1167
+ }
1168
+ }