@xaroth.nl/design 0.1.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 (193) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +62 -0
  3. package/dist/all.css +2536 -0
  4. package/dist/astro.d.ts +41 -0
  5. package/dist/astro.js +41 -0
  6. package/dist/bem.d.ts +12 -0
  7. package/dist/bem.js +19 -0
  8. package/dist/components/alert/alert.astro +46 -0
  9. package/dist/components/alert/alert.css +68 -0
  10. package/dist/components/alert/alert.d.ts +11 -0
  11. package/dist/components/alert/alert.js +6 -0
  12. package/dist/components/alert/index.d.ts +14 -0
  13. package/dist/components/alert/index.js +27 -0
  14. package/dist/components/avatar/avatar.astro +23 -0
  15. package/dist/components/avatar/avatar.css +35 -0
  16. package/dist/components/avatar/avatar.d.ts +5 -0
  17. package/dist/components/avatar/avatar.js +7 -0
  18. package/dist/components/avatar/index.d.ts +32 -0
  19. package/dist/components/avatar/index.js +24 -0
  20. package/dist/components/badge/badge.astro +11 -0
  21. package/dist/components/badge/badge.css +46 -0
  22. package/dist/components/badge/badge.d.ts +5 -0
  23. package/dist/components/badge/badge.js +6 -0
  24. package/dist/components/badge/index.d.ts +6 -0
  25. package/dist/components/badge/index.js +3 -0
  26. package/dist/components/breadcrumbs/breadcrumbs.astro +27 -0
  27. package/dist/components/breadcrumbs/breadcrumbs.css +33 -0
  28. package/dist/components/breadcrumbs/breadcrumbs.d.ts +9 -0
  29. package/dist/components/breadcrumbs/breadcrumbs.js +11 -0
  30. package/dist/components/breadcrumbs/index.d.ts +37 -0
  31. package/dist/components/breadcrumbs/index.js +16 -0
  32. package/dist/components/button/button.astro +36 -0
  33. package/dist/components/button/button.css +117 -0
  34. package/dist/components/button/button.d.ts +18 -0
  35. package/dist/components/button/button.js +23 -0
  36. package/dist/components/button/index.d.ts +59 -0
  37. package/dist/components/button/index.js +26 -0
  38. package/dist/components/card/card.astro +98 -0
  39. package/dist/components/card/card.css +91 -0
  40. package/dist/components/card/card.d.ts +19 -0
  41. package/dist/components/card/card.js +7 -0
  42. package/dist/components/card/index.d.ts +11 -0
  43. package/dist/components/card/index.js +7 -0
  44. package/dist/components/description-list/description-list.astro +39 -0
  45. package/dist/components/description-list/description-list.css +72 -0
  46. package/dist/components/description-list/description-list.d.ts +7 -0
  47. package/dist/components/description-list/description-list.js +6 -0
  48. package/dist/components/description-list/index.d.ts +12 -0
  49. package/dist/components/description-list/index.js +5 -0
  50. package/dist/components/divider/divider.astro +27 -0
  51. package/dist/components/divider/divider.css +40 -0
  52. package/dist/components/divider/divider.d.ts +5 -0
  53. package/dist/components/divider/divider.js +11 -0
  54. package/dist/components/divider/index.d.ts +22 -0
  55. package/dist/components/divider/index.js +11 -0
  56. package/dist/components/empty-state/empty-state.astro +47 -0
  57. package/dist/components/empty-state/empty-state.css +38 -0
  58. package/dist/components/empty-state/empty-state.d.ts +12 -0
  59. package/dist/components/empty-state/empty-state.js +7 -0
  60. package/dist/components/empty-state/index.d.ts +5 -0
  61. package/dist/components/empty-state/index.js +3 -0
  62. package/dist/components/field/checkbox-group.astro +58 -0
  63. package/dist/components/field/checkbox.astro +17 -0
  64. package/dist/components/field/field.astro +51 -0
  65. package/dist/components/field/field.css +336 -0
  66. package/dist/components/field/field.d.ts +47 -0
  67. package/dist/components/field/field.js +51 -0
  68. package/dist/components/field/index.d.ts +53 -0
  69. package/dist/components/field/index.js +54 -0
  70. package/dist/components/field/input.astro +27 -0
  71. package/dist/components/field/radio-group.astro +58 -0
  72. package/dist/components/field/radio.astro +17 -0
  73. package/dist/components/field/select.astro +13 -0
  74. package/dist/components/field/switch.astro +17 -0
  75. package/dist/components/field/textarea.astro +24 -0
  76. package/dist/components/filters/filter-layout.astro +72 -0
  77. package/dist/components/filters/filter-panel.astro +13 -0
  78. package/dist/components/filters/filters.css +230 -0
  79. package/dist/components/filters/filters.d.ts +20 -0
  80. package/dist/components/filters/filters.js +24 -0
  81. package/dist/components/filters/index.d.ts +27 -0
  82. package/dist/components/filters/index.js +25 -0
  83. package/dist/components/footer/footer.astro +70 -0
  84. package/dist/components/footer/footer.css +128 -0
  85. package/dist/components/footer/footer.d.ts +16 -0
  86. package/dist/components/footer/footer.js +7 -0
  87. package/dist/components/footer/index.d.ts +35 -0
  88. package/dist/components/footer/index.js +18 -0
  89. package/dist/components/header/header.astro +89 -0
  90. package/dist/components/header/header.css +163 -0
  91. package/dist/components/header/header.d.ts +18 -0
  92. package/dist/components/header/header.js +9 -0
  93. package/dist/components/header/index.d.ts +39 -0
  94. package/dist/components/header/index.js +25 -0
  95. package/dist/components/icon/icon.astro +21 -0
  96. package/dist/components/icon/icon.css +15 -0
  97. package/dist/components/icon/icon.d.ts +5 -0
  98. package/dist/components/icon/icon.js +6 -0
  99. package/dist/components/icon/index.d.ts +57 -0
  100. package/dist/components/icon/index.js +72 -0
  101. package/dist/components/layout/container.astro +15 -0
  102. package/dist/components/layout/grid.astro +14 -0
  103. package/dist/components/layout/index.d.ts +33 -0
  104. package/dist/components/layout/index.js +13 -0
  105. package/dist/components/layout/layout.css +262 -0
  106. package/dist/components/layout/layout.d.ts +24 -0
  107. package/dist/components/layout/layout.js +17 -0
  108. package/dist/components/layout/section-head.astro +42 -0
  109. package/dist/components/layout/section.astro +15 -0
  110. package/dist/components/page-head/index.d.ts +18 -0
  111. package/dist/components/page-head/index.js +14 -0
  112. package/dist/components/page-head/page-head.astro +60 -0
  113. package/dist/components/page-head/page-head.css +79 -0
  114. package/dist/components/page-head/page-head.d.ts +18 -0
  115. package/dist/components/page-head/page-head.js +8 -0
  116. package/dist/components/pagination/index.d.ts +73 -0
  117. package/dist/components/pagination/index.js +87 -0
  118. package/dist/components/pagination/pagination.astro +81 -0
  119. package/dist/components/pagination/pagination.css +70 -0
  120. package/dist/components/pagination/pagination.d.ts +8 -0
  121. package/dist/components/pagination/pagination.js +19 -0
  122. package/dist/components/panel/index.d.ts +11 -0
  123. package/dist/components/panel/index.js +3 -0
  124. package/dist/components/panel/panel.astro +15 -0
  125. package/dist/components/panel/panel.css +48 -0
  126. package/dist/components/panel/panel.d.ts +7 -0
  127. package/dist/components/panel/panel.js +6 -0
  128. package/dist/components/progress/index.d.ts +37 -0
  129. package/dist/components/progress/index.js +44 -0
  130. package/dist/components/progress/progress.astro +18 -0
  131. package/dist/components/progress/progress.css +115 -0
  132. package/dist/components/progress/progress.d.ts +5 -0
  133. package/dist/components/progress/progress.js +7 -0
  134. package/dist/components/prose/code-block.astro +26 -0
  135. package/dist/components/prose/index.d.ts +14 -0
  136. package/dist/components/prose/index.js +67 -0
  137. package/dist/components/prose/prose.astro +14 -0
  138. package/dist/components/prose/prose.css +156 -0
  139. package/dist/components/prose/prose.d.ts +12 -0
  140. package/dist/components/prose/prose.js +11 -0
  141. package/dist/components/stat/index.d.ts +15 -0
  142. package/dist/components/stat/index.js +5 -0
  143. package/dist/components/stat/stat-group.astro +11 -0
  144. package/dist/components/stat/stat.astro +43 -0
  145. package/dist/components/stat/stat.css +51 -0
  146. package/dist/components/stat/stat.d.ts +15 -0
  147. package/dist/components/stat/stat.js +10 -0
  148. package/dist/components/table/index.d.ts +38 -0
  149. package/dist/components/table/index.js +18 -0
  150. package/dist/components/table/table.astro +111 -0
  151. package/dist/components/table/table.css +78 -0
  152. package/dist/components/table/table.d.ts +11 -0
  153. package/dist/components/table/table.js +10 -0
  154. package/dist/components/tabs/index.d.ts +21 -0
  155. package/dist/components/tabs/index.js +13 -0
  156. package/dist/components/tabs/tabs.astro +30 -0
  157. package/dist/components/tabs/tabs.css +59 -0
  158. package/dist/components/tabs/tabs.d.ts +9 -0
  159. package/dist/components/tabs/tabs.js +6 -0
  160. package/dist/components/tag/index.d.ts +19 -0
  161. package/dist/components/tag/index.js +7 -0
  162. package/dist/components/tag/tag.astro +17 -0
  163. package/dist/components/tag/tag.css +30 -0
  164. package/dist/components/tag/tag.d.ts +9 -0
  165. package/dist/components/tag/tag.js +12 -0
  166. package/dist/components/timeline/index.d.ts +22 -0
  167. package/dist/components/timeline/index.js +5 -0
  168. package/dist/components/timeline/timeline.astro +40 -0
  169. package/dist/components/timeline/timeline.css +92 -0
  170. package/dist/components/timeline/timeline.d.ts +9 -0
  171. package/dist/components/timeline/timeline.js +7 -0
  172. package/dist/components/tooltip/index.d.ts +15 -0
  173. package/dist/components/tooltip/index.js +41 -0
  174. package/dist/components/tooltip/tooltip.astro +25 -0
  175. package/dist/components/tooltip/tooltip.css +84 -0
  176. package/dist/components/tooltip/tooltip.d.ts +12 -0
  177. package/dist/components/tooltip/tooltip.js +34 -0
  178. package/dist/config.d.ts +9 -0
  179. package/dist/config.js +6 -0
  180. package/dist/env.d.ts +2 -0
  181. package/dist/html.d.ts +37 -0
  182. package/dist/html.js +126 -0
  183. package/dist/parts.d.ts +27 -0
  184. package/dist/parts.js +28 -0
  185. package/dist/react.d.ts +27 -0
  186. package/dist/react.js +28 -0
  187. package/dist/scss/_chamfer.scss +37 -0
  188. package/dist/scss/_layers.scss +2 -0
  189. package/dist/scss/_theme.scss +15 -0
  190. package/dist/themes/eve-online.css +1945 -0
  191. package/dist/themes/xaroth.css +1974 -0
  192. package/dist/themes.css +3919 -0
  193. package/package.json +80 -0
