Diff of /web/style.css.bak [000000] .. [8c4ad8]

Switch to unified view

a b/web/style.css.bak
1
/* DNA Helix Animation */
2
.dna-helix {
3
    position: relative;
4
    width: 200px;
5
    height: 400px;
6
    margin: 0 auto;
7
    perspective: 1200px;
8
    transform-style: preserve-3d;
9
}
10
11
.base-pair {
12
    position: absolute;
13
    width: 100%;
14
    height: 20px;
15
    animation: rotate 8s linear infinite;
16
    transform-style: preserve-3d;
17
}
18
19
.base {
20
    position: absolute;
21
    width: 25px;
22
    height: 25px;
23
    border-radius: 50%;
24
    display: flex;
25
    align-items: center;
26
    justify-content: center;
27
    font-weight: bold;
28
    color: white;
29
    text-shadow: 0 0 3px rgba(0,0,0,0.5);
30
    box-shadow: 0 0 15px rgba(0,0,0,0.2);
31
}
32
33
.left-base {
34
    left: 35px;
35
    background: #FF0066;
36
    animation: pulse 3s ease-in-out infinite;
37
    filter: brightness(1.1);
38
}
39
40
.right-base {
41
    right: 35px;
42
    background: #00B7FF;
43
    animation: pulse 3s ease-in-out infinite;
44
    filter: brightness(1.1);
45
}
46
47
.base-connector {
48
    position: absolute;
49
    left: 50%;
50
    width: 90px;
51
    height: 3px;
52
    background: linear-gradient(90deg, 
53
        rgba(255, 0, 102, 0.8), 
54
        rgba(255, 255, 255, 0.3) 50%,
55
        rgba(0, 183, 255, 0.8)
56
    );
57
    transform: translateX(-50%);
58
    box-shadow: 0 0 8px rgba(0,0,0,0.15);
59
}
60
61
@keyframes rotate {
62
    0% { transform: rotateY(0deg) translateZ(20px); }
63
    100% { transform: rotateY(360deg) translateZ(20px); }
64
}
65
66
@keyframes pulse {
67
    0% { transform: scale(1); opacity: 0.9; filter: brightness(1.1); }
68
    50% { transform: scale(1.15); opacity: 1; filter: brightness(1.3); }
69
    100% { transform: scale(1); opacity: 0.9; filter: brightness(1.1); }
70
}
71
/* DNAnalyzer - Main Stylesheet
72
 * Global styles for all pages
73
 */
