@refrakt-md/lumina 0.32.0 → 0.34.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 (142) hide show
  1. package/base.css +29 -29
  2. package/contracts/structures.json +58 -60
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js.map +1 -1
  5. package/dist/icons.d.ts.map +1 -1
  6. package/dist/icons.js +57 -57
  7. package/dist/icons.js.map +1 -1
  8. package/dist/presets/catppuccin.js.map +1 -1
  9. package/dist/presets/dracula.js.map +1 -1
  10. package/dist/presets/gruvbox.js.map +1 -1
  11. package/dist/presets/niwaki.js.map +1 -1
  12. package/dist/presets/nord.js.map +1 -1
  13. package/dist/presets/one-dark.js.map +1 -1
  14. package/dist/presets/solarized.js.map +1 -1
  15. package/dist/presets/tideline.d.ts.map +1 -1
  16. package/dist/presets/tideline.js +20 -4
  17. package/dist/presets/tideline.js.map +1 -1
  18. package/dist/presets/tokyo-night.js.map +1 -1
  19. package/dist/tokens.js.map +1 -1
  20. package/index.css +124 -124
  21. package/package.json +5 -5
  22. package/presets.json +61 -13
  23. package/styles/base/attributes.css +32 -13
  24. package/styles/dimensions/checklist.css +45 -46
  25. package/styles/dimensions/cover.css +71 -51
  26. package/styles/dimensions/density.css +69 -65
  27. package/styles/dimensions/frame.css +116 -57
  28. package/styles/dimensions/metadata.css +110 -103
  29. package/styles/dimensions/motion.css +42 -13
  30. package/styles/dimensions/reading.css +27 -27
  31. package/styles/dimensions/sections.css +44 -45
  32. package/styles/dimensions/sequence.css +56 -57
  33. package/styles/dimensions/state.css +8 -2
  34. package/styles/dimensions/substrate.css +82 -58
  35. package/styles/dimensions/surfaces.css +65 -62
  36. package/styles/elements/blockquote.css +24 -25
  37. package/styles/elements/code.css +72 -71
  38. package/styles/elements/table.css +36 -37
  39. package/styles/global.css +163 -121
  40. package/styles/layouts/blog.css +219 -218
  41. package/styles/layouts/default.css +168 -167
  42. package/styles/layouts/docs.css +121 -122
  43. package/styles/layouts/mobile.css +54 -55
  44. package/styles/layouts/on-this-page.css +46 -47
  45. package/styles/layouts/plan.css +248 -247
  46. package/styles/layouts/search.css +142 -140
  47. package/styles/layouts/split.css +45 -45
  48. package/styles/layouts/theme-toggle.css +33 -31
  49. package/styles/layouts/version-switcher.css +38 -37
  50. package/styles/runes/accordion.css +90 -81
  51. package/styles/runes/aggregate.css +50 -39
  52. package/styles/runes/annotate.css +46 -45
  53. package/styles/runes/api.css +22 -23
  54. package/styles/runes/audio.css +140 -141
  55. package/styles/runes/badge.css +12 -13
  56. package/styles/runes/bar.css +4 -5
  57. package/styles/runes/bento.css +73 -62
  58. package/styles/runes/bg.css +62 -47
  59. package/styles/runes/blog.css +89 -90
  60. package/styles/runes/bond.css +49 -50
  61. package/styles/runes/breadcrumb.css +34 -35
  62. package/styles/runes/budget.css +126 -127
  63. package/styles/runes/bug.css +28 -27
  64. package/styles/runes/card.css +63 -60
  65. package/styles/runes/carousel.css +15 -15
  66. package/styles/runes/cast.css +50 -51
  67. package/styles/runes/changelog.css +45 -46
  68. package/styles/runes/character.css +31 -32
  69. package/styles/runes/chart.css +194 -106
  70. package/styles/runes/codegroup.css +109 -100
  71. package/styles/runes/collection.css +87 -86
  72. package/styles/runes/compare.css +38 -39
  73. package/styles/runes/comparison.css +205 -179
  74. package/styles/runes/conversation.css +36 -33
  75. package/styles/runes/cta.css +135 -132
  76. package/styles/runes/datatable.css +84 -83
  77. package/styles/runes/decision.css +25 -26
  78. package/styles/runes/design-context.css +21 -23
  79. package/styles/runes/details.css +26 -27
  80. package/styles/runes/diagram.css +28 -29
  81. package/styles/runes/diff.css +75 -72
  82. package/styles/runes/drawer.css +276 -198
  83. package/styles/runes/embed.css +20 -21
  84. package/styles/runes/event.css +35 -36
  85. package/styles/runes/expand.css +43 -34
  86. package/styles/runes/faction.css +47 -48
  87. package/styles/runes/feature.css +119 -112
  88. package/styles/runes/figure.css +11 -12
  89. package/styles/runes/file-ref.css +11 -13
  90. package/styles/runes/form.css +155 -154
  91. package/styles/runes/gallery.css +59 -60
  92. package/styles/runes/grid.css +10 -7
  93. package/styles/runes/hero.css +189 -185
  94. package/styles/runes/hint.css +57 -58
  95. package/styles/runes/howto.css +62 -64
  96. package/styles/runes/itinerary.css +133 -134
  97. package/styles/runes/juxtapose.css +83 -82
  98. package/styles/runes/lore.css +32 -34
  99. package/styles/runes/map.css +106 -99
  100. package/styles/runes/mediatext.css +30 -27
  101. package/styles/runes/milestone.css +98 -97
  102. package/styles/runes/mockup.css +338 -335
  103. package/styles/runes/nav.css +465 -450
  104. package/styles/runes/organization.css +23 -20
  105. package/styles/runes/page-section.css +14 -15
  106. package/styles/runes/pagination.css +45 -44
  107. package/styles/runes/palette.css +78 -80
  108. package/styles/runes/placeholder.css +8 -9
  109. package/styles/runes/plan-history.css +160 -161
  110. package/styles/runes/plan-progress.css +15 -16
  111. package/styles/runes/plan-ref.css +32 -23
  112. package/styles/runes/playlist.css +106 -107
  113. package/styles/runes/plot.css +92 -91
  114. package/styles/runes/preview.css +152 -149
  115. package/styles/runes/pricing.css +133 -123
  116. package/styles/runes/progress.css +32 -27
  117. package/styles/runes/pullquote.css +89 -90
  118. package/styles/runes/realm.css +47 -48
  119. package/styles/runes/recipe.css +112 -114
  120. package/styles/runes/relationships.css +77 -76
  121. package/styles/runes/reveal.css +90 -79
  122. package/styles/runes/sandbox.css +59 -60
  123. package/styles/runes/section.css +57 -50
  124. package/styles/runes/showcase.css +35 -16
  125. package/styles/runes/sidenote.css +30 -27
  126. package/styles/runes/snippet.css +8 -9
  127. package/styles/runes/spacing.css +86 -88
  128. package/styles/runes/spec.css +24 -25
  129. package/styles/runes/steps.css +89 -80
  130. package/styles/runes/storyboard.css +46 -45
  131. package/styles/runes/swatch.css +22 -23
  132. package/styles/runes/symbol.css +117 -118
  133. package/styles/runes/tabs.css +88 -79
  134. package/styles/runes/testimonial.css +43 -44
  135. package/styles/runes/textblock.css +32 -28
  136. package/styles/runes/timeline.css +63 -64
  137. package/styles/runes/tint.css +214 -215
  138. package/styles/runes/toc.css +40 -41
  139. package/styles/runes/track.css +89 -90
  140. package/styles/runes/typography.css +89 -91
  141. package/styles/runes/work.css +47 -36
  142. package/styles/runes/xref.css +21 -22
