@casoon/atlas-styles 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/glass.css ADDED
@@ -0,0 +1,1208 @@
1
+ /*!
2
+ * CASOON Atlas Glass - Complete Glassmorphism System for Tailwind v4
3
+ * Version: 0.0.1
4
+ * Repository: https://github.com/casoon/atlas
5
+ * Author: Jörn Seidel (joern.seidel@casoon.de)
6
+ * License: MIT
7
+ *
8
+ * Advanced glassmorphism effects with backdrop-filter support
9
+ * Part of CASOON Atlas UI effects library
10
+ *
11
+ * Usage: @import "@casoon/atlas-styles/glass";
12
+ * Package: @casoon/atlas-styles
13
+ */
14
+
15
+ /* Note: @import "tailwindcss"; should be added by the consumer */
16
+
17
+ /*!
18
+ * CASOON Atlas Glass - Complete Glassmorphism System for Tailwind v4
19
+ * Pure Glass Effects & Glass Cards
20
+ *
21
+ * Features:
22
+ * - Glass Backdrop Filter Effects
23
+ * - Glass Background & Border Utilities
24
+ * - Glass Cards (with backdrop-filter)
25
+ * - Glass UI Components (buttons, nav, etc.)
26
+ * - Glass Animation Effects
27
+ * - SSR-safe, tree-shakeable, framework-agnostic
28
+ */
29
+
30
+ /* Note: @import "tailwindcss"; should be added by the consumer */
31
+
32
+ /* =========================================================
33
+ GLASS DESIGN TOKENS & THEME
34
+ ========================================================= */
35
+ @theme {
36
+ /* === GLASS COLOR SYSTEM === */
37
+ --cs-glass-white: #ffffff;
38
+ --cs-glass-black: #000000;
39
+ --cs-glass-blue: #3b82f6;
40
+ --cs-glass-purple: #9333ea;
41
+ --cs-glass-green: #22c55e;
42
+ --cs-glass-pink: #ec4899;
43
+ --cs-glass-amber: #f59e0b;
44
+
45
+ /* Glass background opacity tokens - Complete range */
46
+ --cs-glass-bg-xs: rgba(255, 255, 255, 0.02);
47
+ --cs-glass-bg-sm: rgba(255, 255, 255, 0.07);
48
+ --cs-glass-bg-light: rgba(255, 255, 255, 0.1);
49
+ --cs-glass-bg-weak: rgba(255, 255, 255, 0.05);
50
+ --cs-glass-bg-md: rgba(255, 255, 255, 0.12);
51
+ --cs-glass-bg-medium: rgba(255, 255, 255, 0.15);
52
+ --cs-glass-bg-lg: rgba(255, 255, 255, 0.18);
53
+ --cs-glass-bg-strong: rgba(255, 255, 255, 0.2);
54
+ --cs-glass-bg-xl: rgba(255, 255, 255, 0.25);
55
+ --cs-glass-bg-2xl: rgba(255, 255, 255, 0.35);
56
+ --cs-glass-bg-3xl: rgba(255, 255, 255, 0.45);
57
+ --cs-glass-bg-4xl: rgba(255, 255, 255, 0.6);
58
+ --cs-glass-bg-5xl: rgba(255, 255, 255, 0.75);
59
+
60
+ /* Dark glass backgrounds - Complete range */
61
+ --cs-glass-bg-dark: rgba(0, 0, 0, 0.1);
62
+ --cs-glass-bg-dark-xs: rgba(0, 0, 0, 0.02);
63
+ --cs-glass-bg-dark-sm: rgba(0, 0, 0, 0.07);
64
+ --cs-glass-bg-dark-md: rgba(0, 0, 0, 0.12);
65
+ --cs-glass-bg-dark-lg: rgba(0, 0, 0, 0.18);
66
+ --cs-glass-bg-dark-strong: rgba(0, 0, 0, 0.2);
67
+ --cs-glass-bg-dark-xl: rgba(0, 0, 0, 0.25);
68
+ --cs-glass-bg-dark-2xl: rgba(0, 0, 0, 0.35);
69
+ --cs-glass-bg-dark-3xl: rgba(0, 0, 0, 0.45);
70
+ --cs-glass-bg-dark-4xl: rgba(0, 0, 0, 0.6);
71
+ --cs-glass-bg-dark-5xl: rgba(0, 0, 0, 0.75);
72
+
73
+ /* Colored glass backgrounds */
74
+ --cs-glass-bg-blue: rgba(59, 130, 246, 0.1);
75
+ --cs-glass-bg-purple: rgba(147, 51, 234, 0.1);
76
+ --cs-glass-bg-green: rgba(34, 197, 94, 0.1);
77
+ --cs-glass-bg-pink: rgba(236, 72, 153, 0.1);
78
+ --cs-glass-bg-amber: rgba(245, 158, 11, 0.1);
79
+
80
+ /* Glass border opacity tokens - Complete range */
81
+ --cs-glass-border-xs: rgba(255, 255, 255, 0.05);
82
+ --cs-glass-border-sm: rgba(255, 255, 255, 0.08);
83
+ --cs-glass-border-light: rgba(255, 255, 255, 0.1);
84
+ --cs-glass-border-md: rgba(255, 255, 255, 0.15);
85
+ --cs-glass-border-medium: rgba(255, 255, 255, 0.2);
86
+ --cs-glass-border-lg: rgba(255, 255, 255, 0.25);
87
+ --cs-glass-border-strong: rgba(255, 255, 255, 0.3);
88
+ --cs-glass-border-xl: rgba(255, 255, 255, 0.4);
89
+ --cs-glass-border-2xl: rgba(255, 255, 255, 0.5);
90
+ --cs-glass-border-3xl: rgba(255, 255, 255, 0.65);
91
+
92
+ /* Colored glass borders */
93
+ --cs-glass-border-blue: rgba(59, 130, 246, 0.2);
94
+ --cs-glass-border-purple: rgba(147, 51, 234, 0.2);
95
+ --cs-glass-border-green: rgba(34, 197, 94, 0.2);
96
+ --cs-glass-border-pink: rgba(236, 72, 153, 0.2);
97
+ --cs-glass-border-amber: rgba(245, 158, 11, 0.2);
98
+
99
+ /* Glass effects tokens */
100
+ --cs-glass-blur-sm: blur(8px);
101
+ --cs-glass-blur: blur(16px);
102
+ --cs-glass-blur-lg: blur(24px);
103
+ --cs-glass-blur-xl: blur(32px);
104
+
105
+ --cs-glass-radius-sm: 0.25rem;
106
+ --cs-glass-radius: 0.5rem;
107
+ --cs-glass-radius-lg: 0.75rem;
108
+ --cs-glass-radius-xl: 1rem;
109
+ --cs-glass-radius-2xl: 1.5rem;
110
+ --cs-glass-radius-3xl: 2rem;
111
+
112
+ /* Glass shadow tokens */
113
+ --cs-glass-shadow-light: rgba(0, 0, 0, 0.05);
114
+ --cs-glass-shadow-medium: rgba(0, 0, 0, 0.1);
115
+ --cs-glass-shadow-strong: rgba(0, 0, 0, 0.15);
116
+ --cs-glass-shadow-xl: rgba(0, 0, 0, 0.2);
117
+
118
+ --cs-glass-shadow-sm-def: 0 1px 2px var(--cs-glass-shadow-light);
119
+ --cs-glass-shadow-def: 0 8px 32px var(--cs-glass-shadow-medium);
120
+ --cs-glass-shadow-lg-def: 0 20px 40px var(--cs-glass-shadow-strong);
121
+ --cs-glass-shadow-xl-def: 0 25px 50px var(--cs-glass-shadow-xl);
122
+
123
+ /* Glass misc tokens */
124
+ --cs-glass-transition: 0.3s;
125
+ --cs-glass-tooltip-bg: rgba(0, 0, 0, 0.8);
126
+ --cs-glass-bg-hover: rgba(255, 255, 255, 0.15);
127
+ --cs-glass-bg-light-hover: rgba(255, 255, 255, 0.25);
128
+ --cs-glass-bg-contrast: rgba(255, 255, 255, 0.2);
129
+ --cs-glass-bg-dark-contrast: rgba(0, 0, 0, 0.2);
130
+ --cs-glass-bg-fallback: rgba(255, 255, 255, 0.25);
131
+ --cs-glass-bg-dark-fallback: rgba(0, 0, 0, 0.25);
132
+ --cs-glass-bg-blue-fallback: rgba(59, 130, 246, 0.2);
133
+ --cs-glass-bg-purple-fallback: rgba(147, 51, 234, 0.2);
134
+ --cs-glass-bg-green-fallback: rgba(34, 197, 94, 0.2);
135
+ --cs-glass-bg-pink-fallback: rgba(236, 72, 153, 0.2);
136
+ --cs-glass-bg-amber-fallback: rgba(245, 158, 11, 0.2);
137
+ --cs-glass-focus-ring: rgba(59, 130, 246, 0.5);
138
+ --cs-glass-backdrop-filter-extra: none;
139
+ }
140
+
141
+ /* =========================================================
142
+ CORE GLASS UTILITIES
143
+ Base glass backdrop-filter utilities
144
+ ========================================================= */
145
+
146
+ /* Primary glass utility */
147
+ @utility cs-glass {
148
+ background: var(--cs-glass-bg-light);
149
+ border: 1px solid var(--cs-glass-border-medium);
150
+ border-radius: var(--cs-glass-radius-lg);
151
+ backdrop-filter: var(--cs-glass-blur);
152
+ -webkit-backdrop-filter: var(--cs-glass-blur);
153
+ transition: all var(--cs-glass-transition) ease;
154
+ }
155
+
156
+ /* Glass size variants - all intensity levels */
157
+ @utility cs-glass-xs {
158
+ background: var(--cs-glass-bg-xs);
159
+ border: 1px solid var(--cs-glass-border-xs);
160
+ border-radius: var(--cs-glass-radius-sm);
161
+ backdrop-filter: var(--cs-glass-blur-sm);
162
+ -webkit-backdrop-filter: var(--cs-glass-blur-sm);
163
+ transition: all var(--cs-glass-transition) ease;
164
+ }
165
+
166
+ @utility cs-glass-sm {
167
+ background: var(--cs-glass-bg-sm);
168
+ border: 1px solid var(--cs-glass-border-sm);
169
+ border-radius: var(--cs-glass-radius-sm);
170
+ backdrop-filter: var(--cs-glass-blur-sm);
171
+ -webkit-backdrop-filter: var(--cs-glass-blur-sm);
172
+ transition: all var(--cs-glass-transition) ease;
173
+ }
174
+
175
+ @utility cs-glass-md {
176
+ background: var(--cs-glass-bg-md);
177
+ border: 1px solid var(--cs-glass-border-md);
178
+ border-radius: var(--cs-glass-radius);
179
+ backdrop-filter: var(--cs-glass-blur);
180
+ -webkit-backdrop-filter: var(--cs-glass-blur);
181
+ transition: all var(--cs-glass-transition) ease;
182
+ }
183
+
184
+ @utility cs-glass-lg {
185
+ background: var(--cs-glass-bg-lg);
186
+ border: 1px solid var(--cs-glass-border-lg);
187
+ border-radius: var(--cs-glass-radius-lg);
188
+ backdrop-filter: var(--cs-glass-blur);
189
+ -webkit-backdrop-filter: var(--cs-glass-blur);
190
+ transition: all var(--cs-glass-transition) ease;
191
+ }
192
+
193
+ @utility cs-glass-xl {
194
+ background: var(--cs-glass-bg-xl);
195
+ border: 1px solid var(--cs-glass-border-xl);
196
+ border-radius: var(--cs-glass-radius-xl);
197
+ backdrop-filter: var(--cs-glass-blur-lg);
198
+ -webkit-backdrop-filter: var(--cs-glass-blur-lg);
199
+ transition: all var(--cs-glass-transition) ease;
200
+ }
201
+
202
+ @utility cs-glass-2xl {
203
+ background: var(--cs-glass-bg-2xl);
204
+ border: 1px solid var(--cs-glass-border-2xl);
205
+ border-radius: var(--cs-glass-radius-2xl);
206
+ backdrop-filter: var(--cs-glass-blur-lg);
207
+ -webkit-backdrop-filter: var(--cs-glass-blur-lg);
208
+ transition: all var(--cs-glass-transition) ease;
209
+ }
210
+
211
+ @utility cs-glass-3xl {
212
+ background: var(--cs-glass-bg-3xl);
213
+ border: 1px solid var(--cs-glass-border-3xl);
214
+ border-radius: var(--cs-glass-radius-3xl);
215
+ backdrop-filter: var(--cs-glass-blur-xl);
216
+ -webkit-backdrop-filter: var(--cs-glass-blur-xl);
217
+ transition: all var(--cs-glass-transition) ease;
218
+ }
219
+
220
+ @utility cs-glass-4xl {
221
+ background: var(--cs-glass-bg-4xl);
222
+ border: 2px solid var(--cs-glass-border-3xl);
223
+ border-radius: var(--cs-glass-radius-3xl);
224
+ backdrop-filter: var(--cs-glass-blur-xl);
225
+ -webkit-backdrop-filter: var(--cs-glass-blur-xl);
226
+ transition: all var(--cs-glass-transition) ease;
227
+ }
228
+
229
+ @utility cs-glass-5xl {
230
+ background: var(--cs-glass-bg-5xl);
231
+ border: 2px solid var(--cs-glass-border-3xl);
232
+ border-radius: var(--cs-glass-radius-3xl);
233
+ backdrop-filter: var(--cs-glass-blur-xl);
234
+ -webkit-backdrop-filter: var(--cs-glass-blur-xl);
235
+ transition: all var(--cs-glass-transition) ease;
236
+ }
237
+
238
+ /* Dark glass variant */
239
+ @utility cs-glass-dark {
240
+ background: var(--cs-glass-bg-dark);
241
+ border: 1px solid var(--cs-glass-border-medium);
242
+ border-radius: var(--cs-glass-radius-lg);
243
+ backdrop-filter: var(--cs-glass-blur);
244
+ -webkit-backdrop-filter: var(--cs-glass-blur);
245
+ transition: all var(--cs-glass-transition) ease;
246
+ }
247
+
248
+ /* =========================================================
249
+ GLASS BACKGROUND UTILITIES
250
+ Different opacity levels for glass backgrounds
251
+ ========================================================= */
252
+ @utility cs-glass-bg-xs {
253
+ background: var(--cs-glass-bg-xs);
254
+ }
255
+ @utility cs-glass-bg-sm {
256
+ background: var(--cs-glass-bg-sm);
257
+ }
258
+ @utility cs-glass-bg-light {
259
+ background: var(--cs-glass-bg-light);
260
+ }
261
+ @utility cs-glass-bg-weak {
262
+ background: var(--cs-glass-bg-weak);
263
+ }
264
+ @utility cs-glass-bg-md {
265
+ background: var(--cs-glass-bg-md);
266
+ }
267
+ @utility cs-glass-bg-medium {
268
+ background: var(--cs-glass-bg-medium);
269
+ }
270
+ @utility cs-glass-bg-lg {
271
+ background: var(--cs-glass-bg-lg);
272
+ }
273
+ @utility cs-glass-bg-strong {
274
+ background: var(--cs-glass-bg-strong);
275
+ }
276
+ @utility cs-glass-bg-xl {
277
+ background: var(--cs-glass-bg-xl);
278
+ }
279
+ @utility cs-glass-bg-2xl {
280
+ background: var(--cs-glass-bg-2xl);
281
+ }
282
+ @utility cs-glass-bg-3xl {
283
+ background: var(--cs-glass-bg-3xl);
284
+ }
285
+ @utility cs-glass-bg-4xl {
286
+ background: var(--cs-glass-bg-4xl);
287
+ }
288
+ @utility cs-glass-bg-5xl {
289
+ background: var(--cs-glass-bg-5xl);
290
+ }
291
+
292
+ /* Dark glass backgrounds */
293
+ @utility cs-glass-bg-dark {
294
+ background: var(--cs-glass-bg-dark);
295
+ }
296
+ @utility cs-glass-bg-dark-xs {
297
+ background: var(--cs-glass-bg-dark-xs);
298
+ }
299
+ @utility cs-glass-bg-dark-sm {
300
+ background: var(--cs-glass-bg-dark-sm);
301
+ }
302
+ @utility cs-glass-bg-dark-md {
303
+ background: var(--cs-glass-bg-dark-md);
304
+ }
305
+ @utility cs-glass-bg-dark-lg {
306
+ background: var(--cs-glass-bg-dark-lg);
307
+ }
308
+ @utility cs-glass-bg-dark-strong {
309
+ background: var(--cs-glass-bg-dark-strong);
310
+ }
311
+ @utility cs-glass-bg-dark-xl {
312
+ background: var(--cs-glass-bg-dark-xl);
313
+ }
314
+ @utility cs-glass-bg-dark-2xl {
315
+ background: var(--cs-glass-bg-dark-2xl);
316
+ }
317
+ @utility cs-glass-bg-dark-3xl {
318
+ background: var(--cs-glass-bg-dark-3xl);
319
+ }
320
+ @utility cs-glass-bg-dark-4xl {
321
+ background: var(--cs-glass-bg-dark-4xl);
322
+ }
323
+ @utility cs-glass-bg-dark-5xl {
324
+ background: var(--cs-glass-bg-dark-5xl);
325
+ }
326
+
327
+ /* Colored glass backgrounds */
328
+ @utility cs-glass-bg-blue {
329
+ background: var(--cs-glass-bg-blue);
330
+ }
331
+ @utility cs-glass-bg-purple {
332
+ background: var(--cs-glass-bg-purple);
333
+ }
334
+ @utility cs-glass-bg-green {
335
+ background: var(--cs-glass-bg-green);
336
+ }
337
+ @utility cs-glass-bg-pink {
338
+ background: var(--cs-glass-bg-pink);
339
+ }
340
+ @utility cs-glass-bg-amber {
341
+ background: var(--cs-glass-bg-amber);
342
+ }
343
+
344
+ /* =========================================================
345
+ GLASS COLOR UTILITIES
346
+ Complete glass effects with specific color themes
347
+ ========================================================= */
348
+ @utility cs-glass-white {
349
+ background: var(--cs-glass-bg-light);
350
+ border: 1px solid var(--cs-glass-border-medium);
351
+ border-radius: var(--cs-glass-radius-lg);
352
+ backdrop-filter: var(--cs-glass-blur);
353
+ -webkit-backdrop-filter: var(--cs-glass-blur);
354
+ color: var(--cs-glass-black);
355
+ transition: all var(--cs-glass-transition) ease;
356
+ }
357
+
358
+ @utility cs-glass-black {
359
+ background: var(--cs-glass-bg-dark);
360
+ border: 1px solid rgba(255, 255, 255, 0.1);
361
+ border-radius: var(--cs-glass-radius-lg);
362
+ backdrop-filter: var(--cs-glass-blur);
363
+ -webkit-backdrop-filter: var(--cs-glass-blur);
364
+ color: var(--cs-glass-white);
365
+ transition: all var(--cs-glass-transition) ease;
366
+ }
367
+
368
+ @utility cs-glass-blue {
369
+ background: var(--cs-glass-bg-blue);
370
+ border: 1px solid var(--cs-glass-border-blue);
371
+ border-radius: var(--cs-glass-radius-lg);
372
+ backdrop-filter: var(--cs-glass-blur);
373
+ -webkit-backdrop-filter: var(--cs-glass-blur);
374
+ color: var(--cs-glass-blue);
375
+ transition: all var(--cs-glass-transition) ease;
376
+ }
377
+
378
+ @utility cs-glass-purple {
379
+ background: var(--cs-glass-bg-purple);
380
+ border: 1px solid var(--cs-glass-border-purple);
381
+ border-radius: var(--cs-glass-radius-lg);
382
+ backdrop-filter: var(--cs-glass-blur);
383
+ -webkit-backdrop-filter: var(--cs-glass-blur);
384
+ color: var(--cs-glass-purple);
385
+ transition: all var(--cs-glass-transition) ease;
386
+ }
387
+
388
+ @utility cs-glass-green {
389
+ background: var(--cs-glass-bg-green);
390
+ border: 1px solid var(--cs-glass-border-green);
391
+ border-radius: var(--cs-glass-radius-lg);
392
+ backdrop-filter: var(--cs-glass-blur);
393
+ -webkit-backdrop-filter: var(--cs-glass-blur);
394
+ color: var(--cs-glass-green);
395
+ transition: all var(--cs-glass-transition) ease;
396
+ }
397
+
398
+ @utility cs-glass-pink {
399
+ background: var(--cs-glass-bg-pink);
400
+ border: 1px solid var(--cs-glass-border-pink);
401
+ border-radius: var(--cs-glass-radius-lg);
402
+ backdrop-filter: var(--cs-glass-blur);
403
+ -webkit-backdrop-filter: var(--cs-glass-blur);
404
+ color: var(--cs-glass-pink);
405
+ transition: all var(--cs-glass-transition) ease;
406
+ }
407
+
408
+ @utility cs-glass-amber {
409
+ background: var(--cs-glass-bg-amber);
410
+ border: 1px solid var(--cs-glass-border-amber);
411
+ border-radius: var(--cs-glass-radius-lg);
412
+ backdrop-filter: var(--cs-glass-blur);
413
+ -webkit-backdrop-filter: var(--cs-glass-blur);
414
+ color: var(--cs-glass-amber);
415
+ transition: all var(--cs-glass-transition) ease;
416
+ }
417
+
418
+ /* =========================================================
419
+ GLASS BORDER UTILITIES
420
+ ========================================================= */
421
+ @utility cs-glass-border-xs {
422
+ border-color: var(--cs-glass-border-xs);
423
+ }
424
+ @utility cs-glass-border-sm {
425
+ border-color: var(--cs-glass-border-sm);
426
+ }
427
+ @utility cs-glass-border-light {
428
+ border-color: var(--cs-glass-border-light);
429
+ }
430
+ @utility cs-glass-border-md {
431
+ border-color: var(--cs-glass-border-md);
432
+ }
433
+ @utility cs-glass-border-medium {
434
+ border-color: var(--cs-glass-border-medium);
435
+ }
436
+ @utility cs-glass-border-lg {
437
+ border-color: var(--cs-glass-border-lg);
438
+ }
439
+ @utility cs-glass-border-strong {
440
+ border-color: var(--cs-glass-border-strong);
441
+ }
442
+ @utility cs-glass-border-xl {
443
+ border-color: var(--cs-glass-border-xl);
444
+ }
445
+ @utility cs-glass-border-2xl {
446
+ border-color: var(--cs-glass-border-2xl);
447
+ }
448
+ @utility cs-glass-border-3xl {
449
+ border-color: var(--cs-glass-border-3xl);
450
+ }
451
+
452
+ /* Colored glass borders */
453
+ @utility cs-glass-border-blue {
454
+ border-color: var(--cs-glass-border-blue);
455
+ }
456
+ @utility cs-glass-border-purple {
457
+ border-color: var(--cs-glass-border-purple);
458
+ }
459
+ @utility cs-glass-border-green {
460
+ border-color: var(--cs-glass-border-green);
461
+ }
462
+ @utility cs-glass-border-pink {
463
+ border-color: var(--cs-glass-border-pink);
464
+ }
465
+ @utility cs-glass-border-amber {
466
+ border-color: var(--cs-glass-border-amber);
467
+ }
468
+
469
+ /* =========================================================
470
+ GLASS BLUR UTILITIES
471
+ ========================================================= */
472
+ @utility cs-glass-blur-sm {
473
+ backdrop-filter: var(--cs-glass-blur-sm);
474
+ -webkit-backdrop-filter: var(--cs-glass-blur-sm);
475
+ }
476
+
477
+ @utility cs-glass-blur {
478
+ backdrop-filter: var(--cs-glass-blur);
479
+ -webkit-backdrop-filter: var(--cs-glass-blur);
480
+ }
481
+
482
+ @utility cs-glass-blur-lg {
483
+ backdrop-filter: var(--cs-glass-blur-lg);
484
+ -webkit-backdrop-filter: var(--cs-glass-blur-lg);
485
+ }
486
+
487
+ @utility cs-glass-blur-xl {
488
+ backdrop-filter: var(--cs-glass-blur-xl);
489
+ -webkit-backdrop-filter: var(--cs-glass-blur-xl);
490
+ }
491
+
492
+ /* =========================================================
493
+ GLASS RADIUS UTILITIES
494
+ ========================================================= */
495
+ @utility cs-glass-radius-sm {
496
+ border-radius: var(--cs-glass-radius-sm);
497
+ }
498
+ @utility cs-glass-radius {
499
+ border-radius: var(--cs-glass-radius);
500
+ }
501
+ @utility cs-glass-radius-lg {
502
+ border-radius: var(--cs-glass-radius-lg);
503
+ }
504
+ @utility cs-glass-radius-xl {
505
+ border-radius: var(--cs-glass-radius-xl);
506
+ }
507
+ @utility cs-glass-radius-2xl {
508
+ border-radius: var(--cs-glass-radius-2xl);
509
+ }
510
+ @utility cs-glass-radius-3xl {
511
+ border-radius: var(--cs-glass-radius-3xl);
512
+ }
513
+
514
+ /* Glass rounded utilities - aliases for radius utilities */
515
+ @utility cs-glass-rounded {
516
+ border-radius: var(--cs-glass-radius);
517
+ }
518
+ @utility cs-glass-rounded-sm {
519
+ border-radius: var(--cs-glass-radius-sm);
520
+ }
521
+ @utility cs-glass-rounded-lg {
522
+ border-radius: var(--cs-glass-radius-lg);
523
+ }
524
+ @utility cs-glass-rounded-xl {
525
+ border-radius: var(--cs-glass-radius-xl);
526
+ }
527
+ @utility cs-glass-rounded-2xl {
528
+ border-radius: var(--cs-glass-radius-2xl);
529
+ }
530
+ @utility cs-glass-rounded-3xl {
531
+ border-radius: var(--cs-glass-radius-3xl);
532
+ }
533
+
534
+ /* =========================================================
535
+ GLASS SHADOW UTILITIES
536
+ ========================================================= */
537
+ @utility cs-glass-shadow-sm {
538
+ box-shadow: var(--cs-glass-shadow-sm-def);
539
+ }
540
+ @utility cs-glass-shadow {
541
+ box-shadow: var(--cs-glass-shadow-def);
542
+ }
543
+ @utility cs-glass-shadow-lg {
544
+ box-shadow: var(--cs-glass-shadow-lg-def);
545
+ }
546
+ @utility cs-glass-shadow-xl {
547
+ box-shadow: var(--cs-glass-shadow-xl-def);
548
+ }
549
+
550
+ /* =========================================================
551
+ GLASS ADD-ON UTILITIES
552
+ ========================================================= */
553
+
554
+ /* Acrylic look (adds saturation/contrast on the backdrop) */
555
+ @utility cs-glass-acrylic {
556
+ --cs-glass-backdrop-filter-extra: saturate(135%) contrast(110%);
557
+ backdrop-filter: var(--cs-glass-backdrop-filter-extra) var(--cs-glass-blur);
558
+ -webkit-backdrop-filter: var(--cs-glass-backdrop-filter-extra)
559
+ var(--cs-glass-blur);
560
+ }
561
+
562
+ /* Frosted edge (inner highlight for stronger glass rim) */
563
+ @utility cs-glass-frosted-edge {
564
+ box-shadow:
565
+ inset 0 1px 0 color-mix(in srgb, var(--cs-glass-white) 40%, transparent),
566
+ var(--cs-glass-shadow-def);
567
+ }
568
+
569
+ /* Noise/grain overlay */
570
+ @utility cs-glass-noise {
571
+ position: relative;
572
+ isolation: isolate;
573
+ &::after {
574
+ content: '';
575
+ position: absolute;
576
+ inset: 0;
577
+ pointer-events: none;
578
+ mix-blend-mode: overlay;
579
+ opacity: 0.07;
580
+ background-image: var(--cs-glass-noise-img, none);
581
+ background-size: 200px 200px;
582
+ z-index: 1;
583
+ }
584
+ }
585
+
586
+ /* Text contrast helpers for content placed on glass */
587
+ @utility cs-glass-on {
588
+ color: var(--cs-glass-on, #0f172a);
589
+ }
590
+ @utility cs-glass-on-invert {
591
+ color: var(--cs-glass-on-invert, #ffffff);
592
+ }
593
+
594
+ /* Disabled/read-only helper for interactive glass */
595
+ @utility cs-glass-disabled {
596
+ opacity: 0.6;
597
+ filter: grayscale(20%);
598
+ pointer-events: none;
599
+ }
600
+
601
+ /* Elevation helpers (z-index layering for overlays on glass) */
602
+ @utility cs-glass-elev-1 {
603
+ z-index: 10;
604
+ }
605
+ @utility cs-glass-elev-2 {
606
+ z-index: 20;
607
+ }
608
+ @utility cs-glass-elev-3 {
609
+ z-index: 30;
610
+ }
611
+ @utility cs-glass-elev-4 {
612
+ z-index: 40;
613
+ }
614
+ @utility cs-glass-elev-5 {
615
+ z-index: 50;
616
+ }
617
+
618
+ /* Blend mode utilities (creative tints over imagery) */
619
+ @utility cs-glass-blend-overlay {
620
+ mix-blend-mode: overlay;
621
+ }
622
+ @utility cs-glass-blend-screen {
623
+ mix-blend-mode: screen;
624
+ }
625
+ @utility cs-glass-blend-multiply {
626
+ mix-blend-mode: multiply;
627
+ }
628
+
629
+ /* Layout helpers for sticky bars & performance hints */
630
+ @utility cs-glass-sticky {
631
+ position: sticky;
632
+ top: 0;
633
+ }
634
+ @utility cs-glass-will-change {
635
+ will-change: transform, backdrop-filter;
636
+ }
637
+
638
+ /* Isolation utility for Canvas/Background-Layering issues */
639
+ @utility cs-glass-isolate {
640
+ isolation: isolate;
641
+ }
642
+
643
+ /* =========================================================
644
+ GLASS INTERACTIVE STATE UTILITIES
645
+ Hover and focus states for glass elements
646
+ ========================================================= */
647
+ @utility cs-glass-bg-hover {
648
+ background: var(--cs-glass-bg-hover);
649
+ }
650
+ @utility cs-glass-bg-light-hover {
651
+ background: var(--cs-glass-bg-light-hover);
652
+ }
653
+ @utility cs-glass-focus-ring {
654
+ outline: 2px solid var(--cs-glass-focus-ring);
655
+ outline-offset: 2px;
656
+ }
657
+
658
+ /* =========================================================
659
+ GLASS CARDS SYSTEM
660
+ Cards with glass backdrop-filter effects
661
+ ========================================================= */
662
+
663
+ /* Glass card base component */
664
+ @utility cs-glass-card {
665
+ background: var(--cs-glass-bg-light);
666
+ border: 1px solid var(--cs-glass-border-medium);
667
+ border-radius: 20px;
668
+ padding: 2rem;
669
+ box-shadow: var(--cs-glass-shadow-def);
670
+ transition: all var(--cs-glass-transition) ease;
671
+ backdrop-filter: var(--cs-glass-blur);
672
+ -webkit-backdrop-filter: var(--cs-glass-blur);
673
+
674
+ &:hover {
675
+ background: var(--cs-glass-bg-hover);
676
+ box-shadow: 0 20px 40px var(--cs-glass-shadow-strong);
677
+ transform: translateY(-2px);
678
+ border: 1px solid var(--cs-glass-border-strong);
679
+ }
680
+
681
+ &:focus-within {
682
+ outline: 2px solid var(--cs-glass-focus-ring);
683
+ outline-offset: 2px;
684
+ }
685
+ }
686
+
687
+ /* Light glass card variant */
688
+ @utility cs-glass-card-light {
689
+ background: var(--cs-glass-bg-medium);
690
+ border: 1px solid var(--cs-glass-border-strong);
691
+ border-radius: 20px;
692
+ padding: 2rem;
693
+ box-shadow: var(--cs-glass-shadow-def);
694
+ transition: all var(--cs-glass-transition) ease;
695
+ backdrop-filter: var(--cs-glass-blur);
696
+ -webkit-backdrop-filter: var(--cs-glass-blur);
697
+
698
+ &:hover {
699
+ background: var(--cs-glass-bg-light-hover);
700
+ transform: translateY(-1px);
701
+ box-shadow: 0 12px 24px var(--cs-glass-shadow-strong);
702
+ }
703
+
704
+ &:focus-within {
705
+ outline: 2px solid var(--cs-glass-focus-ring);
706
+ outline-offset: 2px;
707
+ }
708
+ }
709
+
710
+ /* Glass Feature Card Component */
711
+ @utility cs-card-feature-glass {
712
+ background: var(--cs-glass-bg-light);
713
+ border: 1px solid var(--cs-glass-border-medium);
714
+ backdrop-filter: saturate(140%) blur(12px);
715
+ -webkit-backdrop-filter: saturate(140%) blur(12px);
716
+ display: grid;
717
+ grid-template-rows: auto auto 1fr;
718
+ gap: 1.5rem;
719
+ border-radius: 20px;
720
+ box-shadow: var(--cs-glass-shadow-def);
721
+ padding: 2rem;
722
+ text-align: center;
723
+ position: relative;
724
+ transition: all var(--cs-glass-transition) ease;
725
+
726
+ &:hover {
727
+ transform: translateY(-2px);
728
+ box-shadow: 0 20px 40px var(--cs-glass-shadow-strong);
729
+ background: var(--cs-glass-bg-hover);
730
+ }
731
+ }
732
+
733
+ /* Glass Product Card Component */
734
+ @utility cs-card-product-glass {
735
+ background: var(--cs-glass-bg-light);
736
+ border: 1px solid var(--cs-glass-border-medium);
737
+ backdrop-filter: saturate(140%) blur(12px);
738
+ -webkit-backdrop-filter: saturate(140%) blur(12px);
739
+ border-radius: 20px;
740
+ box-shadow: var(--cs-glass-shadow-def);
741
+ overflow: hidden;
742
+ transition: all var(--cs-glass-transition) ease;
743
+ position: relative;
744
+ display: flex;
745
+ flex-direction: column;
746
+ max-width: 20rem;
747
+
748
+ &:hover {
749
+ transform: translateY(-2px);
750
+ box-shadow: 0 20px 40px var(--cs-glass-shadow-strong);
751
+ background: var(--cs-glass-bg-hover);
752
+ }
753
+ }
754
+
755
+ /* Glass Pricing Card Component */
756
+ @utility cs-card-pricing-glass {
757
+ background: var(--cs-glass-bg-light);
758
+ border: 2px solid var(--cs-glass-border-medium);
759
+ backdrop-filter: saturate(140%) blur(12px);
760
+ -webkit-backdrop-filter: saturate(140%) blur(12px);
761
+ display: grid;
762
+ grid-template-rows: auto 1fr auto;
763
+ border-radius: 20px;
764
+ box-shadow: var(--cs-glass-shadow-def);
765
+ padding: 2rem;
766
+ text-align: center;
767
+ position: relative;
768
+ transition: all var(--cs-glass-transition) ease;
769
+
770
+ &:hover {
771
+ transform: translateY(-4px);
772
+ box-shadow: 0 25px 50px var(--cs-glass-shadow-xl);
773
+ background: var(--cs-glass-bg-hover);
774
+ border-color: var(--cs-glass-border-strong);
775
+ }
776
+ }
777
+
778
+ /* =========================================================
779
+ GLASS UI COMPONENTS
780
+ Ready-to-use glass UI elements with backdrop-filter
781
+ ========================================================= */
782
+
783
+ /* Glass navigation component */
784
+ @utility cs-glass-nav {
785
+ background: var(--cs-glass-bg-light);
786
+ border: 1px solid var(--cs-glass-border-medium);
787
+ border-radius: 12px;
788
+ box-shadow: var(--cs-glass-shadow-def);
789
+ transition: all var(--cs-glass-transition) ease;
790
+ backdrop-filter: var(--cs-glass-blur);
791
+ -webkit-backdrop-filter: var(--cs-glass-blur);
792
+ }
793
+
794
+ @utility cs-glass-nav-light {
795
+ background: var(--cs-glass-bg-medium);
796
+ border: 1px solid var(--cs-glass-border-strong);
797
+ border-radius: 12px;
798
+ box-shadow: var(--cs-glass-shadow-def);
799
+ transition: all var(--cs-glass-transition) ease;
800
+ backdrop-filter: var(--cs-glass-blur);
801
+ -webkit-backdrop-filter: var(--cs-glass-blur);
802
+ }
803
+
804
+ /* Glass button component */
805
+ @utility cs-glass-button {
806
+ background: var(--cs-glass-bg-light);
807
+ border: 1px solid var(--cs-glass-border-medium);
808
+ border-radius: 12px;
809
+ padding: 0.75rem 1.5rem;
810
+ transition: all var(--cs-glass-transition) ease;
811
+ cursor: pointer;
812
+ min-height: 2.5rem; /* touch target */
813
+ min-width: 2.5rem;
814
+ -webkit-tap-highlight-color: transparent;
815
+ backdrop-filter: var(--cs-glass-blur);
816
+ -webkit-backdrop-filter: var(--cs-glass-blur);
817
+
818
+ &:hover {
819
+ background: var(--cs-glass-bg-hover);
820
+ transform: translateY(-1px);
821
+ box-shadow: 0 8px 16px var(--cs-glass-shadow-medium);
822
+ }
823
+
824
+ &:focus,
825
+ &:focus-visible {
826
+ outline: 2px solid var(--cs-glass-focus-ring);
827
+ outline-offset: 2px;
828
+ }
829
+
830
+ &:active {
831
+ transform: translateY(0);
832
+ box-shadow: 0 4px 8px var(--cs-glass-shadow-medium);
833
+ }
834
+ }
835
+
836
+ /* Glass toast component */
837
+ @utility cs-glass-toast {
838
+ background: var(--cs-glass-bg-light);
839
+ border: 1px solid var(--cs-glass-border-medium);
840
+ border-radius: 0.75rem;
841
+ padding: 1rem 1.5rem;
842
+ box-shadow: 0 8px 32px var(--cs-glass-shadow-strong);
843
+ position: relative;
844
+ overflow: hidden;
845
+ backdrop-filter: var(--cs-glass-blur);
846
+ -webkit-backdrop-filter: var(--cs-glass-blur);
847
+ }
848
+
849
+ /* Glass tooltip component */
850
+ @utility cs-glass-tooltip {
851
+ background: var(--cs-glass-tooltip-bg);
852
+ border: 1px solid var(--cs-glass-border-medium);
853
+ border-radius: 0.5rem;
854
+ padding: 0.5rem 0.75rem;
855
+ box-shadow: 0 4px 16px var(--cs-glass-shadow-xl);
856
+ font-size: 0.875rem;
857
+ color: white;
858
+ white-space: nowrap;
859
+ z-index: 50;
860
+ backdrop-filter: var(--cs-glass-blur-sm);
861
+ -webkit-backdrop-filter: var(--cs-glass-blur-sm);
862
+ }
863
+
864
+ /* Glass dropdown component */
865
+ @utility cs-glass-dropdown {
866
+ background: var(--cs-glass-bg-light);
867
+ border: 1px solid var(--cs-glass-border-medium);
868
+ border-radius: 0.75rem;
869
+ box-shadow: var(--cs-glass-shadow-def);
870
+ padding: 0.5rem;
871
+ min-width: 12rem;
872
+ z-index: 50;
873
+ backdrop-filter: var(--cs-glass-blur);
874
+ -webkit-backdrop-filter: var(--cs-glass-blur);
875
+ }
876
+
877
+ /* Glass Forms System */
878
+ @utility cs-form-glass {
879
+ display: flex;
880
+ flex-direction: column;
881
+ gap: 1rem;
882
+ backdrop-filter: blur(20px) saturate(180%);
883
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
884
+ background: var(--cs-glass-bg-light);
885
+ border: 1px solid var(--cs-glass-border-medium);
886
+ border-radius: 1rem;
887
+ padding: 2rem;
888
+ }
889
+
890
+ @utility cs-input-glass {
891
+ padding: 0.75rem 1rem;
892
+ background: var(--cs-glass-bg-md);
893
+ border: 1px solid var(--cs-glass-border-strong);
894
+ border-radius: 0.75rem;
895
+ transition: all var(--cs-glass-transition) ease;
896
+ color: inherit;
897
+ backdrop-filter: blur(10px);
898
+ -webkit-backdrop-filter: blur(10px);
899
+
900
+ &:focus {
901
+ outline: none;
902
+ border-color: var(--cs-glass-focus-ring);
903
+ box-shadow: 0 0 0 3px
904
+ color-mix(in srgb, var(--cs-glass-focus-ring) 20%, transparent);
905
+ }
906
+
907
+ &::placeholder {
908
+ color: color-mix(in srgb, currentColor 60%, transparent);
909
+ }
910
+ }
911
+
912
+ @utility cs-button-primary-glass {
913
+ background: var(--cs-glass-bg-medium);
914
+ border: 1px solid var(--cs-glass-border-strong);
915
+ backdrop-filter: blur(10px);
916
+ -webkit-backdrop-filter: blur(10px);
917
+ color: inherit;
918
+ padding: 0.875rem 1.5rem;
919
+ border-radius: 0.75rem;
920
+ font-weight: 600;
921
+ cursor: pointer;
922
+ transition: all var(--cs-glass-transition) ease;
923
+
924
+ &:hover {
925
+ background: var(--cs-glass-bg-strong);
926
+ transform: translateY(-1px);
927
+ }
928
+
929
+ &:focus {
930
+ outline: 2px solid transparent;
931
+ outline-offset: 2px;
932
+ box-shadow:
933
+ 0 0 0 2px var(--cs-glass-focus-ring),
934
+ 0 0 0 4px color-mix(in srgb, var(--cs-glass-focus-ring) 20%, transparent);
935
+ }
936
+ }
937
+
938
+ /* =========================================================
939
+ GLASS PRO EFFECTS
940
+ Advanced animations and glass effects
941
+ ========================================================= */
942
+
943
+ /* Animated morph effects */
944
+ @utility cs-glass-morph-in {
945
+ animation: glassMorphIn 0.4s ease-out both;
946
+ }
947
+
948
+ @utility cs-glass-morph-out {
949
+ animation: glassMorphOut 0.3s ease-in both;
950
+ }
951
+
952
+ @keyframes glassMorphIn {
953
+ from {
954
+ opacity: 0;
955
+ transform: scale(0.95);
956
+ backdrop-filter: blur(0px);
957
+ }
958
+ to {
959
+ opacity: 1;
960
+ transform: scale(1);
961
+ backdrop-filter: var(--cs-glass-blur);
962
+ }
963
+ }
964
+
965
+ @keyframes glassMorphOut {
966
+ from {
967
+ opacity: 1;
968
+ transform: scale(1);
969
+ }
970
+ to {
971
+ opacity: 0;
972
+ transform: scale(0.95);
973
+ }
974
+ }
975
+
976
+ /* 3D hover glass effect */
977
+ @utility cs-glass-3d-hover {
978
+ transform-style: preserve-3d;
979
+ transition:
980
+ transform 0.3s ease,
981
+ box-shadow 0.3s ease;
982
+
983
+ &:hover {
984
+ transform: rotateX(6deg) rotateY(-4deg) scale(1.02);
985
+ box-shadow: 0 24px 48px var(--cs-glass-shadow-xl);
986
+ }
987
+ }
988
+
989
+ /* Glossy highlight overlays */
990
+ @utility cs-glass-gloss-top {
991
+ position: relative;
992
+ &::before {
993
+ content: '';
994
+ position: absolute;
995
+ top: 0;
996
+ left: 0;
997
+ right: 0;
998
+ height: 20%;
999
+ background: linear-gradient(
1000
+ to bottom,
1001
+ rgba(255, 255, 255, 0.4),
1002
+ transparent
1003
+ );
1004
+ border-top-left-radius: inherit;
1005
+ border-top-right-radius: inherit;
1006
+ pointer-events: none;
1007
+ z-index: 2;
1008
+ mix-blend-mode: soft-light;
1009
+ }
1010
+ }
1011
+
1012
+ @utility cs-glass-gloss-left {
1013
+ position: relative;
1014
+ &::before {
1015
+ content: '';
1016
+ position: absolute;
1017
+ top: 0;
1018
+ bottom: 0;
1019
+ left: 0;
1020
+ width: 15%;
1021
+ background: linear-gradient(
1022
+ to right,
1023
+ rgba(255, 255, 255, 0.35),
1024
+ transparent
1025
+ );
1026
+ pointer-events: none;
1027
+ z-index: 2;
1028
+ mix-blend-mode: soft-light;
1029
+ }
1030
+ }
1031
+
1032
+ @utility cs-glass-gloss-right {
1033
+ position: relative;
1034
+ &::before {
1035
+ content: '';
1036
+ position: absolute;
1037
+ top: 0;
1038
+ bottom: 0;
1039
+ right: 0;
1040
+ width: 15%;
1041
+ background: linear-gradient(
1042
+ to left,
1043
+ rgba(255, 255, 255, 0.35),
1044
+ transparent
1045
+ );
1046
+ pointer-events: none;
1047
+ z-index: 2;
1048
+ mix-blend-mode: soft-light;
1049
+ }
1050
+ }
1051
+
1052
+ /* Pro theme presets */
1053
+ @utility cs-glass-theme-neon {
1054
+ --cs-glass-bg-light: rgba(58, 227, 255, 0.1);
1055
+ --cs-glass-border-medium: rgba(58, 227, 255, 0.25);
1056
+ --cs-glass-shadow-def: 0 8px 32px rgba(58, 227, 255, 0.25);
1057
+ --cs-glass-focus-ring: rgba(58, 227, 255, 0.6);
1058
+ }
1059
+
1060
+ @utility cs-glass-theme-carbon {
1061
+ --cs-glass-bg-light: rgba(30, 30, 30, 0.25);
1062
+ --cs-glass-border-medium: rgba(255, 255, 255, 0.08);
1063
+ --cs-glass-shadow-def: 0 8px 32px rgba(0, 0, 0, 0.4);
1064
+ --cs-glass-focus-ring: rgba(255, 255, 255, 0.3);
1065
+ }
1066
+
1067
+ @utility cs-glass-theme-pastel {
1068
+ --cs-glass-bg-light: rgba(255, 230, 250, 0.12);
1069
+ --cs-glass-border-medium: rgba(255, 230, 250, 0.25);
1070
+ --cs-glass-shadow-def: 0 8px 32px rgba(255, 230, 250, 0.25);
1071
+ --cs-glass-focus-ring: rgba(255, 230, 250, 0.6);
1072
+ }
1073
+
1074
+ /* =========================================================
1075
+ RESPONSIVE GLASS UTILITIES
1076
+ ========================================================= */
1077
+
1078
+ /* Responsive glass blur based on container size */
1079
+ @utility cs-glass-responsive {
1080
+ background: var(--cs-glass-bg-light);
1081
+ border: 1px solid var(--cs-glass-border-medium);
1082
+ backdrop-filter: var(--cs-glass-blur-sm);
1083
+ -webkit-backdrop-filter: var(--cs-glass-blur-sm);
1084
+ background-clip: padding-box;
1085
+
1086
+ @container (min-width: 320px) {
1087
+ backdrop-filter: var(--cs-glass-blur-sm);
1088
+ -webkit-backdrop-filter: var(--cs-glass-blur-sm);
1089
+ }
1090
+
1091
+ @container (min-width: 640px) {
1092
+ backdrop-filter: var(--cs-glass-blur);
1093
+ -webkit-backdrop-filter: var(--cs-glass-blur);
1094
+ }
1095
+
1096
+ @container (min-width: 1024px) {
1097
+ backdrop-filter: var(--cs-glass-blur-lg);
1098
+ -webkit-backdrop-filter: var(--cs-glass-blur-lg);
1099
+ }
1100
+ }
1101
+
1102
+ /* Base backdrop filter utility */
1103
+ @utility cs-glass-backdrop-clip {
1104
+ background-clip: padding-box;
1105
+ }
1106
+
1107
+ /* =========================================================
1108
+ FALLBACKS & BROWSER SUPPORT
1109
+ ========================================================= */
1110
+
1111
+ /* For browsers that don't support backdrop-filter,
1112
+ provide a fallback with slightly higher opacity background */
1113
+ @supports not (
1114
+ (-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))
1115
+ ) {
1116
+ .cs-glass,
1117
+ .cs-glass-card,
1118
+ .cs-glass-card-light,
1119
+ .cs-glass-nav,
1120
+ .cs-glass-nav-light,
1121
+ .cs-glass-button,
1122
+ .cs-glass-toast,
1123
+ .cs-glass-tooltip,
1124
+ .cs-glass-dropdown {
1125
+ background: var(--cs-glass-bg-fallback);
1126
+ box-shadow: 0 4px 16px var(--cs-glass-shadow-medium);
1127
+ }
1128
+
1129
+ .cs-glass-dark {
1130
+ background: var(--cs-glass-bg-dark-fallback);
1131
+ }
1132
+
1133
+ .cs-glass-blue {
1134
+ background: var(--cs-glass-bg-blue-fallback);
1135
+ }
1136
+
1137
+ .cs-glass-purple {
1138
+ background: var(--cs-glass-bg-purple-fallback);
1139
+ }
1140
+
1141
+ .cs-glass-green {
1142
+ background: var(--cs-glass-bg-green-fallback);
1143
+ }
1144
+
1145
+ .cs-glass-pink {
1146
+ background: var(--cs-glass-bg-pink-fallback);
1147
+ }
1148
+
1149
+ .cs-glass-amber {
1150
+ background: var(--cs-glass-bg-amber-fallback);
1151
+ }
1152
+
1153
+ .cs-card-feature-glass,
1154
+ .cs-card-product-glass,
1155
+ .cs-card-pricing-glass {
1156
+ background: rgba(255, 255, 255, 0.4);
1157
+ }
1158
+ }
1159
+
1160
+ /* High contrast mode support */
1161
+ @media (prefers-contrast: high) {
1162
+ .cs-glass,
1163
+ .cs-glass-card,
1164
+ .cs-glass-nav,
1165
+ .cs-glass-button {
1166
+ border-width: 2px;
1167
+ background: var(--cs-glass-bg-contrast);
1168
+ }
1169
+ .cs-glass-dark {
1170
+ background: var(--cs-glass-bg-dark-contrast);
1171
+ border-color: var(--cs-glass-border-strong);
1172
+ }
1173
+ }
1174
+
1175
+ /* Forced colors mode support (Windows High Contrast) */
1176
+ @media (forced-colors: active) {
1177
+ .cs-glass,
1178
+ .cs-glass-card,
1179
+ .cs-glass-nav,
1180
+ .cs-glass-button {
1181
+ background: Canvas;
1182
+ border-color: CanvasText;
1183
+ box-shadow: none;
1184
+ }
1185
+ .cs-glass-tooltip {
1186
+ background: CanvasText;
1187
+ color: Canvas;
1188
+ border-color: CanvasText;
1189
+ box-shadow: none;
1190
+ }
1191
+ }
1192
+
1193
+ /* Mobile optimization - reduce blur on small screens */
1194
+ @media (max-width: 480px) {
1195
+ :root {
1196
+ --cs-glass-blur: var(--cs-glass-blur-sm);
1197
+ }
1198
+ }
1199
+
1200
+ /* Reduced motion optimizations */
1201
+ @media (prefers-reduced-motion: reduce) {
1202
+ .cs-glass-morph-in,
1203
+ .cs-glass-morph-out,
1204
+ .cs-glass-3d-hover {
1205
+ animation: none !important;
1206
+ transform: none !important;
1207
+ }
1208
+ }