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

Switch to unified view

a b/web/style.css.new
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
}