@shift-css/core 0.0.1

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.
package/dist/shift.css ADDED
@@ -0,0 +1,2912 @@
1
+ @layer shift.reset {
2
+ *, :before, :after {
3
+ box-sizing: border-box;
4
+ }
5
+
6
+ * {
7
+ margin: 0;
8
+ }
9
+
10
+ html {
11
+ color-scheme: light dark;
12
+ font-size: clamp(.9375rem, .875rem + .25vi, 1rem);
13
+
14
+ @media (prefers-reduced-motion: no-preference) {
15
+ scroll-behavior: smooth;
16
+ }
17
+
18
+ -webkit-font-smoothing: antialiased;
19
+ -moz-osx-font-smoothing: grayscale;
20
+ text-rendering: optimizeLegibility;
21
+ }
22
+
23
+ body {
24
+ min-height: 100dvh;
25
+ line-height: 1.5;
26
+ font-family: var(--s-font-sans, ui-sans-serif, system-ui, sans-serif);
27
+ background-color: var(--s-surface-base);
28
+ color: var(--s-text-primary);
29
+ }
30
+
31
+ img, picture, video, canvas, svg {
32
+ max-width: 100%;
33
+ height: auto;
34
+ display: block;
35
+ }
36
+
37
+ input, button, textarea, select {
38
+ font: inherit;
39
+ color: inherit;
40
+ }
41
+
42
+ button {
43
+ cursor: pointer;
44
+ background: none;
45
+ border: none;
46
+ padding: 0;
47
+ }
48
+
49
+ p, h1, h2, h3, h4, h5, h6 {
50
+ overflow-wrap: break-word;
51
+ }
52
+
53
+ h1, h2, h3, h4, h5, h6 {
54
+ text-wrap: balance;
55
+ line-height: 1.2;
56
+ }
57
+
58
+ p {
59
+ text-wrap: pretty;
60
+ }
61
+
62
+ ul, ol {
63
+ padding: 0;
64
+ list-style: none;
65
+ }
66
+
67
+ a {
68
+ color: var(--s-interactive-primary);
69
+ text-decoration: none;
70
+
71
+ &:hover {
72
+ text-decoration: underline;
73
+ }
74
+ }
75
+
76
+ :focus-visible {
77
+ outline: 2px solid var(--s-focus-ring);
78
+ outline-offset: 2px;
79
+ }
80
+
81
+ :focus:not(:focus-visible) {
82
+ outline: none;
83
+ }
84
+
85
+ #root, #__next, #app {
86
+ isolation: isolate;
87
+ min-height: 100dvh;
88
+ }
89
+
90
+ table {
91
+ border-collapse: collapse;
92
+ border-spacing: 0;
93
+ }
94
+
95
+ pre, code {
96
+ font-family: var(--s-font-mono, ui-monospace, monospace);
97
+ }
98
+
99
+ pre {
100
+ overflow-x: auto;
101
+ }
102
+
103
+ @media (prefers-reduced-motion: reduce) {
104
+ *, :before, :after {
105
+ scroll-behavior: auto !important;
106
+ transition-duration: .01ms !important;
107
+ animation-duration: .01ms !important;
108
+ animation-iteration-count: 1 !important;
109
+ }
110
+ }
111
+
112
+ @media (prefers-contrast: more) {
113
+ * {
114
+ border-color: currentColor !important;
115
+ }
116
+ }
117
+
118
+ @media print {
119
+ *, :before, :after {
120
+ color: #000 !important;
121
+ box-shadow: none !important;
122
+ text-shadow: none !important;
123
+ background: none !important;
124
+ }
125
+
126
+ a, a:visited {
127
+ text-decoration: underline;
128
+ }
129
+
130
+ a[href]:after {
131
+ content: " (" attr(href) ")";
132
+ }
133
+
134
+ pre {
135
+ white-space: pre-wrap !important;
136
+ }
137
+
138
+ @page {
139
+ margin: 2cm;
140
+ }
141
+ }
142
+ }
143
+
144
+ @layer shift.tokens {
145
+ @layer shift.tokens {
146
+ :root {
147
+ color-scheme: light dark;
148
+ --shift-hue-primary: 250;
149
+ --shift-hue-secondary: 180;
150
+ --shift-hue-accent: 30;
151
+ --shift-hue-success: 145;
152
+ --shift-hue-warning: 45;
153
+ --shift-hue-danger: 25;
154
+ --shift-hue-neutral: 250;
155
+ --s-primary-50: oklch(.9778 .0108 var(--shift-hue-primary));
156
+ --s-primary-100: oklch(.9356 .0321 var(--shift-hue-primary));
157
+ --s-primary-200: oklch(.8811 .0636 var(--shift-hue-primary));
158
+ --s-primary-300: oklch(.8267 .0951 var(--shift-hue-primary));
159
+ --s-primary-400: oklch(.7422 .1211 var(--shift-hue-primary));
160
+ --s-primary-500: oklch(.6478 .1472 var(--shift-hue-primary));
161
+ --s-primary-600: oklch(.5733 .1383 var(--shift-hue-primary));
162
+ --s-primary-700: oklch(.4689 .1178 var(--shift-hue-primary));
163
+ --s-primary-800: oklch(.3944 .0894 var(--shift-hue-primary));
164
+ --s-primary-900: oklch(.32 .072 var(--shift-hue-primary));
165
+ --s-primary-950: oklch(.2378 .054 var(--shift-hue-primary));
166
+ --s-secondary-50: oklch(.9778 .0108 var(--shift-hue-secondary));
167
+ --s-secondary-100: oklch(.9356 .0321 var(--shift-hue-secondary));
168
+ --s-secondary-200: oklch(.8811 .0636 var(--shift-hue-secondary));
169
+ --s-secondary-300: oklch(.8267 .0951 var(--shift-hue-secondary));
170
+ --s-secondary-400: oklch(.7422 .1211 var(--shift-hue-secondary));
171
+ --s-secondary-500: oklch(.6478 .1472 var(--shift-hue-secondary));
172
+ --s-secondary-600: oklch(.5733 .1383 var(--shift-hue-secondary));
173
+ --s-secondary-700: oklch(.4689 .1178 var(--shift-hue-secondary));
174
+ --s-secondary-800: oklch(.3944 .0894 var(--shift-hue-secondary));
175
+ --s-secondary-900: oklch(.32 .072 var(--shift-hue-secondary));
176
+ --s-secondary-950: oklch(.2378 .054 var(--shift-hue-secondary));
177
+ --s-accent-50: oklch(.9778 .0108 var(--shift-hue-accent));
178
+ --s-accent-100: oklch(.9356 .0321 var(--shift-hue-accent));
179
+ --s-accent-200: oklch(.8811 .0636 var(--shift-hue-accent));
180
+ --s-accent-300: oklch(.8267 .0951 var(--shift-hue-accent));
181
+ --s-accent-400: oklch(.7422 .1211 var(--shift-hue-accent));
182
+ --s-accent-500: oklch(.6478 .1472 var(--shift-hue-accent));
183
+ --s-accent-600: oklch(.5733 .1383 var(--shift-hue-accent));
184
+ --s-accent-700: oklch(.4689 .1178 var(--shift-hue-accent));
185
+ --s-accent-800: oklch(.3944 .0894 var(--shift-hue-accent));
186
+ --s-accent-900: oklch(.32 .072 var(--shift-hue-accent));
187
+ --s-accent-950: oklch(.2378 .054 var(--shift-hue-accent));
188
+ --s-success-50: oklch(.9778 .0108 var(--shift-hue-success));
189
+ --s-success-100: oklch(.9356 .0321 var(--shift-hue-success));
190
+ --s-success-200: oklch(.8811 .0636 var(--shift-hue-success));
191
+ --s-success-300: oklch(.8267 .0951 var(--shift-hue-success));
192
+ --s-success-400: oklch(.7422 .1211 var(--shift-hue-success));
193
+ --s-success-500: oklch(.6478 .1472 var(--shift-hue-success));
194
+ --s-success-600: oklch(.5733 .1383 var(--shift-hue-success));
195
+ --s-success-700: oklch(.4689 .1178 var(--shift-hue-success));
196
+ --s-success-800: oklch(.3944 .0894 var(--shift-hue-success));
197
+ --s-success-900: oklch(.32 .072 var(--shift-hue-success));
198
+ --s-success-950: oklch(.2378 .054 var(--shift-hue-success));
199
+ --s-warning-50: oklch(.9778 .0108 var(--shift-hue-warning));
200
+ --s-warning-100: oklch(.9356 .0321 var(--shift-hue-warning));
201
+ --s-warning-200: oklch(.8811 .0636 var(--shift-hue-warning));
202
+ --s-warning-300: oklch(.8267 .0951 var(--shift-hue-warning));
203
+ --s-warning-400: oklch(.7422 .1211 var(--shift-hue-warning));
204
+ --s-warning-500: oklch(.6478 .1472 var(--shift-hue-warning));
205
+ --s-warning-600: oklch(.5733 .1383 var(--shift-hue-warning));
206
+ --s-warning-700: oklch(.4689 .1178 var(--shift-hue-warning));
207
+ --s-warning-800: oklch(.3944 .0894 var(--shift-hue-warning));
208
+ --s-warning-900: oklch(.32 .072 var(--shift-hue-warning));
209
+ --s-warning-950: oklch(.2378 .054 var(--shift-hue-warning));
210
+ --s-danger-50: oklch(.9778 .0108 var(--shift-hue-danger));
211
+ --s-danger-100: oklch(.9356 .0321 var(--shift-hue-danger));
212
+ --s-danger-200: oklch(.8811 .0636 var(--shift-hue-danger));
213
+ --s-danger-300: oklch(.8267 .0951 var(--shift-hue-danger));
214
+ --s-danger-400: oklch(.7422 .1211 var(--shift-hue-danger));
215
+ --s-danger-500: oklch(.6478 .1472 var(--shift-hue-danger));
216
+ --s-danger-600: oklch(.5733 .1383 var(--shift-hue-danger));
217
+ --s-danger-700: oklch(.4689 .1178 var(--shift-hue-danger));
218
+ --s-danger-800: oklch(.3944 .0894 var(--shift-hue-danger));
219
+ --s-danger-900: oklch(.32 .072 var(--shift-hue-danger));
220
+ --s-danger-950: oklch(.2378 .054 var(--shift-hue-danger));
221
+ --s-neutral-50: oklch(.9778 .0054 var(--shift-hue-neutral));
222
+ --s-neutral-100: oklch(.9356 .0072 var(--shift-hue-neutral));
223
+ --s-neutral-200: oklch(.8811 .009 var(--shift-hue-neutral));
224
+ --s-neutral-300: oklch(.8267 .0099 var(--shift-hue-neutral));
225
+ --s-neutral-400: oklch(.7422 .0108 var(--shift-hue-neutral));
226
+ --s-neutral-500: oklch(.6478 .0118 var(--shift-hue-neutral));
227
+ --s-neutral-600: oklch(.5733 .0108 var(--shift-hue-neutral));
228
+ --s-neutral-700: oklch(.4689 .0099 var(--shift-hue-neutral));
229
+ --s-neutral-800: oklch(.3944 .009 var(--shift-hue-neutral));
230
+ --s-neutral-900: oklch(.32 .0081 var(--shift-hue-neutral));
231
+ --s-neutral-950: oklch(.2378 .0072 var(--shift-hue-neutral));
232
+ --s-surface-base: light-dark(var(--s-neutral-50), var(--s-neutral-950));
233
+ --s-surface-raised: light-dark(var(--s-neutral-100), var(--s-neutral-900));
234
+ --s-surface-sunken: light-dark(var(--s-neutral-200), var(--s-neutral-800));
235
+ --s-surface-overlay: light-dark(var(--s-neutral-900), var(--s-neutral-100));
236
+ --s-text-primary: light-dark(var(--s-neutral-900), var(--s-neutral-50));
237
+ --s-text-secondary: light-dark(var(--s-neutral-700), var(--s-neutral-300));
238
+ --s-text-tertiary: light-dark(var(--s-neutral-500), var(--s-neutral-500));
239
+ --s-text-inverse: light-dark(var(--s-neutral-50), var(--s-neutral-900));
240
+ --s-border-default: light-dark(var(--s-neutral-200), var(--s-neutral-800));
241
+ --s-border-muted: light-dark(var(--s-neutral-100), var(--s-neutral-900));
242
+ --s-border-strong: light-dark(var(--s-neutral-400), var(--s-neutral-600));
243
+ --s-interactive-primary: light-dark(var(--s-primary-700), var(--s-primary-300));
244
+ --s-interactive-primary-hover: light-dark(var(--s-primary-800), var(--s-primary-200));
245
+ --s-interactive-primary-active: light-dark(var(--s-primary-900), var(--s-primary-100));
246
+ --s-interactive-secondary: light-dark(var(--s-secondary-700), var(--s-secondary-300));
247
+ --s-state-success: light-dark(var(--s-success-700), var(--s-success-300));
248
+ --s-state-success-bg: light-dark(var(--s-success-100), var(--s-success-900));
249
+ --s-state-warning: light-dark(var(--s-warning-700), var(--s-warning-300));
250
+ --s-state-warning-bg: light-dark(var(--s-warning-100), var(--s-warning-900));
251
+ --s-state-danger: light-dark(var(--s-danger-700), var(--s-danger-300));
252
+ --s-state-danger-bg: light-dark(var(--s-danger-100), var(--s-danger-900));
253
+ --s-focus-ring: light-dark(var(--s-primary-500), var(--s-primary-400));
254
+ --s-focus-ring-offset: light-dark(var(--s-neutral-50), var(--s-neutral-950));
255
+ --s-space-0: 0;
256
+ --s-space-1: .25rem;
257
+ --s-space-2: .5rem;
258
+ --s-space-3: .75rem;
259
+ --s-space-4: 1rem;
260
+ --s-space-5: 1.25rem;
261
+ --s-space-6: 1.5rem;
262
+ --s-space-7: 1.75rem;
263
+ --s-space-8: 2rem;
264
+ --s-space-9: 2.25rem;
265
+ --s-space-10: 2.5rem;
266
+ --s-space-11: 2.75rem;
267
+ --s-space-12: 3rem;
268
+ --s-space-14: 3.5rem;
269
+ --s-space-16: 4rem;
270
+ --s-space-20: 5rem;
271
+ --s-space-24: 6rem;
272
+ --s-space-28: 7rem;
273
+ --s-space-32: 8rem;
274
+ --s-space-36: 9rem;
275
+ --s-space-40: 10rem;
276
+ --s-space-44: 11rem;
277
+ --s-space-48: 12rem;
278
+ --s-space-52: 13rem;
279
+ --s-space-56: 14rem;
280
+ --s-space-60: 15rem;
281
+ --s-space-64: 16rem;
282
+ --s-space-72: 18rem;
283
+ --s-space-80: 20rem;
284
+ --s-space-96: 24rem;
285
+ --s-space-px: 1px;
286
+ --s-space-0_5: .125rem;
287
+ --s-space-1_5: .375rem;
288
+ --s-space-2_5: .625rem;
289
+ --s-space-3_5: .875rem;
290
+ --s-radius-none: 0;
291
+ --s-radius-sm: .125rem;
292
+ --s-radius-base: .25rem;
293
+ --s-radius-md: .375rem;
294
+ --s-radius-lg: .5rem;
295
+ --s-radius-xl: .75rem;
296
+ --s-radius-2xl: 1rem;
297
+ --s-radius-3xl: 1.5rem;
298
+ --s-radius-full: 9999px;
299
+ --s-font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
300
+ --s-font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
301
+ --s-font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
302
+ --s-text-xs: clamp(.6875rem, .625rem + .25vi, .75rem);
303
+ --s-text-sm: clamp(.8125rem, .75rem + .25vi, .875rem);
304
+ --s-text-base: clamp(.9375rem, .875rem + .25vi, 1rem);
305
+ --s-text-lg: clamp(1.0625rem, 1rem + .25vi, 1.125rem);
306
+ --s-text-xl: clamp(1.1875rem, 1.0625rem + .5vi, 1.25rem);
307
+ --s-text-2xl: clamp(1.4375rem, 1.25rem + .75vi, 1.5rem);
308
+ --s-text-3xl: clamp(1.75rem, 1.5rem + 1vi, 1.875rem);
309
+ --s-text-4xl: clamp(2.125rem, 1.75rem + 1.5vi, 2.25rem);
310
+ --s-text-5xl: clamp(2.75rem, 2.25rem + 2vi, 3rem);
311
+ --s-leading-none: 1;
312
+ --s-leading-tight: 1.25;
313
+ --s-leading-snug: 1.375;
314
+ --s-leading-normal: 1.5;
315
+ --s-leading-relaxed: 1.625;
316
+ --s-leading-loose: 2;
317
+ --s-font-thin: 100;
318
+ --s-font-extralight: 200;
319
+ --s-font-light: 300;
320
+ --s-font-normal: 400;
321
+ --s-font-medium: 500;
322
+ --s-font-semibold: 600;
323
+ --s-font-bold: 700;
324
+ --s-font-extrabold: 800;
325
+ --s-font-black: 900;
326
+ --s-tracking-tighter: -.05em;
327
+ --s-tracking-tight: -.025em;
328
+ --s-tracking-normal: 0;
329
+ --s-tracking-wide: .025em;
330
+ --s-tracking-wider: .05em;
331
+ --s-tracking-widest: .1em;
332
+ --s-duration-75: 75ms;
333
+ --s-duration-100: .1s;
334
+ --s-duration-150: .15s;
335
+ --s-duration-200: .2s;
336
+ --s-duration-300: .3s;
337
+ --s-duration-500: .5s;
338
+ --s-duration-700: .7s;
339
+ --s-duration-1000: 1s;
340
+ --s-ease-linear: linear;
341
+ --s-ease-in: cubic-bezier(.4, 0, 1, 1);
342
+ --s-ease-out: cubic-bezier(0, 0, .2, 1);
343
+ --s-ease-in-out: cubic-bezier(.4, 0, .2, 1);
344
+ --s-ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);
345
+ --s-shadow-sm: 0 1px 2px 0 #0000000d;
346
+ --s-shadow-base: 0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;
347
+ --s-shadow-md: 0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;
348
+ --s-shadow-lg: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;
349
+ --s-shadow-xl: 0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;
350
+ --s-shadow-2xl: 0 25px 50px -12px #00000040;
351
+ --s-shadow-inner: inset 0 2px 4px 0 #0000000d;
352
+ --s-shadow-none: 0 0 #0000;
353
+ }
354
+ }
355
+ }
356
+
357
+ @layer shift.core {
358
+ :where([s-surface]) {
359
+ --_surface-bg: var(--s-surface-base);
360
+ --_surface-padding: var(--s-space-4);
361
+ --_surface-radius: var(--s-radius-lg);
362
+ background-color: var(--_surface-bg);
363
+ padding: var(--_surface-padding);
364
+ border-radius: var(--_surface-radius);
365
+ color: var(--s-text-primary);
366
+ container-type: inline-size;
367
+
368
+ @supports (color: oklch(from red l c h)) {
369
+ color: oklch(from var(--_surface-bg) clamp(.15, calc((.6 - l) * 1000 + .15), .95) 0 0);
370
+ }
371
+
372
+ @supports (color: contrast-color(red)) {
373
+ color: contrast-color(var(--_surface-bg));
374
+ }
375
+ }
376
+
377
+ [s-surface="flat"] {
378
+ --_surface-bg: var(--s-surface-base);
379
+ }
380
+
381
+ [s-surface="sunken"] {
382
+ --_surface-bg: var(--s-surface-sunken);
383
+ box-shadow: var(--s-shadow-inner);
384
+ }
385
+
386
+ [s-surface="raised"] {
387
+ --_surface-bg: var(--s-surface-raised);
388
+ box-shadow: var(--s-shadow-md);
389
+ }
390
+
391
+ [s-surface="floating"] {
392
+ --_surface-bg: var(--s-surface-raised);
393
+ box-shadow: var(--s-shadow-xl);
394
+ }
395
+
396
+ [s-surface][s-bordered] {
397
+ border: 1px solid var(--s-border-default);
398
+ }
399
+
400
+ [s-surface][s-interactive] {
401
+ cursor: pointer;
402
+ transition: transform var(--s-duration-150) var(--s-ease-out), box-shadow var(--s-duration-150) var(--s-ease-out);
403
+
404
+ &:hover {
405
+ box-shadow: var(--s-shadow-lg);
406
+ transform: translateY(-2px);
407
+ }
408
+
409
+ &:active {
410
+ box-shadow: var(--s-shadow-sm);
411
+ transform: translateY(0);
412
+ }
413
+ }
414
+
415
+ [s-surface="primary"] {
416
+ --_surface-bg: var(--s-primary-500);
417
+ }
418
+
419
+ [s-surface="secondary"] {
420
+ --_surface-bg: var(--s-secondary-500);
421
+ }
422
+
423
+ [s-surface="accent"] {
424
+ --_surface-bg: var(--s-accent-500);
425
+ }
426
+
427
+ [s-surface="success"] {
428
+ --_surface-bg: var(--s-state-success-bg);
429
+ border-left: 4px solid var(--s-state-success);
430
+ color: var(--s-text-primary);
431
+ }
432
+
433
+ [s-surface="warning"] {
434
+ --_surface-bg: var(--s-state-warning-bg);
435
+ border-left: 4px solid var(--s-state-warning);
436
+ color: var(--s-text-primary);
437
+ }
438
+
439
+ [s-surface="danger"] {
440
+ --_surface-bg: var(--s-state-danger-bg);
441
+ border-left: 4px solid var(--s-state-danger);
442
+ color: var(--s-text-primary);
443
+ }
444
+
445
+ @container (width <= 20rem) {
446
+ :where([s-surface]) {
447
+ --_surface-padding: var(--s-space-3);
448
+ }
449
+ }
450
+
451
+ @container (width >= 40rem) {
452
+ :where([s-surface]) {
453
+ --_surface-padding: var(--s-space-6);
454
+ }
455
+ }
456
+
457
+ :where([s-btn]) {
458
+ --_btn-bg: var(--s-interactive-primary);
459
+ --_btn-text: var(--s-text-inverse);
460
+ --_btn-border: transparent;
461
+ justify-content: center;
462
+ align-items: center;
463
+ gap: var(--s-space-2);
464
+ padding: var(--s-space-2) var(--s-space-4);
465
+ border-radius: var(--s-radius-md);
466
+ font-weight: var(--s-font-semibold);
467
+ font-size: var(--s-text-sm);
468
+ white-space: nowrap;
469
+ background-color: var(--_btn-bg);
470
+ color: var(--_btn-text);
471
+ border: 1px solid var(--_btn-border);
472
+ line-height: 1;
473
+ display: inline-flex;
474
+
475
+ @supports (color: oklch(from red l c h)) {
476
+ color: oklch(from var(--_btn-bg) clamp(.15, calc((.6 - l) * 1000 + .15), .95) 0 0);
477
+ }
478
+
479
+ @supports (color: contrast-color(red)) {
480
+ color: contrast-color(var(--_btn-bg));
481
+ }
482
+
483
+ transition: background-color var(--s-duration-150) var(--s-ease-out), border-color var(--s-duration-150) var(--s-ease-out), transform var(--s-duration-100) var(--s-ease-out);
484
+ cursor: pointer;
485
+ user-select: none;
486
+
487
+ &:hover:not(:disabled) {
488
+ --_btn-bg: var(--s-interactive-primary-hover);
489
+ }
490
+
491
+ &:active:not(:disabled) {
492
+ --_btn-bg: var(--s-interactive-primary-active);
493
+ transform: scale(.98);
494
+ }
495
+
496
+ &:focus-visible {
497
+ outline: 2px solid var(--s-focus-ring);
498
+ outline-offset: 2px;
499
+ }
500
+
501
+ &:disabled {
502
+ opacity: .5;
503
+ cursor: not-allowed;
504
+ pointer-events: none;
505
+ }
506
+ }
507
+
508
+ [s-btn="primary"] {
509
+ --_btn-bg: var(--s-interactive-primary);
510
+ --_btn-text: var(--s-text-inverse);
511
+
512
+ &:hover:not(:disabled) {
513
+ --_btn-bg: var(--s-interactive-primary-hover);
514
+ }
515
+
516
+ &:active:not(:disabled) {
517
+ --_btn-bg: var(--s-interactive-primary-active);
518
+ }
519
+ }
520
+
521
+ [s-btn="secondary"] {
522
+ --_btn-bg: var(--s-surface-raised);
523
+ --_btn-text: var(--s-text-primary);
524
+ --_btn-border: var(--s-border-default);
525
+ color: var(--_btn-text);
526
+
527
+ &:hover:not(:disabled) {
528
+ --_btn-bg: var(--s-surface-sunken);
529
+ }
530
+ }
531
+
532
+ [s-btn="ghost"] {
533
+ --_btn-bg: transparent;
534
+ --_btn-text: var(--s-interactive-primary);
535
+ color: var(--_btn-text);
536
+
537
+ &:hover:not(:disabled) {
538
+ --_btn-bg: var(--s-surface-sunken);
539
+ }
540
+ }
541
+
542
+ [s-btn="link"] {
543
+ --_btn-bg: transparent;
544
+ --_btn-text: var(--s-interactive-primary);
545
+ --_btn-border: transparent;
546
+ color: var(--_btn-text);
547
+ text-underline-offset: 2px;
548
+ text-decoration: underline;
549
+
550
+ &:hover:not(:disabled) {
551
+ --_btn-text: var(--s-interactive-primary-hover);
552
+ color: var(--_btn-text);
553
+ }
554
+ }
555
+
556
+ [s-btn="outline"] {
557
+ --_btn-bg: transparent;
558
+ --_btn-text: var(--s-interactive-primary);
559
+ --_btn-border: var(--s-interactive-primary);
560
+ color: var(--_btn-text);
561
+
562
+ &:hover:not(:disabled) {
563
+ --_btn-bg: var(--s-interactive-primary);
564
+ --_btn-text: var(--s-text-inverse);
565
+ color: var(--_btn-text);
566
+ }
567
+ }
568
+
569
+ [s-btn="danger"] {
570
+ --_btn-bg: var(--s-state-danger);
571
+
572
+ &:hover:not(:disabled) {
573
+ --_btn-bg: var(--s-danger-800);
574
+ }
575
+
576
+ &:active:not(:disabled) {
577
+ --_btn-bg: var(--s-danger-900);
578
+ }
579
+ }
580
+
581
+ [s-btn="success"] {
582
+ --_btn-bg: var(--s-state-success);
583
+
584
+ &:hover:not(:disabled) {
585
+ --_btn-bg: var(--s-success-800);
586
+ }
587
+
588
+ &:active:not(:disabled) {
589
+ --_btn-bg: var(--s-success-900);
590
+ }
591
+ }
592
+
593
+ [s-btn="warning"] {
594
+ --_btn-bg: var(--s-state-warning);
595
+
596
+ &:hover:not(:disabled) {
597
+ --_btn-bg: var(--s-warning-800);
598
+ }
599
+
600
+ &:active:not(:disabled) {
601
+ --_btn-bg: var(--s-warning-900);
602
+ }
603
+ }
604
+
605
+ [s-btn][s-size="sm"] {
606
+ padding: var(--s-space-1) var(--s-space-3);
607
+ font-size: var(--s-text-xs);
608
+ }
609
+
610
+ [s-btn][s-size="lg"] {
611
+ padding: var(--s-space-3) var(--s-space-6);
612
+ font-size: var(--s-text-base);
613
+ }
614
+
615
+ [s-btn][s-size="xl"] {
616
+ padding: var(--s-space-4) var(--s-space-8);
617
+ font-size: var(--s-text-lg);
618
+ }
619
+
620
+ [s-btn][s-icon] {
621
+ padding: var(--s-space-2);
622
+ aspect-ratio: 1;
623
+ }
624
+
625
+ [s-btn][s-block] {
626
+ width: 100%;
627
+ }
628
+
629
+ [s-btn][s-loading] {
630
+ color: #0000;
631
+ pointer-events: none;
632
+ position: relative;
633
+
634
+ &:after {
635
+ content: "";
636
+ border: 2px solid var(--s-text-inverse);
637
+ border-right-color: #0000;
638
+ border-radius: 50%;
639
+ width: 1em;
640
+ height: 1em;
641
+ margin: auto;
642
+ animation: .6s linear infinite s-btn-spin;
643
+ position: absolute;
644
+ inset: 0;
645
+ }
646
+ }
647
+
648
+ @keyframes s-btn-spin {
649
+ to {
650
+ transform: rotate(360deg);
651
+ }
652
+ }
653
+
654
+ [s-btn-group] {
655
+ display: inline-flex;
656
+
657
+ & > [s-btn] {
658
+ border-radius: 0;
659
+
660
+ &:first-child {
661
+ border-radius: var(--s-radius-md) 0 0 var(--s-radius-md);
662
+ }
663
+
664
+ &:last-child {
665
+ border-radius: 0 var(--s-radius-md) var(--s-radius-md) 0;
666
+ }
667
+
668
+ &:not(:last-child) {
669
+ border-right: none;
670
+ }
671
+ }
672
+ }
673
+
674
+ :where([s-card]) {
675
+ --_card-bg: var(--s-surface-raised);
676
+ --_card-border: var(--s-border-muted);
677
+ --_card-radius: var(--s-radius-xl);
678
+ --_card-shadow: var(--s-shadow-base);
679
+ --_card-padding: var(--s-space-4);
680
+ background-color: var(--_card-bg);
681
+ border: 1px solid var(--_card-border);
682
+ border-radius: var(--_card-radius);
683
+ box-shadow: var(--_card-shadow);
684
+ color: var(--s-text-primary);
685
+ flex-direction: column;
686
+ display: flex;
687
+ overflow: hidden;
688
+ container-type: inline-size;
689
+
690
+ @supports (color: oklch(from red l c h)) {
691
+ color: oklch(from var(--_card-bg) clamp(.15, calc((.6 - l) * 1000 + .15), .95) 0 0);
692
+ }
693
+ }
694
+
695
+ [s-card-header] {
696
+ padding: var(--_card-padding, var(--s-space-4));
697
+ border-bottom: 1px solid var(--_card-border, var(--s-border-muted));
698
+ }
699
+
700
+ [s-card-body] {
701
+ padding: var(--_card-padding, var(--s-space-4));
702
+ flex: 1;
703
+ }
704
+
705
+ [s-card-footer] {
706
+ padding: var(--_card-padding, var(--s-space-4));
707
+ border-top: 1px solid var(--_card-border, var(--s-border-muted));
708
+ }
709
+
710
+ [s-card-media] {
711
+ aspect-ratio: 16 / 9;
712
+ overflow: hidden;
713
+
714
+ & > img {
715
+ object-fit: cover;
716
+ width: 100%;
717
+ height: 100%;
718
+ }
719
+ }
720
+
721
+ [s-card-title] {
722
+ font-size: var(--s-text-lg);
723
+ font-weight: var(--s-font-semibold);
724
+ line-height: var(--s-leading-tight);
725
+ margin-bottom: var(--s-space-1);
726
+ }
727
+
728
+ [s-card-subtitle] {
729
+ font-size: var(--s-text-sm);
730
+ color: var(--s-text-secondary);
731
+ }
732
+
733
+ [s-card="flat"] {
734
+ --_card-shadow: none;
735
+ --_card-border: var(--s-border-default);
736
+ }
737
+
738
+ [s-card="elevated"], [s-card][s-surface="raised"] {
739
+ --_card-shadow: var(--s-shadow-lg);
740
+ --_card-border: transparent;
741
+ }
742
+
743
+ [s-card][s-surface="floating"] {
744
+ --_card-shadow: var(--s-shadow-xl);
745
+ --_card-border: transparent;
746
+ }
747
+
748
+ [s-card="outline"] {
749
+ --_card-shadow: none;
750
+ --_card-border: var(--s-border-strong);
751
+ --_card-bg: transparent;
752
+ }
753
+
754
+ [s-card][s-interactive] {
755
+ cursor: pointer;
756
+ transition: transform var(--s-duration-200) var(--s-ease-out), box-shadow var(--s-duration-200) var(--s-ease-out);
757
+
758
+ &:hover {
759
+ --_card-shadow: var(--s-shadow-xl);
760
+ transform: translateY(-4px);
761
+ }
762
+
763
+ &:active {
764
+ transform: translateY(-2px);
765
+ }
766
+
767
+ &:focus-visible {
768
+ outline: 2px solid var(--s-focus-ring);
769
+ outline-offset: 2px;
770
+ }
771
+ }
772
+
773
+ [s-card][s-link] {
774
+ position: relative;
775
+
776
+ & a:after {
777
+ content: "";
778
+ position: absolute;
779
+ inset: 0;
780
+ }
781
+ }
782
+
783
+ [s-card][s-horizontal] {
784
+ flex-direction: row;
785
+
786
+ & [s-card-media] {
787
+ aspect-ratio: 1;
788
+ flex-shrink: 0;
789
+ width: 33%;
790
+ }
791
+ }
792
+
793
+ @container (width <= 24rem) {
794
+ [s-card][s-horizontal] {
795
+ flex-direction: column;
796
+
797
+ & [s-card-media] {
798
+ aspect-ratio: 16 / 9;
799
+ width: 100%;
800
+ }
801
+ }
802
+ }
803
+
804
+ [s-card][s-size="sm"] {
805
+ --_card-padding: var(--s-space-3);
806
+ --_card-radius: var(--s-radius-lg);
807
+ }
808
+
809
+ [s-card][s-size="lg"] {
810
+ --_card-padding: var(--s-space-6);
811
+ }
812
+
813
+ [s-card="feature"] {
814
+ text-align: center;
815
+ --_card-padding: var(--s-space-6);
816
+ }
817
+
818
+ [s-card-icon] {
819
+ font-size: var(--s-text-4xl);
820
+ margin-bottom: var(--s-space-4);
821
+ }
822
+
823
+ [s-card-grid] {
824
+ gap: var(--s-space-4);
825
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
826
+ display: grid;
827
+ }
828
+
829
+ [s-card-stack] {
830
+ gap: var(--s-space-4);
831
+ flex-direction: column;
832
+ display: flex;
833
+ }
834
+
835
+ :where([s-input]) {
836
+ --_input-bg: var(--s-surface-base);
837
+ --_input-border: var(--s-border-default);
838
+ --_input-text: var(--s-text-primary);
839
+ --_input-placeholder: var(--s-text-tertiary);
840
+ --_input-radius: var(--s-radius-md);
841
+ appearance: none;
842
+ width: 100%;
843
+ padding: var(--s-space-2) var(--s-space-3);
844
+ background-color: var(--_input-bg);
845
+ border: 2px solid var(--_input-border);
846
+ border-radius: var(--_input-radius);
847
+ color: var(--_input-text);
848
+ font-size: var(--s-text-sm);
849
+ line-height: var(--s-leading-normal);
850
+ transition: border-color var(--s-duration-150) var(--s-ease-out), box-shadow var(--s-duration-150) var(--s-ease-out);
851
+ display: block;
852
+
853
+ &::placeholder {
854
+ color: var(--_input-placeholder);
855
+ }
856
+
857
+ &:hover:not(:disabled):not(:focus) {
858
+ --_input-border: var(--s-border-strong);
859
+ }
860
+
861
+ &:focus {
862
+ --_input-border: var(--s-interactive-primary);
863
+ box-shadow: 0 0 0 3px oklch(from var(--s-interactive-primary) l c h / .2);
864
+ outline: none;
865
+ }
866
+
867
+ &:disabled {
868
+ opacity: .5;
869
+ cursor: not-allowed;
870
+ background-color: var(--s-surface-sunken);
871
+ }
872
+
873
+ &:invalid:not(:placeholder-shown), &[aria-invalid="true"] {
874
+ --_input-border: var(--s-state-danger);
875
+
876
+ &:focus {
877
+ box-shadow: 0 0 0 3px oklch(from var(--s-state-danger) l c h / .2);
878
+ }
879
+ }
880
+ }
881
+
882
+ [s-input][s-size="sm"] {
883
+ padding: var(--s-space-1) var(--s-space-2);
884
+ font-size: var(--s-text-xs);
885
+ }
886
+
887
+ [s-input][s-size="lg"] {
888
+ padding: var(--s-space-3) var(--s-space-4);
889
+ font-size: var(--s-text-base);
890
+ }
891
+
892
+ textarea[s-input] {
893
+ resize: vertical;
894
+ min-height: 6rem;
895
+ }
896
+
897
+ select[s-input] {
898
+ 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='currentColor' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
899
+ background-repeat: no-repeat;
900
+ background-position: right var(--s-space-3) center;
901
+ padding-right: var(--s-space-10);
902
+ }
903
+
904
+ [s-input-group] {
905
+ display: flex;
906
+
907
+ & > [s-input] {
908
+ border-radius: 0;
909
+ flex: 1;
910
+ min-width: 0;
911
+
912
+ &:first-child {
913
+ border-radius: var(--s-radius-md) 0 0 var(--s-radius-md);
914
+ }
915
+
916
+ &:last-child {
917
+ border-radius: 0 var(--s-radius-md) var(--s-radius-md) 0;
918
+ }
919
+ }
920
+
921
+ & > [s-input-addon] {
922
+ padding: var(--s-space-2) var(--s-space-3);
923
+ background-color: var(--s-surface-sunken);
924
+ border: 2px solid var(--s-border-default);
925
+ color: var(--s-text-secondary);
926
+ font-size: var(--s-text-sm);
927
+ white-space: nowrap;
928
+ align-items: center;
929
+ display: flex;
930
+
931
+ &:first-child {
932
+ border-radius: var(--s-radius-md) 0 0 var(--s-radius-md);
933
+ border-right: none;
934
+ }
935
+
936
+ &:last-child {
937
+ border-radius: 0 var(--s-radius-md) var(--s-radius-md) 0;
938
+ border-left: none;
939
+ }
940
+ }
941
+ }
942
+
943
+ [s-field] {
944
+ gap: var(--s-space-1);
945
+ flex-direction: column;
946
+ display: flex;
947
+ }
948
+
949
+ [s-field-label] {
950
+ font-size: var(--s-text-sm);
951
+ font-weight: var(--s-font-medium);
952
+ color: var(--s-text-primary);
953
+ }
954
+
955
+ [s-field-hint] {
956
+ font-size: var(--s-text-xs);
957
+ color: var(--s-text-secondary);
958
+ }
959
+
960
+ [s-field-error] {
961
+ font-size: var(--s-text-xs);
962
+ color: var(--s-state-danger);
963
+ }
964
+
965
+ [s-checkbox], [s-radio] {
966
+ align-items: center;
967
+ gap: var(--s-space-2);
968
+ cursor: pointer;
969
+ display: inline-flex;
970
+
971
+ & input {
972
+ appearance: none;
973
+ border: 2px solid var(--s-border-default);
974
+ background-color: var(--s-surface-base);
975
+ cursor: pointer;
976
+ width: 1.25rem;
977
+ height: 1.25rem;
978
+ transition: background-color var(--s-duration-150) var(--s-ease-out), border-color var(--s-duration-150) var(--s-ease-out);
979
+
980
+ &:checked {
981
+ background-color: var(--s-interactive-primary);
982
+ border-color: var(--s-interactive-primary);
983
+ }
984
+
985
+ &:focus-visible {
986
+ outline: 2px solid var(--s-focus-ring);
987
+ outline-offset: 2px;
988
+ }
989
+
990
+ &:disabled {
991
+ opacity: .5;
992
+ cursor: not-allowed;
993
+ }
994
+ }
995
+ }
996
+
997
+ [s-checkbox] input {
998
+ border-radius: var(--s-radius-sm);
999
+
1000
+ &:checked {
1001
+ 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='white' stroke-width='3'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
1002
+ background-position: center;
1003
+ background-repeat: no-repeat;
1004
+ background-size: .75rem;
1005
+ }
1006
+ }
1007
+
1008
+ [s-radio] input {
1009
+ border-radius: 50%;
1010
+
1011
+ &:checked {
1012
+ 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='white'%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3C/svg%3E");
1013
+ background-position: center;
1014
+ background-repeat: no-repeat;
1015
+ }
1016
+ }
1017
+
1018
+ [s-toggle] {
1019
+ align-items: center;
1020
+ gap: var(--s-space-2);
1021
+ cursor: pointer;
1022
+ display: inline-flex;
1023
+
1024
+ & input {
1025
+ appearance: none;
1026
+ background-color: var(--s-border-default);
1027
+ cursor: pointer;
1028
+ width: 2.5rem;
1029
+ height: 1.5rem;
1030
+ transition: background-color var(--s-duration-200) var(--s-ease-out);
1031
+ border-radius: 9999px;
1032
+ position: relative;
1033
+
1034
+ &:after {
1035
+ content: "";
1036
+ background-color: var(--s-surface-base);
1037
+ width: calc(1.5rem - 4px);
1038
+ height: calc(1.5rem - 4px);
1039
+ box-shadow: var(--s-shadow-sm);
1040
+ transition: transform var(--s-duration-200) var(--s-ease-out);
1041
+ border-radius: 50%;
1042
+ position: absolute;
1043
+ top: 2px;
1044
+ left: 2px;
1045
+ }
1046
+
1047
+ &:checked {
1048
+ background-color: var(--s-interactive-primary);
1049
+
1050
+ &:after {
1051
+ transform: translateX(1rem);
1052
+ }
1053
+ }
1054
+
1055
+ &:focus-visible {
1056
+ outline: 2px solid var(--s-focus-ring);
1057
+ outline-offset: 2px;
1058
+ }
1059
+
1060
+ &:disabled {
1061
+ opacity: .5;
1062
+ cursor: not-allowed;
1063
+ }
1064
+ }
1065
+ }
1066
+ }
1067
+
1068
+ @layer shift.utils {
1069
+ [s-flex] {
1070
+ display: flex;
1071
+ }
1072
+
1073
+ [s-flex="row"] {
1074
+ flex-direction: row;
1075
+ display: flex;
1076
+ }
1077
+
1078
+ [s-flex="col"] {
1079
+ flex-direction: column;
1080
+ display: flex;
1081
+ }
1082
+
1083
+ [s-flex="row-reverse"] {
1084
+ flex-direction: row-reverse;
1085
+ display: flex;
1086
+ }
1087
+
1088
+ [s-flex="col-reverse"] {
1089
+ flex-direction: column-reverse;
1090
+ display: flex;
1091
+ }
1092
+
1093
+ [s-flex="center"] {
1094
+ justify-content: center;
1095
+ align-items: center;
1096
+ display: flex;
1097
+ }
1098
+
1099
+ [s-flex="stack"] {
1100
+ flex-direction: column;
1101
+ display: flex;
1102
+ }
1103
+
1104
+ [s-flex="between"] {
1105
+ justify-content: space-between;
1106
+ align-items: center;
1107
+ display: flex;
1108
+ }
1109
+
1110
+ [s-flex="end"] {
1111
+ justify-content: flex-end;
1112
+ align-items: center;
1113
+ display: flex;
1114
+ }
1115
+
1116
+ [s-flex~="wrap"] {
1117
+ flex-wrap: wrap;
1118
+ }
1119
+
1120
+ [s-flex~="nowrap"] {
1121
+ flex-wrap: nowrap;
1122
+ }
1123
+
1124
+ [s-justify="start"] {
1125
+ justify-content: flex-start;
1126
+ }
1127
+
1128
+ [s-justify="end"] {
1129
+ justify-content: flex-end;
1130
+ }
1131
+
1132
+ [s-justify="center"] {
1133
+ justify-content: center;
1134
+ }
1135
+
1136
+ [s-justify="between"] {
1137
+ justify-content: space-between;
1138
+ }
1139
+
1140
+ [s-justify="around"] {
1141
+ justify-content: space-around;
1142
+ }
1143
+
1144
+ [s-justify="evenly"] {
1145
+ justify-content: space-evenly;
1146
+ }
1147
+
1148
+ [s-items="start"] {
1149
+ align-items: flex-start;
1150
+ }
1151
+
1152
+ [s-items="end"] {
1153
+ align-items: flex-end;
1154
+ }
1155
+
1156
+ [s-items="center"] {
1157
+ align-items: center;
1158
+ }
1159
+
1160
+ [s-items="baseline"] {
1161
+ align-items: baseline;
1162
+ }
1163
+
1164
+ [s-items="stretch"] {
1165
+ align-items: stretch;
1166
+ }
1167
+
1168
+ [s-content="start"] {
1169
+ align-content: flex-start;
1170
+ }
1171
+
1172
+ [s-content="end"] {
1173
+ align-content: flex-end;
1174
+ }
1175
+
1176
+ [s-content="center"] {
1177
+ align-content: center;
1178
+ }
1179
+
1180
+ [s-content="between"] {
1181
+ align-content: space-between;
1182
+ }
1183
+
1184
+ [s-content="around"] {
1185
+ align-content: space-around;
1186
+ }
1187
+
1188
+ [s-grid] {
1189
+ display: grid;
1190
+ }
1191
+
1192
+ [s-grid="1"] {
1193
+ grid-template-columns: repeat(1, minmax(0, 1fr));
1194
+ display: grid;
1195
+ }
1196
+
1197
+ [s-grid="2"] {
1198
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1199
+ display: grid;
1200
+ }
1201
+
1202
+ [s-grid="3"] {
1203
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1204
+ display: grid;
1205
+ }
1206
+
1207
+ [s-grid="4"] {
1208
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1209
+ display: grid;
1210
+ }
1211
+
1212
+ [s-grid="5"] {
1213
+ grid-template-columns: repeat(5, minmax(0, 1fr));
1214
+ display: grid;
1215
+ }
1216
+
1217
+ [s-grid="6"] {
1218
+ grid-template-columns: repeat(6, minmax(0, 1fr));
1219
+ display: grid;
1220
+ }
1221
+
1222
+ [s-grid="12"] {
1223
+ grid-template-columns: repeat(12, minmax(0, 1fr));
1224
+ display: grid;
1225
+ }
1226
+
1227
+ [s-grid="auto-fit"] {
1228
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
1229
+ display: grid;
1230
+ }
1231
+
1232
+ [s-grid="auto-fill"] {
1233
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
1234
+ display: grid;
1235
+ }
1236
+
1237
+ [s-grid-rows="1"] {
1238
+ grid-template-rows: repeat(1, minmax(0, 1fr));
1239
+ }
1240
+
1241
+ [s-grid-rows="2"] {
1242
+ grid-template-rows: repeat(2, minmax(0, 1fr));
1243
+ }
1244
+
1245
+ [s-grid-rows="3"] {
1246
+ grid-template-rows: repeat(3, minmax(0, 1fr));
1247
+ }
1248
+
1249
+ [s-grid-rows="4"] {
1250
+ grid-template-rows: repeat(4, minmax(0, 1fr));
1251
+ }
1252
+
1253
+ [s-col-span="1"] {
1254
+ grid-column: span 1 / span 1;
1255
+ }
1256
+
1257
+ [s-col-span="2"] {
1258
+ grid-column: span 2 / span 2;
1259
+ }
1260
+
1261
+ [s-col-span="3"] {
1262
+ grid-column: span 3 / span 3;
1263
+ }
1264
+
1265
+ [s-col-span="4"] {
1266
+ grid-column: span 4 / span 4;
1267
+ }
1268
+
1269
+ [s-col-span="6"] {
1270
+ grid-column: span 6 / span 6;
1271
+ }
1272
+
1273
+ [s-col-span="12"] {
1274
+ grid-column: span 12 / span 12;
1275
+ }
1276
+
1277
+ [s-col-span="full"] {
1278
+ grid-column: 1 / -1;
1279
+ }
1280
+
1281
+ [s-row-span="1"] {
1282
+ grid-row: span 1 / span 1;
1283
+ }
1284
+
1285
+ [s-row-span="2"] {
1286
+ grid-row: span 2 / span 2;
1287
+ }
1288
+
1289
+ [s-row-span="3"] {
1290
+ grid-row: span 3 / span 3;
1291
+ }
1292
+
1293
+ [s-row-span="full"] {
1294
+ grid-row: 1 / -1;
1295
+ }
1296
+
1297
+ [s-gap] {
1298
+ gap: var(--s-space-4);
1299
+ }
1300
+
1301
+ [s-gap="xs"] {
1302
+ gap: var(--s-space-1);
1303
+ }
1304
+
1305
+ [s-gap="sm"] {
1306
+ gap: var(--s-space-2);
1307
+ }
1308
+
1309
+ [s-gap="md"] {
1310
+ gap: var(--s-space-4);
1311
+ }
1312
+
1313
+ [s-gap="lg"] {
1314
+ gap: var(--s-space-6);
1315
+ }
1316
+
1317
+ [s-gap="xl"] {
1318
+ gap: var(--s-space-8);
1319
+ }
1320
+
1321
+ [s-gap="none"] {
1322
+ gap: 0;
1323
+ }
1324
+
1325
+ [s-container] {
1326
+ width: 100%;
1327
+ padding-inline: var(--s-space-4);
1328
+ max-width: var(--s-container-max, 80rem);
1329
+ margin-inline: auto;
1330
+ }
1331
+
1332
+ [s-container="sm"] {
1333
+ max-width: 40rem;
1334
+ }
1335
+
1336
+ [s-container="md"] {
1337
+ max-width: 48rem;
1338
+ }
1339
+
1340
+ [s-container="lg"] {
1341
+ max-width: 64rem;
1342
+ }
1343
+
1344
+ [s-container="xl"] {
1345
+ max-width: 80rem;
1346
+ }
1347
+
1348
+ [s-container="full"] {
1349
+ max-width: 100%;
1350
+ }
1351
+
1352
+ [s-container="prose"] {
1353
+ max-width: 65ch;
1354
+ }
1355
+
1356
+ [s-position="static"] {
1357
+ position: static;
1358
+ }
1359
+
1360
+ [s-position="relative"] {
1361
+ position: relative;
1362
+ }
1363
+
1364
+ [s-position="absolute"] {
1365
+ position: absolute;
1366
+ }
1367
+
1368
+ [s-position="fixed"] {
1369
+ position: fixed;
1370
+ }
1371
+
1372
+ [s-position="sticky"] {
1373
+ position: sticky;
1374
+ }
1375
+
1376
+ [s-inset="0"] {
1377
+ inset: 0;
1378
+ }
1379
+
1380
+ [s-inset="auto"] {
1381
+ inset: auto;
1382
+ }
1383
+
1384
+ [s-display="block"] {
1385
+ display: block;
1386
+ }
1387
+
1388
+ [s-display="inline"] {
1389
+ display: inline;
1390
+ }
1391
+
1392
+ [s-display="inline-block"] {
1393
+ display: inline-block;
1394
+ }
1395
+
1396
+ [s-display="contents"] {
1397
+ display: contents;
1398
+ }
1399
+
1400
+ [s-display="inline-flex"] {
1401
+ display: inline-flex;
1402
+ }
1403
+
1404
+ [s-display="inline-grid"] {
1405
+ display: inline-grid;
1406
+ }
1407
+
1408
+ [s-hidden] {
1409
+ display: none;
1410
+ }
1411
+
1412
+ [s-visible] {
1413
+ visibility: visible;
1414
+ }
1415
+
1416
+ [s-invisible] {
1417
+ visibility: hidden;
1418
+ }
1419
+
1420
+ [s-collapse] {
1421
+ visibility: collapse;
1422
+ }
1423
+
1424
+ [s-sr-only] {
1425
+ clip: rect(0, 0, 0, 0);
1426
+ white-space: nowrap;
1427
+ border-width: 0;
1428
+ width: 1px;
1429
+ height: 1px;
1430
+ margin: -1px;
1431
+ padding: 0;
1432
+ position: absolute;
1433
+ overflow: hidden;
1434
+ }
1435
+
1436
+ [s-sr-only="focusable"]:focus, [s-sr-only="focusable"]:focus-within {
1437
+ clip: auto;
1438
+ white-space: normal;
1439
+ width: auto;
1440
+ height: auto;
1441
+ margin: 0;
1442
+ padding: 0;
1443
+ position: static;
1444
+ overflow: visible;
1445
+ }
1446
+
1447
+ [s-truncate] {
1448
+ text-overflow: ellipsis;
1449
+ white-space: nowrap;
1450
+ overflow: hidden;
1451
+ }
1452
+
1453
+ [s-truncate="2"] {
1454
+ -webkit-line-clamp: 2;
1455
+ -webkit-box-orient: vertical;
1456
+ display: -webkit-box;
1457
+ overflow: hidden;
1458
+ }
1459
+
1460
+ [s-truncate="3"] {
1461
+ -webkit-line-clamp: 3;
1462
+ -webkit-box-orient: vertical;
1463
+ display: -webkit-box;
1464
+ overflow: hidden;
1465
+ }
1466
+
1467
+ [s-truncate="4"] {
1468
+ -webkit-line-clamp: 4;
1469
+ -webkit-box-orient: vertical;
1470
+ display: -webkit-box;
1471
+ overflow: hidden;
1472
+ }
1473
+
1474
+ [s-overflow="auto"] {
1475
+ overflow: auto;
1476
+ }
1477
+
1478
+ [s-overflow="hidden"] {
1479
+ overflow: hidden;
1480
+ }
1481
+
1482
+ [s-overflow="visible"] {
1483
+ overflow: visible;
1484
+ }
1485
+
1486
+ [s-overflow="scroll"] {
1487
+ overflow: scroll;
1488
+ }
1489
+
1490
+ [s-overflow-x="auto"] {
1491
+ overflow-x: auto;
1492
+ }
1493
+
1494
+ [s-overflow-x="hidden"] {
1495
+ overflow-x: hidden;
1496
+ }
1497
+
1498
+ [s-overflow-y="auto"] {
1499
+ overflow-y: auto;
1500
+ }
1501
+
1502
+ [s-overflow-y="hidden"] {
1503
+ overflow-y: hidden;
1504
+ }
1505
+
1506
+ @media (width < 640px) {
1507
+ [s-hide-on~="sm"] {
1508
+ display: none;
1509
+ }
1510
+ }
1511
+
1512
+ @media (width >= 640px) and (width < 768px) {
1513
+ [s-hide-on~="md"] {
1514
+ display: none;
1515
+ }
1516
+ }
1517
+
1518
+ @media (width >= 768px) and (width < 1024px) {
1519
+ [s-hide-on~="lg"] {
1520
+ display: none;
1521
+ }
1522
+ }
1523
+
1524
+ @media (width >= 1024px) {
1525
+ [s-hide-on~="xl"] {
1526
+ display: none;
1527
+ }
1528
+ }
1529
+
1530
+ @media (width >= 640px) {
1531
+ [s-show-on~="sm"] {
1532
+ display: none;
1533
+ }
1534
+ }
1535
+
1536
+ @media (width < 640px), (width >= 768px) {
1537
+ [s-show-on~="md"] {
1538
+ display: none;
1539
+ }
1540
+ }
1541
+
1542
+ @media (width < 768px), (width >= 1024px) {
1543
+ [s-show-on~="lg"] {
1544
+ display: none;
1545
+ }
1546
+ }
1547
+
1548
+ @media (width < 1024px) {
1549
+ [s-show-on~="xl"] {
1550
+ display: none;
1551
+ }
1552
+ }
1553
+
1554
+ [s-pointer="none"] {
1555
+ pointer-events: none;
1556
+ }
1557
+
1558
+ [s-pointer="auto"] {
1559
+ pointer-events: auto;
1560
+ }
1561
+
1562
+ [s-select="none"] {
1563
+ user-select: none;
1564
+ }
1565
+
1566
+ [s-select="text"] {
1567
+ user-select: text;
1568
+ }
1569
+
1570
+ [s-select="all"] {
1571
+ user-select: all;
1572
+ }
1573
+
1574
+ [s-select="auto"] {
1575
+ user-select: auto;
1576
+ }
1577
+
1578
+ [s-isolate] {
1579
+ isolation: isolate;
1580
+ }
1581
+
1582
+ [s-isolate="auto"] {
1583
+ isolation: auto;
1584
+ }
1585
+
1586
+ .s-m-0 {
1587
+ margin: 0;
1588
+ }
1589
+
1590
+ .s-m-1 {
1591
+ margin: var(--s-space-1);
1592
+ }
1593
+
1594
+ .s-m-2 {
1595
+ margin: var(--s-space-2);
1596
+ }
1597
+
1598
+ .s-m-3 {
1599
+ margin: var(--s-space-3);
1600
+ }
1601
+
1602
+ .s-m-4 {
1603
+ margin: var(--s-space-4);
1604
+ }
1605
+
1606
+ .s-m-5 {
1607
+ margin: var(--s-space-5);
1608
+ }
1609
+
1610
+ .s-m-6 {
1611
+ margin: var(--s-space-6);
1612
+ }
1613
+
1614
+ .s-m-8 {
1615
+ margin: var(--s-space-8);
1616
+ }
1617
+
1618
+ .s-m-10 {
1619
+ margin: var(--s-space-10);
1620
+ }
1621
+
1622
+ .s-m-12 {
1623
+ margin: var(--s-space-12);
1624
+ }
1625
+
1626
+ .s-m-auto {
1627
+ margin: auto;
1628
+ }
1629
+
1630
+ .s-mx-0 {
1631
+ margin-inline: 0;
1632
+ }
1633
+
1634
+ .s-mx-1 {
1635
+ margin-inline: var(--s-space-1);
1636
+ }
1637
+
1638
+ .s-mx-2 {
1639
+ margin-inline: var(--s-space-2);
1640
+ }
1641
+
1642
+ .s-mx-3 {
1643
+ margin-inline: var(--s-space-3);
1644
+ }
1645
+
1646
+ .s-mx-4 {
1647
+ margin-inline: var(--s-space-4);
1648
+ }
1649
+
1650
+ .s-mx-5 {
1651
+ margin-inline: var(--s-space-5);
1652
+ }
1653
+
1654
+ .s-mx-6 {
1655
+ margin-inline: var(--s-space-6);
1656
+ }
1657
+
1658
+ .s-mx-8 {
1659
+ margin-inline: var(--s-space-8);
1660
+ }
1661
+
1662
+ .s-mx-auto {
1663
+ margin-inline: auto;
1664
+ }
1665
+
1666
+ .s-my-0 {
1667
+ margin-block: 0;
1668
+ }
1669
+
1670
+ .s-my-1 {
1671
+ margin-block: var(--s-space-1);
1672
+ }
1673
+
1674
+ .s-my-2 {
1675
+ margin-block: var(--s-space-2);
1676
+ }
1677
+
1678
+ .s-my-3 {
1679
+ margin-block: var(--s-space-3);
1680
+ }
1681
+
1682
+ .s-my-4 {
1683
+ margin-block: var(--s-space-4);
1684
+ }
1685
+
1686
+ .s-my-5 {
1687
+ margin-block: var(--s-space-5);
1688
+ }
1689
+
1690
+ .s-my-6 {
1691
+ margin-block: var(--s-space-6);
1692
+ }
1693
+
1694
+ .s-my-8 {
1695
+ margin-block: var(--s-space-8);
1696
+ }
1697
+
1698
+ .s-my-auto {
1699
+ margin-block: auto;
1700
+ }
1701
+
1702
+ .s-mt-0 {
1703
+ margin-top: 0;
1704
+ }
1705
+
1706
+ .s-mt-1 {
1707
+ margin-top: var(--s-space-1);
1708
+ }
1709
+
1710
+ .s-mt-2 {
1711
+ margin-top: var(--s-space-2);
1712
+ }
1713
+
1714
+ .s-mt-3 {
1715
+ margin-top: var(--s-space-3);
1716
+ }
1717
+
1718
+ .s-mt-4 {
1719
+ margin-top: var(--s-space-4);
1720
+ }
1721
+
1722
+ .s-mt-5 {
1723
+ margin-top: var(--s-space-5);
1724
+ }
1725
+
1726
+ .s-mt-6 {
1727
+ margin-top: var(--s-space-6);
1728
+ }
1729
+
1730
+ .s-mt-8 {
1731
+ margin-top: var(--s-space-8);
1732
+ }
1733
+
1734
+ .s-mt-auto {
1735
+ margin-top: auto;
1736
+ }
1737
+
1738
+ .s-mb-0 {
1739
+ margin-bottom: 0;
1740
+ }
1741
+
1742
+ .s-mb-1 {
1743
+ margin-bottom: var(--s-space-1);
1744
+ }
1745
+
1746
+ .s-mb-2 {
1747
+ margin-bottom: var(--s-space-2);
1748
+ }
1749
+
1750
+ .s-mb-3 {
1751
+ margin-bottom: var(--s-space-3);
1752
+ }
1753
+
1754
+ .s-mb-4 {
1755
+ margin-bottom: var(--s-space-4);
1756
+ }
1757
+
1758
+ .s-mb-5 {
1759
+ margin-bottom: var(--s-space-5);
1760
+ }
1761
+
1762
+ .s-mb-6 {
1763
+ margin-bottom: var(--s-space-6);
1764
+ }
1765
+
1766
+ .s-mb-8 {
1767
+ margin-bottom: var(--s-space-8);
1768
+ }
1769
+
1770
+ .s-mb-auto {
1771
+ margin-bottom: auto;
1772
+ }
1773
+
1774
+ .s-ml-0 {
1775
+ margin-left: 0;
1776
+ }
1777
+
1778
+ .s-ml-1 {
1779
+ margin-left: var(--s-space-1);
1780
+ }
1781
+
1782
+ .s-ml-2 {
1783
+ margin-left: var(--s-space-2);
1784
+ }
1785
+
1786
+ .s-ml-3 {
1787
+ margin-left: var(--s-space-3);
1788
+ }
1789
+
1790
+ .s-ml-4 {
1791
+ margin-left: var(--s-space-4);
1792
+ }
1793
+
1794
+ .s-ml-auto {
1795
+ margin-left: auto;
1796
+ }
1797
+
1798
+ .s-mr-0 {
1799
+ margin-right: 0;
1800
+ }
1801
+
1802
+ .s-mr-1 {
1803
+ margin-right: var(--s-space-1);
1804
+ }
1805
+
1806
+ .s-mr-2 {
1807
+ margin-right: var(--s-space-2);
1808
+ }
1809
+
1810
+ .s-mr-3 {
1811
+ margin-right: var(--s-space-3);
1812
+ }
1813
+
1814
+ .s-mr-4 {
1815
+ margin-right: var(--s-space-4);
1816
+ }
1817
+
1818
+ .s-mr-auto {
1819
+ margin-right: auto;
1820
+ }
1821
+
1822
+ .s-p-0 {
1823
+ padding: 0;
1824
+ }
1825
+
1826
+ .s-p-1 {
1827
+ padding: var(--s-space-1);
1828
+ }
1829
+
1830
+ .s-p-2 {
1831
+ padding: var(--s-space-2);
1832
+ }
1833
+
1834
+ .s-p-3 {
1835
+ padding: var(--s-space-3);
1836
+ }
1837
+
1838
+ .s-p-4 {
1839
+ padding: var(--s-space-4);
1840
+ }
1841
+
1842
+ .s-p-5 {
1843
+ padding: var(--s-space-5);
1844
+ }
1845
+
1846
+ .s-p-6 {
1847
+ padding: var(--s-space-6);
1848
+ }
1849
+
1850
+ .s-p-8 {
1851
+ padding: var(--s-space-8);
1852
+ }
1853
+
1854
+ .s-p-10 {
1855
+ padding: var(--s-space-10);
1856
+ }
1857
+
1858
+ .s-p-12 {
1859
+ padding: var(--s-space-12);
1860
+ }
1861
+
1862
+ .s-px-0 {
1863
+ padding-inline: 0;
1864
+ }
1865
+
1866
+ .s-px-1 {
1867
+ padding-inline: var(--s-space-1);
1868
+ }
1869
+
1870
+ .s-px-2 {
1871
+ padding-inline: var(--s-space-2);
1872
+ }
1873
+
1874
+ .s-px-3 {
1875
+ padding-inline: var(--s-space-3);
1876
+ }
1877
+
1878
+ .s-px-4 {
1879
+ padding-inline: var(--s-space-4);
1880
+ }
1881
+
1882
+ .s-px-5 {
1883
+ padding-inline: var(--s-space-5);
1884
+ }
1885
+
1886
+ .s-px-6 {
1887
+ padding-inline: var(--s-space-6);
1888
+ }
1889
+
1890
+ .s-px-8 {
1891
+ padding-inline: var(--s-space-8);
1892
+ }
1893
+
1894
+ .s-py-0 {
1895
+ padding-block: 0;
1896
+ }
1897
+
1898
+ .s-py-1 {
1899
+ padding-block: var(--s-space-1);
1900
+ }
1901
+
1902
+ .s-py-2 {
1903
+ padding-block: var(--s-space-2);
1904
+ }
1905
+
1906
+ .s-py-3 {
1907
+ padding-block: var(--s-space-3);
1908
+ }
1909
+
1910
+ .s-py-4 {
1911
+ padding-block: var(--s-space-4);
1912
+ }
1913
+
1914
+ .s-py-5 {
1915
+ padding-block: var(--s-space-5);
1916
+ }
1917
+
1918
+ .s-py-6 {
1919
+ padding-block: var(--s-space-6);
1920
+ }
1921
+
1922
+ .s-py-8 {
1923
+ padding-block: var(--s-space-8);
1924
+ }
1925
+
1926
+ .s-pt-0 {
1927
+ padding-top: 0;
1928
+ }
1929
+
1930
+ .s-pt-1 {
1931
+ padding-top: var(--s-space-1);
1932
+ }
1933
+
1934
+ .s-pt-2 {
1935
+ padding-top: var(--s-space-2);
1936
+ }
1937
+
1938
+ .s-pt-3 {
1939
+ padding-top: var(--s-space-3);
1940
+ }
1941
+
1942
+ .s-pt-4 {
1943
+ padding-top: var(--s-space-4);
1944
+ }
1945
+
1946
+ .s-pt-5 {
1947
+ padding-top: var(--s-space-5);
1948
+ }
1949
+
1950
+ .s-pt-6 {
1951
+ padding-top: var(--s-space-6);
1952
+ }
1953
+
1954
+ .s-pt-8 {
1955
+ padding-top: var(--s-space-8);
1956
+ }
1957
+
1958
+ .s-pb-0 {
1959
+ padding-bottom: 0;
1960
+ }
1961
+
1962
+ .s-pb-1 {
1963
+ padding-bottom: var(--s-space-1);
1964
+ }
1965
+
1966
+ .s-pb-2 {
1967
+ padding-bottom: var(--s-space-2);
1968
+ }
1969
+
1970
+ .s-pb-3 {
1971
+ padding-bottom: var(--s-space-3);
1972
+ }
1973
+
1974
+ .s-pb-4 {
1975
+ padding-bottom: var(--s-space-4);
1976
+ }
1977
+
1978
+ .s-pb-5 {
1979
+ padding-bottom: var(--s-space-5);
1980
+ }
1981
+
1982
+ .s-pb-6 {
1983
+ padding-bottom: var(--s-space-6);
1984
+ }
1985
+
1986
+ .s-pb-8 {
1987
+ padding-bottom: var(--s-space-8);
1988
+ }
1989
+
1990
+ .s-pl-0 {
1991
+ padding-left: 0;
1992
+ }
1993
+
1994
+ .s-pl-1 {
1995
+ padding-left: var(--s-space-1);
1996
+ }
1997
+
1998
+ .s-pl-2 {
1999
+ padding-left: var(--s-space-2);
2000
+ }
2001
+
2002
+ .s-pl-3 {
2003
+ padding-left: var(--s-space-3);
2004
+ }
2005
+
2006
+ .s-pl-4 {
2007
+ padding-left: var(--s-space-4);
2008
+ }
2009
+
2010
+ .s-pr-0 {
2011
+ padding-right: 0;
2012
+ }
2013
+
2014
+ .s-pr-1 {
2015
+ padding-right: var(--s-space-1);
2016
+ }
2017
+
2018
+ .s-pr-2 {
2019
+ padding-right: var(--s-space-2);
2020
+ }
2021
+
2022
+ .s-pr-3 {
2023
+ padding-right: var(--s-space-3);
2024
+ }
2025
+
2026
+ .s-pr-4 {
2027
+ padding-right: var(--s-space-4);
2028
+ }
2029
+
2030
+ .s-gap-0 {
2031
+ gap: 0;
2032
+ }
2033
+
2034
+ .s-gap-1 {
2035
+ gap: var(--s-space-1);
2036
+ }
2037
+
2038
+ .s-gap-2 {
2039
+ gap: var(--s-space-2);
2040
+ }
2041
+
2042
+ .s-gap-3 {
2043
+ gap: var(--s-space-3);
2044
+ }
2045
+
2046
+ .s-gap-4 {
2047
+ gap: var(--s-space-4);
2048
+ }
2049
+
2050
+ .s-gap-5 {
2051
+ gap: var(--s-space-5);
2052
+ }
2053
+
2054
+ .s-gap-6 {
2055
+ gap: var(--s-space-6);
2056
+ }
2057
+
2058
+ .s-gap-8 {
2059
+ gap: var(--s-space-8);
2060
+ }
2061
+
2062
+ .s-gap-10 {
2063
+ gap: var(--s-space-10);
2064
+ }
2065
+
2066
+ .s-gap-12 {
2067
+ gap: var(--s-space-12);
2068
+ }
2069
+
2070
+ .s-gap-x-0 {
2071
+ column-gap: 0;
2072
+ }
2073
+
2074
+ .s-gap-x-1 {
2075
+ column-gap: var(--s-space-1);
2076
+ }
2077
+
2078
+ .s-gap-x-2 {
2079
+ column-gap: var(--s-space-2);
2080
+ }
2081
+
2082
+ .s-gap-x-3 {
2083
+ column-gap: var(--s-space-3);
2084
+ }
2085
+
2086
+ .s-gap-x-4 {
2087
+ column-gap: var(--s-space-4);
2088
+ }
2089
+
2090
+ .s-gap-x-6 {
2091
+ column-gap: var(--s-space-6);
2092
+ }
2093
+
2094
+ .s-gap-x-8 {
2095
+ column-gap: var(--s-space-8);
2096
+ }
2097
+
2098
+ .s-gap-y-0 {
2099
+ row-gap: 0;
2100
+ }
2101
+
2102
+ .s-gap-y-1 {
2103
+ row-gap: var(--s-space-1);
2104
+ }
2105
+
2106
+ .s-gap-y-2 {
2107
+ row-gap: var(--s-space-2);
2108
+ }
2109
+
2110
+ .s-gap-y-3 {
2111
+ row-gap: var(--s-space-3);
2112
+ }
2113
+
2114
+ .s-gap-y-4 {
2115
+ row-gap: var(--s-space-4);
2116
+ }
2117
+
2118
+ .s-gap-y-6 {
2119
+ row-gap: var(--s-space-6);
2120
+ }
2121
+
2122
+ .s-gap-y-8 {
2123
+ row-gap: var(--s-space-8);
2124
+ }
2125
+
2126
+ .s-space-y-1 > * + * {
2127
+ margin-top: var(--s-space-1);
2128
+ }
2129
+
2130
+ .s-space-y-2 > * + * {
2131
+ margin-top: var(--s-space-2);
2132
+ }
2133
+
2134
+ .s-space-y-3 > * + * {
2135
+ margin-top: var(--s-space-3);
2136
+ }
2137
+
2138
+ .s-space-y-4 > * + * {
2139
+ margin-top: var(--s-space-4);
2140
+ }
2141
+
2142
+ .s-space-y-6 > * + * {
2143
+ margin-top: var(--s-space-6);
2144
+ }
2145
+
2146
+ .s-space-y-8 > * + * {
2147
+ margin-top: var(--s-space-8);
2148
+ }
2149
+
2150
+ .s-space-x-1 > * + * {
2151
+ margin-left: var(--s-space-1);
2152
+ }
2153
+
2154
+ .s-space-x-2 > * + * {
2155
+ margin-left: var(--s-space-2);
2156
+ }
2157
+
2158
+ .s-space-x-3 > * + * {
2159
+ margin-left: var(--s-space-3);
2160
+ }
2161
+
2162
+ .s-space-x-4 > * + * {
2163
+ margin-left: var(--s-space-4);
2164
+ }
2165
+
2166
+ .s-space-x-6 > * + * {
2167
+ margin-left: var(--s-space-6);
2168
+ }
2169
+
2170
+ .s-space-x-8 > * + * {
2171
+ margin-left: var(--s-space-8);
2172
+ }
2173
+
2174
+ .s-flex-1 {
2175
+ flex: 1;
2176
+ }
2177
+
2178
+ .s-flex-auto {
2179
+ flex: auto;
2180
+ }
2181
+
2182
+ .s-flex-initial {
2183
+ flex: 0 auto;
2184
+ }
2185
+
2186
+ .s-flex-none {
2187
+ flex: none;
2188
+ }
2189
+
2190
+ .s-grow {
2191
+ flex-grow: 1;
2192
+ }
2193
+
2194
+ .s-grow-0 {
2195
+ flex-grow: 0;
2196
+ }
2197
+
2198
+ .s-shrink {
2199
+ flex-shrink: 1;
2200
+ }
2201
+
2202
+ .s-shrink-0 {
2203
+ flex-shrink: 0;
2204
+ }
2205
+
2206
+ .s-self-auto {
2207
+ align-self: auto;
2208
+ }
2209
+
2210
+ .s-self-start {
2211
+ align-self: flex-start;
2212
+ }
2213
+
2214
+ .s-self-end {
2215
+ align-self: flex-end;
2216
+ }
2217
+
2218
+ .s-self-center {
2219
+ align-self: center;
2220
+ }
2221
+
2222
+ .s-self-stretch {
2223
+ align-self: stretch;
2224
+ }
2225
+
2226
+ .s-self-baseline {
2227
+ align-self: baseline;
2228
+ }
2229
+
2230
+ .s-place-items-start {
2231
+ place-items: start;
2232
+ }
2233
+
2234
+ .s-place-items-end {
2235
+ place-items: end;
2236
+ }
2237
+
2238
+ .s-place-items-center {
2239
+ place-items: center;
2240
+ }
2241
+
2242
+ .s-place-items-stretch {
2243
+ place-items: stretch stretch;
2244
+ }
2245
+
2246
+ .s-place-content-start {
2247
+ place-content: start;
2248
+ }
2249
+
2250
+ .s-place-content-end {
2251
+ place-content: end;
2252
+ }
2253
+
2254
+ .s-place-content-center {
2255
+ place-content: center;
2256
+ }
2257
+
2258
+ .s-place-content-between {
2259
+ place-content: space-between;
2260
+ }
2261
+
2262
+ .s-place-content-around {
2263
+ place-content: space-around;
2264
+ }
2265
+
2266
+ .s-place-content-evenly {
2267
+ place-content: space-evenly;
2268
+ }
2269
+
2270
+ .s-order-first {
2271
+ order: -9999;
2272
+ }
2273
+
2274
+ .s-order-last {
2275
+ order: 9999;
2276
+ }
2277
+
2278
+ .s-order-none {
2279
+ order: 0;
2280
+ }
2281
+
2282
+ .s-order-1 {
2283
+ order: 1;
2284
+ }
2285
+
2286
+ .s-order-2 {
2287
+ order: 2;
2288
+ }
2289
+
2290
+ .s-order-3 {
2291
+ order: 3;
2292
+ }
2293
+
2294
+ .s-w-full {
2295
+ width: 100%;
2296
+ }
2297
+
2298
+ .s-w-screen {
2299
+ width: 100vw;
2300
+ }
2301
+
2302
+ .s-w-min {
2303
+ width: min-content;
2304
+ }
2305
+
2306
+ .s-w-max {
2307
+ width: max-content;
2308
+ }
2309
+
2310
+ .s-w-fit {
2311
+ width: fit-content;
2312
+ }
2313
+
2314
+ .s-w-auto {
2315
+ width: auto;
2316
+ }
2317
+
2318
+ .s-h-full {
2319
+ height: 100%;
2320
+ }
2321
+
2322
+ .s-h-screen {
2323
+ height: 100vh;
2324
+ }
2325
+
2326
+ .s-h-screen-dvh {
2327
+ height: 100dvh;
2328
+ }
2329
+
2330
+ .s-h-min {
2331
+ height: min-content;
2332
+ }
2333
+
2334
+ .s-h-max {
2335
+ height: max-content;
2336
+ }
2337
+
2338
+ .s-h-fit {
2339
+ height: fit-content;
2340
+ }
2341
+
2342
+ .s-h-auto {
2343
+ height: auto;
2344
+ }
2345
+
2346
+ .s-min-w-0 {
2347
+ min-width: 0;
2348
+ }
2349
+
2350
+ .s-min-w-full {
2351
+ min-width: 100%;
2352
+ }
2353
+
2354
+ .s-max-w-none {
2355
+ max-width: none;
2356
+ }
2357
+
2358
+ .s-max-w-xs {
2359
+ max-width: 20rem;
2360
+ }
2361
+
2362
+ .s-max-w-sm {
2363
+ max-width: 24rem;
2364
+ }
2365
+
2366
+ .s-max-w-md {
2367
+ max-width: 28rem;
2368
+ }
2369
+
2370
+ .s-max-w-lg {
2371
+ max-width: 32rem;
2372
+ }
2373
+
2374
+ .s-max-w-xl {
2375
+ max-width: 36rem;
2376
+ }
2377
+
2378
+ .s-max-w-2xl {
2379
+ max-width: 42rem;
2380
+ }
2381
+
2382
+ .s-max-w-3xl {
2383
+ max-width: 48rem;
2384
+ }
2385
+
2386
+ .s-max-w-4xl {
2387
+ max-width: 56rem;
2388
+ }
2389
+
2390
+ .s-max-w-5xl {
2391
+ max-width: 64rem;
2392
+ }
2393
+
2394
+ .s-max-w-6xl {
2395
+ max-width: 72rem;
2396
+ }
2397
+
2398
+ .s-max-w-7xl {
2399
+ max-width: 80rem;
2400
+ }
2401
+
2402
+ .s-max-w-full {
2403
+ max-width: 100%;
2404
+ }
2405
+
2406
+ .s-max-w-prose {
2407
+ max-width: 65ch;
2408
+ }
2409
+
2410
+ .s-min-h-0 {
2411
+ min-height: 0;
2412
+ }
2413
+
2414
+ .s-min-h-full {
2415
+ min-height: 100%;
2416
+ }
2417
+
2418
+ .s-min-h-screen {
2419
+ min-height: 100vh;
2420
+ }
2421
+
2422
+ .s-min-h-screen-dvh {
2423
+ min-height: 100dvh;
2424
+ }
2425
+
2426
+ .s-max-h-full {
2427
+ max-height: 100%;
2428
+ }
2429
+
2430
+ .s-max-h-screen {
2431
+ max-height: 100vh;
2432
+ }
2433
+
2434
+ .s-aspect-auto {
2435
+ aspect-ratio: auto;
2436
+ }
2437
+
2438
+ .s-aspect-square {
2439
+ aspect-ratio: 1;
2440
+ }
2441
+
2442
+ .s-aspect-video {
2443
+ aspect-ratio: 16 / 9;
2444
+ }
2445
+
2446
+ .s-aspect-4-3 {
2447
+ aspect-ratio: 4 / 3;
2448
+ }
2449
+
2450
+ .s-z-0 {
2451
+ z-index: 0;
2452
+ }
2453
+
2454
+ .s-z-10 {
2455
+ z-index: 10;
2456
+ }
2457
+
2458
+ .s-z-20 {
2459
+ z-index: 20;
2460
+ }
2461
+
2462
+ .s-z-30 {
2463
+ z-index: 30;
2464
+ }
2465
+
2466
+ .s-z-40 {
2467
+ z-index: 40;
2468
+ }
2469
+
2470
+ .s-z-50 {
2471
+ z-index: 50;
2472
+ }
2473
+
2474
+ .s-z-auto {
2475
+ z-index: auto;
2476
+ }
2477
+
2478
+ .s-font-sans {
2479
+ font-family: var(--s-font-sans);
2480
+ }
2481
+
2482
+ .s-font-serif {
2483
+ font-family: var(--s-font-serif);
2484
+ }
2485
+
2486
+ .s-font-mono {
2487
+ font-family: var(--s-font-mono);
2488
+ }
2489
+
2490
+ .s-text-xs {
2491
+ font-size: var(--s-text-xs);
2492
+ }
2493
+
2494
+ .s-text-sm {
2495
+ font-size: var(--s-text-sm);
2496
+ }
2497
+
2498
+ .s-text-base {
2499
+ font-size: var(--s-text-base);
2500
+ }
2501
+
2502
+ .s-text-lg {
2503
+ font-size: var(--s-text-lg);
2504
+ }
2505
+
2506
+ .s-text-xl {
2507
+ font-size: var(--s-text-xl);
2508
+ }
2509
+
2510
+ .s-text-2xl {
2511
+ font-size: var(--s-text-2xl);
2512
+ }
2513
+
2514
+ .s-text-3xl {
2515
+ font-size: var(--s-text-3xl);
2516
+ }
2517
+
2518
+ .s-text-4xl {
2519
+ font-size: var(--s-text-4xl);
2520
+ }
2521
+
2522
+ .s-text-5xl {
2523
+ font-size: var(--s-text-5xl);
2524
+ }
2525
+
2526
+ .s-font-thin {
2527
+ font-weight: var(--s-font-thin);
2528
+ }
2529
+
2530
+ .s-font-extralight {
2531
+ font-weight: var(--s-font-extralight);
2532
+ }
2533
+
2534
+ .s-font-light {
2535
+ font-weight: var(--s-font-light);
2536
+ }
2537
+
2538
+ .s-font-normal {
2539
+ font-weight: var(--s-font-normal);
2540
+ }
2541
+
2542
+ .s-font-medium {
2543
+ font-weight: var(--s-font-medium);
2544
+ }
2545
+
2546
+ .s-font-semibold {
2547
+ font-weight: var(--s-font-semibold);
2548
+ }
2549
+
2550
+ .s-font-bold {
2551
+ font-weight: var(--s-font-bold);
2552
+ }
2553
+
2554
+ .s-font-extrabold {
2555
+ font-weight: var(--s-font-extrabold);
2556
+ }
2557
+
2558
+ .s-font-black {
2559
+ font-weight: var(--s-font-black);
2560
+ }
2561
+
2562
+ .s-leading-none {
2563
+ line-height: var(--s-leading-none);
2564
+ }
2565
+
2566
+ .s-leading-tight {
2567
+ line-height: var(--s-leading-tight);
2568
+ }
2569
+
2570
+ .s-leading-snug {
2571
+ line-height: var(--s-leading-snug);
2572
+ }
2573
+
2574
+ .s-leading-normal {
2575
+ line-height: var(--s-leading-normal);
2576
+ }
2577
+
2578
+ .s-leading-relaxed {
2579
+ line-height: var(--s-leading-relaxed);
2580
+ }
2581
+
2582
+ .s-leading-loose {
2583
+ line-height: var(--s-leading-loose);
2584
+ }
2585
+
2586
+ .s-tracking-tighter {
2587
+ letter-spacing: var(--s-tracking-tighter);
2588
+ }
2589
+
2590
+ .s-tracking-tight {
2591
+ letter-spacing: var(--s-tracking-tight);
2592
+ }
2593
+
2594
+ .s-tracking-normal {
2595
+ letter-spacing: var(--s-tracking-normal);
2596
+ }
2597
+
2598
+ .s-tracking-wide {
2599
+ letter-spacing: var(--s-tracking-wide);
2600
+ }
2601
+
2602
+ .s-tracking-wider {
2603
+ letter-spacing: var(--s-tracking-wider);
2604
+ }
2605
+
2606
+ .s-tracking-widest {
2607
+ letter-spacing: var(--s-tracking-widest);
2608
+ }
2609
+
2610
+ .s-text-left {
2611
+ text-align: left;
2612
+ }
2613
+
2614
+ .s-text-center {
2615
+ text-align: center;
2616
+ }
2617
+
2618
+ .s-text-right {
2619
+ text-align: right;
2620
+ }
2621
+
2622
+ .s-text-justify {
2623
+ text-align: justify;
2624
+ }
2625
+
2626
+ .s-text-start {
2627
+ text-align: start;
2628
+ }
2629
+
2630
+ .s-text-end {
2631
+ text-align: end;
2632
+ }
2633
+
2634
+ .s-align-baseline {
2635
+ vertical-align: baseline;
2636
+ }
2637
+
2638
+ .s-align-top {
2639
+ vertical-align: top;
2640
+ }
2641
+
2642
+ .s-align-middle {
2643
+ vertical-align: middle;
2644
+ }
2645
+
2646
+ .s-align-bottom {
2647
+ vertical-align: bottom;
2648
+ }
2649
+
2650
+ .s-align-text-top {
2651
+ vertical-align: text-top;
2652
+ }
2653
+
2654
+ .s-align-text-bottom {
2655
+ vertical-align: text-bottom;
2656
+ }
2657
+
2658
+ .s-align-sub {
2659
+ vertical-align: sub;
2660
+ }
2661
+
2662
+ .s-align-super {
2663
+ vertical-align: super;
2664
+ }
2665
+
2666
+ .s-underline {
2667
+ text-decoration-line: underline;
2668
+ }
2669
+
2670
+ .s-overline {
2671
+ text-decoration-line: overline;
2672
+ }
2673
+
2674
+ .s-line-through {
2675
+ text-decoration-line: line-through;
2676
+ }
2677
+
2678
+ .s-no-underline {
2679
+ text-decoration-line: none;
2680
+ }
2681
+
2682
+ .s-decoration-solid {
2683
+ text-decoration-style: solid;
2684
+ }
2685
+
2686
+ .s-decoration-double {
2687
+ text-decoration-style: double;
2688
+ }
2689
+
2690
+ .s-decoration-dotted {
2691
+ text-decoration-style: dotted;
2692
+ }
2693
+
2694
+ .s-decoration-dashed {
2695
+ text-decoration-style: dashed;
2696
+ }
2697
+
2698
+ .s-decoration-wavy {
2699
+ text-decoration-style: wavy;
2700
+ }
2701
+
2702
+ .s-uppercase {
2703
+ text-transform: uppercase;
2704
+ }
2705
+
2706
+ .s-lowercase {
2707
+ text-transform: lowercase;
2708
+ }
2709
+
2710
+ .s-capitalize {
2711
+ text-transform: capitalize;
2712
+ }
2713
+
2714
+ .s-normal-case {
2715
+ text-transform: none;
2716
+ }
2717
+
2718
+ .s-text-ellipsis {
2719
+ text-overflow: ellipsis;
2720
+ }
2721
+
2722
+ .s-text-clip {
2723
+ text-overflow: clip;
2724
+ }
2725
+
2726
+ .s-text-wrap {
2727
+ text-wrap: wrap;
2728
+ }
2729
+
2730
+ .s-text-nowrap {
2731
+ text-wrap: nowrap;
2732
+ }
2733
+
2734
+ .s-text-balance {
2735
+ text-wrap: balance;
2736
+ }
2737
+
2738
+ .s-text-pretty {
2739
+ text-wrap: pretty;
2740
+ }
2741
+
2742
+ .s-whitespace-normal {
2743
+ white-space: normal;
2744
+ }
2745
+
2746
+ .s-whitespace-nowrap {
2747
+ white-space: nowrap;
2748
+ }
2749
+
2750
+ .s-whitespace-pre {
2751
+ white-space: pre;
2752
+ }
2753
+
2754
+ .s-whitespace-pre-line {
2755
+ white-space: pre-line;
2756
+ }
2757
+
2758
+ .s-whitespace-pre-wrap {
2759
+ white-space: pre-wrap;
2760
+ }
2761
+
2762
+ .s-whitespace-break-spaces {
2763
+ white-space: break-spaces;
2764
+ }
2765
+
2766
+ .s-break-normal {
2767
+ overflow-wrap: normal;
2768
+ word-break: normal;
2769
+ }
2770
+
2771
+ .s-break-words {
2772
+ overflow-wrap: break-word;
2773
+ }
2774
+
2775
+ .s-break-all {
2776
+ word-break: break-all;
2777
+ }
2778
+
2779
+ .s-break-keep {
2780
+ word-break: keep-all;
2781
+ }
2782
+
2783
+ .s-hyphens-none {
2784
+ hyphens: none;
2785
+ }
2786
+
2787
+ .s-hyphens-manual {
2788
+ hyphens: manual;
2789
+ }
2790
+
2791
+ .s-hyphens-auto {
2792
+ hyphens: auto;
2793
+ }
2794
+
2795
+ .s-text-primary {
2796
+ color: var(--s-text-primary);
2797
+ }
2798
+
2799
+ .s-text-secondary {
2800
+ color: var(--s-text-secondary);
2801
+ }
2802
+
2803
+ .s-text-tertiary {
2804
+ color: var(--s-text-tertiary);
2805
+ }
2806
+
2807
+ .s-text-inverse {
2808
+ color: var(--s-text-inverse);
2809
+ }
2810
+
2811
+ .s-text-success {
2812
+ color: var(--s-state-success);
2813
+ }
2814
+
2815
+ .s-text-warning {
2816
+ color: var(--s-state-warning);
2817
+ }
2818
+
2819
+ .s-text-danger {
2820
+ color: var(--s-state-danger);
2821
+ }
2822
+
2823
+ .s-link {
2824
+ color: var(--s-interactive-primary);
2825
+ text-underline-offset: 2px;
2826
+ text-decoration: underline;
2827
+
2828
+ &:hover {
2829
+ color: var(--s-interactive-primary-hover);
2830
+ }
2831
+ }
2832
+
2833
+ .s-list-none {
2834
+ list-style-type: none;
2835
+ }
2836
+
2837
+ .s-list-disc {
2838
+ list-style-type: disc;
2839
+ }
2840
+
2841
+ .s-list-decimal {
2842
+ list-style-type: decimal;
2843
+ }
2844
+
2845
+ .s-list-inside {
2846
+ list-style-position: inside;
2847
+ }
2848
+
2849
+ .s-list-outside {
2850
+ list-style-position: outside;
2851
+ }
2852
+
2853
+ .s-opacity-0 {
2854
+ opacity: 0;
2855
+ }
2856
+
2857
+ .s-opacity-5 {
2858
+ opacity: .05;
2859
+ }
2860
+
2861
+ .s-opacity-10 {
2862
+ opacity: .1;
2863
+ }
2864
+
2865
+ .s-opacity-20 {
2866
+ opacity: .2;
2867
+ }
2868
+
2869
+ .s-opacity-25 {
2870
+ opacity: .25;
2871
+ }
2872
+
2873
+ .s-opacity-30 {
2874
+ opacity: .3;
2875
+ }
2876
+
2877
+ .s-opacity-40 {
2878
+ opacity: .4;
2879
+ }
2880
+
2881
+ .s-opacity-50 {
2882
+ opacity: .5;
2883
+ }
2884
+
2885
+ .s-opacity-60 {
2886
+ opacity: .6;
2887
+ }
2888
+
2889
+ .s-opacity-70 {
2890
+ opacity: .7;
2891
+ }
2892
+
2893
+ .s-opacity-75 {
2894
+ opacity: .75;
2895
+ }
2896
+
2897
+ .s-opacity-80 {
2898
+ opacity: .8;
2899
+ }
2900
+
2901
+ .s-opacity-90 {
2902
+ opacity: .9;
2903
+ }
2904
+
2905
+ .s-opacity-95 {
2906
+ opacity: .95;
2907
+ }
2908
+
2909
+ .s-opacity-100 {
2910
+ opacity: 1;
2911
+ }
2912
+ }