74
/* Notification Banner Styling */
75
.notification-banner {
76
    background: linear-gradient(135deg, #FF6F00, #FF9100);
77
    color: var(--white);
78
    padding: 0.75rem 1rem 0.75rem 0.75rem;
79
    text-align: center;
80
    font-size: 1rem;
81
    font-weight: 600;
82
    position: fixed;
83
    top: 0;
84
    left: 0;
85
    width: 100%;
86
    z-index: var(--z-navbar);
87
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
88
    animation: notifPulse 3s infinite;
89
    transition: transform 0.3s ease-in-out;
90
    display: flex;
91
    flex-wrap: wrap;
92
    justify-content: center;
93
    align-items: center;
94
}
95
96
.notification-banner.hide-notification {
97
    transform: translateY(-100%);
98
}
99
100
.notification-banner.closed {
101
    display: none !important;
102
}
103
104
.notification-banner .notification-link {
105
    color: inherit;
106
    text-decoration: none;
107
    font-weight: 700;
108
    background-color: rgba(255, 255, 255, 0.2);
109
    padding: 0.25rem 0.5rem;
110
    border-radius: 4px;
111
    margin: 0 0.5rem;
112
    transition: all 0.3s ease;
113
    white-space: nowrap;
114
}
115
116
.notification-banner .notification-link:hover {
117
    color: #FFD700;
118
    text-shadow: 0 0 5px rgba(255, 215, 0, 0.5);
119
}
120
121
.notification-banner .notification-close {
122
    background: rgba(255, 255, 255, 0.1);
123
    border: none;
124
    color: var(--white);
125
    font-size: 1.25rem;
126
    line-height: 1;
127
    position: absolute;
128
    right: 0.5rem;
129
    top: 50%;
130
    transform: translateY(-50%);
131
    cursor: pointer;
132
    transition: all 0.3s ease;
133
    width: 24px;
134
    height: 24px;
135
    display: flex;
136
    align-items: center;
137
    justify-content: center;
138
    border-radius: 50%;
139
    padding: 0;
140
}
141
142
.notification-banner .notification-close::before {
143
    content: "×";
144
    display: block;
145
    position: relative;
146
    top: -1px;
147
}
148
149
.notification-banner .notification-close:hover {
150
    background: rgba(255, 255, 255, 0.2);
151
    transform: translateY(-50%) rotate(90deg);
152
    color: #FFD700;
153
    text-shadow: 0 0 5px rgba(255, 215, 0, 0.5);
154
}
155
156
 :root {
157
    /* Brand colors from logo */
158
    --magenta: #ff0066;
159
    --blue: #00a4ef;
160
    --orange: #f48022;
161
    --white: #ffffff;
162
    --dark-bg: #001427;
163
    
164
    /* Additional UI colors */
165
    --dark-blue: #051e3e;
166
    --light-blue: #2596be;
167
    --light-gray: #f5f5f7;
168
    --medium-gray: #86868b;
169
    --dark-gray: #333333;
170
    
171
    /* Functional colors */
172
    --success: #34c759;
173
    --warning: #ff9500;
174
    --error: #ff3b30;
175
    
176
    /* Typography */
177
    --font-heading: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
178
    --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
179
    --font-mono: 'IBM Plex Mono', monospace;
180
    
181
    /* Spacing */
182
    --space-xs: 0.25rem;
183
    --space-sm: 0.5rem;
184
    --space-md: 1rem;
185
    --space-lg: 1.5rem;
186
    --space-xl: 2rem;
187
    --space-xxl: 3rem;
188
    
189
    /* Border radius */
190
    --radius-sm: 4px;
191
    --radius-md: 8px;
192
    --radius-lg: 12px;
193
    --radius-xl: 20px;
194
    
195
    /* Shadows */
196
    --shadow-sm: 0 2px 5px rgba(0, 0, 0, 0.1);
197
    --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.15);
198
    --shadow-lg: 0 8px 20px rgba(0, 0, 0, 0.2);
199
    
200
    /* Transitions */
201
    --transition-fast: 0.2s ease;
202
    --transition-normal: 0.3s ease;
203
    --transition-slow: 0.5s ease;
204
    
205
    /* Z-index layers */
206
    --z-tooltip: 100;
207
    --z-navbar: 200;
208
    --z-modal: 300;
209
  }
210
  
211
  /* Reset & Base Styles */
212
  *, 
213
  *::before, 
214
  *::after {
215
    box-sizing: border-box;
216
    margin: 0;
217
    padding: 0;
218
  }
219
  
220
  html {
221
    font-size: 16px;
222
    scroll-behavior: smooth;
223
  }
224
  
225
  body {
226
    font-family: var(--font-body);
227
    background-color: var(--dark-bg);
228
    color: var(--white);
229
    line-height: 1.6;
230
    overflow-x: hidden;
231
    min-height: 100vh;
232
    display: flex;
233
    flex-direction: column;
234
    -webkit-font-smoothing: antialiased;
235
    -moz-osx-font-smoothing: grayscale;
236
  }
237
  
238
  h1, h2, h3, h4, h5, h6 {
239
    font-family: var(--font-heading);
240
    line-height: 1.2;
241
    font-weight: 700;
242
    margin-bottom: var(--space-md);
243
  }
244
  
245
  h1 {
246
    font-size: 3.5rem;
247
    margin-bottom: var(--space-lg);
248
  }
249
  
250
  h2 {
251
    font-size: 2.5rem;
252
    margin-bottom: var(--space-lg);
253
  }
254
  
255
  h3 {
256
    font-size: 1.75rem;
257
  }
258
  
259
  h4 {
260
    font-size: 1.375rem;
261
  }
262
  
263
  p {
264
    margin-bottom: var(--space-md);
265
    color: rgba(255, 255, 255, 0.85);
266
  }
267
  
268
  a {
269
    color: var(--blue);
270
    text-decoration: none;
271
    transition: color var(--transition-fast);
272
  }
273
  
274
  a:hover {
275
    color: var(--light-blue);
276
  }
277
  
278
  img {
279
    max-width: 100%;
280
    height: auto;
281
  }
282
  
283
  button {
284
    font-family: var(--font-body);
285
    cursor: pointer;
286
  }
287
  
288
  code, pre {
289
    font-family: var(--font-mono);
290
  }
291
  
292
  ul, ol {
293
    padding-left: var(--space-lg);
294
    margin-bottom: var(--space-md);
295
  }
296
  
297
  /* Container */
298
  .container {
299
    width: 100%;
300
    max-width: 1200px;
301
    margin: 0 auto;
302
    padding: 0 var(--space-lg);
303
  }