@@ -1,126 +1,136 @@
1
1
  @layer skin {
2
- /* Pricing — skin. The tiers grid, tier flex-column, eyebrow stretched-link, and
2
+ /* Pricing — skin. The tiers grid, tier flex-column, eyebrow stretched-link, and
3
3
  * list resets live in @refrakt-md/skeleton (styles/runes/pricing.css). */
4
- .rf-pricing {
5
- padding: 2rem 0;
6
- }
7
- .rf-pricing > header,
8
- .rf-pricing__preamble {
9
- gap: 0.25rem;
10
- text-align: center;
11
- margin-bottom: 2rem;
12
- }
13
- .rf-pricing > header h1,
14
- .rf-pricing__headline {
15
- margin-top: 0;
16
- }
17
- .rf-pricing__eyebrow {
18
- font-size: var(--rf-text-sm);
19
- font-weight: var(--rf-weight-semibold);
20
- letter-spacing: var(--rf-tracking-wider);
21
- text-transform: uppercase;
22
- color: var(--rf-color-primary);
23
- margin: 0 0 0.5rem;
24
- }
25
- .rf-pricing__eyebrow:has(a) {
26
- padding: 0.25rem 0.875rem;
27
- border: 1px solid var(--rf-color-border);
28
- border-radius: var(--rf-radius-full);
29
- color: var(--rf-color-text);
30
- font-weight: var(--rf-weight-normal);
31
- text-transform: none;
32
- letter-spacing: var(--rf-tracking-normal);
33
- transition: border-color 150ms ease;
34
- }
35
- .rf-pricing__eyebrow:has(a):hover { border-color: var(--rf-color-muted); }
36
- .rf-pricing__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight: var(--rf-weight-semibold); text-decoration: none; }
37
- .rf-pricing__eyebrow:has(a) a::before { border-radius: inherit; }
38
- .rf-pricing__blurb {
39
- color: var(--rf-color-muted);
40
- margin-bottom: 0;
41
- }
42
- .rf-pricing__image {
43
- margin-bottom: 1rem;
44
- }
45
- .rf-pricing__tiers,
46
- .rf-pricing > ul[data-layout="grid"] {
47
- gap: 1.5rem;
48
- padding: 0;
49
- margin: 0;
50
- }
51
- .rf-tier {
52
- border: 1px solid var(--rf-color-border);
53
- border-radius: var(--rf-radius-md);
54
- padding: 2rem;
55
- background: var(--rf-color-bg);
56
- transition: box-shadow 200ms ease;
57
- }
58
- .rf-tier:hover {
59
- box-shadow: var(--rf-shadow-md);
60
- }
61
- .rf-tier--featured {
62
- border-color: var(--rf-color-primary);
63
- box-shadow: var(--rf-shadow-lg);
64
- }
65
- .rf-tier h1[property="name"] {
66
- margin: 0 0 0.5rem;
67
- font-size: var(--rf-text-lg);
68
- font-weight: var(--rf-weight-semibold);
69
- color: var(--rf-color-muted);
70
- }
71
- .rf-tier p[property="price"] {
72
- font-size: var(--rf-text-4xl);
73
- font-weight: var(--rf-weight-bold);
74
- letter-spacing: var(--rf-tracking-tight);
75
- color: var(--rf-color-text);
76
- margin-bottom: 1.5rem;
77
- line-height: var(--rf-leading-tight);
78
- }
79
- .rf-tier__body ul {
80
- padding-left: 0;
81
- margin: 0 0 1.5rem;
82
- }
83
- .rf-tier__body li {
84
- padding: 0.375rem 0;
85
- font-size: var(--rf-text-sm);
86
- color: var(--rf-color-muted);
87
- }
88
- .rf-tier__body li::before {
89
- content: '\2713';
90
- margin-right: 0.5rem;
91
- color: var(--rf-color-success);
92
- font-weight: var(--rf-weight-semibold);
93
- }
94
- .rf-tier__body a {
95
- text-align: center;
96
- padding: 0.625rem 1.5rem;
97
- border-radius: var(--rf-radius-sm);
98
- font-weight: var(--rf-weight-semibold);
99
- font-size: var(--rf-text-sm);
100
- text-decoration: none;
101
- transition: background-color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
102
- }
103
- .rf-tier:not(.rf-tier--featured) a {
104
- background: var(--rf-color-surface);
105
- color: var(--rf-color-text);
106
- border: 1px solid var(--rf-color-border);
107
- }
108
- .rf-tier:not(.rf-tier--featured) a:hover {
109
- background: var(--rf-color-surface-hover);
110
- text-decoration: none;
111
- }
112
- .rf-tier--featured a {
113
- background: var(--rf-color-primary);
114
- color: white;
115
- }
116
- .rf-tier--featured a:hover {
117
- background: var(--rf-color-primary-hover);
118
- box-shadow: var(--rf-shadow-sm);
119
- transform: translateY(-1px);
120
- text-decoration: none;
121
- }
122
- .rf-tier__body p:has(a) {
123
- margin-bottom: 0;
124
- }
125
-
4
+ .rf-pricing {
5
+ padding: 2rem 0;
6
+ }
7
+ .rf-pricing > header,
8
+ .rf-pricing__preamble {
9
+ gap: 0.25rem;
10
+ text-align: center;
11
+ margin-bottom: 2rem;
12
+ }
13
+ .rf-pricing > header h1,
14
+ .rf-pricing__headline {
15
+ margin-top: 0;
16
+ }
17
+ .rf-pricing__eyebrow {
18
+ font-size: var(--rf-text-sm);
19
+ font-weight: var(--rf-weight-semibold);
20
+ letter-spacing: var(--rf-tracking-wider);
21
+ text-transform: uppercase;
22
+ color: var(--rf-color-primary);
23
+ margin: 0 0 0.5rem;
24
+ }
25
+ .rf-pricing__eyebrow:has(a) {
26
+ padding: 0.25rem 0.875rem;
27
+ border: 1px solid var(--rf-color-border);
28
+ border-radius: var(--rf-radius-full);
29
+ color: var(--rf-color-text);
30
+ font-weight: var(--rf-weight-normal);
31
+ text-transform: none;
32
+ letter-spacing: var(--rf-tracking-normal);
33
+ transition: border-color 150ms ease;
34
+ }
35
+ .rf-pricing__eyebrow:has(a):hover {
36
+ border-color: var(--rf-color-muted);
37
+ }
38
+ .rf-pricing__eyebrow:has(a) a {
39
+ color: var(--rf-color-primary);
40
+ font-weight: var(--rf-weight-semibold);
41
+ text-decoration: none;
42
+ }
43
+ .rf-pricing__eyebrow:has(a) a::before {
44
+ border-radius: inherit;
45
+ }
46
+ .rf-pricing__blurb {
47
+ color: var(--rf-color-muted);
48
+ margin-bottom: 0;
49
+ }
50
+ .rf-pricing__image {
51
+ margin-bottom: 1rem;
52
+ }
53
+ .rf-pricing__tiers,
54
+ .rf-pricing > ul[data-layout="grid"] {
55
+ gap: 1.5rem;
56
+ padding: 0;
57
+ margin: 0;
58
+ }
59
+ .rf-tier {
60
+ border: 1px solid var(--rf-color-border);
61
+ border-radius: var(--rf-radius-md);
62
+ padding: 2rem;
63
+ background: var(--rf-color-bg);
64
+ transition: box-shadow 200ms ease;
65
+ }
66
+ .rf-tier:hover {
67
+ box-shadow: var(--rf-shadow-md);
68
+ }
69
+ .rf-tier--featured {
70
+ border-color: var(--rf-color-primary);
71
+ box-shadow: var(--rf-shadow-lg);
72
+ }
73
+ .rf-tier h1[property="name"] {
74
+ margin: 0 0 0.5rem;
75
+ font-size: var(--rf-text-lg);
76
+ font-weight: var(--rf-weight-semibold);
77
+ color: var(--rf-color-muted);
78
+ }
79
+ .rf-tier p[property="price"] {
80
+ font-size: var(--rf-text-4xl);
81
+ font-weight: var(--rf-weight-bold);
82
+ letter-spacing: var(--rf-tracking-tight);
83
+ color: var(--rf-color-text);
84
+ margin-bottom: 1.5rem;
85
+ line-height: var(--rf-leading-tight);
86
+ }
87
+ .rf-tier__body ul {
88
+ padding-left: 0;
89
+ margin: 0 0 1.5rem;
90
+ }
91
+ .rf-tier__body li {
92
+ padding: 0.375rem 0;
93
+ font-size: var(--rf-text-sm);
94
+ color: var(--rf-color-muted);
95
+ }
96
+ .rf-tier__body li::before {
97
+ content: "\2713";
98
+ margin-right: 0.5rem;
99
+ color: var(--rf-color-success);
100
+ font-weight: var(--rf-weight-semibold);
101
+ }
102
+ .rf-tier__body a {
103
+ text-align: center;
104
+ padding: 0.625rem 1.5rem;
105
+ border-radius: var(--rf-radius-sm);
106
+ font-weight: var(--rf-weight-semibold);
107
+ font-size: var(--rf-text-sm);
108
+ text-decoration: none;
109
+ transition:
110
+ background-color 200ms ease,
111
+ box-shadow 200ms ease,
112
+ transform 200ms ease;
113
+ }
114
+ .rf-tier:not(.rf-tier--featured) a {
115
+ background: var(--rf-color-surface);
116
+ color: var(--rf-color-text);
117
+ border: 1px solid var(--rf-color-border);
118
+ }
119
+ .rf-tier:not(.rf-tier--featured) a:hover {
120
+ background: var(--rf-color-surface-hover);
121
+ text-decoration: none;
122
+ }
123
+ .rf-tier--featured a {
124
+ background: var(--rf-color-primary);
125
+ color: white;
126
+ }
127
+ .rf-tier--featured a:hover {
128
+ background: var(--rf-color-primary-hover);
129
+ box-shadow: var(--rf-shadow-sm);
130
+ transform: translateY(-1px);
131
+ text-decoration: none;
132
+ }
133
+ .rf-tier__body p:has(a) {
134
+ margin-bottom: 0;
135
+ }
126
136
  }
