organify-ui 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/chat-mock-data-DST5Tn_H.d.ts +339 -0
  2. package/dist/chunk-2Y3W6JSG.js +4143 -0
  3. package/dist/chunk-2Y3W6JSG.js.map +1 -0
  4. package/dist/{chunk-7GFTSEVQ.js → chunk-5L6BWKVA.js} +2 -3
  5. package/dist/chunk-5L6BWKVA.js.map +1 -0
  6. package/dist/{chunk-YIVDY4T6.js → chunk-AHMA7OV3.js} +69 -4
  7. package/dist/chunk-AHMA7OV3.js.map +1 -0
  8. package/dist/chunk-B3N3YGMA.js +456 -0
  9. package/dist/chunk-B3N3YGMA.js.map +1 -0
  10. package/dist/chunk-DW4ZGEBH.js +930 -0
  11. package/dist/chunk-DW4ZGEBH.js.map +1 -0
  12. package/dist/{chunk-FWI3KZVO.js → chunk-FQA33MF4.js} +2 -4
  13. package/dist/chunk-FQA33MF4.js.map +1 -0
  14. package/dist/chunk-WONVWB5R.js +271 -0
  15. package/dist/chunk-WONVWB5R.js.map +1 -0
  16. package/dist/components/chat/index.d.ts +55 -0
  17. package/dist/components/chat/index.js +5 -0
  18. package/dist/components/chat/index.js.map +1 -0
  19. package/dist/components/notifications/index.d.ts +204 -0
  20. package/dist/components/notifications/index.js +5 -0
  21. package/dist/components/notifications/index.js.map +1 -0
  22. package/dist/i18n/index.js +1 -1
  23. package/dist/icons/index.d.ts +10 -1
  24. package/dist/icons/index.js +1 -1
  25. package/dist/index.d.ts +1018 -38
  26. package/dist/index.js +7858 -892
  27. package/dist/index.js.map +1 -1
  28. package/dist/providers/theme-provider.js +1 -1
  29. package/dist/tailwind-preset.d.ts +1 -2
  30. package/dist/tailwind-preset.js +102 -16
  31. package/dist/tailwind-preset.js.map +1 -1
  32. package/dist/tokens/index.d.ts +131 -69
  33. package/dist/tokens/index.js +1 -1
  34. package/package.json +25 -3
  35. package/src/globals.css +591 -257
  36. package/dist/chunk-7GFTSEVQ.js.map +0 -1
  37. package/dist/chunk-FWI3KZVO.js.map +0 -1
  38. package/dist/chunk-WPZJKIZT.js +0 -248
  39. package/dist/chunk-WPZJKIZT.js.map +0 -1
  40. package/dist/chunk-YIVDY4T6.js.map +0 -1
package/src/globals.css CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * organify-ui — Global CSS
3
3
  *
4
- * Human-Glass Design System
4
+ * Organic Design System — 3 Themes: Dark, Cream, Fluid
5
5
  * Import in consuming app: import 'organify-ui/globals.css';
6
6
  */
7
7
 
@@ -9,25 +9,21 @@
9
9
 
10
10
  /*
11
11
  * Tell Tailwind v4 to scan our component sources & dist output.
12
- * Tailwind v4 skips node_modules/ by default, so without these
13
- * directives the utility classes used in our components (bg-primary,
14
- * bg-error, text-success-light, etc.) are never detected and never
15
- * generated. Any app that @imports this file gets them automatically.
16
12
  */
17
13
  @source "./components";
18
14
  @source "../dist";
19
15
 
20
16
  /* ═══════════════════════════════════════════════════════
21
17
  Tailwind v4 — @theme (CSS-first token registration)
22
- This ensures ALL custom values are available as
23
- Tailwind utility classes (e.g. bg-primary, text-cream-base)
24
18
  ═══════════════════════════════════════════════════════ */
25
19
  @theme {
26
20
  /* Brand */
27
21
  --color-primary: #241979;
28
22
  --color-primary-light: #4F39F6;
23
+ --color-primary-soft: #3A2E9E;
29
24
  --color-primary-glow: #4C35DE;
30
- --color-primary-electric: #5b42f2;
25
+ --color-primary-electric: #4F39F6;
26
+ --color-primary-electric-light: #7C6AF8;
31
27
  --color-primary-dark: #0f0a38;
32
28
 
33
29
  /* Neutrals */
@@ -52,25 +48,30 @@
52
48
  --color-info-light: #60A5FA;
53
49
  --color-info-surface: rgba(59, 130, 246, 0.10);
54
50
 
55
- /* Glass */
56
- --color-glass-bg: rgba(31, 31, 33, 0.60);
51
+ /* Glass — dark defaults */
52
+ --color-glass-bg: rgba(31, 31, 33, 0.40);
57
53
  --color-glass-bg-heavy: rgba(31, 31, 33, 0.80);
58
- --color-glass-border: rgba(255, 255, 255, 0.08);
59
- --color-glass-border-medium: rgba(255, 255, 255, 0.12);
54
+ --color-glass-surface: rgba(31, 31, 33, 0.70);
55
+ --color-glass-border: rgba(255, 255, 255, 0.03);
56
+ --color-glass-border-medium: rgba(255, 255, 255, 0.08);
60
57
  --color-glass-border-strong: rgba(255, 255, 255, 0.20);
61
58
  --color-glass-highlight: rgba(255, 255, 255, 0.05);
59
+
60
+ /* White transparency scale */
61
+ --color-white-3: rgba(255, 255, 255, 0.03);
62
62
  --color-white-5: rgba(255, 255, 255, 0.05);
63
+ --color-white-8: rgba(255, 255, 255, 0.08);
63
64
  --color-white-10: rgba(255, 255, 255, 0.10);
64
65
  --color-white-20: rgba(255, 255, 255, 0.20);
65
66
  --color-white-40: rgba(255, 255, 255, 0.40);
66
67
  --color-white-60: rgba(255, 255, 255, 0.60);
67
68
  --color-white-80: rgba(255, 255, 255, 0.80);
68
69
 
69
- /* Aliases for component compatibility */
70
+ /* Card aliases */
70
71
  --color-card-surface: #1F1F21;
71
72
  --color-card-bg: #1F1F21;
72
73
 
73
- /* Semantic aliases (component compat) */
74
+ /* Semantic aliases */
74
75
  --color-semantic-success: #10B981;
75
76
  --color-semantic-warning: #F59E0B;
76
77
  --color-semantic-error: #E0115F;
@@ -78,7 +79,6 @@
78
79
 
79
80
  /* Cream theme tokens */
80
81
  --color-cream-card: #FFFFFF;
81
- --color-cream-border: #E5E5E5;
82
82
  --color-cream-primary: #241979;
83
83
  --color-cream-secondary: #4b5563;
84
84
  --color-cream-muted: #9ca3af;
@@ -98,6 +98,12 @@
98
98
  --color-disconnected-text: #fecdd3;
99
99
  --color-disconnected-border: rgba(244, 63, 94, 0.30);
100
100
 
101
+ /* Fluid theme tokens */
102
+ --color-fluid-bg: rgba(255, 255, 255, 0.03);
103
+ --color-fluid-surface: #161618;
104
+ --color-fluid-border: rgba(255, 255, 255, 0.05);
105
+ --color-fluid-primary-soft: rgba(124, 106, 248, 0.20);
106
+
101
107
  /* Typography */
102
108
  --font-sans: 'Inter', system-ui, -apple-system, sans-serif;
103
109
  --font-mono: ui-monospace, 'SFMono-Regular', 'Menlo', monospace;
@@ -114,25 +120,33 @@
114
120
  --font-size-caption: 0.6875rem;
115
121
  --font-size-label: 0.625rem;
116
122
 
117
- /* Radius */
123
+ /* Radius — organic */
118
124
  --radius-sm: 0.25rem;
119
125
  --radius-md: 0.5rem;
120
126
  --radius-lg: 1rem;
121
127
  --radius-xl: 1.5rem;
122
128
  --radius-2xl: 2rem;
123
129
  --radius-3xl: 2.5rem;
130
+ --radius-4xl: 3rem;
124
131
  --radius-full: 9999px;
132
+ --radius-organic: 2.5rem;
133
+ --radius-organic-lg: 3rem;
134
+ --radius-squircle: 1.25rem;
135
+ --radius-squircle-sm: 1rem;
136
+ --radius-squircle-lg: 2rem;
125
137
  --radius-geo: 0.5rem 2rem 0.5rem 2rem;
126
138
  --radius-geo-inv: 2rem 0.5rem 2rem 0.5rem;
127
139
  --radius-pill-asym: 4px 16px 16px 4px;
128
140
 
129
141
  /* Shadows */
130
- --shadow-glass: 0 4px 24px -1px rgba(0, 0, 0, 0.20);
131
- --shadow-glass-lg: 0 8px 32px 0 rgba(0, 0, 0, 0.25);
142
+ --shadow-glass: 0 8px 32px rgba(0, 0, 0, 0.40), inset 0 1px 0 0 rgba(255, 255, 255, 0.05);
143
+ --shadow-glass-sm: 0 4px 24px rgba(0, 0, 0, 0.25);
144
+ --shadow-glass-lg: 0 12px 48px rgba(0, 0, 0, 0.50), inset 0 1px 0 0 rgba(255, 255, 255, 0.05);
132
145
  --shadow-glass-xl: 10px 10px 40px rgba(0, 0, 0, 0.40);
133
146
  --shadow-glow: 0 0 20px rgba(79, 57, 246, 0.40);
134
147
  --shadow-glow-sm: 0 0 10px rgba(79, 57, 246, 0.30);
135
148
  --shadow-glow-lg: 0 0 40px rgba(79, 57, 246, 0.50);
149
+ --shadow-glow-soft: 0 4px 30px rgba(79, 57, 246, 0.15);
136
150
  --shadow-glow-primary: 0 0 20px rgba(79, 57, 246, 0.30), 0 4px 12px rgba(79, 57, 246, 0.20);
137
151
  --shadow-glow-error: 0 0 20px rgba(224, 17, 95, 0.30), 0 4px 12px rgba(224, 17, 95, 0.20);
138
152
  --shadow-glow-success: 0 0 20px rgba(16, 185, 129, 0.20);
@@ -141,26 +155,33 @@
141
155
  --shadow-neon: 0 0 10px rgba(79, 57, 246, 0.40), 0 0 20px rgba(79, 57, 246, 0.20);
142
156
  --shadow-neon-lg: 0 0 30px rgba(79, 57, 246, 0.40), 0 0 60px rgba(79, 57, 246, 0.20);
143
157
  --shadow-neon-glow: 0 0 30px rgba(79, 57, 246, 0.40), 0 0 60px rgba(79, 57, 246, 0.20);
158
+ --shadow-inner-light: inset 0 1px 0 0 rgba(255, 255, 255, 0.05);
144
159
  --shadow-cream-sm: 0 2px 8px rgba(0, 0, 0, 0.02);
145
160
  --shadow-cream-md: 0 4px 16px rgba(0, 0, 0, 0.03);
146
161
  --shadow-cream-lg: 0 8px 32px rgba(0, 0, 0, 0.05);
147
162
  --shadow-cream-glow: 0 0 15px rgba(36, 25, 121, 0.10);
163
+ --shadow-cream-btn: 0 2px 8px rgba(36, 25, 121, 0.08);
164
+ --shadow-cream-btn-primary: 0 4px 16px rgba(36, 25, 121, 0.20);
165
+ --shadow-soft-glow: 0 4px 30px rgba(0, 0, 0, 0.12);
148
166
 
149
167
  /* Animations */
150
168
  --animate-shimmer: shimmer 2s infinite;
151
169
  --animate-spin-slow: spin-slow 10s linear infinite;
152
170
  --animate-glow-pulse: glow-pulse 2s ease-in-out infinite;
153
- --animate-float: float 6s ease-in-out infinite;
171
+ --animate-float: float 20s infinite ease-in-out;
172
+ --animate-float-subtle: float-subtle 6s infinite ease-in-out;
154
173
  --animate-fade-in: fade-in 0.3s ease-out;
155
- --animate-slide-up: slide-up 0.3s ease-out;
174
+ --animate-slide-up: slide-up 0.4s cubic-bezier(0.25, 1, 0.5, 1);
156
175
  }
