@whykusanagi/corrupted-theme 0.1.2 → 0.1.4

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 (37) hide show
  1. package/CHANGELOG.md +157 -0
  2. package/README.md +6 -0
  3. package/docs/CHARACTER_LEVEL_CORRUPTION.md +264 -0
  4. package/docs/CORRUPTION_PHRASES.md +529 -0
  5. package/docs/ROADMAP.md +266 -0
  6. package/docs/STYLE_GUIDE.md +605 -0
  7. package/docs/brand/BRAND_OVERVIEW.md +413 -0
  8. package/docs/brand/COLOR_SYSTEM.md +583 -0
  9. package/docs/brand/DESIGN_TOKENS.md +1009 -0
  10. package/docs/brand/TRANSLATION_FAILURE_AESTHETIC.md +525 -0
  11. package/docs/brand/TYPOGRAPHY.md +624 -0
  12. package/docs/components/ANIMATION_GUIDELINES.md +901 -0
  13. package/docs/components/COMPONENT_LIBRARY.md +1061 -0
  14. package/docs/components/GLASSMORPHISM.md +602 -0
  15. package/docs/components/INTERACTIVE_STATES.md +766 -0
  16. package/docs/governance/CONTRIBUTION_GUIDELINES.md +593 -0
  17. package/docs/governance/DESIGN_SYSTEM_GOVERNANCE.md +451 -0
  18. package/docs/governance/VERSION_MANAGEMENT.md +447 -0
  19. package/docs/governance/VERSION_REFERENCES.md +229 -0
  20. package/docs/platforms/COMPONENT_MAPPING.md +579 -0
  21. package/docs/platforms/NPM_PACKAGE.md +854 -0
  22. package/docs/platforms/WEB_IMPLEMENTATION.md +1221 -0
  23. package/docs/standards/ACCESSIBILITY.md +715 -0
  24. package/docs/standards/ANTI_PATTERNS.md +554 -0
  25. package/docs/standards/SPACING_SYSTEM.md +549 -0
  26. package/examples/button.html +1 -1
  27. package/examples/card.html +1 -1
  28. package/examples/form.html +1 -1
  29. package/examples/index.html +2 -2
  30. package/examples/layout.html +1 -1
  31. package/examples/nikke-team-builder.html +1 -1
  32. package/examples/showcase-complete.html +840 -15
  33. package/examples/showcase.html +1 -1
  34. package/package.json +16 -3
  35. package/src/css/components.css +676 -0
  36. package/src/lib/character-corruption.js +563 -0
  37. package/src/lib/components.js +283 -0