package/dist/all.css ADDED
@@ -0,0 +1,2536 @@
1
+ @layer x.reset, x.core, x.theme, x.utility;
2
+ @layer x.core {
3
+ .x-alert {
4
+ --x-alert-tone: var(--x-color-info);
5
+ --x-alert-wash: var(--x-color-info-wash);
6
+ display: grid;
7
+ grid-template-columns: auto minmax(0, 1fr);
8
+ gap: var(--x-alert-gap, var(--x-space-3));
9
+ align-items: start;
10
+ padding: var(--x-space-4) var(--x-space-5) var(--x-space-4) var(--x-space-4);
11
+ font-family: var(--x-font-ui);
12
+ background: var(--x-alert-bg, var(--x-alert-wash));
13
+ border-left: 2px solid var(--x-alert-tone);
14
+ }
15
+ .x-alert--success {
16
+ --x-alert-tone: var(--x-color-success);
17
+ --x-alert-wash: var(--x-color-success-wash);
18
+ }
19
+ .x-alert--warning {
20
+ --x-alert-tone: var(--x-color-warning);
21
+ --x-alert-wash: var(--x-color-warning-wash);
22
+ }
23
+ .x-alert--danger {
24
+ --x-alert-tone: var(--x-color-danger);
25
+ --x-alert-wash: var(--x-color-danger-wash);
26
+ }
27
+ .x-alert__icon {
28
+ width: 20px;
29
+ height: 20px;
30
+ margin-top: 2px;
31
+ color: var(--x-alert-tone);
32
+ fill: none;
33
+ stroke: currentcolor;
34
+ stroke-width: 1.5;
35
+ }
36
+ .x-alert__glyph {
37
+ stroke-width: var(--x-alert-glyph-width, 2);
38
+ }
39
+ .x-alert__frame--round {
40
+ display: none;
41
+ }
42
+ .x-alert__content {
43
+ display: grid;
44
+ gap: var(--x-space-1);
45
+ min-width: 0;
46
+ }
47
+ .x-alert__title {
48
+ font-size: var(--x-fs-ui);
49
+ font-weight: var(--x-alert-title-weight, 600);
50
+ line-height: 1.4;
51
+ color: var(--x-color-text);
52
+ }
53
+ .x-alert__body {
54
+ font-size: var(--x-alert-fs, var(--x-fs-small));
55
+ line-height: var(--x-alert-lh, 1.5);
56
+ color: var(--x-color-text-muted);
57
+ }
58
+ .x-alert__body > * + * {
59
+ margin-top: var(--x-space-2);
60
+ }
61
+ .x-alert__actions {
62
+ display: flex;
63
+ flex-wrap: wrap;
64
+ gap: var(--x-space-2);
65
+ align-items: center;
66
+ margin-top: var(--x-space-2);
67
+ }
68
+ }
69
+ @layer x.reset, x.core, x.theme, x.utility;
70
+ @layer x.core {
71
+ .x-avatar {
72
+ --x-avatar-size: 64px;
73
+ position: relative;
74
+ isolation: isolate;
75
+ display: inline-grid;
76
+ flex: none;
77
+ place-items: center;
78
+ width: var(--x-avatar-size);
79
+ height: var(--x-avatar-size);
80
+ overflow: hidden;
81
+ font-family: var(--x-font-display);
82
+ font-size: calc(var(--x-avatar-size) * var(--x-avatar-scale, 0.4));
83
+ font-weight: var(--x-avatar-weight, 600);
84
+ line-height: 1;
85
+ color: var(--x-color-text);
86
+ background: var(--x-color-surface-2);
87
+ user-select: none;
88
+ }
89
+ .x-avatar--sm {
90
+ --x-avatar-size: 40px;
91
+ }
92
+ .x-avatar--lg {
93
+ --x-avatar-size: 96px;
94
+ }
95
+ .x-avatar--xl {
96
+ --x-avatar-size: 128px;
97
+ }
98
+ .x-avatar__image {
99
+ width: 100%;
100
+ height: 100%;
101
+ object-fit: cover;
102
+ }
103
+ }
104
+ @layer x.reset, x.core, x.theme, x.utility;
105
+ @layer x.core {
106
+ .x-badge {
107
+ --x-badge-tone: var(--x-badge-default, var(--x-color-text-muted));
108
+ --x-badge-wash: transparent;
109
+ display: inline-flex;
110
+ flex: none;
111
+ gap: var(--x-badge-gap, 6px);
112
+ align-items: center;
113
+ min-height: 24px;
114
+ padding: 0 var(--x-space-2);
115
+ font-family: var(--x-font-ui);
116
+ font-size: var(--x-fs-label);
117
+ font-weight: 600;
118
+ line-height: 1;
119
+ letter-spacing: var(--x-track-label);
120
+ text-transform: uppercase;
121
+ white-space: nowrap;
122
+ color: var(--x-badge-tone);
123
+ background: var(--x-badge-wash);
124
+ border: 1px solid color-mix(in srgb, var(--x-badge-tone) var(--x-badge-edge-mix, 45%), transparent);
125
+ }
126
+ .x-badge::before {
127
+ content: "";
128
+ flex: none;
129
+ width: 5px;
130
+ height: 5px;
131
+ background: currentcolor;
132
+ }
133
+ .x-badge--info {
134
+ --x-badge-tone: var(--x-color-info);
135
+ --x-badge-wash: var(--x-color-info-wash);
136
+ }
137
+ .x-badge--success {
138
+ --x-badge-tone: var(--x-color-success);
139
+ --x-badge-wash: var(--x-color-success-wash);
140
+ }
141
+ .x-badge--warning {
142
+ --x-badge-tone: var(--x-color-warning);
143
+ --x-badge-wash: var(--x-color-warning-wash);
144
+ }
145
+ .x-badge--danger {
146
+ --x-badge-tone: var(--x-color-danger);
147
+ --x-badge-wash: var(--x-color-danger-wash);
148
+ }
149
+ }
150
+ @layer x.reset, x.core, x.theme, x.utility;
151
+ @layer x.core {
152
+ .x-breadcrumbs__list {
153
+ display: flex;
154
+ flex-wrap: wrap;
155
+ gap: var(--x-space-1) var(--x-breadcrumbs-gap, 10px);
156
+ align-items: center;
157
+ padding: 0;
158
+ margin: 0;
159
+ list-style: none;
160
+ }
161
+ .x-breadcrumbs__item {
162
+ display: inline-flex;
163
+ gap: var(--x-breadcrumbs-gap, 10px);
164
+ align-items: center;
165
+ min-width: 0;
166
+ color: var(--x-color-text-faint);
167
+ }
168
+ .x-breadcrumbs__item + .x-breadcrumbs__item::before {
169
+ flex: none;
170
+ }
171
+ .x-breadcrumbs__link {
172
+ color: var(--x-color-text-muted);
173
+ text-decoration: none;
174
+ transition: color var(--x-duration) var(--x-ease);
175
+ }
176
+ .x-breadcrumbs__link:hover {
177
+ color: var(--x-color-accent);
178
+ }
179
+ .x-breadcrumbs__current {
180
+ color: var(--x-color-text);
181
+ }
182
+ }
183
+ @layer x.reset, x.core, x.theme, x.utility;
184
+ @layer x.core {
185
+ .x-button {
186
+ --x-button-tone: var(--x-color-accent);
187
+ --x-button-on-tone: var(--x-color-on-accent);
188
+ --x-button-quiet-fg: var(--x-color-text);
189
+ position: relative;
190
+ display: inline-flex;
191
+ gap: var(--x-space-2);
192
+ align-items: center;
193
+ justify-content: center;
194
+ min-height: var(--x-control-md);
195
+ padding: 0 20px;
196
+ font-family: var(--x-button-font, var(--x-font-ui));
197
+ font-size: var(--x-button-fs, 0.875rem);
198
+ font-weight: 600;
199
+ line-height: 1;
200
+ letter-spacing: var(--x-button-tracking, 0.14em);
201
+ text-transform: var(--x-button-case, uppercase);
202
+ text-decoration: none;
203
+ white-space: nowrap;
204
+ cursor: pointer;
205
+ color: var(--x-button-fg);
206
+ background: var(--x-button-bg);
207
+ border: 1px solid var(--x-button-border, transparent);
208
+ transition: background var(--x-duration) var(--x-ease), color var(--x-duration) var(--x-ease), border-color var(--x-duration) var(--x-ease), filter var(--x-duration) var(--x-ease);
209
+ }
210
+ .x-button:disabled, .x-button[aria-disabled=true] {
211
+ cursor: not-allowed;
212
+ }
213
+ .x-button:disabled, .x-button[aria-disabled=true]:not(.x-button--loading) {
214
+ opacity: 0.5;
215
+ }
216
+ .x-button--danger {
217
+ --x-button-tone: var(--x-color-danger);
218
+ --x-button-on-tone: var(--x-color-on-danger);
219
+ --x-button-quiet-fg: var(--x-color-danger);
220
+ }
221
+ .x-button--warning {
222
+ --x-button-tone: var(--x-color-warning);
223
+ --x-button-on-tone: var(--x-color-on-warning);
224
+ --x-button-quiet-fg: var(--x-color-warning);
225
+ }
226
+ .x-button--success {
227
+ --x-button-tone: var(--x-color-success);
228
+ --x-button-on-tone: var(--x-color-on-success);
229
+ --x-button-quiet-fg: var(--x-color-success);
230
+ }
231
+ .x-button--primary {
232
+ --x-button-fg: var(--x-button-on-tone);
233
+ --x-button-bg: var(--x-button-tone);
234
+ }
235
+ .x-button--primary:hover:not(:disabled, [aria-disabled=true]) {
236
+ filter: brightness(1.1);
237
+ }
238
+ .x-button--secondary {
239
+ --x-button-fg: var(--x-button-tone);
240
+ --x-button-bg: transparent;
241
+ --x-button-border: color-mix(in oklab, var(--x-button-tone) 60%, transparent);
242
+ }
243
+ .x-button--secondary:hover:not(:disabled, [aria-disabled=true]) {
244
+ --x-button-bg: color-mix(in oklab, var(--x-button-tone) 12%, transparent);
245
+ --x-button-border: var(--x-button-tone);
246
+ }
247
+ .x-button--tertiary {
248
+ --x-button-fg: var(--x-button-quiet-fg);
249
+ --x-button-bg: transparent;
250
+ }
251
+ .x-button--tertiary:hover:not(:disabled, [aria-disabled=true]) {
252
+ --x-button-bg: color-mix(in oklab, var(--x-button-tone) 12%, transparent);
253
+ }
254
+ .x-button--sm {
255
+ --x-button-fs: var(--x-fs-label);
256
+ min-height: var(--x-control-sm);
257
+ padding: 0 var(--x-space-4);
258
+ }
259
+ .x-button--lg {
260
+ min-height: var(--x-control-lg);
261
+ padding: 0 var(--x-space-6);
262
+ }
263
+ .x-button--full {
264
+ display: flex;
265
+ width: 100%;
266
+ }
267
+ .x-button__start, .x-button__end {
268
+ display: inline-flex;
269
+ flex: none;
270
+ }
271
+ .x-button__start svg, .x-button__end svg {
272
+ width: 1.15em;
273
+ height: 1.15em;
274
+ }
275
+ .x-button--loading {
276
+ cursor: progress;
277
+ }
278
+ .x-button--loading .x-button__start,
279
+ .x-button--loading .x-button__label,
280
+ .x-button--loading .x-button__end {
281
+ opacity: 0;
282
+ }
283
+ .x-button__spinner {
284
+ position: absolute;
285
+ inset: 0;
286
+ width: 1.1em;
287
+ height: 1.1em;
288
+ margin: auto;
289
+ border: 2px solid currentcolor;
290
+ border-right-color: transparent;
291
+ border-radius: 50%;
292
+ animation: x-button-spin 0.8s linear infinite;
293
+ }
294
+ @keyframes x-button-spin {
295
+ to {
296
+ transform: rotate(1turn);
297
+ }
298
+ }
299
+ }
300
+ @layer x.reset, x.core, x.theme, x.utility;
301
+ @layer x.core {
302
+ .x-card {
303
+ --x-card-pad: var(--x-space-4);
304
+ position: relative;
305
+ display: flex;
306
+ flex-direction: column;
307
+ gap: var(--x-card-gap, var(--x-space-3));
308
+ box-sizing: border-box;
309
+ min-width: 0;
310
+ height: 100%;
311
+ padding: var(--x-card-pad);
312
+ color: var(--x-color-text);
313
+ }
314
+ @media (min-width: 640px) {
315
+ .x-card {
316
+ --x-card-pad: var(--x-space-5);
317
+ }
318
+ }
319
+ .x-card__head {
320
+ display: flex;
321
+ gap: var(--x-space-3);
322
+ align-items: center;
323
+ justify-content: space-between;
324
+ }
325
+ .x-card__index {
326
+ counter-reset: x-card-index var(--x-card-index, 0);
327
+ font-size: var(--x-fs-label);
328
+ line-height: 1.3;
329
+ color: var(--x-color-text-faint);
330
+ }
331
+ .x-card__index::before {
332
+ content: var(--x-card-index-prefix, "") counter(x-card-index, var(--x-card-index-style, decimal));
333
+ }
334
+ .x-card__status {
335
+ display: inline-flex;
336
+ margin-left: auto;
337
+ }
338
+ .x-card__title {
339
+ font-size: var(--x-fs-h3);
340
+ line-height: 1.3;
341
+ }
342
+ .x-card__link {
343
+ color: inherit;
344
+ text-decoration: none;
345
+ }
346
+ .x-card__link:hover {
347
+ color: inherit;
348
+ }
349
+ .x-card__link::after {
350
+ content: "";
351
+ position: absolute;
352
+ inset: 0;
353
+ }
354
+ .x-card--link:has(.x-card__link:focus-visible) {
355
+ outline: var(--x-focus-width) solid var(--x-color-focus);
356
+ outline-offset: var(--x-focus-offset);
357
+ }
358
+ .x-card--link:has(.x-card__link:focus-visible) .x-card__link:focus-visible {
359
+ outline: none;
360
+ }
361
+ .x-card__body {
362
+ flex: 1;
363
+ color: var(--x-color-text-muted);
364
+ }
365
+ .x-card__tags {
366
+ display: flex;
367
+ flex-wrap: wrap;
368
+ gap: 6px;
369
+ }
370
+ .x-card__foot {
371
+ display: flex;
372
+ flex-wrap: wrap;
373
+ gap: var(--x-space-3);
374
+ align-items: center;
375
+ justify-content: space-between;
376
+ padding-top: var(--x-space-3);
377
+ margin-top: auto;
378
+ border-top: 1px var(--x-card-foot-style, solid) var(--x-color-line-strong);
379
+ }
380
+ .x-card__foot-start {
381
+ display: flex;
382
+ flex-wrap: wrap;
383
+ gap: 6px;
384
+ align-items: center;
385
+ min-width: 0;
386
+ }
387
+ .x-card__foot-end {
388
+ margin-left: auto;
389
+ }
390
+ }
391
+ @layer x.reset, x.core, x.theme, x.utility;
392
+ @layer x.core {
393
+ .x-description-list {
394
+ --x-description-list-term-font: var(--x-font-ui);
395
+ --x-description-list-term-fs: var(--x-fs-ui);
396
+ --x-description-list-term-weight: 400;
397
+ --x-description-list-term-tracking: normal;
398
+ --x-description-list-term-case: none;
399
+ --x-description-list-term-color: var(--x-color-text-muted);
400
+ --x-description-list-value-font: var(--x-font-ui);
401
+ --x-description-list-value-fs: var(--x-fs-ui);
402
+ --x-description-list-value-color: var(--x-color-text);
403
+ --x-description-list-gap: var(--x-space-2);
404
+ --x-description-list-pad: 10px;
405
+ --x-description-list-line: var(--x-color-line);
406
+ --x-description-list-term-width: 7rem;
407
+ display: grid;
408
+ gap: var(--x-description-list-gap);
409
+ min-width: 0;
410
+ margin: 0;
411
+ }
412
+ .x-description-list__item {
413
+ display: grid;
414
+ gap: 2px;
415
+ min-width: 0;
416
+ }
417
+ .x-description-list__term {
418
+ font-family: var(--x-description-list-term-font);
419
+ font-size: var(--x-description-list-term-fs);
420
+ font-weight: var(--x-description-list-term-weight);
421
+ line-height: 1.4;
422
+ letter-spacing: var(--x-description-list-term-tracking);
423
+ text-transform: var(--x-description-list-term-case);
424
+ color: var(--x-description-list-term-color);
425
+ }
426
+ .x-description-list__value {
427
+ min-width: 0;
428
+ margin: 0;
429
+ font-family: var(--x-description-list-value-font);
430
+ font-size: var(--x-description-list-value-fs);
431
+ line-height: 1.4;
432
+ color: var(--x-description-list-value-color);
433
+ overflow-wrap: anywhere;
434
+ }
435
+ .x-description-list--inline .x-description-list__item {
436
+ display: flex;
437
+ gap: var(--x-space-3);
438
+ align-items: baseline;
439
+ justify-content: space-between;
440
+ }
441
+ .x-description-list--inline .x-description-list__term {
442
+ flex: none;
443
+ }
444
+ .x-description-list--inline .x-description-list__value {
445
+ text-align: right;
446
+ }
447
+ @media (min-width: 640px) {
448
+ .x-description-list--columns .x-description-list__item {
449
+ grid-template-columns: var(--x-description-list-term-width) minmax(0, 1fr);
450
+ gap: var(--x-space-3);
451
+ align-items: baseline;
452
+ }
453
+ }
454
+ .x-description-list--dividers {
455
+ gap: 0;
456
+ border-top: 1px solid var(--x-description-list-line);
457
+ }
458
+ .x-description-list--dividers .x-description-list__item {
459
+ padding-block: var(--x-description-list-pad);
460
+ border-bottom: 1px solid var(--x-description-list-line);
461
+ }
462
+ }
463
+ @layer x.reset, x.core, x.theme, x.utility;
464
+ @layer x.core {
465
+ .x-divider {
466
+ --x-divider-line: var(--x-color-line);
467
+ width: 100%;
468
+ height: 1px;
469
+ margin-block: var(--x-divider-space, var(--x-space-6));
470
+ background: var(--x-divider-line);
471
+ border: 0;
472
+ }
473
+ .x-divider--ornament, .x-divider--label {
474
+ display: flex;
475
+ gap: var(--x-divider-gap, var(--x-space-3));
476
+ align-items: center;
477
+ justify-content: center;
478
+ height: auto;
479
+ background: none;
480
+ }
481
+ .x-divider--ornament::before, .x-divider--ornament::after, .x-divider--label::before, .x-divider--label::after {
482
+ content: "";
483
+ flex: 1 1 0;
484
+ height: 1px;
485
+ background: var(--x-divider-line);
486
+ }
487
+ .x-divider__mark {
488
+ flex: none;
489
+ }
490
+ .x-divider__label {
491
+ flex: none;
492
+ max-width: 70%;
493
+ font-family: var(--x-font-ui);
494
+ font-size: var(--x-fs-label);
495
+ font-weight: 600;
496
+ line-height: 1.3;
497
+ letter-spacing: var(--x-track-label);
498
+ text-align: center;
499
+ text-transform: uppercase;
500
+ color: var(--x-color-text-muted);
501
+ }
502
+ }
503
+ @layer x.reset, x.core, x.theme, x.utility;
504
+ @layer x.core {
505
+ .x-empty-state {
506
+ display: grid;
507
+ gap: var(--x-space-3);
508
+ justify-items: center;
509
+ padding: var(--x-space-7) var(--x-space-5);
510
+ text-align: center;
511
+ }
512
+ .x-empty-state__icon {
513
+ display: inline-flex;
514
+ width: var(--x-empty-state-icon, 48px);
515
+ height: var(--x-empty-state-icon, 48px);
516
+ color: var(--x-color-field-edge);
517
+ }
518
+ .x-empty-state__icon svg {
519
+ width: 100%;
520
+ height: 100%;
521
+ }
522
+ .x-empty-state__title {
523
+ font-size: var(--x-fs-h3);
524
+ line-height: 1.3;
525
+ }
526
+ .x-empty-state__text {
527
+ max-width: var(--x-empty-state-measure, 36rem);
528
+ color: var(--x-color-text-muted);
529
+ }
530
+ .x-empty-state__text > * + * {
531
+ margin-top: var(--x-space-2);
532
+ }
533
+ .x-empty-state__actions {
534
+ display: flex;
535
+ flex-wrap: wrap;
536
+ gap: var(--x-space-2);
537
+ justify-content: center;
538
+ margin-top: var(--x-space-2);
539
+ }
540
+ }
541
+ @layer x.reset, x.core, x.theme, x.utility;
542
+ @layer x.core {
543
+ .x-field,
544
+ .x-choice-group,
545
+ .x-input,
546
+ .x-input-wrap,
547
+ .x-textarea,
548
+ .x-select,
549
+ .x-checkbox,
550
+ .x-radio,
551
+ .x-switch {
552
+ --x-field-font: var(--x-font-ui);
553
+ --x-field-bg: var(--x-color-bg-sunk);
554
+ --x-field-bg-focus: var(--x-field-bg);
555
+ --x-field-bg-disabled: var(--x-color-surface);
556
+ --x-field-bg-readonly: transparent;
557
+ --x-field-edge-readonly: var(--x-color-field-edge);
558
+ --x-field-edge-hover: var(--x-color-text-faint);
559
+ --x-field-glow: none;
560
+ --x-field-label-font: var(--x-font-ui);
561
+ --x-field-label-weight: 600;
562
+ --x-field-label-tracking: var(--x-track-label);
563
+ --x-field-label-case: uppercase;
564
+ --x-field-help-fs: var(--x-fs-label);
565
+ --x-field-arrow: var(--x-color-accent);
566
+ --x-check-size: 18px;
567
+ --x-check-mark: calc(var(--x-check-size) - 8px);
568
+ --x-check-edge: var(--x-color-field-edge);
569
+ --x-switch-width: 40px;
570
+ --x-switch-height: 22px;
571
+ --x-switch-knob: 14px;
572
+ --x-switch-knob-off: var(--x-color-text-faint);
573
+ --x-check-on-edge: var(--x-color-accent);
574
+ --x-check-on-bg: var(--x-field-bg);
575
+ --x-check-on-glow: none;
576
+ --x-check-ink: var(--x-color-accent);
577
+ --x-check-ink-glow: none;
578
+ }
579
+ .x-switch {
580
+ --x-check-on-bg: var(--x-color-accent-wash);
581
+ }
582
+ .x-field {
583
+ display: grid;
584
+ gap: var(--x-space-2);
585
+ align-content: start;
586
+ min-width: 0;
587
+ }
588
+ .x-field__label {
589
+ font-family: var(--x-field-label-font);
590
+ font-size: var(--x-fs-label);
591
+ font-weight: var(--x-field-label-weight);
592
+ line-height: 1.3;
593
+ letter-spacing: var(--x-field-label-tracking);
594
+ text-transform: var(--x-field-label-case);
595
+ color: var(--x-color-text-muted);
596
+ }
597
+ .x-field__required {
598
+ margin-left: 0.25em;
599
+ color: var(--x-color-accent);
600
+ }
601
+ .x-field__help, .x-field__error {
602
+ margin: 0;
603
+ font-family: var(--x-field-font);
604
+ font-size: var(--x-field-help-fs);
605
+ line-height: 1.4;
606
+ }
607
+ .x-field__help {
608
+ color: var(--x-color-text-faint);
609
+ }
610
+ .x-field__error {
611
+ font-weight: 600;
612
+ color: var(--x-color-danger);
613
+ }
614
+ .x-input,
615
+ .x-textarea,
616
+ .x-select {
617
+ display: block;
618
+ width: 100%;
619
+ min-width: 0;
620
+ min-height: var(--x-control-md);
621
+ padding: 0 var(--x-space-3);
622
+ margin: 0;
623
+ font-family: var(--x-field-font);
624
+ font-size: var(--x-fs-ui);
625
+ line-height: 1.4;
626
+ color: var(--x-color-text);
627
+ background-color: var(--x-field-bg);
628
+ border: 1px solid var(--x-color-field-edge);
629
+ border-radius: var(--x-radius);
630
+ transition: border-color var(--x-duration) var(--x-ease), box-shadow var(--x-duration) var(--x-ease), background-color var(--x-duration) var(--x-ease);
631
+ }
632
+ .x-input::placeholder,
633
+ .x-textarea::placeholder,
634
+ .x-select::placeholder {
635
+ color: var(--x-color-text-faint);
636
+ opacity: 1;
637
+ }
638
+ .x-input:hover:not(:disabled, [readonly]),
639
+ .x-textarea:hover:not(:disabled, [readonly]),
640
+ .x-select:hover:not(:disabled, [readonly]) {
641
+ border-color: var(--x-field-edge-hover);
642
+ }
643
+ .x-input[readonly],
644
+ .x-textarea[readonly],
645
+ .x-select[readonly] {
646
+ color: var(--x-color-text-muted);
647
+ background-color: var(--x-field-bg-readonly);
648
+ border-style: dashed;
649
+ border-color: var(--x-field-edge-readonly);
650
+ }
651
+ .x-input:focus-visible:not([readonly]),
652
+ .x-textarea:focus-visible:not([readonly]),
653
+ .x-select:focus-visible:not([readonly]) {
654
+ background-color: var(--x-field-bg-focus);
655
+ }
656
+ .x-input:focus-visible,
657
+ .x-textarea:focus-visible,
658
+ .x-select:focus-visible {
659
+ border-color: var(--x-color-accent);
660
+ outline: var(--x-focus-width) solid var(--x-color-focus);
661
+ outline-offset: var(--x-focus-offset);
662
+ box-shadow: var(--x-field-glow);
663
+ }
664
+ .x-input[aria-invalid=true],
665
+ .x-textarea[aria-invalid=true],
666
+ .x-select[aria-invalid=true] {
667
+ border-color: var(--x-color-danger);
668
+ box-shadow: 0 0 0 1px var(--x-color-danger);
669
+ }
670
+ .x-input:disabled,
671
+ .x-textarea:disabled,
672
+ .x-select:disabled {
673
+ color: var(--x-color-text-faint);
674
+ cursor: not-allowed;
675
+ background-color: var(--x-field-bg-disabled);
676
+ border-color: var(--x-color-line-strong);
677
+ }
678
+ .x-input {
679
+ height: var(--x-control-md);
680
+ }
681
+ .x-input--start {
682
+ padding-left: calc(var(--x-space-3) + 18px + var(--x-space-3));
683
+ }
684
+ .x-input::-webkit-search-cancel-button {
685
+ filter: grayscale(1);
686
+ }
687
+ .x-input-wrap {
688
+ position: relative;
689
+ display: block;
690
+ min-width: 0;
691
+ }
692
+ .x-input-wrap__start {
693
+ position: absolute;
694
+ top: 50%;
695
+ left: var(--x-space-3);
696
+ display: inline-flex;
697
+ color: var(--x-input-icon, var(--x-color-text-faint));
698
+ pointer-events: none;
699
+ transform: translateY(-50%);
700
+ }
701
+ .x-input-wrap__start svg {
702
+ width: 18px;
703
+ height: 18px;
704
+ }
705
+ .x-textarea {
706
+ min-height: var(--x-textarea-min, 8rem);
707
+ padding-block: 10px;
708
+ resize: vertical;
709
+ }
710
+ .x-select {
711
+ height: var(--x-control-md);
712
+ padding-right: 40px;
713
+ appearance: none;
714
+ cursor: pointer;
715
+ background-image: linear-gradient(to top right, transparent calc(50% - 0.8px), var(--x-field-arrow) calc(50% - 0.8px) calc(50% + 0.8px), transparent calc(50% + 0.8px)), linear-gradient(to top left, transparent calc(50% - 0.8px), var(--x-field-arrow) calc(50% - 0.8px) calc(50% + 0.8px), transparent calc(50% + 0.8px));
716
+ background-repeat: no-repeat;
717
+ background-position: right 19px center, right 14px center;
718
+ background-size: 5px 5px;
719
+ }
720
+ .x-select option {
721
+ color: var(--x-color-text);
722
+ background: var(--x-color-surface);
723
+ }
724
+ .x-select:disabled {
725
+ --x-field-arrow: var(--x-color-line-strong);
726
+ }
727
+ .x-checkbox,
728
+ .x-radio,
729
+ .x-switch {
730
+ display: flex;
731
+ gap: var(--x-space-3);
732
+ align-items: center;
733
+ min-height: var(--x-control-sm);
734
+ font-family: var(--x-field-font);
735
+ font-size: var(--x-fs-ui);
736
+ line-height: 1.4;
737
+ color: var(--x-color-text);
738
+ cursor: pointer;
739
+ }
740
+ .x-checkbox:has(:disabled),
741
+ .x-radio:has(:disabled),
742
+ .x-switch:has(:disabled) {
743
+ color: var(--x-color-text-faint);
744
+ cursor: not-allowed;
745
+ }
746
+ .x-checkbox__input,
747
+ .x-radio__input,
748
+ .x-switch__input {
749
+ position: relative;
750
+ display: grid;
751
+ flex: none;
752
+ place-content: center;
753
+ margin: 0;
754
+ appearance: none;
755
+ cursor: inherit;
756
+ background: var(--x-field-bg);
757
+ border: 1px solid var(--x-check-edge);
758
+ box-shadow: var(--x-check-ring, none);
759
+ transition: border-color var(--x-duration) var(--x-ease), background-color var(--x-duration) var(--x-ease), box-shadow var(--x-duration) var(--x-ease);
760
+ }
761
+ .x-checkbox__input::before,
762
+ .x-radio__input::before,
763
+ .x-switch__input::before {
764
+ content: "";
765
+ transition: transform var(--x-duration) var(--x-ease), opacity var(--x-duration) var(--x-ease), background-color var(--x-duration) var(--x-ease);
766
+ }
767
+ .x-checkbox__input:hover:not(:disabled),
768
+ .x-radio__input:hover:not(:disabled),
769
+ .x-switch__input:hover:not(:disabled) {
770
+ border-color: var(--x-check-edge-hover, var(--x-color-accent));
771
+ }
772
+ .x-checkbox__input:checked,
773
+ .x-radio__input:checked,
774
+ .x-switch__input:checked {
775
+ background: var(--x-check-on-bg);
776
+ border-color: var(--x-check-on-edge);
777
+ box-shadow: var(--x-check-ring, var(--x-check-on-glow));
778
+ }
779
+ .x-checkbox__input[aria-invalid=true],
780
+ .x-radio__input[aria-invalid=true],
781
+ .x-switch__input[aria-invalid=true] {
782
+ --x-check-edge: var(--x-color-danger);
783
+ --x-check-edge-hover: var(--x-color-danger);
784
+ --x-check-on-edge: var(--x-color-danger);
785
+ --x-check-on-bg: var(--x-color-danger-wash);
786
+ --x-check-ink: var(--x-color-danger);
787
+ --x-check-ink-glow: none;
788
+ --x-check-ring: 0 0 0 1px var(--x-color-danger);
789
+ }
790
+ .x-checkbox__input:disabled,
791
+ .x-radio__input:disabled,
792
+ .x-switch__input:disabled {
793
+ border-color: var(--x-color-line-strong);
794
+ }
795
+ .x-checkbox__input,
796
+ .x-radio__input {
797
+ width: var(--x-check-size);
798
+ height: var(--x-check-size);
799
+ }
800
+ .x-checkbox__input::before,
801
+ .x-radio__input::before {
802
+ width: var(--x-check-mark);
803
+ height: var(--x-check-mark);
804
+ background: var(--x-check-ink);
805
+ opacity: 0;
806
+ transform: scale(0.4);
807
+ }
808
+ .x-checkbox__input:checked::before,
809
+ .x-radio__input:checked::before {
810
+ box-shadow: var(--x-check-ink-glow);
811
+ opacity: 1;
812
+ transform: none;
813
+ }
814
+ .x-checkbox__input:disabled::before,
815
+ .x-radio__input:disabled::before {
816
+ background: var(--x-color-text-faint);
817
+ }
818
+ .x-checkbox__input {
819
+ border-radius: var(--x-radius);
820
+ }
821
+ .x-radio__input {
822
+ border-radius: 50%;
823
+ }
824
+ .x-radio__input::before {
825
+ border-radius: 50%;
826
+ }
827
+ .x-switch__input {
828
+ width: var(--x-switch-width);
829
+ height: var(--x-switch-height);
830
+ place-content: center start;
831
+ border-radius: var(--x-radius);
832
+ }
833
+ .x-switch__input::before {
834
+ width: var(--x-switch-knob);
835
+ height: var(--x-switch-knob);
836
+ margin-left: calc((var(--x-switch-height) - 2px - var(--x-switch-knob)) / 2);
837
+ background: var(--x-switch-knob-off);
838
+ }
839
+ .x-switch__input:checked::before {
840
+ background: var(--x-check-ink);
841
+ box-shadow: var(--x-check-ink-glow);
842
+ transform: translateX(calc(var(--x-switch-width) - var(--x-switch-height)));
843
+ }
844
+ .x-switch__input:disabled::before {
845
+ background: var(--x-color-line-strong);
846
+ }
847
+ .x-choice-group {
848
+ display: grid;
849
+ gap: var(--x-space-2);
850
+ align-content: start;
851
+ min-width: 0;
852
+ padding: 0;
853
+ margin: 0;
854
+ border: 0;
855
+ }
856
+ .x-choice-group__legend {
857
+ padding: 0;
858
+ margin-bottom: var(--x-space-2);
859
+ font-family: var(--x-field-label-font);
860
+ font-size: var(--x-fs-label);
861
+ font-weight: var(--x-field-label-weight);
862
+ line-height: 1.3;
863
+ letter-spacing: var(--x-field-label-tracking);
864
+ text-transform: var(--x-field-label-case);
865
+ color: var(--x-color-text-muted);
866
+ }
867
+ .x-choice-group__options {
868
+ display: flex;
869
+ flex-direction: column;
870
+ gap: var(--x-space-1);
871
+ }
872
+ .x-choice-group--horizontal .x-choice-group__options {
873
+ flex-flow: row wrap;
874
+ gap: var(--x-space-1) var(--x-space-5);
875
+ }
876
+ }
877
+ @layer x.reset, x.core, x.theme, x.utility;
878
+ @layer x.core {
879
+ .x-filters,
880
+ .x-filter-panel {
881
+ --x-filters-field-gap: var(--x-space-5);
882
+ }
883
+ .x-filters {
884
+ --x-filters-switch-font: var(--x-font-ui);
885
+ --x-filters-switch-fs: var(--x-fs-label);
886
+ --x-filters-switch-weight: 600;
887
+ --x-filters-switch-tracking: var(--x-track-label);
888
+ --x-filters-switch-case: uppercase;
889
+ --x-filters-switch-color: var(--x-color-text-muted);
890
+ --x-filters-option-font: var(--x-font-ui);
891
+ --x-filters-option-weight: 700;
892
+ --x-filters-option-tracking: var(--x-track-label);
893
+ --x-filters-option-color: var(--x-color-text-muted);
894
+ --x-filters-option-bg: transparent;
895
+ --x-filters-option-hover: var(--x-color-text);
896
+ --x-filters-option-on-color: var(--x-color-on-accent);
897
+ --x-filters-option-on-bg: var(--x-color-accent);
898
+ --x-filters-option-on-shadow: none;
899
+ --x-filters-toggle-bg: transparent;
900
+ --x-filters-count-color: var(--x-color-accent);
901
+ display: grid;
902
+ grid-template-columns: minmax(0, 1fr);
903
+ gap: var(--x-space-6) var(--x-gap);
904
+ align-items: start;
905
+ }
906
+ .x-filters__switch {
907
+ display: none;
908
+ grid-column: 1/-1;
909
+ min-width: 0;
910
+ padding: 0;
911
+ border: 0;
912
+ flex-wrap: wrap;
913
+ gap: var(--x-space-3);
914
+ align-items: center;
915
+ margin-bottom: calc(var(--x-space-4) - var(--x-space-6));
916
+ }
917
+ @media (min-width: 1024px) {
918
+ .x-filters__switch {
919
+ display: flex;
920
+ }
921
+ }
922
+ .x-filters__switch-label {
923
+ float: left;
924
+ padding: 0;
925
+ font-family: var(--x-filters-switch-font);
926
+ font-size: var(--x-filters-switch-fs);
927
+ font-weight: var(--x-filters-switch-weight);
928
+ line-height: 1.3;
929
+ letter-spacing: var(--x-filters-switch-tracking);
930
+ text-transform: var(--x-filters-switch-case);
931
+ color: var(--x-filters-switch-color);
932
+ }
933
+ .x-filters__switch-options {
934
+ display: inline-flex;
935
+ border: 1px solid var(--x-color-line-strong);
936
+ border-radius: var(--x-radius);
937
+ }
938
+ .x-filters__switch-option {
939
+ min-width: 64px;
940
+ height: var(--x-control-sm);
941
+ padding: 0 var(--x-space-4);
942
+ margin: 0;
943
+ font-family: var(--x-filters-option-font);
944
+ font-size: var(--x-fs-label);
945
+ font-weight: var(--x-filters-option-weight);
946
+ line-height: 1;
947
+ letter-spacing: var(--x-filters-option-tracking);
948
+ text-transform: uppercase;
949
+ color: var(--x-filters-option-color);
950
+ cursor: pointer;
951
+ background: var(--x-filters-option-bg);
952
+ border: 0;
953
+ transition: color var(--x-duration) var(--x-ease), background-color var(--x-duration) var(--x-ease);
954
+ }
955
+ .x-filters__switch-option + .x-filters__switch-option {
956
+ border-left: 1px solid var(--x-color-line-strong);
957
+ }
958
+ .x-filters__switch-option:hover {
959
+ color: var(--x-filters-option-hover);
960
+ }
961
+ .x-filters__switch-option:focus-visible {
962
+ position: relative;
963
+ outline: var(--x-focus-width) solid var(--x-color-focus);
964
+ outline-offset: var(--x-focus-offset);
965
+ }
966
+ .x-filters__switch-option[aria-pressed=true] {
967
+ color: var(--x-filters-option-on-color);
968
+ background: var(--x-filters-option-on-bg);
969
+ box-shadow: var(--x-filters-option-on-shadow);
970
+ }
971
+ .x-filters__disclosure {
972
+ display: none;
973
+ min-width: 0;
974
+ margin-bottom: calc(var(--x-space-3) - var(--x-space-6));
975
+ }
976
+ @media (width < 1024px) {
977
+ .x-filters__disclosure {
978
+ display: block;
979
+ }
980
+ .x-filters__disclosure:not([open]) {
981
+ margin-bottom: 0;
982
+ }
983
+ .x-filters__disclosure:not([open]) + .x-filters__controls {
984
+ display: none;
985
+ }
986
+ }
987
+ .x-filters__toggle {
988
+ display: flex;
989
+ gap: var(--x-space-3);
990
+ align-items: center;
991
+ min-height: var(--x-control-md);
992
+ padding: 0 var(--x-space-4);
993
+ font-family: var(--x-filters-switch-font);
994
+ font-size: var(--x-filters-switch-fs);
995
+ font-weight: var(--x-filters-switch-weight);
996
+ line-height: 1;
997
+ letter-spacing: var(--x-filters-switch-tracking);
998
+ text-transform: var(--x-filters-switch-case);
999
+ color: var(--x-color-text);
1000
+ list-style: none;
1001
+ cursor: pointer;
1002
+ background: var(--x-filters-toggle-bg);
1003
+ border: 1px solid var(--x-color-line-strong);
1004
+ border-radius: var(--x-radius);
1005
+ transition: border-color var(--x-duration) var(--x-ease);
1006
+ }
1007
+ .x-filters__toggle::-webkit-details-marker {
1008
+ display: none;
1009
+ }
1010
+ .x-filters__toggle::after {
1011
+ content: "";
1012
+ width: 7px;
1013
+ height: 7px;
1014
+ margin: -4px 2px 0 auto;
1015
+ border-right: 1.5px solid currentcolor;
1016
+ border-bottom: 1.5px solid currentcolor;
1017
+ transform: rotate(45deg);
1018
+ }
1019
+ [open] > .x-filters__toggle::after {
1020
+ margin-top: 4px;
1021
+ transform: rotate(-135deg);
1022
+ }
1023
+ .x-filters__toggle:hover {
1024
+ border-color: var(--x-color-accent-edge);
1025
+ }
1026
+ .x-filters__toggle:focus-visible {
1027
+ outline: var(--x-focus-width) solid var(--x-color-focus);
1028
+ outline-offset: var(--x-focus-offset);
1029
+ }
1030
+ .x-filters__count {
1031
+ display: inline-grid;
1032
+ place-items: center;
1033
+ min-width: 1.5rem;
1034
+ padding: 0 var(--x-space-1);
1035
+ font-family: var(--x-font-mono);
1036
+ font-size: var(--x-fs-label);
1037
+ font-weight: 400;
1038
+ line-height: 1.5;
1039
+ letter-spacing: normal;
1040
+ color: var(--x-filters-count-color);
1041
+ border: 1px solid var(--x-color-accent-edge);
1042
+ }
1043
+ .x-filters__controls, .x-filters__results {
1044
+ min-width: 0;
1045
+ }
1046
+ @media (min-width: 1024px) {
1047
+ .x-filters--side {
1048
+ grid-template-columns: repeat(12, minmax(0, 1fr));
1049
+ }
1050
+ .x-filters--side .x-filters__controls {
1051
+ grid-column: span 3;
1052
+ }
1053
+ .x-filters--side .x-filters__results {
1054
+ grid-column: span 9;
1055
+ }
1056
+ }
1057
+ .x-filter-panel {
1058
+ display: grid;
1059
+ gap: var(--x-filters-field-gap) var(--x-gap);
1060
+ align-content: start;
1061
+ min-width: 0;
1062
+ margin: 0;
1063
+ }
1064
+ @media (min-width: 640px) {
1065
+ .x-filter-panel {
1066
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1067
+ }
1068
+ }
1069
+ .x-filter-panel > .x-checkbox,
1070
+ .x-filter-panel > .x-switch {
1071
+ align-self: end;
1072
+ min-height: var(--x-control-md);
1073
+ }
1074
+ @media (min-width: 1024px) {
1075
+ .x-filters--side .x-filter-panel {
1076
+ grid-template-columns: minmax(0, 1fr);
1077
+ }
1078
+ .x-filters--side .x-filter-panel .x-choice-group__options {
1079
+ flex-direction: column;
1080
+ }
1081
+ .x-filters--side .x-filter-panel > .x-checkbox,
1082
+ .x-filters--side .x-filter-panel > .x-switch {
1083
+ min-height: var(--x-control-sm);
1084
+ }
1085
+ .x-filters--top .x-filter-panel {
1086
+ display: flex;
1087
+ flex-wrap: wrap;
1088
+ align-items: end;
1089
+ }
1090
+ .x-filters--top .x-filter-panel > * {
1091
+ flex: 1 1 14rem;
1092
+ }
1093
+ .x-filters--top .x-filter-panel > .x-choice-group {
1094
+ flex: 1.6 1 auto;
1095
+ }
1096
+ .x-filters--top .x-filter-panel > .x-checkbox,
1097
+ .x-filters--top .x-filter-panel > .x-switch {
1098
+ flex: none;
1099
+ margin-left: auto;
1100
+ }
1101
+ .x-filters--top .x-filter-panel .x-choice-group__options {
1102
+ align-items: center;
1103
+ min-height: var(--x-control-md);
1104
+ }
1105
+ }
1106
+ }
1107
+ @layer x.reset, x.core, x.theme, x.utility;
1108
+ @layer x.core {
1109
+ .x-footer__inner {
1110
+ display: grid;
1111
+ width: 100%;
1112
+ max-width: calc(var(--x-page) + 2 * var(--x-gutter));
1113
+ padding-inline: var(--x-gutter);
1114
+ margin-inline: auto;
1115
+ }
1116
+ .x-footer__brand {
1117
+ display: inline-flex;
1118
+ gap: 10px;
1119
+ align-items: center;
1120
+ justify-self: start;
1121
+ color: inherit;
1122
+ text-decoration: none;
1123
+ }
1124
+ .x-footer__brand svg {
1125
+ flex: none;
1126
+ width: var(--x-footer-mark, 28px);
1127
+ height: var(--x-footer-mark, 28px);
1128
+ }
1129
+ .x-footer__note {
1130
+ max-width: var(--x-prose);
1131
+ margin: 0;
1132
+ font-size: var(--x-fs-small);
1133
+ line-height: 1.5;
1134
+ }
1135
+ .x-footer__group {
1136
+ display: grid;
1137
+ gap: var(--x-space-3);
1138
+ align-content: start;
1139
+ min-width: 0;
1140
+ }
1141
+ .x-footer__title {
1142
+ margin: 0;
1143
+ font-size: var(--x-fs-label);
1144
+ line-height: 1.3;
1145
+ }
1146
+ .x-footer__links {
1147
+ display: grid;
1148
+ gap: var(--x-space-2);
1149
+ padding: 0;
1150
+ margin: 0;
1151
+ list-style: none;
1152
+ }
1153
+ .x-footer__link {
1154
+ text-decoration: none;
1155
+ }
1156
+ .x-footer__link:hover {
1157
+ text-decoration: underline;
1158
+ }
1159
+ .x-footer--columns .x-footer__inner {
1160
+ grid-template-columns: minmax(0, 1fr);
1161
+ gap: var(--x-space-3) var(--x-gap);
1162
+ }
1163
+ .x-footer--columns .x-footer__note {
1164
+ max-width: 30rem;
1165
+ }
1166
+ .x-footer--columns .x-footer__nav {
1167
+ display: grid;
1168
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1169
+ gap: var(--x-space-6) var(--x-gap);
1170
+ margin-top: var(--x-space-5);
1171
+ }
1172
+ @media (width >= 1024px) {
1173
+ .x-footer--columns .x-footer__inner {
1174
+ grid-template-rows: auto 1fr;
1175
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1176
+ }
1177
+ .x-footer--columns .x-footer__brand,
1178
+ .x-footer--columns .x-footer__note {
1179
+ grid-column: 1;
1180
+ }
1181
+ .x-footer--columns .x-footer__note {
1182
+ align-self: start;
1183
+ }
1184
+ .x-footer--columns .x-footer__nav {
1185
+ grid-auto-columns: minmax(0, 1fr);
1186
+ grid-auto-flow: column;
1187
+ grid-row: 1/span 2;
1188
+ grid-column: 2;
1189
+ grid-template-columns: none;
1190
+ margin-top: 0;
1191
+ }
1192
+ }
1193
+ .x-footer--row .x-footer__inner {
1194
+ grid-template-columns: 1fr auto;
1195
+ gap: var(--x-space-5);
1196
+ align-items: center;
1197
+ }
1198
+ .x-footer--row .x-footer__brand {
1199
+ grid-row: 1;
1200
+ grid-column: 1;
1201
+ }
1202
+ .x-footer--row .x-footer__nav {
1203
+ display: flex;
1204
+ flex-wrap: wrap;
1205
+ gap: var(--x-space-2) var(--x-space-5);
1206
+ grid-row: 1;
1207
+ grid-column: 2;
1208
+ }
1209
+ .x-footer--row .x-footer__note {
1210
+ grid-column: 1/-1;
1211
+ }
1212
+ .x-footer--row .x-footer__title {
1213
+ position: absolute;
1214
+ width: 1px;
1215
+ height: 1px;
1216
+ overflow: hidden;
1217
+ clip-path: inset(50%);
1218
+ white-space: nowrap;
1219
+ }
1220
+ .x-footer--row .x-footer__links {
1221
+ display: flex;
1222
+ flex-wrap: wrap;
1223
+ gap: var(--x-space-2) var(--x-space-5);
1224
+ }
1225
+ @media (width < 640px) {
1226
+ .x-footer--row .x-footer__inner {
1227
+ grid-template-columns: 1fr;
1228
+ }
1229
+ .x-footer--row .x-footer__nav {
1230
+ grid-row: 2;
1231
+ grid-column: 1;
1232
+ }
1233
+ }
1234
+ }
1235
+ @layer x.reset, x.core, x.theme, x.utility;
1236
+ @layer x.core {
1237
+ .x-header {
1238
+ --x-header-height: 72px;
1239
+ --x-header-bg: transparent;
1240
+ position: relative;
1241
+ z-index: 50;
1242
+ background: var(--x-header-bg);
1243
+ }
1244
+ .x-header--sticky {
1245
+ position: sticky;
1246
+ top: 0;
1247
+ }
1248
+ .x-header__inner {
1249
+ position: relative;
1250
+ width: 100%;
1251
+ max-width: calc(var(--x-page) + 2 * var(--x-gutter));
1252
+ padding-inline: var(--x-gutter);
1253
+ margin-inline: auto;
1254
+ }
1255
+ .x-header__brand {
1256
+ display: inline-flex;
1257
+ flex: 0 1 auto;
1258
+ gap: var(--x-header-brand-gap, 10px);
1259
+ align-items: center;
1260
+ min-width: 0;
1261
+ color: inherit;
1262
+ text-decoration: none;
1263
+ }
1264
+ .x-header__brand > :not(svg) {
1265
+ min-width: 0;
1266
+ overflow: hidden;
1267
+ text-overflow: ellipsis;
1268
+ white-space: nowrap;
1269
+ }
1270
+ .x-header__brand svg {
1271
+ flex: none;
1272
+ width: var(--x-header-mark, 28px);
1273
+ height: var(--x-header-mark, 28px);
1274
+ }
1275
+ .x-header__list {
1276
+ display: flex;
1277
+ align-items: center;
1278
+ padding: 0;
1279
+ margin: 0;
1280
+ list-style: none;
1281
+ }
1282
+ .x-header__item {
1283
+ display: flex;
1284
+ align-items: center;
1285
+ }
1286
+ .x-header__link {
1287
+ position: relative;
1288
+ display: flex;
1289
+ align-items: center;
1290
+ min-height: var(--x-control-md);
1291
+ text-decoration: none;
1292
+ white-space: nowrap;
1293
+ }
1294
+ .x-header__actions {
1295
+ display: flex;
1296
+ flex: none;
1297
+ gap: var(--x-space-2);
1298
+ align-items: center;
1299
+ }
1300
+ .x-header__menu {
1301
+ display: none;
1302
+ }
1303
+ .x-header__menu > summary {
1304
+ list-style: none;
1305
+ }
1306
+ .x-header__menu > summary::-webkit-details-marker {
1307
+ display: none;
1308
+ }
1309
+ .x-header__panel {
1310
+ display: grid;
1311
+ gap: var(--x-space-2);
1312
+ }
1313
+ .x-header__panel .x-header__list {
1314
+ display: grid;
1315
+ align-items: stretch;
1316
+ }
1317
+ .x-header--inline .x-header__inner {
1318
+ display: flex;
1319
+ gap: var(--x-space-5);
1320
+ align-items: center;
1321
+ height: var(--x-header-height);
1322
+ }
1323
+ .x-header--inline .x-header__nav {
1324
+ margin-left: auto;
1325
+ }
1326
+ .x-header--inline .x-header__list {
1327
+ gap: var(--x-space-1);
1328
+ }
1329
+ .x-header--inline .x-header__menu {
1330
+ position: relative;
1331
+ }
1332
+ .x-header--inline .x-header__panel {
1333
+ position: absolute;
1334
+ top: calc(100% + (var(--x-header-height) - var(--x-control-sm)) / 2);
1335
+ right: 0;
1336
+ min-width: 220px;
1337
+ padding: var(--x-space-2);
1338
+ }
1339
+ .x-header--stacked .x-header__inner {
1340
+ display: grid;
1341
+ grid-template-areas: ". brand actions" "nav nav nav";
1342
+ grid-template-columns: 1fr auto 1fr;
1343
+ row-gap: var(--x-space-4);
1344
+ align-items: center;
1345
+ padding-top: var(--x-space-6);
1346
+ }
1347
+ .x-header--stacked .x-header__brand {
1348
+ grid-area: brand;
1349
+ justify-self: center;
1350
+ }
1351
+ .x-header--stacked .x-header__actions {
1352
+ grid-area: actions;
1353
+ justify-self: end;
1354
+ }
1355
+ .x-header--stacked .x-header__nav {
1356
+ grid-area: nav;
1357
+ }
1358
+ .x-header--stacked .x-header__list {
1359
+ flex-wrap: wrap;
1360
+ justify-content: center;
1361
+ }
1362
+ .x-header--stacked .x-header__menu {
1363
+ grid-area: menu;
1364
+ }
1365
+ .x-header--stacked .x-header__panel {
1366
+ justify-items: center;
1367
+ padding-bottom: var(--x-space-4);
1368
+ }
1369
+ .x-header--stacked .x-header__panel .x-header__list {
1370
+ justify-items: center;
1371
+ }
1372
+ @media (width < 860px) {
1373
+ .x-header .x-header__nav {
1374
+ display: none;
1375
+ }
1376
+ .x-header .x-header__menu {
1377
+ display: block;
1378
+ }
1379
+ .x-header--inline .x-header__inner {
1380
+ gap: var(--x-space-3);
1381
+ }
1382
+ .x-header--inline .x-header__brand {
1383
+ margin-right: auto;
1384
+ }
1385
+ .x-header--stacked .x-header__inner {
1386
+ grid-template-areas: ". brand actions" "menu menu menu";
1387
+ padding-top: var(--x-space-5);
1388
+ }
1389
+ .x-header--stacked .x-header__menu {
1390
+ justify-self: stretch;
1391
+ text-align: center;
1392
+ }
1393
+ .x-header--stacked .x-header__menu > summary {
1394
+ margin-bottom: var(--x-space-3);
1395
+ }
1396
+ }
1397
+ }
1398
+ @layer x.reset, x.core, x.theme, x.utility;
1399
+ @layer x.core {
1400
+ .x-icon {
1401
+ display: inline-block;
1402
+ flex: none;
1403
+ vertical-align: -0.125em;
1404
+ stroke-width: var(--x-icon-stroke, 1.5);
1405
+ stroke-linecap: var(--x-icon-cap, round);
1406
+ stroke-linejoin: var(--x-icon-join, round);
1407
+ }
1408
+ .x-icon:not([width]) {
1409
+ width: 1em;
1410
+ height: 1em;
1411
+ }
1412
+ }
1413
+ @layer x.reset, x.core, x.theme, x.utility;
1414
+ @layer x.core {
1415
+ .x-container {
1416
+ width: 100%;
1417
+ max-width: calc(var(--x-page) + 2 * var(--x-gutter));
1418
+ padding-inline: var(--x-gutter);
1419
+ margin-inline: auto;
1420
+ }
1421
+ .x-container--prose {
1422
+ max-width: calc(var(--x-prose) + 2 * var(--x-gutter));
1423
+ }
1424
+ .x-grid {
1425
+ display: grid;
1426
+ grid-template-columns: repeat(12, minmax(0, 1fr));
1427
+ gap: var(--x-gap);
1428
+ }
1429
+ .x-col-1 {
1430
+ grid-column: 1/-1;
1431
+ min-width: 0;
1432
+ }
1433
+ .x-col-1.x-col--keep {
1434
+ grid-column: span 1;
1435
+ }
1436
+ @media (min-width: 640px) {
1437
+ .x-col-1.x-col--stack-sm {
1438
+ grid-column: span 1;
1439
+ }
1440
+ }
1441
+ @media (min-width: 1024px) {
1442
+ .x-col-1 {
1443
+ grid-column: span 1;
1444
+ }
1445
+ }
1446
+ .x-col-2 {
1447
+ grid-column: 1/-1;
1448
+ min-width: 0;
1449
+ }
1450
+ .x-col-2.x-col--keep {
1451
+ grid-column: span 2;
1452
+ }
1453
+ @media (min-width: 640px) {
1454
+ .x-col-2.x-col--stack-sm {
1455
+ grid-column: span 2;
1456
+ }
1457
+ }
1458
+ @media (min-width: 1024px) {
1459
+ .x-col-2 {
1460
+ grid-column: span 2;
1461
+ }
1462
+ }
1463
+ .x-col-3 {
1464
+ grid-column: 1/-1;
1465
+ min-width: 0;
1466
+ }
1467
+ .x-col-3.x-col--keep {
1468
+ grid-column: span 3;
1469
+ }
1470
+ @media (min-width: 640px) {
1471
+ .x-col-3.x-col--stack-sm {
1472
+ grid-column: span 3;
1473
+ }
1474
+ }
1475
+ @media (min-width: 1024px) {
1476
+ .x-col-3 {
1477
+ grid-column: span 3;
1478
+ }
1479
+ }
1480
+ .x-col-4 {
1481
+ grid-column: 1/-1;
1482
+ min-width: 0;
1483
+ }
1484
+ .x-col-4.x-col--keep {
1485
+ grid-column: span 4;
1486
+ }
1487
+ @media (min-width: 640px) {
1488
+ .x-col-4.x-col--stack-sm {
1489
+ grid-column: span 4;
1490
+ }
1491
+ }
1492
+ @media (min-width: 1024px) {
1493
+ .x-col-4 {
1494
+ grid-column: span 4;
1495
+ }
1496
+ }
1497
+ .x-col-5 {
1498
+ grid-column: 1/-1;
1499
+ min-width: 0;
1500
+ }
1501
+ .x-col-5.x-col--keep {
1502
+ grid-column: span 5;
1503
+ }
1504
+ @media (min-width: 640px) {
1505
+ .x-col-5.x-col--stack-sm {
1506
+ grid-column: span 5;
1507
+ }
1508
+ }
1509
+ @media (min-width: 1024px) {
1510
+ .x-col-5 {
1511
+ grid-column: span 5;
1512
+ }
1513
+ }
1514
+ .x-col-6 {
1515
+ grid-column: 1/-1;
1516
+ min-width: 0;
1517
+ }
1518
+ .x-col-6.x-col--keep {
1519
+ grid-column: span 6;
1520
+ }
1521
+ @media (min-width: 640px) {
1522
+ .x-col-6.x-col--stack-sm {
1523
+ grid-column: span 6;
1524
+ }
1525
+ }
1526
+ @media (min-width: 1024px) {
1527
+ .x-col-6 {
1528
+ grid-column: span 6;
1529
+ }
1530
+ }
1531
+ .x-col-7 {
1532
+ grid-column: 1/-1;
1533
+ min-width: 0;
1534
+ }
1535
+ .x-col-7.x-col--keep {
1536
+ grid-column: span 7;
1537
+ }
1538
+ @media (min-width: 640px) {
1539
+ .x-col-7.x-col--stack-sm {
1540
+ grid-column: span 7;
1541
+ }
1542
+ }
1543
+ @media (min-width: 1024px) {
1544
+ .x-col-7 {
1545
+ grid-column: span 7;
1546
+ }
1547
+ }
1548
+ .x-col-8 {
1549
+ grid-column: 1/-1;
1550
+ min-width: 0;
1551
+ }
1552
+ .x-col-8.x-col--keep {
1553
+ grid-column: span 8;
1554
+ }
1555
+ @media (min-width: 640px) {
1556
+ .x-col-8.x-col--stack-sm {
1557
+ grid-column: span 8;
1558
+ }
1559
+ }
1560
+ @media (min-width: 1024px) {
1561
+ .x-col-8 {
1562
+ grid-column: span 8;
1563
+ }
1564
+ }
1565
+ .x-col-9 {
1566
+ grid-column: 1/-1;
1567
+ min-width: 0;
1568
+ }
1569
+ .x-col-9.x-col--keep {
1570
+ grid-column: span 9;
1571
+ }
1572
+ @media (min-width: 640px) {
1573
+ .x-col-9.x-col--stack-sm {
1574
+ grid-column: span 9;
1575
+ }
1576
+ }
1577
+ @media (min-width: 1024px) {
1578
+ .x-col-9 {
1579
+ grid-column: span 9;
1580
+ }
1581
+ }
1582
+ .x-col-10 {
1583
+ grid-column: 1/-1;
1584
+ min-width: 0;
1585
+ }
1586
+ .x-col-10.x-col--keep {
1587
+ grid-column: span 10;
1588
+ }
1589
+ @media (min-width: 640px) {
1590
+ .x-col-10.x-col--stack-sm {
1591
+ grid-column: span 10;
1592
+ }
1593
+ }
1594
+ @media (min-width: 1024px) {
1595
+ .x-col-10 {
1596
+ grid-column: span 10;
1597
+ }
1598
+ }
1599
+ .x-col-11 {
1600
+ grid-column: 1/-1;
1601
+ min-width: 0;
1602
+ }
1603
+ .x-col-11.x-col--keep {
1604
+ grid-column: span 11;
1605
+ }
1606
+ @media (min-width: 640px) {
1607
+ .x-col-11.x-col--stack-sm {
1608
+ grid-column: span 11;
1609
+ }
1610
+ }
1611
+ @media (min-width: 1024px) {
1612
+ .x-col-11 {
1613
+ grid-column: span 11;
1614
+ }
1615
+ }
1616
+ .x-col-12 {
1617
+ grid-column: 1/-1;
1618
+ min-width: 0;
1619
+ }
1620
+ .x-col-12.x-col--keep {
1621
+ grid-column: span 12;
1622
+ }
1623
+ @media (min-width: 640px) {
1624
+ .x-col-12.x-col--stack-sm {
1625
+ grid-column: span 12;
1626
+ }
1627
+ }
1628
+ @media (min-width: 1024px) {
1629
+ .x-col-12 {
1630
+ grid-column: span 12;
1631
+ }
1632
+ }
1633
+ .x-section {
1634
+ padding-block: var(--x-section);
1635
+ }
1636
+ .x-section + .x-section {
1637
+ padding-top: 0;
1638
+ }
1639
+ .x-section--tight {
1640
+ padding-block: calc(var(--x-section) / 2);
1641
+ }
1642
+ .x-section-head {
1643
+ display: flex;
1644
+ flex-wrap: wrap;
1645
+ gap: var(--x-space-3) var(--x-space-5);
1646
+ align-items: end;
1647
+ justify-content: space-between;
1648
+ margin-bottom: var(--x-space-7);
1649
+ }
1650
+ .x-section-head__titles {
1651
+ display: grid;
1652
+ gap: var(--x-space-2);
1653
+ min-width: 0;
1654
+ }
1655
+ .x-section-head__eyebrow {
1656
+ font-family: var(--x-font-display);
1657
+ font-size: var(--x-fs-label);
1658
+ font-weight: 600;
1659
+ line-height: 1.3;
1660
+ letter-spacing: var(--x-track-label);
1661
+ text-transform: uppercase;
1662
+ color: var(--x-color-accent);
1663
+ }
1664
+ .x-section-head__title {
1665
+ font-size: var(--x-fs-h2);
1666
+ }
1667
+ .x-section-head__sub {
1668
+ max-width: var(--x-prose);
1669
+ color: var(--x-color-text-muted);
1670
+ }
1671
+ .x-section-head__link {
1672
+ flex: none;
1673
+ }
1674
+ }
1675
+ @layer x.reset, x.core, x.theme, x.utility;
1676
+ @layer x.core {
1677
+ .x-page-head {
1678
+ display: grid;
1679
+ gap: var(--x-space-5);
1680
+ margin-bottom: var(--x-space-7);
1681
+ }
1682
+ .x-page-head__crumbs {
1683
+ display: flex;
1684
+ min-width: 0;
1685
+ }
1686
+ .x-page-head__body {
1687
+ display: flex;
1688
+ flex-wrap: wrap;
1689
+ gap: var(--x-space-5);
1690
+ align-items: end;
1691
+ justify-content: space-between;
1692
+ }
1693
+ .x-page-head__titles {
1694
+ display: grid;
1695
+ flex: 1 1 30rem;
1696
+ gap: var(--x-space-3);
1697
+ min-width: 0;
1698
+ }
1699
+ .x-page-head__eyebrow {
1700
+ font-family: var(--x-font-display);
1701
+ font-size: var(--x-fs-label);
1702
+ font-weight: 600;
1703
+ line-height: 1.3;
1704
+ letter-spacing: var(--x-track-label);
1705
+ text-transform: uppercase;
1706
+ color: var(--x-color-accent);
1707
+ }
1708
+ .x-page-head__title {
1709
+ font-family: var(--x-font-display);
1710
+ font-size: var(--x-fs-h1);
1711
+ line-height: 1.15;
1712
+ }
1713
+ .x-page-head__lead {
1714
+ max-width: var(--x-prose);
1715
+ font-size: var(--x-fs-lead);
1716
+ line-height: 1.55;
1717
+ color: var(--x-color-text-muted);
1718
+ }
1719
+ .x-page-head__meta {
1720
+ display: flex;
1721
+ flex-wrap: wrap;
1722
+ gap: var(--x-space-2) var(--x-space-3);
1723
+ align-items: center;
1724
+ margin-top: var(--x-space-1);
1725
+ font-size: var(--x-fs-small);
1726
+ line-height: 1.5;
1727
+ color: var(--x-color-text-muted);
1728
+ }
1729
+ .x-page-head__actions {
1730
+ display: flex;
1731
+ flex-wrap: wrap;
1732
+ gap: var(--x-space-3);
1733
+ align-items: center;
1734
+ min-width: 0;
1735
+ }
1736
+ .x-page-head--center {
1737
+ text-align: center;
1738
+ }
1739
+ .x-page-head--center .x-page-head__crumbs,
1740
+ .x-page-head--center .x-page-head__meta,
1741
+ .x-page-head--center .x-page-head__actions {
1742
+ justify-content: center;
1743
+ }
1744
+ .x-page-head--center .x-page-head__body {
1745
+ flex-direction: column;
1746
+ align-items: center;
1747
+ }
1748
+ .x-page-head--center .x-page-head__titles {
1749
+ flex: none;
1750
+ justify-items: center;
1751
+ width: 100%;
1752
+ }
1753
+ }
1754
+ @layer x.reset, x.core, x.theme, x.utility;
1755
+ @layer x.core {
1756
+ .x-pagination__list {
1757
+ display: flex;
1758
+ flex-wrap: wrap;
1759
+ gap: var(--x-space-2);
1760
+ align-items: center;
1761
+ padding: 0;
1762
+ margin: 0;
1763
+ list-style: none;
1764
+ }
1765
+ .x-pagination--center .x-pagination__list {
1766
+ justify-content: center;
1767
+ }
1768
+ .x-pagination__item {
1769
+ display: flex;
1770
+ }
1771
+ .x-pagination__item--summary {
1772
+ display: none;
1773
+ }
1774
+ @media (width < 480px) {
1775
+ .x-pagination__list {
1776
+ flex-wrap: nowrap;
1777
+ }
1778
+ .x-pagination__item--page, .x-pagination__item--end {
1779
+ display: none;
1780
+ }
1781
+ .x-pagination__item--summary {
1782
+ display: flex;
1783
+ }
1784
+ }
1785
+ .x-pagination__link, .x-pagination__gap, .x-pagination__summary {
1786
+ display: grid;
1787
+ place-items: center;
1788
+ min-width: var(--x-control-md);
1789
+ height: var(--x-control-md);
1790
+ padding: 0 var(--x-space-3);
1791
+ font-size: var(--x-fs-small);
1792
+ line-height: 1;
1793
+ color: var(--x-color-text-muted);
1794
+ text-decoration: none;
1795
+ white-space: nowrap;
1796
+ border: 1px solid var(--x-color-line-strong);
1797
+ transition: color var(--x-duration) var(--x-ease), border-color var(--x-duration) var(--x-ease);
1798
+ }
1799
+ .x-pagination__link:where(a):hover {
1800
+ color: var(--x-color-accent);
1801
+ border-color: var(--x-color-accent-edge);
1802
+ }
1803
+ .x-pagination__link[aria-current=page], .x-pagination__link[aria-current=page]:hover {
1804
+ color: var(--x-color-on-accent);
1805
+ background: var(--x-color-accent);
1806
+ border-color: var(--x-color-accent);
1807
+ }
1808
+ .x-pagination__link--edge {
1809
+ padding: 0 var(--x-space-4);
1810
+ font-size: var(--x-fs-label);
1811
+ text-transform: uppercase;
1812
+ }
1813
+ .x-pagination__link--disabled {
1814
+ color: var(--x-color-text-faint);
1815
+ }
1816
+ .x-pagination__gap, .x-pagination__summary {
1817
+ border-color: transparent;
1818
+ }
1819
+ .x-pagination__summary {
1820
+ font-variant-numeric: tabular-nums;
1821
+ color: var(--x-color-text);
1822
+ }
1823
+ }
1824
+ @layer x.reset, x.core, x.theme, x.utility;
1825
+ @layer x.core {
1826
+ .x-panel {
1827
+ --x-panel-pad: var(--x-space-4);
1828
+ position: relative;
1829
+ box-sizing: border-box;
1830
+ min-width: 0;
1831
+ padding: var(--x-panel-pad);
1832
+ color: var(--x-color-text);
1833
+ }
1834
+ @media (min-width: 640px) {
1835
+ .x-panel {
1836
+ --x-panel-pad: var(--x-space-5);
1837
+ }
1838
+ }
1839
+ .x-panel--pad-none {
1840
+ --x-panel-pad: 0;
1841
+ }
1842
+ @media (min-width: 640px) {
1843
+ .x-panel--pad-none {
1844
+ --x-panel-pad: 0;
1845
+ }
1846
+ }
1847
+ .x-panel--pad-sm {
1848
+ --x-panel-pad: var(--x-space-3);
1849
+ }
1850
+ @media (min-width: 640px) {
1851
+ .x-panel--pad-sm {
1852
+ --x-panel-pad: var(--x-space-4);
1853
+ }
1854
+ }
1855
+ .x-panel--pad-lg {
1856
+ --x-panel-pad: var(--x-space-5);
1857
+ }
1858
+ @media (min-width: 640px) {
1859
+ .x-panel--pad-lg {
1860
+ --x-panel-pad: var(--x-space-6);
1861
+ }
1862
+ }
1863
+ .x-panel--pad-xl {
1864
+ --x-panel-pad: var(--x-space-6) var(--x-space-5);
1865
+ }
1866
+ @media (min-width: 640px) {
1867
+ .x-panel--pad-xl {
1868
+ --x-panel-pad: var(--x-space-7);
1869
+ }
1870
+ }
1871
+ }
1872
+ @layer x.reset, x.core, x.theme, x.utility;
1873
+ @layer x.core {
1874
+ .x-progress {
1875
+ --x-progress-tone: var(--x-progress-default, var(--x-color-accent));
1876
+ --x-progress-height: var(--x-progress-md, 8px);
1877
+ --x-progress-end: var(--x-progress-tone);
1878
+ display: flex;
1879
+ gap: var(--x-space-3);
1880
+ align-items: center;
1881
+ min-width: 9rem;
1882
+ }
1883
+ .x-progress--sm {
1884
+ --x-progress-height: var(--x-progress-sm, 4px);
1885
+ gap: var(--x-space-2);
1886
+ }
1887
+ .x-progress--done {
1888
+ --x-progress-tone: var(--x-color-success);
1889
+ }
1890
+ .x-progress--info {
1891
+ --x-progress-tone: var(--x-color-info);
1892
+ }
1893
+ .x-progress--success {
1894
+ --x-progress-tone: var(--x-color-success);
1895
+ }
1896
+ .x-progress--warning {
1897
+ --x-progress-tone: var(--x-color-warning);
1898
+ }
1899
+ .x-progress--danger {
1900
+ --x-progress-tone: var(--x-color-danger);
1901
+ }
1902
+ .x-progress--gradient {
1903
+ --x-progress-end: color-mix(in srgb, var(--x-progress-tone) var(--x-progress, 100%), var(--x-progress-start));
1904
+ }
1905
+ .x-progress--from-default {
1906
+ --x-progress-start: var(--x-progress-default, var(--x-color-accent));
1907
+ }
1908
+ .x-progress--from-info {
1909
+ --x-progress-start: var(--x-color-info);
1910
+ }
1911
+ .x-progress--from-success {
1912
+ --x-progress-start: var(--x-color-success);
1913
+ }
1914
+ .x-progress--from-warning {
1915
+ --x-progress-start: var(--x-color-warning);
1916
+ }
1917
+ .x-progress--from-danger {
1918
+ --x-progress-start: var(--x-color-danger);
1919
+ }
1920
+ .x-progress__track {
1921
+ position: relative;
1922
+ display: block;
1923
+ flex: 1;
1924
+ min-width: 0;
1925
+ height: var(--x-progress-height);
1926
+ background: var(--x-progress-track, var(--x-color-surface-3));
1927
+ border: 1px solid var(--x-progress-edge, var(--x-color-line-strong));
1928
+ container-type: inline-size;
1929
+ }
1930
+ .x-progress__fill {
1931
+ position: absolute;
1932
+ inset-block: var(--x-progress-inset, 0);
1933
+ inset-inline-start: 0;
1934
+ display: block;
1935
+ width: var(--x-progress, 0%);
1936
+ background: var(--x-progress-tone);
1937
+ }
1938
+ .x-progress--gradient .x-progress__fill {
1939
+ background: linear-gradient(90deg, var(--x-progress-start), var(--x-progress-tone)) 0 0/100cqw 100% no-repeat;
1940
+ }
1941
+ .x-progress__value {
1942
+ flex: none;
1943
+ min-width: 4ch;
1944
+ font-family: var(--x-font-mono);
1945
+ font-size: var(--x-fs-label);
1946
+ font-variant-numeric: tabular-nums;
1947
+ line-height: 1;
1948
+ color: var(--x-color-text-muted);
1949
+ text-align: end;
1950
+ }
1951
+ .x-progress--indeterminate .x-progress__track {
1952
+ clip-path: inset(-8px 0);
1953
+ }
1954
+ .x-progress--indeterminate .x-progress__fill {
1955
+ width: 30%;
1956
+ animation: x-progress-sweep var(--x-progress-sweep, 2.4s) cubic-bezier(0.45, 0, 0.55, 1) infinite;
1957
+ }
1958
+ .x-progress--indeterminate.x-progress--gradient .x-progress__fill {
1959
+ animation-name: x-progress-sweep-track;
1960
+ }
1961
+ @media (prefers-reduced-motion: reduce) {
1962
+ .x-progress--indeterminate .x-progress__fill {
1963
+ width: 100%;
1964
+ opacity: 0.6;
1965
+ animation: none;
1966
+ }
1967
+ }
1968
+ @keyframes x-progress-sweep {
1969
+ from {
1970
+ inset-inline-start: -30%;
1971
+ }
1972
+ to {
1973
+ inset-inline-start: 100%;
1974
+ }
1975
+ }
1976
+ @keyframes x-progress-sweep-track {
1977
+ from {
1978
+ inset-inline-start: -30%;
1979
+ background-position-x: 30cqw;
1980
+ }
1981
+ to {
1982
+ inset-inline-start: 100%;
1983
+ background-position-x: -100cqw;
1984
+ }
1985
+ }
1986
+ }
1987
+ @layer x.reset, x.core, x.theme, x.utility;
1988
+ @layer x.core {
1989
+ .x-prose {
1990
+ --x-prose-block: 2em;
1991
+ min-width: 0;
1992
+ }
1993
+ .x-prose > * + * {
1994
+ margin-top: 1em;
1995
+ }
1996
+ .x-prose > :is(p, ul, ol, h2, h3, h4, blockquote, hr) {
1997
+ max-width: var(--x-prose);
1998
+ }
1999
+ .x-prose > :is(h2, h3, h4) {
2000
+ margin-top: 2em;
2001
+ scroll-margin-top: var(--x-space-8);
2002
+ }
2003
+ .x-prose > :is(h2, h3, h4) + * {
2004
+ margin-top: 0.5em;
2005
+ }
2006
+ .x-prose > :first-child {
2007
+ margin-top: 0;
2008
+ }
2009
+ .x-prose > :is(blockquote, figure, table, pre, .x-code, hr) {
2010
+ margin-block: var(--x-prose-block);
2011
+ }
2012
+ .x-prose :where(ul, ol) {
2013
+ display: grid;
2014
+ gap: var(--x-space-2);
2015
+ padding-left: 1.5rem;
2016
+ }
2017
+ .x-prose :where(li) > :where(ul, ol) {
2018
+ margin-top: var(--x-space-2);
2019
+ }
2020
+ .x-prose :where(blockquote) {
2021
+ position: relative;
2022
+ }
2023
+ .x-prose :where(blockquote) > * + * {
2024
+ margin-top: 0.75em;
2025
+ }
2026
+ .x-prose :where(blockquote) > :is(footer, cite) {
2027
+ display: block;
2028
+ font-style: normal;
2029
+ }
2030
+ .x-prose :where(:not(pre)) > :where(code) {
2031
+ padding: 0.1em 0.35em;
2032
+ font-size: 0.875em;
2033
+ overflow-wrap: anywhere;
2034
+ }
2035
+ .x-prose :where(figure:not(.x-code)) {
2036
+ display: grid;
2037
+ gap: var(--x-space-3);
2038
+ min-width: 0;
2039
+ overflow-x: auto;
2040
+ }
2041
+ .x-prose :where(figure:not(.x-code)) > :is(img, svg, video, picture) {
2042
+ width: 100%;
2043
+ height: auto;
2044
+ }
2045
+ .x-prose :where(figcaption) {
2046
+ font-size: var(--x-fs-small);
2047
+ line-height: 1.5;
2048
+ color: var(--x-color-text-muted);
2049
+ }
2050
+ .x-prose :where(table:not(.x-table)) {
2051
+ width: 100%;
2052
+ font-size: var(--x-fs-ui);
2053
+ line-height: 1.4;
2054
+ border-collapse: collapse;
2055
+ }
2056
+ .x-prose :where(table:not(.x-table)) :where(caption) {
2057
+ padding: var(--x-space-3) var(--x-table-pad-x, var(--x-space-4));
2058
+ font-size: var(--x-fs-small);
2059
+ line-height: 1.5;
2060
+ text-align: start;
2061
+ caption-side: bottom;
2062
+ color: var(--x-color-text-muted);
2063
+ }
2064
+ .x-prose :where(table:not(.x-table)) :where(thead th) {
2065
+ height: var(--x-table-row, var(--x-row));
2066
+ padding: 0 var(--x-table-pad-x, var(--x-space-4));
2067
+ font-size: var(--x-fs-label);
2068
+ line-height: 1.3;
2069
+ text-align: start;
2070
+ white-space: nowrap;
2071
+ vertical-align: middle;
2072
+ }
2073
+ .x-prose :where(table:not(.x-table)) :where(tbody) :where(td, th) {
2074
+ height: var(--x-table-row, var(--x-row));
2075
+ padding: var(--x-table-pad-y, var(--x-space-3)) var(--x-table-pad-x, var(--x-space-4));
2076
+ text-align: start;
2077
+ vertical-align: middle;
2078
+ border-bottom: 1px solid var(--x-color-line);
2079
+ transition: background-color var(--x-duration) var(--x-ease);
2080
+ }
2081
+ .x-prose :where(table:not(.x-table)) :where(tbody tr:last-child) > :where(td, th) {
2082
+ border-bottom: 0;
2083
+ }
2084
+ .x-prose :where(table:not(.x-table)) :where(tbody tr:hover) > :where(td, th) {
2085
+ background-color: var(--x-table-hover, var(--x-color-accent-wash));
2086
+ }
2087
+ .x-prose > .x-table-wrap {
2088
+ margin-block: var(--x-prose-block);
2089
+ }
2090
+ .x-prose :where(strong) {
2091
+ font-weight: 600;
2092
+ color: var(--x-color-text);
2093
+ }
2094
+ .x-code {
2095
+ position: relative;
2096
+ min-width: 0;
2097
+ margin: 0;
2098
+ }
2099
+ .x-code__bar {
2100
+ display: flex;
2101
+ gap: var(--x-space-3);
2102
+ align-items: center;
2103
+ justify-content: space-between;
2104
+ padding: var(--x-space-2) var(--x-space-4);
2105
+ font-size: var(--x-fs-label);
2106
+ line-height: 1.3;
2107
+ }
2108
+ .x-code__lang {
2109
+ margin-left: auto;
2110
+ }
2111
+ .x-code__pre {
2112
+ padding: var(--x-space-4) var(--x-space-5) var(--x-space-4) 0;
2113
+ margin: 0;
2114
+ overflow-x: auto;
2115
+ font-size: 0.875rem;
2116
+ line-height: 1.7;
2117
+ tab-size: 2;
2118
+ counter-reset: x-line;
2119
+ }
2120
+ .x-code__pre:focus-visible {
2121
+ outline-offset: -2px;
2122
+ }
2123
+ .x-code code {
2124
+ font-size: inherit;
2125
+ }
2126
+ .x-code__line::before {
2127
+ position: sticky;
2128
+ left: 0;
2129
+ counter-increment: x-line;
2130
+ content: counter(x-line);
2131
+ display: inline-block;
2132
+ box-sizing: content-box;
2133
+ width: 3.5ch;
2134
+ padding-left: var(--x-code-gutter-start, 1.5ch);
2135
+ padding-right: 1.5ch;
2136
+ margin-right: 1.5ch;
2137
+ text-align: right;
2138
+ user-select: none;
2139
+ background: var(--x-code-bg, transparent);
2140
+ border-right: 1px solid var(--x-color-line-strong);
2141
+ }
2142
+ }
2143
+ @layer x.reset, x.core, x.theme, x.utility;
2144
+ @layer x.core {
2145
+ .x-stat-group {
2146
+ --x-stat-cols: 4;
2147
+ display: grid;
2148
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2149
+ gap: var(--x-stat-gap, var(--x-gap));
2150
+ margin: 0;
2151
+ }
2152
+ @media (min-width: 640px) {
2153
+ .x-stat-group {
2154
+ grid-template-columns: repeat(var(--x-stat-cols), minmax(0, 1fr));
2155
+ }
2156
+ }
2157
+ .x-stat-group--cols-2 {
2158
+ --x-stat-cols: 2;
2159
+ }
2160
+ .x-stat-group--cols-3 {
2161
+ --x-stat-cols: 3;
2162
+ }
2163
+ .x-stat {
2164
+ --x-stat-value: var(--x-color-text);
2165
+ position: relative;
2166
+ display: grid;
2167
+ gap: var(--x-stat-inner-gap, var(--x-space-2));
2168
+ align-content: start;
2169
+ box-sizing: border-box;
2170
+ min-width: 0;
2171
+ padding: var(--x-stat-pad, 0);
2172
+ }
2173
+ .x-stat__label, .x-stat__value, .x-stat__hint {
2174
+ min-width: 0;
2175
+ margin: 0;
2176
+ }
2177
+ .x-stat__value {
2178
+ line-height: 1.1;
2179
+ color: var(--x-stat-value);
2180
+ overflow-wrap: anywhere;
2181
+ font-variant-numeric: lining-nums tabular-nums;
2182
+ }
2183
+ .x-stat__unit {
2184
+ margin-inline-start: 0.25em;
2185
+ font-size: max(0.5em, var(--x-fs-label));
2186
+ color: var(--x-color-text-faint);
2187
+ }
2188
+ .x-stat__hint {
2189
+ font-size: var(--x-fs-small);
2190
+ line-height: 1.5;
2191
+ color: var(--x-color-text-faint);
2192
+ }
2193
+ }
2194
+ @layer x.reset, x.core, x.theme, x.utility;
2195
+ @layer x.core {
2196
+ .x-table-wrap {
2197
+ --x-table-edge: color-mix(in srgb, var(--x-color-accent) 30%, transparent);
2198
+ --x-table-cover: var(--x-color-bg);
2199
+ --x-table-hint:
2200
+ linear-gradient(to right, var(--x-table-cover) 60%, transparent) left / 28px 100% no-repeat local,
2201
+ linear-gradient(to left, var(--x-table-cover) 60%, transparent) right / 28px 100% no-repeat local,
2202
+ radial-gradient(farthest-side at 0 50%, var(--x-table-edge), transparent) left / 14px 100% no-repeat scroll,
2203
+ radial-gradient(farthest-side at 100% 50%, var(--x-table-edge), transparent) right / 14px 100% no-repeat scroll;
2204
+ max-width: 100%;
2205
+ overflow: auto;
2206
+ background: var(--x-table-hint), var(--x-table-cover);
2207
+ }
2208
+ .x-table-wrap--sticky {
2209
+ max-height: var(--x-table-max-height, 70vh);
2210
+ }
2211
+ .x-table-wrap--sticky .x-table :where(thead th) {
2212
+ position: sticky;
2213
+ top: 0;
2214
+ z-index: 1;
2215
+ }
2216
+ .x-table {
2217
+ width: 100%;
2218
+ font-size: var(--x-fs-ui);
2219
+ line-height: 1.4;
2220
+ border-collapse: collapse;
2221
+ }
2222
+ .x-table :where(caption) {
2223
+ padding: var(--x-space-3) var(--x-table-pad-x, var(--x-space-4));
2224
+ font-size: var(--x-fs-small);
2225
+ line-height: 1.5;
2226
+ text-align: start;
2227
+ caption-side: bottom;
2228
+ color: var(--x-color-text-muted);
2229
+ }
2230
+ .x-table :where(thead th) {
2231
+ height: var(--x-table-row, var(--x-row));
2232
+ padding: 0 var(--x-table-pad-x, var(--x-space-4));
2233
+ font-size: var(--x-fs-label);
2234
+ line-height: 1.3;
2235
+ text-align: start;
2236
+ white-space: nowrap;
2237
+ vertical-align: middle;
2238
+ }
2239
+ .x-table :where(tbody) :where(td, th) {
2240
+ height: var(--x-table-row, var(--x-row));
2241
+ padding: var(--x-table-pad-y, var(--x-space-3)) var(--x-table-pad-x, var(--x-space-4));
2242
+ text-align: start;
2243
+ vertical-align: middle;
2244
+ border-bottom: 1px solid var(--x-color-line);
2245
+ transition: background-color var(--x-duration) var(--x-ease);
2246
+ }
2247
+ .x-table :where(tbody tr:last-child) > :where(td, th) {
2248
+ border-bottom: 0;
2249
+ }
2250
+ .x-table--compact {
2251
+ --x-table-row: var(--x-control-sm);
2252
+ --x-table-pad-y: var(--x-space-1);
2253
+ --x-table-pad-x: var(--x-space-3);
2254
+ }
2255
+ .x-table--striped :where(tbody tr:nth-child(even)) > :where(td, th) {
2256
+ background-color: var(--x-table-stripe, color-mix(in srgb, var(--x-color-text) 4%, transparent));
2257
+ }
2258
+ .x-table--hover :where(tbody tr:hover) > :where(td, th) {
2259
+ background-color: var(--x-table-hover, var(--x-color-accent-wash));
2260
+ }
2261
+ .x-table__cell--end {
2262
+ text-align: end;
2263
+ }
2264
+ .x-table__cell--center {
2265
+ text-align: center;
2266
+ }
2267
+ .x-table__cell--num {
2268
+ font-variant-numeric: tabular-nums;
2269
+ white-space: nowrap;
2270
+ }
2271
+ }
2272
+ @layer x.reset, x.core, x.theme, x.utility;
2273
+ @layer x.core {
2274
+ .x-tabs {
2275
+ --x-tabs-fade: var(--x-color-bg);
2276
+ min-width: 0;
2277
+ }
2278
+ .x-tabs__list {
2279
+ display: flex;
2280
+ padding: 0;
2281
+ margin: 0;
2282
+ overflow-x: auto;
2283
+ list-style: none;
2284
+ border-bottom: 1px solid var(--x-color-line);
2285
+ scrollbar-width: none;
2286
+ scroll-padding-inline: var(--x-space-6);
2287
+ }
2288
+ @media (width < 1024px) {
2289
+ .x-tabs__list::after {
2290
+ content: "";
2291
+ position: sticky;
2292
+ right: 0;
2293
+ flex: none;
2294
+ width: var(--x-space-6);
2295
+ pointer-events: none;
2296
+ background: linear-gradient(to right, transparent, var(--x-tabs-fade) 85%);
2297
+ }
2298
+ }
2299
+ .x-tabs__item {
2300
+ display: flex;
2301
+ flex: none;
2302
+ }
2303
+ .x-tabs__link {
2304
+ position: relative;
2305
+ display: flex;
2306
+ gap: var(--x-space-2);
2307
+ align-items: center;
2308
+ min-height: var(--x-control-md);
2309
+ color: var(--x-color-text-muted);
2310
+ text-decoration: none;
2311
+ white-space: nowrap;
2312
+ transition: color var(--x-duration) var(--x-ease);
2313
+ }
2314
+ .x-tabs__link:focus-visible {
2315
+ outline-offset: calc(-1 * var(--x-focus-width));
2316
+ }
2317
+ .x-tabs__count {
2318
+ display: inline-grid;
2319
+ place-items: center;
2320
+ min-width: 1.5rem;
2321
+ padding: 0 var(--x-space-1);
2322
+ font-family: var(--x-font-mono);
2323
+ font-size: var(--x-fs-label);
2324
+ font-weight: 400;
2325
+ line-height: 1.5;
2326
+ letter-spacing: normal;
2327
+ color: var(--x-color-text-muted);
2328
+ border: 1px solid var(--x-color-line-strong);
2329
+ }
2330
+ }
2331
+ @layer x.reset, x.core, x.theme, x.utility;
2332
+ @layer x.core {
2333
+ .x-tag {
2334
+ display: inline-flex;
2335
+ flex: none;
2336
+ align-items: center;
2337
+ min-height: 26px;
2338
+ padding: 0 var(--x-space-2);
2339
+ font-family: var(--x-font-mono);
2340
+ font-size: var(--x-fs-label);
2341
+ line-height: 1.5;
2342
+ letter-spacing: normal;
2343
+ text-transform: none;
2344
+ color: var(--x-color-text-muted);
2345
+ text-decoration: none;
2346
+ white-space: nowrap;
2347
+ background: var(--x-color-surface-2);
2348
+ border: 1px solid var(--x-color-line-strong);
2349
+ transition: color var(--x-duration) var(--x-ease), background var(--x-duration) var(--x-ease), border-color var(--x-duration) var(--x-ease);
2350
+ }
2351
+ .x-tag:where(a):hover {
2352
+ color: var(--x-color-accent);
2353
+ border-color: var(--x-color-accent-edge);
2354
+ }
2355
+ .x-tag--active, .x-tag--active:where(a):hover {
2356
+ color: var(--x-color-on-accent);
2357
+ background: var(--x-color-accent);
2358
+ border-color: var(--x-color-accent);
2359
+ }
2360
+ }
2361
+ @layer x.reset, x.core, x.theme, x.utility;
2362
+ @layer x.core {
2363
+ .x-timeline {
2364
+ --x-timeline-gap: var(--x-space-5);
2365
+ --x-timeline-rail: 24px;
2366
+ --x-timeline-node: 9px;
2367
+ --x-timeline-date-fs: 1rem;
2368
+ --x-timeline-date-lh: 1.3;
2369
+ --x-timeline-mid: calc(var(--x-timeline-date-fs) * var(--x-timeline-date-lh) / 2);
2370
+ --x-timeline-spine: var(--x-color-line-strong);
2371
+ display: grid;
2372
+ grid-template-columns: [rail-start] var(--x-timeline-rail) [rail-end date-start body-start] minmax(0, 1fr) [date-end body-end];
2373
+ column-gap: var(--x-timeline-column-gap, var(--x-space-4));
2374
+ row-gap: var(--x-timeline-gap);
2375
+ padding: 0;
2376
+ list-style: none;
2377
+ }
2378
+ @media (min-width: 640px) {
2379
+ .x-timeline {
2380
+ grid-template-columns: var(--x-timeline-columns, [rail-start] var(--x-timeline-rail) [rail-end date-start] max-content [date-end body-start] minmax(0, 1fr) [body-end]);
2381
+ }
2382
+ }
2383
+ .x-timeline__item {
2384
+ display: grid;
2385
+ grid-template-columns: subgrid;
2386
+ grid-column: 1/-1;
2387
+ row-gap: var(--x-space-1);
2388
+ }
2389
+ .x-timeline__item::before {
2390
+ content: "";
2391
+ grid-row: 1/span 2;
2392
+ grid-column: rail;
2393
+ justify-self: center;
2394
+ width: 1px;
2395
+ margin-bottom: calc(-1 * var(--x-timeline-gap));
2396
+ background: var(--x-timeline-spine);
2397
+ }
2398
+ @media (min-width: 640px) {
2399
+ .x-timeline__item::before {
2400
+ grid-row: 1;
2401
+ }
2402
+ }
2403
+ .x-timeline__item:first-child::before {
2404
+ margin-top: var(--x-timeline-mid);
2405
+ }
2406
+ .x-timeline__item:last-child::before {
2407
+ align-self: start;
2408
+ height: var(--x-timeline-mid);
2409
+ margin-bottom: 0;
2410
+ }
2411
+ .x-timeline__item:only-child::before {
2412
+ display: none;
2413
+ }
2414
+ .x-timeline__item::after {
2415
+ content: "";
2416
+ grid-row: 1;
2417
+ grid-column: rail;
2418
+ align-self: start;
2419
+ justify-self: center;
2420
+ width: var(--x-timeline-node);
2421
+ height: var(--x-timeline-node);
2422
+ margin-top: calc(var(--x-timeline-mid) - var(--x-timeline-node) / 2);
2423
+ background: var(--x-color-bg);
2424
+ border: 1px solid var(--x-color-accent);
2425
+ transform: rotate(45deg);
2426
+ }
2427
+ .x-timeline__date {
2428
+ grid-row: 1;
2429
+ grid-column: date;
2430
+ font-size: var(--x-timeline-date-fs);
2431
+ font-variant-numeric: lining-nums tabular-nums;
2432
+ line-height: var(--x-timeline-date-lh);
2433
+ white-space: nowrap;
2434
+ }
2435
+ .x-timeline__body {
2436
+ grid-row: 2;
2437
+ grid-column: body;
2438
+ }
2439
+ @media (min-width: 640px) {
2440
+ .x-timeline__body {
2441
+ grid-row: 1;
2442
+ }
2443
+ }
2444
+ .x-timeline__title {
2445
+ font-size: 1.125rem;
2446
+ line-height: 1.3;
2447
+ }
2448
+ .x-timeline__text {
2449
+ margin-top: var(--x-space-1);
2450
+ color: var(--x-color-text-muted);
2451
+ }
2452
+ }
2453
+ @layer x.reset, x.core, x.theme, x.utility;
2454
+ @layer x.core {
2455
+ .x-tooltip {
2456
+ --x-tooltip-gap: 10px;
2457
+ --x-tooltip-arrow: 6px;
2458
+ --x-tooltip-bg: var(--x-color-surface-3);
2459
+ --x-tooltip-edge: transparent;
2460
+ position: relative;
2461
+ display: inline-block;
2462
+ }
2463
+ .x-tooltip__bubble {
2464
+ position: absolute;
2465
+ bottom: calc(100% + var(--x-tooltip-gap));
2466
+ left: var(--x-tooltip-left, 50%);
2467
+ z-index: 20;
2468
+ width: max-content;
2469
+ max-width: min(var(--x-tooltip-max, 16rem), 100vw - 2 * var(--x-gutter));
2470
+ padding: var(--x-space-2) var(--x-space-3);
2471
+ font-family: var(--x-tooltip-font, var(--x-font-ui));
2472
+ font-size: var(--x-fs-small);
2473
+ font-weight: 400;
2474
+ line-height: 1.45;
2475
+ letter-spacing: normal;
2476
+ text-align: start;
2477
+ text-transform: none;
2478
+ white-space: normal;
2479
+ color: var(--x-color-text);
2480
+ background: var(--x-tooltip-bg);
2481
+ border: 1px solid var(--x-tooltip-edge);
2482
+ border-radius: var(--x-radius);
2483
+ visibility: hidden;
2484
+ opacity: 0;
2485
+ translate: var(--x-tooltip-shift, -50%) 4px;
2486
+ transition: opacity var(--x-duration) var(--x-ease), translate var(--x-duration) var(--x-ease), visibility 0s linear var(--x-duration);
2487
+ }
2488
+ .x-tooltip__bubble::before {
2489
+ content: "";
2490
+ position: absolute;
2491
+ inset: 100% 0 auto;
2492
+ height: calc(var(--x-tooltip-gap) + 2px);
2493
+ }
2494
+ .x-tooltip__bubble::after {
2495
+ content: "";
2496
+ position: absolute;
2497
+ top: calc(100% - var(--x-tooltip-arrow) + 1px);
2498
+ left: var(--x-tooltip-arrow-left, 50%);
2499
+ width: calc(var(--x-tooltip-arrow) * 2);
2500
+ height: calc(var(--x-tooltip-arrow) * 2);
2501
+ margin-left: calc(var(--x-tooltip-arrow) * -1);
2502
+ background: var(--x-tooltip-bg);
2503
+ border: solid var(--x-tooltip-edge);
2504
+ border-width: 0 1px 1px 0;
2505
+ rotate: 45deg;
2506
+ clip-path: polygon(100% 0, 100% 100%, 0 100%);
2507
+ }
2508
+ .x-tooltip:hover .x-tooltip__bubble, .x-tooltip:has(:focus-visible) .x-tooltip__bubble, .x-tooltip--open .x-tooltip__bubble {
2509
+ visibility: visible;
2510
+ opacity: 1;
2511
+ translate: var(--x-tooltip-shift, -50%) 0;
2512
+ transition-delay: 0s;
2513
+ }
2514
+ .x-tooltip.x-tooltip--dismissed .x-tooltip__bubble {
2515
+ visibility: hidden;
2516
+ opacity: 0;
2517
+ }
2518
+ .x-tooltip--bottom .x-tooltip__bubble {
2519
+ top: calc(100% + var(--x-tooltip-gap));
2520
+ bottom: auto;
2521
+ }
2522
+ .x-tooltip--bottom .x-tooltip__bubble::before {
2523
+ inset: auto 0 100%;
2524
+ }
2525
+ .x-tooltip--bottom .x-tooltip__bubble::after {
2526
+ top: auto;
2527
+ bottom: calc(100% - var(--x-tooltip-arrow) + 1px);
2528
+ border-width: 1px 0 0 1px;
2529
+ clip-path: polygon(0 0, 100% 0, 0 100%);
2530
+ }
2531
+ @media (prefers-reduced-motion: reduce) {
2532
+ .x-tooltip .x-tooltip__bubble {
2533
+ transition: none;
2534
+ }
2535
+ }
2536
+ }