@collectivetrait/lineaui 0.0.0-stage → 1.0.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 (130) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/LICENSE +21 -0
  3. package/README.md +113 -2
  4. package/config.json +3 -0
  5. package/dist/blocks.css +5042 -0
  6. package/dist/blocks.css.map +1 -0
  7. package/dist/bundle.js +873 -0
  8. package/dist/core.css +1641 -0
  9. package/dist/core.css.map +1 -0
  10. package/dist/icons-manifest.json +1 -0
  11. package/dist/icons.css +158 -0
  12. package/dist/styles.css +10546 -0
  13. package/dist/styles.css.map +1 -0
  14. package/dist/theme-init.js +8 -0
  15. package/dist/utilities.css +3865 -0
  16. package/dist/utilities.css.map +1 -0
  17. package/humans.txt +8 -0
  18. package/js/config.js +3 -0
  19. package/js/index.js +45 -0
  20. package/js/modules/copy.js +64 -0
  21. package/js/modules/dialog.js +55 -0
  22. package/js/modules/dismiss.js +43 -0
  23. package/js/modules/dropdown.js +108 -0
  24. package/js/modules/gallery.js +84 -0
  25. package/js/modules/highlight.js +89 -0
  26. package/js/modules/navigation.js +104 -0
  27. package/js/modules/quantity.js +63 -0
  28. package/js/modules/rhythm.js +21 -0
  29. package/js/modules/table.js +109 -0
  30. package/js/modules/tabs.js +112 -0
  31. package/js/modules/toast.js +97 -0
  32. package/js/modules/tooltip.js +106 -0
  33. package/js/theme-init.js +8 -0
  34. package/package.json +71 -4
  35. package/scss/_blocks-only.scss +4 -0
  36. package/scss/_core.scss +7 -0
  37. package/scss/_index.scss +12 -0
  38. package/scss/_layers.scss +2 -0
  39. package/scss/_utilities-only.scss +4 -0
  40. package/scss/base/_code.scss +50 -0
  41. package/scss/base/_forms.scss +110 -0
  42. package/scss/base/_index.scss +7 -0
  43. package/scss/base/_interactive.scss +25 -0
  44. package/scss/base/_media.scss +28 -0
  45. package/scss/base/_reset.scss +53 -0
  46. package/scss/base/_tables.scss +49 -0
  47. package/scss/base/_typography.scss +232 -0
  48. package/scss/blocks/_accordion.scss +88 -0
  49. package/scss/blocks/_alert.scss +101 -0
  50. package/scss/blocks/_avatar.scss +104 -0
  51. package/scss/blocks/_badge.scss +72 -0
  52. package/scss/blocks/_breadcrumb.scss +65 -0
  53. package/scss/blocks/_button-group.scss +73 -0
  54. package/scss/blocks/_button.scss +212 -0
  55. package/scss/blocks/_card.scss +146 -0
  56. package/scss/blocks/_choice.scss +163 -0
  57. package/scss/blocks/_code.scss +157 -0
  58. package/scss/blocks/_data-list.scss +92 -0
  59. package/scss/blocks/_divider.scss +54 -0
  60. package/scss/blocks/_drawer.scss +160 -0
  61. package/scss/blocks/_dropdown.scss +167 -0
  62. package/scss/blocks/_empty-state.scss +61 -0
  63. package/scss/blocks/_field.scss +146 -0
  64. package/scss/blocks/_form.scss +87 -0
  65. package/scss/blocks/_gallery.scss +120 -0
  66. package/scss/blocks/_index.scss +49 -0
  67. package/scss/blocks/_input-group.scss +95 -0
  68. package/scss/blocks/_line-item.scss +105 -0
  69. package/scss/blocks/_list.scss +117 -0
  70. package/scss/blocks/_media.scss +105 -0
  71. package/scss/blocks/_menu.scss +191 -0
  72. package/scss/blocks/_meta.scss +59 -0
  73. package/scss/blocks/_modal.scss +156 -0
  74. package/scss/blocks/_navbar.scss +227 -0
  75. package/scss/blocks/_order-summary.scss +92 -0
  76. package/scss/blocks/_page-header.scss +88 -0
  77. package/scss/blocks/_pagination.scss +110 -0
  78. package/scss/blocks/_price.scss +88 -0
  79. package/scss/blocks/_product-card.scss +138 -0
  80. package/scss/blocks/_progress.scss +68 -0
  81. package/scss/blocks/_prose.scss +165 -0
  82. package/scss/blocks/_quantity.scss +73 -0
  83. package/scss/blocks/_quote.scss +71 -0
  84. package/scss/blocks/_rating.scss +50 -0
  85. package/scss/blocks/_site-footer.scss +135 -0
  86. package/scss/blocks/_skeleton.scss +63 -0
  87. package/scss/blocks/_spinner.scss +44 -0
  88. package/scss/blocks/_stat.scss +111 -0
  89. package/scss/blocks/_steps.scss +147 -0
  90. package/scss/blocks/_swatch.scss +117 -0
  91. package/scss/blocks/_table.scss +242 -0
  92. package/scss/blocks/_tabs.scss +168 -0
  93. package/scss/blocks/_tag.scss +72 -0
  94. package/scss/blocks/_timeline.scss +84 -0
  95. package/scss/blocks/_toast.scss +146 -0
  96. package/scss/blocks/_toolbar.scss +67 -0
  97. package/scss/blocks/_tooltip.scss +63 -0
  98. package/scss/helpers/_index.scss +2 -0
  99. package/scss/helpers/_rhythm.scss +64 -0
  100. package/scss/helpers/_typography.scss +4 -0
  101. package/scss/layout/_cluster.scss +43 -0
  102. package/scss/layout/_container.scss +26 -0
  103. package/scss/layout/_grid.scss +90 -0
  104. package/scss/layout/_index.scss +5 -0
  105. package/scss/layout/_section.scss +78 -0
  106. package/scss/layout/_shell.scss +87 -0
  107. package/scss/settings/_blocks.scss +3 -0
  108. package/scss/settings/_breakpoints.scss +7 -0
  109. package/scss/settings/_fonts.scss +5 -0
  110. package/scss/settings/_index.scss +7 -0
  111. package/scss/settings/_layout.scss +5 -0
  112. package/scss/settings/_prefix.scss +1 -0
  113. package/scss/settings/_rhythm.scss +6 -0
  114. package/scss/settings/_utilities.scss +2 -0
  115. package/scss/tokens/_borders.scss +16 -0
  116. package/scss/tokens/_elevation.scss +37 -0
  117. package/scss/tokens/_index.scss +8 -0
  118. package/scss/tokens/_layout.scss +17 -0
  119. package/scss/tokens/_motion.scss +17 -0
  120. package/scss/tokens/_palette.scss +50 -0
  121. package/scss/tokens/_roles.scss +90 -0
  122. package/scss/tokens/_space.scss +9 -0
  123. package/scss/tokens/_type.scss +57 -0
  124. package/scss/tools/_bem.scss +22 -0
  125. package/scss/tools/_index.scss +4 -0
  126. package/scss/tools/_rhythm.scss +26 -0
  127. package/scss/tools/_role-engine.scss +16 -0
  128. package/scss/tools/_utility-generator.scss +74 -0
  129. package/scss/utilities/_index.scss +8 -0
  130. package/scss/utilities/_map.scss +321 -0