157
176
 
158
177
  /* ═══════════════════════════════════════════════════════
159
- CSS Custom Properties — Dark Theme (Primary)
178
+ CSS Custom Properties — Dark Theme (Primary / Default)
179
+ Organic-Dark: deep void, glassmorphism, glow accents
160
180
  ═══════════════════════════════════════════════════════ */
161
181
  :root {
162
182
  --org-primary: #241979;
163
183
  --org-primary-light: #4F39F6;
184
+ --org-primary-soft: #3A2E9E;
164
185
  --org-primary-glow: #4C35DE;
165
186
  --org-bg-void: #191919;
166
187
  --org-bg-surface: #1F1F21;
@@ -172,18 +193,29 @@
172
193
  --org-error: #E0115F;
173
194
  --org-info: #3B82F6;
174
195
 
175
- --org-glass-bg: rgba(31, 31, 33, 0.60);
196
+ --org-glass-bg: rgba(31, 31, 33, 0.40);
176
197
  --org-glass-bg-heavy: rgba(31, 31, 33, 0.80);
177
198
  --org-glass-surface: rgba(31, 31, 33, 0.70);
178
- --org-glass-border: rgba(255, 255, 255, 0.08);
179
- --org-glass-border-medium: rgba(255, 255, 255, 0.12);
199
+ --org-glass-border: rgba(255, 255, 255, 0.03);
200
+ --org-glass-border-medium: rgba(255, 255, 255, 0.08);
180
201
  --org-glass-border-strong: rgba(255, 255, 255, 0.20);
181
202
  --org-glass-highlight: rgba(255, 255, 255, 0.05);
182
203
 
183
204
  --org-text: #f3f4f6;
184
205
  --org-text-secondary: #d1d5db;
185
206
  --org-text-muted: #6b7280;
186
- --org-border: rgba(255, 255, 255, 0.08);
207
+ --org-border: rgba(255, 255, 255, 0.03);
208
+
209
+ --org-card-bg: #1F1F21;
210
+ --org-card-surface: #2A2A2E;
211
+
212
+ --org-subtle-5: rgba(255, 255, 255, 0.05);
213
+ --org-subtle-10: rgba(255, 255, 255, 0.10);
214
+ --org-subtle-20: rgba(255, 255, 255, 0.20);
215
+
216
+ --org-shadow-glass: 0 8px 32px rgba(0, 0, 0, 0.40), inset 0 1px 0 0 rgba(255, 255, 255, 0.05);
217
+ --org-shadow-glass-sm: 0 4px 24px rgba(0, 0, 0, 0.25);
218
+ --org-shadow-glass-lg: 0 12px 48px rgba(0, 0, 0, 0.50), inset 0 1px 0 0 rgba(255, 255, 255, 0.05);
187
219
 
188
220
  color-scheme: dark;
189
221
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
@@ -192,32 +224,47 @@
192
224
  }
193
225
 
194
226
  /* ═══════════════════════════════════════════════════════
195
- Light Theme Override
227
+ Cream / Light Theme
228
+ Organic-Cream: soft whites, indigo accents, light glass
196
229
  ═══════════════════════════════════════════════════════ */
197
230
  .theme-cream,
198
231
  [data-theme='light'] {
199
232
  --org-bg-void: #F9F9F7;
200
233
  --org-bg-surface: #FFFFFF;
201
- --org-bg-elevated: #F5F5F3;
234
+ --org-bg-elevated: #F0F0EE;
202
235
 
203
236
  --org-text: #191919;
204
- --org-text-secondary: #4b5563;
205
- --org-text-muted: #9ca3af;
206
-
207
- --org-glass-bg: rgba(255, 255, 255, 0.65);
208
- --org-glass-bg-heavy: rgba(255, 255, 255, 0.80);
209
- --org-glass-surface: rgba(255, 255, 255, 0.70);
210
- --org-glass-border: rgba(0, 0, 0, 0.04);
211
- --org-glass-border-medium: rgba(0, 0, 0, 0.05);
212
- --org-glass-border-strong: rgba(0, 0, 0, 0.08);
213
- --org-glass-highlight: rgba(0, 0, 0, 0.02);
214
- --org-border: rgba(0, 0, 0, 0.06);
237
+ --org-text-secondary: #374151;
238
+ --org-text-muted: #6b7280;
239
+
240
+ --org-glass-bg: rgba(255, 255, 255, 0.70);
241
+ --org-glass-bg-heavy: rgba(255, 255, 255, 0.90);
242
+ --org-glass-surface: rgba(255, 255, 255, 0.80);
243
+ --org-glass-border: rgba(36, 25, 121, 0.03);
244
+ --org-glass-border-medium: rgba(36, 25, 121, 0.06);
245
+ --org-glass-border-strong: rgba(36, 25, 121, 0.15);
246
+ --org-glass-highlight: rgba(36, 25, 121, 0.02);
247
+ --org-border: rgba(36, 25, 121, 0.06);
248
+
249
+ --org-card-bg: #FFFFFF;
250
+ --org-card-surface: #FAFAFB;
251
+
252
+ --org-subtle-5: rgba(36, 25, 121, 0.02);
253
+ --org-subtle-10: rgba(36, 25, 121, 0.04);
254
+ --org-subtle-20: rgba(36, 25, 121, 0.08);
255
+
256
+ --org-shadow-glass: 0 4px 24px rgba(36, 25, 121, 0.04);
257
+ --org-shadow-glass-sm: 0 2px 12px rgba(36, 25, 121, 0.03);
258
+ --org-shadow-glass-lg: 0 8px 40px rgba(36, 25, 121, 0.06);
215
259
 
216
260
  color-scheme: light;
217
261
  color: #191919;
262
+ background-color: #F9F9F7;
218
263
  }
219
264
 
