howone 0.1.20 → 0.1.23

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 (298) hide show
  1. package/package.json +1 -1
  2. package/templates/nextjs/lib/sdk.ts +3 -0
  3. package/templates/vite/.howone/skills/hallmark/LICENSE +21 -0
  4. package/templates/vite/.howone/skills/hallmark/README.md +147 -0
  5. package/templates/vite/.howone/skills/hallmark/ROADMAP.md +201 -0
  6. package/templates/vite/.howone/skills/hallmark/SKILL.md +551 -0
  7. package/templates/vite/.howone/skills/hallmark/docs/recipes.md +186 -0
  8. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-anya.jpg +0 -0
  9. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-bananastudio.jpg +0 -0
  10. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-hyperlane.jpg +0 -0
  11. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-najm.jpg +0 -0
  12. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-slow-pour.jpg +0 -0
  13. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-soroe.jpg +0 -0
  14. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-tally.jpg +0 -0
  15. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-wayfare.jpg +0 -0
  16. package/templates/vite/.howone/skills/hallmark/docs/study-examples.md +176 -0
  17. package/templates/vite/.howone/skills/hallmark/docs/talk-slides.md +364 -0
  18. package/templates/vite/.howone/skills/hallmark/package.json +36 -0
  19. package/templates/vite/.howone/skills/hallmark/references/anti-patterns.md +412 -0
  20. package/templates/vite/.howone/skills/hallmark/references/assets.md +399 -0
  21. package/templates/vite/.howone/skills/hallmark/references/color.md +95 -0
  22. package/templates/vite/.howone/skills/hallmark/references/component-cookbook.md +256 -0
  23. package/templates/vite/.howone/skills/hallmark/references/components/c1-outlined-chip.md +12 -0
  24. package/templates/vite/.howone/skills/hallmark/references/components/c2-inline-form-as-cta.md +16 -0
  25. package/templates/vite/.howone/skills/hallmark/references/components/c3-typographic-link.md +8 -0
  26. package/templates/vite/.howone/skills/hallmark/references/components/c4-sticky-bottom-bar.md +16 -0
  27. package/templates/vite/.howone/skills/hallmark/references/components/f1-bento-grid.md +20 -0
  28. package/templates/vite/.howone/skills/hallmark/references/components/f2-sticky-scroll-stack.md +20 -0
  29. package/templates/vite/.howone/skills/hallmark/references/components/f3-tabular-spec-sheet.md +11 -0
  30. package/templates/vite/.howone/skills/hallmark/references/components/f4-step-sequence.md +11 -0
  31. package/templates/vite/.howone/skills/hallmark/references/components/f5-annotated-screenshot.md +11 -0
  32. package/templates/vite/.howone/skills/hallmark/references/components/f6-product-card-grid.md +41 -0
  33. package/templates/vite/.howone/skills/hallmark/references/components/ft1-mast-headed.md +13 -0
  34. package/templates/vite/.howone/skills/hallmark/references/components/ft2-inline-rule-single-line.md +10 -0
  35. package/templates/vite/.howone/skills/hallmark/references/components/ft3-index-style-category-list.md +12 -0
  36. package/templates/vite/.howone/skills/hallmark/references/components/ft4-dense-typographic.md +10 -0
  37. package/templates/vite/.howone/skills/hallmark/references/components/ft5-statement.md +21 -0
  38. package/templates/vite/.howone/skills/hallmark/references/components/ft6-letter-close.md +19 -0
  39. package/templates/vite/.howone/skills/hallmark/references/components/ft7-newsletter-first.md +27 -0
  40. package/templates/vite/.howone/skills/hallmark/references/components/ft8-marquee-scroll.md +25 -0
  41. package/templates/vite/.howone/skills/hallmark/references/components/h1-marquee.md +15 -0
  42. package/templates/vite/.howone/skills/hallmark/references/components/h2-split-diptych.md +15 -0
  43. package/templates/vite/.howone/skills/hallmark/references/components/h3-quote-led.md +11 -0
  44. package/templates/vite/.howone/skills/hallmark/references/components/h4-stat-led.md +14 -0
  45. package/templates/vite/.howone/skills/hallmark/references/components/h5-letter-hero.md +11 -0
  46. package/templates/vite/.howone/skills/hallmark/references/components/h6-photographic-fold.md +16 -0
  47. package/templates/vite/.howone/skills/hallmark/references/components/h7-demo-video-clipped-by-viewport-edge.md +27 -0
  48. package/templates/vite/.howone/skills/hallmark/references/components/h8-mockup-split-browser-framed.md +23 -0
  49. package/templates/vite/.howone/skills/hallmark/references/components/h9-custom-illustration-centerpiece.md +27 -0
  50. package/templates/vite/.howone/skills/hallmark/references/components/n1-wordmark-2-links.md +12 -0
  51. package/templates/vite/.howone/skills/hallmark/references/components/n10-floating-on-scroll-morph.md +19 -0
  52. package/templates/vite/.howone/skills/hallmark/references/components/n2-floating-chip.md +14 -0
  53. package/templates/vite/.howone/skills/hallmark/references/components/n3-side-rail.md +14 -0
  54. package/templates/vite/.howone/skills/hallmark/references/components/n4-hidden-behind-k.md +9 -0
  55. package/templates/vite/.howone/skills/hallmark/references/components/n5-floating-pill.md +28 -0
  56. package/templates/vite/.howone/skills/hallmark/references/components/n6-newspaper-masthead.md +24 -0
  57. package/templates/vite/.howone/skills/hallmark/references/components/n7-brutal-slab.md +22 -0
  58. package/templates/vite/.howone/skills/hallmark/references/components/n8-terminal-command.md +21 -0
  59. package/templates/vite/.howone/skills/hallmark/references/components/n9-edge-aligned-minimal.md +17 -0
  60. package/templates/vite/.howone/skills/hallmark/references/components/s1-left-margin-numbered.md +15 -0
  61. package/templates/vite/.howone/skills/hallmark/references/components/s2-hanging.md +13 -0
  62. package/templates/vite/.howone/skills/hallmark/references/components/s3-sticky-pinned.md +19 -0
  63. package/templates/vite/.howone/skills/hallmark/references/components/s4-inline-no-break.md +11 -0
  64. package/templates/vite/.howone/skills/hallmark/references/components/s5-bottom-anchored.md +13 -0
  65. package/templates/vite/.howone/skills/hallmark/references/components/t1-pull-quote-with-marginalia.md +12 -0
  66. package/templates/vite/.howone/skills/hallmark/references/components/t2-logo-wall-hairline.md +19 -0
  67. package/templates/vite/.howone/skills/hallmark/references/components/t3-single-huge-quote.md +11 -0
  68. package/templates/vite/.howone/skills/hallmark/references/components/t4-numbered-stat-strip.md +14 -0
  69. package/templates/vite/.howone/skills/hallmark/references/contract.md +24 -0
  70. package/templates/vite/.howone/skills/hallmark/references/copy.md +182 -0
  71. package/templates/vite/.howone/skills/hallmark/references/custom-craft.md +626 -0
  72. package/templates/vite/.howone/skills/hallmark/references/custom-theme.md +329 -0
  73. package/templates/vite/.howone/skills/hallmark/references/design-md.md +116 -0
  74. package/templates/vite/.howone/skills/hallmark/references/export-formats.md +328 -0
  75. package/templates/vite/.howone/skills/hallmark/references/floating-nav.md +89 -0
  76. package/templates/vite/.howone/skills/hallmark/references/genres/atmospheric.md +65 -0
  77. package/templates/vite/.howone/skills/hallmark/references/genres/editorial.md +70 -0
  78. package/templates/vite/.howone/skills/hallmark/references/genres/modern-minimal.md +67 -0
  79. package/templates/vite/.howone/skills/hallmark/references/genres/playful.md +65 -0
  80. package/templates/vite/.howone/skills/hallmark/references/hero-enrichment.md +474 -0
  81. package/templates/vite/.howone/skills/hallmark/references/imagery-kit.md +170 -0
  82. package/templates/vite/.howone/skills/hallmark/references/interaction-and-states.md +207 -0
  83. package/templates/vite/.howone/skills/hallmark/references/layout-and-space.md +111 -0
  84. package/templates/vite/.howone/skills/hallmark/references/macrostructures/01-bento-grid.md +35 -0
  85. package/templates/vite/.howone/skills/hallmark/references/macrostructures/02-long-document.md +34 -0
  86. package/templates/vite/.howone/skills/hallmark/references/macrostructures/03-marquee-hero.md +31 -0
  87. package/templates/vite/.howone/skills/hallmark/references/macrostructures/04-stat-led.md +32 -0
  88. package/templates/vite/.howone/skills/hallmark/references/macrostructures/05-workbench.md +32 -0
  89. package/templates/vite/.howone/skills/hallmark/references/macrostructures/06-conversational-faq.md +33 -0
  90. package/templates/vite/.howone/skills/hallmark/references/macrostructures/07-manifesto.md +32 -0
  91. package/templates/vite/.howone/skills/hallmark/references/macrostructures/08-photographic.md +34 -0
  92. package/templates/vite/.howone/skills/hallmark/references/macrostructures/09-quote-led.md +32 -0
  93. package/templates/vite/.howone/skills/hallmark/references/macrostructures/10-specimen.md +32 -0
  94. package/templates/vite/.howone/skills/hallmark/references/macrostructures/11-catalogue.md +23 -0
  95. package/templates/vite/.howone/skills/hallmark/references/macrostructures/12-letter.md +23 -0
  96. package/templates/vite/.howone/skills/hallmark/references/macrostructures/13-index-first.md +23 -0
  97. package/templates/vite/.howone/skills/hallmark/references/macrostructures/14-narrative-workflow.md +23 -0
  98. package/templates/vite/.howone/skills/hallmark/references/macrostructures/15-split-studio.md +23 -0
  99. package/templates/vite/.howone/skills/hallmark/references/macrostructures/16-feature-stack.md +23 -0
  100. package/templates/vite/.howone/skills/hallmark/references/macrostructures/17-type-specimen.md +23 -0
  101. package/templates/vite/.howone/skills/hallmark/references/macrostructures/18-portfolio-grid.md +23 -0
  102. package/templates/vite/.howone/skills/hallmark/references/macrostructures/19-map-diagram.md +23 -0
  103. package/templates/vite/.howone/skills/hallmark/references/macrostructures/20-ecosystem-index.md +23 -0
  104. package/templates/vite/.howone/skills/hallmark/references/macrostructures/21-component-playground.md +23 -0
  105. package/templates/vite/.howone/skills/hallmark/references/macrostructures.md +89 -0
  106. package/templates/vite/.howone/skills/hallmark/references/microinteractions.md +260 -0
  107. package/templates/vite/.howone/skills/hallmark/references/motion.md +109 -0
  108. package/templates/vite/.howone/skills/hallmark/references/preview-examples.md +49 -0
  109. package/templates/vite/.howone/skills/hallmark/references/responsive.md +138 -0
  110. package/templates/vite/.howone/skills/hallmark/references/slop-test.md +205 -0
  111. package/templates/vite/.howone/skills/hallmark/references/structure.md +164 -0
  112. package/templates/vite/.howone/skills/hallmark/references/study.md +486 -0
  113. package/templates/vite/.howone/skills/hallmark/references/typography.md +243 -0
  114. package/templates/vite/.howone/skills/hallmark/references/verbs/audit.md +25 -0
  115. package/templates/vite/.howone/skills/hallmark/references/verbs/redesign.md +269 -0
  116. package/templates/vite/.howone/skills/hallmark/site/OG-hallmark.png +0 -0
  117. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/brief.md +71 -0
  118. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/index.html +64 -0
  119. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/style.css +240 -0
  120. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/brief.md +65 -0
  121. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/index.html +105 -0
  122. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/style.css +250 -0
  123. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/brief.md +64 -0
  124. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/index.html +131 -0
  125. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/style.css +240 -0
  126. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/brief.md +67 -0
  127. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/index.html +86 -0
  128. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/style.css +262 -0
  129. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/brief.md +63 -0
  130. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/index.html +167 -0
  131. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/style.css +457 -0
  132. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/brief.md +65 -0
  133. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/index.html +159 -0
  134. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/style.css +288 -0
  135. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/brief.md +64 -0
  136. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/index.html +146 -0
  137. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/style.css +484 -0
  138. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/brief.md +64 -0
  139. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/index.html +116 -0
  140. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/style.css +354 -0
  141. package/templates/vite/.howone/skills/hallmark/site/_tests/09-slow-pour/index.html +638 -0
  142. package/templates/vite/.howone/skills/hallmark/site/_tests/10-owl-hours/index.html +515 -0
  143. package/templates/vite/.howone/skills/hallmark/site/_tests/11-soroe-ceramics/index.html +515 -0
  144. package/templates/vite/.howone/skills/hallmark/site/_tests/12-loafer/index.html +608 -0
  145. package/templates/vite/.howone/skills/hallmark/site/_tests/13-alma/index.html +587 -0
  146. package/templates/vite/.howone/skills/hallmark/site/_tests/README.md +157 -0
  147. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-loop.mp4 +0 -0
  148. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-still.jpg +0 -0
  149. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-example.mp4 +0 -0
  150. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-still.jpg +0 -0
  151. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-loop.mp4 +0 -0
  152. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-still.jpg +0 -0
  153. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Podcast-loop.mp4 +0 -0
  154. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-loop.mp4 +0 -0
  155. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-still.jpg +0 -0
  156. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-loop.mp4 +0 -0
  157. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-still.jpg +0 -0
  158. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/after-quiet-hour.png +0 -0
  159. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-loop.mp4 +0 -0
  160. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-still.jpg +0 -0
  161. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/audit-example.png +0 -0
  162. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/before-quiet-hour.png +0 -0
  163. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/example-redesign-uractivation.png +0 -0
  164. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-loop.mp4 +0 -0
  165. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-still.jpg +0 -0
  166. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/study-example.png +0 -0
  167. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/uractivation-after-loop.mp4 +0 -0
  168. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-loop.mp4 +0 -0
  169. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-still.jpg +0 -0
  170. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/index.html +77 -0
  171. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/style.css +238 -0
  172. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/index.html +110 -0
  173. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/style.css +326 -0
  174. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/index.html +134 -0
  175. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/style.css +262 -0
  176. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/README.md +30 -0
  177. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/README.md +17 -0
  178. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/audit-report.md +56 -0
  179. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/input.html +160 -0
  180. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/notes.md +29 -0
  181. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/input.html +63 -0
  182. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/notes.md +72 -0
  183. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/output.html +374 -0
  184. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/diagnosis.md +52 -0
  185. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/input-description.md +29 -0
  186. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/notes.md +61 -0
  187. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.css +193 -0
  188. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.html +66 -0
  189. package/templates/vite/.howone/skills/hallmark/site/css/base.css +194 -0
  190. package/templates/vite/.howone/skills/hallmark/site/css/components.css +4886 -0
  191. package/templates/vite/.howone/skills/hallmark/site/css/sections.css +2072 -0
  192. package/templates/vite/.howone/skills/hallmark/site/css/tokens.css +1129 -0
  193. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/index.html +475 -0
  194. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/styles.css +1584 -0
  195. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/tokens.css +96 -0
  196. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/index.html +344 -0
  197. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/script.js +103 -0
  198. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/styles.css +1103 -0
  199. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/tokens.css +83 -0
  200. package/templates/vite/.howone/skills/hallmark/site/examples/najm/index.html +368 -0
  201. package/templates/vite/.howone/skills/hallmark/site/examples/najm/script.js +133 -0
  202. package/templates/vite/.howone/skills/hallmark/site/examples/najm/styles.css +1062 -0
  203. package/templates/vite/.howone/skills/hallmark/site/examples/najm/tokens.css +97 -0
  204. package/templates/vite/.howone/skills/hallmark/site/examples/tally/app.js +84 -0
  205. package/templates/vite/.howone/skills/hallmark/site/examples/tally/index.html +446 -0
  206. package/templates/vite/.howone/skills/hallmark/site/examples/tally/styles.css +1087 -0
  207. package/templates/vite/.howone/skills/hallmark/site/examples/tally/tokens.css +101 -0
  208. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/index.html +359 -0
  209. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/style.css +1168 -0
  210. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/tokens.css +81 -0
  211. package/templates/vite/.howone/skills/hallmark/site/favicon-dark.svg +5 -0
  212. package/templates/vite/.howone/skills/hallmark/site/favicon-light.svg +5 -0
  213. package/templates/vite/.howone/skills/hallmark/site/index.html +1043 -0
  214. package/templates/vite/.howone/skills/hallmark/site/js/main.js +1175 -0
  215. package/templates/vite/.howone/skills/hallmark/vercel.json +6 -0
  216. package/templates/vite/.howone/skills/howone-sdk/01-architect/01-app-generation.md +126 -0
  217. package/templates/vite/.howone/skills/howone-sdk/{references/08-manifest-codegen.md → 01-architect/02-manifest-codegen.md} +31 -19
  218. package/templates/vite/.howone/skills/howone-sdk/02-database/01-schema-design.md +147 -0
  219. package/templates/vite/.howone/skills/howone-sdk/02-database/02-schema-operations.md +96 -0
  220. package/templates/vite/.howone/skills/howone-sdk/02-database/03-data-access-patterns.md +172 -0
  221. package/templates/vite/.howone/skills/howone-sdk/{references → 03-sdk}/01-client-setup.md +3 -3
  222. package/templates/vite/.howone/skills/howone-sdk/{references/04-auth.md → 03-sdk/03-auth.md} +120 -3
  223. package/templates/vite/.howone/skills/howone-sdk/{references/06-react-integration.md → 03-sdk/04-react-integration.md} +2 -4
  224. package/templates/vite/.howone/skills/howone-sdk/{references/03-ai-actions.md → 03-sdk/07-ai-action-calls.md} +31 -34
  225. package/templates/vite/.howone/skills/howone-sdk/04-ai/.gitkeep +1 -0
  226. package/templates/vite/.howone/skills/howone-sdk/04-ai/01-ai-capability-architecture.md +142 -0
  227. package/templates/vite/.howone/skills/howone-sdk/04-ai/02-workflow-contract-rules.md +169 -0
  228. package/templates/vite/.howone/skills/howone-sdk/04-ai/03-ai-sdk-handoff.md +80 -0
  229. package/templates/vite/.howone/skills/howone-sdk/SKILL.md +118 -93
  230. package/templates/vite/.howone/skills/howone-sdk/agents/openai.yaml +3 -3
  231. package/templates/vite/.howone/skills/impeccable/SKILL.md +168 -0
  232. package/templates/vite/.howone/skills/impeccable/agents/impeccable-asset-producer.md +101 -0
  233. package/templates/vite/.howone/skills/impeccable/reference/adapt.md +190 -0
  234. package/templates/vite/.howone/skills/impeccable/reference/animate.md +175 -0
  235. package/templates/vite/.howone/skills/impeccable/reference/audit.md +133 -0
  236. package/templates/vite/.howone/skills/impeccable/reference/bolder.md +113 -0
  237. package/templates/vite/.howone/skills/impeccable/reference/brand.md +118 -0
  238. package/templates/vite/.howone/skills/impeccable/reference/clarify.md +174 -0
  239. package/templates/vite/.howone/skills/impeccable/reference/codex.md +105 -0
  240. package/templates/vite/.howone/skills/impeccable/reference/cognitive-load.md +106 -0
  241. package/templates/vite/.howone/skills/impeccable/reference/color-and-contrast.md +105 -0
  242. package/templates/vite/.howone/skills/impeccable/reference/colorize.md +154 -0
  243. package/templates/vite/.howone/skills/impeccable/reference/craft.md +123 -0
  244. package/templates/vite/.howone/skills/impeccable/reference/critique.md +273 -0
  245. package/templates/vite/.howone/skills/impeccable/reference/delight.md +302 -0
  246. package/templates/vite/.howone/skills/impeccable/reference/distill.md +111 -0
  247. package/templates/vite/.howone/skills/impeccable/reference/document.md +427 -0
  248. package/templates/vite/.howone/skills/impeccable/reference/extract.md +69 -0
  249. package/templates/vite/.howone/skills/impeccable/reference/harden.md +347 -0
  250. package/templates/vite/.howone/skills/impeccable/reference/heuristics-scoring.md +234 -0
  251. package/templates/vite/.howone/skills/impeccable/reference/interaction-design.md +195 -0
  252. package/templates/vite/.howone/skills/impeccable/reference/layout.md +141 -0
  253. package/templates/vite/.howone/skills/impeccable/reference/live.md +622 -0
  254. package/templates/vite/.howone/skills/impeccable/reference/motion-design.md +109 -0
  255. package/templates/vite/.howone/skills/impeccable/reference/onboard.md +234 -0
  256. package/templates/vite/.howone/skills/impeccable/reference/optimize.md +258 -0
  257. package/templates/vite/.howone/skills/impeccable/reference/overdrive.md +130 -0
  258. package/templates/vite/.howone/skills/impeccable/reference/personas.md +179 -0
  259. package/templates/vite/.howone/skills/impeccable/reference/polish.md +242 -0
  260. package/templates/vite/.howone/skills/impeccable/reference/product.md +62 -0
  261. package/templates/vite/.howone/skills/impeccable/reference/quieter.md +99 -0
  262. package/templates/vite/.howone/skills/impeccable/reference/responsive-design.md +114 -0
  263. package/templates/vite/.howone/skills/impeccable/reference/shape.md +165 -0
  264. package/templates/vite/.howone/skills/impeccable/reference/spatial-design.md +100 -0
  265. package/templates/vite/.howone/skills/impeccable/reference/teach.md +156 -0
  266. package/templates/vite/.howone/skills/impeccable/reference/typeset.md +124 -0
  267. package/templates/vite/.howone/skills/impeccable/reference/typography.md +159 -0
  268. package/templates/vite/.howone/skills/impeccable/reference/ux-writing.md +107 -0
  269. package/templates/vite/.howone/skills/impeccable/scripts/cleanup-deprecated.mjs +284 -0
  270. package/templates/vite/.howone/skills/impeccable/scripts/command-metadata.json +94 -0
  271. package/templates/vite/.howone/skills/impeccable/scripts/critique-storage.mjs +242 -0
  272. package/templates/vite/.howone/skills/impeccable/scripts/design-parser.mjs +820 -0
  273. package/templates/vite/.howone/skills/impeccable/scripts/detect-csp.mjs +198 -0
  274. package/templates/vite/.howone/skills/impeccable/scripts/detect.mjs +21 -0
  275. package/templates/vite/.howone/skills/impeccable/scripts/impeccable-paths.mjs +110 -0
  276. package/templates/vite/.howone/skills/impeccable/scripts/is-generated.mjs +69 -0
  277. package/templates/vite/.howone/skills/impeccable/scripts/live-accept.mjs +595 -0
  278. package/templates/vite/.howone/skills/impeccable/scripts/live-browser-session.js +123 -0
  279. package/templates/vite/.howone/skills/impeccable/scripts/live-browser.js +4860 -0
  280. package/templates/vite/.howone/skills/impeccable/scripts/live-complete.mjs +75 -0
  281. package/templates/vite/.howone/skills/impeccable/scripts/live-completion.mjs +18 -0
  282. package/templates/vite/.howone/skills/impeccable/scripts/live-inject.mjs +446 -0
  283. package/templates/vite/.howone/skills/impeccable/scripts/live-poll.mjs +200 -0
  284. package/templates/vite/.howone/skills/impeccable/scripts/live-resume.mjs +48 -0
  285. package/templates/vite/.howone/skills/impeccable/scripts/live-server.mjs +838 -0
  286. package/templates/vite/.howone/skills/impeccable/scripts/live-session-store.mjs +254 -0
  287. package/templates/vite/.howone/skills/impeccable/scripts/live-status.mjs +47 -0
  288. package/templates/vite/.howone/skills/impeccable/scripts/live-wrap.mjs +632 -0
  289. package/templates/vite/.howone/skills/impeccable/scripts/live.mjs +247 -0
  290. package/templates/vite/.howone/skills/impeccable/scripts/load-context.mjs +141 -0
  291. package/templates/vite/.howone/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
  292. package/templates/vite/.howone/skills/impeccable/scripts/pin.mjs +214 -0
  293. package/templates/vite/AGENTS.md +2 -12
  294. package/templates/vite/package.json +1 -1
  295. package/templates/vite/src/lib/sdk.ts +3 -0
  296. /package/templates/vite/.howone/skills/howone-sdk/{references → 03-sdk}/02-entity-operations.md +0 -0
  297. /package/templates/vite/.howone/skills/howone-sdk/{references → 03-sdk}/05-file-upload.md +0 -0
  298. /package/templates/vite/.howone/skills/howone-sdk/{references/07-raw-http.md → 03-sdk/06-raw-http.md} +0 -0