@@ -1,30 +1,35 @@
1
1
  @layer skin {
2
- /* progress — skin. The flex row, value auto-push, track box, and fill box live in
2
+ /* progress — skin. The flex row, value auto-push, track box, and fill box live in
3
3
  * @refrakt-md/skeleton (styles/runes/progress.css). */
4
- .rf-progress {
5
- gap: var(--rf-spacing-xs) var(--rf-spacing-sm);
6
- margin: var(--rf-spacing-sm) 0;
7
- }
8
- .rf-progress__label {
9
- font-weight: var(--rf-weight-semibold);
10
- color: var(--rf-color-text);
11
- }
12
- .rf-progress__value {
13
- font-weight: var(--rf-weight-semibold);
14
- color: var(--rf-color-text);
15
- }
16
- .rf-progress__track {
17
- border-radius: var(--rf-radius-pill, 999px);
18
- background: var(--rf-color-surface-hover);
19
- }
20
- .rf-progress__fill {
21
- border-radius: inherit;
22
- background: var(--rf-color-primary);
23
- transition: width 0.3s ease;
24
- }
25
- /* Sentiment variants tint the fill. */
26
- .rf-progress--positive .rf-progress__fill { background: var(--rf-color-success); }
27
- .rf-progress--caution .rf-progress__fill { background: var(--rf-color-warning); }
28
- .rf-progress--negative .rf-progress__fill { background: var(--rf-color-danger); }
29
-
4
+ .rf-progress {
5
+ gap: var(--rf-spacing-xs) var(--rf-spacing-sm);
6
+ margin: var(--rf-spacing-sm) 0;
7
+ }
8
+ .rf-progress__label {
9
+ font-weight: var(--rf-weight-semibold);
10
+ color: var(--rf-color-text);
11
+ }
12
+ .rf-progress__value {
13
+ font-weight: var(--rf-weight-semibold);
14
+ color: var(--rf-color-text);
15
+ }
16
+ .rf-progress__track {
17
+ border-radius: var(--rf-radius-pill, 999px);
18
+ background: var(--rf-color-surface-hover);
19
+ }
20
+ .rf-progress__fill {
21
+ border-radius: inherit;
22
+ background: var(--rf-color-primary);
23
+ transition: width 0.3s ease;
24
+ }
25
+ /* Sentiment variants tint the fill. */
26
+ .rf-progress--positive .rf-progress__fill {
27
+ background: var(--rf-color-success);
28
+ }
29
+ .rf-progress--caution .rf-progress__fill {
30
+ background: var(--rf-color-warning);
31
+ }
32
+ .rf-progress--negative .rf-progress__fill {
33
+ background: var(--rf-color-danger);
34
+ }
30
35
  }