220
- /* Dark theme (explicit) */
265
+ /* ═══════════════════════════════════════════════════════
266
+ Dark Theme (explicit)
267
+ ═══════════════════════════════════════════════════════ */
221
268
  [data-theme='dark'] {
222
269
  --org-bg-void: #191919;
223
270
  --org-bg-surface: #1F1F21;
@@ -227,21 +274,117 @@
227
274
  --org-text-secondary: #d1d5db;
228
275
  --org-text-muted: #6b7280;
229
276
 
230
- --org-glass-bg: rgba(31, 31, 33, 0.60);
277
+ --org-glass-bg: rgba(31, 31, 33, 0.40);
231
278
  --org-glass-bg-heavy: rgba(31, 31, 33, 0.80);
232
279
  --org-glass-surface: rgba(31, 31, 33, 0.70);
233
- --org-glass-border: rgba(255, 255, 255, 0.08);
234
- --org-glass-border-medium: rgba(255, 255, 255, 0.12);
280
+ --org-glass-border: rgba(255, 255, 255, 0.03);
281
+ --org-glass-border-medium: rgba(255, 255, 255, 0.08);
235
282
  --org-glass-border-strong: rgba(255, 255, 255, 0.20);
236
283
  --org-glass-highlight: rgba(255, 255, 255, 0.05);
237
- --org-border: rgba(255, 255, 255, 0.08);
284
+ --org-border: rgba(255, 255, 255, 0.03);
285
+
286
+ --org-card-bg: #1F1F21;
287
+ --org-card-surface: #2A2A2E;
288
+
289
+ --org-subtle-5: rgba(255, 255, 255, 0.05);
290
+ --org-subtle-10: rgba(255, 255, 255, 0.10);
291
+ --org-subtle-20: rgba(255, 255, 255, 0.20);
292
+
293
+ --org-shadow-glass: 0 8px 32px rgba(0, 0, 0, 0.40), inset 0 1px 0 0 rgba(255, 255, 255, 0.05);
294
+ --org-shadow-glass-sm: 0 4px 24px rgba(0, 0, 0, 0.25);
295
+ --org-shadow-glass-lg: 0 12px 48px rgba(0, 0, 0, 0.50), inset 0 1px 0 0 rgba(255, 255, 255, 0.05);
238
296
 
239
297
  color-scheme: dark;
240
298
  color: #f3f4f6;
299
+ background-color: #191919;
300
+ }
301
+
302
+ /* ═══════════════════════════════════════════════════════
303
+ Fluid Theme — vibrant mesh, neon glows, deep blacks
304
+ ═══════════════════════════════════════════════════════ */
305
+ [data-theme='fluid'] {
306
+ --org-bg-void: #0b0c10;
307
+ --org-bg-surface: #161618;
308
+ --org-bg-elevated: #1a1a1c;
309
+
310
+ --org-text: #e5e7eb;
311
+ --org-text-secondary: #9CA3AF;
312
+ --org-text-muted: #6B6B76;
313
+
314
+ --org-glass-bg: rgba(255, 255, 255, 0.03);
315
+ --org-glass-bg-heavy: rgba(22, 22, 24, 0.90);
316
+ --org-glass-surface: rgba(22, 22, 24, 0.80);
317
+ --org-glass-border: rgba(255, 255, 255, 0.05);
318
+ --org-glass-border-medium: rgba(255, 255, 255, 0.08);
319
+ --org-glass-border-strong: rgba(255, 255, 255, 0.10);
320
+ --org-glass-highlight: rgba(255, 255, 255, 0.05);
321
+ --org-border: rgba(255, 255, 255, 0.05);
322
+
323
+ --org-card-bg: #161618;
324
+ --org-card-surface: #1a1a1c;
325
+
326
+ --org-subtle-5: rgba(255, 255, 255, 0.03);
327
+ --org-subtle-10: rgba(255, 255, 255, 0.06);
328
+ --org-subtle-20: rgba(255, 255, 255, 0.10);
329
+
330
+ --org-shadow-glass: 0 8px 32px rgba(0, 0, 0, 0.60);
331
+ --org-shadow-glass-sm: 0 4px 24px rgba(0, 0, 0, 0.40);
332
+ --org-shadow-glass-lg: 0 12px 48px rgba(0, 0, 0, 0.70);
333
+
334
+ color-scheme: dark;
335
+ color: #e5e7eb;
336
+ background-color: #0b0c10;
241
337
  }
242
338
 
243
339
  /* ═══════════════════════════════════════════════════════
244
- Base Reset / Defaults
340
+ Theme-Aware Utility Classes
341
+ ═══════════════════════════════════════════════════════ */
342
+
343
+ /* Borders */
344
+ .border-theme { border-color: var(--org-border); }
345
+ .border-theme-subtle { border-color: var(--org-glass-border); }
346
+ .border-theme-medium { border-color: var(--org-glass-border-medium); }
347
+ .border-theme-strong { border-color: var(--org-glass-border-strong); }
348
+
349
+ /* Backgrounds */
350
+ .bg-theme-void { background-color: var(--org-bg-void); }
351
+ .bg-theme-surface { background-color: var(--org-bg-surface); }
352
+ .bg-theme-elevated { background-color: var(--org-bg-elevated); }
353
+ .bg-theme-card { background-color: var(--org-card-bg); }
354
+ .bg-theme-card-surface { background-color: var(--org-card-surface); }
355
+ .bg-theme-subtle { background: var(--org-subtle-5); }
356
+ .bg-theme-subtle-10 { background: var(--org-subtle-10); }
357
+ .bg-theme-subtle-20 { background: var(--org-subtle-20); }
358
+ .bg-theme-glass { background: var(--org-glass-bg); }
359
+ .bg-theme-glass-heavy { background: var(--org-glass-bg-heavy); }
360
+ .bg-theme-highlight { background: var(--org-glass-highlight); }
361
+
362
+ /* Text */
363
+ .text-theme { color: var(--org-text); }
364
+ .text-theme-secondary { color: var(--org-text-secondary); }
365
+ .text-theme-muted { color: var(--org-text-muted); }
366
+
367
+ /* Hover */
368
+ .hover\:border-theme-medium:hover { border-color: var(--org-glass-border-medium); }
369
+ .hover\:border-theme-strong:hover { border-color: var(--org-glass-border-strong); }
370
+ .hover\:bg-theme-subtle:hover { background: var(--org-subtle-5); }
371
+ .hover\:bg-theme-subtle-10:hover { background: var(--org-subtle-10); }
372
+ .hover\:bg-theme-card-surface:hover { background-color: var(--org-card-surface); }
373
+ .hover\:bg-theme-highlight:hover { background-color: var(--org-glass-highlight); }
374
+ .hover\:bg-theme-glass:hover { background-color: var(--org-glass-bg); }
375
+
376
+ /* Focus */
377
+ .focus\:border-primary:focus { border-color: var(--org-primary-light); }
378
+ .focus\:ring-primary:focus { box-shadow: 0 0 0 3px rgba(79, 57, 246, 0.20); }
379
+
380
+ /* Divider */
381
+ .divide-theme > * + * { border-color: var(--org-glass-border); }
382
+
383
+ /* Tooltip border */
384
+ .border-r-theme-glass-heavy { border-right-color: var(--org-glass-bg-heavy); }
385
+
386
+ /* ═══════════════════════════════════════════════════════
387
+ Base Reset
245
388
  ═══════════════════════════════════════════════════════ */