@@ -0,0 +1,515 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
6
+ <title>Soroe — Six vessels, Spring 2026.</title>
7
+ <meta name="description" content="A small ceramics studio in Nara. Six vessels per season, then the kiln rests. Each piece signed and dated." />
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=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;1,9..144,400;1,9..144,500&family=Geist:wght@400;500;600&family=Geist+Mono:wght@400;500&display=swap" />
11
+ <style>
12
+ /* Hallmark · macrostructure: Long Document · theme: Studio · enrichment: Tier-A SVG vessels
13
+ * tone: quiet handmade archival · anchor hue: chromatic-green
14
+ * studied: no · pre-emit critique: P5 H4 E5 S5 R5 V4
15
+ */
16
+
17
+ :root {
18
+ /* Studio — light · italic-serif · chromatic-green (sage paper · forest accent) */
19
+ --color-paper: oklch(96.5% 0.014 95);
20
+ --color-paper-2: oklch(94% 0.016 95);
21
+ --color-paper-3: oklch(90% 0.020 98);
22
+ --color-rule: oklch(76% 0.016 95);
23
+ --color-rule-2: oklch(58% 0.020 98);
24
+ --color-muted: oklch(42% 0.024 120);
25
+ --color-ink-2: oklch(24% 0.030 130);
26
+ --color-ink: oklch(15% 0.032 135);
27
+ --color-accent: oklch(46% 0.140 145); /* forest green */
28
+ --color-focus: oklch(46% 0.140 145);
29
+
30
+ --font-display: "Fraunces", "Tiempos", ui-serif, Georgia, serif;
31
+ --font-body: "Geist", "Söhne", ui-sans-serif, system-ui, sans-serif;
32
+ --font-serif: "Fraunces", ui-serif, Georgia, serif;
33
+ --font-label: "Geist Mono", ui-monospace, monospace;
34
+ --font-mono: "Geist Mono", ui-monospace, monospace;
35
+
36
+ --text-xs: 0.75rem;
37
+ --text-sm: 0.875rem;
38
+ --text-md: 1rem;
39
+ --text-lg: 1.25rem;
40
+ --text-xl: 1.75rem;
41
+ --text-2xl: 2.5rem;
42
+ --text-display: clamp(3rem, 7vw + 0.5rem, 6.5rem);
43
+
44
+ --tracking-display: -0.025em;
45
+ --tracking-tight: -0.015em;
46
+ --tracking-label: 0.16em;
47
+ --lh-tight: 1;
48
+ --lh-snug: 1.2;
49
+ --lh-relaxed: 1.6;
50
+
51
+ --space-3xs: 0.25rem;
52
+ --space-2xs: 0.5rem;
53
+ --space-xs: 0.75rem;
54
+ --space-sm: 1rem;
55
+ --space-md: 1.5rem;
56
+ --space-lg: 2rem;
57
+ --space-xl: 3rem;
58
+ --space-2xl: 4.5rem;
59
+ --space-3xl: 6.5rem;
60
+
61
+ --rule-hair: 1px;
62
+ --page-gutter: clamp(1.25rem, 4vw, 3rem);
63
+ --page-max: 62rem;
64
+
65
+ --dur-micro: 80ms;
66
+ --dur-short: 150ms;
67
+ --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
68
+ }
69
+
70
+ *, *::before, *::after { box-sizing: border-box; }
71
+ html, body { overflow-x: clip; }
72
+
73
+ html {
74
+ background: var(--color-paper);
75
+ color: var(--color-ink);
76
+ font-family: var(--font-body);
77
+ font-size: 16px;
78
+ line-height: var(--lh-relaxed);
79
+ -webkit-font-smoothing: antialiased;
80
+ text-rendering: optimizeLegibility;
81
+ }
82
+
83
+ body {
84
+ margin: 0;
85
+ padding-inline: var(--page-gutter);
86
+ }
87
+
88
+ main {
89
+ margin-inline: auto;
90
+ max-width: var(--page-max);
91
+ }
92
+
93
+ a { color: inherit; text-decoration: none; }
94
+ a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
95
+
96
+ img, svg { display: block; max-width: 100%; }
97
+
98
+ h1, h2, h3, p, ul, ol, dl { margin: 0; }
99
+
100
+ /* — Masthead ———————————————————————————————————————— */
101
+ .masthead {
102
+ display: flex;
103
+ align-items: baseline;
104
+ justify-content: space-between;
105
+ gap: var(--space-md);
106
+ padding-block: var(--space-md);
107
+ border-block-end: var(--rule-hair) solid var(--color-rule-2);
108
+ }
109
+
110
+ .masthead__wordmark {
111
+ font-family: var(--font-display);
112
+ font-style: italic;
113
+ font-weight: 500;
114
+ font-size: var(--text-lg);
115
+ letter-spacing: var(--tracking-tight);
116
+ color: var(--color-ink);
117
+ }
118
+
119
+ .masthead__meta {
120
+ font-family: var(--font-label);
121
+ font-size: var(--text-xs);
122
+ letter-spacing: var(--tracking-label);
123
+ text-transform: uppercase;
124
+ color: var(--color-muted);
125
+ }
126
+
127
+ /* — Salutation hero ———————————————————————————————— */
128
+ .opening {
129
+ padding-block: var(--space-3xl) var(--space-2xl);
130
+ display: grid;
131
+ gap: var(--space-md);
132
+ }
133
+
134
+ .opening__eyebrow {
135
+ font-family: var(--font-label);
136
+ font-size: var(--text-xs);
137
+ letter-spacing: var(--tracking-label);
138
+ text-transform: uppercase;
139
+ color: var(--color-accent);
140
+ margin-block-end: var(--space-md);
141
+ }
142
+
143
+ .opening__title {
144
+ font-family: var(--font-display);
145
+ font-style: italic;
146
+ font-weight: 400;
147
+ font-size: var(--text-display);
148
+ line-height: var(--lh-tight);
149
+ letter-spacing: var(--tracking-display);
150
+ color: var(--color-ink);
151
+ max-width: 18ch;
152
+ overflow-wrap: anywhere;
153
+ min-width: 0;
154
+ }
155
+
156
+ .opening__sub {
157
+ font-family: var(--font-body);
158
+ font-size: var(--text-lg);
159
+ line-height: var(--lh-snug);
160
+ color: var(--color-ink-2);
161
+ max-width: 52ch;
162
+ margin-block-start: var(--space-md);
163
+ }
164
+
165
+ .opening__signoff {
166
+ margin-block-start: var(--space-md);
167
+ font-family: var(--font-display);
168
+ font-style: italic;
169
+ font-weight: 500;
170
+ font-size: var(--text-md);
171
+ color: var(--color-ink-2);
172
+ }
173
+
174
+ /* — Vessel index ———————————————————————————————————— */
175
+ .index {
176
+ padding-block: var(--space-2xl) var(--space-2xl);
177
+ border-block-start: var(--rule-hair) solid var(--color-rule);
178
+ }
179
+
180
+ .index__head {
181
+ display: grid;
182
+ grid-template-columns: 1fr auto;
183
+ gap: var(--space-md);
184
+ align-items: baseline;
185
+ padding-block-end: var(--space-md);
186
+ border-block-end: var(--rule-hair) solid var(--color-rule-2);
187
+ }
188
+
189
+ .index__title {
190
+ font-family: var(--font-display);
191
+ font-style: italic;
192
+ font-weight: 500;
193
+ font-size: var(--text-2xl);
194
+ letter-spacing: var(--tracking-tight);
195
+ color: var(--color-ink);
196
+ }
197
+
198
+ .index__count {
199
+ font-family: var(--font-label);
200
+ font-size: var(--text-xs);
201
+ letter-spacing: var(--tracking-label);
202
+ text-transform: uppercase;
203
+ color: var(--color-muted);
204
+ }
205
+
206
+ .vessels {
207
+ list-style: none;
208
+ padding: 0;
209
+ display: grid;
210
+ }
211
+
212
+ .vessel {
213
+ display: grid;
214
+ grid-template-columns: 6rem minmax(0, 1fr) 12rem;
215
+ gap: var(--space-xl);
216
+ align-items: center;
217
+ padding-block: var(--space-xl);
218
+ border-block-end: var(--rule-hair) solid var(--color-rule);
219
+ }
220
+
221
+ @media (max-width: 56rem) {
222
+ .vessel {
223
+ grid-template-columns: 5rem minmax(0, 1fr);
224
+ gap: var(--space-md);
225
+ }
226
+ .vessel__price { grid-column: 2; justify-self: start; padding-block-start: var(--space-xs); }
227
+ }
228
+
229
+ .vessel__svg {
230
+ width: 100%;
231
+ height: auto;
232
+ color: var(--color-ink);
233
+ }
234
+
235
+ .vessel__body {
236
+ display: grid;
237
+ gap: var(--space-2xs);
238
+ }
239
+
240
+ .vessel__num {
241
+ font-family: var(--font-label);
242
+ font-size: var(--text-xs);
243
+ letter-spacing: var(--tracking-label);
244
+ text-transform: uppercase;
245
+ color: var(--color-muted);
246
+ }
247
+
248
+ .vessel__name {
249
+ font-family: var(--font-display);
250
+ font-style: italic;
251
+ font-weight: 500;
252
+ font-size: var(--text-xl);
253
+ line-height: var(--lh-tight);
254
+ letter-spacing: var(--tracking-tight);
255
+ color: var(--color-ink);
256
+ }
257
+
258
+ .vessel__notes {
259
+ font-family: var(--font-body);
260
+ font-size: var(--text-md);
261
+ line-height: var(--lh-relaxed);
262
+ color: var(--color-ink-2);
263
+ max-width: 42ch;
264
+ }
265
+
266
+ .vessel__price {
267
+ display: grid;
268
+ gap: 0.2rem;
269
+ justify-self: end;
270
+ text-align: end;
271
+ }
272
+
273
+ @media (max-width: 56rem) {
274
+ .vessel__price { justify-self: start; text-align: start; }
275
+ }
276
+
277
+ .vessel__price-amount {
278
+ font-family: var(--font-display);
279
+ font-style: italic;
280
+ font-weight: 500;
281
+ font-size: var(--text-xl);
282
+ color: var(--color-ink);
283
+ font-feature-settings: "tnum";
284
+ }
285
+
286
+ .vessel__price-state {
287
+ font-family: var(--font-label);
288
+ font-size: var(--text-xs);
289
+ letter-spacing: var(--tracking-label);
290
+ text-transform: uppercase;
291
+ color: var(--color-muted);
292
+ }
293
+
294
+ .vessel__price-state--reserved { color: var(--color-accent); }
295
+
296
+ .vessel:last-child { border-block-end: 0; }
297
+
298
+ /* — Visit ————————————————————————————————————————— */
299
+ .visit {
300
+ padding-block: var(--space-3xl) var(--space-2xl);
301
+ border-block-start: var(--rule-hair) solid var(--color-rule-2);
302
+ display: grid;
303
+ grid-template-columns: minmax(8rem, 14rem) minmax(0, 1fr);
304
+ gap: var(--space-2xl);
305
+ }
306
+
307
+ @media (max-width: 56rem) {
308
+ .visit { grid-template-columns: 1fr; gap: var(--space-md); }
309
+ }
310
+
311
+ .visit__label {
312
+ font-family: var(--font-label);
313
+ font-size: var(--text-xs);
314
+ letter-spacing: var(--tracking-label);
315
+ text-transform: uppercase;
316
+ color: var(--color-muted);
317
+ }
318
+
319
+ .visit__body {
320
+ display: grid;
321
+ gap: var(--space-md);
322
+ font-family: var(--font-body);
323
+ font-size: var(--text-md);
324
+ line-height: var(--lh-relaxed);
325
+ color: var(--color-ink-2);
326
+ max-width: 52ch;
327
+ }
328
+
329
+ .visit__address {
330
+ font-family: var(--font-display);
331
+ font-style: italic;
332
+ font-weight: 500;
333
+ font-size: var(--text-xl);
334
+ color: var(--color-ink);
335
+ line-height: var(--lh-snug);
336
+ }
337
+
338
+ /* — Colophon ————————————————————————————————————— */
339
+ .colophon {
340
+ margin-block-start: var(--space-2xl);
341
+ padding-block: var(--space-md);
342
+ border-block-start: var(--rule-hair) solid var(--color-rule-2);
343
+ display: grid;
344
+ gap: var(--space-md);
345
+ font-family: var(--font-label);
346
+ font-size: var(--text-xs);
347
+ letter-spacing: var(--tracking-label);
348
+ text-transform: uppercase;
349
+ color: var(--color-muted);
350
+ }
351
+
352
+ .colophon__row {
353
+ display: flex;
354
+ justify-content: space-between;
355
+ flex-wrap: wrap;
356
+ gap: var(--space-md);
357
+ }
358
+
359
+ .colophon strong { color: var(--color-ink); font-weight: 500; }
360
+
361
+ @media (prefers-reduced-motion: reduce) {
362
+ *, *::before, *::after { transition: none !important; animation: none !important; }
363
+ }
364
+ </style>
365
+ </head>
366
+ <body>
367
+
368
+ <main>
369
+
370
+ <header class="masthead">
371
+ <h1 class="masthead__wordmark">Soroe.</h1>
372
+ <p class="masthead__meta">Spring 2026 · No. ix</p>
373
+ </header>
374
+
375
+ <section class="opening" aria-labelledby="o-title">
376
+ <p class="opening__eyebrow">A letter to collectors</p>
377
+ <h2 class="opening__title" id="o-title">Six vessels, this spring — then the kiln rests until July.</h2>
378
+ <p class="opening__sub">
379
+ Each piece is hand-thrown in our studio outside Nara, fired once at 1,260 °C, signed on the foot, and dated. We send the kiln-log with the box. When a piece is reserved, it leaves the index — there are no waitlists.
380
+ </p>
381
+ <p class="opening__signoff">— Mariko, the studio.</p>
382
+ </section>
383
+
384
+ <section class="index" aria-labelledby="i-title">
385
+ <header class="index__head">
386
+ <h2 class="index__title" id="i-title">The index — six pieces.</h2>
387
+ <p class="index__count">Updated 14 May · 04 / 06 available</p>
388
+ </header>
389
+
390
+ <ol class="vessels">
391
+
392
+ <li class="vessel">
393
+ <svg class="vessel__svg" viewBox="0 0 80 110" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" aria-hidden="true">
394
+ <path d="M 18 18 L 26 12 L 54 12 L 62 18" />
395
+ <path d="M 22 18 C 14 36 16 78 24 96 C 30 102 50 102 56 96 C 64 78 66 36 58 18" />
396
+ <path d="M 28 96 L 28 100 L 52 100 L 52 96" />
397
+ </svg>
398
+ <div class="vessel__body">
399
+ <span class="vessel__num">i.</span>
400
+ <h3 class="vessel__name">Tall pourer, ash glaze.</h3>
401
+ <p class="vessel__notes">22 cm · stoneware · soft pour spout · holds about 800 ml. Foot-rim shows the wheel's last turn; left unsanded.</p>
402
+ </div>
403
+ <p class="vessel__price">
404
+ <span class="vessel__price-amount">¥ 14,800</span>
405
+ <span class="vessel__price-state">Available</span>
406
+ </p>
407
+ </li>
408
+
409
+ <li class="vessel">
410
+ <svg class="vessel__svg" viewBox="0 0 80 110" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" aria-hidden="true">
411
+ <path d="M 12 36 C 18 22 62 22 68 36 C 76 50 70 80 64 90 C 56 102 24 102 16 90 C 10 80 4 50 12 36 Z" />
412
+ <ellipse cx="40" cy="36" rx="28" ry="6" />
413
+ </svg>
414
+ <div class="vessel__body">
415
+ <span class="vessel__num">ii.</span>
416
+ <h3 class="vessel__name">Wide bowl, kuro.</h3>
417
+ <p class="vessel__notes">26 cm across · iron-rich black slip · meant for the centre of the table — one bunch of greens, or one ripe persimmon.</p>
418
+ </div>
419
+ <p class="vessel__price">
420
+ <span class="vessel__price-amount">¥ 21,000</span>
421
+ <span class="vessel__price-state vessel__price-state--reserved">Reserved</span>
422
+ </p>
423
+ </li>
424
+
425
+ <li class="vessel">
426
+ <svg class="vessel__svg" viewBox="0 0 80 110" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" aria-hidden="true">
427
+ <path d="M 24 8 L 56 8 L 60 18 L 56 28 L 60 36 C 68 50 64 86 56 96 C 50 102 30 102 24 96 C 16 86 12 50 20 36 L 24 28 L 20 18 Z" />
428
+ <ellipse cx="40" cy="14" rx="14" ry="3" stroke-opacity="0.5" />
429
+ </svg>
430
+ <div class="vessel__body">
431
+ <span class="vessel__num">iii.</span>
432
+ <h3 class="vessel__name">Stem vase, narrow.</h3>
433
+ <p class="vessel__notes">18 cm · for a single branch. The neck pinches because we wanted the stem to lean — not because the throw failed.</p>
434
+ </div>
435
+ <p class="vessel__price">
436
+ <span class="vessel__price-amount">¥ 9,200</span>
437
+ <span class="vessel__price-state">Available</span>
438
+ </p>
439
+ </li>
440
+
441
+ <li class="vessel">
442
+ <svg class="vessel__svg" viewBox="0 0 80 110" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" aria-hidden="true">
443
+ <path d="M 14 30 C 14 18 66 18 66 30 L 66 86 C 66 100 14 100 14 86 Z" />
444
+ <path d="M 14 30 L 66 30" />
445
+ </svg>
446
+ <div class="vessel__body">
447
+ <span class="vessel__num">iv.</span>
448
+ <h3 class="vessel__name">Cylinder, soft white.</h3>
449
+ <p class="vessel__notes">14 cm · matte porcelain · two of these were thrown side by side. They are not identical, and that's the point.</p>
450
+ </div>
451
+ <p class="vessel__price">
452
+ <span class="vessel__price-amount">¥ 6,800</span>
453
+ <span class="vessel__price-state">Available</span>
454
+ </p>
455
+ </li>
456
+
457
+ <li class="vessel">
458
+ <svg class="vessel__svg" viewBox="0 0 80 110" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" aria-hidden="true">
459
+ <path d="M 8 50 C 8 34 32 24 40 24 C 48 24 72 34 72 50 C 72 76 56 96 40 96 C 24 96 8 76 8 50 Z" />
460
+ <path d="M 32 24 L 32 12 L 48 12 L 48 24" />
461
+ </svg>
462
+ <div class="vessel__body">
463
+ <span class="vessel__num">v.</span>
464
+ <h3 class="vessel__name">Round jug, river celadon.</h3>
465
+ <p class="vessel__notes">19 cm at widest · holds 1.6 L · the small blue cast in the glaze is iron from the local water — we cannot reproduce it.</p>
466
+ </div>
467
+ <p class="vessel__price">
468
+ <span class="vessel__price-amount">¥ 24,000</span>
469
+ <span class="vessel__price-state vessel__price-state--reserved">Reserved</span>
470
+ </p>
471
+ </li>
472
+
473
+ <li class="vessel">
474
+ <svg class="vessel__svg" viewBox="0 0 80 110" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" aria-hidden="true">
475
+ <path d="M 22 40 L 22 30 L 30 24 L 50 24 L 58 30 L 58 40 C 64 56 64 80 58 92 C 52 100 28 100 22 92 C 16 80 16 56 22 40 Z" />
476
+ <path d="M 22 40 L 58 40" stroke-opacity="0.4" />
477
+ </svg>
478
+ <div class="vessel__body">
479
+ <span class="vessel__num">vi.</span>
480
+ <h3 class="vessel__name">Lidded jar, salt-cure.</h3>
481
+ <p class="vessel__notes">17 cm · we use one for our kitchen salt. The lid sits with a soft scrape; that's the seal, not a flaw.</p>
482
+ </div>
483
+ <p class="vessel__price">
484
+ <span class="vessel__price-amount">¥ 11,500</span>
485
+ <span class="vessel__price-state">Available</span>
486
+ </p>
487
+ </li>
488
+
489
+ </ol>
490
+ </section>
491
+
492
+ <section class="visit" aria-labelledby="v-title">
493
+ <p class="visit__label">Visit the studio</p>
494
+ <div class="visit__body">
495
+ <h2 class="visit__address" id="v-title">Tuesday &amp; Saturday, 14:00–17:00.</h2>
496
+ <p>The studio is a converted carpenter's workshop ten minutes north of Nara station. Walk up the lane until the persimmon tree, then left. Tea is offered. Pieces marked <em style="color: var(--color-accent);">available</em> can be reserved with a 30% deposit; the balance settles when the piece ships.</p>
497
+ <p>Soroe Studio · 1-14 Higashi-Hokke, Nara · <a style="color: var(--color-ink); border-bottom: 1px solid var(--color-rule-2);" href="mailto:hello@soroe.studio">hello@soroe.studio</a></p>
498
+ </div>
499
+ </section>
500
+
501
+ <footer class="colophon">
502
+ <div class="colophon__row">
503
+ <p>Soroe <strong>· Mariko Iwasaki, ceramicist</strong></p>
504
+ <p>Spring 2026 · No. ix</p>
505
+ </div>
506
+ <div class="colophon__row">
507
+ <p>Set in <strong>Fraunces italic</strong> &amp; <strong>Geist</strong>.</p>
508
+ <p>Each piece signed and dated.</p>
509
+ </div>
510
+ </footer>
511
+
512
+ </main>
513
+
514
+ </body>
515
+ </html>