304
  
305
  .container-sm {
306
    max-width: 800px;
307
  }
308
  
309
  .container-lg {
310
    max-width: 1400px;
311
  }
312
  
313
  /* Navbar */
314
  .navbar {
315
    position: fixed;
316
    top: var(--notification-height, 0);
317
    left: 0;
318
    right: 0;
319
    background: var(--dark-bg);
320
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
321
    z-index: var(--z-navbar);
322
    padding: var(--space-md) 0;
323
    transition: all var(--transition-normal), top 0.3s ease-in-out;
324
  }
325
326
  .navbar.scrolled {
327
    background: var(--dark-blue);
328
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
329
    padding: var(--space-sm) 0;
330
  }
331
  
332
  .navbar-container {
333
    display: flex;
334
    align-items: center;
335
    justify-content: space-between;
336
  }
337
  
338
  .logo {
339
    display: flex;
340
    align-items: center;
341
  }
342
  
343
  .logo img {
344
    height: 36px;
345
    margin-right: var(--space-sm);
346
  }
347
  
348
  .logo-text {
349
    font-size: 1.25rem;
350
    font-weight: 700;
351
    color: var(--white);
352
  }
353
  
354
  .nav-links {
355
    display: flex;
356
    align-items: center;
357
    list-style: none;
358
    margin: 0;
359
    padding: 0;
360
  }
361
  
362
  .nav-links li {
363
    margin: 0 var(--space-md);
364
  }
365
  
366
  .nav-links a {
367
    color: var(--white);
368
    font-weight: 500;
369
    position: relative;
370
    padding: var(--space-xs) 0;
371
  }
372
  
373
  .nav-links a::after {
374
    content: '';
375
    position: absolute;
376
    width: 0;
377
    height: 2px;
378
    bottom: 0;
379
    left: 0;
380
    background: linear-gradient(90deg, var(--magenta), var(--blue));
381
    transition: width var(--transition-normal);
382
  }
383
  
384
  .nav-links a:hover::after,
385
  .nav-links a.active::after {
386
    width: 100%;
387
  }
388
  
389
  .nav-buttons {
390
    display: flex;
391
    align-items: center;
392
  }
393
  
394
  .mobile-toggle {
395
    display: none;
396
    background: none;
397
    border: none;
398
    color: var(--white);
399
    font-size: 1.5rem;
400
  }
401
  
402
  /* Buttons */
403
  .btn {
404
    display: inline-flex;
405
    align-items: center;
406
    justify-content: center;
407
    padding: 0.75rem 1.5rem;
408
    border-radius: var(--radius-md);
409
    font-weight: 600;
410
    transition: all var(--transition-fast);
411
    border: none;
412
    text-align: center;
413
    cursor: pointer;
414
  }
415
  