246
389
  * {
247
390
  box-sizing: border-box;
@@ -256,14 +399,124 @@ body {
256
399
  -moz-osx-font-smoothing: grayscale;
257
400
  }
258
401
 
402
+ /* ═══════════════════════════════════════════════════════
403
+ Global Typography — Auto Theme Aware
404
+ ═══════════════════════════════════════════════════════ */
405
+ h1, h2, h3, h4, h5, h6 {
406
+ color: var(--org-text);
407
+ font-weight: 600;
408
+ line-height: 1.25;
409
+ margin: 0;
410
+ }
411
+
412
+ h1 { font-size: 2.5rem; letter-spacing: -0.025em; }
413
+ h2 { font-size: 2rem; letter-spacing: -0.02em; }
414
+ h3 { font-size: 1.5rem; letter-spacing: -0.015em; }
415
+ h4 { font-size: 1.25rem; }
416
+ h5 { font-size: 1rem; }
417
+ h6 { font-size: 0.875rem; }
418
+
419
+ p {
420
+ color: var(--org-text-secondary);
421
+ line-height: 1.6;
422
+ margin: 0;
423
+ }
424
+
425
+ small, .text-sm {
426
+ color: var(--org-text-muted);
427
+ font-size: 0.875rem;
428
+ }
429
+
430
+ label {
431
+ color: var(--org-text-secondary);
432
+ font-size: 0.875rem;
433
+ font-weight: 500;
434
+ }
435
+
436
+ a {
437
+ color: var(--color-primary-light);
438
+ text-decoration: none;
439
+ transition: color 0.3s cubic-bezier(0.25, 1, 0.5, 1);
440
+ }
441
+ a:hover { color: var(--color-primary-electric-light); }
442
+
443
+ strong, b {
444
+ color: var(--org-text);
445
+ font-weight: 600;
446
+ }
447
+
448
+ code, pre, kbd, samp {
449
+ font-family: ui-monospace, 'SFMono-Regular', 'Menlo', monospace;
450
+ font-size: 0.875em;
451
+ color: var(--org-text);
452
+ background: var(--org-subtle-5);
453
+ border-radius: 0.5rem;
454
+ padding: 0.125rem 0.375rem;
455
+ }
456
+
457
+ pre {
458
+ padding: 1rem;
459
+ overflow-x: auto;
460
+ border: 1px solid var(--org-border);
461
+ border-radius: 1rem;
462
+ }
463
+
464
+ ul, ol {
465
+ color: var(--org-text-secondary);
466
+ padding-left: 1.5rem;
467
+ margin: 0;
468
+ }
469
+
470
+ li { line-height: 1.6; }
471
+
472
+ blockquote {
473
+ border-left: 3px solid var(--color-primary-light);
474
+ padding-left: 1rem;
475
+ margin: 0;
476
+ color: var(--org-text-secondary);
477
+ font-style: italic;
478
+ }
479
+
480
+ hr {
481
+ border: none;
482
+ border-top: 1px solid var(--org-border);
483
+ margin: 1.5rem 0;
484
+ }
485
+
486
+ table {
487
+ width: 100%;
488
+ border-collapse: collapse;
489
+ color: var(--org-text);
490
+ }
491
+
492
+ th {
493
+ color: var(--org-text);
494
+ font-weight: 600;
495
+ text-align: left;
496
+ padding: 0.75rem;
497
+ border-bottom: 1px solid var(--org-border);
498
+ }
499
+
500
+ td {
501
+ color: var(--org-text-secondary);
502
+ padding: 0.75rem;
503
+ border-bottom: 1px solid var(--org-subtle-5);
504
+ }
505
+
506
+ input, textarea, select, button {
507
+ font-family: inherit;
508
+ font-size: inherit;
509
+ color: var(--org-text);
510
+ }
511
+
259
512
  /* ═══════════════════════════════════════════════════════
260
513
  Background Patterns
261
514
  ═══════════════════════════════════════════════════════ */
262
515
  .bg-dark-mesh {
263
516
  background-color: #191919;
264
517
  background-image:
265
- radial-gradient(circle at 15% 15%, rgba(36, 25, 121, 0.15) 0%, transparent 40%),
266
- radial-gradient(circle at 85% 85%, rgba(60, 20, 100, 0.08) 0%, transparent 40%);
518
+ radial-gradient(circle at 80% 10%, rgba(36, 25, 121, 0.15) 0%, transparent 40%),
519
+ radial-gradient(circle at 20% 80%, rgba(60, 20, 100, 0.08) 0%, transparent 40%);
267
520
  }
268
521
 
269
522
  .bg-cream-mesh {
@@ -273,6 +526,15 @@ body {
273
526
  radial-gradient(circle at 85% 85%, rgba(60, 20, 100, 0.03) 0%, transparent 40%);
274
527
  }
275
528
 
529
+ .bg-fluid-mesh {
530
+ background-color: #0b0c10;
531
+ background-image:
532
+ radial-gradient(at 0% 0%, #241979 0px, transparent 50%),
533
+ radial-gradient(at 100% 0%, #4F39F6 0px, transparent 50%),
534
+ radial-gradient(at 100% 100%, #241979 0px, transparent 50%),
535
+ radial-gradient(at 0% 100%, #110c3b 0px, transparent 50%);
536
+ }
537
+
276
538
  .grid-overlay {
277
539
  position: relative;
278
540
  }
@@ -281,8 +543,7 @@ body {
281
543
  content: '';
282
544
  position: absolute;
283
545
  inset: 0;
284
- background-image:
285
- radial-gradient(circle, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
546
+ background-image: radial-gradient(circle, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
286
547
  background-size: 32px 32px;
287
548
  pointer-events: none;
288
549
  z-index: 0;
@@ -306,62 +567,103 @@ body {
306
567
  }
307
568
 
308
569
  /* ═══════════════════════════════════════════════════════
309
- Glass Panels
310
- Human-Glass: glassmorphism with depth layers
570
+ Glow Orbs — ambient decorative elements
571
+ ═══════════════════════════════════════════════════════ */
572
+ .glow-orb {
573
+ position: absolute;
574
+ border-radius: 50%;
575
+ filter: blur(80px);
576
+ opacity: 0.15;
577
+ pointer-events: none;
578
+ animation: float 20s infinite ease-in-out;
579
+ }
580
+
581
+ .glow-orb-primary {
582
+ background: #4F39F6;
583
+ width: 300px;
584
+ height: 300px;
585
+ }
586
+
587
+ .glow-orb-secondary {
588
+ background: #241979;
589
+ width: 200px;
590
+ height: 200px;
591
+ }
592
+
593
+ .glow-orb-sm {
594
+ width: 120px;
595
+ height: 120px;
596
+ filter: blur(40px);
597
+ }
598
+
599
+ /* Watermark */
600
+ .watermark-d {
601
+ position: absolute;
602
+ font-size: 20rem;
603
+ font-weight: 700;
604
+ opacity: 0.01;
605
+ color: white;
606
+ pointer-events: none;
607
+ user-select: none;
608
+ }
609
+
610
+ /* ═══════════════════════════════════════════════════════
611
+ Glass Panels — Organic Design System
612
+ blur(40px) saturate(180%), organic border-radius 2.5rem
311
613
  ═══════════════════════════════════════════════════════ */
312
614
  .glass-panel {
313
- background: linear-gradient(145deg, rgba(31, 31, 33, 0.90), rgba(31, 31, 33, 0.70));
314
- backdrop-filter: blur(48px) saturate(1.2);
315
- -webkit-backdrop-filter: blur(48px) saturate(1.2);
316
- border: 1px solid rgba(255, 255, 255, 0.08);
317
- border-radius: 2rem;
318
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.30);
615
+ background: var(--org-glass-bg-heavy);
616
+ backdrop-filter: blur(40px) saturate(180%);
617
+ -webkit-backdrop-filter: blur(40px) saturate(180%);
618
+ border: 1px solid var(--org-glass-border);
619
+ border-radius: 2.5rem;
620
+ box-shadow: var(--org-shadow-glass);
319
621
  }
320
622
 
321
623
  .glass-panel-alt {
322
- background: linear-gradient(145deg, rgba(31, 31, 33, 0.85), rgba(31, 31, 33, 0.65));
323
- backdrop-filter: blur(32px) saturate(1.1);
324
- -webkit-backdrop-filter: blur(32px) saturate(1.1);
325
- border: 1px solid rgba(255, 255, 255, 0.12);
326
- border-radius: 1.5rem;
327
- box-shadow: 0 4px 24px rgba(0, 0, 0, 0.20);
624
+ background: var(--org-glass-surface);
625
+ backdrop-filter: blur(32px) saturate(160%);
626
+ -webkit-backdrop-filter: blur(32px) saturate(160%);
627
+ border: 1px solid var(--org-glass-border-medium);
628
+ border-radius: 2rem;
629
+ box-shadow: var(--org-shadow-glass-sm);
328
630
  }
329
631
 
330
632
  .glass-panel-highlight {
331
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.10), rgba(255, 255, 255, 0.05));
332
- backdrop-filter: blur(48px) saturate(1.2);
333
- -webkit-backdrop-filter: blur(48px) saturate(1.2);
334
- border: 1px solid rgba(255, 255, 255, 0.15);
335
- border-radius: 2rem;
336
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.20);
633
+ background: var(--org-glass-highlight);
634
+ backdrop-filter: blur(40px) saturate(180%);
635
+ -webkit-backdrop-filter: blur(40px) saturate(180%);
636
+ border: 1px solid var(--org-glass-border-strong);
637
+ border-radius: 2.5rem;
638
+ box-shadow: var(--org-shadow-glass);
337
639
  }
338
640
 
339
641
  .glass-card {
340
- background: linear-gradient(145deg, rgba(31, 31, 33, 0.80), rgba(31, 31, 33, 0.60));
341
- backdrop-filter: blur(24px);
342
- -webkit-backdrop-filter: blur(24px);
343
- border: 1px solid rgba(255, 255, 255, 0.08);
344
- border-radius: 1.5rem;
345
- transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
642
+ background: var(--org-glass-bg);
643
+ backdrop-filter: blur(24px) saturate(150%);
644
+ -webkit-backdrop-filter: blur(24px) saturate(150%);
645
+ border: 1px solid var(--org-glass-border);
646
+ border-radius: 2rem;
647
+ transition: all 400ms cubic-bezier(0.25, 1, 0.5, 1);
346
648
  }
347
649
 
348
650
  .glass-card:hover {
349
- border-color: rgba(255, 255, 255, 0.15);
350
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.30);
651
+ border-color: var(--org-glass-border-strong);
652
+ box-shadow: var(--org-shadow-glass);
351
653
  transform: translateY(-2px);
352
654
  }
353
655
 
354
656
  /* ═══════════════════════════════════════════════════════
355
- Glass Buttons
657
+ Glass Buttons — squircle radius, organic easing
356
658
  ═══════════════════════════════════════════════════════ */
357
659
  .glass-button {
358
- background: rgba(255, 255, 255, 0.08);
660
+ background: var(--org-glass-highlight);
359
661
  backdrop-filter: blur(16px);
360
662
  -webkit-backdrop-filter: blur(16px);
361
- border: 1px solid rgba(255, 255, 255, 0.12);
362
- color: white;
663
+ border: 1px solid var(--org-glass-border-medium);
664
+ color: var(--org-text);
363
665
  padding: 0.625rem 1.25rem;
364
- border-radius: 0.75rem;
666
+ border-radius: 1.25rem;
365
667
  font-size: 0.8125rem;
366
668
  font-weight: 500;
367
669
  cursor: pointer;
@@ -369,14 +671,14 @@ body {
369
671
  align-items: center;
370
672
  justify-content: center;
371
673
  gap: 0.5rem;
372
- transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
674
+ transition: all 400ms cubic-bezier(0.25, 1, 0.5, 1);
373
675
  text-decoration: none;
374
676
  }
375
677
 
376
678
  .glass-button:hover {
377
- background: rgba(255, 255, 255, 0.14);
378
- border-color: rgba(255, 255, 255, 0.25);
379
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.20);
679
+ background: var(--org-glass-border-medium);
680
+ border-color: var(--org-glass-border-strong);
681
+ box-shadow: var(--org-shadow-glass-sm);
380
682
  }
381
683
 
382
684
  .glass-button:active {
@@ -384,11 +686,11 @@ body {
384
686
  }
385
687
 
386
688
  .glass-btn-primary {
387
- background: linear-gradient(135deg, #4F39F6, #4C35DE);
388
- border: 1px solid rgba(79, 57, 246, 0.50);
689
+ background: linear-gradient(135deg, #4F39F6, #241979);
690
+ border: 1px solid rgba(79, 57, 246, 0.40);
389
691
  color: white;
390
692
  padding: 0.625rem 1.25rem;
391
- border-radius: 0.75rem;
693
+ border-radius: 1.25rem;
392
694
  font-size: 0.8125rem;
393
695
  font-weight: 500;
394
696
  cursor: pointer;
@@ -396,12 +698,12 @@ body {
396
698
  align-items: center;
397
699
  justify-content: center;
398
700
  gap: 0.5rem;
399
- transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
701
+ transition: all 400ms cubic-bezier(0.25, 1, 0.5, 1);
400
702
  box-shadow: 0 0 20px rgba(79, 57, 246, 0.30);
401
703
  }
402
704
 
403
705
  .glass-btn-primary:hover {
404
- background: linear-gradient(135deg, #5b42f2, #5a3ee6);
706
+ background: linear-gradient(135deg, #5b42f2, #2d1f99);
405
707
  box-shadow: 0 0 30px rgba(79, 57, 246, 0.45);
406
708
  transform: translateY(-1px);
407
709
  }
@@ -412,10 +714,10 @@ body {
412
714
 
413
715
  .glass-btn-outline {
414
716
  background: transparent;
415
- border: 1px solid rgba(255, 255, 255, 0.15);
416
- color: rgba(255, 255, 255, 0.80);
717
+ border: 1px solid var(--org-glass-border-strong);
718
+ color: var(--org-text-secondary);
417
719
  padding: 0.625rem 1.25rem;
418
- border-radius: 0.75rem;
720
+ border-radius: 1.25rem;
419
721
  font-size: 0.8125rem;
420
722
  font-weight: 500;
421
723
  cursor: pointer;
@@ -423,44 +725,44 @@ body {
423
725
  align-items: center;
424
726
  justify-content: center;
425
727
  gap: 0.5rem;
426
- transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
728
+ transition: all 400ms cubic-bezier(0.25, 1, 0.5, 1);
427
729
  }
428
730
 
429
731
  .glass-btn-outline:hover {
430
- border-color: rgba(255, 255, 255, 0.30);
431
- background: rgba(255, 255, 255, 0.05);
432
- color: white;
732
+ border-color: var(--org-primary-light);
733
+ background: var(--org-glass-highlight);
734
+ color: var(--org-text);
433
735
  }
434
736
 
435
737
  .glass-btn-sm {
436
738
  padding: 0.375rem 0.75rem;
437
739
  font-size: 0.75rem;
438
- border-radius: 0.5rem;
740
+ border-radius: 1rem;
439
741
  }
440
742
 
441
743
  .glass-btn-lg {
442
744
  padding: 0.875rem 2rem;
443
745
  font-size: 0.9375rem;
444
- border-radius: 1rem;
746
+ border-radius: 1.5rem;
445
747
  }
446
748
 
447
749
  /* ═══════════════════════════════════════════════════════
448
- Glass Inputs
750
+ Glass Inputs — squircle radius, focus glow
449
751
  ═══════════════════════════════════════════════════════ */
450
752
  .glass-input,
451
753
  .input-glass {
452
- background: rgba(255, 255, 255, 0.05);
754
+ background: var(--org-glass-highlight);
453
755
  backdrop-filter: blur(16px);
454
756
  -webkit-backdrop-filter: blur(16px);
455
- border: 1px solid rgba(255, 255, 255, 0.08);
456
- border-radius: 0.75rem;
757
+ border: 1px solid var(--org-glass-border);
758
+ border-radius: 1.25rem;
457
759
  padding: 0.75rem 1rem;
458
760
  font-size: 0.875rem;
459
761
  font-weight: 300;
460
762
  color: var(--org-text);
461
763
  outline: none;
462
764
  width: 100%;
463
- transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
765
+ transition: all 400ms cubic-bezier(0.25, 1, 0.5, 1);
464
766
  }
465
767
 
466
768
  .glass-input::placeholder,
@@ -472,16 +774,16 @@ body {
472
774
  .glass-input:focus,
473
775
  .input-glass:focus {
474
776
  border-color: rgba(79, 57, 246, 0.50);
475
- background: rgba(255, 255, 255, 0.08);
777
+ background: var(--org-glass-border-medium);
476
778
  box-shadow: 0 0 0 3px rgba(79, 57, 246, 0.10), 0 0 20px rgba(79, 57, 246, 0.08);
477
779
  }
478
780
 
479
781
  .glass-textarea {
480
- background: rgba(255, 255, 255, 0.05);
782
+ background: var(--org-glass-highlight);
481
783
  backdrop-filter: blur(16px);
482
784
  -webkit-backdrop-filter: blur(16px);
483
- border: 1px solid rgba(255, 255, 255, 0.08);
484
- border-radius: 0.75rem;
785
+ border: 1px solid var(--org-glass-border);
786
+ border-radius: 1.25rem;
485
787
  padding: 0.75rem 1rem;
486
788
  font-size: 0.875rem;
487
789
  font-weight: 300;
@@ -490,12 +792,12 @@ body {
490
792
  width: 100%;
491
793
  min-height: 100px;
492
794
  resize: vertical;
493
- transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
795
+ transition: all 400ms cubic-bezier(0.25, 1, 0.5, 1);
494
796
  }
495
797
 
496
798
  .glass-textarea:focus {
497
799
  border-color: rgba(79, 57, 246, 0.50);
498
- background: rgba(255, 255, 255, 0.08);
800
+ background: var(--org-glass-border-medium);
499
801
  box-shadow: 0 0 0 3px rgba(79, 57, 246, 0.10);
500
802
  }
501
803
 
@@ -511,8 +813,8 @@ body {
511
813
  font-size: 0.6875rem;
512
814
  font-weight: 500;
513
815
  letter-spacing: 0.025em;
514
- background: rgba(255, 255, 255, 0.06);
515
- border: 1px solid rgba(255, 255, 255, 0.08);
816
+ background: var(--org-glass-highlight);
817
+ border: 1px solid var(--org-glass-border);
516
818
  color: var(--org-text-secondary);
517
819
  }
518
820
 
@@ -547,12 +849,12 @@ body {
547
849
  }
548
850
 
549
851
  /* ═══════════════════════════════════════════════════════
550
- Alerts — Glow variants
852
+ Alerts — Organic glow variants
551
853
  ═══════════════════════════════════════════════════════ */
552
854
  .alert-success {
553
855
  background: rgba(16, 185, 129, 0.08);
554
856
  border: 1px solid rgba(16, 185, 129, 0.25);
555
- border-radius: 1rem;
857
+ border-radius: 1.25rem;
556
858
  padding: 1rem 1.25rem;
557
859
  box-shadow: 0 0 20px rgba(16, 185, 129, 0.10);
558
860
  }
@@ -560,7 +862,7 @@ body {
560
862
  .alert-error {
561
863
  background: rgba(224, 17, 95, 0.08);
562
864
  border: 1px solid rgba(224, 17, 95, 0.25);
563
- border-radius: 1rem;
865
+ border-radius: 1.25rem;
564
866
  padding: 1rem 1.25rem;
565
867
  box-shadow: 0 0 20px rgba(224, 17, 95, 0.10);
566
868
  }
@@ -568,7 +870,7 @@ body {
568
870
  .alert-warning {
569
871
  background: rgba(245, 158, 11, 0.08);
570
872
  border: 1px solid rgba(245, 158, 11, 0.25);
571
- border-radius: 1rem;
873
+ border-radius: 1.25rem;
572
874
  padding: 1rem 1.25rem;
573
875
  box-shadow: 0 0 20px rgba(245, 158, 11, 0.10);
574
876
  }
@@ -576,7 +878,7 @@ body {
576
878
  .alert-info {
577
879
  background: rgba(59, 130, 246, 0.08);
578
880
  border: 1px solid rgba(59, 130, 246, 0.25);
579
- border-radius: 1rem;
881
+ border-radius: 1.25rem;
580
882
  padding: 1rem 1.25rem;
581
883
  box-shadow: 0 0 20px rgba(59, 130, 246, 0.10);
582
884
  }
@@ -590,14 +892,14 @@ body {
590
892
  Toasts — Floating notifications
591
893
  ═══════════════════════════════════════════════════════ */
592
894
  .toast {
593
- background: linear-gradient(145deg, rgba(31, 31, 33, 0.95), rgba(31, 31, 33, 0.85));
594
- backdrop-filter: blur(24px);
595
- -webkit-backdrop-filter: blur(24px);
596
- border: 1px solid rgba(255, 255, 255, 0.08);
597
- border-radius: 1rem;
895
+ background: var(--org-glass-bg-heavy);
896
+ backdrop-filter: blur(40px) saturate(180%);
897
+ -webkit-backdrop-filter: blur(40px) saturate(180%);
898
+ border: 1px solid var(--org-glass-border);
899
+ border-radius: 1.25rem;
598
900
  padding: 0.875rem 1.25rem;
599
- box-shadow: 0 12px 40px rgba(0, 0, 0, 0.40);
600
- animation: slide-up 0.3s ease-out;
901
+ box-shadow: var(--org-shadow-glass);
902
+ animation: slide-up 0.4s cubic-bezier(0.25, 1, 0.5, 1);
601
903
  }
602
904
 
603
905
  .toast-success { border-left: 3px solid #10B981; }
@@ -609,8 +911,8 @@ body {
609
911
  Skeleton Loader
610
912
  ═══════════════════════════════════════════════════════ */
611
913
  .skeleton {
612
- background: rgba(255, 255, 255, 0.05);
613
- border-radius: 0.5rem;
914
+ background: var(--org-glass-highlight);
915
+ border-radius: 1rem;
614
916
  overflow: hidden;
615
917
  position: relative;
616
918
  }
@@ -619,13 +921,13 @@ body {
619
921
  content: '';
620
922
  position: absolute;
621
923
  inset: 0;
622
- background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.06), transparent);
924
+ background: linear-gradient(90deg, transparent, var(--org-glass-border-medium), transparent);
623
925
  animation: shimmer 2s infinite;
624
926
  transform: translateX(-100%);
625
927
  }
626
928
 
627
929
  .skeleton-shimmer {
628
- background: rgba(255, 255, 255, 0.05);
930
+ background: var(--org-glass-highlight);
629
931
  position: relative;
630
932
  overflow: hidden;
631
933
  }
@@ -634,7 +936,7 @@ body {
634
936
  content: '';
635
937
  position: absolute;
636
938
  inset: 0;
637
- background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.08), transparent);
939
+ background: linear-gradient(90deg, transparent, var(--org-glass-border-medium), transparent);
638
940
  animation: shimmer 2s infinite;
639
941
  transform: translateX(-100%);
640
942
  }
@@ -645,7 +947,7 @@ body {
645
947
  .progress-track {
646
948
  width: 100%;
647
949
  height: 6px;
648
- background: rgba(255, 255, 255, 0.06);
950
+ background: var(--org-glass-highlight);
649
951
  border-radius: 9999px;
650
952
  overflow: hidden;
651
953
  }
@@ -653,9 +955,9 @@ body {
653
955
  .progress-fill {
654
956
  height: 100%;
655
957
  border-radius: 9999px;
656
- background: linear-gradient(90deg, #4F39F6, #4C35DE);
958
+ background: linear-gradient(90deg, #4F39F6, #241979);
657
959
  box-shadow: 0 0 10px rgba(79, 57, 246, 0.40);
658
- transition: width 500ms cubic-bezier(0.4, 0, 0.2, 1);
960
+ transition: width 500ms cubic-bezier(0.25, 1, 0.5, 1);
659
961
  }
660
962
 
661
963
  .progress-fill-success {
@@ -676,47 +978,33 @@ body {
676
978
  /* ═══════════════════════════════════════════════════════
677
979
  Glows & Shadows
678
980
  ═══════════════════════════════════════════════════════ */
679
- .shadow-glow {
680
- box-shadow: 0 0 20px rgba(79, 57, 246, 0.40);
681
- }
682
-
683
- .shadow-glow-primary {
684
- box-shadow: 0 0 20px rgba(79, 57, 246, 0.30), 0 4px 12px rgba(79, 57, 246, 0.20);
685
- }
686
-
687
- .shadow-glow-error {
688
- box-shadow: 0 0 20px rgba(224, 17, 95, 0.30), 0 4px 12px rgba(224, 17, 95, 0.20);
689
- }
690
-
691
- .shadow-neon {
692
- box-shadow: 0 0 10px rgba(79, 57, 246, 0.40), 0 0 20px rgba(79, 57, 246, 0.20);
693
- }
694
-
695
- .shadow-neon-glow {
696
- box-shadow: 0 0 30px rgba(79, 57, 246, 0.40), 0 0 60px rgba(79, 57, 246, 0.20);
697
- }
981
+ .shadow-glow { box-shadow: 0 0 20px rgba(79, 57, 246, 0.40); }
982
+ .shadow-glow-primary { box-shadow: 0 0 20px rgba(79, 57, 246, 0.30), 0 4px 12px rgba(79, 57, 246, 0.20); }
983
+ .shadow-glow-error { box-shadow: 0 0 20px rgba(224, 17, 95, 0.30), 0 4px 12px rgba(224, 17, 95, 0.20); }
984
+ .shadow-glow-soft { box-shadow: 0 4px 30px rgba(79, 57, 246, 0.15); }
985
+ .shadow-neon { box-shadow: 0 0 10px rgba(79, 57, 246, 0.40), 0 0 20px rgba(79, 57, 246, 0.20); }
986
+ .shadow-neon-glow { box-shadow: 0 0 30px rgba(79, 57, 246, 0.40), 0 0 60px rgba(79, 57, 246, 0.20); }
698
987
 
699
988
  .shadow-glass-lg {
700
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.30), 0 1px 1px rgba(255, 255, 255, 0.05) inset;
989
+ box-shadow: 0 12px 48px rgba(0, 0, 0, 0.50), inset 0 1px 0 0 rgba(255, 255, 255, 0.05);
701
990
  }
702
991
 
703
992
  .shadow-glass-xl {
704
- box-shadow: 0 12px 48px rgba(0, 0, 0, 0.40), 0 1px 1px rgba(255, 255, 255, 0.05) inset;
993
+ box-shadow: 10px 10px 40px rgba(0, 0, 0, 0.40);
994
+ }
995
+
996
+ .shadow-inner-light {
997
+ box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.05);
705
998
  }
706
999
 
707
1000
  /* ═══════════════════════════════════════════════════════
708
1001
  Text Effects
709
1002
  ═══════════════════════════════════════════════════════ */
710
- .text-glow {
711
- text-shadow: 0 0 15px rgba(79, 57, 246, 0.60);
712
- }
713
-
714
- .text-glow-sm {
715
- text-shadow: 0 0 8px rgba(79, 57, 246, 0.40);
716
- }
1003
+ .text-glow { text-shadow: 0 0 15px rgba(79, 57, 246, 0.60); }
1004
+ .text-glow-sm { text-shadow: 0 0 8px rgba(79, 57, 246, 0.40); }
717
1005
 
718
1006
  .text-gradient {
719
- background: linear-gradient(to right, #4F39F6, #4C35DE);
1007
+ background: linear-gradient(to right, #4F39F6, #241979);
720
1008
  -webkit-background-clip: text;
721
1009
  -webkit-text-fill-color: transparent;
722
1010
  background-clip: text;
@@ -732,35 +1020,19 @@ body {
732
1020
  /* ═══════════════════════════════════════════════════════
733
1021
  Geometric Clips
734
1022
  ═══════════════════════════════════════════════════════ */
735
- .clip-geo {
736
- clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 100% 100%, 0 100%);
737
- }
738
-
739
- .clip-geo-inv {
740
- clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 0);
741
- }
742
-
743
- .clip-geo-br {
744
- clip-path: polygon(0 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 0);
745
- }
746
-
747
- .rounded-pill-asym {
748
- border-radius: 12px 16px 12px 16px;
749
- }
1023
+ .clip-geo { clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 100% 100%, 0 100%); }
1024
+ .clip-geo-inv { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 0); }
1025
+ .clip-geo-br { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 0); }
1026
+ .rounded-pill-asym { border-radius: 12px 16px 12px 16px; }
750
1027
 
751
1028
  /* ═══════════════════════════════════════════════════════
752
- Icons — thin-icon utility for SVG icons
1029
+ Icons — thin-icon utility
753
1030
  ═══════════════════════════════════════════════════════ */
754
- .thin-icon {
755
- stroke-width: 1;
756
- }
757
-
758
- .thin-icon svg {
759
- stroke-width: 1;
760
- }
1031
+ .thin-icon { stroke-width: 1; }
1032
+ .thin-icon svg { stroke-width: 1; }
761
1033
 
762
1034
  /* ═══════════════════════════════════════════════════════
763
- Dock / Bottom Nav
1035
+ Dock / Bottom Nav — Organic Glass
764
1036
  ═══════════════════════════════════════════════════════ */
765
1037
  .dock-glass {
766
1038
  position: fixed;
@@ -772,9 +1044,9 @@ body {
772
1044
  gap: 0.25rem;
773
1045
  padding: 0.5rem 0.75rem;
774
1046
  background: linear-gradient(145deg, rgba(31, 31, 33, 0.92), rgba(31, 31, 33, 0.80));
775
- backdrop-filter: blur(48px) saturate(1.2);
776
- -webkit-backdrop-filter: blur(48px) saturate(1.2);
777
- border: 1px solid rgba(255, 255, 255, 0.08);
1047
+ backdrop-filter: blur(40px) saturate(180%);
1048
+ -webkit-backdrop-filter: blur(40px) saturate(180%);
1049
+ border: 1px solid rgba(255, 255, 255, 0.03);
778
1050
  border-radius: 9999px;
779
1051
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.50);
780
1052
  z-index: 50;
@@ -786,16 +1058,16 @@ body {
786
1058
  justify-content: center;
787
1059
  width: 2.75rem;
788
1060
  height: 2.75rem;
789
- border-radius: 0.75rem;
1061
+ border-radius: 1rem;
790
1062
  background: transparent;
791
1063
  border: none;
792
1064
  color: rgba(255, 255, 255, 0.50);
793
1065
  cursor: pointer;
794
- transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
1066
+ transition: all 400ms cubic-bezier(0.25, 1, 0.5, 1);
795
1067
  }
796
1068
 
797
1069
  .dock-btn:hover {
798
- background: rgba(255, 255, 255, 0.08);
1070
+ background: rgba(255, 255, 255, 0.05);
799
1071
  color: white;
800
1072
  }
801
1073
 
@@ -815,7 +1087,7 @@ body {
815
1087
  border-radius: 9999px;
816
1088
  overflow: hidden;
817
1089
  background: linear-gradient(135deg, rgba(79, 57, 246, 0.20), rgba(79, 57, 246, 0.10));
818
- border: 2px solid rgba(255, 255, 255, 0.10);
1090
+ border: 2px solid rgba(255, 255, 255, 0.08);
819
1091
  flex-shrink: 0;
820
1092
  }
821
1093
 
@@ -824,30 +1096,25 @@ body {
824
1096
  .avatar-lg { width: 3.5rem; height: 3.5rem; font-size: 1rem; }
825
1097
  .avatar-xl { width: 5rem; height: 5rem; font-size: 1.5rem; }
826
1098
 
827
- .avatar-group {
828
- display: flex;
829
- }
830
-
831
- .avatar-group .avatar + .avatar {
832
- margin-left: -0.5rem;
833
- }
1099
+ .avatar-group { display: flex; }
1100
+ .avatar-group .avatar + .avatar { margin-left: -0.5rem; }
834
1101
 
835
1102
  /* ═══════════════════════════════════════════════════════
836
- Metric Card
1103
+ Metric Card — Organic glass
837
1104
  ═══════════════════════════════════════════════════════ */
838
1105
  .metric-card {
839
- background: linear-gradient(145deg, rgba(31, 31, 33, 0.80), rgba(31, 31, 33, 0.60));
840
- backdrop-filter: blur(24px);
841
- -webkit-backdrop-filter: blur(24px);
842
- border: 1px solid rgba(255, 255, 255, 0.06);
843
- border-radius: 1.5rem;
1106
+ background: var(--org-glass-bg-heavy);
1107
+ backdrop-filter: blur(40px) saturate(180%);
1108
+ -webkit-backdrop-filter: blur(40px) saturate(180%);
1109
+ border: 1px solid var(--org-glass-border);
1110
+ border-radius: 2.5rem;
844
1111
  padding: 1.5rem;
845
- transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
1112
+ transition: all 400ms cubic-bezier(0.25, 1, 0.5, 1);
846
1113
  }
847
1114
 
848
1115
  .metric-card:hover {
849
- border-color: rgba(255, 255, 255, 0.12);
850
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
1116
+ border-color: var(--org-glass-border-medium);
1117
+ box-shadow: var(--org-shadow-glass);
851
1118
  }
852
1119
 
853
1120
  /* ═══════════════════════════════════════════════════════
@@ -864,7 +1131,7 @@ body {
864
1131
  flex: 1;
865
1132
  border-radius: 2px 2px 0 0;
866
1133
  background: rgba(79, 57, 246, 0.40);
867
- transition: height 500ms cubic-bezier(0.4, 0, 0.2, 1);
1134
+ transition: height 500ms cubic-bezier(0.25, 1, 0.5, 1);
868
1135
  min-width: 4px;
869
1136
  }
870
1137
 
@@ -875,21 +1142,14 @@ body {
875
1142
  /* ═══════════════════════════════════════════════════════
876
1143
  Scrollbar
877
1144
  ═══════════════════════════════════════════════════════ */
878
- .custom-scrollbar::-webkit-scrollbar {
879
- width: 4px;
880
- }
881
-
882
- .custom-scrollbar::-webkit-scrollbar-track {
883
- background: transparent;
884
- }
885
-
1145
+ .custom-scrollbar::-webkit-scrollbar { width: 4px; }
1146
+ .custom-scrollbar::-webkit-scrollbar-track { background: transparent; }
886
1147
  .custom-scrollbar::-webkit-scrollbar-thumb {
887
- background: rgba(255, 255, 255, 0.08);
1148
+ background: rgba(255, 255, 255, 0.05);
888
1149
  border-radius: 9999px;
889
1150
  }
890
-
891
1151
  .custom-scrollbar::-webkit-scrollbar-thumb:hover {
892
- background: rgba(255, 255, 255, 0.15);
1152
+ background: rgba(255, 255, 255, 0.10);
893
1153
  }
894
1154
 
895
1155
  /* ═══════════════════════════════════════════════════════
@@ -908,8 +1168,8 @@ body {
908
1168
  width: 4rem;
909
1169
  height: 4rem;
910
1170
  border-radius: 1.5rem;
911
- background: rgba(255, 255, 255, 0.05);
912
- border: 1px solid rgba(255, 255, 255, 0.06);
1171
+ background: var(--org-glass-highlight);
1172
+ border: 1px solid var(--org-glass-border);
913
1173
  display: flex;
914
1174
  align-items: center;
915
1175
  justify-content: center;
@@ -918,41 +1178,42 @@ body {
918
1178
  }
919
1179
 
920
1180
  /* ═══════════════════════════════════════════════════════
921
- Light Theme Overrides — Glass Components
1181
+ Light / Cream Theme Overrides — Glass Components
922
1182
  ═══════════════════════════════════════════════════════ */
923
1183
  [data-theme='light'] .glass-panel,
924
1184
  .theme-cream .glass-panel {
925
- background: rgba(255, 255, 255, 0.65);
926
- border-color: rgba(0, 0, 0, 0.04);
927
- box-shadow: 0 4px 24px rgba(0, 0, 0, 0.03);
1185
+ background: rgba(255, 255, 255, 0.70);
1186
+ border-color: rgba(36, 25, 121, 0.03);
1187
+ box-shadow: 0 4px 24px rgba(36, 25, 121, 0.04);
1188
+ backdrop-filter: blur(40px) saturate(180%);
928
1189
  }
929
1190
 
930
1191
  [data-theme='light'] .glass-panel-alt,
931
1192
  .theme-cream .glass-panel-alt {
932
1193
  background: rgba(255, 255, 255, 0.80);
933
- border-color: rgba(0, 0, 0, 0.06);
934
- box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
1194
+ border-color: rgba(36, 25, 121, 0.06);
1195
+ box-shadow: 0 2px 12px rgba(36, 25, 121, 0.03);
935
1196
  }
936
1197
 
937
1198
  [data-theme='light'] .glass-panel-highlight,
938
1199
  .theme-cream .glass-panel-highlight {
939
1200
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.80), rgba(255, 255, 255, 0.60));
940
- border-color: rgba(0, 0, 0, 0.06);
941
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
1201
+ border-color: rgba(36, 25, 121, 0.06);
1202
+ box-shadow: 0 4px 16px rgba(36, 25, 121, 0.03);
942
1203
  }
943
1204
 
944
1205
  [data-theme='light'] .glass-card,
945
1206
  .theme-cream .glass-card {
946
1207
  background: rgba(255, 255, 255, 0.70);
947
- border-color: rgba(0, 0, 0, 0.04);
1208
+ border-color: rgba(36, 25, 121, 0.03);
948
1209
  }
949
1210
 
950
1211
  [data-theme='light'] .glass-input,
951
1212
  [data-theme='light'] .input-glass,
952
1213
  .theme-cream .glass-input,
953
1214
  .theme-cream .input-glass {
954
- background: rgba(0, 0, 0, 0.03);
955
- border-color: rgba(0, 0, 0, 0.08);
1215
+ background: rgba(255, 255, 255, 0.60);
1216
+ border-color: rgba(36, 25, 121, 0.06);
956
1217
  color: #191919;
957
1218
  }
958
1219
 
@@ -968,33 +1229,40 @@ body {
968
1229
  .theme-cream .glass-input:focus,
969
1230
  .theme-cream .input-glass:focus {
970
1231
  border-color: rgba(79, 57, 246, 0.40);
971
- background: rgba(0, 0, 0, 0.04);
1232
+ background: rgba(255, 255, 255, 0.80);
972
1233
  box-shadow: 0 0 0 3px rgba(79, 57, 246, 0.08);
973
1234
  }
974
1235
 
975
1236
  [data-theme='light'] .glass-button,
976
1237
  .theme-cream .glass-button {
977
- background: rgba(0, 0, 0, 0.04);
978
- border-color: rgba(0, 0, 0, 0.08);
1238
+ background: rgba(255, 255, 255, 0.60);
1239
+ border-color: rgba(36, 25, 121, 0.06);
979
1240
  color: #191919;
1241
+ box-shadow: 0 2px 8px rgba(36, 25, 121, 0.08);
980
1242
  }
981
1243
 
982
1244
  [data-theme='light'] .glass-button:hover,
983
1245
  .theme-cream .glass-button:hover {
984
- background: rgba(0, 0, 0, 0.08);
985
- border-color: rgba(0, 0, 0, 0.12);
1246
+ background: rgba(255, 255, 255, 0.80);
1247
+ border-color: rgba(36, 25, 121, 0.10);
1248
+ box-shadow: 0 4px 16px rgba(36, 25, 121, 0.10);
1249
+ }
1250
+
1251
+ [data-theme='light'] .glass-btn-primary,
1252
+ .theme-cream .glass-btn-primary {
1253
+ box-shadow: 0 4px 16px rgba(36, 25, 121, 0.20);
986
1254
  }
987
1255
 
988
1256
  [data-theme='light'] .glass-btn-outline,
989
1257
  .theme-cream .glass-btn-outline {
990
- border-color: rgba(0, 0, 0, 0.12);
1258
+ border-color: rgba(36, 25, 121, 0.12);
991
1259
  color: #191919;
992
1260
  }
993
1261
 
994
1262
  [data-theme='light'] .glass-pill,
995
1263
  .theme-cream .glass-pill {
996
- background: rgba(0, 0, 0, 0.04);
997
- border-color: rgba(0, 0, 0, 0.06);
1264
+ background: rgba(255, 255, 255, 0.60);
1265
+ border-color: rgba(36, 25, 121, 0.06);
998
1266
  color: #4b5563;
999
1267
  }
1000
1268
 
@@ -1002,28 +1270,28 @@ body {
1002
1270
  [data-theme='light'] .skeleton-shimmer,
1003
1271
  .theme-cream .skeleton,
1004
1272
  .theme-cream .skeleton-shimmer {
1005
- background: rgba(0, 0, 0, 0.04);
1273
+ background: rgba(36, 25, 121, 0.03);
1006
1274
  }
1007
1275
 
1008
1276
  [data-theme='light'] .skeleton::after,
1009
1277
  [data-theme='light'] .skeleton-shimmer::after,
1010
1278
  .theme-cream .skeleton::after,
1011
1279
  .theme-cream .skeleton-shimmer::after {
1012
- background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.04), transparent);
1280
+ background: linear-gradient(90deg, transparent, rgba(36, 25, 121, 0.04), transparent);
1013
1281
  }
1014
1282
 
1015
1283
  [data-theme='light'] .toast,
1016
1284
  .theme-cream .toast {
1017
- background: linear-gradient(145deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.90));
1018
- border-color: rgba(0, 0, 0, 0.06);
1019
- box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
1285
+ background: rgba(255, 255, 255, 0.90);
1286
+ border-color: rgba(36, 25, 121, 0.06);
1287
+ box-shadow: 0 12px 40px rgba(36, 25, 121, 0.08);
1020
1288
  }
1021
1289
 
1022
1290
  [data-theme='light'] .dock-glass,
1023
1291
  .theme-cream .dock-glass {
1024
1292
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.80));
1025
- border-color: rgba(0, 0, 0, 0.06);
1026
- box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
1293
+ border-color: rgba(36, 25, 121, 0.06);
1294
+ box-shadow: 0 12px 40px rgba(36, 25, 121, 0.08);
1027
1295
  }
1028
1296
 
1029
1297
  [data-theme='light'] .dock-btn,
@@ -1033,7 +1301,7 @@ body {
1033
1301
 
1034
1302
  [data-theme='light'] .dock-btn:hover,
1035
1303
  .theme-cream .dock-btn:hover {
1036
- background: rgba(0, 0, 0, 0.05);
1304
+ background: rgba(36, 25, 121, 0.03);
1037
1305
  color: #191919;
1038
1306
  }
1039
1307
 
@@ -1050,7 +1318,8 @@ body {
1050
1318
  [data-theme='light'] .metric-card,
1051
1319
  .theme-cream .metric-card {
1052
1320
  background: rgba(255, 255, 255, 0.70);
1053
- border-color: rgba(0, 0, 0, 0.04);
1321
+ border-color: rgba(36, 25, 121, 0.03);
1322
+ box-shadow: 0 4px 24px rgba(36, 25, 121, 0.04);
1054
1323
  }
1055
1324
 
1056
1325
  [data-theme='light'] .mini-chart-bar,
@@ -1065,27 +1334,64 @@ body {
1065
1334
 
1066
1335
  [data-theme='light'] .custom-scrollbar::-webkit-scrollbar-thumb,
1067
1336
  .theme-cream .custom-scrollbar::-webkit-scrollbar-thumb {
1068
- background: rgba(0, 0, 0, 0.08);
1337
+ background: rgba(36, 25, 121, 0.06);
1069
1338
  }
1070
1339
 
1071
1340
  [data-theme='light'] .custom-scrollbar::-webkit-scrollbar-thumb:hover,
1072
1341
  .theme-cream .custom-scrollbar::-webkit-scrollbar-thumb:hover {
1073
- background: rgba(0, 0, 0, 0.15);
1342
+ background: rgba(36, 25, 121, 0.10);
1074
1343
  }
1075
1344
 
1076
1345
  [data-theme='light'] .empty-state-icon,
1077
1346
  .theme-cream .empty-state-icon {
1078
- background: rgba(0, 0, 0, 0.04);
1079
- border-color: rgba(0, 0, 0, 0.06);
1347
+ background: rgba(36, 25, 121, 0.03);
1348
+ border-color: rgba(36, 25, 121, 0.06);
1349
+ }
1350
+
1351
+ [data-theme='light'] .shadow-glass-lg,
1352
+ .theme-cream .shadow-glass-lg {
1353
+ box-shadow: 0 8px 32px rgba(36, 25, 121, 0.06);
1354
+ }
1355
+
1356
+ /* ═══════════════════════════════════════════════════════
1357
+ Fluid Theme Overrides — neon glows, squircle panels
1358
+ ═══════════════════════════════════════════════════════ */
1359
+ [data-theme='fluid'] .glass-panel {
1360
+ background: rgba(255, 255, 255, 0.03);
1361
+ border-color: rgba(255, 255, 255, 0.05);
1362
+ border-radius: 2rem;
1363
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.60);
1364
+ }
1365
+
1366
+ [data-theme='fluid'] .glass-card {
1367
+ background: rgba(255, 255, 255, 0.03);
1368
+ border-color: rgba(255, 255, 255, 0.05);
1369
+ border-radius: 1.5rem;
1370
+ }
1371
+
1372
+ [data-theme='fluid'] .glass-btn-primary {
1373
+ box-shadow: 0 0 20px rgba(79, 57, 246, 0.40), 0 0 40px rgba(79, 57, 246, 0.15);
1374
+ }
1375
+
1376
+ [data-theme='fluid'] .glass-btn-primary:hover {
1377
+ box-shadow: 0 0 30px rgba(79, 57, 246, 0.50), 0 0 60px rgba(79, 57, 246, 0.25);
1378
+ }
1379
+
1380
+ [data-theme='fluid'] .glass-input:focus,
1381
+ [data-theme='fluid'] .input-glass:focus {
1382
+ box-shadow: 0 0 0 3px rgba(79, 57, 246, 0.15), 0 0 20px rgba(79, 57, 246, 0.10);
1383
+ }
1384
+
1385
+ [data-theme='fluid'] .metric-card {
1386
+ background: rgba(255, 255, 255, 0.03);
1387
+ border-color: rgba(255, 255, 255, 0.05);
1080
1388
  }
1081
1389
 
1082
1390
  /* ═══════════════════════════════════════════════════════
1083
1391
  Keyframes
1084
1392
  ═══════════════════════════════════════════════════════ */
1085
1393
  @keyframes shimmer {
1086
- 100% {
1087
- transform: translateX(100%);
1088
- }
1394
+ 100% { transform: translateX(100%); }
1089
1395
  }
1090
1396
 
1091
1397
  @keyframes spin-slow {
@@ -1099,6 +1405,12 @@ body {
1099
1405
  }
1100
1406
 
1101
1407
  @keyframes float {
1408
+ 0% { transform: translate(0, 0) rotate(0deg); }
1409
+ 50% { transform: translate(-20px, 20px) rotate(2deg); }
1410
+ 100% { transform: translate(0, 0) rotate(0deg); }
1411
+ }
1412
+
1413
+ @keyframes float-subtle {
1102
1414
  0%, 100% { transform: translateY(0); }
1103
1415
  50% { transform: translateY(-8px); }
1104
1416
  }
@@ -1113,6 +1425,10 @@ body {
1113
1425
  to { opacity: 1; transform: translateY(0); }
1114
1426
  }
1115
1427
 
1428
+ @keyframes draw-line {
1429
+ to { stroke-dashoffset: 0; }
1430
+ }
1431
+
1116
1432
  @keyframes org-loader-spin {
1117
1433
  0% { transform: rotate(0deg); }
1118
1434
  100% { transform: rotate(360deg); }
@@ -1127,3 +1443,21 @@ body {
1127
1443
  0%, 100% { opacity: 0.2; }
1128
1444
  50% { opacity: 0.4; }
1129
1445
  }
1446
+
1447
+ @keyframes cta-pulse {
1448
+ 0% { transform: scale(1); opacity: 1; }
1449
+ 50% { transform: scale(1.05); opacity: 0.6; }
1450
+ 100% { transform: scale(1.1); opacity: 0; }
1451
+ }
1452
+
1453
+ .animate-cta-pulse {
1454
+ animation: cta-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
1455
+ }
1456
+
1457
+ .animate-float {
1458
+ animation: float 20s infinite ease-in-out;
1459
+ }
1460
+
1461
+ .animate-float-subtle {
1462
+ animation: float-subtle 6s infinite ease-in-out;
1463
+ }