@@ -1,100 +1,99 @@
1
1
  @layer skin {
2
- /* PullQuote */
3
- .rf-pullquote {
4
- margin: 2rem 0;
5
- padding: 1.5rem 2rem;
6
- border: none;
7
- font-size: var(--rf-text-xl);
8
- font-style: italic;
9
- font-weight: var(--rf-weight-medium);
10
- line-height: var(--rf-leading-normal);
11
- color: var(--rf-color-text);
12
- background: none;
13
- border-radius: 0;
14
- }
15
- .rf-pullquote::before {
16
- content: '\201C';
17
- /* Decorative oversized quote glyph — a display one-off above the type scale. */
18
- font-size: 4rem;
19
- font-style: normal;
20
- font-weight: var(--rf-weight-bold);
21
- line-height: 1;
22
- color: var(--rf-color-primary);
23
- opacity: 0.4;
24
- }
25
- .rf-pullquote p {
26
- margin: 0;
27
- }
28
- .rf-pullquote p + p {
29
- margin-top: 0.75rem;
30
- }
31
-
32
- /* Alignment — block modes */
33
- .rf-pullquote--center {
34
- text-align: center;
35
- max-width: 80%;
36
- }
37
- .rf-pullquote--left {
38
- text-align: left;
39
- border-left: 2px solid var(--rf-color-primary);
40
- padding-left: 1.5rem;
41
- }
42
- .rf-pullquote--right {
43
- text-align: right;
44
- border-right: 2px solid var(--rf-color-primary);
45
- padding-right: 1.5rem;
46
- }
2
+ /* PullQuote */
3
+ .rf-pullquote {
4
+ margin: 2rem 0;
5
+ padding: 1.5rem 2rem;
6
+ border: none;
7
+ font-size: var(--rf-text-xl);
8
+ font-style: italic;
9
+ font-weight: var(--rf-weight-medium);
10
+ line-height: var(--rf-leading-normal);
11
+ color: var(--rf-color-text);
12
+ background: none;
13
+ border-radius: 0;
14
+ }
15
+ .rf-pullquote::before {
16
+ content: "\201C";
17
+ /* Decorative oversized quote glyph — a display one-off above the type scale. */
18
+ font-size: 4rem;
19
+ font-style: normal;
20
+ font-weight: var(--rf-weight-bold);
21
+ line-height: 1;
22
+ color: var(--rf-color-primary);
23
+ opacity: 0.4;
24
+ }
25
+ .rf-pullquote p {
26
+ margin: 0;
27
+ }
28
+ .rf-pullquote p + p {
29
+ margin-top: 0.75rem;
30
+ }
47
31
 
48
- /* Float modes — left/right pull quotes can float for text wrapping */
49
- .rf-pullquote[data-align="left"] {
50
- margin: 0.5rem 2rem 1rem 0;
51
- }
52
- .rf-pullquote[data-align="right"] {
53
- margin: 0.5rem 0 1rem 2rem;
54
- }
32
+ /* Alignment — block modes */
33
+ .rf-pullquote--center {
34
+ text-align: center;
35
+ max-width: 80%;
36
+ }
37
+ .rf-pullquote--left {
38
+ text-align: left;
39
+ border-left: 2px solid var(--rf-color-primary);
40
+ padding-left: 1.5rem;
41
+ }
42
+ .rf-pullquote--right {
43
+ text-align: right;
44
+ border-right: 2px solid var(--rf-color-primary);
45
+ padding-right: 1.5rem;
46
+ }
55
47
 
56
- /* Style: accent — uses primary color background tint */
57
- .rf-pullquote--accent {
58
- background: color-mix(in srgb, var(--rf-color-primary) 8%, transparent);
59
- border-radius: var(--rf-radius-md);
60
- padding: 2rem 2.5rem;
61
- }
62
- .rf-pullquote--accent::before {
63
- color: var(--rf-color-primary);
64
- opacity: 0.5;
65
- }
48
+ /* Float modes — left/right pull quotes can float for text wrapping */
49
+ .rf-pullquote[data-align="left"] {
50
+ margin: 0.5rem 2rem 1rem 0;
51
+ }
52
+ .rf-pullquote[data-align="right"] {
53
+ margin: 0.5rem 0 1rem 2rem;
54
+ }
66
55
 
67
- /* Style: editorial — decorative top/bottom rules */
68
- .rf-pullquote--editorial {
69
- border-top: 2px solid var(--rf-color-border);
70
- border-bottom: 2px solid var(--rf-color-border);
71
- padding: 1.75rem 0;
72
- font-family: Georgia, 'Times New Roman', serif;
73
- letter-spacing: var(--rf-tracking-normal);
74
- }
56
+ /* Style: accent — uses primary color background tint */
57
+ .rf-pullquote--accent {
58
+ background: color-mix(in srgb, var(--rf-color-primary) 8%, transparent);
59
+ border-radius: var(--rf-radius-md);
60
+ padding: 2rem 2.5rem;
61
+ }
62
+ .rf-pullquote--accent::before {
63
+ color: var(--rf-color-primary);
64
+ opacity: 0.5;
65
+ }
75
66
 
76
- /* Reset inner blockquote — global blockquote styles shouldn't apply here */
77
- .rf-pullquote blockquote {
78
- border: none;
79
- background: none;
80
- padding: 0;
81
- margin: 0;
82
- border-radius: 0;
83
- color: inherit;
84
- }
85
- .rf-pullquote blockquote::before {
86
- display: none;
87
- }
67
+ /* Style: editorial — decorative top/bottom rules */
68
+ .rf-pullquote--editorial {
69
+ border-top: 2px solid var(--rf-color-border);
70
+ border-bottom: 2px solid var(--rf-color-border);
71
+ padding: 1.75rem 0;
72
+ font-family: Georgia, "Times New Roman", serif;
73
+ letter-spacing: var(--rf-tracking-normal);
74
+ }
88
75
 
89
- /* Responsive — floated quotes become full-width on mobile */
90
- @media (max-width: 768px) {
91
- .rf-pullquote[data-align="left"],
92
- .rf-pullquote[data-align="right"] {
93
- margin: 1.5rem 0;
76
+ /* Reset inner blockquote — global blockquote styles shouldn't apply here */
77
+ .rf-pullquote blockquote {
78
+ border: none;
79
+ background: none;
80
+ padding: 0;
81
+ margin: 0;
82
+ border-radius: 0;
83
+ color: inherit;
94
84
  }
95
- .rf-pullquote--center {
96
- max-width: 100%;
85
+ .rf-pullquote blockquote::before {
86
+ display: none;
97
87
  }
98
- }
99
88
 
89
+ /* Responsive — floated quotes become full-width on mobile */
90
+ @media (max-width: 768px) {
91
+ .rf-pullquote[data-align="left"],
92
+ .rf-pullquote[data-align="right"] {
93
+ margin: 1.5rem 0;
94
+ }
95
+ .rf-pullquote--center {
96
+ max-width: 100%;
97
+ }
98
+ }
100
99
  }
@@ -1,65 +1,64 @@
1
1
  @layer skin {
2
- /* Realm — split/stacked geometry, the title, and the metadata def-list all
2
+ /* Realm — split/stacked geometry, the title, and the metadata def-list all
3
3
  * come from the shared layers: layouts/split.css ([data-layout] +
4
4
  * [data-section="media"]), dimensions/sections.css ([data-section="title"] /
5
5
  * "preamble"), and dimensions/metadata.css ([data-zone-layout]). This file
6
6
  * only carries realm-specific chrome. */
7
7
 
8
- /* Thin-edge inset model (matches `.rf-card` / `.rf-recipe`): card outer padding
8
+ /* Thin-edge inset model (matches `.rf-card` / `.rf-recipe`): card outer padding
9
9
  * is a thin edge, the content column adds the remaining inset back so text sits
10
10
  * at the full `--rune-padding` without negative-margin bleed. Like recipe, no
11
11
  * `--split-valign: stretch` — realm content can be long (multiple sections), so
12
12
  * we let the scene keep its natural aspect ratio rather than cover-cropping. */
13
- .rf-realm {
14
- --rf-realm-edge: 0.5rem;
15
- --rf-realm-media-gap: var(--rf-spacing-lg);
16
- --rf-realm-split-gap: var(--rf-spacing-sm);
17
- padding: var(--rf-realm-edge);
18
- }
13
+ .rf-realm {
14
+ --rf-realm-edge: 0.5rem;
15
+ --rf-realm-media-gap: var(--rf-spacing-lg);
16
+ --rf-realm-split-gap: var(--rf-spacing-sm);
17
+ padding: var(--rf-realm-edge);
18
+ }
19
19
 
20
- .rf-realm__content {
21
- padding: max(0px, calc(var(--rune-padding, var(--rf-spacing-md)) - var(--rf-realm-edge)));
22
- }
20
+ .rf-realm__content {
21
+ padding: max(0px, calc(var(--rune-padding, var(--rf-spacing-md)) - var(--rf-realm-edge)));
22
+ }
23
23
 
24
- /* Direct grid properties (column-gap / row-gap) win via selector specificity
24
+ /* Direct grid properties (column-gap / row-gap) win via selector specificity
25
25
  * over the shared media-position layout vars. */
26
- .rf-realm[data-media-position="start"],
27
- .rf-realm[data-media-position="end"] {
28
- column-gap: var(--rf-realm-split-gap);
29
- row-gap: var(--rf-realm-media-gap);
30
- }
26
+ .rf-realm[data-media-position="start"],
27
+ .rf-realm[data-media-position="end"] {
28
+ column-gap: var(--rf-realm-split-gap);
29
+ row-gap: var(--rf-realm-media-gap);
30
+ }
31
31
 
32
- .rf-realm[data-media-position="top"] > .rf-realm__scene {
33
- margin-bottom: var(--rf-realm-media-gap);
34
- }
35
- .rf-realm[data-media-position="bottom"] > .rf-realm__scene {
36
- margin-top: var(--rf-realm-media-gap);
37
- }
32
+ .rf-realm[data-media-position="top"] > .rf-realm__scene {
33
+ margin-bottom: var(--rf-realm-media-gap);
34
+ }
35
+ .rf-realm[data-media-position="bottom"] > .rf-realm__scene {
36
+ margin-top: var(--rf-realm-media-gap);
37
+ }
38
38
 
39
- /* Content */
40
- .rf-realm__sections {
41
- gap: 1rem;
42
- }
43
- .rf-realm__content ul,
44
- .rf-realm__content ol {
45
- padding-left: 1.5rem;
46
- }
47
-
48
- /* Realm Section */
49
- .rf-realm-section {
50
- padding: 0.75rem 0;
51
- border-top: 1px solid var(--rf-color-border);
52
- }
53
- .rf-realm-section__name {
54
- font-size: var(--rf-text-xl);
55
- font-weight: var(--rf-weight-bold);
56
- line-height: var(--rf-leading-snug);
57
- margin-bottom: 0.5rem;
58
- color: var(--rf-color-text);
59
- }
60
- .rf-realm-section__body ul,
61
- .rf-realm-section__body ol {
62
- padding-left: 1.5rem;
63
- }
39
+ /* Content */
40
+ .rf-realm__sections {
41
+ gap: 1rem;
42
+ }
43
+ .rf-realm__content ul,
44
+ .rf-realm__content ol {
45
+ padding-left: 1.5rem;
46
+ }
64
47
 
48
+ /* Realm Section */
49
+ .rf-realm-section {
50
+ padding: 0.75rem 0;
51
+ border-top: 1px solid var(--rf-color-border);
52
+ }
53
+ .rf-realm-section__name {
54
+ font-size: var(--rf-text-xl);
55
+ font-weight: var(--rf-weight-bold);
56
+ line-height: var(--rf-leading-snug);
57
+ margin-bottom: 0.5rem;
58
+ color: var(--rf-color-text);
59
+ }
60
+ .rf-realm-section__body ul,
61
+ .rf-realm-section__body ol {
62
+ padding-left: 1.5rem;
63
+ }
65
64
  }