oh-my-design-cli 1.8.7 → 1.9.0

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 (247) hide show
  1. package/.claude/hooks/lib/preferences-parser.cjs +1 -0
  2. package/.claude/hooks/lib/preferences-writer.cjs +1 -0
  3. package/.claude/hooks/post-edit-watch.cjs +1 -0
  4. package/.claude/hooks/session-end-foldin.cjs +1 -0
  5. package/.claude/hooks/session-state-loader.cjs +1 -0
  6. package/.claude/hooks/skill-activation.cjs +1 -0
  7. package/.claude/settings.json +10 -1
  8. package/.github/assets/logo-bg.png +0 -0
  9. package/AGENTS.md +20 -1
  10. package/CHANGELOG.md +482 -0
  11. package/MIGRATION.md +103 -0
  12. package/README.ja.md +56 -19
  13. package/README.ko.md +47 -30
  14. package/README.md +48 -30
  15. package/README.zh-TW.md +59 -22
  16. package/agents/AGENT.md +8 -7
  17. package/agents/omd-codex-image.md +1 -1
  18. package/agents/omd-critic.md +6 -7
  19. package/agents/omd-designer-review.md +1 -1
  20. package/agents/omd-final-qa.md +1 -1
  21. package/agents/omd-humanizer.md +38 -0
  22. package/agents/omd-kr-writer.md +3 -4
  23. package/agents/omd-locale-adapter.md +12 -16
  24. package/agents/omd-master.md +24 -19
  25. package/agents/omd-microcopy.md +1 -1
  26. package/agents/omd-orchestrator.md +7 -8
  27. package/agents/omd-slop-auditor.md +31 -0
  28. package/agents/omd-ux-researcher.md +1 -1
  29. package/data/reference-fingerprints.json +1995 -38
  30. package/dist/bin/oh-my-design.js +16 -8
  31. package/dist/bin/oh-my-design.js.map +1 -1
  32. package/dist/chunk-UJIHCEYF.js +99 -0
  33. package/dist/chunk-UJIHCEYF.js.map +1 -0
  34. package/dist/doctor-LDWSFM3I.js +763 -0
  35. package/dist/doctor-LDWSFM3I.js.map +1 -0
  36. package/dist/install-skills-ZZFNJ2II.js +1120 -0
  37. package/dist/install-skills-ZZFNJ2II.js.map +1 -0
  38. package/docs/CLI_QUICKSTART.md +157 -0
  39. package/package.json +25 -4
  40. package/scripts/postinstall.cjs +5 -4
  41. package/skills/claude-design/SKILL.md +38 -14
  42. package/skills/claude-design/references/claude-design-flow.md +11 -11
  43. package/skills/claude-design/references/codebase-analysis.md +5 -4
  44. package/skills/omd-final-qa/SKILL.md +1 -1
  45. package/skills/omd-harness/SKILL.md +51 -50
  46. package/skills/omd-humanize/SKILL.md +116 -0
  47. package/skills/omd-humanize/agents/openai.yaml +4 -0
  48. package/skills/omd-humanize/references/locale-playbooks.md +102 -0
  49. package/skills/omd-humanize/references/sources.md +11 -0
  50. package/skills/omd-init/SKILL.md +18 -12
  51. package/skills/omd-locale-adapter/SKILL.md +58 -91
  52. package/skills/omd-orchestrator/SKILL.md +11 -5
  53. package/skills/omd-reference-capture/SKILL.md +80 -26
  54. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
  55. package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
  56. package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
  57. package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
  58. package/skills/omd-slop-audit/SKILL.md +110 -0
  59. package/skills/omd-slop-audit/agents/openai.yaml +4 -0
  60. package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
  61. package/skills/omd-slop-audit/references/sources.md +24 -0
  62. package/web/references/104/DESIGN.md +354 -0
  63. package/web/references/11st/DESIGN.md +197 -316
  64. package/web/references/29cm/DESIGN.md +297 -393
  65. package/web/references/42dot/DESIGN.md +390 -0
  66. package/web/references/8percent/DESIGN.md +438 -0
  67. package/web/references/ably/DESIGN.md +267 -572
  68. package/web/references/acer/DESIGN.md +329 -0
  69. package/web/references/airbnb/DESIGN.md +219 -557
  70. package/web/references/alipay/DESIGN.md +179 -420
  71. package/web/references/apple/DESIGN.md +224 -498
  72. package/web/references/asleep/DESIGN.md +402 -0
  73. package/web/references/au/DESIGN.md +334 -0
  74. package/web/references/autopedia/DESIGN.md +382 -0
  75. package/web/references/aws-cloudscape/DESIGN.md +241 -0
  76. package/web/references/baemin/DESIGN.md +332 -491
  77. package/web/references/banksalad/DESIGN.md +269 -180
  78. package/web/references/barogo/DESIGN.md +416 -0
  79. package/web/references/beusable/DESIGN.md +464 -0
  80. package/web/references/bilibili/DESIGN.md +206 -374
  81. package/web/references/bmw/DESIGN.md +162 -276
  82. package/web/references/brandi/DESIGN.md +184 -325
  83. package/web/references/catchtable/DESIGN.md +219 -264
  84. package/web/references/cgv/DESIGN.md +317 -0
  85. package/web/references/channeltalk/DESIGN.md +210 -336
  86. package/web/references/china-airlines/DESIGN.md +291 -0
  87. package/web/references/cjonstyle/DESIGN.md +453 -0
  88. package/web/references/class101/DESIGN.md +168 -387
  89. package/web/references/classum/DESIGN.md +228 -203
  90. package/web/references/claude/DESIGN.md +242 -479
  91. package/web/references/clay/DESIGN.md +179 -377
  92. package/web/references/clickhouse/DESIGN.md +254 -343
  93. package/web/references/cohere/DESIGN.md +214 -324
  94. package/web/references/coinone/DESIGN.md +199 -179
  95. package/web/references/corca/DESIGN.md +414 -0
  96. package/web/references/coupang/DESIGN.md +205 -475
  97. package/web/references/cursor/DESIGN.md +240 -381
  98. package/web/references/dabang/DESIGN.md +248 -213
  99. package/web/references/dable/DESIGN.md +431 -0
  100. package/web/references/datarize/DESIGN.md +217 -330
  101. package/web/references/dealicious/DESIGN.md +402 -0
  102. package/web/references/drdiary/DESIGN.md +404 -0
  103. package/web/references/elastic/DESIGN.md +238 -0
  104. package/web/references/elevenlabs/DESIGN.md +183 -321
  105. package/web/references/eslite/DESIGN.md +257 -0
  106. package/web/references/evaair/DESIGN.md +338 -0
  107. package/web/references/expo/DESIGN.md +238 -331
  108. package/web/references/familymart-tw/DESIGN.md +254 -0
  109. package/web/references/ferrari/DESIGN.md +160 -377
  110. package/web/references/figma/DESIGN.md +197 -451
  111. package/web/references/fitpet/DESIGN.md +445 -0
  112. package/web/references/flex/DESIGN.md +170 -253
  113. package/web/references/framer/DESIGN.md +197 -340
  114. package/web/references/freee/DESIGN.md +211 -533
  115. package/web/references/friendliai/DESIGN.md +431 -0
  116. package/web/references/frip/DESIGN.md +440 -0
  117. package/web/references/gangnamunni/DESIGN.md +154 -591
  118. package/web/references/gaudiolab/DESIGN.md +414 -0
  119. package/web/references/google/DESIGN.md +290 -398
  120. package/web/references/hashicorp/DESIGN.md +273 -318
  121. package/web/references/heydealer/DESIGN.md +429 -0
  122. package/web/references/humanscape/DESIGN.md +433 -0
  123. package/web/references/hyundai/DESIGN.md +158 -368
  124. package/web/references/hyundaicard/DESIGN.md +171 -121
  125. package/web/references/ibm/DESIGN.md +227 -378
  126. package/web/references/idus/DESIGN.md +450 -0
  127. package/web/references/igaworks/DESIGN.md +437 -0
  128. package/web/references/inflearn/DESIGN.md +221 -366
  129. package/web/references/intuit/DESIGN.md +244 -0
  130. package/web/references/jandi/DESIGN.md +191 -291
  131. package/web/references/jobplanet/DESIGN.md +415 -0
  132. package/web/references/kakao/DESIGN.md +287 -475
  133. package/web/references/kakaobank/DESIGN.md +220 -521
  134. package/web/references/kakaogames/DESIGN.md +220 -0
  135. package/web/references/kakaopay/DESIGN.md +207 -526
  136. package/web/references/karrot/DESIGN.md +227 -251
  137. package/web/references/kb-kookmin/DESIGN.md +308 -0
  138. package/web/references/kbank/DESIGN.md +220 -175
  139. package/web/references/kmong/DESIGN.md +281 -356
  140. package/web/references/krds/DESIGN.md +245 -19
  141. package/web/references/kream/DESIGN.md +224 -359
  142. package/web/references/kurly/DESIGN.md +211 -533
  143. package/web/references/lamborghini/DESIGN.md +198 -360
  144. package/web/references/lguplus/DESIGN.md +259 -0
  145. package/web/references/likelion/DESIGN.md +283 -0
  146. package/web/references/line/DESIGN.md +396 -355
  147. package/web/references/linear.app/DESIGN.md +209 -562
  148. package/web/references/lotteon/DESIGN.md +386 -0
  149. package/web/references/lovable/DESIGN.md +255 -349
  150. package/web/references/makinarocks/DESIGN.md +149 -349
  151. package/web/references/maum-ai/DESIGN.md +423 -0
  152. package/web/references/medibloc/DESIGN.md +425 -0
  153. package/web/references/megabox/DESIGN.md +232 -0
  154. package/web/references/mercari/DESIGN.md +217 -434
  155. package/web/references/microsoft/DESIGN.md +234 -388
  156. package/web/references/mildang/DESIGN.md +411 -0
  157. package/web/references/millie/DESIGN.md +183 -504
  158. package/web/references/minimax/DESIGN.md +264 -322
  159. package/web/references/miricanvas/DESIGN.md +182 -355
  160. package/web/references/miro/DESIGN.md +234 -232
  161. package/web/references/mistral.ai/DESIGN.md +231 -314
  162. package/web/references/mixi/DESIGN.md +234 -0
  163. package/web/references/moin/DESIGN.md +445 -0
  164. package/web/references/mongodb/DESIGN.md +219 -316
  165. package/web/references/musinsa/DESIGN.md +184 -510
  166. package/web/references/mynavi/DESIGN.md +242 -0
  167. package/web/references/myrealtrip/DESIGN.md +169 -406
  168. package/web/references/naver/DESIGN.md +328 -499
  169. package/web/references/naverwebtoon/DESIGN.md +172 -395
  170. package/web/references/nhn/DESIGN.md +169 -346
  171. package/web/references/nhncloud/DESIGN.md +185 -123
  172. package/web/references/notion/DESIGN.md +271 -475
  173. package/web/references/nrise/DESIGN.md +417 -0
  174. package/web/references/ohouse/DESIGN.md +210 -549
  175. package/web/references/oliveyoung/DESIGN.md +217 -326
  176. package/web/references/ollama/DESIGN.md +241 -308
  177. package/web/references/onestore/DESIGN.md +248 -0
  178. package/web/references/palantir/DESIGN.md +256 -0
  179. package/web/references/panasonic/DESIGN.md +276 -0
  180. package/web/references/patternfly/DESIGN.md +259 -0
  181. package/web/references/payhere/DESIGN.md +438 -0
  182. package/web/references/pega/DESIGN.md +262 -0
  183. package/web/references/peoplefund/DESIGN.md +431 -0
  184. package/web/references/petfriends/DESIGN.md +428 -0
  185. package/web/references/pinkfong/DESIGN.md +199 -367
  186. package/web/references/pinterest/DESIGN.md +258 -308
  187. package/web/references/poya/DESIGN.md +286 -0
  188. package/web/references/pozalabs/DESIGN.md +438 -0
  189. package/web/references/protopie/DESIGN.md +419 -0
  190. package/web/references/qraft/DESIGN.md +448 -0
  191. package/web/references/quotabook/DESIGN.md +449 -0
  192. package/web/references/recruit/DESIGN.md +247 -0
  193. package/web/references/remember/DESIGN.md +202 -396
  194. package/web/references/resend/DESIGN.md +274 -348
  195. package/web/references/sakura-internet/DESIGN.md +269 -0
  196. package/web/references/samsung/DESIGN.md +157 -359
  197. package/web/references/sandoll/DESIGN.md +445 -0
  198. package/web/references/sanity/DESIGN.md +241 -375
  199. package/web/references/scatterlab/DESIGN.md +412 -0
  200. package/web/references/selectstar/DESIGN.md +439 -0
  201. package/web/references/servicenow/DESIGN.md +289 -0
  202. package/web/references/shinhanbank/DESIGN.md +161 -341
  203. package/web/references/shinhancard/DESIGN.md +208 -319
  204. package/web/references/sionic/DESIGN.md +454 -0
  205. package/web/references/sktelecom/DESIGN.md +310 -0
  206. package/web/references/socar/DESIGN.md +125 -32
  207. package/web/references/softbank/DESIGN.md +231 -0
  208. package/web/references/sony/DESIGN.md +234 -0
  209. package/web/references/soop/DESIGN.md +261 -0
  210. package/web/references/spacex/DESIGN.md +184 -323
  211. package/web/references/spotify/DESIGN.md +253 -394
  212. package/web/references/squeezebits/DESIGN.md +441 -0
  213. package/web/references/stayfolio/DESIGN.md +422 -0
  214. package/web/references/stripe/DESIGN.md +212 -491
  215. package/web/references/supabase/DESIGN.md +244 -316
  216. package/web/references/tabling/DESIGN.md +415 -0
  217. package/web/references/taishinbank/DESIGN.md +243 -0
  218. package/web/references/teamlab/DESIGN.md +240 -0
  219. package/web/references/teamsparta/DESIGN.md +472 -0
  220. package/web/references/tellingme/DESIGN.md +392 -0
  221. package/web/references/tesla/DESIGN.md +244 -427
  222. package/web/references/thsr/DESIGN.md +284 -0
  223. package/web/references/thumbtack/DESIGN.md +302 -0
  224. package/web/references/together.ai/DESIGN.md +257 -304
  225. package/web/references/toss/DESIGN.md +251 -593
  226. package/web/references/toss-securities/DESIGN.md +255 -178
  227. package/web/references/tossbank/DESIGN.md +195 -491
  228. package/web/references/toyota/DESIGN.md +238 -0
  229. package/web/references/tving/DESIGN.md +197 -245
  230. package/web/references/typed/DESIGN.md +413 -0
  231. package/web/references/uber/DESIGN.md +256 -333
  232. package/web/references/udn/DESIGN.md +250 -0
  233. package/web/references/upbit/DESIGN.md +145 -256
  234. package/web/references/upstage/DESIGN.md +211 -204
  235. package/web/references/uswds/DESIGN.md +287 -0
  236. package/web/references/vercel/DESIGN.md +236 -440
  237. package/web/references/wanted/DESIGN.md +215 -487
  238. package/web/references/wise/DESIGN.md +223 -231
  239. package/web/references/wisetracker/DESIGN.md +462 -0
  240. package/web/references/wooribank/DESIGN.md +245 -0
  241. package/web/references/yanolja/DESIGN.md +250 -419
  242. package/web/references/yeogiotte/DESIGN.md +235 -418
  243. package/web/references/zapier/DESIGN.md +256 -377
  244. package/web/references/zendesk/DESIGN.md +288 -0
  245. package/web/references/zigzag/DESIGN.md +200 -621
  246. package/dist/install-skills-7UUDOLG2.js +0 -734
  247. package/dist/install-skills-7UUDOLG2.js.map +0 -1
