howone 0.1.29 → 0.1.30

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 (219) hide show
  1. package/package.json +1 -1
  2. package/templates/vite/.howone/skills/hallmark/SKILL.md +48 -42
  3. package/templates/vite/.howone/skills/hallmark/references/anti-patterns.md +12 -6
  4. package/templates/vite/.howone/skills/hallmark/references/assets.md +7 -0
  5. package/templates/vite/.howone/skills/hallmark/references/component-cookbook.md +19 -10
  6. package/templates/vite/.howone/skills/hallmark/references/components/f2-sticky-scroll-stack.md +1 -1
  7. package/templates/vite/.howone/skills/hallmark/references/components/ft6-letter-close.md +1 -1
  8. package/templates/vite/.howone/skills/hallmark/references/components/h7-demo-video-clipped-by-viewport-edge.md +1 -1
  9. package/templates/vite/.howone/skills/hallmark/references/components/h9-custom-illustration-centerpiece.md +1 -1
  10. package/templates/vite/.howone/skills/hallmark/references/components/n10-floating-on-scroll-morph.md +1 -1
  11. package/templates/vite/.howone/skills/hallmark/references/components/n11-mega-menu.md +40 -0
  12. package/templates/vite/.howone/skills/hallmark/references/components/n12-banner-retract.md +34 -0
  13. package/templates/vite/.howone/skills/hallmark/references/components/n13-inline-cmdk-pill.md +39 -0
  14. package/templates/vite/.howone/skills/hallmark/references/components/n1b-saas-three-section.md +35 -0
  15. package/templates/vite/.howone/skills/hallmark/references/components/n9-edge-aligned-minimal.md +1 -1
  16. package/templates/vite/.howone/skills/hallmark/references/components/s3-sticky-pinned.md +2 -2
  17. package/templates/vite/.howone/skills/hallmark/references/copy.md +8 -8
  18. package/templates/vite/.howone/skills/hallmark/references/custom-craft.md +2 -2
  19. package/templates/vite/.howone/skills/hallmark/references/custom-theme.md +50 -12
  20. package/templates/vite/.howone/skills/hallmark/references/export-formats.md +1 -1
  21. package/templates/vite/.howone/skills/hallmark/references/genres/atmospheric.md +11 -7
  22. package/templates/vite/.howone/skills/hallmark/references/genres/editorial.md +6 -4
  23. package/templates/vite/.howone/skills/hallmark/references/genres/modern-minimal.md +10 -6
  24. package/templates/vite/.howone/skills/hallmark/references/genres/playful.md +15 -10
  25. package/templates/vite/.howone/skills/hallmark/references/hero-enrichment.md +13 -12
  26. package/templates/vite/.howone/skills/hallmark/references/interaction-and-states.md +2 -1
  27. package/templates/vite/.howone/skills/hallmark/references/layout-and-space.md +4 -3
  28. package/templates/vite/.howone/skills/hallmark/references/macrostructures/04-stat-led.md +3 -1
  29. package/templates/vite/.howone/skills/hallmark/references/macrostructures/12-letter.md +1 -1
  30. package/templates/vite/.howone/skills/hallmark/references/macrostructures.md +1 -1
  31. package/templates/vite/.howone/skills/hallmark/references/microinteractions.md +1 -3
  32. package/templates/vite/.howone/skills/hallmark/references/preview-examples.md +12 -12
  33. package/templates/vite/.howone/skills/hallmark/references/responsive.md +8 -8
  34. package/templates/vite/.howone/skills/hallmark/references/slop-test.md +72 -85
  35. package/templates/vite/.howone/skills/hallmark/references/structure.md +9 -13
  36. package/templates/vite/.howone/skills/hallmark/references/study.md +40 -17
  37. package/templates/vite/.howone/skills/hallmark/references/themes/carnival.md +301 -0
  38. package/templates/vite/.howone/skills/hallmark/references/themes/cobalt.md +146 -0
  39. package/templates/vite/.howone/skills/hallmark/references/themes/hum.md +403 -0
  40. package/templates/vite/.howone/skills/hallmark/references/themes/lumen.md +478 -0
  41. package/templates/vite/.howone/skills/hallmark/references/typography.md +3 -3
  42. package/templates/vite/.howone/skills/hallmark/references/verbs/redesign.md +1 -1
  43. package/templates/vite/.howone/skills/hallmark/LICENSE +0 -21
  44. package/templates/vite/.howone/skills/hallmark/README.md +0 -147
  45. package/templates/vite/.howone/skills/hallmark/ROADMAP.md +0 -201
  46. package/templates/vite/.howone/skills/hallmark/docs/recipes.md +0 -186
  47. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-anya.jpg +0 -0
  48. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-bananastudio.jpg +0 -0
  49. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-hyperlane.jpg +0 -0
  50. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-najm.jpg +0 -0
  51. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-slow-pour.jpg +0 -0
  52. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-soroe.jpg +0 -0
  53. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-tally.jpg +0 -0
  54. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-wayfare.jpg +0 -0
  55. package/templates/vite/.howone/skills/hallmark/docs/study-examples.md +0 -176
  56. package/templates/vite/.howone/skills/hallmark/docs/talk-slides.md +0 -364
  57. package/templates/vite/.howone/skills/hallmark/package.json +0 -36
  58. package/templates/vite/.howone/skills/hallmark/site/OG-hallmark.png +0 -0
  59. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/brief.md +0 -71
  60. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/index.html +0 -64
  61. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/style.css +0 -240
  62. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/brief.md +0 -65
  63. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/index.html +0 -105
  64. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/style.css +0 -250
  65. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/brief.md +0 -64
  66. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/index.html +0 -131
  67. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/style.css +0 -240
  68. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/brief.md +0 -67
  69. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/index.html +0 -86
  70. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/style.css +0 -262
  71. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/brief.md +0 -63
  72. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/index.html +0 -167
  73. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/style.css +0 -457
  74. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/brief.md +0 -65
  75. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/index.html +0 -159
  76. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/style.css +0 -288
  77. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/brief.md +0 -64
  78. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/index.html +0 -146
  79. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/style.css +0 -484
  80. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/brief.md +0 -64
  81. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/index.html +0 -116
  82. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/style.css +0 -354
  83. package/templates/vite/.howone/skills/hallmark/site/_tests/09-slow-pour/index.html +0 -638
  84. package/templates/vite/.howone/skills/hallmark/site/_tests/10-owl-hours/index.html +0 -515
  85. package/templates/vite/.howone/skills/hallmark/site/_tests/11-soroe-ceramics/index.html +0 -515
  86. package/templates/vite/.howone/skills/hallmark/site/_tests/12-loafer/index.html +0 -608
  87. package/templates/vite/.howone/skills/hallmark/site/_tests/13-alma/index.html +0 -587
  88. package/templates/vite/.howone/skills/hallmark/site/_tests/README.md +0 -157
  89. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-loop.mp4 +0 -0
  90. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-still.jpg +0 -0
  91. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-example.mp4 +0 -0
  92. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-still.jpg +0 -0
  93. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-loop.mp4 +0 -0
  94. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-still.jpg +0 -0
  95. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Podcast-loop.mp4 +0 -0
  96. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-loop.mp4 +0 -0
  97. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-still.jpg +0 -0
  98. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-loop.mp4 +0 -0
  99. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-still.jpg +0 -0
  100. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/after-quiet-hour.png +0 -0
  101. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-loop.mp4 +0 -0
  102. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-still.jpg +0 -0
  103. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/audit-example.png +0 -0
  104. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/before-quiet-hour.png +0 -0
  105. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/example-redesign-uractivation.png +0 -0
  106. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-loop.mp4 +0 -0
  107. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-still.jpg +0 -0
  108. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/study-example.png +0 -0
  109. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/uractivation-after-loop.mp4 +0 -0
  110. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-loop.mp4 +0 -0
  111. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-still.jpg +0 -0
  112. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/index.html +0 -77
  113. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/style.css +0 -238
  114. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/index.html +0 -110
  115. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/style.css +0 -326
  116. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/index.html +0 -134
  117. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/style.css +0 -262
  118. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/README.md +0 -30
  119. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/README.md +0 -17
  120. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/audit-report.md +0 -56
  121. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/input.html +0 -160
  122. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/notes.md +0 -29
  123. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/input.html +0 -63
  124. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/notes.md +0 -72
  125. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/output.html +0 -374
  126. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/diagnosis.md +0 -52
  127. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/input-description.md +0 -29
  128. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/notes.md +0 -61
  129. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.css +0 -193
  130. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.html +0 -66
  131. package/templates/vite/.howone/skills/hallmark/site/css/base.css +0 -194
  132. package/templates/vite/.howone/skills/hallmark/site/css/components.css +0 -4886
  133. package/templates/vite/.howone/skills/hallmark/site/css/sections.css +0 -2072
  134. package/templates/vite/.howone/skills/hallmark/site/css/tokens.css +0 -1129
  135. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/index.html +0 -475
  136. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/styles.css +0 -1584
  137. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/tokens.css +0 -96
  138. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/index.html +0 -344
  139. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/script.js +0 -103
  140. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/styles.css +0 -1103
  141. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/tokens.css +0 -83
  142. package/templates/vite/.howone/skills/hallmark/site/examples/najm/index.html +0 -368
  143. package/templates/vite/.howone/skills/hallmark/site/examples/najm/script.js +0 -133
  144. package/templates/vite/.howone/skills/hallmark/site/examples/najm/styles.css +0 -1062
  145. package/templates/vite/.howone/skills/hallmark/site/examples/najm/tokens.css +0 -97
  146. package/templates/vite/.howone/skills/hallmark/site/examples/tally/app.js +0 -84
  147. package/templates/vite/.howone/skills/hallmark/site/examples/tally/index.html +0 -446
  148. package/templates/vite/.howone/skills/hallmark/site/examples/tally/styles.css +0 -1087
  149. package/templates/vite/.howone/skills/hallmark/site/examples/tally/tokens.css +0 -101
  150. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/index.html +0 -359
  151. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/style.css +0 -1168
  152. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/tokens.css +0 -81
  153. package/templates/vite/.howone/skills/hallmark/site/favicon-dark.svg +0 -5
  154. package/templates/vite/.howone/skills/hallmark/site/favicon-light.svg +0 -5
  155. package/templates/vite/.howone/skills/hallmark/site/index.html +0 -1043
  156. package/templates/vite/.howone/skills/hallmark/site/js/main.js +0 -1175
  157. package/templates/vite/.howone/skills/hallmark/vercel.json +0 -6
  158. package/templates/vite/.howone/skills/impeccable/SKILL.md +0 -168
  159. package/templates/vite/.howone/skills/impeccable/agents/impeccable-asset-producer.md +0 -101
  160. package/templates/vite/.howone/skills/impeccable/reference/adapt.md +0 -190
  161. package/templates/vite/.howone/skills/impeccable/reference/animate.md +0 -175
  162. package/templates/vite/.howone/skills/impeccable/reference/audit.md +0 -133
  163. package/templates/vite/.howone/skills/impeccable/reference/bolder.md +0 -113
  164. package/templates/vite/.howone/skills/impeccable/reference/brand.md +0 -118
  165. package/templates/vite/.howone/skills/impeccable/reference/clarify.md +0 -174
  166. package/templates/vite/.howone/skills/impeccable/reference/codex.md +0 -105
  167. package/templates/vite/.howone/skills/impeccable/reference/cognitive-load.md +0 -106
  168. package/templates/vite/.howone/skills/impeccable/reference/color-and-contrast.md +0 -105
  169. package/templates/vite/.howone/skills/impeccable/reference/colorize.md +0 -154
  170. package/templates/vite/.howone/skills/impeccable/reference/craft.md +0 -123
  171. package/templates/vite/.howone/skills/impeccable/reference/critique.md +0 -273
  172. package/templates/vite/.howone/skills/impeccable/reference/delight.md +0 -302
  173. package/templates/vite/.howone/skills/impeccable/reference/distill.md +0 -111
  174. package/templates/vite/.howone/skills/impeccable/reference/document.md +0 -427
  175. package/templates/vite/.howone/skills/impeccable/reference/extract.md +0 -69
  176. package/templates/vite/.howone/skills/impeccable/reference/harden.md +0 -347
  177. package/templates/vite/.howone/skills/impeccable/reference/heuristics-scoring.md +0 -234
  178. package/templates/vite/.howone/skills/impeccable/reference/interaction-design.md +0 -195
  179. package/templates/vite/.howone/skills/impeccable/reference/layout.md +0 -141
  180. package/templates/vite/.howone/skills/impeccable/reference/live.md +0 -622
  181. package/templates/vite/.howone/skills/impeccable/reference/motion-design.md +0 -109
  182. package/templates/vite/.howone/skills/impeccable/reference/onboard.md +0 -234
  183. package/templates/vite/.howone/skills/impeccable/reference/optimize.md +0 -258
  184. package/templates/vite/.howone/skills/impeccable/reference/overdrive.md +0 -130
  185. package/templates/vite/.howone/skills/impeccable/reference/personas.md +0 -179
  186. package/templates/vite/.howone/skills/impeccable/reference/polish.md +0 -242
  187. package/templates/vite/.howone/skills/impeccable/reference/product.md +0 -62
  188. package/templates/vite/.howone/skills/impeccable/reference/quieter.md +0 -99
  189. package/templates/vite/.howone/skills/impeccable/reference/responsive-design.md +0 -114
  190. package/templates/vite/.howone/skills/impeccable/reference/shape.md +0 -165
  191. package/templates/vite/.howone/skills/impeccable/reference/spatial-design.md +0 -100
  192. package/templates/vite/.howone/skills/impeccable/reference/teach.md +0 -156
  193. package/templates/vite/.howone/skills/impeccable/reference/typeset.md +0 -124
  194. package/templates/vite/.howone/skills/impeccable/reference/typography.md +0 -159
  195. package/templates/vite/.howone/skills/impeccable/reference/ux-writing.md +0 -107
  196. package/templates/vite/.howone/skills/impeccable/scripts/cleanup-deprecated.mjs +0 -284
  197. package/templates/vite/.howone/skills/impeccable/scripts/command-metadata.json +0 -94
  198. package/templates/vite/.howone/skills/impeccable/scripts/critique-storage.mjs +0 -242
  199. package/templates/vite/.howone/skills/impeccable/scripts/design-parser.mjs +0 -820
  200. package/templates/vite/.howone/skills/impeccable/scripts/detect-csp.mjs +0 -198
  201. package/templates/vite/.howone/skills/impeccable/scripts/detect.mjs +0 -21
  202. package/templates/vite/.howone/skills/impeccable/scripts/impeccable-paths.mjs +0 -110
  203. package/templates/vite/.howone/skills/impeccable/scripts/is-generated.mjs +0 -69
  204. package/templates/vite/.howone/skills/impeccable/scripts/live-accept.mjs +0 -595
  205. package/templates/vite/.howone/skills/impeccable/scripts/live-browser-session.js +0 -123
  206. package/templates/vite/.howone/skills/impeccable/scripts/live-browser.js +0 -4860
  207. package/templates/vite/.howone/skills/impeccable/scripts/live-complete.mjs +0 -75
  208. package/templates/vite/.howone/skills/impeccable/scripts/live-completion.mjs +0 -18
  209. package/templates/vite/.howone/skills/impeccable/scripts/live-inject.mjs +0 -446
  210. package/templates/vite/.howone/skills/impeccable/scripts/live-poll.mjs +0 -200
  211. package/templates/vite/.howone/skills/impeccable/scripts/live-resume.mjs +0 -48
  212. package/templates/vite/.howone/skills/impeccable/scripts/live-server.mjs +0 -838
  213. package/templates/vite/.howone/skills/impeccable/scripts/live-session-store.mjs +0 -254
  214. package/templates/vite/.howone/skills/impeccable/scripts/live-status.mjs +0 -47
  215. package/templates/vite/.howone/skills/impeccable/scripts/live-wrap.mjs +0 -632
  216. package/templates/vite/.howone/skills/impeccable/scripts/live.mjs +0 -247
  217. package/templates/vite/.howone/skills/impeccable/scripts/load-context.mjs +0 -141
  218. package/templates/vite/.howone/skills/impeccable/scripts/modern-screenshot.umd.js +0 -14
  219. package/templates/vite/.howone/skills/impeccable/scripts/pin.mjs +0 -214
