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,425 @@
1
+ ---
2
+ id: medibloc
3
+ name: MediBloc (Dr.Palette)
4
+ display_name_kr: 메디블록 (닥터팔레트)
5
+ country: KR
6
+ category: healthcare
7
+ homepage: "https://medibloc.com/"
8
+ primary_color: "#0066ff"
9
+ logo:
10
+ type: favicon
11
+ slug: "https://i0.wp.com/medibloc.com/wp-content/uploads/2021/07/cropped-%EB%A6%AC%EB%AF%B8%ED%8B%B0%EB%93%9C-%ED%8C%8C%EB%B9%84%EC%BD%98.png?fit=192%2C192&ssl=1"
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: "primary = live corporate CTA/link blue (#0066ff on medibloc.com); the Dr.Palette/Weavr blog uses a near-identical link blue (#0b7aff). Headings near-black (#1c1e1f), body grey (#333333). Magenta (#cc3366) is a sparse inline-link accent. Pretendard is the system font across both surfaces."
19
+ colors:
20
+ primary: "#0066ff"
21
+ primary-alt: "#007aff"
22
+ primary-deep: "#0045ff"
23
+ blue-link: "#0b7aff"
24
+ surface-blue: "#ebf1ff"
25
+ accent: "#cc3366"
26
+ ink: "#1c1e1f"
27
+ body: "#333333"
28
+ body-soft: "#434343"
29
+ muted: "#767676"
30
+ muted-alt: "#999999"
31
+ faint: "#9d9d9d"
32
+ canvas: "#ffffff"
33
+ surface-dark: "#131313"
34
+ black: "#000000"
35
+ typography:
36
+ family: { sans: "Pretendard", alt: "Roboto" }
37
+ display-hero: { size: 60, weight: 700, lineHeight: 1.2, use: "Hero headline, Pretendard Bold cut" }
38
+ headline: { size: 41, weight: 600, use: "Section headline (Panacea), Pretendard Medium" }
39
+ title: { size: 36, weight: 500, use: "Article / page H1, Pretendard" }
40
+ subhead: { size: 26, weight: 600, use: "Product card title (MediBloc Wallet), Pretendard SemiBold" }
41
+ lead: { size: 22, weight: 400, lineHeight: 1.3, use: "Article H3 lead, Pretendard" }
42
+ body: { size: 16, weight: 400, lineHeight: 1.5, use: "Standard reading text, Pretendard" }
43
+ body-sm: { size: 15, weight: 400, use: "Secondary body / outlined-button label" }
44
+ label: { size: 14, weight: 500, use: "Button / nav label, Pretendard Medium" }
45
+ caption: { size: 13, weight: 400, use: "Fine print, meta, timestamps" }
46
+ spacing: { xs: 4, sm: 7, base: 12, md: 14, lg: 24, xl: 25, xxl: 50 }
47
+ rounded: { sm: 3, md: 4, lg: 8, pill: 28, full: 9999 }
48
+ shadow:
49
+ card: "0 10px 20px rgba(0,0,0,0.07)"
50
+ none: "none"
51
+ components:
52
+ button-outline: { type: button, bg: "#ffffff", fg: "#0066ff", border: "2px solid #0066ff", radius: "4px", padding: "0px 50px", height: "62px", font: "15px / 400 Pretendard", shadow: "0 10px 20px rgba(0,0,0,0.07)", use: "Outlined primary action — Validator Guide, Apply for Token swap" }
53
+ button-pill: { type: button, bg: "#131313", fg: "#ffffff", radius: "28px", padding: "14px", height: "48px", shadow: "0 10px 20px rgba(0,0,0,0.07)", font: "14px / 500 Pretendard", use: "Rounded ghost Visit pill on dark hero" }
54
+ button-text: { type: button, fg: "#0066ff", radius: "3px", padding: "12px 24px", height: "39px", font: "15px / 500 Pretendard", use: "Text-link button — See more company news" }
55
+ card-feature: { type: card, bg: "#ffffff", fg: "#333333", radius: "8px", shadow: "0 10px 20px rgba(0,0,0,0.07)", use: "Product / feature card — MediBloc Wallet, Explorer" }
56
+ nav-link: { type: tab, fg: "#ffffff", active: "text #0066ff", font: "14px / 500 Roboto", use: "Top nav / social links on dark header (Blog, Telegram, Github)" }
57
+ badge-info: { type: badge, bg: "#ebf1ff", fg: "#0066ff", radius: "4px", padding: "4px 7px", font: "14px / 500 Pretendard", use: "Light-blue info tag / highlight pill" }
58
+ components_harvested: true
59
+ ---
60
+
61
+ # Design System Inspiration of MediBloc (Dr.Palette)
62
+
63
+ ## 1. Visual Theme & Atmosphere
64
+
65
+ MediBloc (메디블록) is the Korean healthcare-data company behind Dr.Palette (닥터팔레트), a web-based cloud EMR for clinics, and the Panacea blockchain that lets patients own their own medical records. Its corporate surface reads as a confident, engineering-led health-tech brand rather than a clinical hospital site: a crisp white canvas (`#ffffff`) alternates with immersive near-black sections (`#131313` over pure `#000000`), and a single electric blue (`#0066ff`) does all the interactive work — outlined CTAs, links, key metrics, and the "Panacea" wordmark. The tone is trustworthy and technical, the blue signalling "action" the way a well-behaved SaaS product does, never shouting.
66
+
67
+ The typographic voice is unmistakably Korean-premium: everything is set in **Pretendard**, the de-facto hangul product font, loaded as named weight cuts (Pretendard-Bold, -SemiBold, -Medium). The hero runs a 60px Pretendard Bold headline ("Own your health data. It's rightfully yours."), section headlines land at 41px, product-card titles at 26px SemiBold, and body copy settles at a quiet 16px / 1.5 in grey `#333333`. Only the social/utility nav borrows `Roboto`. Headings on the Dr.Palette/Weavr blog use a near-black `#1c1e1f` with grey `#434343` body — the same restrained ink-on-white hierarchy, confirming a consistent system across the two brand-owned surfaces.
68
+
69
+ What distinguishes MediBloc from typical fintech-adjacent sites is its comfort with the dark hero. Rather than a solid-blue button system, the flagship surface leans on **outlined** blue buttons (2px `#0066ff` border, transparent fill, 4px radius) and rounded white "Visit" pills (28px radius) floating on dark, each carrying a soft ambient shadow (`0 10px 20px rgba(0,0,0,0.07)`). Depth is minimal and atmospheric — the elevation comes from the dark/light section cadence, not heavy card stacks.
70
+
71
+ **Key Characteristics:**
72
+ - Pretendard across the system (Bold/SemiBold/Medium cuts), with `Roboto` only on utility/social nav
73
+ - A single electric blue (`#0066ff`) as the sole interactive/action color — CTAs, links, "Panacea" wordmark
74
+ - Outlined-button system (2px `#0066ff` border, transparent fill, 4px radius) rather than solid fills
75
+ - Rounded 28px "Visit" pills with soft ambient shadow on the dark hero
76
+ - Dark immersive sections (`#131313` / `#000000`) alternating with a white (`#ffffff`) canvas
77
+ - Near-black headings (`#1c1e1f`) over a cool grey text ladder (`#333333` → `#767676` → `#999999` → `#9d9d9d`)
78
+ - Sparse magenta (`#cc3366`) reserved for tiny inline text links — a warm counter-accent to the blue
79
+ - Minimal, atmospheric depth: one ambient shadow, no heavy elevation
80
+
81
+ ## 2. Color Palette & Roles
82
+
83
+ ### Primary
84
+ - **MediBloc Blue** (`#0066ff`): The primary brand and action color. Outlined-CTA borders and text, links, the "Panacea" wordmark, and key metric buttons. The system's single "do this" color.
85
+ - **Blue Alt** (`#007aff`): A secondary blue that appears on a handful of interactive accents and icons.
86
+ - **Blue Deep** (`#0045ff`): A deeper blue variant used sparingly for pressed/emphasis blue states.
87
+ - **Blog Link Blue** (`#0b7aff`): The near-identical link blue used on the Dr.Palette/Weavr blog for category labels and inline links — confirms blue as the cross-surface action color.
88
+
89
+ ### Accent
90
+ - **Magenta** (`#cc3366`): A warm pink-red reserved for small inline text links (e.g. "Visit" text links) — a rare, deliberate counter-accent to the dominant blue.
91
+ - **Surface Blue** (`#ebf1ff`): A very light blue tint used as a hover/fill base for text buttons and info tags.
92
+
93
+ ### Text Hierarchy
94
+ - **Ink** (`#1c1e1f`): Near-black heading color on the blog/content surfaces — warmer and softer than pure black.
95
+ - **Body** (`#333333`): The corporate body text color — the default reading grey.
96
+ - **Body Soft** (`#434343`): The blog body text color — a slightly warmer grey for long-form reading.
97
+ - **Muted** (`#767676`): Muted nav and utility text.
98
+ - **Muted Alt** (`#999999`): Secondary/tertiary grey for supporting labels.
99
+ - **Faint** (`#9d9d9d`): Lowest-emphasis meta — timestamps, dates, fine print.
100
+
101
+ ### Neutral & Surface
102
+ - **Pure White** (`#ffffff`): Page background, white cards, and text on dark/blue.
103
+ - **Surface Dark** (`#131313`): The near-black background of the immersive hero and dark sections.
104
+ - **Pure Black** (`#000000`): The deepest background layer beneath the dark sections.
105
+
106
+ ## 3. Typography Rules
107
+
108
+ ### Font Family
109
+ - **System**: `Pretendard` (loaded as named cuts — Pretendard-Bold, Pretendard-SemiBold, Pretendard-Medium) — used for all headlines, body, cards, and primary UI labels.
110
+ - **Utility**: `Roboto` — used only for the compact social/utility nav links (Blog, Telegram, Twitter, Github).
111
+
112
+ ### Hierarchy
113
+
114
+ | Role | Font | Size | Weight | Line Height | Notes |
115
+ |------|------|------|--------|-------------|-------|
116
+ | Display Hero | Pretendard | 60px | 700 (Bold cut) | 1.2 | Hero headline, white on dark |
117
+ | Section Headline | Pretendard | 41px | 600 (Medium cut) | tight | "Panacea", blue |
118
+ | Article / Page H1 | Pretendard | 36px | 500 | tight | Blog article title |
119
+ | Product Card Title | Pretendard | 26px | 600 (SemiBold cut) | tight | "MediBloc Wallet", "MediBloc Explorer" |
120
+ | Article Lead H3 | Pretendard | 22px | 400 | 1.3 | Blog section lead |
121
+ | Body | Pretendard | 16px | 400 | 1.5 | Standard reading text |
122
+ | Body Small | Pretendard | 15px | 400 | 1.6 | Secondary body, outlined-button labels |
123
+ | Label | Pretendard | 14px | 500 | 1.5 | Button / nav labels |
124
+ | Caption | Pretendard | 13px | 400 | normal | Fine print, meta, timestamps |
125
+
126
+ ### Principles
127
+ - **One font, many cuts**: Pretendard carries the whole system; hierarchy comes from named weight cuts (Bold → SemiBold → Medium → Regular), not from font-family switches.
128
+ - **Bold display, quiet body**: 60px Bold headlines persuade; 16px / 1.5 Regular body informs. The weight contrast is the primary hierarchy signal.
129
+ - **Hangul-first sizing**: Body sits at a generous 16px with 1.5 line-height for dense hangul legibility.
130
+ - **Roboto stays in its lane**: `Roboto` appears only on the utility/social nav; it never touches display or body.
131
+
132
+ ## 4. Component Stylings
133
+
134
+ ### Buttons
135
+
136
+ **Outlined Action (Primary)**
137
+ - Background: `#ffffff`
138
+ - Text: `#0066ff`
139
+ - Border: 2px solid `#0066ff`
140
+ - Radius: 4px
141
+ - Padding: 0px 50px
142
+ - Height: 62px
143
+ - Font: 15px Pretendard weight 400
144
+ - Shadow: `0 10px 20px rgba(0,0,0,0.07)`
145
+ - Use: Outlined primary action — "Validator Guide", "Delegator Guide", "Apply for Token swap"
146
+
147
+ **Visit Pill (Ghost on Dark)**
148
+ - Background: `#131313`
149
+ - Text: `#ffffff`
150
+ - Radius: 28px
151
+ - Padding: 14px
152
+ - Height: 48px
153
+ - Font: 14px Pretendard weight 500
154
+ - Shadow: `0 10px 20px rgba(0,0,0,0.07)`
155
+ - Use: Rounded "Visit" pill on the dark hero product cards
156
+
157
+ **Text Link Button**
158
+ - Text: `#0066ff`
159
+ - Radius: 3px
160
+ - Padding: 12px 24px
161
+ - Height: 39px
162
+ - Font: 15px Pretendard weight 500
163
+ - Use: Inline text-link button — "See more company news"
164
+
165
+ ### Cards & Containers
166
+
167
+ **Feature / Product Card**
168
+ - Background: `#ffffff`
169
+ - Text: `#333333`
170
+ - Radius: 8px
171
+ - Shadow: `0 10px 20px rgba(0,0,0,0.07)`
172
+ - Use: Product / feature card (MediBloc Wallet, MediBloc Explorer)
173
+
174
+ ### Badges
175
+
176
+ **Light-Blue Info Tag**
177
+ - Background: `#ebf1ff`
178
+ - Text: `#0066ff`
179
+ - Radius: 4px
180
+ - Padding: 4px 7px
181
+ - Font: 14px Pretendard weight 500
182
+ - Use: Light-blue info tag / highlight pill
183
+
184
+ ### Navigation
185
+ - Background: `#131313` (dark header)
186
+ - Text: `#ffffff`
187
+ - Font: 14px Roboto weight 500
188
+ - Active: blue `#0066ff` text on active item
189
+ - Use: Top nav / social links (Blog, Telegram, Twitter, Github)
190
+
191
+ ---
192
+
193
+ **Verified:** 2026-07-02 (omd:add-reference CREATE — Tier 1 live inspect, 2 brand-owned surfaces)
194
+ **Tier 1 sources:** https://medibloc.com/ , https://blog.medibloc.org/
195
+ **Tier 2 sources:** getdesign.md/medibloc (0 DESIGN.md files — not listed); styles.refero.design/?q=medibloc (no MediBloc-specific style — search returned only the default catalog)
196
+ **Conflicts unresolved:** none
197
+
198
+ ## 5. Layout Principles
199
+
200
+ ### Spacing System
201
+ - Base unit: ~4px, with a loose scale measured from live padding
202
+ - Scale: 4px, 7px, 12px, 14px, 24px, 25px, 50px
203
+ - Notable: outlined buttons carry a generous 50px horizontal padding, giving them a wide, confident hit area; small tags use 4px 7px
204
+
205
+ ### Grid & Container
206
+ - Centered single-column hero anchored by the 60px Pretendard Bold headline over a dark background
207
+ - Product entries (MediBloc Wallet, MediBloc Explorer, Panacea) presented as cards with a "Visit" pill each
208
+ - Full-width dark sections (`#131313`) alternate with white (`#ffffff`) content bands for a light/dark cadence
209
+ - Blog/content surfaces use a comfortable single reading column with near-black headings
210
+
211
+ ### Whitespace Philosophy
212
+ - **Section cadence over card stacks**: separation comes from alternating dark (`#131313`) and white (`#ffffff`) full-width bands, not from heavy borders or stacked shadows.
213
+ - **Airy hero, dense stats**: the hero breathes, while token/metric buttons pack tightly into rows.
214
+ - **Blue as the wayfinding cue**: because `#0066ff` is the only saturated action color, the eye always knows where the next step is.
215
+
216
+ ### Border Radius Scale
217
+ - Extra-small (3px): text-link buttons
218
+ - Small (4px): outlined buttons, info tags — the workhorse
219
+ - Medium (8px): feature / product cards
220
+ - Pill (28px): rounded "Visit" buttons
221
+ - Full (9999px): fully-round elements where used
222
+
223
+ ## 6. Depth & Elevation
224
+
225
+ | Level | Treatment | Use |
226
+ |-------|-----------|-----|
227
+ | Flat (Level 0) | No shadow | Page background, inline text, most surfaces |
228
+ | Section (Level 1) | Dark `#131313` band over `#000000` | Immersive hero / dark content sections |
229
+ | Ambient (Level 2) | `0 10px 20px rgba(0,0,0,0.07)` | Buttons, "Visit" pills, feature cards |
230
+
231
+ **Shadow Philosophy**: MediBloc's depth is intentionally minimal and atmospheric. A single soft ambient shadow (`0 10px 20px rgba(0,0,0,0.07)`) lifts buttons, pills, and cards a hair off the surface; there is no multi-layer elevation system. The real sense of depth comes from the alternating dark (`#131313` / `#000000`) and white (`#ffffff`) full-width bands, which frame content cinematically without stacking cards. When emphasis is needed, the system reaches for the blue (`#0066ff`) or the dark section, not heavier shadow.
232
+
233
+ ## 7. Do's and Don'ts
234
+
235
+ ### Do
236
+ - Set the whole system in Pretendard, using named weight cuts (Bold / SemiBold / Medium) for hierarchy
237
+ - Reserve blue (`#0066ff`) for interactive elements — CTAs, links, key metrics — keep it the single action color
238
+ - Use the outlined button (2px `#0066ff` border, transparent/white fill, 4px radius) as the primary action style
239
+ - Use near-black (`#1c1e1f`) or grey (`#333333`) for text instead of pure black on white
240
+ - Alternate dark (`#131313`) and white (`#ffffff`) full-width bands for section rhythm
241
+ - Apply the single ambient shadow (`0 10px 20px rgba(0,0,0,0.07)`) for gentle lift on buttons and cards
242
+ - Keep magenta (`#cc3366`) to tiny inline text links only — a rare counter-accent
243
+
244
+ ### Don't
245
+ - Spread blue (`#0066ff`) across decorative elements — it dilutes the single-action signal
246
+ - Introduce a second saturated brand color beyond the sparse magenta accent
247
+ - Use heavy, multi-layer shadows or stacked cards for depth — depth is section-based and minimal
248
+ - Set headlines in a light weight — display is always the Pretendard Bold/SemiBold cut
249
+ - Use `Roboto` for display or body — it is a utility/social-nav font only
250
+ - Use pure black (`#000000`) as body text — reserve it for the deepest section backgrounds
251
+ - Force a solid-blue-fill button where the outlined blue button is the brand's real primary
252
+
253
+ ## 8. Responsive Behavior
254
+
255
+ ### Breakpoints
256
+ | Name | Width | Key Changes |
257
+ |------|-------|-------------|
258
+ | Mobile | <640px | Single column, hero headline compresses, product cards stack |
259
+ | Tablet | 640-1024px | Moderate padding, 2-up product cards |
260
+ | Desktop | 1024-1440px | Full layout, centered hero, multi-column feature bands |
261
+
262
+ ### Touch Targets
263
+ - Outlined buttons at 62px height with 50px horizontal padding — a large, confident target
264
+ - "Visit" pills at 48px height, fully rounded for an unmistakable tap area
265
+ - Nav/social links spaced within the dark header
266
+
267
+ ### Collapsing Strategy
268
+ - Hero: 60px Pretendard headline scales down on mobile, Bold cut maintained
269
+ - Product cards (Wallet, Explorer, Panacea): multi-column → stacked single column
270
+ - Dark/white alternating sections maintain full-width treatment, reduce internal padding
271
+ - Blog/content column narrows while keeping the near-black heading hierarchy
272
+
273
+ ### Image Behavior
274
+ - Product illustrations and screenshots carry the soft ambient shadow at larger sizes
275
+ - Cards maintain 8px radius across breakpoints
276
+ - The dark hero maintains its `#131313` framing at all widths
277
+
278
+ ## 9. Agent Prompt Guide
279
+
280
+ ### Quick Color Reference
281
+ - Primary / interactive: MediBloc Blue (`#0066ff`)
282
+ - Secondary blue: Blue Alt (`#007aff`)
283
+ - Blog link blue: (`#0b7aff`)
284
+ - Light-blue tint: Surface Blue (`#ebf1ff`)
285
+ - Accent (tiny links): Magenta (`#cc3366`)
286
+ - Heading: Ink (`#1c1e1f`)
287
+ - Body: (`#333333`) / blog body (`#434343`)
288
+ - Muted: (`#767676`) / secondary grey (`#999999`) / faint meta (`#9d9d9d`)
289
+ - Canvas: Pure White (`#ffffff`)
290
+ - Dark section: (`#131313`) over Pure Black (`#000000`)
291
+
292
+ ### Example Component Prompts
293
+ - "Create a dark hero: `#131313` background, 60px Pretendard Bold white headline. Below it, product cards each with a rounded 'Visit' pill: `#131313` fill (ghost on dark), white text, 28px radius, 14px padding, 14px Pretendard, soft shadow `0 10px 20px rgba(0,0,0,0.07)`."
294
+ - "Design an outlined primary button: white `#ffffff` fill, `#0066ff` text, 2px solid `#0066ff` border, 4px radius, 0px 50px padding, 62px height, 15px Pretendard."
295
+ - "Build a feature card: white `#ffffff` background, 8px radius, `0 10px 20px rgba(0,0,0,0.07)` shadow. Title 26px Pretendard SemiBold `#1c1e1f`, body 16px Pretendard `#333333`."
296
+ - "Create a light-blue info tag: `#ebf1ff` background, `#0066ff` text, 4px radius, 4px 7px padding, 14px Pretendard."
297
+
298
+ ### Iteration Guide
299
+ 1. Pretendard everywhere; hierarchy from Bold/SemiBold/Medium cuts, not family switches
300
+ 2. Blue (`#0066ff`) is the single action color — don't spread it
301
+ 3. Primary button is outlined (2px `#0066ff`, 4px radius), not solid fill
302
+ 4. Depth is section-based: alternate `#131313` dark and `#ffffff` white bands; one ambient shadow only
303
+ 5. Text is `#1c1e1f`/`#333333`, never pure black on white
304
+ 6. Magenta (`#cc3366`) is a rare tiny-link accent only
305
+ 7. `Roboto` is utility/social nav only
306
+
307
+ ---
308
+
309
+ ## 10. Voice & Tone
310
+
311
+ MediBloc's voice is **confident, empowering, and rights-forward** — it frames health data as something that belongs to the patient, not the institution. The corporate hero line "Own your health data. It's rightfully yours." sets the register: declarative, ownership-framed, a little activist, never clinical or fear-based. On the Dr.Palette product side the tone shifts to **practical and reassuring** for clinicians ("모두가 그리는 클라우드 EMR" — "a cloud EMR everyone draws"), emphasizing speed, mobility, and ease over jargon. Both voices treat the reader — patient or doctor — as a capable owner of their own workflow and data.
312
+
313
+ | Context | Tone |
314
+ |---|---|
315
+ | Corporate hero | Declarative, ownership-framed. "Own your health data. It's rightfully yours." Confident, not hype. |
316
+ | Product (Dr.Palette) | Practical, reassuring, clinician-first. Emphasizes speed and mobility of the cloud EMR. |
317
+ | Feature descriptions | Benefit-first, plainly stated. Explains what the product removes (servers, downloads, upgrades). |
318
+ | Blockchain / Panacea | Technical but accessible. Metrics ("Circulating Supply") stated plainly, guides linked. |
319
+ | Notices / blog | Announcement register — dated, factual, forward-looking. |
320
+
321
+ **Voice samples (verbatim from live surfaces):**
322
+ - "Own your health data. It's rightfully yours." — corporate hero headline, medibloc.com. *(verified live 2026-07-02)*
323
+ - "모두가 그리는 클라우드EMR, 닥터팔레트 2.0 출시" — Dr.Palette 2.0 launch notice, blog.medibloc.org. *(verified live 2026-07-02)*
324
+ - "닥터팔레트는 웹 기반으로 서버를 별도로 구축하지 않아도 되며, 다운로드, 업그레이드를 위해 시간을 낭비하지 않아도 됩니다." — Dr.Palette feature copy (no servers, no downloads). *(verified live 2026-07-02)*
325
+
326
+ **Forbidden register**: fear-based health messaging, opaque medical/blockchain jargon left unexplained, aggressive sales urgency, exclamation-heavy hype.
327
+
328
+ ## 11. Brand Narrative
329
+
330
+ MediBloc (메디블록) was founded in **2017** by **고우균 (Allen Ko)** and **이은솔 (Eunsol Lee)** — a software engineer and a practicing radiologist — to solve a problem both had lived: a patient's medical records are fragmented across every hospital they have ever visited, owned by the institutions rather than the person. MediBloc's founding premise reframes that relationship: your health data is *"rightfully yours."* The company built the **Panacea** blockchain as the backbone for patient-owned records and the MED token economy around it.
331
+
332
+ That mission produced two consumer/clinical products. **Medipass (메디패스)** lets patients gather and carry their own records, prescriptions, and insurance claims on their phone. **Dr.Palette (닥터팔레트)** is a web-based **cloud EMR** for clinics — no on-premise server to build, no downloads or upgrade downtime, with a mobile companion that syncs to the chart in real time so a clinician can review or photograph a patient's condition from anywhere. In 2021 Dr.Palette 2.0 shipped with a stated focus on "speed, design, and usability." (The consumer brand has since been consolidated under the **Weavr (위버케어)** umbrella, which is why the official blog now resolves to weavrlog.care.)
333
+
334
+ What MediBloc refuses, visible in its design: the heavy, intimidating chrome and institutional blue-and-grey of legacy hospital software, and the fear-based framing of much health marketing. What it embraces: a clean white-and-blue system, a single confident action color, near-black-on-white typography set entirely in Pretendard, and copy that puts ownership and ease in the reader's hands.
335
+
336
+ ## 12. Principles
337
+
338
+ 1. **The data is the patient's.** Ownership is the founding idea. *UI implication:* frame health data around the person ("rightfully yours"); the primary CTA is always the user's next step, marked by the single blue.
339
+ 2. **One action, one color.** Blue (`#0066ff`) means "do this." *UI implication:* reserve saturated blue exclusively for interactive elements so the next step is never ambiguous.
340
+ 3. **Remove the friction, not the trust.** Dr.Palette's pitch is "no servers, no downloads, no upgrades." *UI implication:* surfaces should feel fast and light — minimal depth, generous spacing, clear labels — never heavy or gated.
341
+ 4. **Clean over clinical.** Reject legacy-hospital chrome. *UI implication:* white canvas, near-black text, Pretendard throughout; alternate dark and white bands for rhythm instead of stacked cards.
342
+ 5. **Consistent across surfaces.** Corporate, EMR, and blog share one type and color language. *UI implication:* Pretendard + blue + near-black hierarchy carry from medibloc.com to the Dr.Palette blog unchanged.
343
+
344
+ ## 13. Personas
345
+
346
+ *Personas below are fictional archetypes informed by publicly observable MediBloc / Dr.Palette user segments (Korean clinic operators, patients managing their own records, blockchain participants), not individual people.*
347
+
348
+ **김민재, 44, 서울.** A private-clinic director evaluating a cloud EMR to escape an aging on-premise system. Values that Dr.Palette needs no server build and updates itself; wants to review charts from his phone between rooms. Chose it for speed and the mobile companion.
349
+
350
+ **박수현, 31, 경기.** A patient who has bounced between hospitals and is tired of re-explaining her history. Uses Medipass to carry her own records and claims. Trusts MediBloc because the brand's whole premise is that the data is hers, not the hospital's.
351
+
352
+ **이도현, 29, 대전.** A developer and MED-token holder who follows the Panacea chain. Reads the validator and delegator guides, checks circulating supply, and appreciates that the technical metrics are stated plainly with guides linked rather than buried.
353
+
354
+ ## 14. States
355
+
356
+ | State | Treatment |
357
+ |---|---|
358
+ | **Empty (no records yet)** | White canvas. Single Ink (`#1c1e1f`) line at body size explaining nothing is stored yet, with one blue (`#0066ff`) CTA to connect a hospital or add a record. No clutter. |
359
+ | **Empty (chart list, none)** | Muted (`#767676`) single line: nothing here yet, plus a path to add. Calm and honest. |
360
+ | **Loading (record / chart fetch)** | Skeleton blocks at final dimensions on white, 8px radius. Flat pulse consistent with the minimal-depth system; no heavy shimmer. |
361
+ | **Loading (blockchain metric)** | Inline progress near the metric button; previous value stays visible until refreshed. |
362
+ | **Error (sync failed)** | Inline message in Ink (`#1c1e1f`) with a plain-language explanation and a retry — states what to do next, never a bare "오류". |
363
+ | **Error (form validation)** | Field-level message below the input describing what is valid, not just "필수". |
364
+ | **Success (record saved / claim submitted)** | Brief inline confirmation in a calm tone; next-step detail linked immediately below. No celebratory emoji. |
365
+ | **Skeleton** | White blocks at final dimensions, 8px radius, flat pulse. |
366
+ | **Disabled** | Faint (`#9d9d9d`) text on reduced-opacity surface; blue actions fade rather than turn grey to preserve brand read. |
367
+
368
+ ## 15. Motion & Easing
369
+
370
+ **Durations**:
371
+
372
+ | Token | Value | Use |
373
+ |---|---|---|
374
+ | `motion-fast` | 120ms | Hover, button press, focus |
375
+ | `motion-standard` | 200ms | Card / section reveal, sheet, dropdown |
376
+ | `motion-slow` | 320ms | Page-level transitions, dark-section crossfade |
377
+
378
+ **Easings**:
379
+
380
+ | Token | Curve | Use |
381
+ |---|---|---|
382
+ | `ease-enter` | `cubic-bezier(0.2, 0.6, 0.25, 1)` | Arriving — cards, sheets, pills |
383
+ | `ease-exit` | `cubic-bezier(0.4, 0.0, 1, 1)` | Dismissals |
384
+ | `ease-standard` | `cubic-bezier(0.25, 0.1, 0.25, 1)` | Two-way transitions |
385
+
386
+ **Motion rules**: Motion is functional and quiet, consistent with the clean, minimal-depth aesthetic. Buttons and "Visit" pills respond to press with a subtle opacity/scale shift; content and product cards fade-in from below at `motion-standard / ease-enter`. Transitioning into a dark (`#131313`) section uses a `motion-slow` background crossfade — cinematic once, not fidgety. No bounce or spring: a health-data product signals steadiness and trust. Under `prefers-reduced-motion: reduce`, all transitions collapse to instant and the product remains fully functional.
387
+
388
+ <!--
389
+ OmD v0.1 Sources — Philosophy Layer (sections 10–15)
390
+
391
+ Tier 1 live inspect (2026-07-02) via playwright getComputedStyle:
392
+ - https://medibloc.com/ (corporate, headless) — hero H2 "Own your health data. It's rightfully yours."
393
+ Pretendard-Bold 60px; "Panacea" H2 41px/600 Pretendard-Medium color rgb(0,102,255) #0066ff;
394
+ product card H3 "MediBloc Wallet"/"MediBloc Explorer" 26px Pretendard-SemiBold; outlined buttons
395
+ ("Validator Guide","Delegator Guide","Apply for Token swap") 2px solid rgb(0,102,255) #0066ff,
396
+ 4px radius, transparent fill, blue text; "Visit" pill radius 28px white text shadow
397
+ rgba(0,0,0,0.07) 0 10px 20px; "See more company news" text button #0066ff 3px radius;
398
+ body rgb(51,51,51) #333333; magenta links rgb(204,51,102) #cc3366; dark bg rgb(19,19,19) #131313
399
+ over rgb(0,0,0) #000000; muted rgb(153,153,153) #999999.
400
+ - https://blog.medibloc.org/timeline/products/drpalette/17876 (Dr.Palette/Weavr blog, headed Chrome
401
+ channel to pass the wp.com browser challenge; resolves to weavrlog.care) — Pretendard body
402
+ rgb(67,67,67) #434343; headings rgb(28,30,31) #1c1e1f; blue category/link rgb(11,122,255) #0b7aff;
403
+ muted nav rgb(118,118,118) #767676; date meta rgb(157,157,157) #9d9d9d.
404
+
405
+ Token-level claims (§1-9) are sourced from these live inspections. See web/references/medibloc/.verification.md
406
+ for the full raw-sample proof block and the Tier-2 conflict matrix.
407
+
408
+ Voice samples (§10): the English hero line is verbatim from medibloc.com; the Dr.Palette Korean lines
409
+ are verbatim from the blog post body captured live.
410
+
411
+ Brand narrative (§11): MediBloc founded 2017 by 고우균 (Allen Ko) and 이은솔 (Eunsol Lee); Panacea
412
+ blockchain, MED token, Medipass, and Dr.Palette cloud EMR are the company's documented products;
413
+ Dr.Palette 2.0 launched 2021 (per the captured launch notice). The consumer brand's consolidation under
414
+ Weavr (위버케어) is inferred from the live redirect blog.medibloc.org → weavrlog.care observed this turn.
415
+ These founding details beyond the captured pages are widely documented public facts, not quoted from a
416
+ verified MediBloc statement in this turn.
417
+
418
+ Personas (§13) are fictional archetypes informed by publicly observable MediBloc/Dr.Palette user
419
+ segments (clinic operators, patients, token holders). Names are illustrative; they do not refer to
420
+ real people.
421
+
422
+ Interpretive claims (e.g., "one action, one color", "clean over clinical as a rejection of legacy
423
+ hospital chrome") are editorial readings connecting MediBloc's observed design to its positioning,
424
+ not directly sourced MediBloc statements.
425
+ -->