@@ -0,0 +1,412 @@
1
+ ---
2
+ id: scatterlab
3
+ name: Scatter Lab
4
+ display_name_kr: 스캐터랩
5
+ country: KR
6
+ category: ai
7
+ homepage: "https://www.scatterlab.co.kr/"
8
+ primary_color: "#212529"
9
+ logo:
10
+ type: favicon
11
+ slug: "https://www.google.com/s2/favicons?domain=scatterlab.co.kr&sz=128"
12
+ verified: "2026-07-02"
13
+ added: "2026-07-02"
14
+ omd: "0.1"
15
+ tokens:
16
+ source: live-extract
17
+ extracted: "2026-07-02"
18
+ note: "Monochrome, typography-forward identity. Primary = near-black charcoal (#212529) carrying the homepage's dark filled action; the blog surface pushes to pure black (#000000). No saturated brand hue — restraint is the signal. Two type stacks: Pretendard (marketing site, styled-components) + IBM Plex Sans (blog, Tailwind zinc/gray)."
19
+ colors:
20
+ primary: "#212529"
21
+ ink: "#000000"
22
+ ink-alt: "#09090b"
23
+ heading: "#222222"
24
+ heading-blog: "#292929"
25
+ body: "#242424"
26
+ nav: "#212429"
27
+ muted: "#71717a"
28
+ muted-warm: "#8c8c8c"
29
+ muted-deep: "#595959"
30
+ tag-text: "#4b5563"
31
+ faint: "#a1a1aa"
32
+ canvas: "#ffffff"
33
+ surface: "#f3f4f6"
34
+ surface-alt: "#fafafa"
35
+ band: "#ebebeb"
36
+ chip: "#e5e7eb"
37
+ hairline: "#e4e4e7"
38
+ typography:
39
+ family: { sans: "Pretendard", blog: "IBM Plex Sans", var: "Pretendard Variable" }
40
+ display-hero: { size: 52, weight: 700, use: "Homepage hero headline, Pretendard Bold" }
41
+ section: { size: 23, weight: 700, use: "Homepage section / feature headings" }
42
+ headline-blog: { size: 44, weight: 600, lineHeight: 1.30, use: "Blog article H1, IBM Plex Sans SemiBold" }
43
+ subhead-blog: { size: 24, weight: 600, use: "Blog section H3" }
44
+ body-blog: { size: 19, weight: 400, use: "Blog article paragraph" }
45
+ body: { size: 16, weight: 400, lineHeight: 1.50, use: "Base body, nav, UI text" }
46
+ caption: { size: 14, weight: 400, use: "Category chips, meta labels" }
47
+ spacing: { xs: 4, sm: 8, md: 12, base: 16, lg: 24, xl: 32 }
48
+ rounded: { sm: 4, md: 6, lg: 24, full: 9999 }
49
+ shadow:
50
+ none: "none"
51
+ soft: "rgba(0,0,0,0.04) 0px 1px 2px, rgba(0,0,0,0.06) 0px 8px 16px"
52
+ components:
53
+ button-primary: { type: button, bg: "#000000", fg: "#ffffff", radius: "6px", height: "36px", padding: "8px 16px", font: "16px / 500 IBM Plex Sans", use: "Primary black CTA on blog (e.g. 채용공고)" }
54
+ button-nav: { type: button, bg: "#ffffff", fg: "#212429", radius: "4px", height: "32px", padding: "5.5px 12px", font: "16px / 400 Pretendard", use: "Header nav menu item (homepage)" }
55
+ button-scroll-top: { type: button, bg: "#212529", fg: "#ffffff", radius: "24px", height: "48px", shadow: "rgba(0,0,0,0.04) 0px 1px 2px · rgba(0,0,0,0.06) 0px 8px 16px", use: "Floating circular scroll-to-top action" }
56
+ category-chip: { type: badge, bg: "#e5e7eb", fg: "#4b5563", radius: "6px", height: "26px", padding: "3px 12px", font: "14px / 400", use: "Blog post category chip — Product / Business" }
57
+ card-white: { type: card, bg: "#ffffff", border: "1px solid #e4e4e7", radius: "6px", use: "White content/list card, thin hairline, no shadow" }
58
+ card-band: { type: card, bg: "#f3f4f6", radius: "6px", use: "Tinted grey band segmenting sections" }
59
+ components_harvested: true
60
+ ---
61
+
62
+ # Design System Inspiration of Scatter Lab
63
+
64
+ ## 1. Visual Theme & Atmosphere
65
+
66
+ Scatter Lab (스캐터랩) is the Korean AI company behind Zeta (제타), and its web presence reads less like a consumer product and more like a serious research house presenting its work. The identity is aggressively monochrome — pure white canvas (`#ffffff`), near-black text, and not a single saturated brand hue anywhere on either the marketing site or the engineering blog. That restraint is itself the statement: a company that builds AI people spend hours talking to chooses to describe itself in black-and-white, letting the typography and the numbers do the persuading.
67
+
68
+ The homepage (Pretendard, styled-components) is built around big declarative headlines — a 52px weight-700 hero ("zeta: 엔터테인먼트의 새로운 패러다임") over 23px weight-700 section heads, all set in a warm near-black (`#222222`) rather than pure black. Interactive chrome is deliberately quiet: ghost nav buttons on white with a tiny 4px radius, and a single dark charcoal (`#212529`) circular scroll-to-top button that is the only filled action in the default viewport. The engineering blog (IBM Plex Sans + Pretendard Variable, Tailwind zinc/gray) shifts register slightly toward editorial long-form: a 44px weight-600 article H1 (`#292929`), 19px reading paragraphs (`#242424`), grey category chips, and a single pure-black (`#000000`) CTA. Two surfaces, two type stacks, one shared conviction — that seriousness looks like restraint.
69
+
70
+ What distinguishes Scatter Lab is its near-total rejection of decoration. Depth is essentially flat: box-shadow is `none` across headers, headings, cards, and chips, and the only measured shadow is a two-layer soft lift (`rgba(0,0,0,0.04) 0px 1px 2px`) on the floating scroll-top button. Separation comes from tinted grey surfaces (`#f3f4f6`, `#fafafa`, `#ebebeb`) and hairline borders (`#e4e4e7`), never from elevation. The neutral ladder is deep and carefully graded — from `#09090b` and `#242424` for text down through `#595959`, `#71717a`, `#8c8c8c`, and `#a1a1aa` for progressively quieter meta — giving the pages a precise, editorial greyscale that feels engineered rather than styled.
71
+
72
+ **Key Characteristics:**
73
+ - Monochrome by conviction — no saturated brand hue on either surface; black, near-black, greys, white only
74
+ - Near-black charcoal (`#212529`) as the homepage's single filled-action color; pure black (`#000000`) as the blog CTA
75
+ - Warm near-black headings (`#222222` homepage, `#292929`/`#09090b` blog) instead of pure black for body-scale reading text
76
+ - Two type stacks by surface: Pretendard weight-700 display on the marketing site, IBM Plex Sans weight-600 on the blog
77
+ - Flat depth — `box-shadow: none` almost everywhere; separation via `#f3f4f6` tint and `#e4e4e7` hairlines
78
+ - Tiny, conservative radii — 4px nav buttons, 6px blog buttons/chips/cards, 24px only on the circular scroll-top
79
+ - A long, precisely graded neutral ladder (`#242424` → `#595959` → `#71717a` → `#8c8c8c` → `#a1a1aa`) for text hierarchy
80
+ - Metric-forward, editorial copy ("하루 2시간 40분", "매월 80만 명") — numbers as persuasion, not superlatives
81
+
82
+ ## 2. Color Palette & Roles
83
+
84
+ ### Primary / Action
85
+ - **Charcoal** (`#212529`): The homepage's single filled-action color — the circular scroll-to-top button and dark chrome. The system's `primary_color`, a near-black with a faint cool undertone.
86
+ - **Pure Black** (`#000000`): The blog's primary CTA fill (e.g. the "채용공고" recruitment button) and maximum-contrast accents.
87
+ - **Nav Charcoal** (`#212429`): Text color of the homepage's ghost nav menu buttons — a hair warmer than the primary charcoal.
88
+
89
+ ### Ink / Text
90
+ - **Ink** (`#09090b`): Blog body and heading ink (Tailwind zinc-950) — the darkest reading color, near-black with a cool cast.
91
+ - **Heading (Home)** (`#222222`): Homepage headline color — a warm near-black used for the 52px/23px weight-700 heads.
92
+ - **Heading (Blog)** (`#292929`): Blog article H1 color at 44px weight-600.
93
+ - **Body** (`#242424`): Blog reading paragraph color at 19px.
94
+ - **Muted** (`#71717a`): Blog secondary/meta text (zinc-500).
95
+ - **Muted Warm** (`#8c8c8c`): Homepage muted labels and captions.
96
+ - **Muted Deep** (`#595959`): Alternate mid-grey for secondary blog text.
97
+ - **Tag Text** (`#4b5563`): Category chip label color (gray-600).
98
+ - **Faint** (`#a1a1aa`): Lowest-emphasis labels, timestamps, disabled text (zinc-400).
99
+
100
+ ### Surface / Neutral
101
+ - **Canvas** (`#ffffff`): Page background, card surfaces, text on dark actions.
102
+ - **Surface** (`#f3f4f6`): Cool-grey tinted band for section separation (blog gray-100).
103
+ - **Surface Alt** (`#fafafa`): Lightest homepage grey for subtle alternating blocks.
104
+ - **Band** (`#ebebeb`): Homepage grey band / divider surface.
105
+ - **Chip** (`#e5e7eb`): Category-chip background (gray-200).
106
+ - **Hairline** (`#e4e4e7`): Thin card outlines and dividers (zinc-200) — the primary separation device in a shadow-free system.
107
+
108
+ ## 3. Typography Rules
109
+
110
+ ### Font Family
111
+ - **Marketing site**: `Pretendard` (with `-apple-system`, `Apple SD Gothic Neo`, `Noto Sans KR` fallbacks) — the de-facto Korean product font. Display headlines run at weight 700.
112
+ - **Blog**: `IBM Plex Sans` with `Pretendard Variable` / `Pretendard` companions — an editorial, engineering-flavored stack for long-form article reading. Headlines run at weight 600.
113
+
114
+ ### Hierarchy
115
+
116
+ | Role | Font | Size | Weight | Line Height | Notes |
117
+ |------|------|------|--------|-------------|-------|
118
+ | Display Hero | Pretendard | 52px (3.25rem) | 700 | ~1.35 | Homepage hero headline |
119
+ | Section Head | Pretendard | 23px (1.44rem) | 700 | ~1.35 | Homepage feature/section titles |
120
+ | Blog H1 | IBM Plex Sans | 44px (2.75rem) | 600 | 1.30 | Article headline |
121
+ | Blog H3 | IBM Plex Sans | 24px (1.50rem) | 600 | 1.50 | Article section heads |
122
+ | Blog Body | IBM Plex Sans | 19px (1.19rem) | 400 | ~1.70 | Article reading paragraph |
123
+ | Base / Nav | Pretendard | 16px (1.00rem) | 400 | 1.50 | Nav items, base UI text |
124
+ | Caption / Tag | IBM Plex Sans | 14px (0.88rem) | 400 | 1.50 | Category chips, meta labels |
125
+
126
+ ### Principles
127
+ - **Weight, not color, is the hierarchy signal.** With the palette locked to greyscale, emphasis is carried entirely by size and weight (700 display / 600 blog heads / 400 body) plus the deep-to-faint neutral ladder.
128
+ - **Two stacks, two jobs.** Pretendard owns the persuasive marketing surface; IBM Plex Sans owns the editorial blog. They never swap roles across a surface.
129
+ - **Near-black, never pure black, for reading text.** Body and headings sit at `#222222` / `#242424` / `#09090b` — warm near-blacks that soften the greyscale without introducing hue.
130
+ - **Generous body sizing for long-form.** The blog reads at a deliberate 19px — larger than typical UI body — signaling that the writing is the product.
131
+
132
+ ## 4. Component Stylings
133
+
134
+ ### Buttons
135
+
136
+ **Primary (Black CTA)**
137
+ - Background: `#000000`
138
+ - Text: `#ffffff`
139
+ - Radius: 6px
140
+ - Padding: 8px 16px
141
+ - Height: 36px
142
+ - Font: 16px / 500 / IBM Plex Sans
143
+ - Use: Primary call-to-action on the blog surface (e.g. "채용공고")
144
+
145
+ **Nav Menu Item (Ghost)**
146
+ - Background: `#ffffff`
147
+ - Text: `#212429`
148
+ - Radius: 4px
149
+ - Padding: 5.5px 12px
150
+ - Height: 32px
151
+ - Font: 16px / 400 / Pretendard
152
+ - Use: Homepage header navigation items (제타 소개, 문화, 블로그, 채용, AI 윤리)
153
+
154
+ **Scroll-to-Top (Dark Circle)**
155
+ - Background: `#212529`
156
+ - Text: `#ffffff`
157
+ - Radius: 24px
158
+ - Height: 48px
159
+ - Shadow: `rgba(0,0,0,0.04) 0px 1px 2px, rgba(0,0,0,0.06) 0px 8px 16px`
160
+ - Use: Floating circular scroll-to-top button — the only shadowed element measured
161
+
162
+ ### Cards & Containers
163
+
164
+ **White Content Card**
165
+ - Background: `#ffffff`
166
+ - Border: 1px solid `#e4e4e7`
167
+ - Radius: 6px
168
+ - Use: White article/list card outlined by a thin hairline (no shadow)
169
+
170
+ **Tinted Section Band**
171
+ - Background: `#f3f4f6`
172
+ - Radius: 6px
173
+ - Use: Cool-grey band that segments content sections without elevation
174
+
175
+ ### Badges / Tags
176
+
177
+ **Category Chip**
178
+ - Background: `#e5e7eb`
179
+ - Text: `#4b5563`
180
+ - Radius: 6px
181
+ - Padding: 3px 12px
182
+ - Height: 26px
183
+ - Font: 14px / 400
184
+ - Use: Blog post category chips ("Product", "Business")
185
+
186
+ ### Navigation
187
+ - Background: `#ffffff`
188
+ - Text: `#212429`
189
+ - Font: 16px / 400 / Pretendard
190
+ - Height: 32px per item
191
+ - Use: Top horizontal nav (제타 소개, 문화, 블로그, 채용, AI 윤리, English, 日本語)
192
+
193
+ ---
194
+
195
+ **Verified:** 2026-07-02 (omd:add-reference CREATE — Tier 1 live inspect)
196
+ **Tier 1 sources:** https://www.scatterlab.co.kr/ ; https://blog.scatterlab.co.kr/zeta-intro-2506
197
+ **Tier 2 sources:** getdesign.md/scatterlab — "0 DESIGN.md files" (not listed); styles.refero.design/?q=scatterlab — no Scatter Lab entry (generic browse results only)
198
+ **Conflicts unresolved:** none
199
+
200
+ ## 5. Layout Principles
201
+
202
+ ### Spacing System
203
+ - Base unit: ~4px
204
+ - Scale: 4px, 8px, 12px, 16px, 24px, 32px
205
+ - Notable: Button padding lands tight (8px 16px on the blog CTA, 5.5px 12px on ghost nav items); chips at 3px 12px — compact, editorial density rather than roomy consumer padding
206
+
207
+ ### Grid & Container
208
+ - Homepage: centered single-column with the 52px Pretendard hero as anchor, then stacked feature/section blocks
209
+ - Blog: a narrow, editorial single-column measure (long-form reading width) with the 44px H1, category chips above, and generous vertical rhythm between paragraphs
210
+ - Sections separate by grey tint (`#f3f4f6`, `#fafafa`, `#ebebeb`) full-width bands rather than boxed cards
211
+
212
+ ### Whitespace Philosophy
213
+ - **Editorial breathing room**: despite being content-dense, both surfaces are airy, with large vertical gaps between sections and paragraphs.
214
+ - **Flat segmentation**: sections separate by background tint and `#e4e4e7` hairlines, never by shadow or heavy borders.
215
+ - **Numbers get room**: metric statements ("하루 2시간 40분", "매월 80만 명") are given their own headline-scale lines rather than buried in prose.
216
+
217
+ ### Border Radius Scale
218
+ - Small (4px): homepage ghost nav buttons — barely rounded
219
+ - Standard (6px): blog buttons, category chips, content cards — the workhorse
220
+ - Circle (24px): the floating scroll-to-top button (only fully-round element)
221
+ - Full (9999px): reserved; not used on the marketing/blog surfaces
222
+
223
+ ## 6. Depth & Elevation
224
+
225
+ | Level | Treatment | Use |
226
+ |-------|-----------|-----|
227
+ | Flat (Level 0) | `box-shadow: none` | Page background, headings, nav, cards, chips — nearly everything |
228
+ | Tint (Level 1) | `#f3f4f6` / `#fafafa` / `#ebebeb` background shift | Section/band separation without elevation |
229
+ | Hairline (Level 2) | `1px solid #e4e4e7` border | White card outlines, dividers |
230
+ | Soft Lift (Level 3) | `rgba(0,0,0,0.04) 0px 1px 2px, rgba(0,0,0,0.06) 0px 8px 16px` | The single floating scroll-to-top button |
231
+
232
+ **Shadow Philosophy**: Scatter Lab is a near-shadowless system. Live inspection found `box-shadow: none` across the homepage hero, nav, headings, and the blog's cards and chips. Depth and grouping are communicated through flat tinted surfaces (`#f3f4f6`) and thin `#e4e4e7` hairlines. The only measured elevation is a soft two-layer lift on the floating scroll-to-top control — an affordance, not decoration. When emphasis is needed, the system reaches for weight, size, and the dark action fills (`#212529` / `#000000`), never for a drop shadow.
233
+
234
+ ## 7. Do's and Don'ts
235
+
236
+ ### Do
237
+ - Keep the palette monochrome — black, near-black, greys, and white; let type and layout carry the design
238
+ - Use near-black (`#222222`, `#242424`, `#09090b`) for reading text instead of pure black
239
+ - Reserve the dark fills (`#212529` charcoal on the homepage, `#000000` on the blog) for the single primary action
240
+ - Carry hierarchy with weight and size (700 display / 600 blog heads / 400 body), not color
241
+ - Separate sections with grey tint (`#f3f4f6`, `#fafafa`, `#ebebeb`) and `#e4e4e7` hairlines
242
+ - Keep depth flat — `box-shadow: none` by default; only the floating control lifts
243
+ - Keep radii tiny (4px nav, 6px blog components); reserve the 24px round only for the circular scroll-top
244
+ - Set marketing headlines in Pretendard weight 700 and blog headlines in IBM Plex Sans weight 600
245
+ - Give metrics headline-scale room ("하루 2시간 40분") — numbers persuade
246
+
247
+ ### Don't
248
+ - Introduce a saturated brand hue — the monochrome restraint is the identity
249
+ - Use pure black (`#000000`) for large bodies of reading text — near-blacks are warmer
250
+ - Spread the dark action fill across many elements — it dilutes the single-action signal
251
+ - Add drop shadows for elevation — this is a flat, tint-and-hairline system
252
+ - Use large or pill radii on buttons and cards — geometry stays conservative (4–6px)
253
+ - Mix the two type stacks within a single surface — Pretendard for marketing, IBM Plex Sans for blog
254
+ - Lean on exclamation-heavy hype — copy is measured, metric-backed, and editorial
255
+ - Use color to signal hierarchy — weight and size do that job
256
+
257
+ ## 8. Responsive Behavior
258
+
259
+ ### Breakpoints
260
+ | Name | Width | Key Changes |
261
+ |------|-------|-------------|
262
+ | Mobile | <640px | Single column; hero headline compresses; nav collapses to a toggle |
263
+ | Tablet | 640-1024px | Moderate padding; blog measure stays narrow for readability |
264
+ | Desktop | 1024-1440px | Full layout; centered hero; full-width tinted section bands |
265
+
266
+ ### Touch Targets
267
+ - Blog primary CTA at 36px height with 8px 16px padding — comfortably tappable
268
+ - Homepage ghost nav items at 32px height
269
+ - Floating scroll-to-top at 48px circular — an unmistakable target
270
+
271
+ ### Collapsing Strategy
272
+ - Homepage hero: 52px Pretendard headline scales down on mobile, weight 700 maintained
273
+ - Blog: 44px H1 compresses; the single-column reading measure holds
274
+ - Feature/section bands: multi-block → stacked single column
275
+ - Tinted/white alternating sections maintain full-width treatment
276
+
277
+ ### Image Behavior
278
+ - Product/feature imagery carries no shadow at any size, consistent with the flat system
279
+ - Cards keep their 6px radius and `#e4e4e7` hairline across breakpoints
280
+
281
+ ## 9. Agent Prompt Guide
282
+
283
+ ### Quick Color Reference
284
+ - Primary action (home): Charcoal (`#212529`)
285
+ - Primary action (blog): Pure Black (`#000000`)
286
+ - Nav text: Nav Charcoal (`#212429`)
287
+ - Heading (home / blog): `#222222` / `#292929`
288
+ - Blog ink / body: `#09090b` / `#242424`
289
+ - Muted text: `#71717a`, `#8c8c8c`, `#595959`
290
+ - Faint / disabled: `#a1a1aa`
291
+ - Tag text: `#4b5563`
292
+ - Background: White (`#ffffff`)
293
+ - Tinted surfaces: `#f3f4f6`, `#fafafa`, `#ebebeb`
294
+ - Chip: `#e5e7eb`
295
+ - Hairline: `#e4e4e7`
296
+
297
+ ### Example Component Prompts
298
+ - "Create a homepage hero on white. Headline at 52px Pretendard weight 700, color #222222. Below it a section head at 23px weight 700. Ghost nav buttons on white: #212429 text, 4px radius, 5.5px 12px padding, 16px Pretendard. One floating circular scroll-to-top: #212529 background, white icon, 24px radius, 48px, soft two-layer shadow."
299
+ - "Design a blog article header: IBM Plex Sans H1 at 44px weight 600, color #292929, line-height 1.3. Category chips above: #e5e7eb background, #4b5563 text, 6px radius, 3px 12px padding, 14px. Body paragraphs at 19px weight 400, #242424. One black CTA: #000000 background, white text, 6px radius, 8px 16px padding."
300
+ - "Build a white content card: #ffffff background, 1px solid #e4e4e7 border, 6px radius, no shadow. Place it on a #f3f4f6 tinted band. Title 24px IBM Plex Sans weight 600, #09090b; meta text 14px #71717a."
301
+ - "Create top nav: white header. Pretendard 16px weight 400 ghost items, #212429 text, 4px radius on hover. Items: 제타 소개, 문화, 블로그, 채용, AI 윤리, plus English / 日本語 language links."
302
+
303
+ ### Iteration Guide
304
+ 1. Stay monochrome — never add a saturated accent; hierarchy comes from weight and size
305
+ 2. Dark fills (`#212529` home, `#000000` blog) are the single action color — don't spread them
306
+ 3. No shadows by default — separate with `#f3f4f6` tint and `#e4e4e7` hairlines; only the scroll-top lifts
307
+ 4. Radii stay tiny — 4px nav, 6px blog components, 24px only on the circle
308
+ 5. Reading text is near-black (`#222222` / `#242424` / `#09090b`), never pure black
309
+ 6. Pretendard weight 700 for marketing headlines; IBM Plex Sans weight 600 for blog headlines
310
+ 7. Give numbers headline-scale room — Scatter Lab persuades with metrics
311
+
312
+ ---
313
+
314
+ ## 10. Voice & Tone
315
+
316
+ Scatter Lab's voice is **earnest, research-grounded, and metric-backed** — a company that talks about a playful entertainment product ("보는 엔터테인먼트를 넘어 함께하는 엔터테인먼트로") in the measured register of a lab reporting results. Copy leans on concrete numbers rather than adjectives: the hero and blog foreground usage metrics ("하루 2시간 40분", "매월 80만 명이 넘는 사용자") as the argument itself. The nav's dedicated "AI 윤리" (AI ethics) item signals a company that treats responsibility as a first-class topic, not a footnote. The tone is confident but never hype-driven — it reads as a serious team explaining a new paradigm, not a startup shouting about one.
317
+
318
+ | Context | Tone |
319
+ |---|---|
320
+ | Hero headlines | Declarative, paradigm-framed. "zeta: 엔터테인먼트의 새로운 패러다임." Confident, not superlative. |
321
+ | Metric statements | Concrete and numeric. "일주일에 12시간을 사용하는 AI 엔터테인먼트 서비스." Numbers carry the claim. |
322
+ | Blog / editorial | Explanatory, long-form, first-person where it earns trust. Explains the "why" before the "what". |
323
+ | Culture / careers | Warm and candid. "스캐터랩 에토스: 우리가 일하는 방식", "티타임 신청하기." Invites, doesn't pitch. |
324
+ | AI ethics | Plain, responsible, unhedged. Treated as a named part of the brand, not a disclaimer. |
325
+
326
+ **Voice samples (verbatim from live surfaces):**
327
+ - "zeta: 엔터테인먼트의 새로운 패러다임" — homepage hero headline (paradigm framing). *(verified live 2026-07-02)*
328
+ - "일주일에 12시간을 사용하는 AI 엔터테인먼트 서비스" — homepage subhead (metric as proof). *(verified live 2026-07-02)*
329
+ - "제타의 특별함은 '사용 시간'으로 드러납니다." — blog article (metric-first argument). *(verified live 2026-07-02)*
330
+ - "스캐터랩 에토스: 우리가 일하는 방식" — homepage culture section (candid, inviting). *(verified live 2026-07-02)*
331
+
332
+ **Forbidden register**: exclamation-heavy hype, superlative stacking, vague "revolutionary/game-changing" claims, and — given the company's history — any register that treats AI ethics or user trust as marketing garnish rather than substance.
333
+
334
+ ## 11. Brand Narrative
335
+
336
+ Scatter Lab (스캐터랩) was founded in **2011** by **김종윤 (Kim Jong-yoon, CEO)** and co-founders, beginning with relationship-analytics services (텍스트앳, then 연애의 과학 / "Science of Love") that mined conversational data to help people understand their relationships. That early work — building machines that read the texture of human conversation — set the company's north star: AI that people form genuine relationships with, not merely query. *(Founding year and founder are widely documented public facts; the framing here is an editorial reading of the company's stated direction.)*
337
+
338
+ The company's defining chapter was **Luda (이루다)**, a Korean conversational AI released in 2020 that drew enormous engagement — and then a serious 2021 controversy over privacy and offensive outputs that led to Luda 1.0 being taken down. Scatter Lab's response reshaped the brand: a public, sustained investment in **AI ethics** (now a standing "AI 윤리" section of the site), a relaunched, safer Luda, and eventually **Zeta (제타)**, an AI-character entertainment platform launched **April 1, 2024** that the company frames as "a new entertainment paradigm" — moving from *watching* content to *co-creating* it with AI characters.
339
+
340
+ What Scatter Lab refuses, visible in its design: the loud, saturated, consumer-hype aesthetic that a viral AI-companion app might reach for. What it embraces instead: a monochrome, typography-forward presentation; metric-backed, editorial copy; and an explicit, front-of-house treatment of ethics. The restraint is not timidity — it is a company that has been through a public reckoning choosing to look like it takes itself, and its responsibilities, seriously.
341
+
342
+ ## 12. Principles
343
+
344
+ 1. **Restraint signals seriousness.** A monochrome palette on an entertainment product is a deliberate choice. *UI implication:* keep the palette greyscale; never introduce a saturated accent to chase attention.
345
+ 2. **Metrics over adjectives.** The product's value is argued with numbers ("하루 2시간 40분"), not superlatives. *UI implication:* give metrics headline-scale typographic room; treat data as a first-class content type.
346
+ 3. **Ethics is front-of-house.** After the Luda reckoning, AI ethics became a named part of the brand. *UI implication:* surface responsibility and transparency as primary navigation, never as a buried disclaimer.
347
+ 4. **One action, one dark fill.** Emphasis is scarce and intentional. *UI implication:* reserve the dark fill (`#212529` / `#000000`) for the single primary action so the next step is unambiguous.
348
+ 5. **Flat and editorial.** Depth is nearly absent; the writing is the product. *UI implication:* no shadows; separate with tint and hairlines; size body text generously for long-form reading.
349
+
350
+ ## 13. Personas
351
+
352
+ *Personas below are fictional archetypes informed by publicly observable Scatter Lab / Zeta user and stakeholder segments (Korean AI-entertainment users, AI engineers, ethics-conscious observers), not individual people.*
353
+
354
+ **이서연, 22, 서울.** A university student and heavy Zeta user who plays out story scenarios with AI characters daily. Values that the experience feels co-created rather than consumed, and that the brand talks about safety openly rather than hiding it.
355
+
356
+ **김도현, 34, 판교.** An ML engineer evaluating Scatter Lab's careers page. Reads the engineering blog for the substance — model and product reasoning — and reads the "AI 윤리" section as a signal of whether the team is serious about responsible deployment.
357
+
358
+ **박지은, 41, 서울.** A policy-minded observer who followed the Luda controversy and now checks how Korean AI companies handle ethics. Trusts Scatter Lab more for putting ethics in the nav and speaking about it plainly, in the same restrained tone as the rest of the site.
359
+
360
+ ## 14. States
361
+
362
+ | State | Treatment |
363
+ |---|---|
364
+ | **Empty (no content / results)** | White canvas. Single near-black (`#242424`) line explaining the empty state, with one dark CTA to take the next step. No illustration clutter. |
365
+ | **Empty (saved / history, none yet)** | Muted (`#71717a`) single line: nothing here yet, plus a calm path forward. Honest, low-key. |
366
+ | **Loading (content fetch)** | Skeleton blocks on `#f3f4f6` tinted surface at final dimensions, 6px radius. Flat pulse — no shadow shimmer, consistent with the shadowless system. |
367
+ | **Loading (in-place refresh)** | Previous content stays visible; a subtle progress indicator rather than a blocking spinner. |
368
+ | **Error (request failed)** | Inline message in near-black with a plain-language explanation and a retry. No bare "오류가 발생했습니다" — states what to do next. |
369
+ | **Error (form validation)** | Field-level message below the input describing what's valid, not just "필수". |
370
+ | **Success (action complete)** | Brief inline confirmation in a calm, non-celebratory tone; next-step detail linked immediately below. |
371
+ | **Skeleton** | `#f3f4f6` blocks at final dimensions, 6px radius, flat pulse, `#e4e4e7` hairlines preserved. |
372
+ | **Disabled** | Faint (`#a1a1aa`) text on reduced-opacity surface; dark actions fade rather than switch hue, preserving the monochrome read. |
373
+
374
+ ## 15. Motion & Easing
375
+
376
+ **Durations**:
377
+
378
+ | Token | Value | Use |
379
+ |---|---|---|
380
+ | `motion-fast` | 120ms | Hover, focus, button press |
381
+ | `motion-standard` | 200ms | Card/section reveal, dropdown, scroll-top appear |
382
+ | `motion-slow` | 320ms | Page-level transitions |
383
+
384
+ **Easings**:
385
+
386
+ | Token | Curve | Use |
387
+ |---|---|---|
388
+ | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Arriving — cards, floating scroll-top |
389
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
390
+ | `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way transitions |
391
+
392
+ **Motion rules**: Motion is functional and quiet — consistent with the flat, editorial aesthetic. The floating scroll-to-top button fades/rises in at `motion-standard / ease-enter` once the user scrolls; hover states are subtle opacity/weight shifts. No bounce, no spring — a company presenting AI research and ethics signals steadiness, not playful delight. Under `prefers-reduced-motion: reduce`, all transitions collapse to instant and the product remains fully functional.
393
+
394
+ <!--
395
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
396
+
397
+ Tier 1 live inspect (2026-07-02) via playwright getComputedStyle:
398
+ - https://www.scatterlab.co.kr/ — hero H1 "zeta: 엔터테인먼트의 새로운 패러다임" Pretendard 52px/700 rgb(34,34,34) #222222; section H3 23px/700; ghost nav buttons white bg / rgb(33,36,41) #212429 text / 4px radius / 5.5px 12px padding / 32px; scroll-top button rgb(33,37,41) #212529 / white / 24px radius / 48px / two-layer soft shadow; grey surfaces #ebebeb #fafafa; muted #8c8c8c #767676; box-shadow none across chrome.
399
+ - https://blog.scatterlab.co.kr/zeta-intro-2506 — IBM Plex Sans + Pretendard Variable; body rgb(9,9,11) #09090b / 16px; H1 44px/600 rgb(41,41,41) #292929 leading 1.3; H3 24px/600 #09090b; paragraph 19px/400 rgb(36,36,36) #242424; primary CTA "채용공고" rgb(0,0,0) #000000 / white / 6px radius / 8px 16px / 36px / weight 500; category chips bg rgba(229,231,235,0.6) (gray-200) #e5e7eb / rgb(75,85,99) #4b5563 / 6px radius / 3px 12px; muted #71717a #595959 #a1a1aa; hairline rgb(228,228,231) #e4e4e7; surfaces #f3f4f6 #f6f6f6.
400
+
401
+ Token-level claims (§1–9) are sourced from this live inspection.
402
+
403
+ Voice samples (§10) are verbatim from the live homepage (hero H1, subhead H3, culture section H3) and the live Zeta-intro blog post.
404
+
405
+ Brand narrative (§11): Scatter Lab (스캐터랩) founded 2011 by CEO 김종윤 (Kim Jong-yoon); early products 텍스트앳 / 연애의 과학; Luda (이루다) conversational AI (2020) and its 2021 privacy/ethics controversy; Zeta (제타) AI-character entertainment platform launched 2024-04-01 (date stated verbatim on the blog: "2024년 4월 1일 세상에 첫선을 보인 제타"). Founding year/founder and the Luda controversy are widely documented public facts; the editorial framing connecting them to the design is interpretation, not a directly quoted Scatter Lab statement.
406
+
407
+ Personas (§13) are fictional archetypes informed by publicly observable Scatter Lab / Zeta user and stakeholder segments. Names are illustrative; they do not refer to real people.
408
+
409
+ Interpretive claims (e.g., "restraint signals seriousness", "ethics front-of-house as a response to the Luda reckoning") are editorial readings connecting Scatter Lab's observed design and history to its positioning, not directly sourced Scatter Lab statements.
410
+
411
+ Tier 2: getdesign.md/scatterlab returned "scatterlab — 0 DESIGN.md files / No designs found"; styles.refero.design/?q=scatterlab returned only generic browse results (no Scatter Lab entry). KR brand — Tier 1 (two brand-owned surfaces) carries the proof per spec/regional-sources.yaml.
412
+ -->