@@ -0,0 +1,624 @@
1
+ # Celeste Brand System - Typography
2
+
3
+ **Version**: 1.0.0
4
+ **Last Updated**: 2025-12-13
5
+ **Status**: 🔴 **CRITICAL FOUNDATION DOCUMENT**
6
+
7
+ ---
8
+
9
+ ## Overview
10
+
11
+ Celeste's typography system balances **technical clarity** with **corrupted aesthetics**:
12
+ - **System fonts** for cross-platform consistency
13
+ - **Japanese character support** (Kanji, Katakana, Hiragana)
14
+ - **Monospace defaults** for CLI terminal
15
+ - **Responsive scale** (mobile to desktop)
16
+ - **Semantic hierarchy** (H1-H6, body, labels)
17
+
18
+ ---
19
+
20
+ ## Font Families
21
+
22
+ ### Base (Web/UI)
23
+
24
+ **Stack**:
25
+ ```css
26
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
27
+ 'Helvetica Neue', Arial, sans-serif;
28
+ ```
29
+
30
+ **Rationale**:
31
+ - **System-native performance** (no web font loading)
32
+ - **Cross-platform consistency** (macOS, Windows, Android)
33
+ - **Excellent Unicode support** (including Japanese)
34
+ - **High readability** at small sizes
35
+
36
+ **Token**: `--font-family-base`
37
+
38
+ ### Japanese Support
39
+
40
+ **Stack**:
41
+ ```css
42
+ font-family: 'Hiragino Sans', 'Yu Gothic', 'Meiryo',
43
+ 'MS PGothic', sans-serif;
44
+ ```
45
+
46
+ **Fallback Chain**:
47
+ 1. **Hiragino Sans** (macOS default, excellent rendering)
48
+ 2. **Yu Gothic** (Windows 10+, modern)
49
+ 3. **Meiryo** (Windows 7-10, readable)
50
+ 4. **MS PGothic** (Legacy Windows, last resort)
51
+ 5. **sans-serif** (System fallback)
52
+
53
+ **Token**: `--font-family-japanese`
54
+
55
+ **Combined Stack** (for mixed English/Japanese):
56
+ ```css
57
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
58
+ 'Hiragino Sans', 'Yu Gothic', 'Meiryo',
59
+ 'Helvetica Neue', Arial, sans-serif;
60
+ ```
61
+
62
+ ### Monospace (CLI/Code)
63
+
64
+ **Stack**:
65
+ ```css
66
+ font-family: 'SF Mono', 'Monaco', 'Consolas',
67
+ 'Liberation Mono', monospace;
68
+ ```
69
+
70
+ **Rationale**:
71
+ - **SF Mono** (macOS default, best terminal font)
72
+ - **Monaco** (macOS legacy)
73
+ - **Consolas** (Windows default)
74
+ - **Liberation Mono** (Linux fallback)
75
+ - **monospace** (System fallback)
76
+
77
+ **Token**: `--font-family-monospace`
78
+
79
+ **CLI Usage**: Terminal automatically uses system monospace font
80
+ - No font-family specification needed in Go/Bubble Tea
81
+ - UTF-8 must be enabled for Japanese character rendering
82
+
83
+ ---
84
+
85
+ ## Font Size Scale
86
+
87
+ ### Responsive Typography (Web)
88
+
89
+ Using **rem units** (1rem = 16px base) for scalability.
90
+
91
+ | Token | Size (rem) | Size (px) | Use Case |
92
+ |-------|------------|-----------|----------|
93
+ | `font-size-xs` | 0.75rem | 12px | Captions, timestamps, metadata |
94
+ | `font-size-sm` | 0.875rem | 14px | Small labels, secondary text |
95
+ | `font-size-base` | 1rem | 16px | Body text (default) |
96
+ | `font-size-lg` | 1.125rem | 18px | Large body text, subheadings |
97
+ | `font-size-xl` | 1.25rem | 20px | H6, small headers |
98
+ | `font-size-2xl` | 1.5rem | 24px | H5 |
99
+ | `font-size-3xl` | 1.875rem | 30px | H4 |
100
+ | `font-size-4xl` | 2.25rem | 36px | H3 |
101
+ | `font-size-5xl` | 3rem | 48px | H2 |
102
+ | `font-size-6xl` | 3.75rem | 60px | H1, hero text |
103
+
104
+ **Responsive Scaling**:
105
+ ```css
106
+ /* Mobile (320px-640px) */
107
+ html { font-size: 14px; } /* Base = 14px */
108
+
109
+ /* Tablet (641px-1024px) */
110
+ @media (min-width: 641px) {
111
+ html { font-size: 15px; } /* Base = 15px */
112
+ }
113
+
114
+ /* Desktop (1025px+) */
115
+ @media (min-width: 1025px) {
116
+ html { font-size: 16px; } /* Base = 16px */
117
+ }
118
+ ```
119
+
120
+ This ensures text scales proportionally across breakpoints.
121
+
122
+ ### Fixed Typography (CLI)
123
+
124
+ Terminal font size is **controlled by terminal emulator**, not the application.
125
+
126
+ **Typical defaults**:
127
+ - **macOS Terminal.app**: 12pt Monaco
128
+ - **iTerm2**: 12pt SF Mono
129
+ - **Windows Terminal**: 12pt Consolas
130
+ - **VS Code Terminal**: 14pt Monaco
131
+
132
+ **Celeste CLI font size strategy**:
133
+ - Use terminal's default size
134
+ - Scale with relative units (line count, not px)
135
+ - Assume 80-120 character terminal width
136
+
137
+ ---
138
+
139
+ ## Font Weight Hierarchy
140
+
141
+ | Token | Weight | Numeric | Use Case |
142
+ |-------|--------|---------|----------|
143
+ | `font-weight-normal` | normal | 400 | Body text, default |
144
+ | `font-weight-medium` | medium | 500 | Slight emphasis, labels |
145
+ | `font-weight-semibold` | semibold | 600 | Section headers, buttons |
146
+ | `font-weight-bold` | bold | 700 | Strong emphasis, H3-H6 |
147
+ | `font-weight-black` | black | 900 | Hero text, H1-H2, dashboard titles |
148
+
149
+ **Usage Guidelines**:
150
+ - **Normal (400)**: All body text, paragraphs, descriptions
151
+ - **Medium (500)**: Input labels, navigation links, breadcrumbs
152
+ - **Semibold (600)**: Section headers, card titles, button text
153
+ - **Bold (700)**: Main headings (H3-H6), emphasis within text
154
+ - **Black (900)**: Hero headings (H1-H2), dashboard headers
155
+
156
+ **Japanese Text Weights**:
157
+ - Japanese fonts often have **limited weight options**
158
+ - Stick to 400 (normal) and 700 (bold) for maximum compatibility
159
+ - Avoid 900 (black) for Japanese-only text
160
+
161
+ ---
162
+
163
+ ## Line Height (Leading)
164
+
165
+ | Token | Value | Use Case |
166
+ |-------|-------|----------|
167
+ | `line-height-tight` | 1.2 | Headers (H1-H6), tight spacing |
168
+ | `line-height-normal` | 1.5 | Body text (default), optimal readability |
169
+ | `line-height-relaxed` | 1.8 | Long-form content, documentation |
170
+
171
+ **Guidelines**:
172
+ - **Headers**: Use `1.2` to maintain visual density
173
+ - **Body text**: Use `1.5` for comfortable reading
174
+ - **Long-form**: Use `1.8` for reduced eye strain
175
+
176
+ **CLI Line Height**:
177
+ - Terminal line height is **fixed** (typically 1.2-1.4)
178
+ - Not customizable in Go/Bubble Tea
179
+ - Design for 1-2 line spacing between sections
180
+
181
+ ---
182
+
183
+ ## Letter Spacing (Tracking)
184
+
185
+ | Token | Value | Use Case |
186
+ |-------|-------|----------|
187
+ | `letter-spacing-tighter` | -0.05em | Large headers (H1-H2) |
188
+ | `letter-spacing-tight` | -0.025em | Medium headers (H3-H4) |
189
+ | `letter-spacing-normal` | 0 | Body text (default) |
190
+ | `letter-spacing-wide` | 0.025em | Buttons, labels (all caps) |
191
+ | `letter-spacing-wider` | 0.05em | Emphasized all caps text |
192
+
193
+ **Guidelines**:
194
+ - **Large headers**: Tighten slightly (-0.05em) for visual balance
195
+ - **Body text**: No adjustment (0)
196
+ - **All caps**: Increase spacing (0.025em) for legibility
197
+ - **Japanese text**: No letter-spacing (always use 0)
198
+
199
+ ---
200
+
201
+ ## Typography Patterns
202
+
203
+ ### Heading System
204
+
205
+ #### H1 (Hero)
206
+
207
+ ```css
208
+ h1, .text-h1 {
209
+ font-size: var(--font-size-6xl); /* 60px / 3.75rem */
210
+ font-weight: var(--font-weight-black); /* 900 */
211
+ line-height: var(--line-height-tight); /* 1.2 */
212
+ letter-spacing: var(--letter-spacing-tighter); /* -0.05em */
213
+ color: var(--color-text-primary); /* #ffffff */
214
+ }
215
+ ```
216
+
217
+ **Use case**: Page hero, landing page title
218
+
219
+ #### H2 (Section Title)
220
+
221
+ ```css
222
+ h2, .text-h2 {
223
+ font-size: var(--font-size-5xl); /* 48px / 3rem */
224
+ font-weight: var(--font-weight-black); /* 900 */
225
+ line-height: var(--line-height-tight); /* 1.2 */
226
+ letter-spacing: var(--letter-spacing-tighter); /* -0.05em */
227
+ color: var(--color-accent-primary); /* #d94f90 */
228
+ }
229
+ ```
230
+
231
+ **Use case**: Dashboard title, main section headers
232
+
233
+ #### H3 (Subsection Title)
234
+
235
+ ```css
236
+ h3, .text-h3 {
237
+ font-size: var(--font-size-4xl); /* 36px / 2.25rem */
238
+ font-weight: var(--font-weight-bold); /* 700 */
239
+ line-height: var(--line-height-tight); /* 1.2 */
240
+ letter-spacing: var(--letter-spacing-tight); /* -0.025em */
241
+ color: var(--color-text-primary); /* #ffffff */
242
+ }
243
+ ```
244
+
245
+ **Use case**: Card titles, modal headers
246
+
247
+ #### H4-H6 (Smaller Headers)
248
+
249
+ ```css
250
+ h4, .text-h4 {
251
+ font-size: var(--font-size-3xl); /* 30px / 1.875rem */
252
+ font-weight: var(--font-weight-bold); /* 700 */
253
+ line-height: var(--line-height-normal); /* 1.5 */
254
+ color: var(--color-text-primary);
255
+ }
256
+
257
+ h5, .text-h5 {
258
+ font-size: var(--font-size-2xl); /* 24px / 1.5rem */
259
+ font-weight: var(--font-weight-semibold); /* 600 */
260
+ line-height: var(--line-height-normal);
261
+ color: var(--color-text-primary);
262
+ }
263
+
264
+ h6, .text-h6 {
265
+ font-size: var(--font-size-xl); /* 20px / 1.25rem */
266
+ font-weight: var(--font-weight-semibold); /* 600 */
267
+ line-height: var(--line-height-normal);
268
+ color: var(--color-text-secondary); /* 70% opacity */
269
+ }
270
+ ```
271
+
272
+ ### Body Text
273
+
274
+ #### Default Body
275
+
276
+ ```css
277
+ body, p, .text-base {
278
+ font-size: var(--font-size-base); /* 16px / 1rem */
279
+ font-weight: var(--font-weight-normal); /* 400 */
280
+ line-height: var(--line-height-normal); /* 1.5 */
281
+ color: var(--color-text-primary); /* #ffffff */
282
+ }
283
+ ```
284
+
285
+ #### Small Text
286
+
287
+ ```css
288
+ .text-sm {
289
+ font-size: var(--font-size-sm); /* 14px / 0.875rem */
290
+ font-weight: var(--font-weight-normal); /* 400 */
291
+ line-height: var(--line-height-normal); /* 1.5 */
292
+ color: var(--color-text-secondary); /* 70% opacity */
293
+ }
294
+ ```
295
+
296
+ #### Captions/Metadata
297
+
298
+ ```css
299
+ .text-xs {
300
+ font-size: var(--font-size-xs); /* 12px / 0.75rem */
301
+ font-weight: var(--font-weight-normal); /* 400 */
302
+ line-height: var(--line-height-normal); /* 1.5 */
303
+ color: var(--color-text-tertiary); /* 50% opacity */
304
+ }
305
+ ```
306
+
307
+ ### Labels & Inputs
308
+
309
+ ```css
310
+ label, .text-label {
311
+ font-size: var(--font-size-sm); /* 14px */
312
+ font-weight: var(--font-weight-medium); /* 500 */
313
+ line-height: var(--line-height-normal);
314
+ color: var(--color-text-primary);
315
+ letter-spacing: var(--letter-spacing-normal);
316
+ }
317
+ ```
318
+
319
+ ### Buttons
320
+
321
+ ```css
322
+ button, .btn {
323
+ font-size: var(--font-size-base); /* 16px */
324
+ font-weight: var(--font-weight-semibold); /* 600 */
325
+ line-height: var(--line-height-tight); /* 1.2 */
326
+ letter-spacing: var(--letter-spacing-wide); /* 0.025em */
327
+ text-transform: none; /* Preserve original case */
328
+ }
329
+ ```
330
+
331
+ ---
332
+
333
+ ## Japanese Typography
334
+
335
+ ### Kanji/Kana Rendering
336
+
337
+ **Font Stack for Mixed Text**:
338
+ ```css
339
+ body {
340
+ font-family:
341
+ -apple-system, BlinkMacSystemFont,
342
+ 'Hiragino Sans', 'Yu Gothic',
343
+ 'Segoe UI', Roboto, sans-serif;
344
+ }
345
+ ```
346
+
347
+ **Line Height Considerations**:
348
+ - Japanese characters have **larger vertical height** than Latin
349
+ - Use `line-height: 1.8` for Japanese-heavy text
350
+ - Default `1.5` is acceptable for mixed English/Japanese
351
+
352
+ **Font Weight Limitations**:
353
+ - Many Japanese fonts only support **400 (normal)** and **700 (bold)**
354
+ - Avoid using 500, 600, 900 for Japanese-only text
355
+ - System will fall back to closest available weight
356
+
357
+ ### Corruption Text Styling
358
+
359
+ ```css
360
+ .corrupted-text {
361
+ font-size: inherit; /* Match surrounding text */
362
+ font-weight: inherit; /* Match surrounding weight */
363
+ color: var(--color-corruption-magenta); /* Pink for Katakana */
364
+ }
365
+
366
+ .corrupted-text.kanji {
367
+ color: var(--color-corruption-purple); /* Purple for Kanji */
368
+ font-weight: 700; /* Make Kanji bold for emphasis */
369
+ }
370
+
371
+ .corrupted-text.romaji {
372
+ color: var(--color-corruption-cyan); /* Cyan for Romaji */
373
+ font-style: italic; /* Optional: italicize Romaji */
374
+ }
375
+ ```
376
+
377
+ ---
378
+
379
+ ## CLI (Terminal) Typography
380
+
381
+ ### Terminal Font Constraints
382
+
383
+ **Font Family**:
384
+ - **Not customizable** by application
385
+ - User sets terminal font (SF Mono, Consolas, etc.)
386
+ - Celeste CLI works with any monospace font
387
+
388
+ **Font Size**:
389
+ - **Not customizable** by application
390
+ - User sets terminal font size (10pt-16pt typical)
391
+ - Design for 12pt-14pt as baseline
392
+
393
+ **UTF-8 Encoding**:
394
+ - **REQUIRED** for Japanese characters
395
+ - Set in terminal preferences: `export LANG=en_US.UTF-8`
396
+ - Celeste CLI validates encoding on startup
397
+
398
+ ### Terminal Text Hierarchy
399
+
400
+ **Dashboard Headers** (use ANSI bold + color):
401
+ ```go
402
+ style := lipgloss.NewStyle().
403
+ Bold(true).
404
+ Foreground(lipgloss.Color("#d94f90"))
405
+ ```
406
+
407
+ **Section Headers** (uppercase + block characters):
408
+ ```
409
+ █ LIFETIME CORRUPTION:
410
+ ```
411
+
412
+ **Body Text** (default terminal style):
413
+ ```go
414
+ style := lipgloss.NewStyle().
415
+ Foreground(lipgloss.Color("#ffffff"))
416
+ ```
417
+
418
+ **Metadata** (dimmed/gray):
419
+ ```go
420
+ style := lipgloss.NewStyle().
421
+ Foreground(lipgloss.Color("240")) // ANSI gray
422
+ ```
423
+
424
+ ---
425
+
426
+ ## Responsive Typography
427
+
428
+ ### Mobile (320px-640px)
429
+
430
+ ```css
431
+ @media (max-width: 640px) {
432
+ html {
433
+ font-size: 14px; /* Base = 14px */
434
+ }
435
+
436
+ h1 { font-size: 2rem; } /* 28px instead of 60px */
437
+ h2 { font-size: 1.5rem; } /* 21px instead of 48px */
438
+ h3 { font-size: 1.25rem; } /* 17.5px instead of 36px */
439
+
440
+ body {
441
+ line-height: 1.6; /* Slightly more spacing for mobile */
442
+ }
443
+ }
444
+ ```
445
+
446
+ ### Tablet (641px-1024px)
447
+
448
+ ```css
449
+ @media (min-width: 641px) and (max-width: 1024px) {
450
+ html {
451
+ font-size: 15px; /* Base = 15px */
452
+ }
453
+
454
+ h1 { font-size: 3rem; } /* 45px */
455
+ h2 { font-size: 2.5rem; } /* 37.5px */
456
+ h3 { font-size: 2rem; } /* 30px */
457
+ }
458
+ ```
459
+
460
+ ### Desktop (1025px+)
461
+
462
+ ```css
463
+ @media (min-width: 1025px) {
464
+ html {
465
+ font-size: 16px; /* Base = 16px (default) */
466
+ }
467
+
468
+ /* Use default font-size-* tokens */
469
+ }
470
+ ```
471
+
472
+ ---
473
+
474
+ ## Accessibility
475
+
476
+ ### Font Size Minimum
477
+
478
+ **WCAG Success Criterion 1.4.4** (Resize Text):
479
+ - Text must be resizable up to **200%** without loss of content
480
+ - Use `rem` or `em` units (NOT fixed `px`)
481
+ - Celeste complies: All sizes use `rem` units
482
+
483
+ ### Contrast Requirements
484
+
485
+ See `COLOR_SYSTEM.md` for full contrast specifications.
486
+
487
+ **Summary**:
488
+ - ✅ White text on `#0a0612`: **21:1** (AAA)
489
+ - ✅ All accent colors on dark bg: **>4.5:1** (AA minimum)
490
+
491
+ ### Line Length
492
+
493
+ **Optimal readability**: 45-75 characters per line
494
+
495
+ **Implementation**:
496
+ ```css
497
+ .content-block {
498
+ max-width: 65ch; /* ~65 characters */
499
+ margin: 0 auto;
500
+ }
501
+ ```
502
+
503
+ ### Font Smoothing (Web)
504
+
505
+ ```css
506
+ body {
507
+ -webkit-font-smoothing: antialiased;
508
+ -moz-osx-font-smoothing: grayscale;
509
+ text-rendering: optimizeLegibility;
510
+ }
511
+ ```
512
+
513
+ ---
514
+
515
+ ## CSS Implementation
516
+
517
+ ### Complete Typography System
518
+
519
+ ```css
520
+ :root {
521
+ /* Font Families */
522
+ --font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI',
523
+ Roboto, 'Hiragino Sans', 'Yu Gothic',
524
+ 'Helvetica Neue', Arial, sans-serif;
525
+ --font-family-japanese: 'Hiragino Sans', 'Yu Gothic', 'Meiryo',
526
+ 'MS PGothic', sans-serif;
527
+ --font-family-monospace: 'SF Mono', 'Monaco', 'Consolas',
528
+ 'Liberation Mono', monospace;
529
+
530
+ /* Font Sizes */
531
+ --font-size-xs: 0.75rem;
532
+ --font-size-sm: 0.875rem;
533
+ --font-size-base: 1rem;
534
+ --font-size-lg: 1.125rem;
535
+ --font-size-xl: 1.25rem;
536
+ --font-size-2xl: 1.5rem;
537
+ --font-size-3xl: 1.875rem;
538
+ --font-size-4xl: 2.25rem;
539
+ --font-size-5xl: 3rem;
540
+ --font-size-6xl: 3.75rem;
541
+
542
+ /* Font Weights */
543
+ --font-weight-normal: 400;
544
+ --font-weight-medium: 500;
545
+ --font-weight-semibold: 600;
546
+ --font-weight-bold: 700;
547
+ --font-weight-black: 900;
548
+
549
+ /* Line Heights */
550
+ --line-height-tight: 1.2;
551
+ --line-height-normal: 1.5;
552
+ --line-height-relaxed: 1.8;
553
+
554
+ /* Letter Spacing */
555
+ --letter-spacing-tighter: -0.05em;
556
+ --letter-spacing-tight: -0.025em;
557
+ --letter-spacing-normal: 0;
558
+ --letter-spacing-wide: 0.025em;
559
+ --letter-spacing-wider: 0.05em;
560
+ }
561
+
562
+ /* Base Styles */
563
+ body {
564
+ font-family: var(--font-family-base);
565
+ font-size: var(--font-size-base);
566
+ font-weight: var(--font-weight-normal);
567
+ line-height: var(--line-height-normal);
568
+ color: var(--color-text-primary);
569
+ -webkit-font-smoothing: antialiased;
570
+ -moz-osx-font-smoothing: grayscale;
571
+ }
572
+
573
+ /* Headings */
574
+ h1 {
575
+ font-size: var(--font-size-6xl);
576
+ font-weight: var(--font-weight-black);
577
+ line-height: var(--line-height-tight);
578
+ letter-spacing: var(--letter-spacing-tighter);
579
+ color: var(--color-text-primary);
580
+ }
581
+
582
+ h2 {
583
+ font-size: var(--font-size-5xl);
584
+ font-weight: var(--font-weight-black);
585
+ line-height: var(--line-height-tight);
586
+ letter-spacing: var(--letter-spacing-tighter);
587
+ color: var(--color-accent-primary);
588
+ }
589
+
590
+ h3 {
591
+ font-size: var(--font-size-4xl);
592
+ font-weight: var(--font-weight-bold);
593
+ line-height: var(--line-height-tight);
594
+ letter-spacing: var(--letter-spacing-tight);
595
+ color: var(--color-text-primary);
596
+ }
597
+
598
+ /* Body */
599
+ p {
600
+ font-size: var(--font-size-base);
601
+ font-weight: var(--font-weight-normal);
602
+ line-height: var(--line-height-normal);
603
+ color: var(--color-text-primary);
604
+ }
605
+
606
+ /* Code/Monospace */
607
+ code, pre {
608
+ font-family: var(--font-family-monospace);
609
+ font-size: 0.9em;
610
+ }
611
+ ```
612
+
613
+ ---
614
+
615
+ ## Related Documents
616
+
617
+ - **BRAND_OVERVIEW.md** - High-level brand identity
618
+ - **DESIGN_TOKENS.md** - Complete token system
619
+ - **COLOR_SYSTEM.md** - Color palette with WCAG compliance
620
+ - **ACCESSIBILITY.md** - Complete accessibility guidelines
621
+
622
+ ---
623
+
624
+ **Status**: ✅ **TYPOGRAPHY SYSTEM COMPLETE** - Ready for implementation