package/dist/core.css ADDED
@@ -0,0 +1,1641 @@
1
+ @layer external, reset, tokens, base, layout, blocks, helpers, utilities;
2
+ @layer tokens {
3
+ :root {
4
+ color-scheme: light dark;
5
+ --canvas: light-dark(#FAFAFA, #09090B);
6
+ --surface: light-dark(#FFFFFF, #18181B);
7
+ --surface-raised: light-dark(#F4F4F5, #2C2C31);
8
+ --surface-sunken: light-dark(#F4F4F5, #040405);
9
+ --surface-inverse: light-dark(#18181B, #FAFAFA);
10
+ --overlay: light-dark(rgba(24,24,27,0.4), rgba(0,0,0,0.6));
11
+ --text: light-dark(#09090B, #FAFAFA);
12
+ --c-muted: light-dark(#52525B, #A1A1AA);
13
+ --c-subtle: light-dark(#71717A, #828289);
14
+ --c-disabled: light-dark(#A1A1AA, #3F3F46);
15
+ --c-inverse: light-dark(#FAFAFA, #09090B);
16
+ --border: light-dark(#E4E4E7, #3F3F46);
17
+ --border-control: light-dark(#E4E4E7, #3F3F46);
18
+ --border-strong: light-dark(#52525B, #71717A);
19
+ --primary: light-dark(#7C3AED, #8B5CF6);
20
+ --primary-text: light-dark(#7C3AED, #8B5CF6);
21
+ --on-primary: #FFFFFF;
22
+ --primary-subtle: color-mix(in srgb, var(--primary) 16%, var(--canvas));
23
+ --primary-hover: color-mix(in srgb, var(--primary) 88%, var(--canvas));
24
+ --primary-border: color-mix(in srgb, var(--primary) 40%, var(--canvas));
25
+ --secondary: #0D9488;
26
+ --secondary-text: light-dark(#115E59, #2DD4BF);
27
+ --on-secondary: #FFFFFF;
28
+ --secondary-subtle: color-mix(in srgb, var(--secondary) 12%, var(--canvas));
29
+ --secondary-hover: color-mix(in srgb, var(--secondary) 88%, var(--canvas));
30
+ --secondary-border: color-mix(in srgb, var(--secondary) 40%, var(--canvas));
31
+ --success: #16A34A;
32
+ --success-text: light-dark(#15803D, #4ADE80);
33
+ --on-success: #FFFFFF;
34
+ --success-subtle: color-mix(in srgb, var(--success) 12%, var(--canvas));
35
+ --success-hover: color-mix(in srgb, var(--success) 88%, var(--canvas));
36
+ --success-border: color-mix(in srgb, var(--success) 40%, var(--canvas));
37
+ --warning: light-dark(#D97706, #FBBF24);
38
+ --warning-text: light-dark(#92400E, #FBBF24);
39
+ --on-warning: #FFFFFF;
40
+ --warning-subtle: color-mix(in srgb, var(--warning) 12%, var(--canvas));
41
+ --warning-hover: color-mix(in srgb, var(--warning) 88%, var(--canvas));
42
+ --warning-border: color-mix(in srgb, var(--warning) 40%, var(--canvas));
43
+ --danger: #DC2626;
44
+ --danger-text: light-dark(#DC2626, #F87171);
45
+ --on-danger: #FFFFFF;
46
+ --danger-subtle: color-mix(in srgb, var(--danger) 12%, var(--canvas));
47
+ --danger-hover: color-mix(in srgb, var(--danger) 88%, var(--canvas));
48
+ --danger-border: color-mix(in srgb, var(--danger) 40%, var(--canvas));
49
+ --info: #2563EB;
50
+ --info-text: light-dark(#2563EB, #60A5FA);
51
+ --on-info: #FFFFFF;
52
+ --info-subtle: color-mix(in srgb, var(--info) 12%, var(--canvas));
53
+ --info-hover: color-mix(in srgb, var(--info) 88%, var(--canvas));
54
+ --info-border: color-mix(in srgb, var(--info) 40%, var(--canvas));
55
+ --neutral: var(--surface-raised);
56
+ --neutral-text: var(--text);
57
+ --on-neutral: var(--text);
58
+ --neutral-subtle: var(--surface-sunken);
59
+ --neutral-border: light-dark(#E4E4E7, #3F3F46);
60
+ --link: var(--primary-text);
61
+ --link-hover: color-mix(in srgb, var(--primary-text) 80%, var(--canvas));
62
+ --focus: var(--primary);
63
+ --selection: color-mix(in srgb, var(--primary) 30%, transparent);
64
+ }
65
+ [data-theme=light] {
66
+ color-scheme: light;
67
+ }
68
+ [data-theme=dark] {
69
+ color-scheme: dark;
70
+ }
71
+ }
72
+ @layer tokens {
73
+ :root {
74
+ --f-prose: Charter, Bitstream Charter, Sitka Text, Cambria, serif;
75
+ --f-ui: Inter, Roboto, Helvetica Neue, Arial Nova, Nimbus Sans, Arial, sans-serif;
76
+ --f-mono: ui-monospace, Cascadia Code, Source Code Pro, Menlo, Consolas, DejaVu Sans Mono, monospace;
77
+ --t-display-1-s: 5rem;
78
+ --t-display-1-lh: 6rem;
79
+ --t-display-2-s: 3.5rem;
80
+ --t-display-2-lh: 4.5rem;
81
+ --t-h1-s: 2.5rem;
82
+ --t-h1-lh: 3rem;
83
+ --t-h2-s: 2rem;
84
+ --t-h2-lh: 3rem;
85
+ --t-h3-s: 1.25rem;
86
+ --t-h3-lh: 1.5rem;
87
+ --t-h4-s: 1.125rem;
88
+ --t-h4-lh: 1.5rem;
89
+ --t-h5-s: 1rem;
90
+ --t-h5-lh: 1.5rem;
91
+ --t-h6-s: 0.75rem;
92
+ --t-h6-lh: 1rem;
93
+ --t-lead-s: 1.125rem;
94
+ --t-lead-lh: 1.5rem;
95
+ --t-body-prose-s: 1rem;
96
+ --t-body-prose-lh: 1.5rem;
97
+ --t-body-lg-s: 1.125rem;
98
+ --t-body-lg-lh: 1.5rem;
99
+ --t-body-s: 1rem;
100
+ --t-body-lh: 1.5rem;
101
+ --t-body-sm-s: 0.875rem;
102
+ --t-body-sm-lh: 1.5rem;
103
+ --t-body-xs-s: 0.75rem;
104
+ --t-body-xs-lh: 1rem;
105
+ --t-meta-s: 0.75rem;
106
+ --t-meta-lh: 1rem;
107
+ --t-code-s: 0.875rem;
108
+ --t-code-lh: 1.5rem;
109
+ }
110
+ }
111
+ @layer tokens {
112
+ :root {
113
+ --s-h: 0.25rem;
114
+ --s1: 0.5rem;
115
+ --s2: 1rem;
116
+ --s3: 1.5rem;
117
+ --s4: 2rem;
118
+ }
119
+ }
120
+ @layer tokens {
121
+ :root {
122
+ --sh0: none;
123
+ --sh1: 0 0 2px rgb(9 9 11 / 0.05);
124
+ --sh2: 0 0 12px rgb(9 9 11 / 0.07);
125
+ --sh3: 0 0 24px rgb(9 9 11 / 0.09);
126
+ --sh4: 0 0 48px rgb(9 9 11 / 0.12);
127
+ --sh-inset-1: inset 0 0 2px rgb(0 0 0 / 0.05);
128
+ --sh-inset-2: inset 0 0 4px rgb(0 0 0 / 0.08);
129
+ --sh-inset-3: inset 0 0 8px rgb(0 0 0 / 0.12);
130
+ --sh-inset-4: inset 0 0 16px rgb(0 0 0 / 0.16);
131
+ }
132
+ @media (prefers-color-scheme: dark) {
133
+ :root:not([data-theme=light]) {
134
+ --sh1: 0 0 2px rgb(0 0 0 / 0.40);
135
+ --sh2: 0 0 12px rgb(0 0 0 / 0.44);
136
+ --sh3: 0 0 24px rgb(0 0 0 / 0.48);
137
+ --sh4: 0 0 48px rgb(0 0 0 / 0.56);
138
+ --sh-inset-1: inset 0 0 2px rgb(0 0 0 / 0.16);
139
+ --sh-inset-2: inset 0 0 4px rgb(0 0 0 / 0.22);
140
+ --sh-inset-3: inset 0 0 8px rgb(0 0 0 / 0.28);
141
+ --sh-inset-4: inset 0 0 16px rgb(0 0 0 / 0.36);
142
+ }
143
+ }
144
+ [data-theme=dark] {
145
+ --sh1: 0 0 2px rgb(0 0 0 / 0.40);
146
+ --sh2: 0 0 12px rgb(0 0 0 / 0.44);
147
+ --sh3: 0 0 24px rgb(0 0 0 / 0.48);
148
+ --sh4: 0 0 48px rgb(0 0 0 / 0.56);
149
+ --sh-inset-1: inset 0 0 2px rgb(0 0 0 / 0.16);
150
+ --sh-inset-2: inset 0 0 4px rgb(0 0 0 / 0.22);
151
+ --sh-inset-3: inset 0 0 8px rgb(0 0 0 / 0.28);
152
+ --sh-inset-4: inset 0 0 16px rgb(0 0 0 / 0.36);
153
+ }
154
+ }
155
+ @layer tokens {
156
+ :root {
157
+ --bd1: 1px;
158
+ --bd2: 2px;
159
+ --bd3: 3px;
160
+ --r-none: 0;
161
+ --r-xs: 2px;
162
+ --r-sm: 4px;
163
+ --r-md: 8px;
164
+ --r-lg: 12px;
165
+ --r-xl: 16px;
166
+ --r-pill: 9999px;
167
+ --r-circle: 50%;
168
+ }
169
+ }
170
+ @layer tokens {
171
+ :root {
172
+ --dur-fast: 120ms;
173
+ --dur-base: 200ms;
174
+ --dur-slow: 320ms;
175
+ --e-standard: cubic-bezier(0.4, 0, 0.2, 1);
176
+ --e-enter: cubic-bezier(0, 0, 0.2, 1);
177
+ --e-exit: cubic-bezier(0.4, 0, 1, 1);
178
+ }
179
+ @media (prefers-reduced-motion: reduce) {
180
+ :root {
181
+ --dur-fast: 1ms;
182
+ --dur-base: 1ms;
183
+ --dur-slow: 1ms;
184
+ }
185
+ }
186
+ }
187
+ @layer tokens {
188
+ :root {
189
+ --container: 56.25rem;
190
+ --container-wide: 75rem;
191
+ --measure: 37.5rem;
192
+ --gutter: 1rem;
193
+ }
194
+ @media (min-width: 768px) {
195
+ :root {
196
+ --gutter: 2rem;
197
+ }
198
+ }
199
+ }
200
+ @layer reset {
201
+ *,
202
+ *::before,
203
+ *::after {
204
+ box-sizing: border-box;
205
+ }
206
+ * {
207
+ margin: 0;
208
+ }
209
+ html {
210
+ line-height: 1.5rem;
211
+ -webkit-text-size-adjust: 100%;
212
+ tab-size: 4;
213
+ }
214
+ body {
215
+ line-height: 1rem;
216
+ min-block-size: 100svh;
217
+ min-width: 320px;
218
+ -webkit-font-smoothing: antialiased;
219
+ text-rendering: optimizeLegibility;
220
+ }
221
+ img,
222
+ picture,
223
+ video,
224
+ canvas,
225
+ svg {
226
+ display: block;
227
+ max-inline-size: 100%;
228
+ block-size: auto;
229
+ }
230
+ input,
231
+ button,
232
+ textarea,
233
+ select {
234
+ font: inherit;
235
+ }
236
+ p,
237
+ h1,
238
+ h2,
239
+ h3,
240
+ h4,
241
+ h5,
242
+ h6 {
243
+ overflow-wrap: break-word;
244
+ }
245
+ }
246
+ @layer base {
247
+ :root {
248
+ font: 1rem var(--f-ui);
249
+ color: var(--text);
250
+ background-color: var(--canvas);
251
+ }
252
+ :focus-visible {
253
+ outline: 2px solid var(--focus);
254
+ outline-offset: 2px;
255
+ }
256
+ ::selection {
257
+ background-color: var(--selection);
258
+ }
259
+ h1 {
260
+ font: 400 var(--t-h1-s)/var(--t-h1-lh) var(--f-prose);
261
+ letter-spacing: -0.01em;
262
+ margin-bottom: 24px;
263
+ }
264
+ h2 {
265
+ font: 400 var(--t-h2-s)/var(--t-h2-lh) var(--f-prose);
266
+ letter-spacing: -0.005em;
267
+ margin-bottom: 24px;
268
+ }
269
+ h3 {
270
+ font: 400 var(--t-h3-s)/var(--t-h3-lh) var(--f-prose);
271
+ margin-bottom: 24px;
272
+ }
273
+ h4 {
274
+ font: 600 var(--t-h4-s)/var(--t-h4-lh) var(--f-ui);
275
+ margin-bottom: 24px;
276
+ }
277
+ h5 {
278
+ font: 600 var(--t-h5-s)/var(--t-h5-lh) var(--f-ui);
279
+ margin-bottom: 8px;
280
+ }
281
+ h6 {
282
+ font: 500 var(--t-h6-s)/var(--t-h6-lh) var(--f-mono);
283
+ text-transform: uppercase;
284
+ letter-spacing: 0.08em;
285
+ color: var(--c-muted);
286
+ margin-bottom: 8px;
287
+ }
288
+ :is(h1, h2, h3, h4, h5, h6, p, blockquote, dl, ul, ol):last-child {
289
+ margin-bottom: 0;
290
+ }
291
+ @media (max-width: 768px) {
292
+ h1 {
293
+ font-size: 2.25rem;
294
+ line-height: 3rem;
295
+ }
296
+ }
297
+ p {
298
+ line-height: 1.5rem;
299
+ margin-bottom: 24px;
300
+ }
301
+ .lead {
302
+ font: var(--t-lead-s)/var(--t-lead-lh) var(--f-prose);
303
+ }
304
+ a {
305
+ color: var(--link);
306
+ text-decoration: none;
307
+ }
308
+ a:hover {
309
+ color: var(--link-hover);
310
+ text-decoration: underline;
311
+ text-underline-offset: 0.15em;
312
+ text-decoration-thickness: 2px;
313
+ }
314
+ strong,
315
+ b {
316
+ font-weight: 600;
317
+ }
318
+ em {
319
+ font-style: italic;
320
+ }
321
+ sub,
322
+ sup {
323
+ font-size: 0.75em;
324
+ line-height: 0;
325
+ position: relative;
326
+ vertical-align: baseline;
327
+ }
328
+ sub {
329
+ bottom: -0.25em;
330
+ }
331
+ sup {
332
+ top: -0.5em;
333
+ }
334
+ small {
335
+ font-size: var(--t-body-xs-s);
336
+ line-height: var(--t-body-xs-lh);
337
+ }
338
+ mark {
339
+ background-color: var(--selection);
340
+ color: inherit;
341
+ padding-inline: 0.1em;
342
+ }
343
+ abbr[title] {
344
+ text-decoration: underline dotted;
345
+ cursor: help;
346
+ }
347
+ cite {
348
+ font-style: italic;
349
+ }
350
+ s,
351
+ del {
352
+ text-decoration: line-through;
353
+ color: var(--c-muted);
354
+ }
355
+ ins {
356
+ text-decoration: underline;
357
+ color: var(--success-text);
358
+ }
359
+ address {
360
+ font-style: normal;
361
+ line-height: 1.5rem;
362
+ }
363
+ blockquote {
364
+ font-family: var(--f-prose);
365
+ border-inline-start: var(--bd3) solid var(--primary);
366
+ padding-inline-start: calc(var(--s3) - var(--bd3));
367
+ margin: 24px 0;
368
+ color: var(--c-muted);
369
+ }
370
+ hr {
371
+ border: none;
372
+ height: 1.5rem;
373
+ background-image: linear-gradient(to bottom, transparent calc(50% - 0.5px), var(--border) calc(50% - 0.5px), var(--border) calc(50% + 0.5px), transparent calc(50% + 0.5px));
374
+ }
375
+ ul,
376
+ ol {
377
+ padding-inline-start: var(--s4);
378
+ margin-bottom: 24px;
379
+ }
380
+ li {
381
+ line-height: 1.5rem;
382
+ }
383
+ ol {
384
+ font-variant-numeric: tabular-nums;
385
+ }
386
+ dl {
387
+ margin: 0 0 24px;
388
+ }
389
+ dt {
390
+ font-weight: 600;
391
+ }
392
+ dd {
393
+ margin-inline-start: var(--s4);
394
+ color: var(--c-muted);
395
+ }
396
+ }
397
+ @layer base {
398
+ :is(code, kbd, samp, var) {
399
+ font: 0.875em var(--f-mono);
400
+ }
401
+ :not(pre) > code {
402
+ background-color: var(--surface-sunken);
403
+ border-radius: var(--r-sm);
404
+ padding-inline: var(--s-h);
405
+ font-size: var(--t-code-s);
406
+ line-height: 1rem;
407
+ }
408
+ kbd {
409
+ background-color: var(--surface-raised);
410
+ border: 1px solid var(--border);
411
+ border-radius: var(--r-sm);
412
+ padding: 0.1em var(--s-h);
413
+ box-shadow: 0 1px 0 var(--border);
414
+ font-size: var(--t-body-sm-s);
415
+ }
416
+ pre {
417
+ font: var(--t-code-s)/var(--t-code-lh) var(--f-mono);
418
+ background-color: var(--surface-sunken);
419
+ border-radius: var(--r-xs);
420
+ overflow-x: auto;
421
+ tab-size: 2;
422
+ margin-bottom: 24px;
423
+ }
424
+ pre code {
425
+ display: block;
426
+ padding: var(--s3);
427
+ font: inherit;
428
+ background: none;
429
+ border-radius: 0;
430
+ }
431
+ pre:last-child {
432
+ margin-bottom: 0;
433
+ }
434
+ }
435
+ @layer base {
436
+ img,
437
+ video {
438
+ max-inline-size: 100%;
439
+ block-size: auto;
440
+ }
441
+ figure {
442
+ margin: 0 0 24px;
443
+ }
444
+ figure > img,
445
+ figure > video,
446
+ figure > pre {
447
+ margin: 0 0 0.5rem;
448
+ }
449
+ figure:last-child {
450
+ margin-bottom: 0;
451
+ }
452
+ figcaption {
453
+ font: var(--t-body-sm-s)/var(--t-body-sm-lh) var(--f-ui);
454
+ color: var(--c-muted);
455
+ }
456
+ }
457
+ @layer base {
458
+ table {
459
+ border-collapse: collapse;
460
+ inline-size: 100%;
461
+ margin-bottom: 24px;
462
+ }
463
+ table:last-child {
464
+ margin-bottom: 0;
465
+ }
466
+ caption {
467
+ font: var(--t-meta-s)/var(--t-meta-lh) var(--f-mono);
468
+ color: var(--c-muted);
469
+ text-align: start;
470
+ margin-block-end: var(--s1);
471
+ }
472
+ th,
473
+ td {
474
+ padding: calc(var(--s3) / 2) var(--s2);
475
+ line-height: var(--t-body-sm-lh);
476
+ text-align: start;
477
+ vertical-align: top;
478
+ box-shadow: inset 0 -1px 0 var(--border);
479
+ }
480
+ th {
481
+ font-size: var(--t-body-sm-s);
482
+ font-weight: 600;
483
+ color: var(--c-muted);
484
+ }
485
+ td {
486
+ font-size: var(--t-body-sm-s);
487
+ }
488
+ td[data-numeric],
489
+ td.numeric,
490
+ td:is([align=right]) {
491
+ font-variant-numeric: tabular-nums;
492
+ text-align: end;
493
+ }
494
+ }
495
+ @layer base {
496
+ :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
497
+ select) {
498
+ display: inline-flex;
499
+ align-items: center;
500
+ block-size: var(--s4);
501
+ padding: calc(var(--s2) - 1px - 0.25rem) var(--s2);
502
+ font: var(--t-body-s)/var(--t-body-lh) var(--f-ui);
503
+ background-color: var(--surface-sunken);
504
+ border: 1px solid var(--border-control);
505
+ color: var(--text);
506
+ appearance: none;
507
+ }
508
+ :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
509
+ select):focus-visible {
510
+ outline: 2px solid var(--focus);
511
+ outline-offset: 2px;
512
+ border-color: var(--primary);
513
+ }
514
+ :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
515
+ select):user-invalid {
516
+ border-color: var(--danger);
517
+ }
518
+ :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
519
+ select):disabled {
520
+ opacity: 0.5;
521
+ cursor: not-allowed;
522
+ }
523
+ select {
524
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2352525b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
525
+ background-repeat: no-repeat;
526
+ background-position: right var(--s2) center;
527
+ padding-inline-end: var(--s4);
528
+ }
529
+ textarea {
530
+ display: block;
531
+ width: 100%;
532
+ padding: calc(var(--s2) - 1px) var(--s2);
533
+ font: var(--t-body-s)/1.5rem;
534
+ background-color: var(--surface-sunken);
535
+ border: 1px solid var(--border-control);
536
+ color: var(--text);
537
+ resize: vertical;
538
+ }
539
+ textarea:focus-visible {
540
+ outline: 2px solid var(--focus);
541
+ outline-offset: 2px;
542
+ border-color: var(--primary);
543
+ }
544
+ textarea:user-invalid {
545
+ border-color: var(--danger);
546
+ }
547
+ textarea:disabled {
548
+ opacity: 0.5;
549
+ cursor: not-allowed;
550
+ }
551
+ label {
552
+ display: block;
553
+ font: 500 var(--t-body-sm-s)/var(--t-body-sm-lh) var(--f-ui);
554
+ color: var(--text);
555
+ }
556
+ fieldset {
557
+ border: 1px solid var(--border);
558
+ border-radius: var(--r-md);
559
+ padding: var(--s3);
560
+ }
561
+ legend {
562
+ font-weight: 600;
563
+ padding-inline: var(--s1);
564
+ }
565
+ button {
566
+ display: inline-flex;
567
+ align-items: center;
568
+ justify-content: center;
569
+ block-size: var(--s4);
570
+ padding: calc(var(--s2) - 1px) var(--s3);
571
+ font: 500 var(--t-body-s)/var(--t-body-lh) var(--f-ui);
572
+ border: 1px solid transparent;
573
+ cursor: pointer;
574
+ background-color: transparent;
575
+ color: inherit;
576
+ text-decoration: none;
577
+ white-space: nowrap;
578
+ }
579
+ button:focus-visible {
580
+ outline: 2px solid var(--focus);
581
+ outline-offset: 2px;
582
+ }
583
+ button:disabled, button[aria-disabled=true] {
584
+ opacity: 0.5;
585
+ cursor: not-allowed;
586
+ }
587
+ }
588
+ @layer base {
589
+ details > summary {
590
+ cursor: pointer;
591
+ list-style: none;
592
+ user-select: none;
593
+ }
594
+ details > summary::-webkit-details-marker {
595
+ display: none;
596
+ }
597
+ dialog {
598
+ background-color: var(--surface-raised);
599
+ color: var(--text);
600
+ border: none;
601
+ border-radius: var(--r-lg);
602
+ padding: var(--s4);
603
+ max-inline-size: min(90vw, 560px);
604
+ box-shadow: var(--sh4);
605
+ }
606
+ dialog::backdrop {
607
+ background-color: var(--overlay);
608
+ }
609
+ }
610
+ @layer layout {
611
+ .ln-shell {
612
+ display: grid;
613
+ grid-template-areas: "header header" "sidebar main";
614
+ grid-template-rows: 48px 1fr;
615
+ grid-template-columns: 240px 1fr;
616
+ min-block-size: 100svh;
617
+ background-color: var(--canvas);
618
+ }
619
+ .ln-shell__header {
620
+ grid-area: header;
621
+ display: flex;
622
+ align-items: center;
623
+ justify-content: space-between;
624
+ padding-inline: var(--s3);
625
+ background-color: var(--surface);
626
+ border-block-end: 1px solid var(--border);
627
+ position: sticky;
628
+ top: 0;
629
+ z-index: 100;
630
+ }
631
+ .ln-shell__sidebar {
632
+ grid-area: sidebar;
633
+ overflow-y: auto;
634
+ border-inline-end: 1px solid var(--border);
635
+ background-color: var(--surface);
636
+ padding-block: var(--s3);
637
+ position: sticky;
638
+ top: 48px;
639
+ block-size: calc(100svh - 48px);
640
+ }
641
+ .ln-shell__main {
642
+ grid-area: main;
643
+ padding: var(--s4);
644
+ min-inline-size: 0;
645
+ }
646
+ @media (max-width: 1024px) {
647
+ .ln-shell {
648
+ grid-template-areas: "header" "main";
649
+ grid-template-columns: 1fr;
650
+ }
651
+ .ln-shell__sidebar {
652
+ position: fixed;
653
+ top: 0;
654
+ bottom: 0;
655
+ left: 0;
656
+ width: 240px;
657
+ z-index: 200;
658
+ transform: translateX(-100%);
659
+ visibility: hidden;
660
+ transition: transform var(--dur-base) var(--e-exit), visibility var(--dur-base) var(--e-exit);
661
+ }
662
+ .ln-shell[data-sidebar=open] .ln-shell__sidebar {
663
+ transform: translateX(0);
664
+ visibility: visible;
665
+ box-shadow: var(--sh4);
666
+ transition: transform var(--dur-base) var(--e-enter), visibility var(--dur-base) var(--e-enter), box-shadow var(--dur-base) var(--e-enter);
667
+ }
668
+ .ln-shell[data-sidebar=open]::before {
669
+ content: "";
670
+ position: fixed;
671
+ top: 0;
672
+ left: 0;
673
+ right: 0;
674
+ bottom: 0;
675
+ background: var(--overlay);
676
+ z-index: 199;
677
+ }
678
+ }
679
+ }
680
+ @layer layout {
681
+ .ln-container {
682
+ width: 100%;
683
+ max-width: var(--container);
684
+ margin-inline: auto;
685
+ padding-inline: var(--gutter);
686
+ }
687
+ .ln-container--narrow {
688
+ max-width: var(--measure);
689
+ }
690
+ .ln-container--wide {
691
+ max-width: var(--container-wide);
692
+ }
693
+ .ln-container--full {
694
+ max-width: none;
695
+ }
696
+ .ln-container--flush {
697
+ padding-inline: 0;
698
+ }
699
+ }
700
+ @layer layout {
701
+ .ln-grid {
702
+ display: grid;
703
+ gap: var(--_gap, var(--s3));
704
+ }
705
+ .ln-grid--cols-1 {
706
+ grid-template-columns: repeat(1, 1fr);
707
+ }
708
+ .ln-grid--cols-2 {
709
+ grid-template-columns: repeat(2, 1fr);
710
+ }
711
+ .ln-grid--cols-3 {
712
+ grid-template-columns: repeat(3, 1fr);
713
+ }
714
+ .ln-grid--cols-4 {
715
+ grid-template-columns: repeat(4, 1fr);
716
+ }
717
+ .ln-grid--cols-5 {
718
+ grid-template-columns: repeat(5, 1fr);
719
+ }
720
+ .ln-grid--cols-6 {
721
+ grid-template-columns: repeat(6, 1fr);
722
+ }
723
+ .ln-grid--cols-12 {
724
+ grid-template-columns: repeat(12, 1fr);
725
+ }
726
+ .ln-grid--auto {
727
+ grid-template-columns: repeat(auto-fit, minmax(min(var(--grid-min, 15rem), 100%), 1fr));
728
+ }
729
+ .ln-grid--gap-0 {
730
+ --_gap: 0;
731
+ }
732
+ .ln-grid--gap-xs {
733
+ --_gap: var(--s1);
734
+ }
735
+ .ln-grid--gap-sm {
736
+ --_gap: var(--s2);
737
+ }
738
+ .ln-grid--gap-md {
739
+ --_gap: var(--s3);
740
+ }
741
+ .ln-grid--gap-lg {
742
+ --_gap: var(--s4);
743
+ }
744
+ @media (min-width: 576px) {
745
+ .ln-grid--cols-1\@sm {
746
+ grid-template-columns: repeat(1, 1fr);
747
+ }
748
+ .ln-grid--cols-2\@sm {
749
+ grid-template-columns: repeat(2, 1fr);
750
+ }
751
+ .ln-grid--cols-3\@sm {
752
+ grid-template-columns: repeat(3, 1fr);
753
+ }
754
+ .ln-grid--cols-4\@sm {
755
+ grid-template-columns: repeat(4, 1fr);
756
+ }
757
+ .ln-grid--cols-5\@sm {
758
+ grid-template-columns: repeat(5, 1fr);
759
+ }
760
+ .ln-grid--cols-6\@sm {
761
+ grid-template-columns: repeat(6, 1fr);
762
+ }
763
+ .ln-grid--cols-12\@sm {
764
+ grid-template-columns: repeat(12, 1fr);
765
+ }
766
+ }
767
+ @media (min-width: 768px) {
768
+ .ln-grid--cols-1\@md {
769
+ grid-template-columns: repeat(1, 1fr);
770
+ }
771
+ .ln-grid--cols-2\@md {
772
+ grid-template-columns: repeat(2, 1fr);
773
+ }
774
+ .ln-grid--cols-3\@md {
775
+ grid-template-columns: repeat(3, 1fr);
776
+ }
777
+ .ln-grid--cols-4\@md {
778
+ grid-template-columns: repeat(4, 1fr);
779
+ }
780
+ .ln-grid--cols-5\@md {
781
+ grid-template-columns: repeat(5, 1fr);
782
+ }
783
+ .ln-grid--cols-6\@md {
784
+ grid-template-columns: repeat(6, 1fr);
785
+ }
786
+ .ln-grid--cols-12\@md {
787
+ grid-template-columns: repeat(12, 1fr);
788
+ }
789
+ }
790
+ @media (min-width: 1024px) {
791
+ .ln-grid--cols-1\@lg {
792
+ grid-template-columns: repeat(1, 1fr);
793
+ }
794
+ .ln-grid--cols-2\@lg {
795
+ grid-template-columns: repeat(2, 1fr);
796
+ }
797
+ .ln-grid--cols-3\@lg {
798
+ grid-template-columns: repeat(3, 1fr);
799
+ }
800
+ .ln-grid--cols-4\@lg {
801
+ grid-template-columns: repeat(4, 1fr);
802
+ }
803
+ .ln-grid--cols-5\@lg {
804
+ grid-template-columns: repeat(5, 1fr);
805
+ }
806
+ .ln-grid--cols-6\@lg {
807
+ grid-template-columns: repeat(6, 1fr);
808
+ }
809
+ .ln-grid--cols-12\@lg {
810
+ grid-template-columns: repeat(12, 1fr);
811
+ }
812
+ }
813
+ @media (min-width: 1280px) {
814
+ .ln-grid--cols-1\@xl {
815
+ grid-template-columns: repeat(1, 1fr);
816
+ }
817
+ .ln-grid--cols-2\@xl {
818
+ grid-template-columns: repeat(2, 1fr);
819
+ }
820
+ .ln-grid--cols-3\@xl {
821
+ grid-template-columns: repeat(3, 1fr);
822
+ }
823
+ .ln-grid--cols-4\@xl {
824
+ grid-template-columns: repeat(4, 1fr);
825
+ }
826
+ .ln-grid--cols-5\@xl {
827
+ grid-template-columns: repeat(5, 1fr);
828
+ }
829
+ .ln-grid--cols-6\@xl {
830
+ grid-template-columns: repeat(6, 1fr);
831
+ }
832
+ .ln-grid--cols-12\@xl {
833
+ grid-template-columns: repeat(12, 1fr);
834
+ }
835
+ }
836
+ @media (min-width: 1536px) {
837
+ .ln-grid--cols-1\@2xl {
838
+ grid-template-columns: repeat(1, 1fr);
839
+ }
840
+ .ln-grid--cols-2\@2xl {
841
+ grid-template-columns: repeat(2, 1fr);
842
+ }
843
+ .ln-grid--cols-3\@2xl {
844
+ grid-template-columns: repeat(3, 1fr);
845
+ }
846
+ .ln-grid--cols-4\@2xl {
847
+ grid-template-columns: repeat(4, 1fr);
848
+ }
849
+ .ln-grid--cols-5\@2xl {
850
+ grid-template-columns: repeat(5, 1fr);
851
+ }
852
+ .ln-grid--cols-6\@2xl {
853
+ grid-template-columns: repeat(6, 1fr);
854
+ }
855
+ .ln-grid--cols-12\@2xl {
856
+ grid-template-columns: repeat(12, 1fr);
857
+ }
858
+ }
859
+ .ln-grid__item--span-1 {
860
+ grid-column: span 1;
861
+ }
862
+ .ln-grid__item--span-2 {
863
+ grid-column: span 2;
864
+ }
865
+ .ln-grid__item--span-3 {
866
+ grid-column: span 3;
867
+ }
868
+ .ln-grid__item--span-4 {
869
+ grid-column: span 4;
870
+ }
871
+ .ln-grid__item--span-5 {
872
+ grid-column: span 5;
873
+ }
874
+ .ln-grid__item--span-6 {
875
+ grid-column: span 6;
876
+ }
877
+ .ln-grid__item--span-7 {
878
+ grid-column: span 7;
879
+ }
880
+ .ln-grid__item--span-8 {
881
+ grid-column: span 8;
882
+ }
883
+ .ln-grid__item--span-9 {
884
+ grid-column: span 9;
885
+ }
886
+ .ln-grid__item--span-10 {
887
+ grid-column: span 10;
888
+ }
889
+ .ln-grid__item--span-11 {
890
+ grid-column: span 11;
891
+ }
892
+ .ln-grid__item--span-12 {
893
+ grid-column: span 12;
894
+ }
895
+ .ln-grid__item--span-full {
896
+ grid-column: 1/-1;
897
+ }
898
+ .ln-grid__item--start-1 {
899
+ grid-column-start: 1;
900
+ }
901
+ .ln-grid__item--start-2 {
902
+ grid-column-start: 2;
903
+ }
904
+ .ln-grid__item--start-3 {
905
+ grid-column-start: 3;
906
+ }
907
+ .ln-grid__item--start-4 {
908
+ grid-column-start: 4;
909
+ }
910
+ .ln-grid__item--start-5 {
911
+ grid-column-start: 5;
912
+ }
913
+ .ln-grid__item--start-6 {
914
+ grid-column-start: 6;
915
+ }
916
+ .ln-grid__item--start-7 {
917
+ grid-column-start: 7;
918
+ }
919
+ .ln-grid__item--start-8 {
920
+ grid-column-start: 8;
921
+ }
922
+ .ln-grid__item--start-9 {
923
+ grid-column-start: 9;
924
+ }
925
+ .ln-grid__item--start-10 {
926
+ grid-column-start: 10;
927
+ }
928
+ .ln-grid__item--start-11 {
929
+ grid-column-start: 11;
930
+ }
931
+ .ln-grid__item--start-12 {
932
+ grid-column-start: 12;
933
+ }
934
+ .ln-grid__item--subgrid {
935
+ display: grid;
936
+ grid-template-rows: subgrid;
937
+ grid-row: span var(--rows, 3);
938
+ }
939
+ @media (min-width: 576px) {
940
+ .ln-grid__item--span-1\@sm {
941
+ grid-column: span 1;
942
+ }
943
+ .ln-grid__item--span-2\@sm {
944
+ grid-column: span 2;
945
+ }
946
+ .ln-grid__item--span-3\@sm {
947
+ grid-column: span 3;
948
+ }
949
+ .ln-grid__item--span-4\@sm {
950
+ grid-column: span 4;
951
+ }
952
+ .ln-grid__item--span-5\@sm {
953
+ grid-column: span 5;
954
+ }
955
+ .ln-grid__item--span-6\@sm {
956
+ grid-column: span 6;
957
+ }
958
+ .ln-grid__item--span-7\@sm {
959
+ grid-column: span 7;
960
+ }
961
+ .ln-grid__item--span-8\@sm {
962
+ grid-column: span 8;
963
+ }
964
+ .ln-grid__item--span-9\@sm {
965
+ grid-column: span 9;
966
+ }
967
+ .ln-grid__item--span-10\@sm {
968
+ grid-column: span 10;
969
+ }
970
+ .ln-grid__item--span-11\@sm {
971
+ grid-column: span 11;
972
+ }
973
+ .ln-grid__item--span-12\@sm {
974
+ grid-column: span 12;
975
+ }
976
+ .ln-grid__item--span-full\@sm {
977
+ grid-column: 1/-1;
978
+ }
979
+ .ln-grid__item--start-1\@sm {
980
+ grid-column-start: 1;
981
+ }
982
+ .ln-grid__item--start-2\@sm {
983
+ grid-column-start: 2;
984
+ }
985
+ .ln-grid__item--start-3\@sm {
986
+ grid-column-start: 3;
987
+ }
988
+ .ln-grid__item--start-4\@sm {
989
+ grid-column-start: 4;
990
+ }
991
+ .ln-grid__item--start-5\@sm {
992
+ grid-column-start: 5;
993
+ }
994
+ .ln-grid__item--start-6\@sm {
995
+ grid-column-start: 6;
996
+ }
997
+ .ln-grid__item--start-7\@sm {
998
+ grid-column-start: 7;
999
+ }
1000
+ .ln-grid__item--start-8\@sm {
1001
+ grid-column-start: 8;
1002
+ }
1003
+ .ln-grid__item--start-9\@sm {
1004
+ grid-column-start: 9;
1005
+ }
1006
+ .ln-grid__item--start-10\@sm {
1007
+ grid-column-start: 10;
1008
+ }
1009
+ .ln-grid__item--start-11\@sm {
1010
+ grid-column-start: 11;
1011
+ }
1012
+ .ln-grid__item--start-12\@sm {
1013
+ grid-column-start: 12;
1014
+ }
1015
+ }
1016
+ @media (min-width: 768px) {
1017
+ .ln-grid__item--span-1\@md {
1018
+ grid-column: span 1;
1019
+ }
1020
+ .ln-grid__item--span-2\@md {
1021
+ grid-column: span 2;
1022
+ }
1023
+ .ln-grid__item--span-3\@md {
1024
+ grid-column: span 3;
1025
+ }
1026
+ .ln-grid__item--span-4\@md {
1027
+ grid-column: span 4;
1028
+ }
1029
+ .ln-grid__item--span-5\@md {
1030
+ grid-column: span 5;
1031
+ }
1032
+ .ln-grid__item--span-6\@md {
1033
+ grid-column: span 6;
1034
+ }
1035
+ .ln-grid__item--span-7\@md {
1036
+ grid-column: span 7;
1037
+ }
1038
+ .ln-grid__item--span-8\@md {
1039
+ grid-column: span 8;
1040
+ }
1041
+ .ln-grid__item--span-9\@md {
1042
+ grid-column: span 9;
1043
+ }
1044
+ .ln-grid__item--span-10\@md {
1045
+ grid-column: span 10;
1046
+ }
1047
+ .ln-grid__item--span-11\@md {
1048
+ grid-column: span 11;
1049
+ }
1050
+ .ln-grid__item--span-12\@md {
1051
+ grid-column: span 12;
1052
+ }
1053
+ .ln-grid__item--span-full\@md {
1054
+ grid-column: 1/-1;
1055
+ }
1056
+ .ln-grid__item--start-1\@md {
1057
+ grid-column-start: 1;
1058
+ }
1059
+ .ln-grid__item--start-2\@md {
1060
+ grid-column-start: 2;
1061
+ }
1062
+ .ln-grid__item--start-3\@md {
1063
+ grid-column-start: 3;
1064
+ }
1065
+ .ln-grid__item--start-4\@md {
1066
+ grid-column-start: 4;
1067
+ }
1068
+ .ln-grid__item--start-5\@md {
1069
+ grid-column-start: 5;
1070
+ }
1071
+ .ln-grid__item--start-6\@md {
1072
+ grid-column-start: 6;
1073
+ }
1074
+ .ln-grid__item--start-7\@md {
1075
+ grid-column-start: 7;
1076
+ }
1077
+ .ln-grid__item--start-8\@md {
1078
+ grid-column-start: 8;
1079
+ }
1080
+ .ln-grid__item--start-9\@md {
1081
+ grid-column-start: 9;
1082
+ }
1083
+ .ln-grid__item--start-10\@md {
1084
+ grid-column-start: 10;
1085
+ }
1086
+ .ln-grid__item--start-11\@md {
1087
+ grid-column-start: 11;
1088
+ }
1089
+ .ln-grid__item--start-12\@md {
1090
+ grid-column-start: 12;
1091
+ }
1092
+ }
1093
+ @media (min-width: 1024px) {
1094
+ .ln-grid__item--span-1\@lg {
1095
+ grid-column: span 1;
1096
+ }
1097
+ .ln-grid__item--span-2\@lg {
1098
+ grid-column: span 2;
1099
+ }
1100
+ .ln-grid__item--span-3\@lg {
1101
+ grid-column: span 3;
1102
+ }
1103
+ .ln-grid__item--span-4\@lg {
1104
+ grid-column: span 4;
1105
+ }
1106
+ .ln-grid__item--span-5\@lg {
1107
+ grid-column: span 5;
1108
+ }
1109
+ .ln-grid__item--span-6\@lg {
1110
+ grid-column: span 6;
1111
+ }
1112
+ .ln-grid__item--span-7\@lg {
1113
+ grid-column: span 7;
1114
+ }
1115
+ .ln-grid__item--span-8\@lg {
1116
+ grid-column: span 8;
1117
+ }
1118
+ .ln-grid__item--span-9\@lg {
1119
+ grid-column: span 9;
1120
+ }
1121
+ .ln-grid__item--span-10\@lg {
1122
+ grid-column: span 10;
1123
+ }
1124
+ .ln-grid__item--span-11\@lg {
1125
+ grid-column: span 11;
1126
+ }
1127
+ .ln-grid__item--span-12\@lg {
1128
+ grid-column: span 12;
1129
+ }
1130
+ .ln-grid__item--span-full\@lg {
1131
+ grid-column: 1/-1;
1132
+ }
1133
+ .ln-grid__item--start-1\@lg {
1134
+ grid-column-start: 1;
1135
+ }
1136
+ .ln-grid__item--start-2\@lg {
1137
+ grid-column-start: 2;
1138
+ }
1139
+ .ln-grid__item--start-3\@lg {
1140
+ grid-column-start: 3;
1141
+ }
1142
+ .ln-grid__item--start-4\@lg {
1143
+ grid-column-start: 4;
1144
+ }
1145
+ .ln-grid__item--start-5\@lg {
1146
+ grid-column-start: 5;
1147
+ }
1148
+ .ln-grid__item--start-6\@lg {
1149
+ grid-column-start: 6;
1150
+ }
1151
+ .ln-grid__item--start-7\@lg {
1152
+ grid-column-start: 7;
1153
+ }
1154
+ .ln-grid__item--start-8\@lg {
1155
+ grid-column-start: 8;
1156
+ }
1157
+ .ln-grid__item--start-9\@lg {
1158
+ grid-column-start: 9;
1159
+ }
1160
+ .ln-grid__item--start-10\@lg {
1161
+ grid-column-start: 10;
1162
+ }
1163
+ .ln-grid__item--start-11\@lg {
1164
+ grid-column-start: 11;
1165
+ }
1166
+ .ln-grid__item--start-12\@lg {
1167
+ grid-column-start: 12;
1168
+ }
1169
+ }
1170
+ @media (min-width: 1280px) {
1171
+ .ln-grid__item--span-1\@xl {
1172
+ grid-column: span 1;
1173
+ }
1174
+ .ln-grid__item--span-2\@xl {
1175
+ grid-column: span 2;
1176
+ }
1177
+ .ln-grid__item--span-3\@xl {
1178
+ grid-column: span 3;
1179
+ }
1180
+ .ln-grid__item--span-4\@xl {
1181
+ grid-column: span 4;
1182
+ }
1183
+ .ln-grid__item--span-5\@xl {
1184
+ grid-column: span 5;
1185
+ }
1186
+ .ln-grid__item--span-6\@xl {
1187
+ grid-column: span 6;
1188
+ }
1189
+ .ln-grid__item--span-7\@xl {
1190
+ grid-column: span 7;
1191
+ }
1192
+ .ln-grid__item--span-8\@xl {
1193
+ grid-column: span 8;
1194
+ }
1195
+ .ln-grid__item--span-9\@xl {
1196
+ grid-column: span 9;
1197
+ }
1198
+ .ln-grid__item--span-10\@xl {
1199
+ grid-column: span 10;
1200
+ }
1201
+ .ln-grid__item--span-11\@xl {
1202
+ grid-column: span 11;
1203
+ }
1204
+ .ln-grid__item--span-12\@xl {
1205
+ grid-column: span 12;
1206
+ }
1207
+ .ln-grid__item--span-full\@xl {
1208
+ grid-column: 1/-1;
1209
+ }
1210
+ .ln-grid__item--start-1\@xl {
1211
+ grid-column-start: 1;
1212
+ }
1213
+ .ln-grid__item--start-2\@xl {
1214
+ grid-column-start: 2;
1215
+ }
1216
+ .ln-grid__item--start-3\@xl {
1217
+ grid-column-start: 3;
1218
+ }
1219
+ .ln-grid__item--start-4\@xl {
1220
+ grid-column-start: 4;
1221
+ }
1222
+ .ln-grid__item--start-5\@xl {
1223
+ grid-column-start: 5;
1224
+ }
1225
+ .ln-grid__item--start-6\@xl {
1226
+ grid-column-start: 6;
1227
+ }
1228
+ .ln-grid__item--start-7\@xl {
1229
+ grid-column-start: 7;
1230
+ }
1231
+ .ln-grid__item--start-8\@xl {
1232
+ grid-column-start: 8;
1233
+ }
1234
+ .ln-grid__item--start-9\@xl {
1235
+ grid-column-start: 9;
1236
+ }
1237
+ .ln-grid__item--start-10\@xl {
1238
+ grid-column-start: 10;
1239
+ }
1240
+ .ln-grid__item--start-11\@xl {
1241
+ grid-column-start: 11;
1242
+ }
1243
+ .ln-grid__item--start-12\@xl {
1244
+ grid-column-start: 12;
1245
+ }
1246
+ }
1247
+ @media (min-width: 1536px) {
1248
+ .ln-grid__item--span-1\@2xl {
1249
+ grid-column: span 1;
1250
+ }
1251
+ .ln-grid__item--span-2\@2xl {
1252
+ grid-column: span 2;
1253
+ }
1254
+ .ln-grid__item--span-3\@2xl {
1255
+ grid-column: span 3;
1256
+ }
1257
+ .ln-grid__item--span-4\@2xl {
1258
+ grid-column: span 4;
1259
+ }
1260
+ .ln-grid__item--span-5\@2xl {
1261
+ grid-column: span 5;
1262
+ }
1263
+ .ln-grid__item--span-6\@2xl {
1264
+ grid-column: span 6;
1265
+ }
1266
+ .ln-grid__item--span-7\@2xl {
1267
+ grid-column: span 7;
1268
+ }
1269
+ .ln-grid__item--span-8\@2xl {
1270
+ grid-column: span 8;
1271
+ }
1272
+ .ln-grid__item--span-9\@2xl {
1273
+ grid-column: span 9;
1274
+ }
1275
+ .ln-grid__item--span-10\@2xl {
1276
+ grid-column: span 10;
1277
+ }
1278
+ .ln-grid__item--span-11\@2xl {
1279
+ grid-column: span 11;
1280
+ }
1281
+ .ln-grid__item--span-12\@2xl {
1282
+ grid-column: span 12;
1283
+ }
1284
+ .ln-grid__item--span-full\@2xl {
1285
+ grid-column: 1/-1;
1286
+ }
1287
+ .ln-grid__item--start-1\@2xl {
1288
+ grid-column-start: 1;
1289
+ }
1290
+ .ln-grid__item--start-2\@2xl {
1291
+ grid-column-start: 2;
1292
+ }
1293
+ .ln-grid__item--start-3\@2xl {
1294
+ grid-column-start: 3;
1295
+ }
1296
+ .ln-grid__item--start-4\@2xl {
1297
+ grid-column-start: 4;
1298
+ }
1299
+ .ln-grid__item--start-5\@2xl {
1300
+ grid-column-start: 5;
1301
+ }
1302
+ .ln-grid__item--start-6\@2xl {
1303
+ grid-column-start: 6;
1304
+ }
1305
+ .ln-grid__item--start-7\@2xl {
1306
+ grid-column-start: 7;
1307
+ }
1308
+ .ln-grid__item--start-8\@2xl {
1309
+ grid-column-start: 8;
1310
+ }
1311
+ .ln-grid__item--start-9\@2xl {
1312
+ grid-column-start: 9;
1313
+ }
1314
+ .ln-grid__item--start-10\@2xl {
1315
+ grid-column-start: 10;
1316
+ }
1317
+ .ln-grid__item--start-11\@2xl {
1318
+ grid-column-start: 11;
1319
+ }
1320
+ .ln-grid__item--start-12\@2xl {
1321
+ grid-column-start: 12;
1322
+ }
1323
+ }
1324
+ }
1325
+ @layer layout {
1326
+ .ln-cluster {
1327
+ display: flex;
1328
+ flex-wrap: wrap;
1329
+ gap: var(--_gap, var(--s1));
1330
+ align-items: center;
1331
+ }
1332
+ .ln-cluster--gap-xs {
1333
+ --_gap: var(--s1);
1334
+ }
1335
+ .ln-cluster--gap-sm {
1336
+ --_gap: var(--s2);
1337
+ }
1338
+ .ln-cluster--gap-md {
1339
+ --_gap: var(--s3);
1340
+ }
1341
+ .ln-cluster--justify-start {
1342
+ justify-content: flex-start;
1343
+ }
1344
+ .ln-cluster--justify-center {
1345
+ justify-content: center;
1346
+ }
1347
+ .ln-cluster--justify-end {
1348
+ justify-content: flex-end;
1349
+ }
1350
+ .ln-cluster--justify-between {
1351
+ justify-content: space-between;
1352
+ }
1353
+ .ln-cluster--align-start {
1354
+ align-items: flex-start;
1355
+ }
1356
+ .ln-cluster--align-center {
1357
+ align-items: center;
1358
+ }
1359
+ .ln-cluster--align-baseline {
1360
+ align-items: baseline;
1361
+ }
1362
+ .ln-cluster--align-end {
1363
+ align-items: flex-end;
1364
+ }
1365
+ .ln-cluster--nowrap {
1366
+ flex-wrap: nowrap;
1367
+ }
1368
+ @media (min-width: 576px) {
1369
+ .ln-cluster--justify-start\@sm {
1370
+ justify-content: flex-start;
1371
+ }
1372
+ .ln-cluster--justify-center\@sm {
1373
+ justify-content: center;
1374
+ }
1375
+ .ln-cluster--justify-end\@sm {
1376
+ justify-content: flex-end;
1377
+ }
1378
+ .ln-cluster--justify-between\@sm {
1379
+ justify-content: space-between;
1380
+ }
1381
+ .ln-cluster--align-start\@sm {
1382
+ align-items: flex-start;
1383
+ }
1384
+ .ln-cluster--align-center\@sm {
1385
+ align-items: center;
1386
+ }
1387
+ .ln-cluster--align-baseline\@sm {
1388
+ align-items: baseline;
1389
+ }
1390
+ .ln-cluster--align-end\@sm {
1391
+ align-items: flex-end;
1392
+ }
1393
+ .ln-cluster--nowrap\@sm {
1394
+ flex-wrap: nowrap;
1395
+ }
1396
+ }
1397
+ @media (min-width: 768px) {
1398
+ .ln-cluster--justify-start\@md {
1399
+ justify-content: flex-start;
1400
+ }
1401
+ .ln-cluster--justify-center\@md {
1402
+ justify-content: center;
1403
+ }
1404
+ .ln-cluster--justify-end\@md {
1405
+ justify-content: flex-end;
1406
+ }
1407
+ .ln-cluster--justify-between\@md {
1408
+ justify-content: space-between;
1409
+ }
1410
+ .ln-cluster--align-start\@md {
1411
+ align-items: flex-start;
1412
+ }
1413
+ .ln-cluster--align-center\@md {
1414
+ align-items: center;
1415
+ }
1416
+ .ln-cluster--align-baseline\@md {
1417
+ align-items: baseline;
1418
+ }
1419
+ .ln-cluster--align-end\@md {
1420
+ align-items: flex-end;
1421
+ }
1422
+ .ln-cluster--nowrap\@md {
1423
+ flex-wrap: nowrap;
1424
+ }
1425
+ }
1426
+ @media (min-width: 1024px) {
1427
+ .ln-cluster--justify-start\@lg {
1428
+ justify-content: flex-start;
1429
+ }
1430
+ .ln-cluster--justify-center\@lg {
1431
+ justify-content: center;
1432
+ }
1433
+ .ln-cluster--justify-end\@lg {
1434
+ justify-content: flex-end;
1435
+ }
1436
+ .ln-cluster--justify-between\@lg {
1437
+ justify-content: space-between;
1438
+ }
1439
+ .ln-cluster--align-start\@lg {
1440
+ align-items: flex-start;
1441
+ }
1442
+ .ln-cluster--align-center\@lg {
1443
+ align-items: center;
1444
+ }
1445
+ .ln-cluster--align-baseline\@lg {
1446
+ align-items: baseline;
1447
+ }
1448
+ .ln-cluster--align-end\@lg {
1449
+ align-items: flex-end;
1450
+ }
1451
+ .ln-cluster--nowrap\@lg {
1452
+ flex-wrap: nowrap;
1453
+ }
1454
+ }
1455
+ @media (min-width: 1280px) {
1456
+ .ln-cluster--justify-start\@xl {
1457
+ justify-content: flex-start;
1458
+ }
1459
+ .ln-cluster--justify-center\@xl {
1460
+ justify-content: center;
1461
+ }
1462
+ .ln-cluster--justify-end\@xl {
1463
+ justify-content: flex-end;
1464
+ }
1465
+ .ln-cluster--justify-between\@xl {
1466
+ justify-content: space-between;
1467
+ }
1468
+ .ln-cluster--align-start\@xl {
1469
+ align-items: flex-start;
1470
+ }
1471
+ .ln-cluster--align-center\@xl {
1472
+ align-items: center;
1473
+ }
1474
+ .ln-cluster--align-baseline\@xl {
1475
+ align-items: baseline;
1476
+ }
1477
+ .ln-cluster--align-end\@xl {
1478
+ align-items: flex-end;
1479
+ }
1480
+ .ln-cluster--nowrap\@xl {
1481
+ flex-wrap: nowrap;
1482
+ }
1483
+ }
1484
+ @media (min-width: 1536px) {
1485
+ .ln-cluster--justify-start\@2xl {
1486
+ justify-content: flex-start;
1487
+ }
1488
+ .ln-cluster--justify-center\@2xl {
1489
+ justify-content: center;
1490
+ }
1491
+ .ln-cluster--justify-end\@2xl {
1492
+ justify-content: flex-end;
1493
+ }
1494
+ .ln-cluster--justify-between\@2xl {
1495
+ justify-content: space-between;
1496
+ }
1497
+ .ln-cluster--align-start\@2xl {
1498
+ align-items: flex-start;
1499
+ }
1500
+ .ln-cluster--align-center\@2xl {
1501
+ align-items: center;
1502
+ }
1503
+ .ln-cluster--align-baseline\@2xl {
1504
+ align-items: baseline;
1505
+ }
1506
+ .ln-cluster--align-end\@2xl {
1507
+ align-items: flex-end;
1508
+ }
1509
+ .ln-cluster--nowrap\@2xl {
1510
+ flex-wrap: nowrap;
1511
+ }
1512
+ }
1513
+ }
1514
+ @layer layout {
1515
+ .ln-section {
1516
+ padding-block: var(--s4);
1517
+ position: relative;
1518
+ }
1519
+ .ln-section__inner {
1520
+ max-width: var(--container);
1521
+ margin-inline: auto;
1522
+ padding-inline: var(--gutter);
1523
+ }
1524
+ .ln-section--narrow .ln-section__inner {
1525
+ max-width: var(--measure);
1526
+ }
1527
+ .ln-section--wide .ln-section__inner {
1528
+ max-width: var(--container-wide);
1529
+ }
1530
+ .ln-section--space-lg {
1531
+ padding-block: 48px;
1532
+ }
1533
+ .ln-section--space-xl {
1534
+ padding-block: 72px;
1535
+ }
1536
+ .ln-section--space-2xl {
1537
+ padding-block: 96px;
1538
+ }
1539
+ .ln-section--space-3xl {
1540
+ padding-block: 144px;
1541
+ }
1542
+ @media (max-width: 768px) {
1543
+ .ln-section--space-xl {
1544
+ padding-block: 48px;
1545
+ }
1546
+ .ln-section--space-2xl {
1547
+ padding-block: 48px;
1548
+ }
1549
+ .ln-section--space-3xl {
1550
+ padding-block: 72px;
1551
+ }
1552
+ }
1553
+ .ln-section--surface-sunken {
1554
+ background: var(--surface-sunken);
1555
+ }
1556
+ .ln-section--surface-raised {
1557
+ background: var(--surface);
1558
+ }
1559
+ .ln-section--surface-inverse {
1560
+ background: var(--surface-inverse);
1561
+ color: var(--c-inverse);
1562
+ }
1563
+ .ln-section--center {
1564
+ text-align: center;
1565
+ }
1566
+ .ln-section__header {
1567
+ margin-bottom: var(--s4);
1568
+ }
1569
+ .ln-section__eyebrow {
1570
+ font: 500 var(--t-meta-s)/var(--t-meta-lh) var(--f-mono);
1571
+ letter-spacing: 0.08em;
1572
+ text-transform: uppercase;
1573
+ color: var(--c-muted);
1574
+ margin-bottom: var(--s1);
1575
+ }
1576
+ .ln-section__title {
1577
+ font: 400 var(--t-h2-s)/var(--t-h2-lh) var(--f-prose);
1578
+ letter-spacing: -0.005em;
1579
+ text-wrap: balance;
1580
+ }
1581
+ .ln-section__lead {
1582
+ font-size: var(--t-lead-s);
1583
+ line-height: var(--t-lead-lh);
1584
+ color: var(--c-muted);
1585
+ }
1586
+ }
1587
+ @layer helpers {
1588
+ .show-grid {
1589
+ --grid-line: rgb(124 58 237 / 0.30);
1590
+ --grid-base: rgb(124 58 237 / 0.15);
1591
+ position: relative;
1592
+ }
1593
+ .show-grid::before {
1594
+ content: "";
1595
+ position: absolute;
1596
+ inset: 0;
1597
+ pointer-events: none;
1598
+ z-index: 9999;
1599
+ background-image: repeating-linear-gradient(to bottom, var(--grid-line) 0 1px, transparent 1px 1.5rem), repeating-linear-gradient(to bottom, var(--grid-base) 0 1px, transparent 1px 0.5rem);
1600
+ }
1601
+ @media (prefers-color-scheme: dark) {
1602
+ .show-grid:not([data-theme=light]) {
1603
+ --grid-line: rgb(139 92 246 / 0.30);
1604
+ --grid-base: rgb(139 92 246 / 0.15);
1605
+ }
1606
+ }
1607
+ [data-theme=dark] .show-grid,
1608
+ .show-grid[data-theme=dark] {
1609
+ --grid-line: rgb(139 92 246 / 0.30);
1610
+ --grid-base: rgb(139 92 246 / 0.15);
1611
+ }
1612
+ .grid-toggle {
1613
+ position: fixed;
1614
+ bottom: var(--s3);
1615
+ right: var(--s3);
1616
+ z-index: 10000;
1617
+ display: inline-grid;
1618
+ place-items: center;
1619
+ width: var(--s4);
1620
+ height: var(--s4);
1621
+ padding: 0;
1622
+ border: none;
1623
+ border-radius: var(--r-sm);
1624
+ background: transparent;
1625
+ color: var(--c-muted);
1626
+ cursor: pointer;
1627
+ }
1628
+ .grid-toggle > i {
1629
+ font-size: 1rem;
1630
+ }
1631
+ .grid-toggle:hover {
1632
+ color: var(--text);
1633
+ background: var(--surface-raised);
1634
+ }
1635
+ .grid-toggle[aria-pressed=true] {
1636
+ color: var(--primary-text);
1637
+ background: var(--primary-subtle);
1638
+ box-shadow: inset 0 0 0 1px var(--primary-border);
1639
+ }
1640
+ }
1641
+ @layer helpers {}