416
  .btn-primary {
417
    background: linear-gradient(135deg, #FF7B00, #FFB347);
418
    color: var(--white);
419
  }
420
  
421
  .btn-primary:hover {
422
    transform: translateY(-2px);
423
    box-shadow: 0 5px 15px rgba(0, 164, 239, 0.4);
424
    color: var(--white);
425
  }
426
  
427
  .btn-secondary {
428
    background: rgba(255, 255, 255, 0.1);
429
    color: var(--white);
430
    border: 1px solid rgba(255, 255, 255, 0.2);
431
  }
432
  
433
  .btn-secondary:hover {
434
    background: rgba(255, 255, 255, 0.15);
435
    transform: translateY(-2px);
436
    color: var(--white);
437
  }
438
  
439
  .btn-sm {
440
    padding: 0.5rem 1rem;
441
    font-size: 0.875rem;
442
  }
443
  
444
  .btn-lg {
445
    padding: 1rem 2rem;
446
    font-size: 1.125rem;
447
  }
448
  
449
  .btn-icon {
450
    margin-right: var(--space-xs);
451
  }
452
  
453
  .btn-github {
454
    background: #24292e;
455
    color: var(--white);
456
  }
457
  
458
  .btn-github:hover {
459
    background: #2c3440;
460
    color: var(--white);
461
  }
462
  
463
  .btn-discord {
464
    background: #5865F2;
465
    color: var(--white);
466
  }
467
  
468
  .btn-discord:hover {
469
    background: #4752c4;
470
    color: var(--white);
471
  }
472
  
473
  /* Hero section */
474
  .hero {
475
    padding: 160px 0 100px;
476
    position: relative;
477
    overflow: hidden;
478
  }
479
  
480
  .hero-content {
481
    display: grid;
482
    grid-template-columns: 1fr 1fr;
483
    gap: var(--space-xxl);
484
    align-items: center;
485
  }
486
  
487
  .hero-headings {
488
    position: relative;
489
    z-index: 2;
490
  }
491
  
492
  .hero h1 {
493
    margin-bottom: var(--space-md);
494
    letter-spacing: -0.02em;
495
    line-height: 1.1;
496
  }
497
  
498
  .hero h1 span {
499
    background: linear-gradient(135deg, var(--magenta), var(--blue));
500
    -webkit-background-clip: text;
501
    background-clip: text;
502
    -webkit-text-fill-color: transparent;
503
  }
504
  
505
  .hero-subtitle {
506
    font-size: 1.25rem;
507
    margin-bottom: var(--space-xl);
508
    color: rgba(255, 255, 255, 0.85);
509
    max-width: 500px;
510
  }
511
  
512
  .hero-buttons {
513
    display: flex;
514
    gap: var(--space-md);
515
    margin-bottom: var(--space-xl);
516
  }
517
  
518
  .hero-animation {
519
    position: relative;
520
    width: 100%;
521
    height: 500px;
522
    display: flex;
523
    align-items: center;
524
    justify-content: center;
525
  }
526
  
527
  /* DNA Helix Animation */
528
  .dna-helix {
529
    position: relative;
530
    width: 100%;
531
    height: 100%;
532
    transform-style: preserve-3d;
533
    perspective: 1200px;
534
  }
535
  
536
  .base-pair {
537
    position: absolute;
538
    width: 100%;
539
    height: 30px;
540
    display: flex;
541
    justify-content: center;
542
    align-items: center;
543
    animation: rotate3D 12s linear infinite;
544
  }
545
  
546
  @keyframes rotate3D {
547
    0% { transform: rotateY(0deg); }
548
    100% { transform: rotateY(360deg); }
549
  }
550
  
551
  .base {
552
    width: 35px;
553
    height: 35px;
554
    border-radius: 50%;
555
    display: flex;
556
    align-items: center;
557
    justify-content: center;
558
    font-weight: bold;
559
    color: white;
560
    position: absolute;
561
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
562
  }
563
  
564
  .left-base {
565
    background: var(--magenta);
566
    left: calc(50% - 120px);
567
    animation: moveLeft 6s ease-in-out infinite;
568
  }
569
  
570
  .right-base {
571
    background: var(--blue);
572
    right: calc(50% - 120px);
573
    animation: moveRight 6s ease-in-out infinite;
574
  }
575
  
576
  .base-connector {
577
    width: 200px;
578
    height: 3px;
579
    background: linear-gradient(90deg, var(--magenta), var(--blue));
580
    position: absolute;
581
    animation: stretch 6s ease-in-out infinite;
582
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
583
  }
584
  
585
  @keyframes moveLeft {
586
    0%, 100% { transform: translateX(-12px); }
587
    50% { transform: translateX(12px); }
588
  }
589
  
590
  @keyframes moveRight {
591
    0%, 100% { transform: translateX(12px); }
592
    50% { transform: translateX(-12px); }
593
  }
594
  
595
  @keyframes stretch {
596
    0%, 100% { width: 200px; }
597
    50% { width: 220px; }
598
  }
599
  
600
  /* Section styling */
601
  .section {
602
    padding: var(--space-xxl) 0;
603
    position: relative;
604
  }
605
  
606
  .section-title {
607
    text-align: center;
608
    margin-bottom: var(--space-xxl);
609
  }
610
  
611
  .section-title h2 {
612
    margin-bottom: var(--space-md);
613
  }
614
  
615
  .section-title p {
616
    max-width: 700px;
617
    margin: 0 auto;
618
    font-size: 1.1rem;
619
  }
620
  
621
  .section-bg-dark {
622
    background-color: var(--dark-blue);
623
  }
624
  
625
  .section-bg-gradient {
626
    background: linear-gradient(135deg, rgba(5, 30, 62, 0.7), rgba(0, 20, 39, 0.7));
627
  }
628
  
629
  /* Cards */
630
  .card {
631
    background: rgba(255, 255, 255, 0.05);
632
    border-radius: var(--radius-lg);
633
    padding: var(--space-xl);
634
    transition: all var(--transition-normal);
635
    border: 1px solid rgba(255, 255, 255, 0.1);
636
  }
637
  
638
  .card:hover {
639
    transform: translateY(-5px);
640
    background: rgba(255, 255, 255, 0.08);
641
    box-shadow: var(--shadow-md);
642
    border-color: rgba(255, 255, 255, 0.15);
643
  }
644
  
645
  .card-title {
646
    font-size: 1.3rem;
647
    margin-bottom: var(--space-md);
648
  }
649
  
650
  .card-icon {
651
    width: 60px;
652
    height: 60px;
653
    background: linear-gradient(135deg, var(--magenta), var(--blue));
654
    border-radius: var(--radius-md);
655
    display: flex;
656
    align-items: center;
657
    justify-content: center;
658
    font-size: 1.5rem;
659
    color: var(--white);
660
    margin-bottom: var(--space-md);
661
  }
662
  
663
  .card-grid {
664
    display: grid;
665
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
666
    gap: var(--space-xl);
667
  }
668
  
669
  /* Feature cards */
670
  .feature-card {
671
    display: flex;
672
    align-items: flex-start;
673
    gap: var(--space-lg);
674
    padding: var(--space-xl);
675
    background: rgba(255, 255, 255, 0.05);
676
    border-radius: var(--radius-lg);
677
    transition: all var(--transition-normal);
678
    border: 1px solid rgba(255, 255, 255, 0.1);
679
    margin-bottom: var(--space-xl);
680
  }
681
  
682
  .feature-card:hover {
683
    transform: translateY(-5px);
684
    background: rgba(255, 255, 255, 0.08);
685
    box-shadow: var(--shadow-md);
686
    border-color: rgba(255, 255, 255, 0.15);
687
  }
688
  
689
  .feature-icon {
690
    min-width: 60px;
691
    height: 60px;
692
    border-radius: var(--radius-md);
693
    display: flex;
694
    align-items: center;
695
    justify-content: center;
696
    font-size: 1.5rem;
697
  }
698
  
699
  .feature-icon-blue {
700
    background: rgba(0, 164, 239, 0.15);
701
    color: var(--blue);
702
    border: 1px solid rgba(0, 164, 239, 0.3);
703
  }
704
  
705
  .feature-icon-magenta {
706
    background: rgba(255, 0, 102, 0.15);
707
    color: var(--magenta);
708
    border: 1px solid rgba(255, 0, 102, 0.3);
709
  }
710
  
711
  .feature-icon-orange {
712
    background: rgba(244, 128, 34, 0.15);
713
    color: var(--orange);
714
    border: 1px solid rgba(244, 128, 34, 0.3);
715
  }
716
  
717
  .feature-content h3 {
718
    margin-bottom: var(--space-sm);
719
  }
720
  
721
  /* Stats */
722
  .stats-section {
723
    padding: var(--space-xxl) 0;
724
    text-align: center;
725
    position: relative;
726
    background: linear-gradient(135deg, rgba(5, 30, 62, 0.7), rgba(0, 20, 39, 0.7));
727
    border-top: 1px solid rgba(255, 255, 255, 0.05);
728
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
729
  }
730
  
731
  .stats-grid {
732
    display: grid;
733
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
734
    gap: var(--space-xl);
735
    text-align: center;
736
    max-width: 1000px;
737
    margin: 0 auto;
738
  }
739
  
740
  .stat-item {
741
    padding: var(--space-md);
742
  }
743
  
744
  .stat-number {
745
    font-size: 3rem;
746
    font-weight: 700;
747
    margin-bottom: var(--space-xs);
748
    background: linear-gradient(135deg, var(--magenta), var(--blue));
749
    -webkit-background-clip: text;
750
    background-clip: text;
751
    -webkit-text-fill-color: transparent;
752
  }
753
  
754
  .stat-label {
755
    color: rgba(255, 255, 255, 0.8);
756
    font-size: 1rem;
757
    font-weight: 500;
758
  }
759
  
760
  /* Steps */
761
  .steps-container {
762
    counter-reset: step;
763
    position: relative;
764
  }
765
  
766
  .step-item {
767
    position: relative;
768
    padding-left: 70px;
769
    margin-bottom: var(--space-xl);
770
  }
771
  
772
  .step-item::before {
773
    counter-increment: step;
774
    content: counter(step);
775
    position: absolute;
776
    left: 0;
777
    top: 0;
778
    width: 50px;
779
    height: 50px;
780
    background: linear-gradient(135deg, var(--magenta), var(--blue));
781
    border-radius: 50%;
782
    display: flex;
783
    align-items: center;
784
    justify-content: center;
785
    font-weight: 700;
786
    font-size: 1.25rem;
787
    color: var(--white);
788
  }
789
  
790
  .step-item:not(:last-child)::after {
791
    content: '';
792
    position: absolute;
793
    left: 25px;
794
    top: 50px;
795
    bottom: -40px;
796
    width: 2px;
797
    background: linear-gradient(to bottom, var(--blue), transparent);
798
  }
799
  
800
  .step-content h3 {
801
    margin-bottom: var(--space-sm);
802
  }
803
  
804
  /* Footer */
805
  .footer {
806
    background: var(--dark-blue);
807
    padding: var(--space-xxl) 0 var(--space-md);
808
    border-top: 1px solid rgba(255, 255, 255, 0.1);
809
  }
810
  
811
  .footer-grid {
812
    display: grid;
813
    grid-template-columns: 2fr 1fr 1fr 1fr;
814
    gap: var(--space-xl);
815
  }
816
  
817
  .footer-brand {
818
    display: flex;
819
    flex-direction: column;
820
  }
821
  
822
  .footer-brand img {
823
    height: 40px;
824
    margin-bottom: var(--space-md);
825
  }
826
  
827
  .footer-brand p {
828
    margin-bottom: var(--space-lg);
829
    color: rgba(255, 255, 255, 0.7);
830
  }
831
  
832
  .footer-social {
833
    display: flex;
834
    gap: var(--space-md);
835
  }
836
  
837
  .social-link {
838
    width: 36px;
839
    height: 36px;
840
    border-radius: 50%;
841
    background: rgba(255, 255, 255, 0.1);
842
    display: flex;
843
    align-items: center;
844
    justify-content: center;
845
    color: var(--white);
846
    transition: all var(--transition-fast);
847
  }
848
  
849
  .social-link:hover {
850
    background: rgba(255, 255, 255, 0.2);
851
    transform: translateY(-2px);
852
    color: var(--white);
853
  }
854
  
855
  .footer-nav h4 {
856
    margin-bottom: var(--space-lg);
857
    color: var(--white);
858
    font-size: 1.1rem;
859
  }
860
  
861
  .footer-nav ul {
862
    list-style: none;
863
    padding: 0;
864
    margin: 0;
865
  }
866
  
867
  .footer-nav li {
868
    margin-bottom: var(--space-sm);
869
  }
870
  
871
  .footer-nav a {
872
    color: rgba(255, 255, 255, 0.7);
873
    transition: color var(--transition-fast);
874
  }
875
  
876
  .footer-nav a:hover {
877
    color: var(--white);
878
  }
879
  
880
  .footer-bottom {
881
    margin-top: var(--space-xxl);
882
    padding-top: var(--space-md);
883
    border-top: 1px solid rgba(255, 255, 255, 0.1);
884
    display: flex;
885
    justify-content: space-between;
886
    align-items: center;
887
    flex-wrap: wrap;
888
    gap: var(--space-md);
889
  }
890
  
891
  .footer-copyright {
892
    color: rgba(255, 255, 255, 0.6);
893
    font-size: 0.875rem;
894
  }
895
  
896
  .footer-links {
897
    display: flex;
898
    gap: var(--space-lg);
899
  }
900
  
901
  .footer-links a {
902
    color: rgba(255, 255, 255, 0.6);
903
    font-size: 0.875rem;
904
  }
905
  
906
  .footer-links a:hover {
907
    color: var(--white);
908
  }
909
  
910
  /* Background effects */
911
  .bg-gradient {
912
    position: absolute;
913
    top: 0;
914
    left: 0;
915
    width: 100%;
916
    height: 100%;
917
    overflow: hidden;
918
    z-index: -1;
919
  }
920
  
921
  .bg-blob {
922
    position: absolute;
923
    border-radius: 50%;
924
    filter: blur(60px);
925
    opacity: 0.5;
926
  }
927
  
928
  .bg-blob-1 {
929
    top: -200px;
930
    right: -100px;
931
    width: 600px;
932
    height: 600px;
933
    background: linear-gradient(135deg, rgba(255, 0, 102, 0.2), rgba(0, 0, 0, 0));
934
    animation: float 20s ease-in-out infinite alternate;
935
  }
936
  
937
  .bg-blob-2 {
938
    bottom: -150px;
939
    left: -100px;
940
    width: 500px;
941
    height: 500px;
942
    background: linear-gradient(135deg, rgba(0, 164, 239, 0.2), rgba(0, 0, 0, 0));
943
    animation: float 15s ease-in-out infinite alternate-reverse;
944
  }
945
  
946
  @keyframes float {
947
    0% { transform: translate(0, 0) rotate(0deg); }
948
    100% { transform: translate(40px, 40px) rotate(15deg); }
949
  }
950
  
951
  /* Utilities */
952
  .text-center {
953
    text-align: center;
954
  }
955
  
956
  .mb-sm {
957
    margin-bottom: var(--space-sm);
958
  }
959
  
960
  .mb-md {
961
    margin-bottom: var(--space-md);
962
  }
963
  
964
  .mb-lg {
965
    margin-bottom: var(--space-lg);
966
  }
967
  
968
  .mb-xl {
969
    margin-bottom: var(--space-xl);
970
  }
971
  
972
  .mt-sm {
973
    margin-top: var(--space-sm);
974
  }
975
  
976
  .mt-md {
977
    margin-top: var(--space-md);
978
  }
979
  
980
  .mt-lg {
981
    margin-top: var(--space-lg);
982
  }
983
  
984
  .mt-xl {
985
    margin-top: var(--space-xl);
986
  }
987
  
988
  .gradient-text {
989
    background: linear-gradient(135deg, var(--magenta), var(--blue));
990
    -webkit-background-clip: text;
991
    background-clip: text;
992
    -webkit-text-fill-color: transparent;
993
  }
994
  
995
  /* Responsive styles */
996
  @media screen and (max-width: 1024px) {
997
    h1 {
998
      font-size: 3rem;
999
    }
1000
    
1001
    h2 {
1002
      font-size: 2.25rem;
1003
    }
1004
    
1005
    .hero-content {
1006
      grid-template-columns: 1fr;
1007
      text-align: center;
1008
    }
1009
    
1010
    .hero-subtitle {
1011
      margin-left: auto;
1012
      margin-right: auto;
1013
    }
1014
    
1015
    .hero-buttons {
1016
      justify-content: center;
1017
    }
1018
    
1019
    .hero-animation {
1020
      margin-top: var(--space-xl);
1021
    }
1022
    
1023
    .footer-grid {
1024
      grid-template-columns: 1fr 1fr;
1025
      gap: var(--space-xl) var(--space-xxl);
1026
    }
1027
  }
1028
  
1029
  @media screen and (max-width: 768px) {
1030
    h1 {
1031
      font-size: 2.5rem;
1032
    }
1033
    
1034
    h2 {
1035
      font-size: 2rem;
1036
    }
1037
    
1038
    .navbar-container {
1039
      position: relative;
1040
    }
1041
    
1042
    .nav-links {
1043
      position: absolute;
1044
      top: 100%;
1045
      left: 0;
1046
      right: 0;
1047
      flex-direction: column;
1048
      background: var(--dark-bg);
1049
      padding: var(--space-lg);
1050
      transform: translateY(-100%);
1051
      opacity: 0;
1052
      visibility: hidden;
1053
      transition: all var(--transition-normal);
1054
      border-bottom: 1px solid rgba(255, 255, 255, 0.1);
1055
    }
1056
    
1057
    .nav-links.active {
1058
      transform: translateY(0);
1059
      opacity: 1;
1060
      visibility: visible;
1061
    }
1062
    
1063
    .nav-links li {
1064
      margin: var(--space-sm) 0;
1065
    }
1066
    
1067
    .mobile-toggle {
1068
      display: block;
1069
    }
1070
    
1071
    .hero-buttons {
1072
      flex-direction: column;
1073
      width: 100%;
1074
      max-width: 300px;
1075
      margin-left: auto;
1076
      margin-right: auto;
1077
    }
1078
    
1079
    .feature-card {
1080
      flex-direction: column;
1081
    }
1082
    
1083
    .footer-grid {
1084
      grid-template-columns: 1fr;
1085
      gap: var(--space-xl);
1086
    }
1087
    
1088
    .footer-bottom {
1089
      flex-direction: column;
1090
      align-items: center;
1091
      text-align: center;
1092
    }
1093
  }
1094
  
1095
  @media screen and (max-width: 480px) {
1096
    .container {
1097
      padding: 0 var(--space-md);
1098
    }
1099
    
1100
    h1 {
1101
      font-size: 2rem;
1102
    }
1103
    
1104
    h2 {
1105
      font-size: 1.75rem;
1106
    }
1107
    
1108
    .stats-grid {
1109
      grid-template-columns: 1fr;
1110
    }
1111
  }
1112
  
1113
  @media screen and (max-width: 768px) {
1114
    .notification-banner {
1115
      padding: 0.5rem 2rem 0.5rem 0.5rem;
1116
      font-size: 0.9rem;
1117
    }
1118
    
1119
    .notification-banner span {
1120
      display: inline;
1121
    }
1122
    
1123
    .notification-banner .notification-link {
1124
      margin: 0 0.25rem;
1125
    }
1126
  }
1127
  
1128
  @media screen and (max-width: 480px) {
1129
    .notification-banner {
1130
      padding: 0.5rem 2rem 0.5rem 0.5rem;
1131
      font-size: 0.8rem;
1132
      line-height: 1.4;
1133
    }
1134
    
1135
    .notification-banner span {
1136
      display: inline;
1137
    }
1138
    
1139
    .notification-banner .notification-link {
1140
      margin: 0.25rem;
1141
      padding: 0.15rem 0.35rem;
1142
    }
1143
  }
1144
  
1145
  /* DNAnalyzer Disclaimer CSS Update */
1146
.disclaimer-section {
1147
  padding: 1rem 0;
1148
  background: transparent !important; /* Override any dark background */
1149
}
1150
1151
.disclaimer-content {
1152
  max-width: 90%;
1153
  margin: 0 auto;
1154
  background-color: rgba(30, 30, 40, 0.4); /* Subtle dark background */
1155
  border-radius: 8px;
1156
  padding: 1rem;
1157
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
1158
  border: 1px solid rgba(255, 255, 255, 0.1);
1159
}
1160
1161
.disclaimer-title {
1162
  font-size: 0.85rem;
1163
  margin-bottom: 0.75rem;
1164
  opacity: 0.75;
1165
  color: rgba(255, 255, 255, 0.8);
1166
  font-weight: 500;
1167
  text-transform: uppercase;
1168
  letter-spacing: 0.5px;
1169
}
1170
1171
.disclaimer-text {
1172
  font-size: 0.7rem;
1173
   opacity: 0.65;
1174
   line-height: 1.4;
1175
   color: rgba(255, 255, 255, 0.7);
1176
}
1177
1178
/* Futuristic Notification Effects */
1179
@keyframes notifPulse {
1180
    0% { box-shadow: 0 0 5px #FF9100; }
1181
    50% { box-shadow: 0 0 20px #FF9100; }
1182
    100% { box-shadow: 0 0 5px #FF9100; }
1183
}
1184
1185
/* JavaScript will add this class when scrolling down */
1186
.hide-notification {
1187
    transform: translateY(-100%);
1188
}
1189
1190
/* Scroll-based animations */
1191
.scroll-animate {
1192
  opacity: 0;
1193
  transform: translateY(30px);
1194
  transition: opacity 0.8s ease, transform 0.8s ease;
1195
}
1196
1197
.scroll-animate.animate-in {
1198
  opacity: 1;
1199
  transform: translateY(0);
1200
}
1201
1202
.scroll-animate-delay-1 {
1203
  transition-delay: 0.2s;
1204
}
1205
1206
.scroll-animate-delay-2 {
1207
  transition-delay: 0.4s;
1208
}
1209
1210
.scroll-animate-delay-3 {
1211
  transition-delay: 0.6s;
1212
}
1213
1214
.scroll-animate-right {
1215
  opacity: 0;
1216
  transform: translateX(50px);
1217
  transition: opacity 0.8s ease, transform 0.8s ease;
1218
}
1219
1220
.scroll-animate-right.animate-in {
1221
  opacity: 1;
1222
  transform: translateX(0);
1223
}
1224
1225
.scroll-animate-left {
1226
  opacity: 0;
1227
  transform: translateX(-50px);
1228
  transition: opacity 0.8s ease, transform 0.8s ease;
1229
}
1230
1231
.scroll-animate-left.animate-in {
1232
  opacity: 1;
1233
  transform: translateX(0);
1234
}
1235
1236
.scroll-animate-scale {
1237
  opacity: 0;
1238
  transform: scale(0.8);
1239
  transition: opacity 0.8s ease, transform 0.8s ease;
1240
}
1241
1242
.scroll-animate-scale.animate-in {
1243
  opacity: 1;
1244
  transform: scale(1);
1245
}
1246
1247
/* Interactive particles */
1248
.particles-container {
1249
  position: absolute;
1250
  top: 0;
1251
  left: 0;
1252
  width: 100%;
1253
  height: 100%;
1254
  z-index: 0;
1255
  overflow: hidden;
1256
  pointer-events: none;
1257
}
1258
1259
.floating-particle {
1260
  position: absolute;
1261
  background: rgba(255, 255, 255, 0.1);
1262
  border-radius: 50%;
1263
  pointer-events: none;
1264
  transition: transform 0.3s ease;
1265
}