-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstyles.css
More file actions
146 lines (130 loc) · 5.04 KB
/
Copy pathstyles.css
File metadata and controls
146 lines (130 loc) · 5.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
body {
background-color: #050505;
color: #f0f0f0;
overflow-x: hidden;
cursor: none; /* Custom cursor */
}
/* Custom Cursor: Replace default browser cursor with interactive custom elements */
/* Creates a premium interactive effect where cursor visually responds to different elements */
.cursor-dot,
.cursor-outline {
position: fixed;
top: 0;
left: 0;
transform: translate(-50%, -50%);
border-radius: 50%;
z-index: 9999;
pointer-events: none; /* Cursor elements don't interfere with clicks */
}
.cursor-dot {
width: 8px;
height: 8px;
background-color: #00ff9d; /* Neon green center dot */
}
.cursor-outline {
width: 40px;
height: 40px;
border: 1px solid rgba(255, 255, 255, 0.5); /* Subtle white outline */
transition: width 0.2s, height 0.2s, background-color 0.2s; /* Smooth size changes */
}
body:hover .cursor-outline {
opacity: 1; /* Ensure outline is visible when hovering over body */
}
/* Scrollbar Customization: Style the browser's scrollbar to match dark theme */
/* ::-webkit-scrollbar targets Chrome, Edge, Safari - Firefox uses different method */
/* Scrollbar accent becomes neon green on hover for visual feedback */
::-webkit-scrollbar {
width: 8px; /* Width of the scrollbar */
}
::-webkit-scrollbar-track {
background: #050505; /* Track (background) color matches body */
}
::-webkit-scrollbar-thumb {
background: #333; /* Thumb (draggable part) - dark gray by default */
border-radius: 4px; /* Rounded corners on thumb */
}
::-webkit-scrollbar-thumb:hover {
background: #00ff9d; /* Thumb becomes neon green on hover */
}
/* Text Reveal Animation Classes: Fade-in effect for text elements scrolling into view */
/* .reveal-text: Initial hidden state - positioned below original location */
/* .reveal-text.active: Final visible state - added by Intersection Observer when in viewport */
.reveal-text {
opacity: 0; /* Start invisible */
transform: translateY(100px); /* Start positioned 100px below */
transition: all 1s cubic-bezier(0.16, 1, 0.3, 1); /* Smooth animation curve */
}
.reveal-text.active {
opacity: 1; /* Fade to fully visible */
transform: translateY(0); /* Move to normal position */
}
/* 3D Canvas Container: Fixed background where Three.js renders the 3D shoe model */
/* position: fixed keeps it behind all content as user scrolls down the page */
/* pointer-events: all allows interaction with 3D model through mouse tracking */
#canvas-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
z-index: 0; /* Behind all content (z-index: 10+) */
pointer-events: all; /* Allow dragging and interaction */
}
/* Content Layers: HTML content positioned above the 3D canvas background */
/* z-index: 10 ensures text/buttons/sections appear on top of 3D graphics */
/* pointer-events: none makes elements transparent to mouse (except interactive-element) */
.content-layer {
position: relative;
z-index: 10; /* Above 3D background (z-index: 0) */
pointer-events: none; /* Let clicks pass through to canvas */
}
/* Interactive elements: Override pointer-events to allow clicks on specific elements */
.interactive-element {
pointer-events: auto; /* These elements CAN be clicked */
}
/* Glitch Effect Helper: Creates trendy digital 'glitch' animation on hover */
/* Rapidly shifts text position left/right to simulate VHS corruption effect */
/* Color changes to neon green when activated */
.glitch-text:hover {
animation: glitch 0.3s cubic-bezier(.25, .46, .45, .94) both infinite; /* Infinite glitch loop */
color: #00ff9d; /* Change text to neon green */
}
@keyframes glitch {
0% { transform: translate(0) } /* No movement */
20% { transform: translate(-2px, 2px) } /* Shift left and down */
40% { transform: translate(-2px, -2px) } /* Shift left and up */
60% { transform: translate(2px, 2px) } /* Shift right and down */
80% { transform: translate(2px, -2px) } /* Shift right and up */
100% { transform: translate(0) } /* Return to normal */
}
/* Loader: Full-screen loading animation that displays while page is loading */
/* Fixed positioning at z-index 10000 ensures it appears above everything else */
/* Slides up off-screen after page loads using translateY transform */
#loader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #050505; /* Solid black background */
z-index: 10000; /* Above all other elements */
display: flex;
justify-content: center;
align-items: center;
transition: transform 0.8s ease-in-out; /* Smooth exit animation */
}
.loader-bar {
/* Progress bar inside the loader - animates from 0% to 100% width */
width: 0%; /* Starts empty */
height: 2px; /* Thin horizontal line */
background: #00ff9d; /* Neon green accent color */
transition: width 0.5s ease; /* Smooth width animation */
}
/* Marquee Animation */
@keyframes marquee {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
.animate-marquee {
animation: marquee 20s linear infinite;
}