@cupcodev/ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1193 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
4
+
5
+ @import "./tokens.css";
6
+
7
+ @layer base {
8
+ * {
9
+ @apply border-border;
10
+ }
11
+
12
+ html {
13
+ min-width: 380px;
14
+ }
15
+
16
+ body {
17
+ @apply bg-background text-foreground;
18
+ font-family: var(--font-ui);
19
+ }
20
+
21
+ h1, h2, h3, h4, h5, h6 {
22
+ font-family: var(--font-display);
23
+ font-weight: 700;
24
+ }
25
+
26
+ h1 { font-size: 2.25rem; line-height: 1.1; } /* 36px */
27
+ h2 { font-size: 1.875rem; line-height: 1.15; } /* 30px */
28
+ h3 { font-size: 1.5rem; line-height: 1.2; } /* 24px */
29
+ h4 { font-size: 1.25rem; line-height: 1.3; } /* 20px */
30
+ h5 { font-size: 1.125rem; line-height: 1.3; } /* 18px */
31
+ h6 { font-size: 1rem; line-height: 1.4; } /* 16px */
32
+
33
+ video {
34
+ appearance: none;
35
+ transform: translateZ(0);
36
+ filter: grayscale(0);
37
+ }
38
+ }
39
+
40
+ @layer components {
41
+ /* ===== LEGACY COLOR UTILITIES ===== */
42
+ .text-color-one { color: var(--color-one); }
43
+ .text-color-two { color: var(--color-two); }
44
+ .text-color-three { color: var(--color-three); }
45
+ .text-color-four { color: var(--color-four); }
46
+ .bg-color-one { background-color: var(--color-one); }
47
+ .bg-color-two { background-color: var(--color-two); }
48
+ .bg-color-three { background-color: var(--color-three); }
49
+ .bg-color-four { background-color: var(--color-four); }
50
+
51
+ /* ===== GLASS MORPHISM UTILITIES ===== */
52
+ .glass {
53
+ background: var(--glass-bg);
54
+ backdrop-filter: blur(var(--glass-blur-md));
55
+ -webkit-backdrop-filter: blur(var(--glass-blur-md));
56
+ border: 1px solid var(--glass-border);
57
+ position: relative;
58
+ }
59
+
60
+ .glass::before {
61
+ content: '';
62
+ position: absolute;
63
+ inset: 0;
64
+ border-radius: inherit;
65
+ padding: 1px;
66
+ background: linear-gradient(
67
+ 135deg,
68
+ var(--glass-highlight) 0%,
69
+ transparent 50%,
70
+ var(--glass-ambient) 100%
71
+ );
72
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
73
+ -webkit-mask-composite: xor;
74
+ mask-composite: exclude;
75
+ pointer-events: none;
76
+ }
77
+
78
+ .glass-subtle {
79
+ background: var(--glass-bg-subtle);
80
+ backdrop-filter: blur(var(--glass-blur-sm));
81
+ -webkit-backdrop-filter: blur(var(--glass-blur-sm));
82
+ border: 1px solid var(--glass-border-subtle);
83
+ }
84
+
85
+ .glass-strong {
86
+ background: var(--glass-bg-strong);
87
+ backdrop-filter: blur(var(--glass-blur-lg));
88
+ -webkit-backdrop-filter: blur(var(--glass-blur-lg));
89
+ border: 1px solid var(--glass-border);
90
+ }
91
+
92
+ .glass-inverse {
93
+ background: rgba(24, 1, 58, 0.2);
94
+ backdrop-filter: blur(var(--glass-blur-md));
95
+ -webkit-backdrop-filter: blur(var(--glass-blur-md));
96
+ border: 1px solid rgba(255, 255, 255, 0.1);
97
+ }
98
+
99
+ .glass-card {
100
+ background: linear-gradient(115deg, #951ddb75, #ffffff90, #ffffff70, #ffffff61, #ed1e799e);
101
+ backdrop-filter: blur(15px);
102
+ border-radius: 25px;
103
+ box-shadow:
104
+ 0 8px 32px rgba(0, 0, 0, 0.1),
105
+ inset 0 1px 0 rgba(255, 255, 255, 0.5),
106
+ inset 0 -1px 0 rgba(255, 255, 255, 0.1),
107
+ inset 0 0 20px 10px rgba(255, 255, 255, 1);
108
+ position: relative;
109
+ }
110
+
111
+ /* ===== ELEVATION UTILITIES ===== */
112
+ .elevation-0 { box-shadow: var(--elevation-0); }
113
+ .elevation-1 { box-shadow: var(--elevation-1); }
114
+ .elevation-2 { box-shadow: var(--elevation-2); }
115
+ .elevation-3 { box-shadow: var(--elevation-3); }
116
+ .elevation-4 { box-shadow: var(--elevation-4); }
117
+ .elevation-5 { box-shadow: var(--elevation-5); }
118
+
119
+ /* ===== SERVICE CARDS ===== */
120
+ .service-card {
121
+ position: relative;
122
+ transition: all 0.3s ease;
123
+ border-radius: 1rem;
124
+ border: 1px solid #d33cfb4d;
125
+ filter: grayscale(1);
126
+ transform: scale(1);
127
+ }
128
+
129
+ .service-card:hover {
130
+ filter: none;
131
+ background: linear-gradient(
132
+ to bottom right,
133
+ rgba(209, 179, 255, 0.4),
134
+ rgba(255, 255, 255, 0.4) 31.51%,
135
+ rgba(245, 228, 255, 0.45) 71.85%,
136
+ rgba(237, 211, 255, 0.9)
137
+ );
138
+ }
139
+
140
+ .service-card.active {
141
+ filter: none;
142
+ background: linear-gradient(
143
+ to bottom right,
144
+ rgba(209, 179, 255, 0.4),
145
+ rgba(255, 255, 255, 0.4) 31.51%,
146
+ rgba(245, 228, 255, 0.45) 71.85%,
147
+ rgba(237, 211, 255, 0.9)
148
+ );
149
+ }
150
+
151
+ .service-card.active:hover {
152
+ backdrop-filter: blur(15px);
153
+ background: linear-gradient(135deg, rgba(209, 179, 255, 0.6) 0%, rgba(237, 211, 255, 0.6) 100%);
154
+ transform: scale(1.05);
155
+ }
156
+
157
+ .service-card.active::before {
158
+ content: '';
159
+ position: absolute;
160
+ inset: 0;
161
+ border-radius: inherit;
162
+ box-shadow: 15px -18px 18px rgba(247, 21, 183, 0.17) inset;
163
+ pointer-events: none;
164
+ }
165
+
166
+ .service-card.active::after {
167
+ content: '';
168
+ position: absolute;
169
+ inset: 3px;
170
+ border-radius: inherit;
171
+ background: radial-gradient(
172
+ rgba(255, 255, 255, 0.4),
173
+ rgba(245, 228, 255, 0.38) 46.22%,
174
+ rgba(209, 179, 255, 0.4) 83.61%,
175
+ rgba(239, 192, 242, 1) 93.28%
176
+ );
177
+ filter: blur(7px);
178
+ z-index: -1;
179
+ transition: filter 0.3s ease;
180
+ }
181
+
182
+ /* ===== GLASS BUTTONS ===== */
183
+ .glass-next-btn {
184
+ position: relative;
185
+ display: inline-flex;
186
+ align-items: center;
187
+ justify-content: center;
188
+ padding: 8px 24px;
189
+ border-radius: 50px;
190
+ --btn-base-start: rgba(52, 152, 79, 0.67);
191
+ --btn-base-mid: rgba(158, 241, 188, 0.68);
192
+ --btn-base-end: rgba(171, 248, 181, 0.74);
193
+ --btn-base-finish: rgba(150, 255, 148, 0.57);
194
+ --btn-border-color: rgba(52, 152, 79, 0.13);
195
+ --btn-hover-strong: rgba(52, 152, 79, 0.85);
196
+ --btn-hover-soft: rgba(52, 152, 79, 0.2);
197
+ --btn-shadow-color: rgba(52, 152, 79, 0.6);
198
+ --btn-overlay-start: rgba(52, 152, 79, 0.5);
199
+ --btn-overlay-end: rgba(38, 160, 71, 0.65);
200
+ background: linear-gradient(
201
+ 297deg,
202
+ var(--btn-base-start) 0%,
203
+ var(--btn-base-mid) 31.51%,
204
+ var(--btn-base-end) 63.45%,
205
+ var(--btn-base-finish) 100%
206
+ );
207
+ border: 1px solid var(--btn-border-color);
208
+ backdrop-filter: blur(10px);
209
+ cursor: pointer;
210
+ overflow: visible;
211
+ transition: transform 0.2s ease, background 0.3s ease, box-shadow 0.3s ease;
212
+ text-decoration: none;
213
+ }
214
+
215
+ .glass-next-btn:hover {
216
+ transform: scale(1.05);
217
+ background: linear-gradient(
218
+ 230deg,
219
+ var(--btn-hover-strong) 0%,
220
+ var(--btn-hover-soft) 40%,
221
+ rgba(255, 255, 255, 0.3) 100%
222
+ );
223
+ }
224
+
225
+ .glass-next-btn::before {
226
+ content: '';
227
+ position: absolute;
228
+ width: calc(100% + 1px);
229
+ height: calc(100% + 1px);
230
+ border-radius: 30px;
231
+ box-shadow: 5px 7px 8px var(--btn-shadow-color);
232
+ opacity: 0.6;
233
+ z-index: -2;
234
+ }
235
+
236
+ .glass-next-btn::after {
237
+ content: '';
238
+ position: absolute;
239
+ top: 2px;
240
+ left: 2px;
241
+ width: calc(100% - 4px);
242
+ height: calc(100% - 4px);
243
+ border-radius: 50px;
244
+ background: linear-gradient(118deg, var(--btn-overlay-start) 0%, var(--btn-overlay-end) 46.64%);
245
+ filter: blur(3px);
246
+ z-index: -1;
247
+ }
248
+
249
+ .glass-next-btn .text {
250
+ position: relative;
251
+ z-index: 1;
252
+ font-size: 1rem;
253
+ font-weight: 600;
254
+ color: #ffffff;
255
+ user-select: none;
256
+ transition: color 0.2s ease;
257
+ }
258
+
259
+ .glass-next-btn--color-one {
260
+ --btn-base-start: color-mix(in srgb, var(--color-one) 85%, transparent);
261
+ --btn-base-mid: color-mix(in srgb, var(--color-one) 65%, white);
262
+ --btn-base-end: color-mix(in srgb, var(--color-one) 75%, transparent);
263
+ --btn-base-finish: color-mix(in srgb, var(--color-one) 90%, black);
264
+ --btn-border-color: color-mix(in srgb, var(--color-one) 35%, transparent);
265
+ --btn-hover-strong: color-mix(in srgb, var(--color-one) 85%, white);
266
+ --btn-hover-soft: color-mix(in srgb, var(--color-one) 30%, transparent);
267
+ --btn-shadow-color: color-mix(in srgb, var(--color-one) 60%, transparent);
268
+ --btn-overlay-start: color-mix(in srgb, var(--color-one) 55%, transparent);
269
+ --btn-overlay-end: color-mix(in srgb, var(--color-one) 80%, black);
270
+ }
271
+
272
+ .glass-next-btn--destructive {
273
+ --btn-base-start: color-mix(in srgb, hsl(var(--destructive)) 85%, transparent);
274
+ --btn-base-mid: color-mix(in srgb, hsl(var(--destructive)) 65%, white);
275
+ --btn-base-end: color-mix(in srgb, hsl(var(--destructive)) 75%, transparent);
276
+ --btn-base-finish: color-mix(in srgb, hsl(var(--destructive)) 90%, black);
277
+ --btn-border-color: color-mix(in srgb, hsl(var(--destructive)) 35%, transparent);
278
+ --btn-hover-strong: color-mix(in srgb, hsl(var(--destructive)) 85%, white);
279
+ --btn-hover-soft: color-mix(in srgb, hsl(var(--destructive)) 30%, transparent);
280
+ --btn-shadow-color: color-mix(in srgb, hsl(var(--destructive)) 60%, transparent);
281
+ --btn-overlay-start: color-mix(in srgb, hsl(var(--destructive)) 55%, transparent);
282
+ --btn-overlay-end: color-mix(in srgb, hsl(var(--destructive)) 80%, black);
283
+ }
284
+
285
+ .glass-close-btn {
286
+ position: absolute;
287
+ width: 30px;
288
+ height: 30px;
289
+ border-radius: 50%;
290
+ background: linear-gradient(230deg, rgba(230, 57, 70, 0.67), rgba(230, 57, 70, 0.12));
291
+ border: 1px solid rgba(245, 34, 34, 0.13);
292
+ backdrop-filter: blur(10px);
293
+ overflow: visible;
294
+ display: flex !important;
295
+ align-items: center;
296
+ justify-content: center;
297
+ transition: transform 0.2s ease, background 0.3s ease;
298
+ z-index: 10;
299
+ margin: 0 0 0 auto;
300
+ right: -10px;
301
+ top: -10px;
302
+ cursor: pointer;
303
+ }
304
+
305
+ .glass-close-btn::before,
306
+ .glass-close-btn::after {
307
+ transition: box-shadow 0.3s ease, filter 0.3s ease, transform 0.3s ease, opacity 0.3s ease;
308
+ }
309
+
310
+ .glass-close-btn::before {
311
+ content: "";
312
+ position: absolute;
313
+ width: calc(100% + 1px);
314
+ height: calc(100% + 1px);
315
+ border-radius: 50%;
316
+ box-shadow: 4px 4px 13px rgba(230, 57, 70, 0.6);
317
+ transform: translate(0, 0);
318
+ z-index: -2;
319
+ }
320
+
321
+ .glass-close-btn::after {
322
+ content: "";
323
+ position: absolute;
324
+ top: 1px;
325
+ left: 1px;
326
+ width: calc(100% - 1px);
327
+ height: calc(100% - 1px);
328
+ border-radius: 50%;
329
+ background: linear-gradient(118deg, rgb(230, 57, 70) 30.25%, rgba(230, 57, 70, 0) 100%);
330
+ filter: blur(3px);
331
+ transform: translate(0, 0);
332
+ z-index: -1;
333
+ }
334
+
335
+ .glass-close-btn .icon-close-x {
336
+ position: relative;
337
+ z-index: 1;
338
+ font-size: 20px;
339
+ color: #FFFFFF;
340
+ user-select: none;
341
+ line-height: 1;
342
+ transition: color 0.2s ease;
343
+ font-weight: normal;
344
+ width: 30px;
345
+ height: 30px;
346
+ line-height: 27px;
347
+ }
348
+
349
+ .glass-close-btn:hover {
350
+ transform: scale(1.1);
351
+ background: linear-gradient(271deg, rgba(230, 57, 70, 0.59), rgba(230, 57, 70, 0.2) 50%);
352
+ }
353
+
354
+ .glass-close-btn:hover::before {
355
+ box-shadow: -5px -5px 29px rgba(230, 57, 70, 0.8);
356
+ opacity: 0.8;
357
+ }
358
+
359
+ .glass-close-btn:hover::after {
360
+ filter: blur(4px);
361
+ transform: translate(-1px, -1px);
362
+ opacity: 0.9;
363
+ }
364
+
365
+ .glass-close-btn:active {
366
+ transform: scale(0.95);
367
+ background: linear-gradient(230deg, rgba(230, 57, 70, 0.55) 0%, rgba(230, 57, 70, 0.1) 40%);
368
+ }
369
+
370
+ /* ===== SPACING UTILITIES ===== */
371
+ .space-1 { gap: var(--space-1); }
372
+ .space-2 { gap: var(--space-2); }
373
+ .space-3 { gap: var(--space-3); }
374
+ .space-4 { gap: var(--space-4); }
375
+ .space-5 { gap: var(--space-5); }
376
+ .space-6 { gap: var(--space-6); }
377
+ .space-8 { gap: var(--space-8); }
378
+ .space-10 { gap: var(--space-10); }
379
+ .space-12 { gap: var(--space-12); }
380
+ .space-16 { gap: var(--space-16); }
381
+
382
+ /* ===== LAYOUT PRIMITIVES (Cupcode Grid System) ===== */
383
+ .cc-container {
384
+ width: 100%;
385
+ max-width: 1280px;
386
+ margin-left: auto;
387
+ margin-right: auto;
388
+ padding-left: var(--space-4);
389
+ padding-right: var(--space-4);
390
+ }
391
+
392
+ .cc-container-narrow {
393
+ max-width: 960px;
394
+ }
395
+
396
+ .cc-container-wide {
397
+ max-width: 1440px;
398
+ }
399
+
400
+ .cc-stack {
401
+ display: flex;
402
+ flex-direction: column;
403
+ }
404
+
405
+ .cc-cluster {
406
+ display: flex;
407
+ flex-wrap: wrap;
408
+ gap: var(--space-4);
409
+ align-content: flex-end;
410
+ justify-content: space-around;
411
+ align-items: flex-end;
412
+ }
413
+
414
+ .cc-grid {
415
+ display: grid;
416
+ gap: var(--space-4);
417
+ }
418
+
419
+ .cc-grid-2 {
420
+ grid-template-columns: repeat(2, 1fr);
421
+ }
422
+
423
+ .cc-grid-3 {
424
+ grid-template-columns: repeat(3, 1fr);
425
+ }
426
+
427
+ .cc-grid-4 {
428
+ grid-template-columns: repeat(4, 1fr);
429
+ }
430
+
431
+ @media (max-width: 768px) {
432
+ .cc-grid-2,
433
+ .cc-grid-3,
434
+ .cc-grid-4 {
435
+ grid-template-columns: 1fr;
436
+ }
437
+ }
438
+
439
+ /* ===== STATE UTILITIES ===== */
440
+ .state-hover {
441
+ transition: opacity var(--motion-medium) var(--ease-smooth);
442
+ }
443
+
444
+ .state-hover:hover {
445
+ opacity: var(--opacity-hover);
446
+ }
447
+
448
+ .state-disabled {
449
+ opacity: var(--opacity-disabled);
450
+ pointer-events: none;
451
+ cursor: not-allowed;
452
+ }
453
+
454
+ .state-focus-visible:focus-visible {
455
+ outline: 2px solid hsl(var(--cc-purple));
456
+ outline-offset: 2px;
457
+ }
458
+
459
+ /* Gradient utilities */
460
+ .cc-gradient-galaxy {
461
+ background: var(--cc-gradient-galaxy);
462
+ }
463
+
464
+ .cc-gradient-comet {
465
+ background: var(--cc-gradient-comet);
466
+ }
467
+
468
+ .cc-text-gradient-galaxy {
469
+ background: var(--cc-gradient-galaxy);
470
+ background-clip: text;
471
+ -webkit-background-clip: text;
472
+ color: transparent;
473
+ -webkit-text-fill-color: transparent;
474
+ }
475
+
476
+ /* Gradientes Animados */
477
+ .cc-gradient-animated {
478
+ background: var(--cc-gradient-animated-1);
479
+ background-size: 200% 200%;
480
+ animation: gradient-shift 3s ease infinite;
481
+ }
482
+
483
+ .cc-gradient-pulse {
484
+ background: var(--cc-gradient-animated-2);
485
+ background-size: 400% 400%;
486
+ animation: gradient-wave 5s ease infinite;
487
+ }
488
+
489
+ .cc-gradient-shimmer {
490
+ position: relative;
491
+ overflow: hidden;
492
+ }
493
+
494
+ .cc-gradient-shimmer::after {
495
+ content: '';
496
+ position: absolute;
497
+ top: 0;
498
+ left: -100%;
499
+ width: 100%;
500
+ height: 100%;
501
+ background: var(--cc-gradient-shimmer);
502
+ animation: shimmer 2s infinite;
503
+ }
504
+
505
+ @keyframes gradient-shift {
506
+ 0% { background-position: 0% 50%; }
507
+ 50% { background-position: 100% 50%; }
508
+ 100% { background-position: 0% 50%; }
509
+ }
510
+
511
+ @keyframes gradient-wave {
512
+ 0% { background-position: 0% 50%; }
513
+ 25% { background-position: 50% 100%; }
514
+ 50% { background-position: 100% 50%; }
515
+ 75% { background-position: 50% 0%; }
516
+ 100% { background-position: 0% 50%; }
517
+ }
518
+
519
+ @keyframes shimmer {
520
+ 0% { left: -100%; }
521
+ 100% { left: 100%; }
522
+ }
523
+
524
+ /* Eyebrow/Pill destaque (padrão homepage) */
525
+ .span-destaque {
526
+ display: inline-block;
527
+ background: hsl(var(--cc-purple));
528
+ color: white;
529
+ font-size: 0.75rem;
530
+ padding: 2px 5px;
531
+ border-radius: var(--radius-sm);
532
+ font-weight: 600;
533
+ text-transform: uppercase;
534
+ letter-spacing: 0.5px;
535
+ }
536
+
537
+ .color-one {
538
+ color: hsl(var(--cc-pink));
539
+ }
540
+
541
+ .color-four {
542
+ color: white;
543
+ }
544
+
545
+ /* === Jelly Animation === */
546
+ .force-jelly {
547
+ animation: jelly-bounce 1.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
548
+ }
549
+
550
+ @keyframes jelly-bounce {
551
+ 0% { transform: scale(1, 1); }
552
+ 5% { transform: scale(1.08, 0.92); }
553
+ 10% { transform: scale(0.92, 1.08); }
554
+ 15% { transform: scale(1.05, 0.95); }
555
+ 20% { transform: scale(0.95, 1.05); }
556
+ 25% { transform: scale(1.03, 0.97); }
557
+ 30% { transform: scale(0.97, 1.03); }
558
+ 35% { transform: scale(1.02, 0.98); }
559
+ 40% { transform: scale(0.98, 1.02); }
560
+ 45% { transform: scale(1.01, 0.99); }
561
+ 50% { transform: scale(0.99, 1.01); }
562
+ 55% { transform: scale(1.005, 0.995); }
563
+ 60% { transform: scale(0.995, 1.005); }
564
+ 100% { transform: scale(1, 1); }
565
+ }
566
+
567
+ /* ===== FONT UTILITIES ===== */
568
+ .font-cupcode {
569
+ font-family: 'Tomorrow', sans-serif;
570
+ }
571
+
572
+ /* ===== ANIMATED GRADIENT TEXT ===== */
573
+ .gradient-text-animated {
574
+ background-image: linear-gradient(-225deg, #9e9e9e 8%, #515151 29%, #5f5f5f 67%, #9e9e9e 90%);
575
+ background-size: 200% auto;
576
+ background-clip: text;
577
+ -webkit-background-clip: text;
578
+ color: #fff;
579
+ -webkit-text-fill-color: transparent;
580
+ text-fill-color: transparent;
581
+ animation: textclip 10s linear infinite;
582
+ display: inline-block;
583
+ }
584
+
585
+ @keyframes textclip {
586
+ to {
587
+ background-position: 200% center;
588
+ }
589
+ }
590
+
591
+ /* ===== SWIPER STYLES ===== */
592
+ .swiper-button-next,
593
+ .swiper-button-prev {
594
+ position: absolute;
595
+ top: 0;
596
+ height: 100% !important;
597
+ margin-top: 0px !important;
598
+ background: linear-gradient(
599
+ var(--edge-deg),
600
+ rgb(255 255 255 / 0%) 0%,
601
+ rgba(255, 255, 255, 1) 60%
602
+ );
603
+ }
604
+
605
+ .swiper-button-next.bg-none,
606
+ .swiper-button-prev.bg-none {
607
+ background: none;
608
+ }
609
+
610
+ .swiper-button-prev.swiper-button-disabled,
611
+ .swiper-button-next.swiper-button-disabled {
612
+ display: none;
613
+ }
614
+
615
+ .swiper-wrapper {
616
+ height: auto !important;
617
+ }
618
+
619
+ .swiper-slide {
620
+ height: auto;
621
+ max-width: 100%;
622
+ }
623
+
624
+ .swiper-button-next::after,
625
+ .swiper-button-prev::after {
626
+ background: linear-gradient(45deg, #d26099, #e6dad9);
627
+ backdrop-filter: blur(16px) saturate(180%);
628
+ border-radius: 100%;
629
+ min-height: 30px;
630
+ min-width: 30px;
631
+ font-size: 15px !important;
632
+ font-weight: 900;
633
+ display: flex;
634
+ justify-content: center;
635
+ align-items: center;
636
+ position: relative;
637
+ color: #e6dad9;
638
+ }
639
+
640
+ .swiper-button-next {
641
+ right: 0 !important;
642
+ --edge-deg: 90deg;
643
+ }
644
+
645
+ .swiper-button-prev {
646
+ left: 0 !important;
647
+ --edge-deg: 270deg;
648
+ }
649
+
650
+ .swiper-button-next::after {
651
+ right: 2px;
652
+ }
653
+
654
+ .swiper-button-prev::after {
655
+ left: 2px;
656
+ }
657
+
658
+ /* ===== AUDIO PLAYER CIRCLE ===== */
659
+ .circle {
660
+ display: grid;
661
+ grid-template-rows: 1fr;
662
+ grid-row: 4/6;
663
+ grid-column: 2/3;
664
+ align-items: center;
665
+ justify-items: center;
666
+ width: 6rem;
667
+ height: 100%;
668
+ border-radius: 1rem;
669
+ position: absolute;
670
+ top: calc(50% - 48px / 3);
671
+ transform: translate(-50%, -50%);
672
+ left: 50%;
673
+ }
674
+
675
+ .circle__btn {
676
+ position: relative;
677
+ z-index: 300;
678
+ display: flex;
679
+ grid-row: 1/2;
680
+ grid-column: 1/2;
681
+ align-items: center;
682
+ justify-content: center;
683
+ justify-self: center;
684
+ width: 3rem;
685
+ height: 3rem;
686
+ margin: 0.6rem;
687
+ border-radius: 50%;
688
+ background-color: #e4ebf5;
689
+ color: #ffffff;
690
+ box-shadow:
691
+ 0.3rem 0.3rem 0.6rem #c8d0e7,
692
+ -0.2rem -0.2rem 0.5rem #ffffff;
693
+ font-size: 3.2rem;
694
+ cursor: pointer;
695
+ transition: all 0.3s;
696
+ }
697
+
698
+ .dark .circle__btn {
699
+ background-color: rgba(23, 16, 45, 0.92);
700
+ color: rgba(248, 244, 255, 0.92);
701
+ box-shadow:
702
+ 0.3rem 0.3rem 0.6rem rgba(4, 1, 18, 0.6),
703
+ -0.2rem -0.2rem 0.5rem rgba(115, 72, 180, 0.35);
704
+ }
705
+
706
+ .circle__btn:hover {
707
+ color: #951ddb40;
708
+ background-color: #fff;
709
+ }
710
+
711
+ .dark .circle__btn:hover {
712
+ color: rgba(237, 30, 121, 0.65);
713
+ background-color: rgba(39, 27, 75, 0.95);
714
+ }
715
+
716
+ .circle__btn:hover ~ .circle__back-1 {
717
+ background: linear-gradient(to bottom, #951ddb30 0%, #ed1e7930 100%);
718
+ }
719
+
720
+ .dark .circle__btn:hover ~ .circle__back-1 {
721
+ background: linear-gradient(to bottom, rgba(149, 29, 219, 0.45) 0%, rgba(237, 30, 121, 0.45) 100%);
722
+ }
723
+
724
+ .circle__btn.shadow {
725
+ box-shadow:
726
+ inset 0.2rem 0.2rem 0.5rem #c8d0e7,
727
+ inset -0.2rem -0.2rem 0.5rem #ffffff;
728
+ }
729
+
730
+ .dark .circle__btn.shadow {
731
+ box-shadow:
732
+ inset 0.2rem 0.2rem 0.5rem rgba(4, 1, 18, 0.8),
733
+ inset -0.2rem -0.2rem 0.5rem rgba(107, 66, 174, 0.35);
734
+ }
735
+
736
+ .circle__btn .play {
737
+ position: absolute;
738
+ opacity: 0;
739
+ transition: 0.02s linear;
740
+ font-size: 25px;
741
+ }
742
+
743
+ .circle__btn .play.visibility {
744
+ opacity: 1;
745
+ transition: 0.02s linear;
746
+ }
747
+
748
+ .circle__btn .pause {
749
+ position: absolute;
750
+ transition: 0.02s linear;
751
+ font-size: 25px;
752
+ }
753
+
754
+ .circle__btn .pause.visibility {
755
+ opacity: 0;
756
+ }
757
+
758
+ .circle__back-1,
759
+ .circle__back-2 {
760
+ z-index: 100;
761
+ grid-row: 1/2;
762
+ grid-column: 1/2;
763
+ width: 3rem;
764
+ height: 3rem;
765
+ border-radius: 50%;
766
+ filter: blur(1px);
767
+ }
768
+
769
+ .circle__back-1 {
770
+ background: linear-gradient(to bottom, #c8d0e7 0%, #ffffff 100%);
771
+ box-shadow:
772
+ 0.4rem 0.4rem 0.8rem #c8d0e7,
773
+ -0.4rem -0.4rem 0.8rem #ffffff;
774
+ animation: waves 4s linear infinite;
775
+ }
776
+
777
+ .dark .circle__back-1 {
778
+ background: linear-gradient(to bottom, rgba(54, 36, 92, 0.75) 0%, rgba(92, 42, 120, 0.65) 100%);
779
+ box-shadow:
780
+ 0.4rem 0.4rem 0.8rem rgba(4, 1, 18, 0.55),
781
+ -0.4rem -0.4rem 0.8rem rgba(112, 70, 179, 0.28);
782
+ }
783
+
784
+ .circle__back-2 {
785
+ box-shadow:
786
+ 0.4rem 0.4rem 0.8rem #c8d0e7,
787
+ -0.4rem -0.4rem 0.8rem #ffffff;
788
+ animation: waves 4s linear 2s infinite;
789
+ }
790
+
791
+ .dark .circle__back-2 {
792
+ box-shadow:
793
+ 0.4rem 0.4rem 0.8rem rgba(4, 1, 18, 0.55),
794
+ -0.4rem -0.4rem 0.8rem rgba(112, 70, 179, 0.28);
795
+ }
796
+
797
+ @keyframes waves {
798
+ 0% {
799
+ opacity: 1;
800
+ transform: scale(1);
801
+ }
802
+ 50% {
803
+ opacity: 1;
804
+ }
805
+ 100% {
806
+ opacity: 0;
807
+ transform: scale(2);
808
+ }
809
+ }
810
+
811
+ /* ===== MARQUEE ANIMATIONS ===== */
812
+ @keyframes slide-left {
813
+ to {
814
+ transform: translate3d(calc(-1 * var(--dist)), 0, 0);
815
+ }
816
+ }
817
+
818
+ @keyframes slide-right {
819
+ to {
820
+ transform: translate3d(0, 0, 0);
821
+ }
822
+ }
823
+
824
+ .marquee-left {
825
+ animation: slide-left var(--dur) linear infinite;
826
+ will-change: transform;
827
+ }
828
+
829
+ .marquee-right {
830
+ animation: slide-right var(--dur) linear infinite;
831
+ will-change: transform;
832
+ }
833
+
834
+ .pausing:hover .marquee-left,
835
+ .pausing:hover .marquee-right {
836
+ animation-play-state: paused !important;
837
+ }
838
+
839
+ /* ===== DIALOG STYLES ===== */
840
+ [data-slot="dialog-overlay"] {
841
+ background: rgba(255, 255, 255, 0.3);
842
+ backdrop-filter: blur(10px);
843
+ }
844
+
845
+ .dialog-overlay {
846
+ overflow: visible;
847
+ }
848
+
849
+ .dialog-content {
850
+ max-height: 90vh;
851
+ overflow-y: auto;
852
+ scrollbar-width: none;
853
+ }
854
+
855
+ .dialog-content::-webkit-scrollbar {
856
+ display: none;
857
+ }
858
+
859
+ .dialog-video-player {
860
+ width: 100%;
861
+ max-width: 95vw;
862
+ }
863
+
864
+ .dialog-video-player .video-player {
865
+ max-height: 80vh;
866
+ width: 100%;
867
+ max-width: 100%;
868
+ height: auto;
869
+ object-fit: contain;
870
+ outline: none;
871
+ display: block;
872
+ }
873
+
874
+ .dialog-video-player.horizontal {
875
+ max-width: 95vw;
876
+ }
877
+
878
+ .dialog-video-player.horizontal .video-player {
879
+ max-height: 95vh;
880
+ width: 100%;
881
+ }
882
+
883
+ .dialog-video-player button[data-slot='dialog-close'] {
884
+ background: #ed1e79;
885
+ padding: 5px;
886
+ border-radius: 100%;
887
+ opacity: 1;
888
+ color: white;
889
+ box-shadow: none;
890
+ cursor: pointer;
891
+ }
892
+
893
+ .popup-de-orcamento {
894
+ display: block;
895
+ top: 0;
896
+ width: 100% !important;
897
+ max-width: 100% !important;
898
+ overflow-x: hidden;
899
+ padding: 0;
900
+ padding-top: 20px;
901
+ padding-bottom: 20px;
902
+ height: 100%;
903
+ max-height: 100%;
904
+ }
905
+
906
+ .popup-de-orcamento button[data-slot="dialog-close"] {
907
+ display: none;
908
+ }
909
+
910
+ /* ===== MISC UTILITIES ===== */
911
+ img.logo-footer {
912
+ margin-bottom: -50px;
913
+ margin-left: -18px;
914
+ margin-top: -45px;
915
+ }
916
+
917
+ .acabamento-footer::before {
918
+ content: '';
919
+ position: absolute;
920
+ width: 100%;
921
+ height: 80px;
922
+ background: linear-gradient(0deg, #ffffff80, transparent);
923
+ z-index: 1;
924
+ bottom: 0;
925
+ left: 0;
926
+ }
927
+
928
+ .animation-grow {
929
+ transition: all 0.3s linear;
930
+ }
931
+
932
+ .animation-grow:hover {
933
+ box-shadow: rgb(181 96 246) 0px 5px 15px;
934
+ scale: 1.03;
935
+ transform: none;
936
+ }
937
+
938
+ img.astrounauta-animado {
939
+ transform-origin: top center;
940
+ animation: balancoAstronauta 2.5s ease-in-out infinite alternate;
941
+ }
942
+
943
+ @keyframes balancoAstronauta {
944
+ 0% {
945
+ transform: rotate(-10deg);
946
+ }
947
+ 100% {
948
+ transform: rotate(10deg);
949
+ }
950
+ }
951
+
952
+ @keyframes rotateTrofeu {
953
+ 0% { rotate: 0deg; }
954
+ 25% { rotate: 10deg; }
955
+ 50% { rotate: 0deg; }
956
+ 75% { rotate: -10deg; }
957
+ 100% { rotate: 0deg; }
958
+ }
959
+
960
+ .rotateTrofeu {
961
+ animation: rotateTrofeu 4s cubic-bezier(0.63, 0.3, 0.24, 0.36) infinite;
962
+ }
963
+
964
+ @keyframes MoveNuvem {
965
+ 0% { transform: translateX(0px); }
966
+ 50% { transform: translateX(-20px); }
967
+ 100% { transform: translateY(0px); }
968
+ }
969
+
970
+ .move-nuvem {
971
+ animation: MoveNuvem infinite;
972
+ }
973
+
974
+ @keyframes pulseScale {
975
+ 0% { transform: scale(1); }
976
+ 50% { transform: scale(1.1); }
977
+ 100% { transform: scale(1); }
978
+ }
979
+
980
+ .pulseScale {
981
+ animation: pulseScale 5s infinite;
982
+ }
983
+
984
+ @keyframes floatA {
985
+ 0% { transform: translateY(0); }
986
+ 50% { transform: translateY(-10px); }
987
+ 100% { transform: translateY(0); }
988
+ }
989
+
990
+ @keyframes floatB {
991
+ 0% { transform: translateY(0) rotate(-1deg); }
992
+ 50% { transform: translateY(8px) rotate(1deg); }
993
+ 100% { transform: translateY(0) rotate(-1deg); }
994
+ }
995
+
996
+ @keyframes floatC {
997
+ 0% { transform: translateY(0) rotate(-4deg); }
998
+ 50% { transform: translateY(8px) rotate(4deg); }
999
+ 100% { transform: translateY(0) rotate(-4deg); }
1000
+ }
1001
+
1002
+ .animate-float-slow {
1003
+ animation: floatA 6s ease-in-out infinite;
1004
+ }
1005
+
1006
+ .animate-float-fast {
1007
+ animation: floatB 4.8s ease-in-out infinite;
1008
+ }
1009
+
1010
+ .animate-float-and-rotate-fast {
1011
+ animation: floatC 4.8s ease-in-out infinite;
1012
+ }
1013
+
1014
+ /* ===== HERO SECTION ===== */
1015
+ #hero-section-one {
1016
+ height: 500px;
1017
+ }
1018
+
1019
+ #hero-section-one .video-hero {
1020
+ position: absolute;
1021
+ right: 0;
1022
+ top: 0;
1023
+ border-top-right-radius: 60px;
1024
+ border-bottom-right-radius: 60px;
1025
+ height: 100%;
1026
+ z-index: 1;
1027
+ overflow: hidden;
1028
+ }
1029
+
1030
+ #hero-section-one .video-hero video {
1031
+ border-top-right-radius: 60px;
1032
+ border-bottom-right-radius: 60px;
1033
+ height: 100%;
1034
+ }
1035
+
1036
+ #hero-section-one .video-hero::after {
1037
+ content: '';
1038
+ position: absolute;
1039
+ top: 0;
1040
+ left: 0px;
1041
+ width: 120px;
1042
+ height: 500px;
1043
+ background: linear-gradient(90deg, #ffffff, #ffffff00);
1044
+ }
1045
+
1046
+ .row-column-content {
1047
+ height: calc(100% - 4.5rem);
1048
+ display: flex;
1049
+ flex-direction: column;
1050
+ align-items: flex-start;
1051
+ max-width: 40%;
1052
+ justify-content: center;
1053
+ z-index: 2;
1054
+ position: relative;
1055
+ }
1056
+
1057
+ .prev-link {
1058
+ font-size: 1rem;
1059
+ font-weight: 600;
1060
+ color: #e91e63;
1061
+ text-decoration: none;
1062
+ cursor: pointer;
1063
+ text-shadow: 0 1px 6px rgba(255, 255, 255, 0.89);
1064
+ transition: color 0.2s ease, transform 0.2s ease, text-shadow 0.3s ease;
1065
+ }
1066
+
1067
+ .orcamento-to-step .orcamento-steps-numeros {
1068
+ max-width: 250px;
1069
+ margin: 0 auto;
1070
+ border: solid 1px #951ddb14;
1071
+ padding: 5px 10px;
1072
+ border-radius: 20px;
1073
+ background: #951ddb14;
1074
+ overflow: hidden;
1075
+ }
1076
+
1077
+ .orcamento-to-step .orcamento-steps-numeros-content {
1078
+ background: #951ddb80;
1079
+ width: 110%;
1080
+ left: 50%;
1081
+ transform: translate(-50%, 0px);
1082
+ max-width: 255px;
1083
+ }
1084
+
1085
+ .login__brand {
1086
+ margin-bottom: 0 !important;
1087
+ }
1088
+
1089
+ /* Animation duration utilities */
1090
+ .animation-dr-1s { animation-duration: 1s; }
1091
+ .animation-dr-2s { animation-duration: 2s; }
1092
+ .animation-dr-3s { animation-duration: 3s; }
1093
+ .animation-dr-4s { animation-duration: 4s; }
1094
+ .animation-dr-5s { animation-duration: 5s; }
1095
+ .animation-dr-6s { animation-duration: 6s; }
1096
+ .animation-dr-7s { animation-duration: 7s; }
1097
+ .animation-dr-8s { animation-duration: 8s; }
1098
+ .animation-dr-9s { animation-duration: 9s; }
1099
+ .animation-dr-10s { animation-duration: 10s; }
1100
+
1101
+ /* ===== RESPONSIVE STYLES ===== */
1102
+ @media (max-width: 1024px) {
1103
+ .acabamento-footer::before {
1104
+ height: 10px;
1105
+ }
1106
+ #hero-section-one {
1107
+ height: 400px;
1108
+ }
1109
+ #hero-section-one .video-hero video {
1110
+ max-width: 500px;
1111
+ scale: 1.3;
1112
+ }
1113
+ .row-column-content {
1114
+ max-width: 45%;
1115
+ }
1116
+ }
1117
+
1118
+ @media (max-width: 768px) {
1119
+ img.ElementoFlutuante2 {
1120
+ display: none;
1121
+ }
1122
+ .circle {
1123
+ transform: translate(0%, -50%);
1124
+ top: calc(50% - 32px / 3);
1125
+ right: 0%;
1126
+ left: unset;
1127
+ width: 5rem;
1128
+ }
1129
+ .circle__btn {
1130
+ width: 2rem;
1131
+ height: 2rem;
1132
+ }
1133
+ .row-column-content {
1134
+ max-width: 100%;
1135
+ padding-top: 300px;
1136
+ }
1137
+ #hero-section-one {
1138
+ height: 100%;
1139
+ }
1140
+ #hero-section-one .video-hero {
1141
+ right: unset;
1142
+ top: 0;
1143
+ left: 0;
1144
+ max-height: 300px;
1145
+ width: 100%;
1146
+ border-top-right-radius: 60px;
1147
+ border-top-left-radius: 60px;
1148
+ border-bottom-right-radius: 0;
1149
+ }
1150
+ #hero-section-one .video-hero video {
1151
+ width: 100%;
1152
+ object-fit: cover;
1153
+ scale: none;
1154
+ max-width: 100%;
1155
+ }
1156
+ #hero-section-one .video-hero::after {
1157
+ left: 0;
1158
+ bottom: 0;
1159
+ top: unset;
1160
+ width: 100%;
1161
+ height: 50px;
1162
+ background: linear-gradient(360deg, #ffffff, #ffffff00);
1163
+ }
1164
+ }
1165
+
1166
+ @media (max-width: 568px) {
1167
+ .row-column-content {
1168
+ padding-top: 200px;
1169
+ }
1170
+ #hero-section-one .video-hero {
1171
+ max-height: 250px;
1172
+ }
1173
+ .glass-close-btn {
1174
+ width: 20px;
1175
+ height: 20px;
1176
+ right: 3px;
1177
+ top: 0px;
1178
+ }
1179
+ }
1180
+ }
1181
+
1182
+ @layer utilities {
1183
+ /* Reduced motion */
1184
+ @media (prefers-reduced-motion: reduce) {
1185
+ *,
1186
+ *::before,
1187
+ *::after {
1188
+ animation-duration: 0.01ms !important;
1189
+ animation-iteration-count: 1 !important;
1190
+ transition-duration: 0.01ms !important;
1191
+ }
1192
+ }
1193
+ }