@memelabui/ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1766 @@
1
+ :root {
2
+ /* ---- Background ---- */
3
+ --ml-bg: #0a0a0f;
4
+ --ml-fg: #f9fafb;
5
+
6
+ /* ---- Surface scale ---- */
7
+ --ml-surface-0: #0a0a0f;
8
+ --ml-surface-50: #0f0f18;
9
+ --ml-surface-100: #141420;
10
+ --ml-surface-200: #1a1a2e;
11
+ --ml-surface-300: #24243a;
12
+ --ml-surface-400: #2a2a4a;
13
+
14
+ /* ---- Glass ---- */
15
+ --ml-glass-bg: rgba(255, 255, 255, 0.05);
16
+ --ml-glass-bg-hover: rgba(255, 255, 255, 0.07);
17
+ --ml-glass-border: rgba(255, 255, 255, 0.1);
18
+ --ml-glass-border-hover: rgba(102, 126, 234, 0.25);
19
+ --ml-glass-blur: 16px;
20
+
21
+ /* ---- Primary palette ---- */
22
+ --ml-primary: #8b5cf6;
23
+ --ml-primary-light: #a78bfa;
24
+ --ml-primary-dark: #7c3aed;
25
+
26
+ /* ---- Accent (gradient source) ---- */
27
+ --ml-accent: #667eea;
28
+ --ml-accent-light: #8b9cf7;
29
+ --ml-accent-dark: #4c5fd4;
30
+
31
+ /* ---- Glow ---- */
32
+ --ml-glow-purple: #764ba2;
33
+ --ml-glow-pink: #f093fb;
34
+
35
+ /* ---- Semantic ---- */
36
+ --ml-success: #10b981;
37
+ --ml-warning: #f59e0b;
38
+ --ml-danger: #f43f5e;
39
+
40
+ /* ---- Typography ---- */
41
+ --ml-font-sans: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
42
+
43
+ /* ---- Border radius ---- */
44
+ --ml-radius-sm: 0.5rem;
45
+ --ml-radius-md: 0.75rem;
46
+ --ml-radius-lg: 1rem;
47
+ --ml-radius-xl: 1.5rem;
48
+ --ml-radius-full: 9999px;
49
+
50
+ /* ---- Shadows ---- */
51
+ --ml-shadow-surface:
52
+ 0 1px 3px rgba(0, 0, 0, 0.3),
53
+ inset 0 0 0 1px rgba(255, 255, 255, 0.08);
54
+ --ml-shadow-surface-hover:
55
+ 0 10px 25px rgba(0, 0, 0, 0.45),
56
+ inset 0 0 0 1px rgba(255, 255, 255, 0.09);
57
+ --ml-shadow-glow: 0 0 25px rgba(139, 92, 246, 0.35);
58
+ --ml-shadow-glow-lg: 0 0 35px rgba(139, 92, 246, 0.5);
59
+ --ml-shadow-glow-accent: 0 0 30px rgba(102, 126, 234, 0.3);
60
+
61
+ /* ---- Transitions ---- */
62
+ --ml-transition-fast: 150ms ease;
63
+ --ml-transition-normal: 200ms ease;
64
+ --ml-transition-slow: 300ms ease;
65
+ }
66
+ @keyframes ml-float {
67
+ 0%,
68
+ 100% {
69
+ transform: translateY(0px);
70
+ }
71
+ 50% {
72
+ transform: translateY(-20px);
73
+ }
74
+ }
75
+ @keyframes ml-gradient {
76
+ 0% {
77
+ background-position: 0% 50%;
78
+ }
79
+ 50% {
80
+ background-position: 100% 50%;
81
+ }
82
+ 100% {
83
+ background-position: 0% 50%;
84
+ }
85
+ }
86
+ @keyframes ml-pulse-glow {
87
+ 0%,
88
+ 100% {
89
+ opacity: 1;
90
+ }
91
+ 50% {
92
+ opacity: 0.6;
93
+ }
94
+ }
95
+ @keyframes ml-fade-up {
96
+ 0% {
97
+ opacity: 0;
98
+ transform: translateY(30px);
99
+ }
100
+ 100% {
101
+ opacity: 1;
102
+ transform: translateY(0);
103
+ }
104
+ }
105
+ @keyframes ml-modal-backdrop {
106
+ from {
107
+ opacity: 0;
108
+ }
109
+ to {
110
+ opacity: 1;
111
+ }
112
+ }
113
+ @keyframes ml-modal-pop {
114
+ from {
115
+ opacity: 0;
116
+ transform: translateY(6px) scale(0.98);
117
+ }
118
+ to {
119
+ opacity: 1;
120
+ transform: translateY(0) scale(1);
121
+ }
122
+ }
123
+ @keyframes ml-shimmer {
124
+ 0% {
125
+ transform: translateX(-200%);
126
+ }
127
+ 100% {
128
+ transform: translateX(200%);
129
+ }
130
+ }
131
+ @keyframes ml-spin {
132
+ from {
133
+ transform: rotate(0deg);
134
+ }
135
+ to {
136
+ transform: rotate(360deg);
137
+ }
138
+ }
139
+ /* Reduced motion */
140
+ @media (prefers-reduced-motion: reduce) {
141
+ *,
142
+ *::before,
143
+ *::after {
144
+ animation-duration: 0.01ms !important;
145
+ animation-iteration-count: 1 !important;
146
+ transition-duration: 0.01ms !important;
147
+ }
148
+ }
149
+ *, ::before, ::after {
150
+ --tw-border-spacing-x: 0;
151
+ --tw-border-spacing-y: 0;
152
+ --tw-translate-x: 0;
153
+ --tw-translate-y: 0;
154
+ --tw-rotate: 0;
155
+ --tw-skew-x: 0;
156
+ --tw-skew-y: 0;
157
+ --tw-scale-x: 1;
158
+ --tw-scale-y: 1;
159
+ --tw-pan-x: ;
160
+ --tw-pan-y: ;
161
+ --tw-pinch-zoom: ;
162
+ --tw-scroll-snap-strictness: proximity;
163
+ --tw-gradient-from-position: ;
164
+ --tw-gradient-via-position: ;
165
+ --tw-gradient-to-position: ;
166
+ --tw-ordinal: ;
167
+ --tw-slashed-zero: ;
168
+ --tw-numeric-figure: ;
169
+ --tw-numeric-spacing: ;
170
+ --tw-numeric-fraction: ;
171
+ --tw-ring-inset: ;
172
+ --tw-ring-offset-width: 0px;
173
+ --tw-ring-offset-color: #fff;
174
+ --tw-ring-color: rgb(59 130 246 / 0.5);
175
+ --tw-ring-offset-shadow: 0 0 #0000;
176
+ --tw-ring-shadow: 0 0 #0000;
177
+ --tw-shadow: 0 0 #0000;
178
+ --tw-shadow-colored: 0 0 #0000;
179
+ --tw-blur: ;
180
+ --tw-brightness: ;
181
+ --tw-contrast: ;
182
+ --tw-grayscale: ;
183
+ --tw-hue-rotate: ;
184
+ --tw-invert: ;
185
+ --tw-saturate: ;
186
+ --tw-sepia: ;
187
+ --tw-drop-shadow: ;
188
+ --tw-backdrop-blur: ;
189
+ --tw-backdrop-brightness: ;
190
+ --tw-backdrop-contrast: ;
191
+ --tw-backdrop-grayscale: ;
192
+ --tw-backdrop-hue-rotate: ;
193
+ --tw-backdrop-invert: ;
194
+ --tw-backdrop-opacity: ;
195
+ --tw-backdrop-saturate: ;
196
+ --tw-backdrop-sepia: ;
197
+ --tw-contain-size: ;
198
+ --tw-contain-layout: ;
199
+ --tw-contain-paint: ;
200
+ --tw-contain-style: ;
201
+ }
202
+ ::backdrop {
203
+ --tw-border-spacing-x: 0;
204
+ --tw-border-spacing-y: 0;
205
+ --tw-translate-x: 0;
206
+ --tw-translate-y: 0;
207
+ --tw-rotate: 0;
208
+ --tw-skew-x: 0;
209
+ --tw-skew-y: 0;
210
+ --tw-scale-x: 1;
211
+ --tw-scale-y: 1;
212
+ --tw-pan-x: ;
213
+ --tw-pan-y: ;
214
+ --tw-pinch-zoom: ;
215
+ --tw-scroll-snap-strictness: proximity;
216
+ --tw-gradient-from-position: ;
217
+ --tw-gradient-via-position: ;
218
+ --tw-gradient-to-position: ;
219
+ --tw-ordinal: ;
220
+ --tw-slashed-zero: ;
221
+ --tw-numeric-figure: ;
222
+ --tw-numeric-spacing: ;
223
+ --tw-numeric-fraction: ;
224
+ --tw-ring-inset: ;
225
+ --tw-ring-offset-width: 0px;
226
+ --tw-ring-offset-color: #fff;
227
+ --tw-ring-color: rgb(59 130 246 / 0.5);
228
+ --tw-ring-offset-shadow: 0 0 #0000;
229
+ --tw-ring-shadow: 0 0 #0000;
230
+ --tw-shadow: 0 0 #0000;
231
+ --tw-shadow-colored: 0 0 #0000;
232
+ --tw-blur: ;
233
+ --tw-brightness: ;
234
+ --tw-contrast: ;
235
+ --tw-grayscale: ;
236
+ --tw-hue-rotate: ;
237
+ --tw-invert: ;
238
+ --tw-saturate: ;
239
+ --tw-sepia: ;
240
+ --tw-drop-shadow: ;
241
+ --tw-backdrop-blur: ;
242
+ --tw-backdrop-brightness: ;
243
+ --tw-backdrop-contrast: ;
244
+ --tw-backdrop-grayscale: ;
245
+ --tw-backdrop-hue-rotate: ;
246
+ --tw-backdrop-invert: ;
247
+ --tw-backdrop-opacity: ;
248
+ --tw-backdrop-saturate: ;
249
+ --tw-backdrop-sepia: ;
250
+ --tw-contain-size: ;
251
+ --tw-contain-layout: ;
252
+ --tw-contain-paint: ;
253
+ --tw-contain-style: ;
254
+ }
255
+ /* ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com */
256
+ /*
257
+ 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
258
+ 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
259
+ */
260
+ *,
261
+ ::before,
262
+ ::after {
263
+ box-sizing: border-box; /* 1 */
264
+ border-width: 0; /* 2 */
265
+ border-style: solid; /* 2 */
266
+ border-color: #e5e7eb; /* 2 */
267
+ }
268
+ ::before,
269
+ ::after {
270
+ --tw-content: '';
271
+ }
272
+ /*
273
+ 1. Use a consistent sensible line-height in all browsers.
274
+ 2. Prevent adjustments of font size after orientation changes in iOS.
275
+ 3. Use a more readable tab size.
276
+ 4. Use the user's configured `sans` font-family by default.
277
+ 5. Use the user's configured `sans` font-feature-settings by default.
278
+ 6. Use the user's configured `sans` font-variation-settings by default.
279
+ 7. Disable tap highlights on iOS
280
+ */
281
+ html,
282
+ :host {
283
+ line-height: 1.5; /* 1 */
284
+ -webkit-text-size-adjust: 100%; /* 2 */
285
+ -moz-tab-size: 4; /* 3 */
286
+ -o-tab-size: 4;
287
+ tab-size: 4; /* 3 */
288
+ font-family: var(--ml-font-sans); /* 4 */
289
+ font-feature-settings: normal; /* 5 */
290
+ font-variation-settings: normal; /* 6 */
291
+ -webkit-tap-highlight-color: transparent; /* 7 */
292
+ }
293
+ /*
294
+ 1. Remove the margin in all browsers.
295
+ 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
296
+ */
297
+ body {
298
+ margin: 0; /* 1 */
299
+ line-height: inherit; /* 2 */
300
+ }
301
+ /*
302
+ 1. Add the correct height in Firefox.
303
+ 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
304
+ 3. Ensure horizontal rules are visible by default.
305
+ */
306
+ hr {
307
+ height: 0; /* 1 */
308
+ color: inherit; /* 2 */
309
+ border-top-width: 1px; /* 3 */
310
+ }
311
+ /*
312
+ Add the correct text decoration in Chrome, Edge, and Safari.
313
+ */
314
+ abbr:where([title]) {
315
+ -webkit-text-decoration: underline dotted;
316
+ text-decoration: underline dotted;
317
+ }
318
+ /*
319
+ Remove the default font size and weight for headings.
320
+ */
321
+ h1,
322
+ h2,
323
+ h3,
324
+ h4,
325
+ h5,
326
+ h6 {
327
+ font-size: inherit;
328
+ font-weight: inherit;
329
+ }
330
+ /*
331
+ Reset links to optimize for opt-in styling instead of opt-out.
332
+ */
333
+ a {
334
+ color: inherit;
335
+ text-decoration: inherit;
336
+ }
337
+ /*
338
+ Add the correct font weight in Edge and Safari.
339
+ */
340
+ b,
341
+ strong {
342
+ font-weight: bolder;
343
+ }
344
+ /*
345
+ 1. Use the user's configured `mono` font-family by default.
346
+ 2. Use the user's configured `mono` font-feature-settings by default.
347
+ 3. Use the user's configured `mono` font-variation-settings by default.
348
+ 4. Correct the odd `em` font sizing in all browsers.
349
+ */
350
+ code,
351
+ kbd,
352
+ samp,
353
+ pre {
354
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
355
+ font-feature-settings: normal; /* 2 */
356
+ font-variation-settings: normal; /* 3 */
357
+ font-size: 1em; /* 4 */
358
+ }
359
+ /*
360
+ Add the correct font size in all browsers.
361
+ */
362
+ small {
363
+ font-size: 80%;
364
+ }
365
+ /*
366
+ Prevent `sub` and `sup` elements from affecting the line height in all browsers.
367
+ */
368
+ sub,
369
+ sup {
370
+ font-size: 75%;
371
+ line-height: 0;
372
+ position: relative;
373
+ vertical-align: baseline;
374
+ }
375
+ sub {
376
+ bottom: -0.25em;
377
+ }
378
+ sup {
379
+ top: -0.5em;
380
+ }
381
+ /*
382
+ 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
383
+ 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
384
+ 3. Remove gaps between table borders by default.
385
+ */
386
+ table {
387
+ text-indent: 0; /* 1 */
388
+ border-color: inherit; /* 2 */
389
+ border-collapse: collapse; /* 3 */
390
+ }
391
+ /*
392
+ 1. Change the font styles in all browsers.
393
+ 2. Remove the margin in Firefox and Safari.
394
+ 3. Remove default padding in all browsers.
395
+ */
396
+ button,
397
+ input,
398
+ optgroup,
399
+ select,
400
+ textarea {
401
+ font-family: inherit; /* 1 */
402
+ font-feature-settings: inherit; /* 1 */
403
+ font-variation-settings: inherit; /* 1 */
404
+ font-size: 100%; /* 1 */
405
+ font-weight: inherit; /* 1 */
406
+ line-height: inherit; /* 1 */
407
+ letter-spacing: inherit; /* 1 */
408
+ color: inherit; /* 1 */
409
+ margin: 0; /* 2 */
410
+ padding: 0; /* 3 */
411
+ }
412
+ /*
413
+ Remove the inheritance of text transform in Edge and Firefox.
414
+ */
415
+ button,
416
+ select {
417
+ text-transform: none;
418
+ }
419
+ /*
420
+ 1. Correct the inability to style clickable types in iOS and Safari.
421
+ 2. Remove default button styles.
422
+ */
423
+ button,
424
+ input:where([type='button']),
425
+ input:where([type='reset']),
426
+ input:where([type='submit']) {
427
+ -webkit-appearance: button; /* 1 */
428
+ background-color: transparent; /* 2 */
429
+ background-image: none; /* 2 */
430
+ }
431
+ /*
432
+ Use the modern Firefox focus style for all focusable elements.
433
+ */
434
+ :-moz-focusring {
435
+ outline: auto;
436
+ }
437
+ /*
438
+ Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
439
+ */
440
+ :-moz-ui-invalid {
441
+ box-shadow: none;
442
+ }
443
+ /*
444
+ Add the correct vertical alignment in Chrome and Firefox.
445
+ */
446
+ progress {
447
+ vertical-align: baseline;
448
+ }
449
+ /*
450
+ Correct the cursor style of increment and decrement buttons in Safari.
451
+ */
452
+ ::-webkit-inner-spin-button,
453
+ ::-webkit-outer-spin-button {
454
+ height: auto;
455
+ }
456
+ /*
457
+ 1. Correct the odd appearance in Chrome and Safari.
458
+ 2. Correct the outline style in Safari.
459
+ */
460
+ [type='search'] {
461
+ -webkit-appearance: textfield; /* 1 */
462
+ outline-offset: -2px; /* 2 */
463
+ }
464
+ /*
465
+ Remove the inner padding in Chrome and Safari on macOS.
466
+ */
467
+ ::-webkit-search-decoration {
468
+ -webkit-appearance: none;
469
+ }
470
+ /*
471
+ 1. Correct the inability to style clickable types in iOS and Safari.
472
+ 2. Change font properties to `inherit` in Safari.
473
+ */
474
+ ::-webkit-file-upload-button {
475
+ -webkit-appearance: button; /* 1 */
476
+ font: inherit; /* 2 */
477
+ }
478
+ /*
479
+ Add the correct display in Chrome and Safari.
480
+ */
481
+ summary {
482
+ display: list-item;
483
+ }
484
+ /*
485
+ Removes the default spacing and border for appropriate elements.
486
+ */
487
+ blockquote,
488
+ dl,
489
+ dd,
490
+ h1,
491
+ h2,
492
+ h3,
493
+ h4,
494
+ h5,
495
+ h6,
496
+ hr,
497
+ figure,
498
+ p,
499
+ pre {
500
+ margin: 0;
501
+ }
502
+ fieldset {
503
+ margin: 0;
504
+ padding: 0;
505
+ }
506
+ legend {
507
+ padding: 0;
508
+ }
509
+ ol,
510
+ ul,
511
+ menu {
512
+ list-style: none;
513
+ margin: 0;
514
+ padding: 0;
515
+ }
516
+ /*
517
+ Reset default styling for dialogs.
518
+ */
519
+ dialog {
520
+ padding: 0;
521
+ }
522
+ /*
523
+ Prevent resizing textareas horizontally by default.
524
+ */
525
+ textarea {
526
+ resize: vertical;
527
+ }
528
+ /*
529
+ 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
530
+ 2. Set the default placeholder color to the user's configured gray 400 color.
531
+ */
532
+ input::-moz-placeholder, textarea::-moz-placeholder {
533
+ opacity: 1; /* 1 */
534
+ color: #9ca3af; /* 2 */
535
+ }
536
+ input::placeholder,
537
+ textarea::placeholder {
538
+ opacity: 1; /* 1 */
539
+ color: #9ca3af; /* 2 */
540
+ }
541
+ /*
542
+ Set the default cursor for buttons.
543
+ */
544
+ button,
545
+ [role="button"] {
546
+ cursor: pointer;
547
+ }
548
+ /*
549
+ Make sure disabled buttons don't get the pointer cursor.
550
+ */
551
+ :disabled {
552
+ cursor: default;
553
+ }
554
+ /*
555
+ 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
556
+ 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
557
+ This can trigger a poorly considered lint error in some tools but is included by design.
558
+ */
559
+ img,
560
+ svg,
561
+ video,
562
+ canvas,
563
+ audio,
564
+ iframe,
565
+ embed,
566
+ object {
567
+ display: block; /* 1 */
568
+ vertical-align: middle; /* 2 */
569
+ }
570
+ /*
571
+ Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
572
+ */
573
+ img,
574
+ video {
575
+ max-width: 100%;
576
+ height: auto;
577
+ }
578
+ /* Make elements with the HTML hidden attribute stay hidden by default */
579
+ [hidden]:where(:not([hidden="until-found"])) {
580
+ display: none;
581
+ }
582
+ body {
583
+ background-color: var(--ml-bg, #0a0a0f);
584
+ color: var(--ml-fg, #f9fafb);
585
+ font-family: var(--ml-font-sans);
586
+ -webkit-font-smoothing: antialiased;
587
+ -moz-osx-font-smoothing: grayscale;
588
+ }
589
+ /* Scrollbar */
590
+ ::-webkit-scrollbar {
591
+ width: 6px;
592
+ }
593
+ ::-webkit-scrollbar-track {
594
+ background: var(--ml-surface-50, #0f0f18);
595
+ }
596
+ ::-webkit-scrollbar-thumb {
597
+ background: var(--ml-surface-300, #24243a);
598
+ border-radius: 9999px;
599
+ }
600
+ /* Global focus-visible */
601
+ :where(a, button, input, select, textarea, [role='button'], [role='menuitem'], [role='tab']):focus-visible {
602
+ outline: none;
603
+ box-shadow:
604
+ 0 0 0 2px var(--ml-primary, #8b5cf6),
605
+ 0 0 0 4px transparent;
606
+ }
607
+ /* Dark select */
608
+ select {
609
+ color-scheme: dark;
610
+ }
611
+ select option,
612
+ select optgroup {
613
+ background-color: var(--ml-surface-50, #0f0f18);
614
+ color: var(--ml-fg, #f9fafb);
615
+ }
616
+ /* Accessibility: link underline offset */
617
+ a {
618
+ text-underline-offset: 0.18em;
619
+ }
620
+ .container {
621
+ width: 100%;
622
+ }
623
+ @media (min-width: 640px) {
624
+ .container {
625
+ max-width: 640px;
626
+ }
627
+ }
628
+ @media (min-width: 768px) {
629
+ .container {
630
+ max-width: 768px;
631
+ }
632
+ }
633
+ @media (min-width: 1024px) {
634
+ .container {
635
+ max-width: 1024px;
636
+ }
637
+ }
638
+ @media (min-width: 1280px) {
639
+ .container {
640
+ max-width: 1280px;
641
+ }
642
+ }
643
+ @media (min-width: 1536px) {
644
+ .container {
645
+ max-width: 1536px;
646
+ }
647
+ }
648
+ .glass {
649
+ border-radius: var(--ml-radius-md, 0.75rem);
650
+ background: var(--ml-glass-bg, rgba(255, 255, 255, 0.05));
651
+ backdrop-filter: blur(var(--ml-glass-blur, 16px));
652
+ -webkit-backdrop-filter: blur(var(--ml-glass-blur, 16px));
653
+ box-shadow: 0 1px 3px rgba(0,0,0,0.35), inset 0 0 0 1px var(--ml-glass-border, rgba(255,255,255,0.1));
654
+ }
655
+ .surface {
656
+ border-radius: var(--ml-radius-md, 0.75rem);
657
+ background: rgba(255, 255, 255, 0.06);
658
+ backdrop-filter: blur(12px);
659
+ -webkit-backdrop-filter: blur(12px);
660
+ box-shadow: var(--ml-shadow-surface, 0 1px 3px rgba(0,0,0,0.3), inset 0 0 0 1px rgba(255,255,255,0.08));
661
+ }
662
+ .surface-hover {
663
+ transition: box-shadow var(--ml-transition-fast, 150ms ease);
664
+ }
665
+ .surface-hover:hover {
666
+ box-shadow: var(--ml-shadow-surface-hover, 0 10px 25px rgba(0,0,0,0.45), inset 0 0 0 1px rgba(255,255,255,0.09));
667
+ }
668
+ .text-gradient {
669
+ background: linear-gradient(135deg, var(--ml-accent,#667eea) 0%, var(--ml-glow-purple,#764ba2) 50%, var(--ml-glow-pink,#f093fb) 100%);
670
+ -webkit-background-clip: text;
671
+ -webkit-text-fill-color: transparent;
672
+ background-clip: text;
673
+ }
674
+ .animated-gradient {
675
+ background: linear-gradient(270deg, var(--ml-accent,#667eea), var(--ml-glow-purple,#764ba2), var(--ml-glow-pink,#f093fb));
676
+ background-size: 400% 400%;
677
+ animation: ml-gradient 15s ease infinite;
678
+ }
679
+ /* Glass morphism */
680
+ .glass {
681
+ border-radius: var(--ml-radius-md, 0.75rem);
682
+ background: var(--ml-glass-bg, rgba(255, 255, 255, 0.05));
683
+ backdrop-filter: blur(var(--ml-glass-blur, 16px));
684
+ -webkit-backdrop-filter: blur(var(--ml-glass-blur, 16px));
685
+ box-shadow:
686
+ 0 1px 3px rgba(0, 0, 0, 0.35),
687
+ inset 0 0 0 1px var(--ml-glass-border, rgba(255, 255, 255, 0.1));
688
+ }
689
+ /* Surface card */
690
+ .surface {
691
+ border-radius: var(--ml-radius-md, 0.75rem);
692
+ background: rgba(255, 255, 255, 0.06);
693
+ backdrop-filter: blur(12px);
694
+ -webkit-backdrop-filter: blur(12px);
695
+ box-shadow: var(
696
+ --ml-shadow-surface,
697
+ 0 1px 3px rgba(0, 0, 0, 0.3),
698
+ inset 0 0 0 1px rgba(255, 255, 255, 0.08)
699
+ );
700
+ }
701
+ .surface-hover {
702
+ transition: box-shadow var(--ml-transition-fast, 150ms ease);
703
+ }
704
+ .surface-hover:hover {
705
+ box-shadow: var(
706
+ --ml-shadow-surface-hover,
707
+ 0 10px 25px rgba(0, 0, 0, 0.45),
708
+ inset 0 0 0 1px rgba(255, 255, 255, 0.09)
709
+ );
710
+ }
711
+ /* Gradient text */
712
+ .text-gradient {
713
+ background: linear-gradient(
714
+ 135deg,
715
+ var(--ml-accent, #667eea) 0%,
716
+ var(--ml-glow-purple, #764ba2) 50%,
717
+ var(--ml-glow-pink, #f093fb) 100%
718
+ );
719
+ -webkit-background-clip: text;
720
+ -webkit-text-fill-color: transparent;
721
+ background-clip: text;
722
+ }
723
+ /* Animated gradient background */
724
+ .animated-gradient {
725
+ background: linear-gradient(
726
+ 270deg,
727
+ var(--ml-accent, #667eea),
728
+ var(--ml-glow-purple, #764ba2),
729
+ var(--ml-glow-pink, #f093fb)
730
+ );
731
+ background-size: 400% 400%;
732
+ animation: ml-gradient 15s ease infinite;
733
+ }
734
+ /* Page container */
735
+ /* Decorative orbs */
736
+ .orb {
737
+ position: absolute;
738
+ border-radius: 50%;
739
+ filter: blur(80px);
740
+ opacity: 0.3;
741
+ pointer-events: none;
742
+ }
743
+ .orb-purple {
744
+ background: var(--ml-glow-purple, #764ba2);
745
+ }
746
+ .orb-blue {
747
+ background: var(--ml-accent, #667eea);
748
+ }
749
+ /* iOS safe-area */
750
+ .pb-safe {
751
+ padding-bottom: calc(1rem + env(safe-area-inset-bottom));
752
+ }
753
+ /* Hide scrollbar */
754
+ /* Soft link */
755
+ .pointer-events-none {
756
+ pointer-events: none;
757
+ }
758
+ .visible {
759
+ visibility: visible;
760
+ }
761
+ .collapse {
762
+ visibility: collapse;
763
+ }
764
+ .fixed {
765
+ position: fixed;
766
+ }
767
+ .absolute {
768
+ position: absolute;
769
+ }
770
+ .relative {
771
+ position: relative;
772
+ }
773
+ .sticky {
774
+ position: sticky;
775
+ }
776
+ .inset-0 {
777
+ inset: 0px;
778
+ }
779
+ .-left-32 {
780
+ left: -8rem;
781
+ }
782
+ .-left-\[150px\] {
783
+ left: -150px;
784
+ }
785
+ .-right-32 {
786
+ right: -8rem;
787
+ }
788
+ .-right-\[100px\] {
789
+ right: -100px;
790
+ }
791
+ .-top-32 {
792
+ top: -8rem;
793
+ }
794
+ .-top-\[150px\] {
795
+ top: -150px;
796
+ }
797
+ .bottom-0 {
798
+ bottom: 0px;
799
+ }
800
+ .left-0\.5 {
801
+ left: 0.125rem;
802
+ }
803
+ .left-1\/2 {
804
+ left: 50%;
805
+ }
806
+ .top-0 {
807
+ top: 0px;
808
+ }
809
+ .top-0\.5 {
810
+ top: 0.125rem;
811
+ }
812
+ .top-20 {
813
+ top: 5rem;
814
+ }
815
+ .top-\[60\%\] {
816
+ top: 60%;
817
+ }
818
+ .z-10 {
819
+ z-index: 10;
820
+ }
821
+ .z-50 {
822
+ z-index: 50;
823
+ }
824
+ .z-\[9999\] {
825
+ z-index: 9999;
826
+ }
827
+ .mx-auto {
828
+ margin-left: auto;
829
+ margin-right: auto;
830
+ }
831
+ .mb-1\.5 {
832
+ margin-bottom: 0.375rem;
833
+ }
834
+ .mb-2 {
835
+ margin-bottom: 0.5rem;
836
+ }
837
+ .mb-3 {
838
+ margin-bottom: 0.75rem;
839
+ }
840
+ .mb-4 {
841
+ margin-bottom: 1rem;
842
+ }
843
+ .mb-6 {
844
+ margin-bottom: 1.5rem;
845
+ }
846
+ .mt-1 {
847
+ margin-top: 0.25rem;
848
+ }
849
+ .block {
850
+ display: block;
851
+ }
852
+ .inline-block {
853
+ display: inline-block;
854
+ }
855
+ .flex {
856
+ display: flex;
857
+ }
858
+ .inline-flex {
859
+ display: inline-flex;
860
+ }
861
+ .grid {
862
+ display: grid;
863
+ }
864
+ .hidden {
865
+ display: none;
866
+ }
867
+ .h-10 {
868
+ height: 2.5rem;
869
+ }
870
+ .h-11 {
871
+ height: 2.75rem;
872
+ }
873
+ .h-12 {
874
+ height: 3rem;
875
+ }
876
+ .h-14 {
877
+ height: 3.5rem;
878
+ }
879
+ .h-16 {
880
+ height: 4rem;
881
+ }
882
+ .h-20 {
883
+ height: 5rem;
884
+ }
885
+ .h-3 {
886
+ height: 0.75rem;
887
+ }
888
+ .h-32 {
889
+ height: 8rem;
890
+ }
891
+ .h-4 {
892
+ height: 1rem;
893
+ }
894
+ .h-5 {
895
+ height: 1.25rem;
896
+ }
897
+ .h-6 {
898
+ height: 1.5rem;
899
+ }
900
+ .h-7 {
901
+ height: 1.75rem;
902
+ }
903
+ .h-8 {
904
+ height: 2rem;
905
+ }
906
+ .h-9 {
907
+ height: 2.25rem;
908
+ }
909
+ .h-\[300px\] {
910
+ height: 300px;
911
+ }
912
+ .h-\[400px\] {
913
+ height: 400px;
914
+ }
915
+ .h-\[500px\] {
916
+ height: 500px;
917
+ }
918
+ .h-\[600px\] {
919
+ height: 600px;
920
+ }
921
+ .h-full {
922
+ height: 100%;
923
+ }
924
+ .min-h-full {
925
+ min-height: 100%;
926
+ }
927
+ .min-h-screen {
928
+ min-height: 100vh;
929
+ }
930
+ .w-1\/2 {
931
+ width: 50%;
932
+ }
933
+ .w-10 {
934
+ width: 2.5rem;
935
+ }
936
+ .w-11 {
937
+ width: 2.75rem;
938
+ }
939
+ .w-12 {
940
+ width: 3rem;
941
+ }
942
+ .w-16 {
943
+ width: 4rem;
944
+ }
945
+ .w-20 {
946
+ width: 5rem;
947
+ }
948
+ .w-3 {
949
+ width: 0.75rem;
950
+ }
951
+ .w-3\/4 {
952
+ width: 75%;
953
+ }
954
+ .w-4 {
955
+ width: 1rem;
956
+ }
957
+ .w-4\/6 {
958
+ width: 66.666667%;
959
+ }
960
+ .w-48 {
961
+ width: 12rem;
962
+ }
963
+ .w-5 {
964
+ width: 1.25rem;
965
+ }
966
+ .w-5\/6 {
967
+ width: 83.333333%;
968
+ }
969
+ .w-6 {
970
+ width: 1.5rem;
971
+ }
972
+ .w-64 {
973
+ width: 16rem;
974
+ }
975
+ .w-7 {
976
+ width: 1.75rem;
977
+ }
978
+ .w-72 {
979
+ width: 18rem;
980
+ }
981
+ .w-8 {
982
+ width: 2rem;
983
+ }
984
+ .w-9 {
985
+ width: 2.25rem;
986
+ }
987
+ .w-\[300px\] {
988
+ width: 300px;
989
+ }
990
+ .w-\[400px\] {
991
+ width: 400px;
992
+ }
993
+ .w-\[500px\] {
994
+ width: 500px;
995
+ }
996
+ .w-\[600px\] {
997
+ width: 600px;
998
+ }
999
+ .w-full {
1000
+ width: 100%;
1001
+ }
1002
+ .min-w-0 {
1003
+ min-width: 0px;
1004
+ }
1005
+ .max-w-2xl {
1006
+ max-width: 42rem;
1007
+ }
1008
+ .max-w-4xl {
1009
+ max-width: 56rem;
1010
+ }
1011
+ .max-w-5xl {
1012
+ max-width: 64rem;
1013
+ }
1014
+ .max-w-7xl {
1015
+ max-width: 80rem;
1016
+ }
1017
+ .max-w-\[320px\] {
1018
+ max-width: 320px;
1019
+ }
1020
+ .max-w-\[92rem\] {
1021
+ max-width: 92rem;
1022
+ }
1023
+ .max-w-full {
1024
+ max-width: 100%;
1025
+ }
1026
+ .max-w-md {
1027
+ max-width: 28rem;
1028
+ }
1029
+ .flex-1 {
1030
+ flex: 1 1 0%;
1031
+ }
1032
+ .-translate-x-1\/2 {
1033
+ --tw-translate-x: -50%;
1034
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1035
+ }
1036
+ .translate-x-0 {
1037
+ --tw-translate-x: 0px;
1038
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1039
+ }
1040
+ .translate-x-4 {
1041
+ --tw-translate-x: 1rem;
1042
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1043
+ }
1044
+ .translate-x-5 {
1045
+ --tw-translate-x: 1.25rem;
1046
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1047
+ }
1048
+ .rotate-180 {
1049
+ --tw-rotate: 180deg;
1050
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1051
+ }
1052
+ .rotate-90 {
1053
+ --tw-rotate: 90deg;
1054
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1055
+ }
1056
+ .transform {
1057
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1058
+ }
1059
+ @keyframes ml-modal-backdrop {
1060
+ from {
1061
+ opacity: 0;
1062
+ }
1063
+ to {
1064
+ opacity: 1;
1065
+ }
1066
+ }
1067
+ .animate-modal-backdrop {
1068
+ animation: ml-modal-backdrop 140ms ease-out both;
1069
+ }
1070
+ @keyframes ml-modal-pop {
1071
+ from {
1072
+ opacity: 0;
1073
+ transform: translateY(6px) scale(0.98);
1074
+ }
1075
+ to {
1076
+ opacity: 1;
1077
+ transform: translateY(0) scale(1);
1078
+ }
1079
+ }
1080
+ .animate-modal-pop {
1081
+ animation: ml-modal-pop 160ms cubic-bezier(0.22,1,0.36,1) both;
1082
+ }
1083
+ @keyframes pulse {
1084
+ 50% {
1085
+ opacity: .5;
1086
+ }
1087
+ }
1088
+ .animate-pulse {
1089
+ animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
1090
+ }
1091
+ @keyframes spin {
1092
+ to {
1093
+ transform: rotate(360deg);
1094
+ }
1095
+ }
1096
+ .animate-spin {
1097
+ animation: spin 1s linear infinite;
1098
+ }
1099
+ .cursor-not-allowed {
1100
+ cursor: not-allowed;
1101
+ }
1102
+ .cursor-pointer {
1103
+ cursor: pointer;
1104
+ }
1105
+ .select-none {
1106
+ -webkit-user-select: none;
1107
+ -moz-user-select: none;
1108
+ user-select: none;
1109
+ }
1110
+ .resize-y {
1111
+ resize: vertical;
1112
+ }
1113
+ .resize {
1114
+ resize: both;
1115
+ }
1116
+ .grid-cols-1 {
1117
+ grid-template-columns: repeat(1, minmax(0, 1fr));
1118
+ }
1119
+ .grid-rows-\[0fr\] {
1120
+ grid-template-rows: 0fr;
1121
+ }
1122
+ .grid-rows-\[1fr\] {
1123
+ grid-template-rows: 1fr;
1124
+ }
1125
+ .flex-col {
1126
+ flex-direction: column;
1127
+ }
1128
+ .flex-col-reverse {
1129
+ flex-direction: column-reverse;
1130
+ }
1131
+ .flex-wrap {
1132
+ flex-wrap: wrap;
1133
+ }
1134
+ .items-end {
1135
+ align-items: flex-end;
1136
+ }
1137
+ .items-center {
1138
+ align-items: center;
1139
+ }
1140
+ .justify-end {
1141
+ justify-content: flex-end;
1142
+ }
1143
+ .justify-center {
1144
+ justify-content: center;
1145
+ }
1146
+ .justify-between {
1147
+ justify-content: space-between;
1148
+ }
1149
+ .gap-1 {
1150
+ gap: 0.25rem;
1151
+ }
1152
+ .gap-2 {
1153
+ gap: 0.5rem;
1154
+ }
1155
+ .gap-3 {
1156
+ gap: 0.75rem;
1157
+ }
1158
+ .gap-4 {
1159
+ gap: 1rem;
1160
+ }
1161
+ .space-y-1 > :not([hidden]) ~ :not([hidden]) {
1162
+ --tw-space-y-reverse: 0;
1163
+ margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
1164
+ margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
1165
+ }
1166
+ .space-y-2 > :not([hidden]) ~ :not([hidden]) {
1167
+ --tw-space-y-reverse: 0;
1168
+ margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
1169
+ margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
1170
+ }
1171
+ .space-y-3 > :not([hidden]) ~ :not([hidden]) {
1172
+ --tw-space-y-reverse: 0;
1173
+ margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
1174
+ margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
1175
+ }
1176
+ .space-y-4 > :not([hidden]) ~ :not([hidden]) {
1177
+ --tw-space-y-reverse: 0;
1178
+ margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
1179
+ margin-bottom: calc(1rem * var(--tw-space-y-reverse));
1180
+ }
1181
+ .space-y-6 > :not([hidden]) ~ :not([hidden]) {
1182
+ --tw-space-y-reverse: 0;
1183
+ margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
1184
+ margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
1185
+ }
1186
+ .overflow-hidden {
1187
+ overflow: hidden;
1188
+ }
1189
+ .overflow-y-auto {
1190
+ overflow-y: auto;
1191
+ }
1192
+ .rounded-full {
1193
+ border-radius: 9999px;
1194
+ }
1195
+ .rounded-lg {
1196
+ border-radius: 0.5rem;
1197
+ }
1198
+ .rounded-xl {
1199
+ border-radius: 0.75rem;
1200
+ }
1201
+ .rounded-t-3xl {
1202
+ border-top-left-radius: 1.5rem;
1203
+ border-top-right-radius: 1.5rem;
1204
+ }
1205
+ .border {
1206
+ border-width: 1px;
1207
+ }
1208
+ .border-2 {
1209
+ border-width: 2px;
1210
+ }
1211
+ .border-b {
1212
+ border-bottom-width: 1px;
1213
+ }
1214
+ .border-white\/10 {
1215
+ border-color: rgb(255 255 255 / 0.1);
1216
+ }
1217
+ .border-white\/15 {
1218
+ border-color: rgb(255 255 255 / 0.15);
1219
+ }
1220
+ .border-white\/30 {
1221
+ border-color: rgb(255 255 255 / 0.3);
1222
+ }
1223
+ .border-t-primary {
1224
+ border-top-color: var(--ml-primary);
1225
+ }
1226
+ .border-t-white {
1227
+ --tw-border-opacity: 1;
1228
+ border-top-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
1229
+ }
1230
+ .bg-\[\#0f0f18\]\/80 {
1231
+ background-color: rgb(15 15 24 / 0.8);
1232
+ }
1233
+ .bg-amber-500\/15 {
1234
+ background-color: rgb(245 158 11 / 0.15);
1235
+ }
1236
+ .bg-amber-600 {
1237
+ --tw-bg-opacity: 1;
1238
+ background-color: rgb(217 119 6 / var(--tw-bg-opacity, 1));
1239
+ }
1240
+ .bg-black\/25 {
1241
+ background-color: rgb(0 0 0 / 0.25);
1242
+ }
1243
+ .bg-emerald-500\/15 {
1244
+ background-color: rgb(16 185 129 / 0.15);
1245
+ }
1246
+ .bg-emerald-600 {
1247
+ --tw-bg-opacity: 1;
1248
+ background-color: rgb(5 150 105 / var(--tw-bg-opacity, 1));
1249
+ }
1250
+ .bg-gray-900 {
1251
+ --tw-bg-opacity: 1;
1252
+ background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));
1253
+ }
1254
+ .bg-indigo-500\/\[0\.10\] {
1255
+ background-color: rgb(99 102 241 / 0.10);
1256
+ }
1257
+ .bg-primary {
1258
+ background-color: var(--ml-primary);
1259
+ }
1260
+ .bg-purple-500\/\[0\.12\] {
1261
+ background-color: rgb(168 85 247 / 0.12);
1262
+ }
1263
+ .bg-rose-500\/15 {
1264
+ background-color: rgb(244 63 94 / 0.15);
1265
+ }
1266
+ .bg-rose-600 {
1267
+ --tw-bg-opacity: 1;
1268
+ background-color: rgb(225 29 72 / var(--tw-bg-opacity, 1));
1269
+ }
1270
+ .bg-surface {
1271
+ background-color: var(--ml-bg);
1272
+ }
1273
+ .bg-surface-300 {
1274
+ background-color: var(--ml-surface-300);
1275
+ }
1276
+ .bg-violet-600 {
1277
+ --tw-bg-opacity: 1;
1278
+ background-color: rgb(124 58 237 / var(--tw-bg-opacity, 1));
1279
+ }
1280
+ .bg-violet-600\/20 {
1281
+ background-color: rgb(124 58 237 / 0.2);
1282
+ }
1283
+ .bg-white {
1284
+ --tw-bg-opacity: 1;
1285
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
1286
+ }
1287
+ .bg-white\/10 {
1288
+ background-color: rgb(255 255 255 / 0.1);
1289
+ }
1290
+ .bg-white\/5 {
1291
+ background-color: rgb(255 255 255 / 0.05);
1292
+ }
1293
+ .bg-gradient-to-r {
1294
+ background-image: linear-gradient(to right, var(--tw-gradient-stops));
1295
+ }
1296
+ .from-violet-600 {
1297
+ --tw-gradient-from: #7c3aed var(--tw-gradient-from-position);
1298
+ --tw-gradient-to: rgb(124 58 237 / 0) var(--tw-gradient-to-position);
1299
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
1300
+ }
1301
+ .to-purple-600 {
1302
+ --tw-gradient-to: #9333ea var(--tw-gradient-to-position);
1303
+ }
1304
+ .p-1\.5 {
1305
+ padding: 0.375rem;
1306
+ }
1307
+ .p-2 {
1308
+ padding: 0.5rem;
1309
+ }
1310
+ .p-2\.5 {
1311
+ padding: 0.625rem;
1312
+ }
1313
+ .p-4 {
1314
+ padding: 1rem;
1315
+ }
1316
+ .p-6 {
1317
+ padding: 1.5rem;
1318
+ }
1319
+ .px-2 {
1320
+ padding-left: 0.5rem;
1321
+ padding-right: 0.5rem;
1322
+ }
1323
+ .px-2\.5 {
1324
+ padding-left: 0.625rem;
1325
+ padding-right: 0.625rem;
1326
+ }
1327
+ .px-3 {
1328
+ padding-left: 0.75rem;
1329
+ padding-right: 0.75rem;
1330
+ }
1331
+ .px-3\.5 {
1332
+ padding-left: 0.875rem;
1333
+ padding-right: 0.875rem;
1334
+ }
1335
+ .px-4 {
1336
+ padding-left: 1rem;
1337
+ padding-right: 1rem;
1338
+ }
1339
+ .px-6 {
1340
+ padding-left: 1.5rem;
1341
+ padding-right: 1.5rem;
1342
+ }
1343
+ .py-0\.5 {
1344
+ padding-top: 0.125rem;
1345
+ padding-bottom: 0.125rem;
1346
+ }
1347
+ .py-1 {
1348
+ padding-top: 0.25rem;
1349
+ padding-bottom: 0.25rem;
1350
+ }
1351
+ .py-1\.5 {
1352
+ padding-top: 0.375rem;
1353
+ padding-bottom: 0.375rem;
1354
+ }
1355
+ .py-12 {
1356
+ padding-top: 3rem;
1357
+ padding-bottom: 3rem;
1358
+ }
1359
+ .py-2 {
1360
+ padding-top: 0.5rem;
1361
+ padding-bottom: 0.5rem;
1362
+ }
1363
+ .py-2\.5 {
1364
+ padding-top: 0.625rem;
1365
+ padding-bottom: 0.625rem;
1366
+ }
1367
+ .py-3 {
1368
+ padding-top: 0.75rem;
1369
+ padding-bottom: 0.75rem;
1370
+ }
1371
+ .py-8 {
1372
+ padding-top: 2rem;
1373
+ padding-bottom: 2rem;
1374
+ }
1375
+ .pb-3 {
1376
+ padding-bottom: 0.75rem;
1377
+ }
1378
+ .pt-16 {
1379
+ padding-top: 4rem;
1380
+ }
1381
+ .text-left {
1382
+ text-align: left;
1383
+ }
1384
+ .text-center {
1385
+ text-align: center;
1386
+ }
1387
+ .text-2xl {
1388
+ font-size: 1.5rem;
1389
+ line-height: 2rem;
1390
+ }
1391
+ .text-3xl {
1392
+ font-size: 1.875rem;
1393
+ line-height: 2.25rem;
1394
+ }
1395
+ .text-base {
1396
+ font-size: 1rem;
1397
+ line-height: 1.5rem;
1398
+ }
1399
+ .text-lg {
1400
+ font-size: 1.125rem;
1401
+ line-height: 1.75rem;
1402
+ }
1403
+ .text-sm {
1404
+ font-size: 0.875rem;
1405
+ line-height: 1.25rem;
1406
+ }
1407
+ .text-xl {
1408
+ font-size: 1.25rem;
1409
+ line-height: 1.75rem;
1410
+ }
1411
+ .text-xs {
1412
+ font-size: 0.75rem;
1413
+ line-height: 1rem;
1414
+ }
1415
+ .font-bold {
1416
+ font-weight: 700;
1417
+ }
1418
+ .font-medium {
1419
+ font-weight: 500;
1420
+ }
1421
+ .font-semibold {
1422
+ font-weight: 600;
1423
+ }
1424
+ .leading-none {
1425
+ line-height: 1;
1426
+ }
1427
+ .leading-snug {
1428
+ line-height: 1.375;
1429
+ }
1430
+ .tracking-tight {
1431
+ letter-spacing: -0.025em;
1432
+ }
1433
+ .text-accent-light {
1434
+ color: var(--ml-accent-light);
1435
+ }
1436
+ .text-amber-400 {
1437
+ --tw-text-opacity: 1;
1438
+ color: rgb(251 191 36 / var(--tw-text-opacity, 1));
1439
+ }
1440
+ .text-emerald-400 {
1441
+ --tw-text-opacity: 1;
1442
+ color: rgb(52 211 153 / var(--tw-text-opacity, 1));
1443
+ }
1444
+ .text-primary {
1445
+ color: var(--ml-primary);
1446
+ }
1447
+ .text-rose-400 {
1448
+ --tw-text-opacity: 1;
1449
+ color: rgb(251 113 133 / var(--tw-text-opacity, 1));
1450
+ }
1451
+ .text-white {
1452
+ --tw-text-opacity: 1;
1453
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1454
+ }
1455
+ .text-white\/40 {
1456
+ color: rgb(255 255 255 / 0.4);
1457
+ }
1458
+ .text-white\/50 {
1459
+ color: rgb(255 255 255 / 0.5);
1460
+ }
1461
+ .text-white\/60 {
1462
+ color: rgb(255 255 255 / 0.6);
1463
+ }
1464
+ .text-white\/70 {
1465
+ color: rgb(255 255 255 / 0.7);
1466
+ }
1467
+ .text-white\/90 {
1468
+ color: rgb(255 255 255 / 0.9);
1469
+ }
1470
+ .placeholder-white\/30::-moz-placeholder {
1471
+ color: rgb(255 255 255 / 0.3);
1472
+ }
1473
+ .placeholder-white\/30::placeholder {
1474
+ color: rgb(255 255 255 / 0.3);
1475
+ }
1476
+ .opacity-10 {
1477
+ opacity: 0.1;
1478
+ }
1479
+ .opacity-15 {
1480
+ opacity: 0.15;
1481
+ }
1482
+ .opacity-50 {
1483
+ opacity: 0.5;
1484
+ }
1485
+ .shadow {
1486
+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
1487
+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
1488
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1489
+ }
1490
+ .shadow-\[0_0_25px_rgba\(139\2c 92\2c 246\2c 0\.35\)\] {
1491
+ --tw-shadow: 0 0 25px rgba(139,92,246,0.35);
1492
+ --tw-shadow-colored: 0 0 25px var(--tw-shadow-color);
1493
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1494
+ }
1495
+ .shadow-\[0_10px_18px_rgba\(16\2c 185\2c 129\2c 0\.22\)\] {
1496
+ --tw-shadow: 0 10px 18px rgba(16,185,129,0.22);
1497
+ --tw-shadow-colored: 0 10px 18px var(--tw-shadow-color);
1498
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1499
+ }
1500
+ .shadow-\[0_10px_18px_rgba\(244\2c 63\2c 94\2c 0\.22\)\] {
1501
+ --tw-shadow: 0 10px 18px rgba(244,63,94,0.22);
1502
+ --tw-shadow-colored: 0 10px 18px var(--tw-shadow-color);
1503
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1504
+ }
1505
+ .shadow-\[0_10px_18px_rgba\(245\2c 158\2c 11\2c 0\.22\)\] {
1506
+ --tw-shadow: 0 10px 18px rgba(245,158,11,0.22);
1507
+ --tw-shadow-colored: 0 10px 18px var(--tw-shadow-color);
1508
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1509
+ }
1510
+ .shadow-glow {
1511
+ --tw-shadow: var(--ml-shadow-glow);
1512
+ --tw-shadow-colored: var(--ml-shadow-glow);
1513
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1514
+ }
1515
+ .shadow-sm {
1516
+ --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
1517
+ --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
1518
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1519
+ }
1520
+ .shadow-xl {
1521
+ --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
1522
+ --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
1523
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1524
+ }
1525
+ .outline-none {
1526
+ outline: 2px solid transparent;
1527
+ outline-offset: 2px;
1528
+ }
1529
+ .ring {
1530
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1531
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1532
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1533
+ }
1534
+ .ring-0 {
1535
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1536
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1537
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1538
+ }
1539
+ .ring-1 {
1540
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1541
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1542
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1543
+ }
1544
+ .ring-2 {
1545
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1546
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1547
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1548
+ }
1549
+ .ring-amber-500\/20 {
1550
+ --tw-ring-color: rgb(245 158 11 / 0.2);
1551
+ }
1552
+ .ring-emerald-500\/20 {
1553
+ --tw-ring-color: rgb(16 185 129 / 0.2);
1554
+ }
1555
+ .ring-rose-500\/20 {
1556
+ --tw-ring-color: rgb(244 63 94 / 0.2);
1557
+ }
1558
+ .ring-rose-500\/40 {
1559
+ --tw-ring-color: rgb(244 63 94 / 0.4);
1560
+ }
1561
+ .ring-white\/10 {
1562
+ --tw-ring-color: rgb(255 255 255 / 0.1);
1563
+ }
1564
+ .blur {
1565
+ --tw-blur: blur(8px);
1566
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1567
+ }
1568
+ .blur-\[120px\] {
1569
+ --tw-blur: blur(120px);
1570
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1571
+ }
1572
+ .blur-\[140px\] {
1573
+ --tw-blur: blur(140px);
1574
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1575
+ }
1576
+ .filter {
1577
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1578
+ }
1579
+ .backdrop-blur-md {
1580
+ --tw-backdrop-blur: blur(12px);
1581
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
1582
+ }
1583
+ .backdrop-blur-sm {
1584
+ --tw-backdrop-blur: blur(4px);
1585
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
1586
+ }
1587
+ .transition {
1588
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
1589
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1590
+ transition-duration: 150ms;
1591
+ }
1592
+ .transition-\[grid-template-rows\] {
1593
+ transition-property: grid-template-rows;
1594
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1595
+ transition-duration: 150ms;
1596
+ }
1597
+ .transition-\[transform\2c background-color\2c box-shadow\2c opacity\] {
1598
+ transition-property: transform,background-color,box-shadow,opacity;
1599
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1600
+ transition-duration: 150ms;
1601
+ }
1602
+ .transition-\[width\] {
1603
+ transition-property: width;
1604
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1605
+ transition-duration: 150ms;
1606
+ }
1607
+ .transition-colors {
1608
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
1609
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1610
+ transition-duration: 150ms;
1611
+ }
1612
+ .transition-shadow {
1613
+ transition-property: box-shadow;
1614
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1615
+ transition-duration: 150ms;
1616
+ }
1617
+ .transition-transform {
1618
+ transition-property: transform;
1619
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1620
+ transition-duration: 150ms;
1621
+ }
1622
+ .duration-200 {
1623
+ transition-duration: 200ms;
1624
+ }
1625
+ .ease-in-out {
1626
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1627
+ }
1628
+ .ease-out {
1629
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
1630
+ }
1631
+ .\[-webkit-tap-highlight-color\:transparent\] {
1632
+ -webkit-tap-highlight-color: transparent;
1633
+ }
1634
+ .hover\:scale-\[1\.02\]:hover {
1635
+ --tw-scale-x: 1.02;
1636
+ --tw-scale-y: 1.02;
1637
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1638
+ }
1639
+ .hover\:bg-amber-700:hover {
1640
+ --tw-bg-opacity: 1;
1641
+ background-color: rgb(180 83 9 / var(--tw-bg-opacity, 1));
1642
+ }
1643
+ .hover\:bg-emerald-700:hover {
1644
+ --tw-bg-opacity: 1;
1645
+ background-color: rgb(4 120 87 / var(--tw-bg-opacity, 1));
1646
+ }
1647
+ .hover\:bg-rose-700:hover {
1648
+ --tw-bg-opacity: 1;
1649
+ background-color: rgb(190 18 60 / var(--tw-bg-opacity, 1));
1650
+ }
1651
+ .hover\:bg-white\/10:hover {
1652
+ background-color: rgb(255 255 255 / 0.1);
1653
+ }
1654
+ .hover\:bg-white\/15:hover {
1655
+ background-color: rgb(255 255 255 / 0.15);
1656
+ }
1657
+ .hover\:bg-white\/5:hover {
1658
+ background-color: rgb(255 255 255 / 0.05);
1659
+ }
1660
+ .hover\:bg-white\/\[0\.03\]:hover {
1661
+ background-color: rgb(255 255 255 / 0.03);
1662
+ }
1663
+ .hover\:text-white:hover {
1664
+ --tw-text-opacity: 1;
1665
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1666
+ }
1667
+ .hover\:shadow-\[0_0_35px_rgba\(139\2c 92\2c 246\2c 0\.5\)\]:hover {
1668
+ --tw-shadow: 0 0 35px rgba(139,92,246,0.5);
1669
+ --tw-shadow-colored: 0 0 35px var(--tw-shadow-color);
1670
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1671
+ }
1672
+ .hover\:ring-white\/20:hover {
1673
+ --tw-ring-color: rgb(255 255 255 / 0.2);
1674
+ }
1675
+ .hover\:brightness-\[0\.98\]:hover {
1676
+ --tw-brightness: brightness(0.98);
1677
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1678
+ }
1679
+ .focus\:outline-none:focus {
1680
+ outline: 2px solid transparent;
1681
+ outline-offset: 2px;
1682
+ }
1683
+ .focus\:ring-2:focus {
1684
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1685
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1686
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1687
+ }
1688
+ .focus\:ring-rose-500\/40:focus {
1689
+ --tw-ring-color: rgb(244 63 94 / 0.4);
1690
+ }
1691
+ .focus-visible\:ring-2:focus-visible {
1692
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1693
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1694
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1695
+ }
1696
+ .focus-visible\:ring-primary:focus-visible {
1697
+ --tw-ring-color: var(--ml-primary);
1698
+ }
1699
+ .focus-visible\:ring-offset-2:focus-visible {
1700
+ --tw-ring-offset-width: 2px;
1701
+ }
1702
+ .focus-visible\:ring-offset-surface:focus-visible {
1703
+ --tw-ring-offset-color: var(--ml-bg);
1704
+ }
1705
+ .focus-visible\:ring-offset-transparent:focus-visible {
1706
+ --tw-ring-offset-color: transparent;
1707
+ }
1708
+ .active\:translate-y-\[0\.5px\]:active {
1709
+ --tw-translate-y: 0.5px;
1710
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1711
+ }
1712
+ .disabled\:pointer-events-none:disabled {
1713
+ pointer-events: none;
1714
+ }
1715
+ .disabled\:opacity-60:disabled {
1716
+ opacity: 0.6;
1717
+ }
1718
+ @media (min-width: 640px) {
1719
+ .sm\:mb-4 {
1720
+ margin-bottom: 1rem;
1721
+ }
1722
+ .sm\:mb-6 {
1723
+ margin-bottom: 1.5rem;
1724
+ }
1725
+ .sm\:w-auto {
1726
+ width: auto;
1727
+ }
1728
+ .sm\:flex-row {
1729
+ flex-direction: row;
1730
+ }
1731
+ .sm\:items-center {
1732
+ align-items: center;
1733
+ }
1734
+ .sm\:justify-end {
1735
+ justify-content: flex-end;
1736
+ }
1737
+ .sm\:rounded-2xl {
1738
+ border-radius: 1rem;
1739
+ }
1740
+ .sm\:p-6 {
1741
+ padding: 1.5rem;
1742
+ }
1743
+ .sm\:px-6 {
1744
+ padding-left: 1.5rem;
1745
+ padding-right: 1.5rem;
1746
+ }
1747
+ .sm\:py-2\.5 {
1748
+ padding-top: 0.625rem;
1749
+ padding-bottom: 0.625rem;
1750
+ }
1751
+ .sm\:text-2xl {
1752
+ font-size: 1.5rem;
1753
+ line-height: 2rem;
1754
+ }
1755
+ }
1756
+ @media (min-width: 768px) {
1757
+ .md\:grid-cols-2 {
1758
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1759
+ }
1760
+ }
1761
+ @media (min-width: 1024px) {
1762
+ .lg\:px-8 {
1763
+ padding-left: 2rem;
1764
+ padding-right: 2rem;
1765
+ }
1766
+ }