@@ -1,484 +0,0 @@
1
- /* Hallmark · macrostructure: Bento Grid · F1 bento knobs: tiles=6, spans=irregular, accent=corner-only
2
- * theme: Newsprint · accent: warm-deep-red ~3% · enrichment: tier-A CSS logo grid (8 mono wordmarks)
3
- * studied: no · context: explicit · v0.6.0
4
- */
5
-
6
- :root {
7
- --color-paper: oklch(95% 0.014 80);
8
- --color-paper-2: oklch(92% 0.016 80);
9
- --color-rule: oklch(78% 0.018 70);
10
- --color-ink: oklch(20% 0.014 50);
11
- --color-ink-soft: oklch(40% 0.014 50);
12
- --color-ink-muted: oklch(58% 0.014 50);
13
- --color-accent: oklch(48% 0.16 28);
14
- --color-accent-dim: oklch(60% 0.12 28);
15
-
16
- --font-display: "Source Serif 4", "Iowan Old Style", Georgia, serif;
17
- --font-body: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
18
- --font-mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;
19
-
20
- --space-3xs: 0.25rem;
21
- --space-2xs: 0.5rem;
22
- --space-xs: 0.75rem;
23
- --space-sm: 1rem;
24
- --space-md: 1.5rem;
25
- --space-lg: 2rem;
26
- --space-xl: 3rem;
27
- --space-2xl: 4.5rem;
28
- --space-3xl: 6.5rem;
29
-
30
- --radius-tile: 4px;
31
- --ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
32
- --dur-micro: 120ms;
33
- --dur-short: 240ms;
34
- }
35
-
36
- * { box-sizing: border-box; }
37
- html, body { overflow-x: clip; }
38
-
39
- body {
40
- margin: 0;
41
- background: var(--color-paper);
42
- color: var(--color-ink);
43
- font-family: var(--font-body);
44
- font-size: 0.9375rem;
45
- line-height: 1.55;
46
- -webkit-font-smoothing: antialiased;
47
- }
48
-
49
- .page { max-width: 80rem; margin: 0 auto; padding: 0 var(--space-lg); }
50
-
51
- /* Masthead — newspaper banner */
52
- .masthead {
53
- display: grid;
54
- grid-template-columns: 1fr auto 1fr;
55
- align-items: center;
56
- padding: var(--space-md) 0;
57
- border-block-end: 3px double var(--color-ink);
58
- font-family: var(--font-mono);
59
- font-size: 0.75rem;
60
- letter-spacing: 0.06em;
61
- text-transform: uppercase;
62
- color: var(--color-ink-soft);
63
- }
64
-
65
- .masthead__brand {
66
- font-family: var(--font-display);
67
- font-size: 1.25rem;
68
- font-weight: 600;
69
- letter-spacing: -0.005em;
70
- color: var(--color-ink);
71
- text-transform: none;
72
- }
73
- .masthead__brand .dot { color: var(--color-accent); }
74
-
75
- .masthead__nav {
76
- display: flex;
77
- gap: var(--space-md);
78
- justify-content: end;
79
- }
80
-
81
- .masthead__nav a {
82
- color: var(--color-ink-soft);
83
- text-decoration: none;
84
- transition: color var(--dur-micro) var(--ease-out);
85
- }
86
-
87
- .masthead__nav a:hover, .masthead__nav a:focus-visible { color: var(--color-accent); }
88
- .masthead__nav a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
89
-
90
- /* Hero */
91
- .hero {
92
- display: grid;
93
- grid-template-columns: 1.4fr 1fr;
94
- gap: var(--space-2xl);
95
- align-items: end;
96
- padding: var(--space-3xl) 0 var(--space-2xl);
97
- border-block-end: 1px solid var(--color-rule);
98
- }
99
-
100
- .hero__copy { max-width: 36rem; }
101
-
102
- .hero__eyebrow {
103
- font-family: var(--font-mono);
104
- font-size: 0.75rem;
105
- letter-spacing: 0.12em;
106
- text-transform: uppercase;
107
- color: var(--color-accent);
108
- margin: 0 0 var(--space-md);
109
- }
110
-
111
- .hero__head {
112
- font-family: var(--font-display);
113
- font-size: clamp(2.5rem, 6vw, 4.5rem);
114
- font-weight: 600;
115
- line-height: 1.02;
116
- letter-spacing: -0.02em;
117
- margin: 0 0 var(--space-md);
118
- color: var(--color-ink);
119
- }
120
-
121
- .hero__head em { font-style: italic; color: var(--color-accent); }
122
-
123
- .hero__sub {
124
- font-family: var(--font-body);
125
- font-size: 1.0625rem;
126
- line-height: 1.6;
127
- color: var(--color-ink-soft);
128
- margin: 0 0 var(--space-lg);
129
- max-width: 56ch;
130
- }
131
-
132
- .hero__cta { display: flex; gap: var(--space-sm); flex-wrap: wrap; }
133
-
134
- .btn {
135
- display: inline-flex;
136
- align-items: center;
137
- gap: 0.5ch;
138
- padding: var(--space-sm) var(--space-md);
139
- font-family: var(--font-body);
140
- font-size: 0.9375rem;
141
- font-weight: 500;
142
- text-decoration: none;
143
- border: 1px solid var(--color-rule);
144
- background: transparent;
145
- color: var(--color-ink);
146
- cursor: pointer;
147
- line-height: 1;
148
- border-radius: 2px;
149
- transition: background var(--dur-micro) var(--ease-out),
150
- border-color var(--dur-micro) var(--ease-out),
151
- color var(--dur-micro) var(--ease-out);
152
- }
153
-
154
- .btn--primary { background: var(--color-accent); color: var(--color-paper); border-color: var(--color-accent); }
155
- .btn--primary:hover, .btn--primary:focus-visible { background: var(--color-ink); border-color: var(--color-ink); }
156
- .btn:hover, .btn:focus-visible { border-color: var(--color-accent); color: var(--color-accent); }
157
- .btn--primary:hover, .btn--primary:focus-visible { color: var(--color-paper); }
158
- .btn:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
159
-
160
- /* Hero pull-quote panel */
161
- .hero__pull {
162
- background: var(--color-paper-2);
163
- border-inline-start: 3px solid var(--color-accent);
164
- padding: var(--space-md);
165
- font-family: var(--font-display);
166
- }
167
-
168
- .hero__pull-quote {
169
- font-style: italic;
170
- font-size: 1.125rem;
171
- line-height: 1.45;
172
- color: var(--color-ink);
173
- margin: 0 0 var(--space-sm);
174
- }
175
-
176
- .hero__pull-attr {
177
- font-family: var(--font-mono);
178
- font-size: 0.75rem;
179
- letter-spacing: 0.06em;
180
- color: var(--color-ink-soft);
181
- font-style: normal;
182
- }
183
-
184
- /* Bento grid */
185
- .bento {
186
- padding: var(--space-2xl) 0;
187
- display: grid;
188
- grid-template-columns: repeat(6, 1fr);
189
- gap: var(--space-md);
190
- border-block-end: 1px solid var(--color-rule);
191
- }
192
-
193
- .tile {
194
- background: var(--color-paper-2);
195
- border: 1px solid var(--color-rule);
196
- border-radius: var(--radius-tile);
197
- padding: var(--space-lg);
198
- display: flex;
199
- flex-direction: column;
200
- gap: var(--space-sm);
201
- position: relative;
202
- }
203
-
204
- .tile__corner {
205
- position: absolute;
206
- inset-block-start: 0;
207
- inset-inline-end: 0;
208
- width: 1.5rem;
209
- height: 1.5rem;
210
- background: var(--color-accent);
211
- clip-path: polygon(100% 0, 0 0, 100% 100%);
212
- }
213
-
214
- .tile__label {
215
- font-family: var(--font-mono);
216
- font-size: 0.75rem;
217
- letter-spacing: 0.12em;
218
- text-transform: uppercase;
219
- color: var(--color-ink-soft);
220
- }
221
-
222
- .tile__head {
223
- font-family: var(--font-display);
224
- font-size: 1.5rem;
225
- font-weight: 600;
226
- line-height: 1.1;
227
- letter-spacing: -0.015em;
228
- color: var(--color-ink);
229
- margin: 0;
230
- }
231
-
232
- .tile__body {
233
- font-size: 0.9375rem;
234
- line-height: 1.55;
235
- color: var(--color-ink-soft);
236
- }
237
-
238
- .tile--stat { grid-column: span 3; grid-row: span 2; display: grid; grid-template-rows: auto 1fr auto; }
239
- .tile--logos { grid-column: span 3; }
240
- .tile--pricing { grid-column: span 3; }
241
- .tile--testimonial { grid-column: span 3; }
242
- .tile--features { grid-column: span 3; }
243
- .tile--faq { grid-column: span 3; }
244
-
245
- /* Big stat tile */
246
- .tile__stat {
247
- font-family: var(--font-display);
248
- font-size: clamp(5rem, 14vw, 11rem);
249
- font-weight: 600;
250
- line-height: 0.9;
251
- letter-spacing: -0.03em;
252
- color: var(--color-ink);
253
- margin: var(--space-lg) 0;
254
- }
255
-
256
- .tile__stat-dot { color: var(--color-accent); }
257
-
258
- .tile__stat-cap {
259
- font-family: var(--font-display);
260
- font-size: 1.125rem;
261
- font-style: italic;
262
- color: var(--color-ink-soft);
263
- margin: 0;
264
- line-height: 1.4;
265
- }
266
-
267
- /* Logo grid */
268
- .logos {
269
- display: grid;
270
- grid-template-columns: repeat(4, 1fr);
271
- gap: var(--space-sm);
272
- margin-block-start: var(--space-sm);
273
- }
274
-
275
- .logos__item {
276
- border: 1px solid var(--color-rule);
277
- border-radius: 2px;
278
- padding: var(--space-md) var(--space-sm);
279
- text-align: center;
280
- font-family: var(--font-display);
281
- font-size: 0.875rem;
282
- font-weight: 600;
283
- letter-spacing: 0.04em;
284
- color: var(--color-ink);
285
- background: var(--color-paper);
286
- }
287
-
288
- .logos__item .dot { color: var(--color-accent); }
289
-
290
- /* Pricing tile */
291
- .tiers {
292
- display: grid;
293
- grid-template-columns: repeat(3, 1fr);
294
- gap: var(--space-sm);
295
- margin-block-start: var(--space-sm);
296
- }
297
-
298
- .tier-card {
299
- border: 1px solid var(--color-rule);
300
- border-radius: 2px;
301
- padding: var(--space-sm);
302
- background: var(--color-paper);
303
- }
304
-
305
- .tier-card--feature {
306
- border-color: var(--color-accent);
307
- border-width: 2px;
308
- position: relative;
309
- }
310
-
311
- .tier-card--feature::before {
312
- content: "popular";
313
- position: absolute;
314
- inset-inline-end: -1px;
315
- inset-block-start: -10px;
316
- background: var(--color-accent);
317
- color: var(--color-paper);
318
- font-family: var(--font-mono);
319
- font-size: 0.625rem;
320
- letter-spacing: 0.08em;
321
- text-transform: uppercase;
322
- padding: 2px 6px;
323
- border-radius: 2px;
324
- }
325
-
326
- .tier-card__name {
327
- font-family: var(--font-mono);
328
- font-size: 0.6875rem;
329
- letter-spacing: 0.1em;
330
- text-transform: uppercase;
331
- color: var(--color-ink-soft);
332
- margin: 0 0 var(--space-3xs);
333
- }
334
-
335
- .tier-card__price {
336
- font-family: var(--font-display);
337
- font-size: 1.25rem;
338
- font-weight: 600;
339
- color: var(--color-ink);
340
- margin: 0;
341
- }
342
-
343
- .tier-card__per {
344
- font-family: var(--font-body);
345
- font-size: 0.75rem;
346
- color: var(--color-ink-soft);
347
- font-weight: 400;
348
- }
349
-
350
- /* Testimonial tile */
351
- .tile__quote {
352
- font-family: var(--font-display);
353
- font-style: italic;
354
- font-size: 1.125rem;
355
- line-height: 1.4;
356
- margin: 0;
357
- color: var(--color-ink);
358
- }
359
-
360
- .tile__attr {
361
- font-family: var(--font-mono);
362
- font-size: 0.75rem;
363
- letter-spacing: 0.04em;
364
- color: var(--color-ink-soft);
365
- margin: var(--space-sm) 0 0;
366
- }
367
-
368
- .tile__attr strong { color: var(--color-ink); font-weight: 500; }
369
-
370
- /* Features tile (compact list) */
371
- .feat-list {
372
- list-style: none;
373
- padding: 0;
374
- margin: 0;
375
- display: grid;
376
- gap: var(--space-2xs);
377
- }
378
-
379
- .feat-list li {
380
- display: grid;
381
- grid-template-columns: 4ch 1fr;
382
- gap: var(--space-2xs);
383
- font-size: 0.875rem;
384
- color: var(--color-ink);
385
- }
386
-
387
- .feat-list .num {
388
- font-family: var(--font-mono);
389
- color: var(--color-accent);
390
- font-size: 0.8125rem;
391
- }
392
-
393
- /* FAQ tile */
394
- .faq-list {
395
- list-style: none;
396
- padding: 0;
397
- margin: 0;
398
- display: grid;
399
- gap: var(--space-2xs);
400
- }
401
-
402
- .faq-list li {
403
- font-family: var(--font-display);
404
- font-size: 1rem;
405
- font-weight: 500;
406
- color: var(--color-ink);
407
- border-block-end: 1px solid var(--color-rule);
408
- padding-block-end: var(--space-2xs);
409
- }
410
-
411
- .faq-list li:last-child { border-block-end: none; }
412
-
413
- .faq-list a {
414
- color: inherit;
415
- text-decoration: none;
416
- display: flex;
417
- justify-content: space-between;
418
- align-items: baseline;
419
- gap: var(--space-sm);
420
- transition: color var(--dur-micro) var(--ease-out);
421
- }
422
-
423
- .faq-list a::after { content: "↗"; color: var(--color-accent); font-family: var(--font-body); }
424
-
425
- .faq-list a:hover, .faq-list a:focus-visible { color: var(--color-accent); }
426
- .faq-list a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
427
-
428
- /* Final CTA strip */
429
- .cta-strip {
430
- padding: var(--space-2xl) 0;
431
- display: grid;
432
- grid-template-columns: 1fr auto;
433
- gap: var(--space-lg);
434
- align-items: center;
435
- border-block-end: 1px solid var(--color-rule);
436
- }
437
-
438
- .cta-strip__head {
439
- font-family: var(--font-display);
440
- font-size: clamp(1.75rem, 3.5vw, 2.5rem);
441
- font-weight: 600;
442
- letter-spacing: -0.015em;
443
- line-height: 1.1;
444
- margin: 0;
445
- color: var(--color-ink);
446
- }
447
-
448
- .cta-strip__head em { font-style: italic; color: var(--color-accent); }
449
-
450
- .cta-strip__cta { display: flex; gap: var(--space-sm); }
451
-
452
- /* Colophon */
453
- .colophon {
454
- padding: var(--space-md) 0;
455
- display: flex;
456
- justify-content: space-between;
457
- flex-wrap: wrap;
458
- gap: var(--space-sm);
459
- font-family: var(--font-mono);
460
- font-size: 0.75rem;
461
- letter-spacing: 0.06em;
462
- text-transform: uppercase;
463
- color: var(--color-ink-soft);
464
- }
465
-
466
- .colophon a { color: var(--color-ink-soft); text-decoration: none; transition: color var(--dur-micro) var(--ease-out); }
467
- .colophon a:hover, .colophon a:focus-visible { color: var(--color-accent); }
468
- .colophon a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
469
-
470
- @media (max-width: 64rem) {
471
- .bento { grid-template-columns: 1fr 1fr; }
472
- .tile--stat, .tile--logos, .tile--pricing, .tile--testimonial, .tile--features, .tile--faq { grid-column: span 2; grid-row: auto; }
473
- }
474
-
475
- @media (max-width: 48rem) {
476
- .hero { grid-template-columns: 1fr; }
477
- .bento { grid-template-columns: 1fr; }
478
- .tile--stat, .tile--logos, .tile--pricing, .tile--testimonial, .tile--features, .tile--faq { grid-column: span 1; }
479
- .logos { grid-template-columns: repeat(2, 1fr); }
480
- .tiers { grid-template-columns: 1fr; }
481
- .cta-strip { grid-template-columns: 1fr; }
482
- .masthead { grid-template-columns: 1fr; gap: var(--space-2xs); text-align: center; }
483
- .masthead__nav { justify-content: center; }
484
- }
@@ -1,64 +0,0 @@
1
- # Test 08 v2 — Cohort (cohort-based courses platform)
2
-
3
- ## The prompt (verbatim, same as v1)
4
-
5
- > "Build a landing page for Cohort — the platform for cohort-based courses. Run live courses with 30 to 500 students. Built for educators, not LMS sales teams. Audience: course operators + indie creators. Tone: warm, salon-room, editorial."
6
-
7
- ## Step 0 · Pre-flight
8
-
9
- > *"No pre-flight signals — proceeding with full Hallmark stack."*
10
-
11
- ## Step 1 · Design-context gate — fully answered
12
-
13
- Audience, use, tone all explicit.
14
-
15
- ## Step 2.5 · Project memory rotation
16
-
17
- > *"Previous run on this brief picked Marquee Hero + Salon + Tier-A continuous marquee. Picking from {Stat-Led, Long Document, Workbench} for the macro this time — Stat-Led wins because the brief itself leads with a number range ('30 to 500 students'); a stat hero answers the brief literally."*
18
- >
19
- > *"Theme rotation: Salon (light · mono-display · warm-amber) → Linen (light · geometric-sans · warm-amber). Differs on display style. Accent stays warm-amber. One axis differs — passes (the rule requires at least one)."*
20
-
21
- ## Step 3 · Visual ruleset loaded
22
-
23
- `macrostructures.md` (Stat-Led), `component-cookbook.md` (H8 huge-stat hero, three-stat supporting row, testimonial-card), `typography.md` (Linen pairing — Inter Tight display + Inter Tight body), `color.md` (Linen palette — warm beige, warm-amber accent), `microinteractions.md` (default-on for marketing — counter on hero stat, no marquee), `anti-patterns.md`.
24
-
25
- ## Step 4 · Hero enrichment
26
-
27
- > *"Enrichment: none (typography only). The brief's range '30–500' is itself the visual — set it at 22 rem and the page can carry the rest typographically. No marquee (v1 had it; the rotation rule pushes us off it). No mockup (the page isn't selling a screen)."*
28
-
29
- ## Step 5 · Preview
30
-
31
- ```markdown
32
- **Hallmark · v0.6.0**
33
-
34
- - **Macrostructure** · Stat-Led
35
- - **Theme** · Linen (warm beige paper · Inter Tight geometric-sans · warm-amber accent ~3%)
36
- - **Enrichment** · none (typography only — the range "30–500" is the visual)
37
- - **Sections** · Masthead · Hero stat · Three supporting stats · Two operator testimonials · Two-tier pricing · CTA · Colophon
38
- - **Motion** · counter on hero stat (1 primitive)
39
- - **Slop test** · 38 / 38 ✓
40
- - **Diversification** · differs from v1 (Marquee Hero/Salon) on macrostructure + display style
41
- ```
42
-
43
- ## Step 6 · Macrostructure stamp
44
-
45
- ```
46
- /* Hallmark · macrostructure: Stat-Led · H8 hero knobs: stat=range, size=22rem, weight=display-light
47
- * theme: Linen · accent: warm-amber ~3% · enrichment: none (typography only — the range is the visual)
48
- * studied: no · context: explicit · v0.6.0
49
- */
50
- ```
51
-
52
- ## What changed vs v1
53
-
54
- - **Macro:** Marquee Hero → Stat-Led. v1 led with a continuous-scroll marquee of course titles + instructor names; v2 leads with the brief's own range "30–500" sized at 22 rem. The rest of the page carries supporting stats and operator testimonials.
55
- - **Theme:** Salon → Linen. Both warm, both light. Salon was IBM Plex Mono display + Cormorant body (mono-display); Linen is Inter Tight throughout (geometric-sans). Display style differs.
56
- - **Enrichment:** v1's continuous marquee → v2's typography-only hero. Stat-Led can carry the page without a moving element.
57
- - **Voice:** v1 opened with "Cohort runs live courses the way your favourite teacher would — with a date, a roster, and a room"; v2 opens with the range first, voice in the supporting copy.
58
-
59
- ## What stayed the same
60
-
61
- - Brand: Cohort, course platform, educator audience.
62
- - Two-tier pricing (Run your first cohort / Scale).
63
- - Slop test: 38 / 38 ✓.
64
- - Warm paper band.
@@ -1,116 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <title>Cohort — live courses for educators</title>
7
- <meta name="description" content="The platform for cohort-based courses. Run live courses with 30 to 500 students. Built for educators, not LMS sales teams." />
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=Inter+Tight:ital,wght@0,300;0,400;0,500;0,600;1,400&family=JetBrains+Mono:wght@400;500&display=swap" />
11
- <link rel="stylesheet" href="style.css" />
12
- </head>
13
- <body>
14
- <main class="page">
15
- <header class="masthead">
16
- <span class="masthead__brand">Cohort<span class="dot">.</span></span>
17
- <nav class="masthead__nav">
18
- <a href="#proof">Proof</a>
19
- <a href="#pricing">Pricing</a>
20
- <a href="#">Docs</a>
21
- <a href="#">Sign in</a>
22
- </nav>
23
- </header>
24
-
25
- <section class="hero">
26
- <p class="hero__eyebrow">Built for educators · not LMS sales teams</p>
27
- <p class="hero__stat">30 <span class="hero__stat-em">—</span> 500</p>
28
- <h1 class="hero__head">Live courses, sized for the <em>class</em> you actually have.</h1>
29
- <p class="hero__sub">
30
- Cohort runs courses with thirty to five hundred students at once — the size of a real
31
- classroom, the size of a real lecture, and a few sizes between. With a date, a roster, and
32
- a room.
33
- </p>
34
- <div class="hero__cta">
35
- <a class="btn btn--primary" href="#">Run your first cohort →</a>
36
- <a class="btn" href="#">90-second tour</a>
37
- </div>
38
- </section>
39
-
40
- <section class="support-stats" id="proof">
41
- <div class="s-stat">
42
- <p class="s-stat__num">186<em>.</em></p>
43
- <p class="s-stat__cap">cohorts run in 2025</p>
44
- <p class="s-stat__sub">across writing, design, engineering, healthcare and the humanities</p>
45
- </div>
46
- <div class="s-stat">
47
- <p class="s-stat__num">93<em>%</em></p>
48
- <p class="s-stat__cap">finish-rate, median</p>
49
- <p class="s-stat__sub">vs. 4–8 % on async-only platforms (industry studies, 2024)</p>
50
- </div>
51
- <div class="s-stat">
52
- <p class="s-stat__num">4.7<em>/5</em></p>
53
- <p class="s-stat__cap">operator NPS</p>
54
- <p class="s-stat__sub">among educators running their second-or-later cohort with us</p>
55
- </div>
56
- </section>
57
-
58
- <section class="tm">
59
- <article class="tm__card">
60
- <p class="tm__quote">
61
- "I was running courses on Notion + Zoom + a clipboard. Cohort folded the three of them
62
- into a single Tuesday-morning view. My ops time dropped sixty per cent the first month."
63
- </p>
64
- <p class="tm__attr">— <strong>D. Perell</strong>, writing instructor · 320 students this term</p>
65
- </article>
66
- <article class="tm__card">
67
- <p class="tm__quote">
68
- "We needed a roster, an attendance log, and a place to grade weekly assignments. Cohort
69
- gave us all three without a single Zapier. The students didn't even notice it existed."
70
- </p>
71
- <p class="tm__attr">— <strong>M. Poulin</strong>, course operator · two cohorts in parallel</p>
72
- </article>
73
- </section>
74
-
75
- <section class="pricing" id="pricing">
76
- <h2 class="pricing__head">Two plans, <em>both honest.</em></h2>
77
- <article class="tier">
78
- <p class="tier__name">First cohort</p>
79
- <p class="tier__price">$0 <span class="per">first run</span></p>
80
- <ul class="tier__list">
81
- <li>Up to 50 students</li>
82
- <li>One cohort, one term</li>
83
- <li>Live + recording, attendance, gradebook</li>
84
- <li>Stripe payouts (3 % platform fee)</li>
85
- </ul>
86
- <a class="btn" href="#">Start free</a>
87
- </article>
88
- <article class="tier tier--feature">
89
- <p class="tier__name">Operator</p>
90
- <p class="tier__price">$199 <span class="per">/ month</span></p>
91
- <ul class="tier__list">
92
- <li>Up to 500 students per cohort</li>
93
- <li>Unlimited cohorts</li>
94
- <li>Multi-instructor, TA roles, office hours</li>
95
- <li>Stripe payouts (1 % platform fee)</li>
96
- <li>Course library + alumni rooms</li>
97
- </ul>
98
- <a class="btn btn--primary" href="#">14-day trial</a>
99
- </article>
100
- </section>
101
-
102
- <section class="cta-strip">
103
- <h2 class="cta-strip__head">Pick a date. Open the roster. <em>Teach Tuesday.</em></h2>
104
- <div class="cta-strip__cta">
105
- <a class="btn btn--primary" href="#">Run your first cohort →</a>
106
- <a class="btn" href="#">Talk to us</a>
107
- </div>
108
- </section>
109
-
110
- <footer class="colophon">
111
- <span>Cohort · Lisbon &amp; Brooklyn · est. 2024</span>
112
- <span><a href="#">docs</a> · <a href="#">changelog</a> · <a href="#">support</a> · <a href="#">community</a></span>
113
- </footer>
114
- </main>
115
- </body>
116
- </html>