@crowdfarming/oliva-ds 1.93.0 → 1.94.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.
@@ -0,0 +1,3721 @@
1
+ /* =============================================================================
2
+ Oliva Design System — Utility Classes
3
+
4
+ Import alongside a theme (cf.css, lr.css, farmeneur.css) to use
5
+ Tailwind-style utility classes backed by Oliva design tokens.
6
+
7
+ Example:
8
+ @import '@crowdfarming/oliva-ds/themes/cf.css';
9
+ @import '@crowdfarming/oliva-ds/themes/utilities.css';
10
+
11
+ Breakpoints:
12
+ sm : 360px (22.5rem)
13
+ md : 768px (48rem)
14
+ lg : 1280px (80rem)
15
+ xl : 1440px (90rem)
16
+ ============================================================================= */
17
+
18
+ /* =============================================================================
19
+ 1. DISPLAY
20
+ ============================================================================= */
21
+
22
+ .block {
23
+ display: block;
24
+ }
25
+ .inline-block {
26
+ display: inline-block;
27
+ }
28
+ .inline {
29
+ display: inline;
30
+ }
31
+ .flex {
32
+ display: flex;
33
+ }
34
+ .inline-flex {
35
+ display: inline-flex;
36
+ }
37
+ .grid {
38
+ display: grid;
39
+ }
40
+ .inline-grid {
41
+ display: inline-grid;
42
+ }
43
+ .hidden {
44
+ display: none;
45
+ }
46
+ .table {
47
+ display: table;
48
+ }
49
+ .table-row {
50
+ display: table-row;
51
+ }
52
+ .table-cell {
53
+ display: table-cell;
54
+ }
55
+ .flow-root {
56
+ display: flow-root;
57
+ }
58
+ .contents {
59
+ display: contents;
60
+ }
61
+
62
+ /* =============================================================================
63
+ 2. BOX SIZING
64
+ ============================================================================= */
65
+
66
+ .box-border {
67
+ box-sizing: border-box;
68
+ }
69
+ .box-content {
70
+ box-sizing: content-box;
71
+ }
72
+
73
+ /* =============================================================================
74
+ 3. POSITION
75
+ ============================================================================= */
76
+
77
+ .static {
78
+ position: static;
79
+ }
80
+ .relative {
81
+ position: relative;
82
+ }
83
+ .absolute {
84
+ position: absolute;
85
+ }
86
+ .fixed {
87
+ position: fixed;
88
+ }
89
+ .sticky {
90
+ position: sticky;
91
+ }
92
+
93
+ .inset-0 {
94
+ inset: 0;
95
+ }
96
+ .inset-auto {
97
+ inset: auto;
98
+ }
99
+ .inset-x-0 {
100
+ left: 0;
101
+ right: 0;
102
+ }
103
+ .inset-y-0 {
104
+ top: 0;
105
+ bottom: 0;
106
+ }
107
+ .inset-full {
108
+ inset: 100%;
109
+ }
110
+
111
+ .top-0 {
112
+ top: 0;
113
+ }
114
+ .top-auto {
115
+ top: auto;
116
+ }
117
+ .top-full {
118
+ top: 100%;
119
+ }
120
+ .right-0 {
121
+ right: 0;
122
+ }
123
+ .right-auto {
124
+ right: auto;
125
+ }
126
+ .right-full {
127
+ right: 100%;
128
+ }
129
+ .bottom-0 {
130
+ bottom: 0;
131
+ }
132
+ .bottom-auto {
133
+ bottom: auto;
134
+ }
135
+ .bottom-full {
136
+ bottom: 100%;
137
+ }
138
+ .left-0 {
139
+ left: 0;
140
+ }
141
+ .left-auto {
142
+ left: auto;
143
+ }
144
+ .left-full {
145
+ left: 100%;
146
+ }
147
+
148
+ /* =============================================================================
149
+ 4. VISIBILITY
150
+ ============================================================================= */
151
+
152
+ .visible {
153
+ visibility: visible;
154
+ }
155
+ .invisible {
156
+ visibility: hidden;
157
+ }
158
+
159
+ .sr-only {
160
+ position: absolute;
161
+ width: 1px;
162
+ height: 1px;
163
+ padding: 0;
164
+ margin: -1px;
165
+ overflow: hidden;
166
+ clip: rect(0, 0, 0, 0);
167
+ white-space: nowrap;
168
+ border-width: 0;
169
+ }
170
+
171
+ .not-sr-only {
172
+ position: static;
173
+ width: auto;
174
+ height: auto;
175
+ padding: 0;
176
+ margin: 0;
177
+ overflow: visible;
178
+ clip: auto;
179
+ white-space: normal;
180
+ }
181
+
182
+ /* =============================================================================
183
+ 5. OVERFLOW
184
+ ============================================================================= */
185
+
186
+ .overflow-auto {
187
+ overflow: auto;
188
+ }
189
+ .overflow-hidden {
190
+ overflow: hidden;
191
+ }
192
+ .overflow-visible {
193
+ overflow: visible;
194
+ }
195
+ .overflow-scroll {
196
+ overflow: scroll;
197
+ }
198
+ .overflow-clip {
199
+ overflow: clip;
200
+ }
201
+
202
+ .overflow-x-auto {
203
+ overflow-x: auto;
204
+ }
205
+ .overflow-x-hidden {
206
+ overflow-x: hidden;
207
+ }
208
+ .overflow-x-visible {
209
+ overflow-x: visible;
210
+ }
211
+ .overflow-x-scroll {
212
+ overflow-x: scroll;
213
+ }
214
+
215
+ .overflow-y-auto {
216
+ overflow-y: auto;
217
+ }
218
+ .overflow-y-hidden {
219
+ overflow-y: hidden;
220
+ }
221
+ .overflow-y-visible {
222
+ overflow-y: visible;
223
+ }
224
+ .overflow-y-scroll {
225
+ overflow-y: scroll;
226
+ }
227
+
228
+ /* =============================================================================
229
+ 6. Z-INDEX — Oliva stacking scale + numeric shortcuts
230
+ ============================================================================= */
231
+
232
+ .z-auto {
233
+ z-index: auto;
234
+ }
235
+ .z-hide {
236
+ z-index: var(--base-hide);
237
+ }
238
+ .z-base {
239
+ z-index: var(--base-base);
240
+ }
241
+ .z-dropdown {
242
+ z-index: var(--base-dropdown);
243
+ }
244
+ .z-sticky {
245
+ z-index: var(--base-sticky);
246
+ }
247
+ .z-overlay {
248
+ z-index: var(--base-overlay);
249
+ }
250
+ .z-modal {
251
+ z-index: var(--base-modal);
252
+ }
253
+ .z-popover {
254
+ z-index: var(--base-popover);
255
+ }
256
+ .z-toast {
257
+ z-index: var(--base-toast);
258
+ }
259
+ .z-tooltip {
260
+ z-index: var(--base-tooltip);
261
+ }
262
+
263
+ .z-0 {
264
+ z-index: 0;
265
+ }
266
+ .z-10 {
267
+ z-index: 10;
268
+ }
269
+ .z-20 {
270
+ z-index: 20;
271
+ }
272
+ .z-30 {
273
+ z-index: 30;
274
+ }
275
+ .z-40 {
276
+ z-index: 40;
277
+ }
278
+ .z-50 {
279
+ z-index: 50;
280
+ }
281
+
282
+ /* Stacking context isolation */
283
+ .isolate {
284
+ isolation: isolate;
285
+ }
286
+
287
+ /* =============================================================================
288
+ 7. FLEXBOX
289
+ ============================================================================= */
290
+
291
+ .flex-row {
292
+ flex-direction: row;
293
+ }
294
+ .flex-row-reverse {
295
+ flex-direction: row-reverse;
296
+ }
297
+ .flex-col {
298
+ flex-direction: column;
299
+ }
300
+ .flex-col-reverse {
301
+ flex-direction: column-reverse;
302
+ }
303
+
304
+ .flex-wrap {
305
+ flex-wrap: wrap;
306
+ }
307
+ .flex-nowrap {
308
+ flex-wrap: nowrap;
309
+ }
310
+ .flex-wrap-reverse {
311
+ flex-wrap: wrap-reverse;
312
+ }
313
+
314
+ .justify-start {
315
+ justify-content: flex-start;
316
+ }
317
+ .justify-end {
318
+ justify-content: flex-end;
319
+ }
320
+ .justify-center {
321
+ justify-content: center;
322
+ }
323
+ .justify-between {
324
+ justify-content: space-between;
325
+ }
326
+ .justify-around {
327
+ justify-content: space-around;
328
+ }
329
+ .justify-evenly {
330
+ justify-content: space-evenly;
331
+ }
332
+ .justify-stretch {
333
+ justify-content: stretch;
334
+ }
335
+
336
+ .items-start {
337
+ align-items: flex-start;
338
+ }
339
+ .items-end {
340
+ align-items: flex-end;
341
+ }
342
+ .items-center {
343
+ align-items: center;
344
+ }
345
+ .items-stretch {
346
+ align-items: stretch;
347
+ }
348
+ .items-baseline {
349
+ align-items: baseline;
350
+ }
351
+
352
+ .self-auto {
353
+ align-self: auto;
354
+ }
355
+ .self-start {
356
+ align-self: flex-start;
357
+ }
358
+ .self-end {
359
+ align-self: flex-end;
360
+ }
361
+ .self-center {
362
+ align-self: center;
363
+ }
364
+ .self-stretch {
365
+ align-self: stretch;
366
+ }
367
+ .self-baseline {
368
+ align-self: baseline;
369
+ }
370
+
371
+ .flex-1 {
372
+ flex: 1 1 0%;
373
+ }
374
+ .flex-auto {
375
+ flex: 1 1 auto;
376
+ }
377
+ .flex-initial {
378
+ flex: 0 1 auto;
379
+ }
380
+ .flex-none {
381
+ flex: none;
382
+ }
383
+
384
+ .flex-grow {
385
+ flex-grow: 1;
386
+ }
387
+ .flex-grow-0 {
388
+ flex-grow: 0;
389
+ }
390
+ .flex-shrink {
391
+ flex-shrink: 1;
392
+ }
393
+ .flex-shrink-0 {
394
+ flex-shrink: 0;
395
+ }
396
+
397
+ /* =============================================================================
398
+ 8. GRID
399
+ ============================================================================= */
400
+
401
+ .grid-cols-1 {
402
+ grid-template-columns: repeat(1, minmax(0, 1fr));
403
+ }
404
+ .grid-cols-2 {
405
+ grid-template-columns: repeat(2, minmax(0, 1fr));
406
+ }
407
+ .grid-cols-3 {
408
+ grid-template-columns: repeat(3, minmax(0, 1fr));
409
+ }
410
+ .grid-cols-4 {
411
+ grid-template-columns: repeat(4, minmax(0, 1fr));
412
+ }
413
+ .grid-cols-5 {
414
+ grid-template-columns: repeat(5, minmax(0, 1fr));
415
+ }
416
+ .grid-cols-6 {
417
+ grid-template-columns: repeat(6, minmax(0, 1fr));
418
+ }
419
+ .grid-cols-7 {
420
+ grid-template-columns: repeat(7, minmax(0, 1fr));
421
+ }
422
+ .grid-cols-8 {
423
+ grid-template-columns: repeat(8, minmax(0, 1fr));
424
+ }
425
+ .grid-cols-9 {
426
+ grid-template-columns: repeat(9, minmax(0, 1fr));
427
+ }
428
+ .grid-cols-10 {
429
+ grid-template-columns: repeat(10, minmax(0, 1fr));
430
+ }
431
+ .grid-cols-11 {
432
+ grid-template-columns: repeat(11, minmax(0, 1fr));
433
+ }
434
+ .grid-cols-12 {
435
+ grid-template-columns: repeat(12, minmax(0, 1fr));
436
+ }
437
+ .grid-cols-none {
438
+ grid-template-columns: none;
439
+ }
440
+
441
+ .grid-rows-1 {
442
+ grid-template-rows: repeat(1, minmax(0, 1fr));
443
+ }
444
+ .grid-rows-2 {
445
+ grid-template-rows: repeat(2, minmax(0, 1fr));
446
+ }
447
+ .grid-rows-3 {
448
+ grid-template-rows: repeat(3, minmax(0, 1fr));
449
+ }
450
+ .grid-rows-4 {
451
+ grid-template-rows: repeat(4, minmax(0, 1fr));
452
+ }
453
+ .grid-rows-5 {
454
+ grid-template-rows: repeat(5, minmax(0, 1fr));
455
+ }
456
+ .grid-rows-6 {
457
+ grid-template-rows: repeat(6, minmax(0, 1fr));
458
+ }
459
+ .grid-rows-none {
460
+ grid-template-rows: none;
461
+ }
462
+
463
+ .col-auto {
464
+ grid-column: auto;
465
+ }
466
+ .col-span-1 {
467
+ grid-column: span 1 / span 1;
468
+ }
469
+ .col-span-2 {
470
+ grid-column: span 2 / span 2;
471
+ }
472
+ .col-span-3 {
473
+ grid-column: span 3 / span 3;
474
+ }
475
+ .col-span-4 {
476
+ grid-column: span 4 / span 4;
477
+ }
478
+ .col-span-5 {
479
+ grid-column: span 5 / span 5;
480
+ }
481
+ .col-span-6 {
482
+ grid-column: span 6 / span 6;
483
+ }
484
+ .col-span-7 {
485
+ grid-column: span 7 / span 7;
486
+ }
487
+ .col-span-8 {
488
+ grid-column: span 8 / span 8;
489
+ }
490
+ .col-span-9 {
491
+ grid-column: span 9 / span 9;
492
+ }
493
+ .col-span-10 {
494
+ grid-column: span 10 / span 10;
495
+ }
496
+ .col-span-11 {
497
+ grid-column: span 11 / span 11;
498
+ }
499
+ .col-span-12 {
500
+ grid-column: span 12 / span 12;
501
+ }
502
+ .col-span-full {
503
+ grid-column: 1 / -1;
504
+ }
505
+
506
+ .row-auto {
507
+ grid-row: auto;
508
+ }
509
+ .row-span-1 {
510
+ grid-row: span 1 / span 1;
511
+ }
512
+ .row-span-2 {
513
+ grid-row: span 2 / span 2;
514
+ }
515
+ .row-span-3 {
516
+ grid-row: span 3 / span 3;
517
+ }
518
+ .row-span-4 {
519
+ grid-row: span 4 / span 4;
520
+ }
521
+ .row-span-5 {
522
+ grid-row: span 5 / span 5;
523
+ }
524
+ .row-span-6 {
525
+ grid-row: span 6 / span 6;
526
+ }
527
+ .row-span-full {
528
+ grid-row: 1 / -1;
529
+ }
530
+
531
+ .order-1 {
532
+ order: 1;
533
+ }
534
+ .order-2 {
535
+ order: 2;
536
+ }
537
+ .order-3 {
538
+ order: 3;
539
+ }
540
+ .order-4 {
541
+ order: 4;
542
+ }
543
+ .order-5 {
544
+ order: 5;
545
+ }
546
+ .order-6 {
547
+ order: 6;
548
+ }
549
+ .order-7 {
550
+ order: 7;
551
+ }
552
+ .order-8 {
553
+ order: 8;
554
+ }
555
+ .order-9 {
556
+ order: 9;
557
+ }
558
+ .order-10 {
559
+ order: 10;
560
+ }
561
+ .order-11 {
562
+ order: 11;
563
+ }
564
+ .order-12 {
565
+ order: 12;
566
+ }
567
+ .order-first {
568
+ order: -9999;
569
+ }
570
+ .order-last {
571
+ order: 9999;
572
+ }
573
+ .order-none {
574
+ order: 0;
575
+ }
576
+
577
+ /* =============================================================================
578
+ 9. GAP — generic scale + Oliva semantic tokens
579
+ ============================================================================= */
580
+
581
+ .gap-0 {
582
+ gap: 0;
583
+ }
584
+ .gap-1 {
585
+ gap: 0.25rem;
586
+ }
587
+ .gap-2 {
588
+ gap: 0.5rem;
589
+ }
590
+ .gap-3 {
591
+ gap: 0.75rem;
592
+ }
593
+ .gap-4 {
594
+ gap: 1rem;
595
+ }
596
+ .gap-5 {
597
+ gap: 1.25rem;
598
+ }
599
+ .gap-6 {
600
+ gap: 1.5rem;
601
+ }
602
+ .gap-7 {
603
+ gap: 1.75rem;
604
+ }
605
+ .gap-8 {
606
+ gap: 2rem;
607
+ }
608
+ .gap-10 {
609
+ gap: 2.5rem;
610
+ }
611
+ .gap-12 {
612
+ gap: 3rem;
613
+ }
614
+ .gap-16 {
615
+ gap: 4rem;
616
+ }
617
+ .gap-20 {
618
+ gap: 5rem;
619
+ }
620
+ .gap-24 {
621
+ gap: 6rem;
622
+ }
623
+ .gap-32 {
624
+ gap: 8rem;
625
+ }
626
+
627
+ .gap-x-0 {
628
+ column-gap: 0;
629
+ }
630
+ .gap-x-1 {
631
+ column-gap: 0.25rem;
632
+ }
633
+ .gap-x-2 {
634
+ column-gap: 0.5rem;
635
+ }
636
+ .gap-x-3 {
637
+ column-gap: 0.75rem;
638
+ }
639
+ .gap-x-4 {
640
+ column-gap: 1rem;
641
+ }
642
+ .gap-x-5 {
643
+ column-gap: 1.25rem;
644
+ }
645
+ .gap-x-6 {
646
+ column-gap: 1.5rem;
647
+ }
648
+ .gap-x-8 {
649
+ column-gap: 2rem;
650
+ }
651
+ .gap-x-10 {
652
+ column-gap: 2.5rem;
653
+ }
654
+ .gap-x-12 {
655
+ column-gap: 3rem;
656
+ }
657
+
658
+ .gap-y-0 {
659
+ row-gap: 0;
660
+ }
661
+ .gap-y-1 {
662
+ row-gap: 0.25rem;
663
+ }
664
+ .gap-y-2 {
665
+ row-gap: 0.5rem;
666
+ }
667
+ .gap-y-3 {
668
+ row-gap: 0.75rem;
669
+ }
670
+ .gap-y-4 {
671
+ row-gap: 1rem;
672
+ }
673
+ .gap-y-5 {
674
+ row-gap: 1.25rem;
675
+ }
676
+ .gap-y-6 {
677
+ row-gap: 1.5rem;
678
+ }
679
+ .gap-y-8 {
680
+ row-gap: 2rem;
681
+ }
682
+ .gap-y-10 {
683
+ row-gap: 2.5rem;
684
+ }
685
+ .gap-y-12 {
686
+ row-gap: 3rem;
687
+ }
688
+
689
+ /* Oliva semantic gaps */
690
+ .gap-page-none {
691
+ gap: var(--space-page-gap-none);
692
+ }
693
+ .gap-page-xs {
694
+ gap: var(--space-page-gap-xs);
695
+ }
696
+ .gap-page-sm {
697
+ gap: var(--space-page-gap-sm);
698
+ }
699
+ .gap-page-md {
700
+ gap: var(--space-page-gap-md);
701
+ }
702
+ .gap-page-lg {
703
+ gap: var(--space-page-gap-lg);
704
+ }
705
+ .gap-page-xl {
706
+ gap: var(--space-page-gap-xl);
707
+ }
708
+ .gap-page-2xl {
709
+ gap: var(--space-page-gap-2xl);
710
+ }
711
+
712
+ .gap-container-none {
713
+ gap: var(--space-container-gap-none);
714
+ }
715
+ .gap-container-xs {
716
+ gap: var(--space-container-gap-xs);
717
+ }
718
+ .gap-container-sm {
719
+ gap: var(--space-container-gap-sm);
720
+ }
721
+ .gap-container-md {
722
+ gap: var(--space-container-gap-md);
723
+ }
724
+ .gap-container-lg {
725
+ gap: var(--space-container-gap-lg);
726
+ }
727
+
728
+ .gap-component-none {
729
+ gap: var(--space-component-gap-none);
730
+ }
731
+ .gap-component-xs {
732
+ gap: var(--space-component-gap-xs);
733
+ }
734
+ .gap-component-sm {
735
+ gap: var(--space-component-gap-sm);
736
+ }
737
+ .gap-component-md {
738
+ gap: var(--space-component-gap-md);
739
+ }
740
+ .gap-component-lg {
741
+ gap: var(--space-component-gap-lg);
742
+ }
743
+
744
+ /* =============================================================================
745
+ 10. PADDING — generic scale + Oliva semantic tokens
746
+ ============================================================================= */
747
+
748
+ .p-0 {
749
+ padding: 0;
750
+ }
751
+ .p-1 {
752
+ padding: 0.25rem;
753
+ }
754
+ .p-2 {
755
+ padding: 0.5rem;
756
+ }
757
+ .p-3 {
758
+ padding: 0.75rem;
759
+ }
760
+ .p-4 {
761
+ padding: 1rem;
762
+ }
763
+ .p-5 {
764
+ padding: 1.25rem;
765
+ }
766
+ .p-6 {
767
+ padding: 1.5rem;
768
+ }
769
+ .p-7 {
770
+ padding: 1.75rem;
771
+ }
772
+ .p-8 {
773
+ padding: 2rem;
774
+ }
775
+ .p-10 {
776
+ padding: 2.5rem;
777
+ }
778
+ .p-12 {
779
+ padding: 3rem;
780
+ }
781
+ .p-16 {
782
+ padding: 4rem;
783
+ }
784
+ .p-20 {
785
+ padding: 5rem;
786
+ }
787
+ .p-24 {
788
+ padding: 6rem;
789
+ }
790
+
791
+ .px-0 {
792
+ padding-inline: 0;
793
+ }
794
+ .px-1 {
795
+ padding-inline: 0.25rem;
796
+ }
797
+ .px-2 {
798
+ padding-inline: 0.5rem;
799
+ }
800
+ .px-3 {
801
+ padding-inline: 0.75rem;
802
+ }
803
+ .px-4 {
804
+ padding-inline: 1rem;
805
+ }
806
+ .px-5 {
807
+ padding-inline: 1.25rem;
808
+ }
809
+ .px-6 {
810
+ padding-inline: 1.5rem;
811
+ }
812
+ .px-7 {
813
+ padding-inline: 1.75rem;
814
+ }
815
+ .px-8 {
816
+ padding-inline: 2rem;
817
+ }
818
+ .px-10 {
819
+ padding-inline: 2.5rem;
820
+ }
821
+ .px-12 {
822
+ padding-inline: 3rem;
823
+ }
824
+ .px-16 {
825
+ padding-inline: 4rem;
826
+ }
827
+ .px-20 {
828
+ padding-inline: 5rem;
829
+ }
830
+ .px-24 {
831
+ padding-inline: 6rem;
832
+ }
833
+
834
+ .py-0 {
835
+ padding-block: 0;
836
+ }
837
+ .py-1 {
838
+ padding-block: 0.25rem;
839
+ }
840
+ .py-2 {
841
+ padding-block: 0.5rem;
842
+ }
843
+ .py-3 {
844
+ padding-block: 0.75rem;
845
+ }
846
+ .py-4 {
847
+ padding-block: 1rem;
848
+ }
849
+ .py-5 {
850
+ padding-block: 1.25rem;
851
+ }
852
+ .py-6 {
853
+ padding-block: 1.5rem;
854
+ }
855
+ .py-7 {
856
+ padding-block: 1.75rem;
857
+ }
858
+ .py-8 {
859
+ padding-block: 2rem;
860
+ }
861
+ .py-10 {
862
+ padding-block: 2.5rem;
863
+ }
864
+ .py-12 {
865
+ padding-block: 3rem;
866
+ }
867
+ .py-16 {
868
+ padding-block: 4rem;
869
+ }
870
+ .py-20 {
871
+ padding-block: 5rem;
872
+ }
873
+ .py-24 {
874
+ padding-block: 6rem;
875
+ }
876
+
877
+ .pt-0 {
878
+ padding-top: 0;
879
+ }
880
+ .pt-1 {
881
+ padding-top: 0.25rem;
882
+ }
883
+ .pt-2 {
884
+ padding-top: 0.5rem;
885
+ }
886
+ .pt-3 {
887
+ padding-top: 0.75rem;
888
+ }
889
+ .pt-4 {
890
+ padding-top: 1rem;
891
+ }
892
+ .pt-5 {
893
+ padding-top: 1.25rem;
894
+ }
895
+ .pt-6 {
896
+ padding-top: 1.5rem;
897
+ }
898
+ .pt-7 {
899
+ padding-top: 1.75rem;
900
+ }
901
+ .pt-8 {
902
+ padding-top: 2rem;
903
+ }
904
+ .pt-10 {
905
+ padding-top: 2.5rem;
906
+ }
907
+ .pt-12 {
908
+ padding-top: 3rem;
909
+ }
910
+ .pt-16 {
911
+ padding-top: 4rem;
912
+ }
913
+
914
+ .pr-0 {
915
+ padding-right: 0;
916
+ }
917
+ .pr-1 {
918
+ padding-right: 0.25rem;
919
+ }
920
+ .pr-2 {
921
+ padding-right: 0.5rem;
922
+ }
923
+ .pr-3 {
924
+ padding-right: 0.75rem;
925
+ }
926
+ .pr-4 {
927
+ padding-right: 1rem;
928
+ }
929
+ .pr-5 {
930
+ padding-right: 1.25rem;
931
+ }
932
+ .pr-6 {
933
+ padding-right: 1.5rem;
934
+ }
935
+ .pr-8 {
936
+ padding-right: 2rem;
937
+ }
938
+ .pr-10 {
939
+ padding-right: 2.5rem;
940
+ }
941
+ .pr-12 {
942
+ padding-right: 3rem;
943
+ }
944
+ .pr-16 {
945
+ padding-right: 4rem;
946
+ }
947
+
948
+ .pb-0 {
949
+ padding-bottom: 0;
950
+ }
951
+ .pb-1 {
952
+ padding-bottom: 0.25rem;
953
+ }
954
+ .pb-2 {
955
+ padding-bottom: 0.5rem;
956
+ }
957
+ .pb-3 {
958
+ padding-bottom: 0.75rem;
959
+ }
960
+ .pb-4 {
961
+ padding-bottom: 1rem;
962
+ }
963
+ .pb-5 {
964
+ padding-bottom: 1.25rem;
965
+ }
966
+ .pb-6 {
967
+ padding-bottom: 1.5rem;
968
+ }
969
+ .pb-8 {
970
+ padding-bottom: 2rem;
971
+ }
972
+ .pb-10 {
973
+ padding-bottom: 2.5rem;
974
+ }
975
+ .pb-12 {
976
+ padding-bottom: 3rem;
977
+ }
978
+ .pb-16 {
979
+ padding-bottom: 4rem;
980
+ }
981
+
982
+ .pl-0 {
983
+ padding-left: 0;
984
+ }
985
+ .pl-1 {
986
+ padding-left: 0.25rem;
987
+ }
988
+ .pl-2 {
989
+ padding-left: 0.5rem;
990
+ }
991
+ .pl-3 {
992
+ padding-left: 0.75rem;
993
+ }
994
+ .pl-4 {
995
+ padding-left: 1rem;
996
+ }
997
+ .pl-5 {
998
+ padding-left: 1.25rem;
999
+ }
1000
+ .pl-6 {
1001
+ padding-left: 1.5rem;
1002
+ }
1003
+ .pl-8 {
1004
+ padding-left: 2rem;
1005
+ }
1006
+ .pl-10 {
1007
+ padding-left: 2.5rem;
1008
+ }
1009
+ .pl-12 {
1010
+ padding-left: 3rem;
1011
+ }
1012
+ .pl-16 {
1013
+ padding-left: 4rem;
1014
+ }
1015
+
1016
+ /* Oliva semantic padding */
1017
+ .p-page-none {
1018
+ padding: var(--space-page-padding-none);
1019
+ }
1020
+ .p-page-sm {
1021
+ padding: var(--space-page-padding-sm);
1022
+ }
1023
+ .p-page-md {
1024
+ padding: var(--space-page-padding-md);
1025
+ }
1026
+ .p-page-lg {
1027
+ padding: var(--space-page-padding-lg);
1028
+ }
1029
+ .p-page-xl {
1030
+ padding: var(--space-page-padding-xl);
1031
+ }
1032
+
1033
+ .px-page-none {
1034
+ padding-inline: var(--space-page-padding-none);
1035
+ }
1036
+ .px-page-sm {
1037
+ padding-inline: var(--space-page-padding-sm);
1038
+ }
1039
+ .px-page-md {
1040
+ padding-inline: var(--space-page-padding-md);
1041
+ }
1042
+ .px-page-lg {
1043
+ padding-inline: var(--space-page-padding-lg);
1044
+ }
1045
+ .px-page-xl {
1046
+ padding-inline: var(--space-page-padding-xl);
1047
+ }
1048
+
1049
+ .py-page-none {
1050
+ padding-block: var(--space-page-padding-none);
1051
+ }
1052
+ .py-page-sm {
1053
+ padding-block: var(--space-page-padding-sm);
1054
+ }
1055
+ .py-page-md {
1056
+ padding-block: var(--space-page-padding-md);
1057
+ }
1058
+ .py-page-lg {
1059
+ padding-block: var(--space-page-padding-lg);
1060
+ }
1061
+ .py-page-xl {
1062
+ padding-block: var(--space-page-padding-xl);
1063
+ }
1064
+
1065
+ .p-container-none {
1066
+ padding: var(--space-container-padding-none);
1067
+ }
1068
+ .p-container-sm {
1069
+ padding: var(--space-container-padding-sm);
1070
+ }
1071
+ .p-container-md {
1072
+ padding: var(--space-container-padding-md);
1073
+ }
1074
+
1075
+ .px-container-none {
1076
+ padding-inline: var(--space-container-padding-none);
1077
+ }
1078
+ .px-container-sm {
1079
+ padding-inline: var(--space-container-padding-sm);
1080
+ }
1081
+ .px-container-md {
1082
+ padding-inline: var(--space-container-padding-md);
1083
+ }
1084
+
1085
+ .py-container-none {
1086
+ padding-block: var(--space-container-padding-none);
1087
+ }
1088
+ .py-container-sm {
1089
+ padding-block: var(--space-container-padding-sm);
1090
+ }
1091
+ .py-container-md {
1092
+ padding-block: var(--space-container-padding-md);
1093
+ }
1094
+
1095
+ .p-component-none {
1096
+ padding: var(--space-component-padding-none);
1097
+ }
1098
+ .p-component-2xs {
1099
+ padding: var(--space-component-padding-2xs);
1100
+ }
1101
+ .p-component-xs {
1102
+ padding: var(--space-component-padding-xs);
1103
+ }
1104
+ .p-component-sm {
1105
+ padding: var(--space-component-padding-sm);
1106
+ }
1107
+ .p-component-md {
1108
+ padding: var(--space-component-padding-md);
1109
+ }
1110
+ .p-component-lg {
1111
+ padding: var(--space-component-padding-lg);
1112
+ }
1113
+ .p-component-xl {
1114
+ padding: var(--space-component-padding-xl);
1115
+ }
1116
+ .p-component-2xl {
1117
+ padding: var(--space-component-padding-2xl);
1118
+ }
1119
+
1120
+ .px-component-none {
1121
+ padding-inline: var(--space-component-padding-none);
1122
+ }
1123
+ .px-component-2xs {
1124
+ padding-inline: var(--space-component-padding-2xs);
1125
+ }
1126
+ .px-component-xs {
1127
+ padding-inline: var(--space-component-padding-xs);
1128
+ }
1129
+ .px-component-sm {
1130
+ padding-inline: var(--space-component-padding-sm);
1131
+ }
1132
+ .px-component-md {
1133
+ padding-inline: var(--space-component-padding-md);
1134
+ }
1135
+ .px-component-lg {
1136
+ padding-inline: var(--space-component-padding-lg);
1137
+ }
1138
+ .px-component-xl {
1139
+ padding-inline: var(--space-component-padding-xl);
1140
+ }
1141
+ .px-component-2xl {
1142
+ padding-inline: var(--space-component-padding-2xl);
1143
+ }
1144
+
1145
+ .py-component-none {
1146
+ padding-block: var(--space-component-padding-none);
1147
+ }
1148
+ .py-component-2xs {
1149
+ padding-block: var(--space-component-padding-2xs);
1150
+ }
1151
+ .py-component-xs {
1152
+ padding-block: var(--space-component-padding-xs);
1153
+ }
1154
+ .py-component-sm {
1155
+ padding-block: var(--space-component-padding-sm);
1156
+ }
1157
+ .py-component-md {
1158
+ padding-block: var(--space-component-padding-md);
1159
+ }
1160
+ .py-component-lg {
1161
+ padding-block: var(--space-component-padding-lg);
1162
+ }
1163
+ .py-component-xl {
1164
+ padding-block: var(--space-component-padding-xl);
1165
+ }
1166
+ .py-component-2xl {
1167
+ padding-block: var(--space-component-padding-2xl);
1168
+ }
1169
+
1170
+ /* =============================================================================
1171
+ 11. MARGIN — generic scale
1172
+ ============================================================================= */
1173
+
1174
+ .m-0 {
1175
+ margin: 0;
1176
+ }
1177
+ .m-auto {
1178
+ margin: auto;
1179
+ }
1180
+ .m-1 {
1181
+ margin: 0.25rem;
1182
+ }
1183
+ .m-2 {
1184
+ margin: 0.5rem;
1185
+ }
1186
+ .m-3 {
1187
+ margin: 0.75rem;
1188
+ }
1189
+ .m-4 {
1190
+ margin: 1rem;
1191
+ }
1192
+ .m-5 {
1193
+ margin: 1.25rem;
1194
+ }
1195
+ .m-6 {
1196
+ margin: 1.5rem;
1197
+ }
1198
+ .m-7 {
1199
+ margin: 1.75rem;
1200
+ }
1201
+ .m-8 {
1202
+ margin: 2rem;
1203
+ }
1204
+ .m-10 {
1205
+ margin: 2.5rem;
1206
+ }
1207
+ .m-12 {
1208
+ margin: 3rem;
1209
+ }
1210
+ .m-16 {
1211
+ margin: 4rem;
1212
+ }
1213
+ .m-20 {
1214
+ margin: 5rem;
1215
+ }
1216
+ .m-24 {
1217
+ margin: 6rem;
1218
+ }
1219
+
1220
+ .mx-auto {
1221
+ margin-inline: auto;
1222
+ }
1223
+ .mx-0 {
1224
+ margin-inline: 0;
1225
+ }
1226
+ .mx-1 {
1227
+ margin-inline: 0.25rem;
1228
+ }
1229
+ .mx-2 {
1230
+ margin-inline: 0.5rem;
1231
+ }
1232
+ .mx-3 {
1233
+ margin-inline: 0.75rem;
1234
+ }
1235
+ .mx-4 {
1236
+ margin-inline: 1rem;
1237
+ }
1238
+ .mx-5 {
1239
+ margin-inline: 1.25rem;
1240
+ }
1241
+ .mx-6 {
1242
+ margin-inline: 1.5rem;
1243
+ }
1244
+ .mx-8 {
1245
+ margin-inline: 2rem;
1246
+ }
1247
+ .mx-10 {
1248
+ margin-inline: 2.5rem;
1249
+ }
1250
+ .mx-12 {
1251
+ margin-inline: 3rem;
1252
+ }
1253
+ .mx-16 {
1254
+ margin-inline: 4rem;
1255
+ }
1256
+
1257
+ .my-auto {
1258
+ margin-block: auto;
1259
+ }
1260
+ .my-0 {
1261
+ margin-block: 0;
1262
+ }
1263
+ .my-1 {
1264
+ margin-block: 0.25rem;
1265
+ }
1266
+ .my-2 {
1267
+ margin-block: 0.5rem;
1268
+ }
1269
+ .my-3 {
1270
+ margin-block: 0.75rem;
1271
+ }
1272
+ .my-4 {
1273
+ margin-block: 1rem;
1274
+ }
1275
+ .my-5 {
1276
+ margin-block: 1.25rem;
1277
+ }
1278
+ .my-6 {
1279
+ margin-block: 1.5rem;
1280
+ }
1281
+ .my-8 {
1282
+ margin-block: 2rem;
1283
+ }
1284
+ .my-10 {
1285
+ margin-block: 2.5rem;
1286
+ }
1287
+ .my-12 {
1288
+ margin-block: 3rem;
1289
+ }
1290
+ .my-16 {
1291
+ margin-block: 4rem;
1292
+ }
1293
+
1294
+ .mt-auto {
1295
+ margin-top: auto;
1296
+ }
1297
+ .mt-0 {
1298
+ margin-top: 0;
1299
+ }
1300
+ .mt-1 {
1301
+ margin-top: 0.25rem;
1302
+ }
1303
+ .mt-2 {
1304
+ margin-top: 0.5rem;
1305
+ }
1306
+ .mt-3 {
1307
+ margin-top: 0.75rem;
1308
+ }
1309
+ .mt-4 {
1310
+ margin-top: 1rem;
1311
+ }
1312
+ .mt-5 {
1313
+ margin-top: 1.25rem;
1314
+ }
1315
+ .mt-6 {
1316
+ margin-top: 1.5rem;
1317
+ }
1318
+ .mt-8 {
1319
+ margin-top: 2rem;
1320
+ }
1321
+ .mt-10 {
1322
+ margin-top: 2.5rem;
1323
+ }
1324
+ .mt-12 {
1325
+ margin-top: 3rem;
1326
+ }
1327
+ .mt-16 {
1328
+ margin-top: 4rem;
1329
+ }
1330
+
1331
+ .mr-auto {
1332
+ margin-right: auto;
1333
+ }
1334
+ .mr-0 {
1335
+ margin-right: 0;
1336
+ }
1337
+ .mr-1 {
1338
+ margin-right: 0.25rem;
1339
+ }
1340
+ .mr-2 {
1341
+ margin-right: 0.5rem;
1342
+ }
1343
+ .mr-3 {
1344
+ margin-right: 0.75rem;
1345
+ }
1346
+ .mr-4 {
1347
+ margin-right: 1rem;
1348
+ }
1349
+ .mr-5 {
1350
+ margin-right: 1.25rem;
1351
+ }
1352
+ .mr-6 {
1353
+ margin-right: 1.5rem;
1354
+ }
1355
+ .mr-8 {
1356
+ margin-right: 2rem;
1357
+ }
1358
+ .mr-10 {
1359
+ margin-right: 2.5rem;
1360
+ }
1361
+ .mr-12 {
1362
+ margin-right: 3rem;
1363
+ }
1364
+ .mr-16 {
1365
+ margin-right: 4rem;
1366
+ }
1367
+
1368
+ .mb-auto {
1369
+ margin-bottom: auto;
1370
+ }
1371
+ .mb-0 {
1372
+ margin-bottom: 0;
1373
+ }
1374
+ .mb-1 {
1375
+ margin-bottom: 0.25rem;
1376
+ }
1377
+ .mb-2 {
1378
+ margin-bottom: 0.5rem;
1379
+ }
1380
+ .mb-3 {
1381
+ margin-bottom: 0.75rem;
1382
+ }
1383
+ .mb-4 {
1384
+ margin-bottom: 1rem;
1385
+ }
1386
+ .mb-5 {
1387
+ margin-bottom: 1.25rem;
1388
+ }
1389
+ .mb-6 {
1390
+ margin-bottom: 1.5rem;
1391
+ }
1392
+ .mb-8 {
1393
+ margin-bottom: 2rem;
1394
+ }
1395
+ .mb-10 {
1396
+ margin-bottom: 2.5rem;
1397
+ }
1398
+ .mb-12 {
1399
+ margin-bottom: 3rem;
1400
+ }
1401
+ .mb-16 {
1402
+ margin-bottom: 4rem;
1403
+ }
1404
+
1405
+ .ml-auto {
1406
+ margin-left: auto;
1407
+ }
1408
+ .ml-0 {
1409
+ margin-left: 0;
1410
+ }
1411
+ .ml-1 {
1412
+ margin-left: 0.25rem;
1413
+ }
1414
+ .ml-2 {
1415
+ margin-left: 0.5rem;
1416
+ }
1417
+ .ml-3 {
1418
+ margin-left: 0.75rem;
1419
+ }
1420
+ .ml-4 {
1421
+ margin-left: 1rem;
1422
+ }
1423
+ .ml-5 {
1424
+ margin-left: 1.25rem;
1425
+ }
1426
+ .ml-6 {
1427
+ margin-left: 1.5rem;
1428
+ }
1429
+ .ml-8 {
1430
+ margin-left: 2rem;
1431
+ }
1432
+ .ml-10 {
1433
+ margin-left: 2.5rem;
1434
+ }
1435
+ .ml-12 {
1436
+ margin-left: 3rem;
1437
+ }
1438
+ .ml-16 {
1439
+ margin-left: 4rem;
1440
+ }
1441
+
1442
+ /* =============================================================================
1443
+ 12. SIZING — Width, Height, Min/Max
1444
+ ============================================================================= */
1445
+
1446
+ .w-auto {
1447
+ width: auto;
1448
+ }
1449
+ .w-full {
1450
+ width: 100%;
1451
+ }
1452
+ .w-screen {
1453
+ width: 100vw;
1454
+ }
1455
+ .w-svw {
1456
+ width: 100svw;
1457
+ }
1458
+ .w-fit {
1459
+ width: fit-content;
1460
+ }
1461
+ .w-min {
1462
+ width: min-content;
1463
+ }
1464
+ .w-max {
1465
+ width: max-content;
1466
+ }
1467
+ .w-0 {
1468
+ width: 0;
1469
+ }
1470
+ .w-1 {
1471
+ width: 0.25rem;
1472
+ }
1473
+ .w-2 {
1474
+ width: 0.5rem;
1475
+ }
1476
+ .w-3 {
1477
+ width: 0.75rem;
1478
+ }
1479
+ .w-4 {
1480
+ width: 1rem;
1481
+ }
1482
+ .w-5 {
1483
+ width: 1.25rem;
1484
+ }
1485
+ .w-6 {
1486
+ width: 1.5rem;
1487
+ }
1488
+ .w-7 {
1489
+ width: 1.75rem;
1490
+ }
1491
+ .w-8 {
1492
+ width: 2rem;
1493
+ }
1494
+ .w-10 {
1495
+ width: 2.5rem;
1496
+ }
1497
+ .w-12 {
1498
+ width: 3rem;
1499
+ }
1500
+ .w-16 {
1501
+ width: 4rem;
1502
+ }
1503
+ .w-20 {
1504
+ width: 5rem;
1505
+ }
1506
+ .w-24 {
1507
+ width: 6rem;
1508
+ }
1509
+ .w-32 {
1510
+ width: 8rem;
1511
+ }
1512
+ .w-40 {
1513
+ width: 10rem;
1514
+ }
1515
+ .w-48 {
1516
+ width: 12rem;
1517
+ }
1518
+ .w-56 {
1519
+ width: 14rem;
1520
+ }
1521
+ .w-64 {
1522
+ width: 16rem;
1523
+ }
1524
+ .w-1\/2 {
1525
+ width: 50%;
1526
+ }
1527
+ .w-1\/3 {
1528
+ width: 33.333333%;
1529
+ }
1530
+ .w-2\/3 {
1531
+ width: 66.666667%;
1532
+ }
1533
+ .w-1\/4 {
1534
+ width: 25%;
1535
+ }
1536
+ .w-3\/4 {
1537
+ width: 75%;
1538
+ }
1539
+
1540
+ .h-auto {
1541
+ height: auto;
1542
+ }
1543
+ .h-full {
1544
+ height: 100%;
1545
+ }
1546
+ .h-screen {
1547
+ height: 100vh;
1548
+ }
1549
+ .h-svh {
1550
+ height: 100svh;
1551
+ }
1552
+ .h-fit {
1553
+ height: fit-content;
1554
+ }
1555
+ .h-0 {
1556
+ height: 0;
1557
+ }
1558
+ .h-1 {
1559
+ height: 0.25rem;
1560
+ }
1561
+ .h-2 {
1562
+ height: 0.5rem;
1563
+ }
1564
+ .h-3 {
1565
+ height: 0.75rem;
1566
+ }
1567
+ .h-4 {
1568
+ height: 1rem;
1569
+ }
1570
+ .h-5 {
1571
+ height: 1.25rem;
1572
+ }
1573
+ .h-6 {
1574
+ height: 1.5rem;
1575
+ }
1576
+ .h-7 {
1577
+ height: 1.75rem;
1578
+ }
1579
+ .h-8 {
1580
+ height: 2rem;
1581
+ }
1582
+ .h-10 {
1583
+ height: 2.5rem;
1584
+ }
1585
+ .h-12 {
1586
+ height: 3rem;
1587
+ }
1588
+ .h-16 {
1589
+ height: 4rem;
1590
+ }
1591
+ .h-20 {
1592
+ height: 5rem;
1593
+ }
1594
+ .h-24 {
1595
+ height: 6rem;
1596
+ }
1597
+ .h-32 {
1598
+ height: 8rem;
1599
+ }
1600
+ .h-40 {
1601
+ height: 10rem;
1602
+ }
1603
+ .h-48 {
1604
+ height: 12rem;
1605
+ }
1606
+ .h-56 {
1607
+ height: 14rem;
1608
+ }
1609
+ .h-64 {
1610
+ height: 16rem;
1611
+ }
1612
+
1613
+ .min-w-0 {
1614
+ min-width: 0;
1615
+ }
1616
+ .min-w-full {
1617
+ min-width: 100%;
1618
+ }
1619
+ .min-w-min {
1620
+ min-width: min-content;
1621
+ }
1622
+ .min-w-max {
1623
+ min-width: max-content;
1624
+ }
1625
+ .min-w-fit {
1626
+ min-width: fit-content;
1627
+ }
1628
+
1629
+ .max-w-none {
1630
+ max-width: none;
1631
+ }
1632
+ .max-w-full {
1633
+ max-width: 100%;
1634
+ }
1635
+ .max-w-screen {
1636
+ max-width: 100vw;
1637
+ }
1638
+ .max-w-xs {
1639
+ max-width: 20rem;
1640
+ }
1641
+ .max-w-sm {
1642
+ max-width: 24rem;
1643
+ }
1644
+ .max-w-md {
1645
+ max-width: 28rem;
1646
+ }
1647
+ .max-w-lg {
1648
+ max-width: 32rem;
1649
+ }
1650
+ .max-w-xl {
1651
+ max-width: 36rem;
1652
+ }
1653
+ .max-w-2xl {
1654
+ max-width: 42rem;
1655
+ }
1656
+ .max-w-3xl {
1657
+ max-width: 48rem;
1658
+ }
1659
+ .max-w-4xl {
1660
+ max-width: 56rem;
1661
+ }
1662
+ .max-w-5xl {
1663
+ max-width: 64rem;
1664
+ }
1665
+ .max-w-6xl {
1666
+ max-width: 72rem;
1667
+ }
1668
+ .max-w-7xl {
1669
+ max-width: 80rem;
1670
+ }
1671
+
1672
+ .min-h-0 {
1673
+ min-height: 0;
1674
+ }
1675
+ .min-h-full {
1676
+ min-height: 100%;
1677
+ }
1678
+ .min-h-screen {
1679
+ min-height: 100vh;
1680
+ }
1681
+ .min-h-svh {
1682
+ min-height: 100svh;
1683
+ }
1684
+ .min-h-fit {
1685
+ min-height: fit-content;
1686
+ }
1687
+
1688
+ .max-h-none {
1689
+ max-height: none;
1690
+ }
1691
+ .max-h-full {
1692
+ max-height: 100%;
1693
+ }
1694
+ .max-h-screen {
1695
+ max-height: 100vh;
1696
+ }
1697
+ .max-h-svh {
1698
+ max-height: 100svh;
1699
+ }
1700
+
1701
+ /* =============================================================================
1702
+ 13. OBJECT FIT & POSITION
1703
+ ============================================================================= */
1704
+
1705
+ .object-cover {
1706
+ object-fit: cover;
1707
+ }
1708
+ .object-contain {
1709
+ object-fit: contain;
1710
+ }
1711
+ .object-fill {
1712
+ object-fit: fill;
1713
+ }
1714
+ .object-none {
1715
+ object-fit: none;
1716
+ }
1717
+ .object-scale-down {
1718
+ object-fit: scale-down;
1719
+ }
1720
+
1721
+ .object-center {
1722
+ object-position: center;
1723
+ }
1724
+ .object-top {
1725
+ object-position: top;
1726
+ }
1727
+ .object-bottom {
1728
+ object-position: bottom;
1729
+ }
1730
+ .object-left {
1731
+ object-position: left;
1732
+ }
1733
+ .object-right {
1734
+ object-position: right;
1735
+ }
1736
+
1737
+ /* =============================================================================
1738
+ 14. TYPOGRAPHY — Generic utilities + Oliva token classes
1739
+ ============================================================================= */
1740
+
1741
+ .text-left {
1742
+ text-align: left;
1743
+ }
1744
+ .text-center {
1745
+ text-align: center;
1746
+ }
1747
+ .text-right {
1748
+ text-align: right;
1749
+ }
1750
+ .text-justify {
1751
+ text-align: justify;
1752
+ }
1753
+ .text-start {
1754
+ text-align: start;
1755
+ }
1756
+ .text-end {
1757
+ text-align: end;
1758
+ }
1759
+
1760
+ .uppercase {
1761
+ text-transform: uppercase;
1762
+ }
1763
+ .lowercase {
1764
+ text-transform: lowercase;
1765
+ }
1766
+ .capitalize {
1767
+ text-transform: capitalize;
1768
+ }
1769
+ .normal-case {
1770
+ text-transform: none;
1771
+ }
1772
+
1773
+ .underline {
1774
+ text-decoration-line: underline;
1775
+ }
1776
+ .line-through {
1777
+ text-decoration-line: line-through;
1778
+ }
1779
+ .no-underline {
1780
+ text-decoration-line: none;
1781
+ }
1782
+
1783
+ .font-italic {
1784
+ font-style: italic;
1785
+ }
1786
+ .not-italic {
1787
+ font-style: normal;
1788
+ }
1789
+
1790
+ .truncate {
1791
+ overflow: hidden;
1792
+ text-overflow: ellipsis;
1793
+ white-space: nowrap;
1794
+ }
1795
+ .text-ellipsis {
1796
+ text-overflow: ellipsis;
1797
+ }
1798
+ .text-clip {
1799
+ text-overflow: clip;
1800
+ }
1801
+ .text-pretty {
1802
+ text-wrap: pretty;
1803
+ }
1804
+ .text-balance {
1805
+ text-wrap: balance;
1806
+ }
1807
+
1808
+ .whitespace-normal {
1809
+ white-space: normal;
1810
+ }
1811
+ .whitespace-nowrap {
1812
+ white-space: nowrap;
1813
+ }
1814
+ .whitespace-pre {
1815
+ white-space: pre;
1816
+ }
1817
+ .whitespace-pre-line {
1818
+ white-space: pre-line;
1819
+ }
1820
+ .whitespace-pre-wrap {
1821
+ white-space: pre-wrap;
1822
+ }
1823
+ .whitespace-break-spaces {
1824
+ white-space: break-spaces;
1825
+ }
1826
+
1827
+ .break-normal {
1828
+ overflow-wrap: normal;
1829
+ word-break: normal;
1830
+ }
1831
+ .break-words {
1832
+ overflow-wrap: break-word;
1833
+ }
1834
+ .break-all {
1835
+ word-break: break-all;
1836
+ }
1837
+ .break-keep {
1838
+ word-break: keep-all;
1839
+ }
1840
+
1841
+ .line-clamp-1 {
1842
+ overflow: hidden;
1843
+ display: -webkit-box;
1844
+ -webkit-box-orient: vertical;
1845
+ -webkit-line-clamp: 1;
1846
+ }
1847
+ .line-clamp-2 {
1848
+ overflow: hidden;
1849
+ display: -webkit-box;
1850
+ -webkit-box-orient: vertical;
1851
+ -webkit-line-clamp: 2;
1852
+ }
1853
+ .line-clamp-3 {
1854
+ overflow: hidden;
1855
+ display: -webkit-box;
1856
+ -webkit-box-orient: vertical;
1857
+ -webkit-line-clamp: 3;
1858
+ }
1859
+ .line-clamp-4 {
1860
+ overflow: hidden;
1861
+ display: -webkit-box;
1862
+ -webkit-box-orient: vertical;
1863
+ -webkit-line-clamp: 4;
1864
+ }
1865
+ .line-clamp-5 {
1866
+ overflow: hidden;
1867
+ display: -webkit-box;
1868
+ -webkit-box-orient: vertical;
1869
+ -webkit-line-clamp: 5;
1870
+ }
1871
+ .line-clamp-6 {
1872
+ overflow: hidden;
1873
+ display: -webkit-box;
1874
+ -webkit-box-orient: vertical;
1875
+ -webkit-line-clamp: 6;
1876
+ }
1877
+
1878
+ /* Oliva typography token classes */
1879
+ .heading-xl {
1880
+ font-family: var(--typography-heading-xl-family);
1881
+ font-size: var(--typography-heading-xl-size);
1882
+ line-height: var(--typography-heading-xl-line-height);
1883
+ font-weight: var(--typography-heading-xl-weight);
1884
+ letter-spacing: var(--typography-heading-xl-letter-spacing);
1885
+ }
1886
+ .heading-lg {
1887
+ font-family: var(--typography-heading-lg-family);
1888
+ font-size: var(--typography-heading-lg-size);
1889
+ line-height: var(--typography-heading-lg-line-height);
1890
+ font-weight: var(--typography-heading-lg-weight);
1891
+ letter-spacing: var(--typography-heading-lg-letter-spacing);
1892
+ }
1893
+ .heading-md {
1894
+ font-family: var(--typography-heading-md-family);
1895
+ font-size: var(--typography-heading-md-size);
1896
+ line-height: var(--typography-heading-md-line-height);
1897
+ font-weight: var(--typography-heading-md-weight);
1898
+ letter-spacing: var(--typography-heading-md-letter-spacing);
1899
+ }
1900
+ .heading-sm {
1901
+ font-family: var(--typography-heading-sm-family);
1902
+ font-size: var(--typography-heading-sm-size);
1903
+ line-height: var(--typography-heading-sm-line-height);
1904
+ font-weight: var(--typography-heading-sm-weight);
1905
+ letter-spacing: var(--typography-heading-sm-letter-spacing);
1906
+ }
1907
+
1908
+ .title-xl {
1909
+ font-family: var(--typography-title-xl-family);
1910
+ font-size: var(--typography-title-xl-size);
1911
+ line-height: var(--typography-title-xl-line-height);
1912
+ font-weight: var(--typography-title-xl-weight);
1913
+ letter-spacing: var(--typography-title-xl-letter-spacing);
1914
+ }
1915
+ .title-lg {
1916
+ font-family: var(--typography-title-lg-family);
1917
+ font-size: var(--typography-title-lg-size);
1918
+ line-height: var(--typography-title-lg-line-height);
1919
+ font-weight: var(--typography-title-lg-weight);
1920
+ letter-spacing: var(--typography-title-lg-letter-spacing);
1921
+ }
1922
+ .title-md {
1923
+ font-family: var(--typography-title-md-family);
1924
+ font-size: var(--typography-title-md-size);
1925
+ line-height: var(--typography-title-md-line-height);
1926
+ font-weight: var(--typography-title-md-weight);
1927
+ letter-spacing: var(--typography-title-md-letter-spacing);
1928
+ }
1929
+ .title-sm {
1930
+ font-family: var(--typography-title-sm-family);
1931
+ font-size: var(--typography-title-sm-size);
1932
+ line-height: var(--typography-title-sm-line-height);
1933
+ font-weight: var(--typography-title-sm-weight);
1934
+ letter-spacing: var(--typography-title-sm-letter-spacing);
1935
+ }
1936
+
1937
+ .body-lg {
1938
+ font-family: var(--typography-body-lg-family);
1939
+ font-size: var(--typography-body-lg-size);
1940
+ line-height: var(--typography-body-lg-line-height);
1941
+ font-weight: var(--typography-body-lg-weight);
1942
+ letter-spacing: var(--typography-body-lg-letter-spacing);
1943
+ }
1944
+ .body-md {
1945
+ font-family: var(--typography-body-md-family);
1946
+ font-size: var(--typography-body-md-size);
1947
+ line-height: var(--typography-body-md-line-height);
1948
+ font-weight: var(--typography-body-md-weight);
1949
+ letter-spacing: var(--typography-body-md-letter-spacing);
1950
+ }
1951
+ .body-sm {
1952
+ font-family: var(--typography-body-sm-family);
1953
+ font-size: var(--typography-body-sm-size);
1954
+ line-height: var(--typography-body-sm-line-height);
1955
+ font-weight: var(--typography-body-sm-weight);
1956
+ letter-spacing: var(--typography-body-sm-letter-spacing);
1957
+ }
1958
+ .body-xs {
1959
+ font-family: var(--typography-body-xs-family);
1960
+ font-size: var(--typography-body-xs-size);
1961
+ line-height: var(--typography-body-xs-line-height);
1962
+ font-weight: var(--typography-body-xs-weight);
1963
+ letter-spacing: var(--typography-body-xs-letter-spacing);
1964
+ }
1965
+
1966
+ .label-lg {
1967
+ font-family: var(--typography-label-lg-default-family);
1968
+ font-size: var(--typography-label-lg-default-size);
1969
+ line-height: var(--typography-label-lg-default-line-height);
1970
+ font-weight: var(--typography-label-lg-default-weight);
1971
+ letter-spacing: var(--typography-label-lg-default-letter-spacing);
1972
+ }
1973
+ .label-lg-strong {
1974
+ font-family: var(--typography-label-lg-strong-family);
1975
+ font-size: var(--typography-label-lg-strong-size);
1976
+ line-height: var(--typography-label-lg-strong-line-height);
1977
+ font-weight: var(--typography-label-lg-strong-weight);
1978
+ letter-spacing: var(--typography-label-lg-strong-letter-spacing);
1979
+ }
1980
+ .label-md {
1981
+ font-family: var(--typography-label-md-default-family);
1982
+ font-size: var(--typography-label-md-default-size);
1983
+ line-height: var(--typography-label-md-default-line-height);
1984
+ font-weight: var(--typography-label-md-default-weight);
1985
+ letter-spacing: var(--typography-label-md-default-letter-spacing);
1986
+ }
1987
+ .label-md-strong {
1988
+ font-family: var(--typography-label-md-strong-family);
1989
+ font-size: var(--typography-label-md-strong-size);
1990
+ line-height: var(--typography-label-md-strong-line-height);
1991
+ font-weight: var(--typography-label-md-strong-weight);
1992
+ letter-spacing: var(--typography-label-md-strong-letter-spacing);
1993
+ }
1994
+ .label-sm {
1995
+ font-family: var(--typography-label-sm-default-family);
1996
+ font-size: var(--typography-label-sm-default-size);
1997
+ line-height: var(--typography-label-sm-default-line-height);
1998
+ font-weight: var(--typography-label-sm-default-weight);
1999
+ letter-spacing: var(--typography-label-sm-default-letter-spacing);
2000
+ }
2001
+ .label-sm-strong {
2002
+ font-family: var(--typography-label-sm-strong-family);
2003
+ font-size: var(--typography-label-sm-strong-size);
2004
+ line-height: var(--typography-label-sm-strong-line-height);
2005
+ font-weight: var(--typography-label-sm-strong-weight);
2006
+ letter-spacing: var(--typography-label-sm-strong-letter-spacing);
2007
+ }
2008
+ .label-xs {
2009
+ font-family: var(--typography-label-xs-default-family);
2010
+ font-size: var(--typography-label-xs-default-size);
2011
+ line-height: var(--typography-label-xs-default-line-height);
2012
+ font-weight: var(--typography-label-xs-default-weight);
2013
+ letter-spacing: var(--typography-label-xs-default-letter-spacing);
2014
+ }
2015
+ .label-xs-strong {
2016
+ font-family: var(--typography-label-xs-strong-family);
2017
+ font-size: var(--typography-label-xs-strong-size);
2018
+ line-height: var(--typography-label-xs-strong-line-height);
2019
+ font-weight: var(--typography-label-xs-strong-weight);
2020
+ letter-spacing: var(--typography-label-xs-strong-letter-spacing);
2021
+ }
2022
+
2023
+ /* =============================================================================
2024
+ 15. COLORS — Oliva semantic token classes
2025
+ ============================================================================= */
2026
+
2027
+ /* Text */
2028
+ .text-content-default {
2029
+ color: var(--color-core-content-default);
2030
+ }
2031
+ .text-content-soft {
2032
+ color: var(--color-core-content-soft);
2033
+ }
2034
+ .text-content-inverse {
2035
+ color: var(--color-core-content-inverse);
2036
+ }
2037
+
2038
+ .text-action-primary-default {
2039
+ color: var(--color-action-primary-content-default);
2040
+ }
2041
+ .text-action-primary-hover {
2042
+ color: var(--color-action-primary-content-hover);
2043
+ }
2044
+ .text-action-primary-disabled {
2045
+ color: var(--color-action-primary-content-disabled);
2046
+ }
2047
+ .text-action-neutral-default {
2048
+ color: var(--color-action-neutral-content-default);
2049
+ }
2050
+ .text-action-danger-default {
2051
+ color: var(--color-action-danger-content-default);
2052
+ }
2053
+
2054
+ .text-feedback-danger-default {
2055
+ color: var(--color-feedback-danger-default);
2056
+ }
2057
+ .text-feedback-danger-strong {
2058
+ color: var(--color-feedback-danger-strong);
2059
+ }
2060
+ .text-feedback-success-default {
2061
+ color: var(--color-feedback-success-default);
2062
+ }
2063
+ .text-feedback-success-strong {
2064
+ color: var(--color-feedback-success-strong);
2065
+ }
2066
+ .text-feedback-warning-default {
2067
+ color: var(--color-feedback-warning-default);
2068
+ }
2069
+ .text-feedback-warning-strong {
2070
+ color: var(--color-feedback-warning-strong);
2071
+ }
2072
+ .text-feedback-info-default {
2073
+ color: var(--color-feedback-info-default);
2074
+ }
2075
+ .text-feedback-info-strong {
2076
+ color: var(--color-feedback-info-strong);
2077
+ }
2078
+ .text-feedback-neutral-default {
2079
+ color: var(--color-feedback-neutral-default);
2080
+ }
2081
+ .text-feedback-neutral-strong {
2082
+ color: var(--color-feedback-neutral-strong);
2083
+ }
2084
+
2085
+ .text-decorative-primary-default {
2086
+ color: var(--color-decorative-primary-default);
2087
+ }
2088
+ .text-decorative-secondary-default {
2089
+ color: var(--color-decorative-secondary-default);
2090
+ }
2091
+
2092
+ /* Background */
2093
+ .bg-default {
2094
+ background-color: var(--color-core-background-default);
2095
+ }
2096
+ .bg-neutral {
2097
+ background-color: var(--color-core-background-neutral);
2098
+ }
2099
+ .bg-brand-soft {
2100
+ background-color: var(--color-core-background-brand-soft);
2101
+ }
2102
+ .bg-brand-strong {
2103
+ background-color: var(--color-core-background-brand-strong);
2104
+ }
2105
+ .bg-inverse {
2106
+ background-color: var(--color-core-background-inverse);
2107
+ }
2108
+ .bg-surface-raised {
2109
+ background-color: var(--color-core-background-surface-raised);
2110
+ }
2111
+ .bg-surface-floating {
2112
+ background-color: var(--color-core-background-surface-floating);
2113
+ }
2114
+ .bg-transparent {
2115
+ background-color: transparent;
2116
+ }
2117
+
2118
+ .bg-feedback-danger-subtle {
2119
+ background-color: var(--color-feedback-danger-subtle);
2120
+ }
2121
+ .bg-feedback-danger-soft {
2122
+ background-color: var(--color-feedback-danger-soft);
2123
+ }
2124
+ .bg-feedback-danger-default {
2125
+ background-color: var(--color-feedback-danger-default);
2126
+ }
2127
+ .bg-feedback-success-subtle {
2128
+ background-color: var(--color-feedback-success-subtle);
2129
+ }
2130
+ .bg-feedback-success-soft {
2131
+ background-color: var(--color-feedback-success-soft);
2132
+ }
2133
+ .bg-feedback-success-default {
2134
+ background-color: var(--color-feedback-success-default);
2135
+ }
2136
+ .bg-feedback-warning-subtle {
2137
+ background-color: var(--color-feedback-warning-subtle);
2138
+ }
2139
+ .bg-feedback-warning-soft {
2140
+ background-color: var(--color-feedback-warning-soft);
2141
+ }
2142
+ .bg-feedback-warning-default {
2143
+ background-color: var(--color-feedback-warning-default);
2144
+ }
2145
+ .bg-feedback-info-subtle {
2146
+ background-color: var(--color-feedback-info-subtle);
2147
+ }
2148
+ .bg-feedback-info-soft {
2149
+ background-color: var(--color-feedback-info-soft);
2150
+ }
2151
+ .bg-feedback-info-default {
2152
+ background-color: var(--color-feedback-info-default);
2153
+ }
2154
+ .bg-feedback-neutral-subtle {
2155
+ background-color: var(--color-feedback-neutral-subtle);
2156
+ }
2157
+ .bg-feedback-neutral-soft {
2158
+ background-color: var(--color-feedback-neutral-soft);
2159
+ }
2160
+ .bg-feedback-neutral-default {
2161
+ background-color: var(--color-feedback-neutral-default);
2162
+ }
2163
+
2164
+ .bg-decorative-primary-subtle {
2165
+ background-color: var(--color-decorative-primary-subtle);
2166
+ }
2167
+ .bg-decorative-primary-soft {
2168
+ background-color: var(--color-decorative-primary-soft);
2169
+ }
2170
+ .bg-decorative-primary-default {
2171
+ background-color: var(--color-decorative-primary-default);
2172
+ }
2173
+ .bg-decorative-secondary-subtle {
2174
+ background-color: var(--color-decorative-secondary-subtle);
2175
+ }
2176
+ .bg-decorative-secondary-soft {
2177
+ background-color: var(--color-decorative-secondary-soft);
2178
+ }
2179
+ .bg-decorative-secondary-default {
2180
+ background-color: var(--color-decorative-secondary-default);
2181
+ }
2182
+
2183
+ /* Border color */
2184
+ .border-color-default {
2185
+ border-color: var(--color-core-border-default);
2186
+ }
2187
+ .border-color-soft {
2188
+ border-color: var(--color-core-border-soft);
2189
+ }
2190
+ .border-color-inverse {
2191
+ border-color: var(--color-core-border-inverse);
2192
+ }
2193
+
2194
+ /* =============================================================================
2195
+ 16. BORDERS
2196
+ ============================================================================= */
2197
+
2198
+ .border-none {
2199
+ border: none;
2200
+ }
2201
+ .border {
2202
+ border-width: var(--size-border-width-sm);
2203
+ border-style: solid;
2204
+ }
2205
+ .border-sm {
2206
+ border-width: var(--size-border-width-sm);
2207
+ border-style: solid;
2208
+ }
2209
+ .border-md {
2210
+ border-width: var(--size-border-width-md);
2211
+ border-style: solid;
2212
+ }
2213
+
2214
+ .border-t {
2215
+ border-top-width: var(--size-border-width-sm);
2216
+ border-top-style: solid;
2217
+ }
2218
+ .border-r {
2219
+ border-right-width: var(--size-border-width-sm);
2220
+ border-right-style: solid;
2221
+ }
2222
+ .border-b {
2223
+ border-bottom-width: var(--size-border-width-sm);
2224
+ border-bottom-style: solid;
2225
+ }
2226
+ .border-l {
2227
+ border-left-width: var(--size-border-width-sm);
2228
+ border-left-style: solid;
2229
+ }
2230
+
2231
+ .border-t-md {
2232
+ border-top-width: var(--size-border-width-md);
2233
+ border-top-style: solid;
2234
+ }
2235
+ .border-r-md {
2236
+ border-right-width: var(--size-border-width-md);
2237
+ border-right-style: solid;
2238
+ }
2239
+ .border-b-md {
2240
+ border-bottom-width: var(--size-border-width-md);
2241
+ border-bottom-style: solid;
2242
+ }
2243
+ .border-l-md {
2244
+ border-left-width: var(--size-border-width-md);
2245
+ border-left-style: solid;
2246
+ }
2247
+
2248
+ .rounded-none {
2249
+ border-radius: var(--size-border-radius-none);
2250
+ }
2251
+ .rounded-sm {
2252
+ border-radius: var(--size-border-radius-sm);
2253
+ }
2254
+ .rounded-md {
2255
+ border-radius: var(--size-border-radius-md);
2256
+ }
2257
+ .rounded-lg {
2258
+ border-radius: var(--size-border-radius-lg);
2259
+ }
2260
+ .rounded-full {
2261
+ border-radius: var(--size-border-radius-full);
2262
+ }
2263
+
2264
+ .rounded-t-none {
2265
+ border-top-left-radius: var(--size-border-radius-none);
2266
+ border-top-right-radius: var(--size-border-radius-none);
2267
+ }
2268
+ .rounded-t-sm {
2269
+ border-top-left-radius: var(--size-border-radius-sm);
2270
+ border-top-right-radius: var(--size-border-radius-sm);
2271
+ }
2272
+ .rounded-t-md {
2273
+ border-top-left-radius: var(--size-border-radius-md);
2274
+ border-top-right-radius: var(--size-border-radius-md);
2275
+ }
2276
+ .rounded-t-lg {
2277
+ border-top-left-radius: var(--size-border-radius-lg);
2278
+ border-top-right-radius: var(--size-border-radius-lg);
2279
+ }
2280
+ .rounded-b-none {
2281
+ border-bottom-left-radius: var(--size-border-radius-none);
2282
+ border-bottom-right-radius: var(--size-border-radius-none);
2283
+ }
2284
+ .rounded-b-sm {
2285
+ border-bottom-left-radius: var(--size-border-radius-sm);
2286
+ border-bottom-right-radius: var(--size-border-radius-sm);
2287
+ }
2288
+ .rounded-b-md {
2289
+ border-bottom-left-radius: var(--size-border-radius-md);
2290
+ border-bottom-right-radius: var(--size-border-radius-md);
2291
+ }
2292
+ .rounded-b-lg {
2293
+ border-bottom-left-radius: var(--size-border-radius-lg);
2294
+ border-bottom-right-radius: var(--size-border-radius-lg);
2295
+ }
2296
+
2297
+ /* =============================================================================
2298
+ 17. OPACITY
2299
+ ============================================================================= */
2300
+
2301
+ .opacity-0 {
2302
+ opacity: 0;
2303
+ }
2304
+ .opacity-5 {
2305
+ opacity: 0.05;
2306
+ }
2307
+ .opacity-10 {
2308
+ opacity: 0.1;
2309
+ }
2310
+ .opacity-20 {
2311
+ opacity: 0.2;
2312
+ }
2313
+ .opacity-25 {
2314
+ opacity: 0.25;
2315
+ }
2316
+ .opacity-30 {
2317
+ opacity: 0.3;
2318
+ }
2319
+ .opacity-40 {
2320
+ opacity: 0.4;
2321
+ }
2322
+ .opacity-50 {
2323
+ opacity: 0.5;
2324
+ }
2325
+ .opacity-60 {
2326
+ opacity: 0.6;
2327
+ }
2328
+ .opacity-70 {
2329
+ opacity: 0.7;
2330
+ }
2331
+ .opacity-75 {
2332
+ opacity: 0.75;
2333
+ }
2334
+ .opacity-80 {
2335
+ opacity: 0.8;
2336
+ }
2337
+ .opacity-90 {
2338
+ opacity: 0.9;
2339
+ }
2340
+ .opacity-95 {
2341
+ opacity: 0.95;
2342
+ }
2343
+ .opacity-100 {
2344
+ opacity: 1;
2345
+ }
2346
+
2347
+ /* =============================================================================
2348
+ 18. CURSOR
2349
+ ============================================================================= */
2350
+
2351
+ .cursor-auto {
2352
+ cursor: auto;
2353
+ }
2354
+ .cursor-default {
2355
+ cursor: default;
2356
+ }
2357
+ .cursor-pointer {
2358
+ cursor: pointer;
2359
+ }
2360
+ .cursor-wait {
2361
+ cursor: wait;
2362
+ }
2363
+ .cursor-text {
2364
+ cursor: text;
2365
+ }
2366
+ .cursor-move {
2367
+ cursor: move;
2368
+ }
2369
+ .cursor-help {
2370
+ cursor: help;
2371
+ }
2372
+ .cursor-not-allowed {
2373
+ cursor: not-allowed;
2374
+ }
2375
+ .cursor-crosshair {
2376
+ cursor: crosshair;
2377
+ }
2378
+ .cursor-zoom-in {
2379
+ cursor: zoom-in;
2380
+ }
2381
+ .cursor-zoom-out {
2382
+ cursor: zoom-out;
2383
+ }
2384
+ .cursor-grab {
2385
+ cursor: grab;
2386
+ }
2387
+ .cursor-grabbing {
2388
+ cursor: grabbing;
2389
+ }
2390
+
2391
+ /* =============================================================================
2392
+ 19. POINTER EVENTS & USER SELECT
2393
+ ============================================================================= */
2394
+
2395
+ .pointer-events-none {
2396
+ pointer-events: none;
2397
+ }
2398
+ .pointer-events-auto {
2399
+ pointer-events: auto;
2400
+ }
2401
+
2402
+ .select-none {
2403
+ user-select: none;
2404
+ }
2405
+ .select-text {
2406
+ user-select: text;
2407
+ }
2408
+ .select-all {
2409
+ user-select: all;
2410
+ }
2411
+ .select-auto {
2412
+ user-select: auto;
2413
+ }
2414
+
2415
+ /* =============================================================================
2416
+ 20. EFFECTS — Oliva elevation & focus tokens
2417
+ ============================================================================= */
2418
+
2419
+ .elevation-raised {
2420
+ box-shadow: var(--elevation-raised);
2421
+ }
2422
+ .elevation-floating {
2423
+ box-shadow: var(--elevation-floating);
2424
+ }
2425
+ .shadow-none {
2426
+ box-shadow: none;
2427
+ }
2428
+
2429
+ .focus-outset:focus-visible {
2430
+ outline: none;
2431
+ box-shadow: var(--focus-outset);
2432
+ }
2433
+ .focus-inset:focus-visible {
2434
+ outline: none;
2435
+ box-shadow: var(--focus-inset);
2436
+ }
2437
+ .focus-textfield:focus-visible {
2438
+ outline: none;
2439
+ box-shadow: var(--focus-textfield);
2440
+ }
2441
+
2442
+ /* =============================================================================
2443
+ 21. TRANSITIONS & MOTION — Oliva token classes
2444
+ ============================================================================= */
2445
+
2446
+ .transition-none {
2447
+ transition-property: none;
2448
+ }
2449
+ .transition {
2450
+ transition-property: color, background-color, border-color,
2451
+ text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter;
2452
+ transition-timing-function: var(--base-easing-in-out);
2453
+ transition-duration: var(--base-duration-medium);
2454
+ }
2455
+ .transition-all {
2456
+ transition-property: all;
2457
+ transition-timing-function: var(--base-easing-in-out);
2458
+ transition-duration: var(--base-duration-medium);
2459
+ }
2460
+ .transition-colors {
2461
+ transition-property: color, background-color, border-color,
2462
+ text-decoration-color;
2463
+ transition-timing-function: var(--base-easing-in-out);
2464
+ transition-duration: var(--base-duration-medium);
2465
+ }
2466
+ .transition-opacity {
2467
+ transition-property: opacity;
2468
+ transition-timing-function: var(--base-easing-in-out);
2469
+ transition-duration: var(--base-duration-medium);
2470
+ }
2471
+ .transition-transform {
2472
+ transition-property: transform;
2473
+ transition-timing-function: var(--base-easing-in-out);
2474
+ transition-duration: var(--base-duration-medium);
2475
+ }
2476
+
2477
+ .duration-fast {
2478
+ transition-duration: var(--base-duration-fast);
2479
+ }
2480
+ .duration-medium {
2481
+ transition-duration: var(--base-duration-medium);
2482
+ }
2483
+ .duration-slow {
2484
+ transition-duration: var(--base-duration-slow);
2485
+ }
2486
+
2487
+ .easing-linear {
2488
+ transition-timing-function: var(--base-easing-linear);
2489
+ }
2490
+ .easing-in {
2491
+ transition-timing-function: var(--base-easing-in);
2492
+ }
2493
+ .easing-in-out {
2494
+ transition-timing-function: var(--base-easing-in-out);
2495
+ }
2496
+
2497
+ /* =============================================================================
2498
+ 22. ASPECT RATIO — Oliva token classes
2499
+ ============================================================================= */
2500
+
2501
+ .aspect-square {
2502
+ aspect-ratio: var(--square);
2503
+ }
2504
+ .aspect-landscape-sm {
2505
+ aspect-ratio: var(--landscape-sm);
2506
+ }
2507
+ .aspect-landscape-md {
2508
+ aspect-ratio: var(--landscape-md);
2509
+ }
2510
+ .aspect-landscape-lg {
2511
+ aspect-ratio: var(--landscape-lg);
2512
+ }
2513
+ .aspect-portrait-sm {
2514
+ aspect-ratio: var(--portrait-sm);
2515
+ }
2516
+ .aspect-portrait-md {
2517
+ aspect-ratio: var(--portrait-md);
2518
+ }
2519
+ .aspect-portrait-lg {
2520
+ aspect-ratio: var(--portrait-lg);
2521
+ }
2522
+ .aspect-thumbnail {
2523
+ aspect-ratio: var(--thumbnail);
2524
+ }
2525
+ .aspect-avatar {
2526
+ aspect-ratio: var(--avatar);
2527
+ }
2528
+ .aspect-card {
2529
+ aspect-ratio: var(--card);
2530
+ }
2531
+ .aspect-auto {
2532
+ aspect-ratio: auto;
2533
+ }
2534
+ .aspect-video {
2535
+ aspect-ratio: 16 / 9;
2536
+ }
2537
+
2538
+ /* =============================================================================
2539
+ 23. RESPONSIVE VARIANTS
2540
+ Breakpoints: sm 360px | md 768px | lg 1280px | xl 1440px
2541
+ Usage: class="hidden md:flex lg:grid-cols-3"
2542
+ ============================================================================= */
2543
+
2544
+ /* sm: 360px ---------------------------------------------------------------- */
2545
+ @media (min-width: 22.5rem) {
2546
+ .sm\:block {
2547
+ display: block;
2548
+ }
2549
+ .sm\:inline-block {
2550
+ display: inline-block;
2551
+ }
2552
+ .sm\:flex {
2553
+ display: flex;
2554
+ }
2555
+ .sm\:inline-flex {
2556
+ display: inline-flex;
2557
+ }
2558
+ .sm\:grid {
2559
+ display: grid;
2560
+ }
2561
+ .sm\:hidden {
2562
+ display: none;
2563
+ }
2564
+
2565
+ .sm\:flex-row {
2566
+ flex-direction: row;
2567
+ }
2568
+ .sm\:flex-col {
2569
+ flex-direction: column;
2570
+ }
2571
+ .sm\:flex-wrap {
2572
+ flex-wrap: wrap;
2573
+ }
2574
+ .sm\:flex-nowrap {
2575
+ flex-wrap: nowrap;
2576
+ }
2577
+ .sm\:flex-1 {
2578
+ flex: 1 1 0%;
2579
+ }
2580
+ .sm\:flex-none {
2581
+ flex: none;
2582
+ }
2583
+ .sm\:flex-shrink-0 {
2584
+ flex-shrink: 0;
2585
+ }
2586
+
2587
+ .sm\:justify-start {
2588
+ justify-content: flex-start;
2589
+ }
2590
+ .sm\:justify-end {
2591
+ justify-content: flex-end;
2592
+ }
2593
+ .sm\:justify-center {
2594
+ justify-content: center;
2595
+ }
2596
+ .sm\:justify-between {
2597
+ justify-content: space-between;
2598
+ }
2599
+ .sm\:items-start {
2600
+ align-items: flex-start;
2601
+ }
2602
+ .sm\:items-end {
2603
+ align-items: flex-end;
2604
+ }
2605
+ .sm\:items-center {
2606
+ align-items: center;
2607
+ }
2608
+ .sm\:items-stretch {
2609
+ align-items: stretch;
2610
+ }
2611
+ .sm\:self-center {
2612
+ align-self: center;
2613
+ }
2614
+
2615
+ .sm\:grid-cols-1 {
2616
+ grid-template-columns: repeat(1, minmax(0, 1fr));
2617
+ }
2618
+ .sm\:grid-cols-2 {
2619
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2620
+ }
2621
+ .sm\:grid-cols-3 {
2622
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2623
+ }
2624
+ .sm\:grid-cols-4 {
2625
+ grid-template-columns: repeat(4, minmax(0, 1fr));
2626
+ }
2627
+ .sm\:col-span-1 {
2628
+ grid-column: span 1 / span 1;
2629
+ }
2630
+ .sm\:col-span-2 {
2631
+ grid-column: span 2 / span 2;
2632
+ }
2633
+ .sm\:col-span-full {
2634
+ grid-column: 1 / -1;
2635
+ }
2636
+
2637
+ .sm\:gap-0 {
2638
+ gap: 0;
2639
+ }
2640
+ .sm\:gap-2 {
2641
+ gap: 0.5rem;
2642
+ }
2643
+ .sm\:gap-3 {
2644
+ gap: 0.75rem;
2645
+ }
2646
+ .sm\:gap-4 {
2647
+ gap: 1rem;
2648
+ }
2649
+ .sm\:gap-6 {
2650
+ gap: 1.5rem;
2651
+ }
2652
+ .sm\:gap-8 {
2653
+ gap: 2rem;
2654
+ }
2655
+ .sm\:gap-page-sm {
2656
+ gap: var(--space-page-gap-sm);
2657
+ }
2658
+ .sm\:gap-page-md {
2659
+ gap: var(--space-page-gap-md);
2660
+ }
2661
+ .sm\:gap-container-sm {
2662
+ gap: var(--space-container-gap-sm);
2663
+ }
2664
+ .sm\:gap-container-md {
2665
+ gap: var(--space-container-gap-md);
2666
+ }
2667
+
2668
+ .sm\:p-0 {
2669
+ padding: 0;
2670
+ }
2671
+ .sm\:p-2 {
2672
+ padding: 0.5rem;
2673
+ }
2674
+ .sm\:p-4 {
2675
+ padding: 1rem;
2676
+ }
2677
+ .sm\:p-6 {
2678
+ padding: 1.5rem;
2679
+ }
2680
+ .sm\:px-4 {
2681
+ padding-inline: 1rem;
2682
+ }
2683
+ .sm\:px-6 {
2684
+ padding-inline: 1.5rem;
2685
+ }
2686
+ .sm\:py-4 {
2687
+ padding-block: 1rem;
2688
+ }
2689
+ .sm\:py-6 {
2690
+ padding-block: 1.5rem;
2691
+ }
2692
+ .sm\:p-page-sm {
2693
+ padding: var(--space-page-padding-sm);
2694
+ }
2695
+ .sm\:px-page-sm {
2696
+ padding-inline: var(--space-page-padding-sm);
2697
+ }
2698
+ .sm\:py-page-sm {
2699
+ padding-block: var(--space-page-padding-sm);
2700
+ }
2701
+
2702
+ .sm\:w-full {
2703
+ width: 100%;
2704
+ }
2705
+ .sm\:w-auto {
2706
+ width: auto;
2707
+ }
2708
+ .sm\:w-1\/2 {
2709
+ width: 50%;
2710
+ }
2711
+ .sm\:h-full {
2712
+ height: 100%;
2713
+ }
2714
+
2715
+ .sm\:text-left {
2716
+ text-align: left;
2717
+ }
2718
+ .sm\:text-center {
2719
+ text-align: center;
2720
+ }
2721
+ .sm\:text-right {
2722
+ text-align: right;
2723
+ }
2724
+ .sm\:hidden {
2725
+ display: none;
2726
+ }
2727
+ .sm\:truncate {
2728
+ overflow: hidden;
2729
+ text-overflow: ellipsis;
2730
+ white-space: nowrap;
2731
+ }
2732
+ }
2733
+
2734
+ /* md: 768px ---------------------------------------------------------------- */
2735
+ @media (min-width: 48rem) {
2736
+ .md\:block {
2737
+ display: block;
2738
+ }
2739
+ .md\:inline-block {
2740
+ display: inline-block;
2741
+ }
2742
+ .md\:inline-flex {
2743
+ display: inline-flex;
2744
+ }
2745
+ .md\:flex {
2746
+ display: flex;
2747
+ }
2748
+ .md\:grid {
2749
+ display: grid;
2750
+ }
2751
+ .md\:hidden {
2752
+ display: none;
2753
+ }
2754
+ .md\:contents {
2755
+ display: contents;
2756
+ }
2757
+
2758
+ .md\:flex-row {
2759
+ flex-direction: row;
2760
+ }
2761
+ .md\:flex-col {
2762
+ flex-direction: column;
2763
+ }
2764
+ .md\:flex-row-reverse {
2765
+ flex-direction: row-reverse;
2766
+ }
2767
+ .md\:flex-wrap {
2768
+ flex-wrap: wrap;
2769
+ }
2770
+ .md\:flex-nowrap {
2771
+ flex-wrap: nowrap;
2772
+ }
2773
+ .md\:flex-1 {
2774
+ flex: 1 1 0%;
2775
+ }
2776
+ .md\:flex-none {
2777
+ flex: none;
2778
+ }
2779
+ .md\:flex-shrink-0 {
2780
+ flex-shrink: 0;
2781
+ }
2782
+
2783
+ .md\:justify-start {
2784
+ justify-content: flex-start;
2785
+ }
2786
+ .md\:justify-end {
2787
+ justify-content: flex-end;
2788
+ }
2789
+ .md\:justify-center {
2790
+ justify-content: center;
2791
+ }
2792
+ .md\:justify-between {
2793
+ justify-content: space-between;
2794
+ }
2795
+ .md\:justify-evenly {
2796
+ justify-content: space-evenly;
2797
+ }
2798
+ .md\:items-start {
2799
+ align-items: flex-start;
2800
+ }
2801
+ .md\:items-end {
2802
+ align-items: flex-end;
2803
+ }
2804
+ .md\:items-center {
2805
+ align-items: center;
2806
+ }
2807
+ .md\:items-stretch {
2808
+ align-items: stretch;
2809
+ }
2810
+ .md\:items-baseline {
2811
+ align-items: baseline;
2812
+ }
2813
+ .md\:self-start {
2814
+ align-self: flex-start;
2815
+ }
2816
+ .md\:self-end {
2817
+ align-self: flex-end;
2818
+ }
2819
+ .md\:self-center {
2820
+ align-self: center;
2821
+ }
2822
+ .md\:self-stretch {
2823
+ align-self: stretch;
2824
+ }
2825
+
2826
+ .md\:grid-cols-1 {
2827
+ grid-template-columns: repeat(1, minmax(0, 1fr));
2828
+ }
2829
+ .md\:grid-cols-2 {
2830
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2831
+ }
2832
+ .md\:grid-cols-3 {
2833
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2834
+ }
2835
+ .md\:grid-cols-4 {
2836
+ grid-template-columns: repeat(4, minmax(0, 1fr));
2837
+ }
2838
+ .md\:grid-cols-5 {
2839
+ grid-template-columns: repeat(5, minmax(0, 1fr));
2840
+ }
2841
+ .md\:grid-cols-6 {
2842
+ grid-template-columns: repeat(6, minmax(0, 1fr));
2843
+ }
2844
+ .md\:grid-cols-12 {
2845
+ grid-template-columns: repeat(12, minmax(0, 1fr));
2846
+ }
2847
+ .md\:grid-rows-2 {
2848
+ grid-template-rows: repeat(2, minmax(0, 1fr));
2849
+ }
2850
+ .md\:grid-rows-3 {
2851
+ grid-template-rows: repeat(3, minmax(0, 1fr));
2852
+ }
2853
+ .md\:col-span-1 {
2854
+ grid-column: span 1 / span 1;
2855
+ }
2856
+ .md\:col-span-2 {
2857
+ grid-column: span 2 / span 2;
2858
+ }
2859
+ .md\:col-span-3 {
2860
+ grid-column: span 3 / span 3;
2861
+ }
2862
+ .md\:col-span-4 {
2863
+ grid-column: span 4 / span 4;
2864
+ }
2865
+ .md\:col-span-6 {
2866
+ grid-column: span 6 / span 6;
2867
+ }
2868
+ .md\:col-span-full {
2869
+ grid-column: 1 / -1;
2870
+ }
2871
+ .md\:row-span-2 {
2872
+ grid-row: span 2 / span 2;
2873
+ }
2874
+
2875
+ .md\:gap-0 {
2876
+ gap: 0;
2877
+ }
2878
+ .md\:gap-2 {
2879
+ gap: 0.5rem;
2880
+ }
2881
+ .md\:gap-3 {
2882
+ gap: 0.75rem;
2883
+ }
2884
+ .md\:gap-4 {
2885
+ gap: 1rem;
2886
+ }
2887
+ .md\:gap-5 {
2888
+ gap: 1.25rem;
2889
+ }
2890
+ .md\:gap-6 {
2891
+ gap: 1.5rem;
2892
+ }
2893
+ .md\:gap-8 {
2894
+ gap: 2rem;
2895
+ }
2896
+ .md\:gap-10 {
2897
+ gap: 2.5rem;
2898
+ }
2899
+ .md\:gap-12 {
2900
+ gap: 3rem;
2901
+ }
2902
+ .md\:gap-page-sm {
2903
+ gap: var(--space-page-gap-sm);
2904
+ }
2905
+ .md\:gap-page-md {
2906
+ gap: var(--space-page-gap-md);
2907
+ }
2908
+ .md\:gap-page-lg {
2909
+ gap: var(--space-page-gap-lg);
2910
+ }
2911
+ .md\:gap-page-xl {
2912
+ gap: var(--space-page-gap-xl);
2913
+ }
2914
+ .md\:gap-container-sm {
2915
+ gap: var(--space-container-gap-sm);
2916
+ }
2917
+ .md\:gap-container-md {
2918
+ gap: var(--space-container-gap-md);
2919
+ }
2920
+ .md\:gap-container-lg {
2921
+ gap: var(--space-container-gap-lg);
2922
+ }
2923
+
2924
+ .md\:p-0 {
2925
+ padding: 0;
2926
+ }
2927
+ .md\:p-4 {
2928
+ padding: 1rem;
2929
+ }
2930
+ .md\:p-6 {
2931
+ padding: 1.5rem;
2932
+ }
2933
+ .md\:p-8 {
2934
+ padding: 2rem;
2935
+ }
2936
+ .md\:px-0 {
2937
+ padding-inline: 0;
2938
+ }
2939
+ .md\:px-4 {
2940
+ padding-inline: 1rem;
2941
+ }
2942
+ .md\:px-6 {
2943
+ padding-inline: 1.5rem;
2944
+ }
2945
+ .md\:px-8 {
2946
+ padding-inline: 2rem;
2947
+ }
2948
+ .md\:py-0 {
2949
+ padding-block: 0;
2950
+ }
2951
+ .md\:py-4 {
2952
+ padding-block: 1rem;
2953
+ }
2954
+ .md\:py-6 {
2955
+ padding-block: 1.5rem;
2956
+ }
2957
+ .md\:py-8 {
2958
+ padding-block: 2rem;
2959
+ }
2960
+ .md\:pt-0 {
2961
+ padding-top: 0;
2962
+ }
2963
+ .md\:pt-4 {
2964
+ padding-top: 1rem;
2965
+ }
2966
+ .md\:pt-6 {
2967
+ padding-top: 1.5rem;
2968
+ }
2969
+ .md\:pt-8 {
2970
+ padding-top: 2rem;
2971
+ }
2972
+ .md\:pb-4 {
2973
+ padding-bottom: 1rem;
2974
+ }
2975
+ .md\:pb-6 {
2976
+ padding-bottom: 1.5rem;
2977
+ }
2978
+ .md\:p-page-sm {
2979
+ padding: var(--space-page-padding-sm);
2980
+ }
2981
+ .md\:p-page-md {
2982
+ padding: var(--space-page-padding-md);
2983
+ }
2984
+ .md\:p-page-lg {
2985
+ padding: var(--space-page-padding-lg);
2986
+ }
2987
+ .md\:px-page-sm {
2988
+ padding-inline: var(--space-page-padding-sm);
2989
+ }
2990
+ .md\:px-page-md {
2991
+ padding-inline: var(--space-page-padding-md);
2992
+ }
2993
+ .md\:px-page-lg {
2994
+ padding-inline: var(--space-page-padding-lg);
2995
+ }
2996
+ .md\:py-page-sm {
2997
+ padding-block: var(--space-page-padding-sm);
2998
+ }
2999
+ .md\:py-page-md {
3000
+ padding-block: var(--space-page-padding-md);
3001
+ }
3002
+ .md\:py-page-lg {
3003
+ padding-block: var(--space-page-padding-lg);
3004
+ }
3005
+
3006
+ .md\:m-0 {
3007
+ margin: 0;
3008
+ }
3009
+ .md\:m-auto {
3010
+ margin: auto;
3011
+ }
3012
+ .md\:mx-auto {
3013
+ margin-inline: auto;
3014
+ }
3015
+ .md\:mt-0 {
3016
+ margin-top: 0;
3017
+ }
3018
+ .md\:mt-4 {
3019
+ margin-top: 1rem;
3020
+ }
3021
+ .md\:mb-0 {
3022
+ margin-bottom: 0;
3023
+ }
3024
+
3025
+ .md\:w-full {
3026
+ width: 100%;
3027
+ }
3028
+ .md\:w-auto {
3029
+ width: auto;
3030
+ }
3031
+ .md\:w-fit {
3032
+ width: fit-content;
3033
+ }
3034
+ .md\:w-1\/2 {
3035
+ width: 50%;
3036
+ }
3037
+ .md\:w-1\/3 {
3038
+ width: 33.333333%;
3039
+ }
3040
+ .md\:w-2\/3 {
3041
+ width: 66.666667%;
3042
+ }
3043
+ .md\:w-1\/4 {
3044
+ width: 25%;
3045
+ }
3046
+ .md\:w-3\/4 {
3047
+ width: 75%;
3048
+ }
3049
+ .md\:h-full {
3050
+ height: 100%;
3051
+ }
3052
+ .md\:h-auto {
3053
+ height: auto;
3054
+ }
3055
+ .md\:min-w-0 {
3056
+ min-width: 0;
3057
+ }
3058
+ .md\:max-w-full {
3059
+ max-width: 100%;
3060
+ }
3061
+
3062
+ .md\:text-left {
3063
+ text-align: left;
3064
+ }
3065
+ .md\:text-center {
3066
+ text-align: center;
3067
+ }
3068
+ .md\:text-right {
3069
+ text-align: right;
3070
+ }
3071
+ .md\:truncate {
3072
+ overflow: hidden;
3073
+ text-overflow: ellipsis;
3074
+ white-space: nowrap;
3075
+ }
3076
+
3077
+ .md\:heading-xl {
3078
+ font-family: var(--typography-heading-xl-family);
3079
+ font-size: var(--typography-heading-xl-size);
3080
+ line-height: var(--typography-heading-xl-line-height);
3081
+ font-weight: var(--typography-heading-xl-weight);
3082
+ letter-spacing: var(--typography-heading-xl-letter-spacing);
3083
+ }
3084
+ .md\:heading-lg {
3085
+ font-family: var(--typography-heading-lg-family);
3086
+ font-size: var(--typography-heading-lg-size);
3087
+ line-height: var(--typography-heading-lg-line-height);
3088
+ font-weight: var(--typography-heading-lg-weight);
3089
+ letter-spacing: var(--typography-heading-lg-letter-spacing);
3090
+ }
3091
+ .md\:heading-md {
3092
+ font-family: var(--typography-heading-md-family);
3093
+ font-size: var(--typography-heading-md-size);
3094
+ line-height: var(--typography-heading-md-line-height);
3095
+ font-weight: var(--typography-heading-md-weight);
3096
+ letter-spacing: var(--typography-heading-md-letter-spacing);
3097
+ }
3098
+ .md\:title-xl {
3099
+ font-family: var(--typography-title-xl-family);
3100
+ font-size: var(--typography-title-xl-size);
3101
+ line-height: var(--typography-title-xl-line-height);
3102
+ font-weight: var(--typography-title-xl-weight);
3103
+ letter-spacing: var(--typography-title-xl-letter-spacing);
3104
+ }
3105
+ .md\:title-lg {
3106
+ font-family: var(--typography-title-lg-family);
3107
+ font-size: var(--typography-title-lg-size);
3108
+ line-height: var(--typography-title-lg-line-height);
3109
+ font-weight: var(--typography-title-lg-weight);
3110
+ letter-spacing: var(--typography-title-lg-letter-spacing);
3111
+ }
3112
+ .md\:title-md {
3113
+ font-family: var(--typography-title-md-family);
3114
+ font-size: var(--typography-title-md-size);
3115
+ line-height: var(--typography-title-md-line-height);
3116
+ font-weight: var(--typography-title-md-weight);
3117
+ letter-spacing: var(--typography-title-md-letter-spacing);
3118
+ }
3119
+ .md\:body-lg {
3120
+ font-family: var(--typography-body-lg-family);
3121
+ font-size: var(--typography-body-lg-size);
3122
+ line-height: var(--typography-body-lg-line-height);
3123
+ font-weight: var(--typography-body-lg-weight);
3124
+ letter-spacing: var(--typography-body-lg-letter-spacing);
3125
+ }
3126
+ .md\:body-md {
3127
+ font-family: var(--typography-body-md-family);
3128
+ font-size: var(--typography-body-md-size);
3129
+ line-height: var(--typography-body-md-line-height);
3130
+ font-weight: var(--typography-body-md-weight);
3131
+ letter-spacing: var(--typography-body-md-letter-spacing);
3132
+ }
3133
+ .md\:body-sm {
3134
+ font-family: var(--typography-body-sm-family);
3135
+ font-size: var(--typography-body-sm-size);
3136
+ line-height: var(--typography-body-sm-line-height);
3137
+ font-weight: var(--typography-body-sm-weight);
3138
+ letter-spacing: var(--typography-body-sm-letter-spacing);
3139
+ }
3140
+
3141
+ .md\:rounded-none {
3142
+ border-radius: var(--size-border-radius-none);
3143
+ }
3144
+ .md\:rounded-sm {
3145
+ border-radius: var(--size-border-radius-sm);
3146
+ }
3147
+ .md\:rounded-md {
3148
+ border-radius: var(--size-border-radius-md);
3149
+ }
3150
+ .md\:rounded-lg {
3151
+ border-radius: var(--size-border-radius-lg);
3152
+ }
3153
+ .md\:border-none {
3154
+ border: none;
3155
+ }
3156
+
3157
+ .md\:relative {
3158
+ position: relative;
3159
+ }
3160
+ .md\:absolute {
3161
+ position: absolute;
3162
+ }
3163
+ .md\:sticky {
3164
+ position: sticky;
3165
+ }
3166
+ .md\:top-0 {
3167
+ top: 0;
3168
+ }
3169
+ .md\:inset-0 {
3170
+ inset: 0;
3171
+ }
3172
+
3173
+ .md\:overflow-hidden {
3174
+ overflow: hidden;
3175
+ }
3176
+ .md\:overflow-auto {
3177
+ overflow: auto;
3178
+ }
3179
+ }
3180
+
3181
+ /* lg: 1280px --------------------------------------------------------------- */
3182
+ @media (min-width: 80rem) {
3183
+ .lg\:block {
3184
+ display: block;
3185
+ }
3186
+ .lg\:inline-block {
3187
+ display: inline-block;
3188
+ }
3189
+ .lg\:flex {
3190
+ display: flex;
3191
+ }
3192
+ .lg\:inline-flex {
3193
+ display: inline-flex;
3194
+ }
3195
+ .lg\:grid {
3196
+ display: grid;
3197
+ }
3198
+ .lg\:hidden {
3199
+ display: none;
3200
+ }
3201
+ .lg\:contents {
3202
+ display: contents;
3203
+ }
3204
+
3205
+ .lg\:flex-row {
3206
+ flex-direction: row;
3207
+ }
3208
+ .lg\:flex-col {
3209
+ flex-direction: column;
3210
+ }
3211
+ .lg\:flex-row-reverse {
3212
+ flex-direction: row-reverse;
3213
+ }
3214
+ .lg\:flex-wrap {
3215
+ flex-wrap: wrap;
3216
+ }
3217
+ .lg\:flex-nowrap {
3218
+ flex-wrap: nowrap;
3219
+ }
3220
+ .lg\:flex-1 {
3221
+ flex: 1 1 0%;
3222
+ }
3223
+ .lg\:flex-none {
3224
+ flex: none;
3225
+ }
3226
+ .lg\:flex-shrink-0 {
3227
+ flex-shrink: 0;
3228
+ }
3229
+
3230
+ .lg\:justify-start {
3231
+ justify-content: flex-start;
3232
+ }
3233
+ .lg\:justify-end {
3234
+ justify-content: flex-end;
3235
+ }
3236
+ .lg\:justify-center {
3237
+ justify-content: center;
3238
+ }
3239
+ .lg\:justify-between {
3240
+ justify-content: space-between;
3241
+ }
3242
+ .lg\:items-start {
3243
+ align-items: flex-start;
3244
+ }
3245
+ .lg\:items-end {
3246
+ align-items: flex-end;
3247
+ }
3248
+ .lg\:items-center {
3249
+ align-items: center;
3250
+ }
3251
+ .lg\:items-stretch {
3252
+ align-items: stretch;
3253
+ }
3254
+ .lg\:self-center {
3255
+ align-self: center;
3256
+ }
3257
+ .lg\:self-stretch {
3258
+ align-self: stretch;
3259
+ }
3260
+
3261
+ .lg\:grid-cols-1 {
3262
+ grid-template-columns: repeat(1, minmax(0, 1fr));
3263
+ }
3264
+ .lg\:grid-cols-2 {
3265
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3266
+ }
3267
+ .lg\:grid-cols-3 {
3268
+ grid-template-columns: repeat(3, minmax(0, 1fr));
3269
+ }
3270
+ .lg\:grid-cols-4 {
3271
+ grid-template-columns: repeat(4, minmax(0, 1fr));
3272
+ }
3273
+ .lg\:grid-cols-5 {
3274
+ grid-template-columns: repeat(5, minmax(0, 1fr));
3275
+ }
3276
+ .lg\:grid-cols-6 {
3277
+ grid-template-columns: repeat(6, minmax(0, 1fr));
3278
+ }
3279
+ .lg\:grid-cols-12 {
3280
+ grid-template-columns: repeat(12, minmax(0, 1fr));
3281
+ }
3282
+ .lg\:col-span-1 {
3283
+ grid-column: span 1 / span 1;
3284
+ }
3285
+ .lg\:col-span-2 {
3286
+ grid-column: span 2 / span 2;
3287
+ }
3288
+ .lg\:col-span-3 {
3289
+ grid-column: span 3 / span 3;
3290
+ }
3291
+ .lg\:col-span-4 {
3292
+ grid-column: span 4 / span 4;
3293
+ }
3294
+ .lg\:col-span-6 {
3295
+ grid-column: span 6 / span 6;
3296
+ }
3297
+ .lg\:col-span-full {
3298
+ grid-column: 1 / -1;
3299
+ }
3300
+
3301
+ .lg\:gap-0 {
3302
+ gap: 0;
3303
+ }
3304
+ .lg\:gap-2 {
3305
+ gap: 0.5rem;
3306
+ }
3307
+ .lg\:gap-4 {
3308
+ gap: 1rem;
3309
+ }
3310
+ .lg\:gap-6 {
3311
+ gap: 1.5rem;
3312
+ }
3313
+ .lg\:gap-8 {
3314
+ gap: 2rem;
3315
+ }
3316
+ .lg\:gap-10 {
3317
+ gap: 2.5rem;
3318
+ }
3319
+ .lg\:gap-12 {
3320
+ gap: 3rem;
3321
+ }
3322
+ .lg\:gap-page-md {
3323
+ gap: var(--space-page-gap-md);
3324
+ }
3325
+ .lg\:gap-page-lg {
3326
+ gap: var(--space-page-gap-lg);
3327
+ }
3328
+ .lg\:gap-page-xl {
3329
+ gap: var(--space-page-gap-xl);
3330
+ }
3331
+ .lg\:gap-page-2xl {
3332
+ gap: var(--space-page-gap-2xl);
3333
+ }
3334
+ .lg\:gap-container-md {
3335
+ gap: var(--space-container-gap-md);
3336
+ }
3337
+ .lg\:gap-container-lg {
3338
+ gap: var(--space-container-gap-lg);
3339
+ }
3340
+
3341
+ .lg\:p-0 {
3342
+ padding: 0;
3343
+ }
3344
+ .lg\:p-4 {
3345
+ padding: 1rem;
3346
+ }
3347
+ .lg\:p-6 {
3348
+ padding: 1.5rem;
3349
+ }
3350
+ .lg\:p-8 {
3351
+ padding: 2rem;
3352
+ }
3353
+ .lg\:p-10 {
3354
+ padding: 2.5rem;
3355
+ }
3356
+ .lg\:p-12 {
3357
+ padding: 3rem;
3358
+ }
3359
+ .lg\:px-0 {
3360
+ padding-inline: 0;
3361
+ }
3362
+ .lg\:px-4 {
3363
+ padding-inline: 1rem;
3364
+ }
3365
+ .lg\:px-6 {
3366
+ padding-inline: 1.5rem;
3367
+ }
3368
+ .lg\:px-8 {
3369
+ padding-inline: 2rem;
3370
+ }
3371
+ .lg\:px-12 {
3372
+ padding-inline: 3rem;
3373
+ }
3374
+ .lg\:py-0 {
3375
+ padding-block: 0;
3376
+ }
3377
+ .lg\:py-4 {
3378
+ padding-block: 1rem;
3379
+ }
3380
+ .lg\:py-6 {
3381
+ padding-block: 1.5rem;
3382
+ }
3383
+ .lg\:py-8 {
3384
+ padding-block: 2rem;
3385
+ }
3386
+ .lg\:p-page-md {
3387
+ padding: var(--space-page-padding-md);
3388
+ }
3389
+ .lg\:p-page-lg {
3390
+ padding: var(--space-page-padding-lg);
3391
+ }
3392
+ .lg\:p-page-xl {
3393
+ padding: var(--space-page-padding-xl);
3394
+ }
3395
+ .lg\:px-page-lg {
3396
+ padding-inline: var(--space-page-padding-lg);
3397
+ }
3398
+ .lg\:px-page-xl {
3399
+ padding-inline: var(--space-page-padding-xl);
3400
+ }
3401
+ .lg\:py-page-lg {
3402
+ padding-block: var(--space-page-padding-lg);
3403
+ }
3404
+ .lg\:py-page-xl {
3405
+ padding-block: var(--space-page-padding-xl);
3406
+ }
3407
+
3408
+ .lg\:m-0 {
3409
+ margin: 0;
3410
+ }
3411
+ .lg\:mx-auto {
3412
+ margin-inline: auto;
3413
+ }
3414
+
3415
+ .lg\:w-full {
3416
+ width: 100%;
3417
+ }
3418
+ .lg\:w-auto {
3419
+ width: auto;
3420
+ }
3421
+ .lg\:w-fit {
3422
+ width: fit-content;
3423
+ }
3424
+ .lg\:w-1\/2 {
3425
+ width: 50%;
3426
+ }
3427
+ .lg\:w-1\/3 {
3428
+ width: 33.333333%;
3429
+ }
3430
+ .lg\:w-2\/3 {
3431
+ width: 66.666667%;
3432
+ }
3433
+ .lg\:w-1\/4 {
3434
+ width: 25%;
3435
+ }
3436
+ .lg\:w-3\/4 {
3437
+ width: 75%;
3438
+ }
3439
+ .lg\:h-full {
3440
+ height: 100%;
3441
+ }
3442
+ .lg\:max-w-full {
3443
+ max-width: 100%;
3444
+ }
3445
+ .lg\:max-w-7xl {
3446
+ max-width: 80rem;
3447
+ }
3448
+
3449
+ .lg\:text-left {
3450
+ text-align: left;
3451
+ }
3452
+ .lg\:text-center {
3453
+ text-align: center;
3454
+ }
3455
+ .lg\:text-right {
3456
+ text-align: right;
3457
+ }
3458
+ .lg\:truncate {
3459
+ overflow: hidden;
3460
+ text-overflow: ellipsis;
3461
+ white-space: nowrap;
3462
+ }
3463
+
3464
+ .lg\:heading-xl {
3465
+ font-family: var(--typography-heading-xl-family);
3466
+ font-size: var(--typography-heading-xl-size);
3467
+ line-height: var(--typography-heading-xl-line-height);
3468
+ font-weight: var(--typography-heading-xl-weight);
3469
+ letter-spacing: var(--typography-heading-xl-letter-spacing);
3470
+ }
3471
+ .lg\:heading-lg {
3472
+ font-family: var(--typography-heading-lg-family);
3473
+ font-size: var(--typography-heading-lg-size);
3474
+ line-height: var(--typography-heading-lg-line-height);
3475
+ font-weight: var(--typography-heading-lg-weight);
3476
+ letter-spacing: var(--typography-heading-lg-letter-spacing);
3477
+ }
3478
+ .lg\:title-xl {
3479
+ font-family: var(--typography-title-xl-family);
3480
+ font-size: var(--typography-title-xl-size);
3481
+ line-height: var(--typography-title-xl-line-height);
3482
+ font-weight: var(--typography-title-xl-weight);
3483
+ letter-spacing: var(--typography-title-xl-letter-spacing);
3484
+ }
3485
+ .lg\:title-lg {
3486
+ font-family: var(--typography-title-lg-family);
3487
+ font-size: var(--typography-title-lg-size);
3488
+ line-height: var(--typography-title-lg-line-height);
3489
+ font-weight: var(--typography-title-lg-weight);
3490
+ letter-spacing: var(--typography-title-lg-letter-spacing);
3491
+ }
3492
+ .lg\:body-lg {
3493
+ font-family: var(--typography-body-lg-family);
3494
+ font-size: var(--typography-body-lg-size);
3495
+ line-height: var(--typography-body-lg-line-height);
3496
+ font-weight: var(--typography-body-lg-weight);
3497
+ letter-spacing: var(--typography-body-lg-letter-spacing);
3498
+ }
3499
+ .lg\:body-md {
3500
+ font-family: var(--typography-body-md-family);
3501
+ font-size: var(--typography-body-md-size);
3502
+ line-height: var(--typography-body-md-line-height);
3503
+ font-weight: var(--typography-body-md-weight);
3504
+ letter-spacing: var(--typography-body-md-letter-spacing);
3505
+ }
3506
+
3507
+ .lg\:relative {
3508
+ position: relative;
3509
+ }
3510
+ .lg\:sticky {
3511
+ position: sticky;
3512
+ }
3513
+ .lg\:top-0 {
3514
+ top: 0;
3515
+ }
3516
+
3517
+ .lg\:overflow-hidden {
3518
+ overflow: hidden;
3519
+ }
3520
+ .lg\:overflow-auto {
3521
+ overflow: auto;
3522
+ }
3523
+ }
3524
+
3525
+ /* xl: 1440px --------------------------------------------------------------- */
3526
+ @media (min-width: 90rem) {
3527
+ .xl\:block {
3528
+ display: block;
3529
+ }
3530
+ .xl\:flex {
3531
+ display: flex;
3532
+ }
3533
+ .xl\:inline-flex {
3534
+ display: inline-flex;
3535
+ }
3536
+ .xl\:grid {
3537
+ display: grid;
3538
+ }
3539
+ .xl\:hidden {
3540
+ display: none;
3541
+ }
3542
+
3543
+ .xl\:flex-row {
3544
+ flex-direction: row;
3545
+ }
3546
+ .xl\:flex-col {
3547
+ flex-direction: column;
3548
+ }
3549
+ .xl\:flex-1 {
3550
+ flex: 1 1 0%;
3551
+ }
3552
+ .xl\:flex-none {
3553
+ flex: none;
3554
+ }
3555
+
3556
+ .xl\:justify-start {
3557
+ justify-content: flex-start;
3558
+ }
3559
+ .xl\:justify-end {
3560
+ justify-content: flex-end;
3561
+ }
3562
+ .xl\:justify-center {
3563
+ justify-content: center;
3564
+ }
3565
+ .xl\:justify-between {
3566
+ justify-content: space-between;
3567
+ }
3568
+ .xl\:items-start {
3569
+ align-items: flex-start;
3570
+ }
3571
+ .xl\:items-center {
3572
+ align-items: center;
3573
+ }
3574
+ .xl\:items-stretch {
3575
+ align-items: stretch;
3576
+ }
3577
+
3578
+ .xl\:grid-cols-2 {
3579
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3580
+ }
3581
+ .xl\:grid-cols-3 {
3582
+ grid-template-columns: repeat(3, minmax(0, 1fr));
3583
+ }
3584
+ .xl\:grid-cols-4 {
3585
+ grid-template-columns: repeat(4, minmax(0, 1fr));
3586
+ }
3587
+ .xl\:grid-cols-5 {
3588
+ grid-template-columns: repeat(5, minmax(0, 1fr));
3589
+ }
3590
+ .xl\:grid-cols-6 {
3591
+ grid-template-columns: repeat(6, minmax(0, 1fr));
3592
+ }
3593
+ .xl\:col-span-1 {
3594
+ grid-column: span 1 / span 1;
3595
+ }
3596
+ .xl\:col-span-2 {
3597
+ grid-column: span 2 / span 2;
3598
+ }
3599
+ .xl\:col-span-3 {
3600
+ grid-column: span 3 / span 3;
3601
+ }
3602
+ .xl\:col-span-4 {
3603
+ grid-column: span 4 / span 4;
3604
+ }
3605
+ .xl\:col-span-full {
3606
+ grid-column: 1 / -1;
3607
+ }
3608
+
3609
+ .xl\:gap-0 {
3610
+ gap: 0;
3611
+ }
3612
+ .xl\:gap-4 {
3613
+ gap: 1rem;
3614
+ }
3615
+ .xl\:gap-6 {
3616
+ gap: 1.5rem;
3617
+ }
3618
+ .xl\:gap-8 {
3619
+ gap: 2rem;
3620
+ }
3621
+ .xl\:gap-10 {
3622
+ gap: 2.5rem;
3623
+ }
3624
+ .xl\:gap-12 {
3625
+ gap: 3rem;
3626
+ }
3627
+ .xl\:gap-page-lg {
3628
+ gap: var(--space-page-gap-lg);
3629
+ }
3630
+ .xl\:gap-page-xl {
3631
+ gap: var(--space-page-gap-xl);
3632
+ }
3633
+ .xl\:gap-page-2xl {
3634
+ gap: var(--space-page-gap-2xl);
3635
+ }
3636
+
3637
+ .xl\:p-0 {
3638
+ padding: 0;
3639
+ }
3640
+ .xl\:p-6 {
3641
+ padding: 1.5rem;
3642
+ }
3643
+ .xl\:p-8 {
3644
+ padding: 2rem;
3645
+ }
3646
+ .xl\:p-12 {
3647
+ padding: 3rem;
3648
+ }
3649
+ .xl\:px-6 {
3650
+ padding-inline: 1.5rem;
3651
+ }
3652
+ .xl\:px-8 {
3653
+ padding-inline: 2rem;
3654
+ }
3655
+ .xl\:px-12 {
3656
+ padding-inline: 3rem;
3657
+ }
3658
+ .xl\:py-6 {
3659
+ padding-block: 1.5rem;
3660
+ }
3661
+ .xl\:py-8 {
3662
+ padding-block: 2rem;
3663
+ }
3664
+ .xl\:p-page-lg {
3665
+ padding: var(--space-page-padding-lg);
3666
+ }
3667
+ .xl\:p-page-xl {
3668
+ padding: var(--space-page-padding-xl);
3669
+ }
3670
+ .xl\:px-page-xl {
3671
+ padding-inline: var(--space-page-padding-xl);
3672
+ }
3673
+ .xl\:py-page-xl {
3674
+ padding-block: var(--space-page-padding-xl);
3675
+ }
3676
+
3677
+ .xl\:w-full {
3678
+ width: 100%;
3679
+ }
3680
+ .xl\:w-auto {
3681
+ width: auto;
3682
+ }
3683
+ .xl\:w-1\/2 {
3684
+ width: 50%;
3685
+ }
3686
+ .xl\:w-1\/3 {
3687
+ width: 33.333333%;
3688
+ }
3689
+ .xl\:max-w-7xl {
3690
+ max-width: 80rem;
3691
+ }
3692
+
3693
+ .xl\:text-left {
3694
+ text-align: left;
3695
+ }
3696
+ .xl\:text-center {
3697
+ text-align: center;
3698
+ }
3699
+
3700
+ .xl\:heading-xl {
3701
+ font-family: var(--typography-heading-xl-family);
3702
+ font-size: var(--typography-heading-xl-size);
3703
+ line-height: var(--typography-heading-xl-line-height);
3704
+ font-weight: var(--typography-heading-xl-weight);
3705
+ letter-spacing: var(--typography-heading-xl-letter-spacing);
3706
+ }
3707
+ .xl\:title-xl {
3708
+ font-family: var(--typography-title-xl-family);
3709
+ font-size: var(--typography-title-xl-size);
3710
+ line-height: var(--typography-title-xl-line-height);
3711
+ font-weight: var(--typography-title-xl-weight);
3712
+ letter-spacing: var(--typography-title-xl-letter-spacing);
3713
+ }
3714
+ .xl\:body-md {
3715
+ font-family: var(--typography-body-md-family);
3716
+ font-size: var(--typography-body-md-size);
3717
+ line-height: var(--typography-body-md-line-height);
3718
+ font-weight: var(--typography-body-md-weight);
3719
+ letter-spacing: var(--typography-body-md-letter-spacing);
3720
+ }
3721
+ }