pranit144 commited on
Commit
ff27fd8
·
verified ·
1 Parent(s): ab5a852

Upload 44 files

Browse files
.gitattributes CHANGED
@@ -33,3 +33,34 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ images/0_rOIc88HfNzBtAhru.gif filter=lfs diff=lfs merge=lfs -text
37
+ images/1[[:space:]](1).jpg filter=lfs diff=lfs merge=lfs -text
38
+ images/1[[:space:]](1).mp4 filter=lfs diff=lfs merge=lfs -text
39
+ images/1[[:space:]](11).jpg filter=lfs diff=lfs merge=lfs -text
40
+ images/1[[:space:]](12).jpg filter=lfs diff=lfs merge=lfs -text
41
+ images/1[[:space:]](13).jpg filter=lfs diff=lfs merge=lfs -text
42
+ images/1[[:space:]](14).jpg filter=lfs diff=lfs merge=lfs -text
43
+ images/1[[:space:]](15).jpg filter=lfs diff=lfs merge=lfs -text
44
+ images/1[[:space:]](16).jpg filter=lfs diff=lfs merge=lfs -text
45
+ images/1[[:space:]](17).jpg filter=lfs diff=lfs merge=lfs -text
46
+ images/1[[:space:]](19).jpg filter=lfs diff=lfs merge=lfs -text
47
+ images/1[[:space:]](2).jpg filter=lfs diff=lfs merge=lfs -text
48
+ images/1[[:space:]](20).jpg filter=lfs diff=lfs merge=lfs -text
49
+ images/1[[:space:]](21).jpg filter=lfs diff=lfs merge=lfs -text
50
+ images/1[[:space:]](22).jpg filter=lfs diff=lfs merge=lfs -text
51
+ images/1[[:space:]](23).jpg filter=lfs diff=lfs merge=lfs -text
52
+ images/1[[:space:]](24).jpg filter=lfs diff=lfs merge=lfs -text
53
+ images/1[[:space:]](25).jpg filter=lfs diff=lfs merge=lfs -text
54
+ images/1[[:space:]](26).jpg filter=lfs diff=lfs merge=lfs -text
55
+ images/1[[:space:]](27).jpg filter=lfs diff=lfs merge=lfs -text
56
+ images/1[[:space:]](29).jpg filter=lfs diff=lfs merge=lfs -text
57
+ images/1[[:space:]](3).jpg filter=lfs diff=lfs merge=lfs -text
58
+ images/1[[:space:]](30).jpg filter=lfs diff=lfs merge=lfs -text
59
+ images/1[[:space:]](32).jpg filter=lfs diff=lfs merge=lfs -text
60
+ images/1[[:space:]](33).jpg filter=lfs diff=lfs merge=lfs -text
61
+ images/1[[:space:]](34).jpg filter=lfs diff=lfs merge=lfs -text
62
+ images/1[[:space:]](36).jpg filter=lfs diff=lfs merge=lfs -text
63
+ images/1[[:space:]](6).jpg filter=lfs diff=lfs merge=lfs -text
64
+ images/1[[:space:]](7).jpg filter=lfs diff=lfs merge=lfs -text
65
+ images/1[[:space:]](8).jpg filter=lfs diff=lfs merge=lfs -text
66
+ images/1[[:space:]](9).jpg filter=lfs diff=lfs merge=lfs -text
about.html ADDED
@@ -0,0 +1,1378 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>About & Skills - Pranit Chilbule</title>
7
+ <link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;700&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
8
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
9
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
10
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/devicons/[email protected]/devicon.min.css">
11
+ <style>
12
+ :root {
13
+ --bg-primary: #0a0a0f;
14
+ --bg-secondary: #1a1a2e;
15
+ --bg-card: #16213e;
16
+ --text-primary: #e6e6fa;
17
+ --text-secondary: rgba(230, 230, 250, 0.8);
18
+ --accent-blue: #00d4ff;
19
+ --accent-purple: #7c3aed;
20
+ --accent-green: #00ff88;
21
+ --accent-pink: #ff6b9d;
22
+ --accent-orange: #ff9500;
23
+ --header-bg: rgba(10, 10, 15, 0.95);
24
+ --border-color: #2a2a3e;
25
+ --shadow-glow: rgba(0, 212, 255, 0.3);
26
+ --gradient-primary: linear-gradient(135deg, var(--accent-blue), var(--accent-purple));
27
+ --gradient-secondary: linear-gradient(135deg, var(--accent-green), var(--accent-blue));
28
+ --gradient-tertiary: linear-gradient(135deg, var(--accent-pink), var(--accent-orange));
29
+ }
30
+
31
+ * {
32
+ margin: 0;
33
+ padding: 0;
34
+ box-sizing: border-box;
35
+ }
36
+
37
+ body {
38
+ background: var(--bg-primary);
39
+ color: var(--text-primary);
40
+ font-family: 'Inter', sans-serif;
41
+ line-height: 1.6;
42
+ overflow-x: hidden;
43
+ }
44
+
45
+ /* Animated Background */
46
+ #three-canvas {
47
+ position: fixed;
48
+ top: 0;
49
+ left: 0;
50
+ width: 100%;
51
+ height: 100%;
52
+ z-index: -1;
53
+ pointer-events: none;
54
+ }
55
+
56
+ /* Enhanced Header */
57
+ header {
58
+ position: fixed;
59
+ top: 0;
60
+ left: 0;
61
+ width: 100%;
62
+ padding: 1.5rem 2rem;
63
+ background: var(--header-bg);
64
+ backdrop-filter: blur(20px) saturate(180%);
65
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
66
+ z-index: 1000;
67
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
68
+ }
69
+
70
+ nav {
71
+ display: flex;
72
+ justify-content: space-between;
73
+ align-items: center;
74
+ max-width: 1400px;
75
+ margin: 0 auto;
76
+ }
77
+
78
+ .logo {
79
+ font-family: 'JetBrains Mono', monospace;
80
+ font-size: 1.8rem;
81
+ font-weight: 700;
82
+ background: var(--gradient-primary);
83
+ -webkit-background-clip: text;
84
+ -webkit-text-fill-color: transparent;
85
+ background-clip: text;
86
+ text-decoration: none;
87
+ transition: all 0.3s ease;
88
+ position: relative;
89
+ }
90
+
91
+ .logo::after {
92
+ content: '';
93
+ position: absolute;
94
+ bottom: -5px;
95
+ left: 0;
96
+ width: 0;
97
+ height: 3px;
98
+ background: var(--gradient-primary);
99
+ transition: width 0.3s ease;
100
+ border-radius: 2px;
101
+ }
102
+
103
+ .logo:hover::after {
104
+ width: 100%;
105
+ }
106
+
107
+ .nav-links {
108
+ display: flex;
109
+ list-style: none;
110
+ gap: 2.5rem;
111
+ }
112
+
113
+ .nav-links a {
114
+ color: var(--text-primary);
115
+ text-decoration: none;
116
+ font-weight: 500;
117
+ font-size: 1.1rem;
118
+ transition: all 0.3s ease;
119
+ position: relative;
120
+ padding: 0.5rem 1rem;
121
+ border-radius: 25px;
122
+ }
123
+
124
+ .nav-links a:hover,
125
+ .nav-links a.active {
126
+ color: var(--accent-blue);
127
+ background: rgba(0, 212, 255, 0.1);
128
+ transform: translateY(-2px);
129
+ }
130
+
131
+ .nav-links a::before {
132
+ content: '';
133
+ position: absolute;
134
+ top: 0;
135
+ left: 0;
136
+ right: 0;
137
+ bottom: 0;
138
+ background: var(--gradient-primary);
139
+ border-radius: 25px;
140
+ opacity: 0;
141
+ transition: opacity 0.3s ease;
142
+ z-index: -1;
143
+ }
144
+
145
+ .nav-links a:hover::before {
146
+ opacity: 0.1;
147
+ }
148
+
149
+ /* Main Content */
150
+ main {
151
+ margin-top: 100px;
152
+ padding: 2rem 0;
153
+ position: relative;
154
+ z-index: 1;
155
+ }
156
+
157
+ .container {
158
+ max-width: 1400px;
159
+ margin: 0 auto;
160
+ padding: 0 2rem;
161
+ }
162
+
163
+ /* Enhanced About Section */
164
+ #about {
165
+ padding: 5rem 2rem;
166
+ margin-bottom: 5rem;
167
+ background: rgba(22, 33, 62, 0.4);
168
+ backdrop-filter: blur(20px) saturate(180%);
169
+ border-radius: 30px;
170
+ border: 1px solid rgba(255, 255, 255, 0.1);
171
+ position: relative;
172
+ overflow: hidden;
173
+ }
174
+
175
+ #about::before {
176
+ content: '';
177
+ position: absolute;
178
+ top: 0;
179
+ left: 0;
180
+ right: 0;
181
+ bottom: 0;
182
+ background: var(--gradient-primary);
183
+ opacity: 0.05;
184
+ border-radius: 30px;
185
+ }
186
+
187
+ .about-grid {
188
+ display: grid;
189
+ grid-template-columns: 1fr 2fr;
190
+ gap: 5rem;
191
+ align-items: center;
192
+ max-width: 1400px;
193
+ margin: 0 auto;
194
+ position: relative;
195
+ z-index: 1;
196
+ }
197
+
198
+ .profile-section {
199
+ text-align: center;
200
+ position: relative;
201
+ }
202
+
203
+ .profile-image {
204
+ position: relative;
205
+ display: inline-block;
206
+ }
207
+
208
+ .profile-image::before {
209
+ content: '';
210
+ position: absolute;
211
+ top: -20px;
212
+ left: -20px;
213
+ right: -20px;
214
+ bottom: -20px;
215
+ background: var(--gradient-primary);
216
+ border-radius: 50%;
217
+ animation: rotate 10s linear infinite;
218
+ z-index: -1;
219
+ }
220
+
221
+ .profile-image img {
222
+ width: 250px;
223
+ height: 250px;
224
+ border-radius: 50%;
225
+ border: 6px solid var(--bg-primary);
226
+ box-shadow: 0 20px 60px var(--shadow-glow);
227
+ object-fit: cover;
228
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
229
+ position: relative;
230
+ z-index: 1;
231
+ }
232
+
233
+ .profile-image:hover img {
234
+ transform: scale(1.05);
235
+ box-shadow: 0 30px 80px var(--shadow-glow);
236
+ }
237
+
238
+ .status-badge {
239
+ position: absolute;
240
+ bottom: 20px;
241
+ right: 20px;
242
+ background: var(--gradient-secondary);
243
+ color: white;
244
+ padding: 0.5rem 1rem;
245
+ border-radius: 20px;
246
+ font-size: 0.9rem;
247
+ font-weight: 600;
248
+ box-shadow: 0 10px 30px rgba(0, 255, 136, 0.3);
249
+ animation: pulse 2s infinite;
250
+ }
251
+
252
+ .about-content h2 {
253
+ font-size: 3.5rem;
254
+ margin-bottom: 2rem;
255
+ background: var(--gradient-primary);
256
+ -webkit-background-clip: text;
257
+ -webkit-text-fill-color: transparent;
258
+ background-clip: text;
259
+ font-weight: 700;
260
+ line-height: 1.2;
261
+ }
262
+
263
+ .about-content p {
264
+ font-size: 1.2rem;
265
+ margin-bottom: 2rem;
266
+ opacity: 0.9;
267
+ line-height: 1.8;
268
+ }
269
+
270
+ .about-highlights {
271
+ display: grid;
272
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
273
+ gap: 2rem;
274
+ margin-top: 3rem;
275
+ }
276
+
277
+ .highlight-card {
278
+ background: rgba(255, 255, 255, 0.05);
279
+ padding: 2rem;
280
+ border-radius: 20px;
281
+ border: 1px solid rgba(255, 255, 255, 0.1);
282
+ transition: all 0.3s ease;
283
+ text-align: center;
284
+ }
285
+
286
+ .highlight-card:hover {
287
+ transform: translateY(-10px);
288
+ background: rgba(255, 255, 255, 0.1);
289
+ box-shadow: 0 20px 40px rgba(0, 212, 255, 0.2);
290
+ }
291
+
292
+ .highlight-card i {
293
+ font-size: 2.5rem;
294
+ margin-bottom: 1rem;
295
+ background: var(--gradient-primary);
296
+ -webkit-background-clip: text;
297
+ -webkit-text-fill-color: transparent;
298
+ background-clip: text;
299
+ }
300
+
301
+ .highlight-card h4 {
302
+ font-size: 1.1rem;
303
+ margin-bottom: 0.5rem;
304
+ color: var(--accent-blue);
305
+ }
306
+
307
+ .highlight-card p {
308
+ font-size: 0.9rem;
309
+ opacity: 0.8;
310
+ margin: 0;
311
+ }
312
+
313
+ /* Enhanced Education Timeline */
314
+ .timeline-section {
315
+ padding: 5rem 2rem;
316
+ margin-bottom: 5rem;
317
+ background: rgba(22, 33, 62, 0.4);
318
+ backdrop-filter: blur(20px) saturate(180%);
319
+ border-radius: 30px;
320
+ border: 1px solid rgba(255, 255, 255, 0.1);
321
+ position: relative;
322
+ overflow: hidden;
323
+ }
324
+
325
+ .timeline-section::before {
326
+ content: '';
327
+ position: absolute;
328
+ top: 0;
329
+ left: 0;
330
+ right: 0;
331
+ bottom: 0;
332
+ background: var(--gradient-secondary);
333
+ opacity: 0.05;
334
+ border-radius: 30px;
335
+ }
336
+
337
+ .timeline-section h2 {
338
+ text-align: center;
339
+ font-size: 3rem;
340
+ margin-bottom: 4rem;
341
+ background: var(--gradient-secondary);
342
+ -webkit-background-clip: text;
343
+ -webkit-text-fill-color: transparent;
344
+ background-clip: text;
345
+ font-weight: 700;
346
+ position: relative;
347
+ z-index: 1;
348
+ }
349
+
350
+ .timeline {
351
+ position: relative;
352
+ max-width: 1000px;
353
+ margin: 0 auto;
354
+ }
355
+
356
+ .timeline::before {
357
+ content: '';
358
+ position: absolute;
359
+ left: 50%;
360
+ top: 0;
361
+ bottom: 0;
362
+ width: 4px;
363
+ background: var(--gradient-primary);
364
+ transform: translateX(-50%);
365
+ border-radius: 2px;
366
+ }
367
+
368
+ .timeline-item {
369
+ position: relative;
370
+ margin-bottom: 4rem;
371
+ width: 50%;
372
+ }
373
+
374
+ .timeline-item:nth-child(odd) {
375
+ left: 0;
376
+ padding-right: 3rem;
377
+ }
378
+
379
+ .timeline-item:nth-child(even) {
380
+ left: 50%;
381
+ padding-left: 3rem;
382
+ }
383
+
384
+ .timeline-date {
385
+ position: absolute;
386
+ top: 50%;
387
+ width: 80px;
388
+ height: 80px;
389
+ background: var(--gradient-primary);
390
+ border-radius: 50%;
391
+ display: flex;
392
+ align-items: center;
393
+ justify-content: center;
394
+ font-weight: bold;
395
+ font-size: 1rem;
396
+ transform: translateY(-50%);
397
+ box-shadow: 0 0 0 6px var(--bg-primary), 0 20px 40px rgba(0, 212, 255, 0.3);
398
+ z-index: 2;
399
+ }
400
+
401
+ .timeline-item:nth-child(odd) .timeline-date {
402
+ right: -40px;
403
+ }
404
+
405
+ .timeline-item:nth-child(even) .timeline-date {
406
+ left: -40px;
407
+ }
408
+
409
+ .timeline-content {
410
+ background: rgba(255, 255, 255, 0.05);
411
+ padding: 2.5rem;
412
+ border-radius: 20px;
413
+ border: 1px solid rgba(255, 255, 255, 0.1);
414
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
415
+ position: relative;
416
+ overflow: hidden;
417
+ }
418
+
419
+ .timeline-content::before {
420
+ content: '';
421
+ position: absolute;
422
+ top: 0;
423
+ left: 0;
424
+ right: 0;
425
+ bottom: 0;
426
+ background: var(--gradient-primary);
427
+ opacity: 0;
428
+ transition: opacity 0.3s ease;
429
+ }
430
+
431
+ .timeline-content:hover {
432
+ transform: translateY(-10px);
433
+ box-shadow: 0 30px 60px rgba(0, 212, 255, 0.2);
434
+ }
435
+
436
+ .timeline-content:hover::before {
437
+ opacity: 0.05;
438
+ }
439
+
440
+ .timeline-content h3 {
441
+ color: var(--accent-blue);
442
+ font-size: 1.5rem;
443
+ margin-bottom: 1rem;
444
+ display: flex;
445
+ align-items: center;
446
+ gap: 1rem;
447
+ position: relative;
448
+ z-index: 1;
449
+ }
450
+
451
+ .timeline-content h3 i {
452
+ font-size: 1.8rem;
453
+ }
454
+
455
+ .timeline-content .degree {
456
+ font-weight: 600;
457
+ margin-bottom: 0.5rem;
458
+ font-size: 1.1rem;
459
+ position: relative;
460
+ z-index: 1;
461
+ }
462
+
463
+ .timeline-content .duration {
464
+ color: var(--text-secondary);
465
+ font-size: 1rem;
466
+ position: relative;
467
+ z-index: 1;
468
+ }
469
+
470
+ /* Enhanced Skills Section */
471
+ #skills {
472
+ padding: 5rem 2rem;
473
+ background: rgba(22, 33, 62, 0.4);
474
+ backdrop-filter: blur(20px) saturate(180%);
475
+ border-radius: 30px;
476
+ border: 1px solid rgba(255, 255, 255, 0.1);
477
+ position: relative;
478
+ overflow: hidden;
479
+ }
480
+
481
+ #skills::before {
482
+ content: '';
483
+ position: absolute;
484
+ top: 0;
485
+ left: 0;
486
+ right: 0;
487
+ bottom: 0;
488
+ background: var(--gradient-tertiary);
489
+ opacity: 0.05;
490
+ border-radius: 30px;
491
+ }
492
+
493
+ .skills-container {
494
+ max-width: 1400px;
495
+ margin: 0 auto;
496
+ position: relative;
497
+ z-index: 1;
498
+ }
499
+
500
+ .skills-container h2 {
501
+ text-align: center;
502
+ font-size: 3rem;
503
+ margin-bottom: 4rem;
504
+ background: var(--gradient-tertiary);
505
+ -webkit-background-clip: text;
506
+ -webkit-text-fill-color: transparent;
507
+ background-clip: text;
508
+ font-weight: 700;
509
+ }
510
+
511
+ .skills-grid {
512
+ display: grid;
513
+ grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
514
+ gap: 2.5rem;
515
+ margin-bottom: 5rem;
516
+ }
517
+
518
+ .skill-category {
519
+ background: rgba(255, 255, 255, 0.05);
520
+ backdrop-filter: blur(10px);
521
+ padding: 2.5rem;
522
+ border-radius: 25px;
523
+ border: 1px solid rgba(255, 255, 255, 0.1);
524
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
525
+ position: relative;
526
+ overflow: hidden;
527
+ }
528
+
529
+ .skill-category::before {
530
+ content: '';
531
+ position: absolute;
532
+ top: 0;
533
+ left: 0;
534
+ right: 0;
535
+ bottom: 0;
536
+ background: var(--gradient-primary);
537
+ opacity: 0;
538
+ transition: opacity 0.3s ease;
539
+ }
540
+
541
+ .skill-category:hover {
542
+ transform: translateY(-15px);
543
+ box-shadow: 0 30px 60px rgba(124, 58, 237, 0.3);
544
+ }
545
+
546
+ .skill-category:hover::before {
547
+ opacity: 0.1;
548
+ }
549
+
550
+ .skill-category h3 {
551
+ color: var(--accent-blue);
552
+ font-size: 1.5rem;
553
+ margin-bottom: 2rem;
554
+ display: flex;
555
+ align-items: center;
556
+ gap: 1rem;
557
+ position: relative;
558
+ z-index: 1;
559
+ }
560
+
561
+ .skill-category h3 i {
562
+ font-size: 2rem;
563
+ width: 40px;
564
+ text-align: center;
565
+ background: var(--gradient-primary);
566
+ -webkit-background-clip: text;
567
+ -webkit-text-fill-color: transparent;
568
+ background-clip: text;
569
+ }
570
+
571
+ .skill-tags {
572
+ display: flex;
573
+ flex-wrap: wrap;
574
+ gap: 1rem;
575
+ position: relative;
576
+ z-index: 1;
577
+ }
578
+
579
+ .skill-tag {
580
+ background: rgba(255, 255, 255, 0.1);
581
+ color: var(--text-primary);
582
+ padding: 0.8rem 1.5rem;
583
+ border-radius: 25px;
584
+ font-size: 0.95rem;
585
+ font-weight: 500;
586
+ border: 1px solid rgba(255, 255, 255, 0.2);
587
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
588
+ display: flex;
589
+ align-items: center;
590
+ gap: 0.5rem;
591
+ position: relative;
592
+ overflow: hidden;
593
+ }
594
+
595
+ .skill-tag::before {
596
+ content: '';
597
+ position: absolute;
598
+ top: 0;
599
+ left: -100%;
600
+ width: 100%;
601
+ height: 100%;
602
+ background: var(--gradient-primary);
603
+ transition: left 0.5s ease;
604
+ z-index: -1;
605
+ }
606
+
607
+ .skill-tag:hover {
608
+ transform: translateY(-5px);
609
+ box-shadow: 0 15px 30px rgba(0, 212, 255, 0.3);
610
+ color: white;
611
+ }
612
+
613
+ .skill-tag:hover::before {
614
+ left: 0;
615
+ }
616
+
617
+ .skill-tag i {
618
+ font-size: 1.2rem;
619
+ }
620
+
621
+ /* Programming Languages Icons */
622
+ .skill-tag[data-skill="java"] i::before { content: '\f4e4'; color: #f89820; }
623
+ .skill-tag[data-skill="python"] i::before { content: '\f3e2'; color: #3776ab; }
624
+ .skill-tag[data-skill="javascript"] i::before { content: '\f3b8'; color: #f7df1e; }
625
+ .skill-tag[data-skill="html"] i::before { content: '\f13b'; color: #e34f26; }
626
+ .skill-tag[data-skill="css"] i::before { content: '\f13c'; color: #1572b6; }
627
+ .skill-tag[data-skill="c"] i::before { content: '\f671'; color: #a8b9cc; }
628
+
629
+ /* Enhanced Skill Meters */
630
+ .skill-meters {
631
+ margin-top: 4rem;
632
+ background: rgba(255, 255, 255, 0.03);
633
+ padding: 3rem;
634
+ border-radius: 25px;
635
+ border: 1px solid rgba(255, 255, 255, 0.1);
636
+ }
637
+
638
+ .skill-meters h3 {
639
+ text-align: center;
640
+ margin-bottom: 3rem;
641
+ color: var(--accent-green);
642
+ font-size: 2rem;
643
+ font-weight: 600;
644
+ }
645
+
646
+ .skill-meter {
647
+ margin-bottom: 2.5rem;
648
+ position: relative;
649
+ }
650
+
651
+ .skill-meter-header {
652
+ display: flex;
653
+ justify-content: space-between;
654
+ align-items: center;
655
+ margin-bottom: 1rem;
656
+ }
657
+
658
+ .skill-name {
659
+ font-weight: 600;
660
+ font-size: 1.1rem;
661
+ display: flex;
662
+ align-items: center;
663
+ gap: 1rem;
664
+ }
665
+
666
+ .skill-name i {
667
+ font-size: 1.5rem;
668
+ width: 30px;
669
+ text-align: center;
670
+ }
671
+
672
+ .skill-percentage {
673
+ color: var(--accent-blue);
674
+ font-weight: 700;
675
+ font-size: 1.1rem;
676
+ }
677
+
678
+ .skill-bar {
679
+ height: 12px;
680
+ background: rgba(255, 255, 255, 0.1);
681
+ border-radius: 10px;
682
+ overflow: hidden;
683
+ position: relative;
684
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3);
685
+ }
686
+
687
+ .skill-progress {
688
+ height: 100%;
689
+ background: var(--gradient-primary);
690
+ border-radius: 10px;
691
+ width: 0;
692
+ transition: width 2s cubic-bezier(0.4, 0, 0.2, 1);
693
+ position: relative;
694
+ overflow: hidden;
695
+ }
696
+
697
+ .skill-progress::after {
698
+ content: '';
699
+ position: absolute;
700
+ top: 0;
701
+ left: 0;
702
+ right: 0;
703
+ bottom: 0;
704
+ background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
705
+ animation: shimmer 2s infinite;
706
+ }
707
+
708
+ /* Floating Icons Animation */
709
+ .floating-icons {
710
+ position: absolute;
711
+ top: 0;
712
+ left: 0;
713
+ right: 0;
714
+ bottom: 0;
715
+ pointer-events: none;
716
+ overflow: hidden;
717
+ }
718
+
719
+ .floating-icon {
720
+ position: absolute;
721
+ font-size: 2rem;
722
+ opacity: 0.1;
723
+ animation: float 20s infinite linear;
724
+ }
725
+
726
+ /* Footer Enhancement */
727
+ footer {
728
+ margin-top: 5rem;
729
+ padding: 3rem 2rem;
730
+ background: var(--bg-secondary);
731
+ border-top: 1px solid var(--border-color);
732
+ position: relative;
733
+ }
734
+
735
+ .footer-content {
736
+ display: flex;
737
+ justify-content: center;
738
+ align-items: center;
739
+ max-width: 1400px;
740
+ margin: 0 auto;
741
+ gap: 2rem;
742
+ }
743
+
744
+ .social-link {
745
+ display: flex;
746
+ align-items: center;
747
+ justify-content: center;
748
+ width: 50px;
749
+ height: 50px;
750
+ background: rgba(255, 255, 255, 0.05);
751
+ border-radius: 15px;
752
+ transition: all 0.3s ease;
753
+ text-decoration: none;
754
+ border: 1px solid rgba(255, 255, 255, 0.1);
755
+ }
756
+
757
+ .social-link:hover {
758
+ transform: translateY(-5px);
759
+ background: var(--gradient-primary);
760
+ box-shadow: 0 15px 30px rgba(0, 212, 255, 0.3);
761
+ }
762
+
763
+ .social-icon {
764
+ width: 24px;
765
+ height: 24px;
766
+ fill: var(--text-secondary);
767
+ transition: fill 0.3s ease;
768
+ }
769
+
770
+ .social-link:hover .social-icon {
771
+ fill: white;
772
+ }
773
+
774
+ /* Animations */
775
+ @keyframes rotate {
776
+ from { transform: rotate(0deg); }
777
+ to { transform: rotate(360deg); }
778
+ }
779
+
780
+ @keyframes pulse {
781
+ 0%, 100% { transform: scale(1); }
782
+ 50% { transform: scale(1.1); }
783
+ }
784
+
785
+ @keyframes shimmer {
786
+ 0% { transform: translateX(-100%); }
787
+ 100% { transform: translateX(100%); }
788
+ }
789
+
790
+ @keyframes float {
791
+ 0% {
792
+ transform: translateY(100vh) rotate(0deg);
793
+ opacity: 0;
794
+ }
795
+ 10% {
796
+ opacity: 0.1;
797
+ }
798
+ 90% {
799
+ opacity: 0.1;
800
+ }
801
+ 100% {
802
+ transform: translateY(-100vh) rotate(360deg);
803
+ opacity: 0;
804
+ }
805
+ }
806
+
807
+ .fade-in {
808
+ opacity: 0;
809
+ transform: translateY(50px);
810
+ transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
811
+ }
812
+
813
+ .fade-in.visible {
814
+ opacity: 1;
815
+ transform: translateY(0);
816
+ }
817
+
818
+ /* Mobile Menu */
819
+ .menu-toggle {
820
+ display: none;
821
+ flex-direction: column;
822
+ cursor: pointer;
823
+ gap: 4px;
824
+ }
825
+
826
+ .menu-toggle span {
827
+ width: 25px;
828
+ height: 3px;
829
+ background: var(--text-primary);
830
+ transition: all 0.3s ease;
831
+ border-radius: 2px;
832
+ }
833
+
834
+ /* Responsive Design */
835
+ @media (max-width: 768px) {
836
+ header {
837
+ padding: 1rem;
838
+ }
839
+
840
+ .nav-links {
841
+ display: none;
842
+ position: absolute;
843
+ top: 100%;
844
+ left: 0;
845
+ width: 100%;
846
+ background: var(--header-bg);
847
+ backdrop-filter: blur(20px);
848
+ flex-direction: column;
849
+ padding: 2rem 0;
850
+ gap: 1rem;
851
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
852
+ }
853
+
854
+ .nav-links.active {
855
+ display: flex;
856
+ }
857
+
858
+ .menu-toggle {
859
+ display: flex;
860
+ }
861
+
862
+ .about-grid {
863
+ grid-template-columns: 1fr;
864
+ gap: 3rem;
865
+ text-align: center;
866
+ }
867
+
868
+ .about-content h2 {
869
+ font-size: 2.5rem;
870
+ }
871
+
872
+ .timeline::before {
873
+ left: 30px;
874
+ }
875
+
876
+ .timeline-item {
877
+ width: 100%;
878
+ left: 0 !important;
879
+ padding-left: 5rem !important;
880
+ padding-right: 0 !important;
881
+ }
882
+
883
+ .timeline-date {
884
+ left: 0 !important;
885
+ right: auto !important;
886
+ }
887
+
888
+ .skills-grid {
889
+ grid-template-columns: 1fr;
890
+ }
891
+
892
+ .timeline-section h2,
893
+ .skills-container h2 {
894
+ font-size: 2.5rem;
895
+ }
896
+
897
+ .profile-image img {
898
+ width: 200px;
899
+ height: 200px;
900
+ }
901
+ }
902
+
903
+ @media (max-width: 480px) {
904
+ .container {
905
+ padding: 0 1rem;
906
+ }
907
+
908
+ #about,
909
+ .timeline-section,
910
+ #skills {
911
+ padding: 3rem 1.5rem;
912
+ margin-bottom: 3rem;
913
+ }
914
+
915
+ .about-content h2 {
916
+ font-size: 2rem;
917
+ }
918
+
919
+ .timeline-content {
920
+ padding: 2rem;
921
+ }
922
+
923
+ .skill-category {
924
+ padding: 2rem;
925
+ }
926
+
927
+ .about-highlights {
928
+ grid-template-columns: 1fr;
929
+ }
930
+ }
931
+ </style>
932
+ </head>
933
+ <body>
934
+ <!-- Animated Background -->
935
+ <canvas id="three-canvas"></canvas>
936
+
937
+ <!-- Floating Icons -->
938
+ <div class="floating-icons">
939
+ <i class="fab fa-python floating-icon" style="left: 10%; animation-delay: 0s;"></i>
940
+ <i class="fab fa-js-square floating-icon" style="left: 20%; animation-delay: 3s;"></i>
941
+ <i class="fab fa-react floating-icon" style="left: 30%; animation-delay: 6s;"></i>
942
+ <i class="fab fa-node-js floating-icon" style="left: 40%; animation-delay: 9s;"></i>
943
+ <i class="fas fa-brain floating-icon" style="left: 50%; animation-delay: 12s;"></i>
944
+ <i class="fab fa-github floating-icon" style="left: 60%; animation-delay: 15s;"></i>
945
+ <i class="fas fa-database floating-icon" style="left: 70%; animation-delay: 18s;"></i>
946
+ <i class="fab fa-docker floating-icon" style="left: 80%; animation-delay: 21s;"></i>
947
+ </div>
948
+
949
+ <!-- Header -->
950
+ <header>
951
+ <nav>
952
+ <a href="index.html" class="logo">Pranit Chilbule</a>
953
+ <div class="menu-toggle" onclick="toggleMenu()">
954
+ <span></span>
955
+ <span></span>
956
+ <span></span>
957
+ </div>
958
+ <ul class="nav-links" id="navLinks">
959
+ <li><a href="index.html"><i class="fas fa-home"></i> Home</a></li>
960
+ <li><a href="#about" class="active"><i class="fas fa-user"></i> About</a></li>
961
+ <li><a href="projects.html"><i class="fas fa-project-diagram"></i> Projects</a></li>
962
+ <li><a href="#achievements"><i class="fas fa-trophy"></i> Achievements</a></li>
963
+ <li><a href="#contact"><i class="fas fa-envelope"></i> Contact</a></li>
964
+ </ul>
965
+ </nav>
966
+ </header>
967
+
968
+ <main>
969
+ <!-- About Section -->
970
+ <section id="about" class="fade-in">
971
+ <div class="about-grid">
972
+ <div class="profile-section">
973
+ <div class="profile-image">
974
+ <img src="images/121415604.jpeg" alt="Pranit Chilbule Profile Picture">
975
+ <div class="status-badge">
976
+ <i class="fas fa-circle" style="color: var(--accent-green); font-size: 0.7rem;"></i>
977
+ Available for Projects
978
+ </div>
979
+ </div>
980
+ </div>
981
+ <div class="about-content">
982
+ <h2>About Me</h2>
983
+ <p>
984
+ I'm a 3rd-year AI/ML engineering student at VIT Pune, passionate about building intelligent systems that solve real-world problems. My journey in technology spans from developing cutting-edge machine learning models to creating robust web applications using the MERN stack.
985
+ </p>
986
+ <p>
987
+ I thrive on exploring the intersection of artificial intelligence and practical software development. When I'm not coding, you'll find me diving deep into research papers, experimenting with new AI frameworks, or contributing to open-source projects that push the boundaries of what's possible with technology.
988
+ </p>
989
+
990
+ <div class="about-highlights">
991
+ <div class="highlight-card">
992
+ <i class="fas fa-graduation-cap"></i>
993
+ <h4>Education</h4>
994
+ <p>AI/ML Engineering<br>VIT Pune</p>
995
+ </div>
996
+ <div class="highlight-card">
997
+ <i class="fas fa-code"></i>
998
+ <h4>Experience</h4>
999
+ <p>3+ Years in<br>Programming</p>
1000
+ </div>
1001
+ <div class="highlight-card">
1002
+ <i class="fas fa-project-diagram"></i>
1003
+ <h4>Projects</h4>
1004
+ <p>15+ Completed<br>Projects</p>
1005
+ </div>
1006
+ <div class="highlight-card">
1007
+ <i class="fas fa-brain"></i>
1008
+ <h4>Specialization</h4>
1009
+ <p>Generative AI &<br>Deep Learning</p>
1010
+ </div>
1011
+ </div>
1012
+ </div>
1013
+ </div>
1014
+ </section>
1015
+
1016
+ <!-- Education Timeline -->
1017
+ <section class="timeline-section fade-in">
1018
+ <div class="container">
1019
+ <h2>Education Journey</h2>
1020
+ <div class="timeline">
1021
+ <div class="timeline-item">
1022
+ <div class="timeline-date">2026</div>
1023
+ <div class="timeline-content">
1024
+ <h3><i class="fas fa-university"></i>VIT Pune</h3>
1025
+ <div class="degree">B.Tech in Artificial Intelligence & Machine Learning</div>
1026
+ <div class="duration">2022 - 2026 (Expected)</div>
1027
+ </div>
1028
+ </div>
1029
+ <div class="timeline-item">
1030
+ <div class="timeline-date">2022</div>
1031
+ <div class="timeline-content">
1032
+ <h3><i class="fas fa-school"></i>Vidya Niketan Junior College</h3>
1033
+ <div class="degree">Higher Secondary Certificate (HSC) - Science</div>
1034
+ <div class="duration">2020 - 2022</div>
1035
+ </div>
1036
+ </div>
1037
+ <div class="timeline-item">
1038
+ <div class="timeline-date">2020</div>
1039
+ <div class="timeline-content">
1040
+ <h3><i class="fas fa-graduation-cap"></i>Chanda Public School</h3>
1041
+ <div class="degree">Secondary School Certificate (SSC)</div>
1042
+ <div class="duration">Completed 2020</div>
1043
+ </div>
1044
+ </div>
1045
+ </div>
1046
+ </div>
1047
+ </section>
1048
+
1049
+ <!-- Skills Section -->
1050
+ <section id="skills" class="fade-in">
1051
+ <div class="skills-container">
1052
+ <h2>Technical Skills</h2>
1053
+
1054
+ <div class="skills-grid">
1055
+ <div class="skill-category">
1056
+ <h3><i class="fas fa-code"></i> Programming Languages</h3>
1057
+ <div class="skill-tags">
1058
+ <span class="skill-tag" data-skill="java"><i class="devicon-java-plain"></i>Java</span>
1059
+ <span class="skill-tag" data-skill="python"><i class="devicon-python-plain"></i>Python</span>
1060
+ <span class="skill-tag" data-skill="c"><i class="devicon-c-plain"></i>C</span>
1061
+ <span class="skill-tag" data-skill="html"><i class="devicon-html5-plain"></i>HTML</span>
1062
+ <span class="skill-tag" data-skill="css"><i class="devicon-css3-plain"></i>CSS</span>
1063
+ <span class="skill-tag" data-skill="javascript"><i class="devicon-javascript-plain"></i>JavaScript</span>
1064
+ </div>
1065
+ </div>
1066
+
1067
+ <div class="skill-category">
1068
+ <h3><i class="fas fa-layer-group"></i> Frameworks & Libraries</h3>
1069
+ <div class="skill-tags">
1070
+ <span class="skill-tag"><i class="devicon-tensorflow-original"></i>TensorFlow</span>
1071
+ <span class="skill-tag"><i class="fas fa-brain"></i>Keras</span>
1072
+ <span class="skill-tag"><i class="fas fa-chart-line"></i>Scikit-learn</span>
1073
+ <span class="skill-tag"><i class="devicon-numpy-original"></i>NumPy</span>
1074
+ <span class="skill-tag"><i class="devicon-pandas-original"></i>Pandas</span>
1075
+ <span class="skill-tag"><i class="fas fa-chart-bar"></i>Plotly</span>
1076
+ <span class="skill-tag"><i class="fas fa-map"></i>Folium</span>
1077
+ <span class="skill-tag"><i class="devicon-flask-original"></i>Flask</span>
1078
+ <span class="skill-tag"><i class="fas fa-stream"></i>Streamlit</span>
1079
+ <span class="skill-tag"><i class="devicon-react-original"></i>React</span>
1080
+ <span class="skill-tag"><i class="devicon-nodejs-plain"></i>Node.js</span>
1081
+ </div>
1082
+ </div>
1083
+
1084
+ <div class="skill-category">
1085
+ <h3><i class="fas fa-brain"></i> AI/ML Domains</h3>
1086
+ <div class="skill-tags">
1087
+ <span class="skill-tag"><i class="fas fa-robot"></i>Generative AI</span>
1088
+ <span class="skill-tag"><i class="fas fa-magic"></i>Agentic AI</span>
1089
+ <span class="skill-tag"><i class="fas fa-search"></i>RAG Systems</span>
1090
+ <span class="skill-tag"><i class="fas fa-language"></i>Large Language Models</span>
1091
+ <span class="skill-tag"><i class="fas fa-network-wired"></i>GANs</span>
1092
+ <span class="skill-tag"><i class="fas fa-eye"></i>Computer Vision</span>
1093
+ <span class="skill-tag"><i class="fas fa-comments"></i>NLP</span>
1094
+ </div>
1095
+ </div>
1096
+
1097
+ <div class="skill-category">
1098
+ <h3><i class="fas fa-tools"></i> Tools & Platforms</h3>
1099
+ <div class="skill-tags">
1100
+ <span class="skill-tag"><i class="devicon-git-plain"></i>Git</span>
1101
+ <span class="skill-tag"><i class="devicon-vscode-plain"></i>VS Code</span>
1102
+ <span class="skill-tag"><i class="devicon-pycharm-plain"></i>PyCharm</span>
1103
+ <span class="skill-tag"><i class="devicon-intellij-plain"></i>IntelliJ IDEA</span>
1104
+ <span class="skill-tag"><i class="fas fa-eclipse"></i>Eclipse</span>
1105
+ <span class="skill-tag"><i class="fas fa-chart-pie"></i>Power BI</span>
1106
+ <span class="skill-tag"><i class="fas fa-table"></i>Tableau</span>
1107
+ <span class="skill-tag"><i class="devicon-docker-plain"></i>Docker</span>
1108
+ </div>
1109
+ </div>
1110
+ </div>
1111
+
1112
+ <!-- Skill Meters -->
1113
+ <div class="skill-meters">
1114
+ <h3>Proficiency Levels</h3>
1115
+
1116
+ <div class="skill-meter" data-skill="90">
1117
+ <div class="skill-meter-header">
1118
+ <span class="skill-name"><i class="devicon-python-plain"></i>Python</span>
1119
+ <span class="skill-percentage">90%</span>
1120
+ </div>
1121
+ <div class="skill-bar">
1122
+ <div class="skill-progress"></div>
1123
+ </div>
1124
+ </div>
1125
+
1126
+ <div class="skill-meter" data-skill="85">
1127
+ <div class="skill-meter-header">
1128
+ <span class="skill-name"><i class="fas fa-brain"></i>Machine Learning</span>
1129
+ <span class="skill-percentage">85%</span>
1130
+ </div>
1131
+ <div class="skill-bar">
1132
+ <div class="skill-progress"></div>
1133
+ </div>
1134
+ </div>
1135
+
1136
+ <div class="skill-meter" data-skill="80">
1137
+ <div class="skill-meter-header">
1138
+ <span class="skill-name"><i class="devicon-javascript-plain"></i>JavaScript</span>
1139
+ <span class="skill-percentage">80%</span>
1140
+ </div>
1141
+ <div class="skill-bar">
1142
+ <div class="skill-progress"></div>
1143
+ </div>
1144
+ </div>
1145
+
1146
+ <div class="skill-meter" data-skill="85">
1147
+ <div class="skill-meter-header">
1148
+ <span class="skill-name"><i class="devicon-react-original"></i>React.js</span>
1149
+ <span class="skill-percentage">85%</span>
1150
+ </div>
1151
+ <div class="skill-bar">
1152
+ <div class="skill-progress"></div>
1153
+ </div>
1154
+ </div>
1155
+
1156
+ <div class="skill-meter" data-skill="75">
1157
+ <div class="skill-meter-header">
1158
+ <span class="skill-name"><i class="fas fa-chart-line"></i>Data Analysis</span>
1159
+ <span class="skill-percentage">75%</span>
1160
+ </div>
1161
+ <div class="skill-bar">
1162
+ <div class="skill-progress"></div>
1163
+ </div>
1164
+ </div>
1165
+
1166
+ <div class="skill-meter" data-skill="80">
1167
+ <div class="skill-meter-header">
1168
+ <span class="skill-name"><i class="fas fa-network-wired"></i>Deep Learning</span>
1169
+ <span class="skill-percentage">80%</span>
1170
+ </div>
1171
+ <div class="skill-bar">
1172
+ <div class="skill-progress"></div>
1173
+ </div>
1174
+ </div>
1175
+ </div>
1176
+ </div>
1177
+ </section>
1178
+ </main>
1179
+
1180
+ <!-- Footer -->
1181
+ <footer>
1182
+ <div class="footer-content">
1183
+ <a href="https://linkedin.com/in/pranit-chilbule" target="_blank" class="social-link">
1184
+ <svg class="social-icon" viewBox="0 0 24 24">
1185
+ <path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>
1186
+ </svg>
1187
+ </a>
1188
+ <a href="https://github.com/pranit-chilbule" target="_blank" class="social-link">
1189
+ <svg class="social-icon" viewBox="0 0 24 24">
1190
+ <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
1191
+ </svg>
1192
+ </a>
1193
+ <a href="mailto:[email protected]" target="_blank" class="social-link">
1194
+ <svg class="social-icon" viewBox="0 0 24 24">
1195
+ <path d="M12 12.713l-11.985-9.713h23.97l-11.985 9.713zm0 2.574l-12-9.725v15.438h24v-15.438l-12 9.725z"/>
1196
+ </svg>
1197
+ </a>
1198
+ </div>
1199
+ </footer>
1200
+
1201
+ <script>
1202
+ // Three.js Background Animation
1203
+ let scene, camera, renderer, particles;
1204
+
1205
+ function initThree() {
1206
+ scene = new THREE.Scene();
1207
+ camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
1208
+ renderer = new THREE.WebGLRenderer({
1209
+ canvas: document.getElementById('three-canvas'),
1210
+ alpha: true
1211
+ });
1212
+
1213
+ renderer.setSize(window.innerWidth, window.innerHeight);
1214
+ renderer.setClearColor(0x000000, 0);
1215
+
1216
+ // Create particles
1217
+ const geometry = new THREE.BufferGeometry();
1218
+ const particleCount = 1500;
1219
+ const positions = new Float32Array(particleCount * 3);
1220
+ const colors = new Float32Array(particleCount * 3);
1221
+
1222
+ for (let i = 0; i < particleCount * 3; i += 3) {
1223
+ positions[i] = (Math.random() - 0.5) * 2000;
1224
+ positions[i + 1] = (Math.random() - 0.5) * 2000;
1225
+ positions[i + 2] = (Math.random() - 0.5) * 2000;
1226
+
1227
+ // Color variations (blue to purple)
1228
+ colors[i] = Math.random() * 0.5 + 0.5; // R
1229
+ colors[i + 1] = Math.random() * 0.3 + 0.7; // G
1230
+ colors[i + 2] = 1; // B
1231
+ }
1232
+
1233
+ geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
1234
+ geometry.setAttribute('color', new THREE.BufferAttribute(colors, 3));
1235
+
1236
+ const material = new THREE.PointsMaterial({
1237
+ size: 3,
1238
+ vertexColors: true,
1239
+ transparent: true,
1240
+ opacity: 0.8
1241
+ });
1242
+
1243
+ particles = new THREE.Points(geometry, material);
1244
+ scene.add(particles);
1245
+
1246
+ camera.position.z = 1000;
1247
+ }
1248
+
1249
+ function animateThree() {
1250
+ requestAnimationFrame(animateThree);
1251
+
1252
+ particles.rotation.x += 0.0005;
1253
+ particles.rotation.y += 0.001;
1254
+
1255
+ renderer.render(scene, camera);
1256
+ }
1257
+
1258
+ // Mobile menu toggle
1259
+ function toggleMenu() {
1260
+ const navLinks = document.getElementById('navLinks');
1261
+ const menuToggle = document.querySelector('.menu-toggle');
1262
+
1263
+ navLinks.classList.toggle('active');
1264
+ menuToggle.classList.toggle('active');
1265
+ }
1266
+
1267
+ // Scroll animations
1268
+ function animateOnScroll() {
1269
+ const elements = document.querySelectorAll('.fade-in');
1270
+
1271
+ elements.forEach(element => {
1272
+ const elementTop = element.getBoundingClientRect().top;
1273
+ const elementVisible = 150;
1274
+
1275
+ if (elementTop < window.innerHeight - elementVisible) {
1276
+ element.classList.add('visible');
1277
+ }
1278
+ });
1279
+ }
1280
+
1281
+ // Skill bar animations
1282
+ function animateSkillBars() {
1283
+ const skillMeters = document.querySelectorAll('.skill-meter');
1284
+
1285
+ skillMeters.forEach(meter => {
1286
+ const progress = meter.querySelector('.skill-progress');
1287
+ const percentage = meter.getAttribute('data-skill');
1288
+ const meterTop = meter.getBoundingClientRect().top;
1289
+
1290
+ if (meterTop < window.innerHeight - 100) {
1291
+ setTimeout(() => {
1292
+ progress.style.width = percentage + '%';
1293
+ }, 200);
1294
+ }
1295
+ });
1296
+ }
1297
+
1298
+ // Header scroll effect
1299
+ function handleHeaderScroll() {
1300
+ const header = document.querySelector('header');
1301
+ if (window.scrollY > 100) {
1302
+ header.style.background = 'rgba(10, 10, 15, 0.98)';
1303
+ header.style.boxShadow = '0 10px 30px rgba(0, 0, 0, 0.3)';
1304
+ } else {
1305
+ header.style.background = 'var(--header-bg)';
1306
+ header.style.boxShadow = 'none';
1307
+ }
1308
+ }
1309
+
1310
+ // Smooth scrolling for navigation links
1311
+ function smoothScroll() {
1312
+ const navLinks = document.querySelectorAll('.nav-links a[href^="#"]');
1313
+
1314
+ navLinks.forEach(link => {
1315
+ link.addEventListener('click', function(e) {
1316
+ e.preventDefault();
1317
+ const targetId = this.getAttribute('href');
1318
+ const targetSection = document.querySelector(targetId);
1319
+
1320
+ if (targetSection) {
1321
+ targetSection.scrollIntoView({
1322
+ behavior: 'smooth',
1323
+ block: 'start'
1324
+ });
1325
+ }
1326
+ });
1327
+ });
1328
+ }
1329
+
1330
+ // Initialize everything
1331
+ document.addEventListener('DOMContentLoaded', function() {
1332
+ initThree();
1333
+ animateThree();
1334
+ smoothScroll();
1335
+
1336
+ // Initial animations
1337
+ setTimeout(() => {
1338
+ animateOnScroll();
1339
+ animateSkillBars();
1340
+ }, 500);
1341
+ });
1342
+
1343
+ // Event listeners
1344
+ window.addEventListener('scroll', function() {
1345
+ animateOnScroll();
1346
+ animateSkillBars();
1347
+ handleHeaderScroll();
1348
+ });
1349
+
1350
+ window.addEventListener('resize', function() {
1351
+ camera.aspect = window.innerWidth / window.innerHeight;
1352
+ camera.updateProjectionMatrix();
1353
+ renderer.setSize(window.innerWidth, window.innerHeight);
1354
+ });
1355
+
1356
+ // Particle mouse interaction
1357
+ document.addEventListener('mousemove', function(event) {
1358
+ if (particles) {
1359
+ const mouseX = (event.clientX / window.innerWidth) * 2 - 1;
1360
+ const mouseY = -(event.clientY / window.innerHeight) * 2 + 1;
1361
+
1362
+ particles.rotation.x += mouseY * 0.0001;
1363
+ particles.rotation.y += mouseX * 0.0001;
1364
+ }
1365
+ });
1366
+
1367
+ // Add parallax effect to profile image
1368
+ window.addEventListener('scroll', function() {
1369
+ const profileImage = document.querySelector('.profile-image');
1370
+ if (profileImage) {
1371
+ const scrolled = window.pageYOffset;
1372
+ const parallax = scrolled * 0.1;
1373
+ profileImage.style.transform = `translateY(${parallax}px)`;
1374
+ }
1375
+ });
1376
+ </script>
1377
+ </body>
1378
+ </html>
achievements.html ADDED
@@ -0,0 +1,594 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Achievements & Blog - Pranit Chilbule</title>
7
+ <link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;700&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
8
+ <style>
9
+ * {
10
+ margin: 0;
11
+ padding: 0;
12
+ box-sizing: border-box;
13
+ }
14
+
15
+ :root {
16
+ --bg-primary: #0d1117;
17
+ --bg-secondary: #010409;
18
+ --bg-card: #21262d;
19
+ --text-primary: #c9d1d9;
20
+ --text-secondary: rgba(201, 209, 217, 0.8);
21
+ --accent-blue: #58a6ff;
22
+ --accent-green: #10a37f;
23
+ --accent-gold: #ffd700;
24
+ --accent-silver: #c0c0c0;
25
+ --header-bg: rgba(0, 0, 0, 0.6);
26
+ --border-color: #30363d;
27
+ }
28
+
29
+ body {
30
+ font-family: 'Inter', sans-serif;
31
+ background: var(--bg-primary);
32
+ color: var(--text-primary);
33
+ line-height: 1.6;
34
+ overflow-x: hidden;
35
+ }
36
+
37
+ /* Header */
38
+ header {
39
+ position: fixed;
40
+ top: 0;
41
+ width: 100%;
42
+ background: var(--header-bg);
43
+ backdrop-filter: blur(10px);
44
+ z-index: 1000;
45
+ border-bottom: 1px solid var(--border-color);
46
+ }
47
+
48
+ nav {
49
+ display: flex;
50
+ justify-content: space-between;
51
+ align-items: center;
52
+ padding: 1rem 2rem;
53
+ max-width: 1200px;
54
+ margin: 0 auto;
55
+ }
56
+
57
+ .logo {
58
+ font-family: 'Roboto Mono', monospace;
59
+ font-size: 1.5rem;
60
+ font-weight: 700;
61
+ color: var(--accent-blue);
62
+ }
63
+
64
+ .nav-links {
65
+ display: flex;
66
+ list-style: none;
67
+ gap: 2rem;
68
+ }
69
+
70
+ .nav-links a {
71
+ color: var(--text-primary);
72
+ text-decoration: none;
73
+ transition: color 0.3s ease;
74
+ }
75
+
76
+ .nav-links a:hover {
77
+ color: var(--accent-blue);
78
+ }
79
+
80
+ /* Main Content */
81
+ main {
82
+ max-width: 1200px;
83
+ margin: 0 auto;
84
+ padding: 120px 2rem 2rem;
85
+ }
86
+
87
+ section {
88
+ margin-bottom: 4rem;
89
+ }
90
+
91
+ h2 {
92
+ font-size: 2.5rem;
93
+ margin-bottom: 2rem;
94
+ color: var(--accent-blue);
95
+ text-align: center;
96
+ position: relative;
97
+ }
98
+
99
+ h2::after {
100
+ content: '';
101
+ position: absolute;
102
+ bottom: -10px;
103
+ left: 50%;
104
+ transform: translateX(-50%);
105
+ width: 80px;
106
+ height: 3px;
107
+ background: linear-gradient(90deg, var(--accent-blue), var(--accent-green));
108
+ border-radius: 2px;
109
+ }
110
+
111
+ /* Achievement Cards */
112
+ .achievements-grid {
113
+ display: grid;
114
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
115
+ gap: 2rem;
116
+ padding: 2rem 0;
117
+ }
118
+
119
+ .achievement-card {
120
+ background: var(--bg-card);
121
+ border-radius: 16px;
122
+ padding: 2rem;
123
+ border: 1px solid var(--border-color);
124
+ transition: all 0.4s ease;
125
+ cursor: pointer;
126
+ position: relative;
127
+ overflow: hidden;
128
+ }
129
+
130
+ .achievement-card::before {
131
+ content: '';
132
+ position: absolute;
133
+ top: 0;
134
+ left: -100%;
135
+ width: 100%;
136
+ height: 100%;
137
+ background: linear-gradient(90deg, transparent, rgba(88, 166, 255, 0.1), transparent);
138
+ transition: left 0.6s ease;
139
+ }
140
+
141
+ .achievement-card:hover::before {
142
+ left: 100%;
143
+ }
144
+
145
+ .achievement-card:hover {
146
+ transform: translateY(-8px);
147
+ box-shadow: 0 15px 40px rgba(88, 166, 255, 0.2);
148
+ border-color: var(--accent-blue);
149
+ }
150
+
151
+ .achievement-icon {
152
+ font-size: 3rem;
153
+ margin-bottom: 1.5rem;
154
+ display: block;
155
+ }
156
+
157
+ .achievement-title {
158
+ color: var(--accent-blue);
159
+ font-size: 1.3rem;
160
+ font-weight: 600;
161
+ margin-bottom: 1rem;
162
+ }
163
+
164
+ .achievement-description {
165
+ color: var(--text-secondary);
166
+ font-size: 1rem;
167
+ line-height: 1.6;
168
+ }
169
+
170
+ .achievement-stats {
171
+ display: flex;
172
+ gap: 1rem;
173
+ margin-top: 1rem;
174
+ font-size: 0.9rem;
175
+ color: var(--accent-green);
176
+ }
177
+
178
+ .stat-item {
179
+ background: rgba(16, 163, 127, 0.1);
180
+ padding: 0.3rem 0.8rem;
181
+ border-radius: 12px;
182
+ border: 1px solid rgba(16, 163, 127, 0.3);
183
+ }
184
+
185
+ /* Blog Section */
186
+ .blog-container {
187
+ overflow-x: auto;
188
+ padding: 2rem 0;
189
+ -ms-overflow-style: none;
190
+ scrollbar-width: none;
191
+ }
192
+
193
+ .blog-container::-webkit-scrollbar {
194
+ display: none;
195
+ }
196
+
197
+ .blog-grid {
198
+ display: flex;
199
+ gap: 2rem;
200
+ padding: 0.5rem;
201
+ }
202
+
203
+ .blog-card {
204
+ min-width: 350px;
205
+ max-width: 400px;
206
+ background: var(--bg-card);
207
+ border-radius: 16px;
208
+ overflow: hidden;
209
+ border: 1px solid var(--border-color);
210
+ transition: all 0.4s ease;
211
+ position: relative;
212
+ }
213
+
214
+ .blog-card:hover {
215
+ transform: translateY(-8px);
216
+ box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3);
217
+ border-color: var(--accent-blue);
218
+ }
219
+
220
+ .blog-image {
221
+ width: 100%;
222
+ height: 220px;
223
+ background: linear-gradient(135deg, var(--accent-blue), var(--accent-green));
224
+ display: flex;
225
+ align-items: center;
226
+ justify-content: center;
227
+ font-size: 3rem;
228
+ color: white;
229
+ }
230
+
231
+ .blog-content {
232
+ padding: 2rem;
233
+ }
234
+
235
+ .blog-date {
236
+ color: var(--accent-green);
237
+ font-size: 0.9rem;
238
+ margin-bottom: 0.8rem;
239
+ font-weight: 500;
240
+ }
241
+
242
+ .blog-title {
243
+ color: var(--text-primary);
244
+ font-size: 1.3rem;
245
+ font-weight: 600;
246
+ margin-bottom: 1rem;
247
+ line-height: 1.4;
248
+ }
249
+
250
+ .blog-excerpt {
251
+ color: var(--text-secondary);
252
+ font-size: 1rem;
253
+ margin-bottom: 1.5rem;
254
+ line-height: 1.6;
255
+ display: -webkit-box;
256
+ -webkit-line-clamp: 3;
257
+ -webkit-box-orient: vertical;
258
+ overflow: hidden;
259
+ }
260
+
261
+ .blog-link {
262
+ color: var(--accent-blue);
263
+ text-decoration: none;
264
+ font-weight: 500;
265
+ display: inline-flex;
266
+ align-items: center;
267
+ gap: 0.5rem;
268
+ transition: all 0.3s ease;
269
+ }
270
+
271
+ .blog-link:hover {
272
+ color: var(--accent-green);
273
+ transform: translateX(5px);
274
+ }
275
+
276
+ /* Footer */
277
+ footer {
278
+ background: var(--bg-secondary);
279
+ padding: 3rem 2rem 2rem;
280
+ border-top: 1px solid var(--border-color);
281
+ text-align: center;
282
+ }
283
+
284
+ .footer-content {
285
+ max-width: 1200px;
286
+ margin: 0 auto;
287
+ }
288
+
289
+ .social-links {
290
+ display: flex;
291
+ justify-content: center;
292
+ gap: 2rem;
293
+ margin-bottom: 2rem;
294
+ }
295
+
296
+ .social-links a {
297
+ color: var(--text-secondary);
298
+ font-size: 1.5rem;
299
+ transition: color 0.3s ease;
300
+ }
301
+
302
+ .social-links a:hover {
303
+ color: var(--accent-blue);
304
+ }
305
+
306
+ .footer-text {
307
+ color: var(--text-secondary);
308
+ font-size: 0.9rem;
309
+ }
310
+
311
+ /* Animations */
312
+ .fade-in {
313
+ opacity: 0;
314
+ transform: translateY(30px);
315
+ animation: fadeInUp 0.8s ease forwards;
316
+ }
317
+
318
+ @keyframes fadeInUp {
319
+ to {
320
+ opacity: 1;
321
+ transform: translateY(0);
322
+ }
323
+ }
324
+
325
+ .fade-in:nth-child(1) { animation-delay: 0.1s; }
326
+ .fade-in:nth-child(2) { animation-delay: 0.2s; }
327
+ .fade-in:nth-child(3) { animation-delay: 0.3s; }
328
+ .fade-in:nth-child(4) { animation-delay: 0.4s; }
329
+ .fade-in:nth-child(5) { animation-delay: 0.5s; }
330
+ .fade-in:nth-child(6) { animation-delay: 0.6s; }
331
+
332
+ /* Mobile Responsiveness */
333
+ @media (max-width: 768px) {
334
+ .nav-links {
335
+ display: none;
336
+ }
337
+
338
+ main {
339
+ padding: 100px 1rem 2rem;
340
+ }
341
+
342
+ h2 {
343
+ font-size: 2rem;
344
+ }
345
+
346
+ .achievements-grid {
347
+ grid-template-columns: 1fr;
348
+ gap: 1.5rem;
349
+ }
350
+
351
+ .achievement-card {
352
+ padding: 1.5rem;
353
+ }
354
+
355
+ .blog-card {
356
+ min-width: 280px;
357
+ }
358
+ }
359
+ </style>
360
+ </head>
361
+ <body>
362
+ <!-- Header -->
363
+ <header>
364
+ <nav>
365
+ <div class="logo">Pranit Chilbule</div>
366
+ <ul class="nav-links">
367
+ <li><a href="index.html">Home</a></li>
368
+ <li><a href="about.html">About</a></li>
369
+ <li><a href="projects.html">Projects</a></li>
370
+ <li><a href="achievements.html">Achievements</a></li>
371
+ <li><a href="contact.html">Contact</a></li>
372
+ </ul>
373
+ </nav>
374
+ </header>
375
+
376
+ <main>
377
+ <!-- Achievements Section -->
378
+ <section id="achievements">
379
+ <h2 class="fade-in">Achievements</h2>
380
+ <div class="achievements-grid">
381
+ <div class="achievement-card fade-in">
382
+ <div class="achievement-icon">🏆</div>
383
+ <h3 class="achievement-title">3× Hackathon Winner</h3>
384
+ <p class="achievement-description">First place victories at Cavista, Solvex, and Agri Tech hackathons, delivering innovative solutions across healthcare, agriculture, and engineering domains.</p>
385
+ <div class="achievement-stats">
386
+ <span class="stat-item">3 Wins</span>
387
+ <span class="stat-item">Multiple Domains</span>
388
+ </div>
389
+ </div>
390
+
391
+ <div class="achievement-card fade-in">
392
+ <div class="achievement-icon">🥈</div>
393
+ <h3 class="achievement-title">Runner-Up & Finalist</h3>
394
+ <p class="achievement-description">Runner-up at Smart India Hackathon 2024 and Agri AI Hackathon 2025. Finalist at 8+ hackathons with 20+ total participations, consistently applying AI to solve real-world challenges.</p>
395
+ <div class="achievement-stats">
396
+ <span class="stat-item">2 Runner-ups</span>
397
+ <span class="stat-item">8+ Finals</span>
398
+ <span class="stat-item">20+ Participations</span>
399
+ </div>
400
+ </div>
401
+
402
+ <div class="achievement-card fade-in">
403
+ <div class="achievement-icon">📑</div>
404
+ <h3 class="achievement-title">Research Publications</h3>
405
+ <p class="achievement-description">Research papers presented at the Maitri Conference and ICCICN, with publications indexed in prestigious Scopus and Springer databases.</p>
406
+ <div class="achievement-stats">
407
+ <span class="stat-item">Scopus Indexed</span>
408
+ <span class="stat-item">Springer</span>
409
+ </div>
410
+ </div>
411
+
412
+ <div class="achievement-card fade-in">
413
+ <div class="achievement-icon">🏅</div>
414
+ <h3 class="achievement-title">Best Project Award</h3>
415
+ <p class="achievement-description">Best Project Award for Plant Disease Detection System at college level, recognized for innovation among 120+ participants.</p>
416
+ <div class="achievement-stats">
417
+ <span class="stat-item">120+ Participants</span>
418
+ <span class="stat-item">AI/ML Project</span>
419
+ </div>
420
+ </div>
421
+
422
+ <div class="achievement-card fade-in">
423
+ <div class="achievement-icon">👥</div>
424
+ <h3 class="achievement-title">Innovsphere Club Founder</h3>
425
+ <p class="achievement-description">Founded and serve as Tech Lead of Innovsphere Club, a community-driven technology club fostering collaboration among students and industry professionals.</p>
426
+ <div class="achievement-stats">
427
+ <span class="stat-item">Founder</span>
428
+ <span class="stat-item">Tech Lead</span>
429
+ </div>
430
+ </div>
431
+
432
+ <div class="achievement-card fade-in">
433
+ <div class="achievement-icon">🌟</div>
434
+ <h3 class="achievement-title">Continuous Contributor</h3>
435
+ <p class="achievement-description">Actively contributing to data science and AI through open-source projects, technical blog posts, and ongoing academic and industry collaborations.</p>
436
+ <div class="achievement-stats">
437
+ <span class="stat-item">Open Source</span>
438
+ <span class="stat-item">Tech Blogs</span>
439
+ <span class="stat-item">Collaborations</span>
440
+ </div>
441
+ </div>
442
+ </div>
443
+ </section>
444
+
445
+ <!-- Blog Section -->
446
+ <section id="blog">
447
+ <h2 class="fade-in">Technical Blog</h2>
448
+ <div class="blog-container">
449
+ <div class="blog-grid">
450
+ <!-- Blog Post 1 -->
451
+ <article class="blog-card fade-in">
452
+ <div class="blog-image">🧠</div>
453
+ <div class="blog-content">
454
+ <div class="blog-date">December 15, 2024</div>
455
+ <h3 class="blog-title">Implementing GANs for Audio Generation</h3>
456
+ <p class="blog-excerpt">Exploring the architecture and implementation of Generative Adversarial Networks for creating realistic audio samples with deep learning techniques.</p>
457
+ <a href="#" class="blog-link">
458
+ Read More
459
+ <svg width="16" height="16" fill="none" stroke="currentColor" viewBox="0 0 24 24">
460
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"/>
461
+ </svg>
462
+ </a>
463
+ </div>
464
+ </article>
465
+
466
+ <!-- Blog Post 2 -->
467
+ <article class="blog-card fade-in">
468
+ <div class="blog-image">🌱</div>
469
+ <div class="blog-content">
470
+ <div class="blog-date">November 28, 2024</div>
471
+ <h3 class="blog-title">AI in Agriculture: Plant Disease Detection</h3>
472
+ <p class="blog-excerpt">Deep dive into computer vision techniques for early detection of plant diseases, featuring CNN architectures and real-world deployment strategies.</p>
473
+ <a href="#" class="blog-link">
474
+ Read More
475
+ <svg width="16" height="16" fill="none" stroke="currentColor" viewBox="0 0 24 24">
476
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"/>
477
+ </svg>
478
+ </a>
479
+ </div>
480
+ </article>
481
+
482
+ <!-- Blog Post 3 -->
483
+ <article class="blog-card fade-in">
484
+ <div class="blog-image">⚡</div>
485
+ <div class="blog-content">
486
+ <div class="blog-date">October 10, 2024</div>
487
+ <h3 class="blog-title">Building Scalable ML Pipelines</h3>
488
+ <p class="blog-excerpt">Best practices for designing and implementing machine learning pipelines that can handle production workloads with MLOps principles.</p>
489
+ <a href="#" class="blog-link">
490
+ Read More
491
+ <svg width="16" height="16" fill="none" stroke="currentColor" viewBox="0 0 24 24">
492
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"/>
493
+ </svg>
494
+ </a>
495
+ </div>
496
+ </article>
497
+
498
+ <!-- Blog Post 4 -->
499
+ <article class="blog-card fade-in">
500
+ <div class="blog-image">🔬</div>
501
+ <div class="blog-content">
502
+ <div class="blog-date">September 22, 2024</div>
503
+ <h3 class="blog-title">Research Paper Insights: AI Ethics</h3>
504
+ <p class="blog-excerpt">Key findings from recent research publications on ethical AI development and responsible machine learning practices in industry applications.</p>
505
+ <a href="#" class="blog-link">
506
+ Read More
507
+ <svg width="16" height="16" fill="none" stroke="currentColor" viewBox="0 0 24 24">
508
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"/>
509
+ </svg>
510
+ </a>
511
+ </div>
512
+ </article>
513
+ </div>
514
+ </div>
515
+ </section>
516
+ </main>
517
+
518
+ <!-- Footer -->
519
+ <footer>
520
+ <div class="footer-content">
521
+ <div class="social-links">
522
+ <a href="#" aria-label="LinkedIn">📧</a>
523
+ <a href="#" aria-label="GitHub">💻</a>
524
+ <a href="#" aria-label="Twitter">🐦</a>
525
+ <a href="#" aria-label="Medium">📝</a>
526
+ </div>
527
+ <p class="footer-text">© 2024 Pranit Chilbule. All rights reserved.</p>
528
+ </div>
529
+ </footer>
530
+
531
+ <script>
532
+ // Smooth scrolling for navigation links
533
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
534
+ anchor.addEventListener('click', function (e) {
535
+ e.preventDefault();
536
+ const target = document.querySelector(this.getAttribute('href'));
537
+ if (target) {
538
+ target.scrollIntoView({
539
+ behavior: 'smooth',
540
+ block: 'start'
541
+ });
542
+ }
543
+ });
544
+ });
545
+
546
+ // Intersection Observer for animations
547
+ const observerOptions = {
548
+ threshold: 0.1,
549
+ rootMargin: '0px 0px -50px 0px'
550
+ };
551
+
552
+ const observer = new IntersectionObserver((entries) => {
553
+ entries.forEach(entry => {
554
+ if (entry.isIntersecting) {
555
+ entry.target.style.animationPlayState = 'running';
556
+ }
557
+ });
558
+ }, observerOptions);
559
+
560
+ // Observe all elements with fade-in class
561
+ document.querySelectorAll('.fade-in').forEach(el => {
562
+ observer.observe(el);
563
+ });
564
+
565
+ // Add click effects to achievement cards
566
+ document.querySelectorAll('.achievement-card').forEach(card => {
567
+ card.addEventListener('click', function() {
568
+ this.style.transform = 'scale(0.98)';
569
+ setTimeout(() => {
570
+ this.style.transform = '';
571
+ }, 150);
572
+ });
573
+ });
574
+
575
+ // Header background on scroll
576
+ window.addEventListener('scroll', () => {
577
+ const header = document.querySelector('header');
578
+ if (window.scrollY > 100) {
579
+ header.style.background = 'rgba(0, 0, 0, 0.9)';
580
+ } else {
581
+ header.style.background = 'rgba(0, 0, 0, 0.6)';
582
+ }
583
+ });
584
+
585
+ // Initialize animations
586
+ document.addEventListener('DOMContentLoaded', () => {
587
+ const fadeElements = document.querySelectorAll('.fade-in');
588
+ fadeElements.forEach((el, index) => {
589
+ el.style.animationDelay = `${index * 0.1}s`;
590
+ });
591
+ });
592
+ </script>
593
+ </body>
594
+ </html>
contact.html ADDED
@@ -0,0 +1,288 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Contact - Pranit Chilbule</title>
7
+ <link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;700&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
8
+ <style>
9
+ /* Import existing theme variables */
10
+ :root {
11
+ --bg-primary: #0d1117;
12
+ --bg-secondary: #010409;
13
+ --bg-card: #21262d;
14
+ --text-primary: #c9d1d9;
15
+ --text-secondary: rgba(201, 209, 217, 0.8);
16
+ --accent-blue: #58a6ff;
17
+ --accent-green: #10a37f;
18
+ --header-bg: rgba(0, 0, 0, 0.6);
19
+ --border-color: #30363d;
20
+ }
21
+
22
+ /* Base styles */
23
+ body {
24
+ background-color: var(--bg-primary);
25
+ color: var(--text-primary);
26
+ font-family: 'Inter', sans-serif;
27
+ line-height: 1.6;
28
+ margin: 0;
29
+ }
30
+
31
+ /* Contact Form Section */
32
+ .contact-section {
33
+ max-width: 600px;
34
+ margin: 100px auto 4rem;
35
+ padding: 0 2rem;
36
+ }
37
+
38
+ .form-group {
39
+ position: relative;
40
+ margin-bottom: 1.5rem;
41
+ }
42
+
43
+ .form-label {
44
+ position: absolute;
45
+ left: 0.75rem;
46
+ top: 0.75rem;
47
+ color: var(--text-secondary);
48
+ transition: all 0.3s ease;
49
+ pointer-events: none;
50
+ font-size: 0.9rem;
51
+ }
52
+
53
+ .form-input {
54
+ width: 100%;
55
+ padding: 0.75rem;
56
+ background: var(--bg-secondary);
57
+ border: 1px solid var(--border-color);
58
+ border-radius: 0.5rem;
59
+ color: var(--text-primary);
60
+ font-size: 1rem;
61
+ transition: all 0.3s ease;
62
+ }
63
+
64
+ .form-input:focus {
65
+ outline: none;
66
+ border-color: var(--accent-blue);
67
+ box-shadow: 0 0 0 2px rgba(88, 166, 255, 0.2);
68
+ }
69
+
70
+ .form-input:focus + .form-label,
71
+ .form-input:not(:placeholder-shown) + .form-label {
72
+ transform: translateY(-1.5rem) scale(0.8);
73
+ background: var(--bg-primary);
74
+ padding: 0 0.5rem;
75
+ color: var(--accent-blue);
76
+ }
77
+
78
+ textarea.form-input {
79
+ min-height: 150px;
80
+ resize: vertical;
81
+ }
82
+
83
+ .submit-btn {
84
+ width: 100%;
85
+ padding: 0.75rem;
86
+ background: var(--accent-blue);
87
+ color: white;
88
+ border: none;
89
+ border-radius: 0.5rem;
90
+ font-size: 1rem;
91
+ font-weight: 500;
92
+ cursor: pointer;
93
+ transition: all 0.3s ease;
94
+ }
95
+
96
+ .submit-btn:hover {
97
+ background: #4a8fd6;
98
+ transform: translateY(-2px);
99
+ }
100
+
101
+ /* Direct Contact Section */
102
+ .direct-contact {
103
+ margin-top: 3rem;
104
+ text-align: center;
105
+ padding: 2rem;
106
+ background: var(--bg-card);
107
+ border-radius: 1rem;
108
+ border: 1px solid var(--border-color);
109
+ }
110
+
111
+ .contact-link {
112
+ display: inline-flex;
113
+ align-items: center;
114
+ gap: 0.5rem;
115
+ color: var(--accent-blue);
116
+ text-decoration: none;
117
+ margin: 0.5rem 0;
118
+ transition: all 0.3s ease;
119
+ }
120
+
121
+ .contact-link:hover {
122
+ color: var(--accent-green);
123
+ }
124
+
125
+ .resume-btn {
126
+ display: inline-block;
127
+ margin-top: 1.5rem;
128
+ padding: 0.75rem 2rem;
129
+ background: var(--accent-green);
130
+ color: white;
131
+ text-decoration: none;
132
+ border-radius: 0.5rem;
133
+ transition: all 0.3s ease;
134
+ }
135
+
136
+ .resume-btn:hover {
137
+ background: #0c8a6a;
138
+ transform: translateY(-2px);
139
+ }
140
+
141
+ /* Animation classes */
142
+ .fade-in {
143
+ opacity: 0;
144
+ transform: translateY(20px);
145
+ transition: all 0.6s ease;
146
+ }
147
+
148
+ .fade-in.visible {
149
+ opacity: 1;
150
+ transform: translateY(0);
151
+ }
152
+ header {
153
+ position: fixed;
154
+ top: 0;
155
+ width: 100%;
156
+ background: var(--header-bg);
157
+ backdrop-filter: blur(10px);
158
+ z-index: 1000;
159
+ border-bottom: 1px solid var(--border-color);
160
+ }
161
+
162
+ nav {
163
+ display: flex;
164
+ justify-content: space-between;
165
+ align-items: center;
166
+ padding: 1rem 2rem;
167
+ max-width: 1200px;
168
+ margin: 0 auto;
169
+ }
170
+
171
+ .logo {
172
+ font-family: 'Roboto Mono', monospace;
173
+ font-size: 1.5rem;
174
+ font-weight: 700;
175
+ color: var(--accent-blue);
176
+ }
177
+
178
+ .nav-links {
179
+ display: flex;
180
+ list-style: none;
181
+ gap: 2rem;
182
+ }
183
+
184
+ .nav-links a {
185
+ color: var(--text-primary);
186
+ text-decoration: none;
187
+ transition: color 0.3s ease;
188
+ }
189
+
190
+ .nav-links a:hover {
191
+ color: var(--accent-blue);
192
+ }
193
+ </style>
194
+ </head>
195
+ <body>
196
+ <!-- Header from existing pages -->
197
+ <header>
198
+ <nav>
199
+ <div class="logo">Pranit Chilbule</div>
200
+ <ul class="nav-links">
201
+ <li><a href="index.html">Home</a></li>
202
+ <li><a href="about.html">About</a></li>
203
+ <li><a href="projects.html">Projects</a></li>
204
+ <li><a href="achievements.html">Achievements</a></li>
205
+ <li><a href="contact.html">Contact</a></li>
206
+ </ul>
207
+ </nav>
208
+ </header>
209
+
210
+ <main>
211
+ <section class="contact-section">
212
+ <h2 class="fade-in">Get In Touch</h2>
213
+
214
+ <form id="contactForm" class="fade-in" onsubmit="handleSubmit(event)">
215
+ <div class="form-group">
216
+ <input type="text" id="name" class="form-input" placeholder=" " required>
217
+ <label for="name" class="form-label">Name</label>
218
+ </div>
219
+
220
+ <div class="form-group">
221
+ <input type="email" id="email" class="form-input" placeholder=" " required>
222
+ <label for="email" class="form-label">Email</label>
223
+ </div>
224
+
225
+ <div class="form-group">
226
+ <textarea id="message" class="form-input" placeholder=" " required></textarea>
227
+ <label for="message" class="form-label">Message</label>
228
+ </div>
229
+
230
+ <button type="submit" class="submit-btn">Send Message</button>
231
+ </form>
232
+
233
+ <div class="direct-contact fade-in">
234
+ <h3>Direct Contact</h3>
235
+ <a href="tel:+919763059811" class="contact-link">
236
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
237
+ <path d="M20.01 15.38c-1.23 0-2.42-.2-3.53-.56a.977.977 0 00-1.01.24l-1.57 1.97c-2.83-1.35-5.48-3.9-6.89-6.83l1.95-1.66c.27-.28.35-.67.24-1.02-.37-1.11-.56-2.3-.56-3.53 0-.54-.45-.99-.99-.99H4.19C3.65 3 3 3.24 3 3.99 3 13.28 10.73 21 20.01 21c.71 0 .99-.63.99-1.18v-3.45c0-.54-.45-.99-.99-.99z"/>
238
+ </svg>
239
+ +91-9763059811
240
+ </a>
241
+ <br>
242
+ <a href="mailto:[email protected]" class="contact-link">
243
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
244
+ <path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/>
245
+ </svg>
246
247
+ </a>
248
+ <br>
249
+ <a href="/assets/Pranit_Chilbule_Resume.pdf" class="resume-btn" download>
250
+ Download Résumé
251
+ </a>
252
+ </div>
253
+ </section>
254
+ </main>
255
+
256
+ <!-- Footer from existing pages -->
257
+ <footer>...</footer>
258
+
259
+ <script>
260
+ // Form submission handler
261
+ function handleSubmit(event) {
262
+ event.preventDefault();
263
+ const formData = {
264
+ name: document.getElementById('name').value,
265
+ email: document.getElementById('email').value,
266
+ message: document.getElementById('message').value
267
+ };
268
+ console.log('Form submitted:', formData);
269
+ // Add your form submission logic here
270
+ event.target.reset();
271
+ }
272
+
273
+ // Animation observer
274
+ const observer = new IntersectionObserver(
275
+ (entries) => {
276
+ entries.forEach(entry => {
277
+ if (entry.isIntersecting) {
278
+ entry.target.classList.add('visible');
279
+ }
280
+ });
281
+ },
282
+ { threshold: 0.1 }
283
+ );
284
+
285
+ document.querySelectorAll('.fade-in').forEach(el => observer.observe(el));
286
+ </script>
287
+ </body>
288
+ </html>
images/0_rOIc88HfNzBtAhru.gif ADDED

Git LFS Details

  • SHA256: 9a347cfeb7fb4e974589defa9c381c32922e30315e0b631c3ad80c832ed3ef2f
  • Pointer size: 132 Bytes
  • Size of remote file: 2.68 MB
images/1 (1).jpg ADDED

Git LFS Details

  • SHA256: 3609a3071d904da19f13ee38673a021d6a5582332e943637b95de7c32c912285
  • Pointer size: 131 Bytes
  • Size of remote file: 462 kB
images/1 (1).mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ee59fad349454d94db6c3d1b50870c6bfab3f63a8c7f24d8b4e75c4d93a06f7c
3
+ size 1155684
images/1 (10).jpg ADDED
images/1 (11).jpg ADDED

Git LFS Details

  • SHA256: 38417eea9a4a92c9ae66f537a9ce896167029fbb03a88d0051dbc2203f8cb191
  • Pointer size: 131 Bytes
  • Size of remote file: 221 kB
images/1 (12).jpg ADDED

Git LFS Details

  • SHA256: 184f14b2a9c4750d39d6f0b065ee146e9b1829f2219ac99bafc8db082ed02860
  • Pointer size: 131 Bytes
  • Size of remote file: 235 kB
images/1 (13).jpg ADDED

Git LFS Details

  • SHA256: f1144df4a2bf334021774b6758ce088dce7747efb4a366bdb6ba9c09c69ec652
  • Pointer size: 131 Bytes
  • Size of remote file: 257 kB
images/1 (14).jpg ADDED

Git LFS Details

  • SHA256: 82a280fdf4ce3bdc22a9ba51919bd43886a76dbb8fc49e74484e455450f66d32
  • Pointer size: 131 Bytes
  • Size of remote file: 387 kB
images/1 (15).jpg ADDED

Git LFS Details

  • SHA256: bc624e5511dcd2e8de17c77c7df2a37873d5d1880f439daaf2287e7530e81f70
  • Pointer size: 131 Bytes
  • Size of remote file: 191 kB
images/1 (16).jpg ADDED

Git LFS Details

  • SHA256: 23856add212a1582147e61d54cfa3120761e568050a41c7ad62b60ea9c9ef10a
  • Pointer size: 131 Bytes
  • Size of remote file: 150 kB
images/1 (17).jpg ADDED

Git LFS Details

  • SHA256: 0d501932a93a288e72d1ee85029b123239b440d65408bcd85d0c115a76384596
  • Pointer size: 131 Bytes
  • Size of remote file: 174 kB
images/1 (18).jpg ADDED
images/1 (19).jpg ADDED

Git LFS Details

  • SHA256: 5a790eaa29b7f6e6fa19b0fef9aff007ef13792561cc86bf560cb79c0a4d437e
  • Pointer size: 131 Bytes
  • Size of remote file: 229 kB
images/1 (2).jpg ADDED

Git LFS Details

  • SHA256: ad9d26c9055a9c0c87e8e174694f3b53ba24006b036473ab82c7cae070070dcb
  • Pointer size: 131 Bytes
  • Size of remote file: 547 kB
images/1 (20).jpg ADDED

Git LFS Details

  • SHA256: dd87abd40dd919c65e81ee38ba7ad4e370e6b1e5f8c9a01e8354d33218c4530e
  • Pointer size: 131 Bytes
  • Size of remote file: 220 kB
images/1 (21).jpg ADDED

Git LFS Details

  • SHA256: 78a4f23e3b493bb0ab78fcc15baa86f562cf577dfe10c83b894f4f9eff48efd6
  • Pointer size: 131 Bytes
  • Size of remote file: 678 kB
images/1 (22).jpg ADDED

Git LFS Details

  • SHA256: f1296c903fd02ca753f653df4f2d240c89a90935056a465441021964da63afd3
  • Pointer size: 131 Bytes
  • Size of remote file: 175 kB
images/1 (23).jpg ADDED

Git LFS Details

  • SHA256: 1f97171290c9ccbf1ebf6ed5ae4ce23714cf1337b1b7c7f69a1a71634d4789d2
  • Pointer size: 131 Bytes
  • Size of remote file: 620 kB
images/1 (24).jpg ADDED

Git LFS Details

  • SHA256: b5a853507afa00f8c4c4c9ddcedea065babcdf0346f0ce17945d87f70fd098d0
  • Pointer size: 131 Bytes
  • Size of remote file: 161 kB
images/1 (25).jpg ADDED

Git LFS Details

  • SHA256: 2833a94753333fc495ac62ad0b1ee36f25d1f25048b2a33e7e305b38f8af1e36
  • Pointer size: 131 Bytes
  • Size of remote file: 157 kB
images/1 (26).jpg ADDED

Git LFS Details

  • SHA256: 25e4a3bdd779fc12e37cbf8b010b84a74fd1b2cb5cc0c8ac9990e116b4de496f
  • Pointer size: 131 Bytes
  • Size of remote file: 188 kB
images/1 (27).jpg ADDED

Git LFS Details

  • SHA256: 1dca8493680ba6d001e9301f48738365db5dd16f1a40c8710eff3f47575cb45b
  • Pointer size: 131 Bytes
  • Size of remote file: 168 kB
images/1 (28).jpg ADDED
images/1 (29).jpg ADDED

Git LFS Details

  • SHA256: a03d2641d9f35133b357f640988d92804b42c24823709fd11b11af6a2d2166bd
  • Pointer size: 132 Bytes
  • Size of remote file: 1.04 MB
images/1 (3).jpg ADDED

Git LFS Details

  • SHA256: 0aefac963a1bf6fe7dbed861d3a856eaeb29239464676fb2c86014bf8fab56f1
  • Pointer size: 131 Bytes
  • Size of remote file: 477 kB
images/1 (30).jpg ADDED

Git LFS Details

  • SHA256: 654d0ab572808b9fd88cc1f16bc5ec0fcfe086b2744e71e0aa54c632da467524
  • Pointer size: 131 Bytes
  • Size of remote file: 874 kB
images/1 (31).jpg ADDED
images/1 (32).jpg ADDED

Git LFS Details

  • SHA256: 3589ae39c1a975122c4720f9ab095b9b88d445dd265ba9dbd1770a6505c34f83
  • Pointer size: 131 Bytes
  • Size of remote file: 185 kB
images/1 (33).jpg ADDED

Git LFS Details

  • SHA256: 1f9b7fdbfdea87a9e9b6b147a88d578acca720215cad9048017a297260f721ca
  • Pointer size: 132 Bytes
  • Size of remote file: 1.68 MB
images/1 (34).jpg ADDED

Git LFS Details

  • SHA256: c2d878e66418831693714b5b542594ba0fc3bec79b1eca63f682b30010f8206a
  • Pointer size: 131 Bytes
  • Size of remote file: 158 kB
images/1 (35).jpg ADDED
images/1 (36).jpg ADDED

Git LFS Details

  • SHA256: 55755bab7b2f2479bd967f56d2218c1e9117ce171d2a531f530bfb90396e1022
  • Pointer size: 131 Bytes
  • Size of remote file: 897 kB
images/1 (4).jpg ADDED
images/1 (5).jpg ADDED
images/1 (6).jpg ADDED

Git LFS Details

  • SHA256: dafff8c0864dd19f1e2933745d508ada60e11cd7237e9e4acf23ec88cb17fb72
  • Pointer size: 131 Bytes
  • Size of remote file: 169 kB
images/1 (7).jpg ADDED

Git LFS Details

  • SHA256: 65b46a5f2b37a1e38f38a6605c9b74e9b6f53c4c1b787e313568cfbe52aead0c
  • Pointer size: 131 Bytes
  • Size of remote file: 319 kB
images/1 (8).jpg ADDED

Git LFS Details

  • SHA256: 8d9dd958238b57a9de5e4598a5e0d14eb8a98d96dd9a75f93d9e2e7552e4d48f
  • Pointer size: 131 Bytes
  • Size of remote file: 743 kB
images/1 (9).jpg ADDED

Git LFS Details

  • SHA256: 35edd5fd4062e6fd387afd9108493cdde448be3bcf55a9c3b32f6745a1128c1a
  • Pointer size: 131 Bytes
  • Size of remote file: 105 kB
images/121415604.jpeg ADDED
index.html CHANGED
@@ -1,19 +1,1076 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Pranit Chilbule - AI/ML Engineer & MERN Developer</title>
7
+ <link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;700&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
8
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
9
+ <style>
10
+ * {
11
+ margin: 0;
12
+ padding: 0;
13
+ box-sizing: border-box;
14
+ }
15
+
16
+ :root {
17
+ --bg-primary: #0d1117;
18
+ --bg-secondary: #010409;
19
+ --text-primary: #c9d1d9;
20
+ --text-secondary: rgba(201, 209, 217, 0.8);
21
+ --accent-blue: #58a6ff;
22
+ --accent-green: #10a37f;
23
+ --header-bg: rgba(0, 0, 0, 0.6);
24
+ --border-color: rgba(201, 209, 217, 0.1);
25
+ }
26
+
27
+ body {
28
+ background-color: var(--bg-primary);
29
+ color: var(--text-primary);
30
+ font-family: 'Inter', sans-serif;
31
+ line-height: 1.6;
32
+ overflow-x: hidden;
33
+ }
34
+
35
+ /* Three.js Canvas */
36
+ #three-canvas {
37
+ position: fixed;
38
+ top: 0;
39
+ left: 0;
40
+ width: 100%;
41
+ height: 100%;
42
+ z-index: -1;
43
+ pointer-events: none;
44
+ }
45
+
46
+ /* Header */
47
+ header {
48
+ position: fixed;
49
+ top: 0;
50
+ left: 0;
51
+ width: 100%;
52
+ padding: 1rem 2rem;
53
+ background: var(--header-bg);
54
+ backdrop-filter: blur(10px);
55
+ z-index: 1000;
56
+ transition: all 0.3s ease;
57
+ }
58
+
59
+ nav {
60
+ display: flex;
61
+ justify-content: space-between;
62
+ align-items: center;
63
+ max-width: 1200px;
64
+ margin: 0 auto;
65
+ }
66
+
67
+ .logo {
68
+ font-family: 'Roboto Mono', monospace;
69
+ font-size: 1.5rem;
70
+ font-weight: 700;
71
+ color: var(--text-primary);
72
+ text-decoration: none;
73
+ transition: color 0.3s ease;
74
+ }
75
+
76
+ .logo:hover {
77
+ color: var(--accent-blue);
78
+ }
79
+
80
+ .nav-links {
81
+ display: flex;
82
+ list-style: none;
83
+ gap: 2rem;
84
+ }
85
+
86
+ .nav-links a {
87
+ color: var(--text-primary);
88
+ text-decoration: none;
89
+ font-weight: 500;
90
+ transition: color 0.3s ease;
91
+ position: relative;
92
+ }
93
+
94
+ .nav-links a:hover {
95
+ color: var(--accent-blue);
96
+ }
97
+
98
+ .nav-links a::after {
99
+ content: '';
100
+ position: absolute;
101
+ bottom: -5px;
102
+ left: 0;
103
+ width: 0;
104
+ height: 2px;
105
+ background: var(--accent-blue);
106
+ transition: width 0.3s ease;
107
+ }
108
+
109
+ .nav-links a:hover::after {
110
+ width: 100%;
111
+ }
112
+
113
+ /* Main Hero Section */
114
+ main {
115
+ min-height: 100vh;
116
+ display: flex;
117
+ align-items: center;
118
+ justify-content: center;
119
+ padding: 0 2rem;
120
+ position: relative;
121
+ }
122
+
123
+ .hero-content {
124
+ text-align: center;
125
+ max-width: 1200px;
126
+ width: 100%;
127
+ margin: 0 auto;
128
+ padding-top: 80px; /* Added to account for fixed header */
129
+ animation: fadeInUp 1s ease-out;
130
+ }
131
+
132
+ @keyframes fadeInUp {
133
+ from {
134
+ opacity: 0;
135
+ transform: translateY(30px);
136
+ }
137
+ to {
138
+ opacity: 1;
139
+ transform: translateY(0);
140
+ }
141
+ }
142
+
143
+ .hero-content h1 {
144
+ font-family: 'Roboto Mono', monospace;
145
+ font-size: 4rem;
146
+ font-weight: 700;
147
+ white-space: nowrap; /* Keeps name in one line */
148
+ margin-left: 0; /* Removed left margin */
149
+ background: linear-gradient(135deg, var(--accent-blue), var(--accent-green));
150
+ -webkit-background-clip: text;
151
+ -webkit-text-fill-color: transparent;
152
+ background-clip: text;
153
+ animation: glow 2s ease-in-out infinite alternate;
154
+ }
155
+
156
+ @keyframes glow {
157
+ from {
158
+ text-shadow: 0 0 20px rgba(88, 166, 255, 0.5);
159
+ }
160
+ to {
161
+ text-shadow: 0 0 30px rgba(88, 166, 255, 0.8);
162
+ }
163
+ }
164
+
165
+ .hero-content p {
166
+ font-size: 1.25rem;
167
+ letter-spacing: 1px;
168
+ opacity: 0.8;
169
+ margin-bottom: 2.5rem;
170
+ font-weight: 300;
171
+ }
172
+
173
+ .cta-buttons {
174
+ display: flex;
175
+ gap: 1rem;
176
+ justify-content: center;
177
+ flex-wrap: wrap;
178
+ }
179
+
180
+ .btn {
181
+ padding: 0.75rem 1.5rem;
182
+ border: none;
183
+ border-radius: 50px;
184
+ font-size: 1rem;
185
+ font-weight: 500;
186
+ text-decoration: none;
187
+ cursor: pointer;
188
+ transition: all 0.3s ease;
189
+ display: inline-block;
190
+ }
191
+
192
+ .btn-primary {
193
+ background: var(--accent-blue);
194
+ color: white;
195
+ }
196
+
197
+ .btn-primary:hover {
198
+ box-shadow: 0 0 20px rgba(88, 166, 255, 0.6);
199
+ transform: translateY(-2px);
200
+ }
201
+
202
+ .btn-secondary {
203
+ background: transparent;
204
+ color: var(--accent-green);
205
+ border: 2px solid var(--accent-green);
206
+ }
207
+
208
+ .btn-secondary:hover {
209
+ background: var(--accent-green);
210
+ color: white;
211
+ box-shadow: 0 0 20px rgba(16, 163, 127, 0.4);
212
+ transform: translateY(-2px);
213
+ }
214
+
215
+ /* About Section */
216
+ #about {
217
+ padding: 4rem 2rem;
218
+ background: rgba(13, 17, 23, 0.8);
219
+ backdrop-filter: blur(10px);
220
+ border-radius: 15px;
221
+ border: 1px solid var(--border-color);
222
+ margin: 2rem auto;
223
+ max-width: 1200px;
224
+ }
225
+
226
+ .about-grid {
227
+ display: grid;
228
+ grid-template-columns: 1fr 2fr;
229
+ gap: 4rem;
230
+ align-items: center;
231
+ }
232
+
233
+ .profile-image {
234
+ display: flex;
235
+ justify-content: center;
236
+ align-items: center;
237
+ }
238
+
239
+ .profile-image img {
240
+ width: 200px;
241
+ height: 200px;
242
+ border-radius: 50%;
243
+ border: 4px solid var(--accent-blue);
244
+ box-shadow: 0 10px 30px rgba(88, 166, 255, 0.3);
245
+ transition: transform 0.3s ease;
246
+ }
247
+
248
+ .profile-image img:hover {
249
+ transform: scale(1.05);
250
+ }
251
+
252
+ .about-content {
253
+ max-width: 600px;
254
+ }
255
+
256
+ .about-content h2 {
257
+ font-size: 2.5rem;
258
+ margin-bottom: 1rem;
259
+ position: relative;
260
+ display: inline-block;
261
+ }
262
+
263
+ .about-content h2::after {
264
+ content: '';
265
+ position: absolute;
266
+ width: 100%;
267
+ height: 2px;
268
+ bottom: -5px;
269
+ left: 0;
270
+ background: var(--accent-blue);
271
+ transform: scaleX(0);
272
+ transition: transform 0.3s ease;
273
+ }
274
+
275
+ .about-content h2:hover::after {
276
+ transform: scaleX(1);
277
+ }
278
+
279
+ .quick-info {
280
+ display: flex;
281
+ gap: 2rem;
282
+ margin: 2rem 0;
283
+ }
284
+
285
+ .info-item {
286
+ display: flex;
287
+ align-items: center;
288
+ gap: 0.5rem;
289
+ }
290
+
291
+ .info-icon {
292
+ font-size: 1.5rem;
293
+ }
294
+
295
+ /* Journey Sliders */
296
+ .journey-sliders {
297
+ padding: 4rem 2rem;
298
+ overflow: hidden;
299
+ background: rgba(13, 17, 23, 0.8);
300
+ backdrop-filter: blur(10px);
301
+ border-radius: 15px;
302
+ border: 1px solid var(--border-color);
303
+ margin: 2rem auto;
304
+ max-width: 1400px;
305
+ }
306
+
307
+ .section-title {
308
+ text-align: center;
309
+ font-size: 2.5rem;
310
+ margin-bottom: 2rem;
311
+ color: var(--text-primary);
312
+ background: linear-gradient(135deg, var(--accent-blue), var(--accent-green));
313
+ -webkit-background-clip: text;
314
+ -webkit-text-fill-color: transparent;
315
+ background-clip: text;
316
+ }
317
+
318
+ .slider-container {
319
+ position: relative;
320
+ padding: 2rem 0;
321
+ margin-bottom: 2rem;
322
+ }
323
+
324
+ .slider-track {
325
+ display: flex;
326
+ width: calc(250px * 18);
327
+ animation: scroll 40s linear infinite;
328
+ }
329
+
330
+ .slider-track.reverse {
331
+ animation-direction: reverse;
332
+ }
333
+
334
+ .slider-item {
335
+ width: 250px;
336
+ height: 180px;
337
+ padding: 0 15px;
338
+ flex-shrink: 0;
339
+ }
340
+
341
+ .slider-item img {
342
+ width: 100%;
343
+ height: 100%;
344
+ object-fit: cover;
345
+ border-radius: 10px;
346
+ border: 2px solid var(--accent-blue);
347
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
348
+ }
349
+
350
+ .slider-item img:hover {
351
+ transform: scale(1.05);
352
+ box-shadow: 0 0 20px rgba(88, 166, 255, 0.3);
353
+ }
354
+
355
+ @keyframes scroll {
356
+ 0% {
357
+ transform: translateX(0);
358
+ }
359
+ 100% {
360
+ transform: translateX(calc(-250px * 9));
361
+ }
362
+ }
363
+
364
+ .slider-container::before,
365
+ .slider-container::after {
366
+ content: '';
367
+ position: absolute;
368
+ top: 0;
369
+ width: 200px;
370
+ height: 100%;
371
+ z-index: 2;
372
+ }
373
+
374
+ .slider-container::before {
375
+ left: 0;
376
+ background: linear-gradient(to right, var(--bg-primary), transparent);
377
+ }
378
+
379
+ .slider-container::after {
380
+ right: 0;
381
+ background: linear-gradient(to left, var(--bg-primary), transparent);
382
+ }
383
+
384
+ /* Footer */
385
+ footer {
386
+ position: fixed;
387
+ bottom: 0;
388
+ left: 0;
389
+ width: 100%;
390
+ padding: 1rem 2rem;
391
+ background: var(--bg-secondary);
392
+ z-index: 100;
393
+ }
394
+
395
+ .footer-content {
396
+ display: flex;
397
+ justify-content: center;
398
+ align-items: center;
399
+ max-width: 1200px;
400
+ margin: 0 auto;
401
+ gap: 0.5rem;
402
+ }
403
+
404
+ .social-icon {
405
+ width: 24px;
406
+ height: 24px;
407
+ fill: var(--text-secondary);
408
+ transition: fill 0.3s ease;
409
+ cursor: pointer;
410
+ }
411
+
412
+ .social-icon:hover {
413
+ fill: var(--accent-green);
414
+ }
415
+
416
+ /* Mobile Menu Toggle */
417
+ .menu-toggle {
418
+ display: none;
419
+ flex-direction: column;
420
+ cursor: pointer;
421
+ gap: 4px;
422
+ }
423
+
424
+ .menu-toggle span {
425
+ width: 25px;
426
+ height: 3px;
427
+ background: var(--text-primary);
428
+ transition: all 0.3s ease;
429
+ }
430
+
431
+ /* Update the header styles */
432
+ .header-profile-img {
433
+ width: 50px;
434
+ height: 50px;
435
+ border-radius: 50%;
436
+ margin-left: 1rem;
437
+ border: 2px solid var(--accent-blue);
438
+ object-fit: cover;
439
+ }
440
+
441
+ .logo-container {
442
+ display: flex;
443
+ align-items: center;
444
+ gap: 1rem;
445
+ }
446
+
447
+ .header-profile-img {
448
+ width: 40px;
449
+ height: 40px;
450
+ border-radius: 50%;
451
+ border: 2px solid var(--accent-blue);
452
+ object-fit: cover;
453
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
454
+ }
455
+
456
+ .header-profile-img:hover {
457
+ transform: scale(1.1);
458
+ box-shadow: 0 0 15px rgba(88, 166, 255, 0.4);
459
+ }
460
+
461
+ /* Add to your existing styles */
462
+ .profile-container {
463
+ display: flex;
464
+ align-items: center;
465
+ justify-content: center; /* Changed to center */
466
+ margin-bottom: 2rem;
467
+ padding: 0 2rem;
468
+ gap: 6rem;
469
+ width: 100%; /* Added to ensure full width */
470
+ }
471
+
472
+ .profile-wrapper {
473
+ position: relative;
474
+ width: 300px; /* Increased width */
475
+ height: 300px; /* Increased height */
476
+ border-radius: 10px; /* Changed from 50% to 10px for slight rounding */
477
+ overflow: hidden;
478
+ border: 3px solid var(--accent-blue);
479
+ box-shadow: 0 0 20px rgba(88, 166, 255, 0.3);
480
+ animation: float 6s ease-in-out infinite;
481
+ background: var(--bg-primary);
482
+ }
483
+
484
+ .profile-img {
485
+ width: 450px; /* Increased size */
486
+ height: 450px; /* Increased size */
487
+ object-fit: contain;
488
+ transform: scale(1);
489
+ transition: all 0.3s ease;
490
+ border: 4px solid var(--accent-blue); /* Added bright border */
491
+ box-shadow: 0 0 30px rgba(88, 166, 255, 0.5); /* Added glow effect */
492
+ border-radius: 15px; /* Optional: slight rounded corners */
493
+ padding: 10px;
494
+ background: rgba(13, 17, 23, 0.8); /* Semi-transparent background */
495
+ }
496
+
497
+ .profile-img:hover {
498
+ transform: scale(1.02);
499
+ border-color: var(--accent-green); /* Color change on hover */
500
+ box-shadow: 0 0 40px rgba(16, 163, 127, 0.6); /* Enhanced glow on hover */
501
+ }
502
+
503
+ .ai-overlay {
504
+ position: absolute;
505
+ top: 0;
506
+ left: 0;
507
+ width: 100%;
508
+ height: 100%;
509
+ pointer-events: none;
510
+ }
511
+
512
+ .scanning-line {
513
+ position: absolute;
514
+ width: 100%;
515
+ height: 2px;
516
+ background: linear-gradient(90deg, transparent, var(--accent-blue), transparent);
517
+ animation: scan 2s linear infinite;
518
+ }
519
+
520
+ .ai-particles {
521
+ position: absolute;
522
+ width: 100%;
523
+ height: 100%;
524
+ background: radial-gradient(circle at center, transparent 30%, rgba(88, 166, 255, 0.1));
525
+ animation: pulse 2s ease-in-out infinite;
526
+ }
527
+
528
+ @keyframes scan {
529
+ 0% {
530
+ top: 0;
531
+ opacity: 0;
532
+ }
533
+ 50% {
534
+ opacity: 1;
535
+ }
536
+ 100% {
537
+ top: 100%;
538
+ opacity: 0;
539
+ }
540
+ }
541
+
542
+ @keyframes pulse {
543
+ 0%, 100% {
544
+ transform: scale(1);
545
+ opacity: 0.5;
546
+ }
547
+ 50% {
548
+ transform: scale(1.1);
549
+ opacity: 0.8;
550
+ }
551
+ }
552
+
553
+ @keyframes float {
554
+ 0%, 100% {
555
+ transform: translateY(0);
556
+ }
557
+ 50% {
558
+ transform: translateY(-10px);
559
+ }
560
+ }
561
+
562
+ /* Responsive Design */
563
+ @media (max-width: 1200px) {
564
+ .hero-content h1 {
565
+ font-size: 3.5rem;
566
+ }
567
+
568
+ .profile-container {
569
+ gap: 4rem;
570
+ }
571
+
572
+ .hero-content h1 {
573
+ margin-left: 1rem;
574
+ }
575
+ }
576
+
577
+ @media (max-width: 768px) {
578
+ header {
579
+ padding: 1rem;
580
+ }
581
+
582
+ .nav-links {
583
+ display: none;
584
+ position: absolute;
585
+ top: 100%;
586
+ left: 0;
587
+ width: 100%;
588
+ background: var(--header-bg);
589
+ backdrop-filter: blur(10px);
590
+ flex-direction: column;
591
+ padding: 1rem 0;
592
+ gap: 1rem;
593
+ }
594
+
595
+ .nav-links.active {
596
+ display: flex;
597
+ }
598
+
599
+ .menu-toggle {
600
+ display: flex;
601
+ }
602
+
603
+ .hero-content h1 {
604
+ font-size: 2.5rem;
605
+ }
606
+
607
+ .hero-content p {
608
+ font-size: 1.1rem;
609
+ }
610
+
611
+ .cta-buttons {
612
+ flex-direction: column;
613
+ align-items: center;
614
+ }
615
+
616
+ .btn {
617
+ width: 200px;
618
+ }
619
+
620
+ .about-grid {
621
+ grid-template-columns: 1fr;
622
+ }
623
+
624
+ .journey-sliders {
625
+ padding: 2rem 1rem;
626
+ }
627
+
628
+ .section-title {
629
+ font-size: 2rem;
630
+ }
631
+
632
+ .slider-item {
633
+ width: 200px;
634
+ height: 150px;
635
+ }
636
+
637
+ .logo-container {
638
+ gap: 0.5rem;
639
+ }
640
+
641
+ .header-profile-img {
642
+ width: 32px;
643
+ height: 32px;
644
+ }
645
+
646
+ .profile-container {
647
+ flex-direction: column;
648
+ text-align: center;
649
+ gap: 2rem;
650
+ }
651
+
652
+ .hero-content h1 {
653
+ margin-left: 0;
654
+ }
655
+ }
656
+
657
+ @media (max-width: 480px) {
658
+ main {
659
+ padding: 0 1rem;
660
+ }
661
+
662
+ .hero-content h1 {
663
+ font-size: 2rem;
664
+ }
665
+
666
+ .hero-content p {
667
+ font-size: 1rem;
668
+ letter-spacing: 0.5px;
669
+ }
670
+
671
+ header {
672
+ padding: 0.75rem 1rem;
673
+ }
674
+
675
+ footer {
676
+ padding: 0.75rem 1rem;
677
+ }
678
+ }
679
+
680
+ /* Smooth scroll behavior */
681
+ html {
682
+ scroll-behavior: smooth;
683
+ }
684
+
685
+ /* Loading animation */
686
+ .loading {
687
+ opacity: 0;
688
+ animation: fadeIn 0.5s ease-in forwards;
689
+ }
690
+
691
+ @keyframes fadeIn {
692
+ to {
693
+ opacity: 1;
694
+ }
695
+ }
696
+
697
+ /* AI Particles */
698
+ .ai-particles {
699
+ position: fixed;
700
+ top: 0;
701
+ left: 0;
702
+ width: 100%;
703
+ height: 100%;
704
+ pointer-events: none;
705
+ overflow: hidden;
706
+ z-index: 0;
707
+ }
708
+
709
+ .ai-particle {
710
+ position: absolute;
711
+ width: 4px;
712
+ height: 4px;
713
+ background: var(--accent-blue);
714
+ border-radius: 50%;
715
+ pointer-events: none;
716
+ }
717
+
718
+ @keyframes particleFloat {
719
+ 0% {
720
+ transform: translateY(0);
721
+ }
722
+ 50% {
723
+ transform: translateY(-10px);
724
+ }
725
+ 100% {
726
+ transform: translateY(0);
727
+ }
728
+ }
729
+ </style>
730
+ </head>
731
+ <body>
732
+ <!-- Three.js Canvas -->
733
+ <canvas id="three-canvas"></canvas>
734
+
735
+ <!-- Header -->
736
+ <header>
737
+ <nav>
738
+ <div class="logo-container">
739
+ <a href="index.html" class="logo">Pranit Chilbule</a>
740
+ <img src="images/0_rOIc88HfNzBtAhru.gif" alt="Profile" class="header-profile-img">
741
+ </div>
742
+ <div class="menu-toggle" onclick="toggleMenu()">
743
+ <span></span>
744
+ <span></span>
745
+ <span></span>
746
+ </div>
747
+ <ul class="nav-links" id="navLinks">
748
+ <li><a href="index.html" class="nav-home">Home</a></li>
749
+ <li><a href="about.html" class="nav-about">About</a></li>
750
+ <li><a href="projects.html" class="nav-projects">Projects</a></li>
751
+ <li><a href="achievements.html" class="nav-achievements">Achievements</a></li>
752
+ <li><a href="contact.html" class="nav-contact">Contact</a></li>
753
+
754
+ </ul>
755
+ </nav>
756
+ </header>
757
+
758
+ <!-- Main Hero Section -->
759
+ <main id="home">
760
+ <div class="hero-content loading">
761
+ <div class="profile-container">
762
+ <h1>Pranit Chilbule</h1>
763
+ <img src="images/0_rOIc88HfNzBtAhru.gif" alt="Profile" class="profile-img">
764
+ </div>
765
+ <p>AI/ML Engineer | MERN Developer | Tech Enthusiast</p>
766
+ <div class="cta-buttons">
767
+ <a href="#about" class="btn btn-primary">Learn More</a>
768
+ <a href="projects.html" class="btn btn-secondary">View Projects</a>
769
+ </div>
770
+ </div>
771
+ </main>
772
+
773
+
774
+ <!-- Journey Sliders Section -->
775
+ <section class="journey-sliders fade-in">
776
+ <h2 class="section-title">My Journey</h2>
777
+
778
+ <!-- First Slider - Moving Left -->
779
+ <div class="slider-container">
780
+ <div class="slider-track">
781
+ <!-- First set of images -->
782
+ <div class="slider-item"><img src="images/1 (1).jpg" alt="Journey moment"></div>
783
+ <div class="slider-item"><img src="images/1 (2).jpg" alt="Journey moment"></div>
784
+ <div class="slider-item"><img src="images/1 (3).jpg" alt="Journey moment"></div>
785
+ <div class="slider-item"><img src="images/1 (4).jpg" alt="Journey moment"></div>
786
+ <div class="slider-item"><img src="images/1 (5).jpg" alt="Journey moment"></div>
787
+ <div class="slider-item"><img src="images/1 (6).jpg" alt="Journey moment"></div>
788
+ <div class="slider-item"><img src="images/1 (7).jpg" alt="Journey moment"></div>
789
+ <div class="slider-item"><img src="images/1 (8).jpg" alt="Journey moment"></div>
790
+ <div class="slider-item"><img src="images/1 (9).jpg" alt="Journey moment"></div>
791
+ <!-- Duplicate for seamless loop -->
792
+ <div class="slider-item"><img src="images/1 (1).jpg" alt="Journey moment"></div>
793
+ <div class="slider-item"><img src="images/1 (2).jpg" alt="Journey moment"></div>
794
+ <div class="slider-item"><img src="images/1 (3).jpg" alt="Journey moment"></div>
795
+ <div class="slider-item"><img src="images/1 (4).jpg" alt="Journey moment"></div>
796
+ <div class="slider-item"><img src="images/1 (5).jpg" alt="Journey moment"></div>
797
+ <div class="slider-item"><img src="images/1 (6).jpg" alt="Journey moment"></div>
798
+ <div class="slider-item"><img src="images/1 (7).jpg" alt="Journey moment"></div>
799
+ <div class="slider-item"><img src="images/1 (8).jpg" alt="Journey moment"></div>
800
+ <div class="slider-item"><img src="images/1 (9).jpg" alt="Journey moment"></div>
801
+ </div>
802
+ </div>
803
+
804
+ <!-- Second Slider - Moving Right -->
805
+ <div class="slider-container">
806
+ <div class="slider-track reverse">
807
+ <!-- Second set of images -->
808
+ <div class="slider-item"><img src="images/1 (10).jpg" alt="Journey moment"></div>
809
+ <div class="slider-item"><img src="images/1 (11).jpg" alt="Journey moment"></div>
810
+ <div class="slider-item"><img src="images/1 (12).jpg" alt="Journey moment"></div>
811
+ <div class="slider-item"><img src="images/1 (13).jpg" alt="Journey moment"></div>
812
+ <div class="slider-item"><img src="images/1 (14).jpg" alt="Journey moment"></div>
813
+ <div class="slider-item"><img src="images/1 (15).jpg" alt="Journey moment"></div>
814
+ <div class="slider-item"><img src="images/1 (16).jpg" alt="Journey moment"></div>
815
+ <div class="slider-item"><img src="images/1 (17).jpg" alt="Journey moment"></div>
816
+ <div class="slider-item"><img src="images/1 (18).jpg" alt="Journey moment"></div>
817
+ <!-- Duplicate for seamless loop -->
818
+ <div class="slider-item"><img src="images/1 (10).jpg" alt="Journey moment"></div>
819
+ <div class="slider-item"><img src="images/1 (11).jpg" alt="Journey moment"></div>
820
+ <div class="slider-item"><img src="images/1 (12).jpg" alt="Journey moment"></div>
821
+ <div class="slider-item"><img src="images/1 (13).jpg" alt="Journey moment"></div>
822
+ <div class="slider-item"><img src="images/1 (14).jpg" alt="Journey moment"></div>
823
+ <div class="slider-item"><img src="images/1 (15).jpg" alt="Journey moment"></div>
824
+ <div class="slider-item"><img src="images/1 (16).jpg" alt="Journey moment"></div>
825
+ <div class="slider-item"><img src="images/1 (17).jpg" alt="Journey moment"></div>
826
+ <div class="slider-item"><img src="images/1 (18).jpg" alt="Journey moment"></div>
827
+ </div>
828
+ </div>
829
+
830
+ <!-- Third Slider - Moving Left -->
831
+ <div class="slider-container">
832
+ <div class="slider-track">
833
+ <!-- Third set of images -->
834
+ <div class="slider-item"><img src="images/1 (19).jpg" alt="Journey moment"></div>
835
+ <div class="slider-item"><img src="images/1 (20).jpg" alt="Journey moment"></div>
836
+ <div class="slider-item"><img src="images/1 (21).jpg" alt="Journey moment"></div>
837
+ <div class="slider-item"><img src="images/1 (22).jpg" alt="Journey moment"></div>
838
+ <div class="slider-item"><img src="images/1 (23).jpg" alt="Journey moment"></div>
839
+ <div class="slider-item"><img src="images/1 (24).jpg" alt="Journey moment"></div>
840
+ <div class="slider-item"><img src="images/1 (25).jpg" alt="Journey moment"></div>
841
+ <div class="slider-item"><img src="images/1 (26).jpg" alt="Journey moment"></div>
842
+ <div class="slider-item"><img src="images/1 (27).jpg" alt="Journey moment"></div>
843
+ <!-- Duplicate for seamless loop -->
844
+ <div class="slider-item"><img src="images/1 (19).jpg" alt="Journey moment"></div>
845
+ <div class="slider-item"><img src="images/1 (20).jpg" alt="Journey moment"></div>
846
+ <div class="slider-item"><img src="images/1 (21).jpg" alt="Journey moment"></div>
847
+ <div class="slider-item"><img src="images/1 (22).jpg" alt="Journey moment"></div>
848
+ <div class="slider-item"><img src="images/1 (23).jpg" alt="Journey moment"></div>
849
+ <div class="slider-item"><img src="images/1 (24).jpg" alt="Journey moment"></div>
850
+ <div class="slider-item"><img src="images/1 (25).jpg" alt="Journey moment"></div>
851
+ <div class="slider-item"><img src="images/1 (26).jpg" alt="Journey moment"></div>
852
+ <div class="slider-item"><img src="images/1 (27).jpg" alt="Journey moment"></div>
853
+ </div>
854
+ </div>
855
+
856
+ <!-- Fourth Slider - Moving Right -->
857
+ <div class="slider-container">
858
+ <div class="slider-track reverse">
859
+ <!-- Fourth set of images -->
860
+ <div class="slider-item"><img src="images/1 (28).jpg" alt="Journey moment"></div>
861
+ <div class="slider-item"><img src="images/1 (29).jpg" alt="Journey moment"></div>
862
+ <div class="slider-item"><img src="images/1 (30).jpg" alt="Journey moment"></div>
863
+ <div class="slider-item"><img src="images/1 (31).jpg" alt="Journey moment"></div>
864
+ <div class="slider-item"><img src="images/1 (32).jpg" alt="Journey moment"></div>
865
+ <div class="slider-item"><img src="images/1 (33).jpg" alt="Journey moment"></div>
866
+ <div class="slider-item"><img src="images/1 (34).jpg" alt="Journey moment"></div>
867
+ <div class="slider-item"><img src="images/1 (35).jpg" alt="Journey moment"></div>
868
+ <div class="slider-item"><img src="images/1 (36).jpg" alt="Journey moment"></div>
869
+ <!-- Duplicate for seamless loop -->
870
+ <div class="slider-item"><img src="images/1 (28).jpg" alt="Journey moment"></div>
871
+ <div class="slider-item"><img src="images/1 (29).jpg" alt="Journey moment"></div>
872
+ <div class="slider-item"><img src="images/1 (30).jpg" alt="Journey moment"></div>
873
+ <div class="slider-item"><img src="images/1 (31).jpg" alt="Journey moment"></div>
874
+ <div class="slider-item"><img src="images/1 (32).jpg" alt="Journey moment"></div>
875
+ <div class="slider-item"><img src="images/1 (33).jpg" alt="Journey moment"></div>
876
+ <div class="slider-item"><img src="images/1 (34).jpg" alt="Journey moment"></div>
877
+ <div class="slider-item"><img src="images/1 (35).jpg" alt="Journey moment"></div>
878
+ <div class="slider-item"><img src="images/1 (36).jpg" alt="Journey moment"></div>
879
+ </div>
880
+ </div>
881
+ </section>
882
+ <!-- About Section -->
883
+ <section id="about" class="fade-in">
884
+ <div class="about-grid">
885
+ <div class="profile-image">
886
+ <img src="images/121415604.jpeg" alt="Pranit Chilbule Profile Picture">
887
+ </div>
888
+
889
+ <div class="about-content">
890
+ <h2>About Me</h2>
891
+ <p>
892
+ I'm a 3rd-year AI/ML engineering student at VIT Pune, passionate about building intelligent systems that solve real-world problems. My journey in technology spans from developing cutting-edge machine learning models to creating robust web applications using the MERN stack.
893
+ </p>
894
+ <div class="quick-info">
895
+ <div class="info-item">
896
+ <span class="info-icon">🎓</span>
897
+ <span>AI/ML Engineer</span>
898
+ </div>
899
+ <div class="info-item">
900
+ <span class="info-icon">💻</span>
901
+ <span>MERN Developer</span>
902
+ </div>
903
+ <div class="info-item">
904
+ <span class="info-icon">🚀</span>
905
+ <span>Tech Enthusiast</span>
906
+ </div>
907
+ </div>
908
+ <div class="cta-buttons">
909
+ <a href="about.html" class="btn btn-primary">Full Bio</a>
910
+ <a href="#contact" class="btn btn-secondary">Get in Touch</a>
911
+ </div>
912
+ </div>
913
+ </div>
914
+ </section>
915
+
916
+ <!-- Footer -->
917
+ <footer>
918
+ <div class="footer-content">
919
+ <a href="www.linkedin.com/in/pranit-chilbule-03ba7b1b5" target="_blank">
920
+ <svg class="social-icon" viewBox="0 0 24 24">
921
+ <path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>
922
+ </svg>
923
+ </a>
924
+ <a href="https://github.com/pranit144" target="_blank">
925
+ <svg class="social-icon" viewBox="0 0 24 24">
926
+ <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
927
+ </svg>
928
+ </a>
929
+ <a href="/blog.html" target="_blank">
930
+ <svg class="social-icon" viewBox="0 0 24 24">
931
+ <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/>
932
+ </svg>
933
+ </a>
934
+ </div>
935
+ </footer>
936
+
937
+ <script>
938
+ // Three.js Particle Network Background
939
+ let scene, camera, renderer, particles, lines;
940
+ let particleCount = 100;
941
+ let mouseX = 0, mouseY = 0;
942
+ let windowHalfX = window.innerWidth / 2;
943
+ let windowHalfY = window.innerHeight / 2;
944
+
945
+ function initThreeJS() {
946
+ const canvas = document.getElementById('three-canvas');
947
+
948
+ // Scene setup
949
+ scene = new THREE.Scene();
950
+ camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
951
+ renderer = new THREE.WebGLRenderer({ canvas: canvas, alpha: true });
952
+ renderer.setSize(window.innerWidth, window.innerHeight);
953
+ renderer.setClearColor(0x000000, 0);
954
+
955
+ // Create particles
956
+ const geometry = new THREE.BufferGeometry();
957
+ const positions = new Float32Array(particleCount * 3);
958
+ const velocities = [];
959
+
960
+ for (let i = 0; i < particleCount; i++) {
961
+ positions[i * 3] = (Math.random() - 0.5) * 2000;
962
+ positions[i * 3 + 1] = (Math.random() - 0.5) * 2000;
963
+ positions[i * 3 + 2] = (Math.random() - 0.5) * 2000;
964
+
965
+ velocities.push({
966
+ x: (Math.random() - 0.5) * 2,
967
+ y: (Math.random() - 0.5) * 2,
968
+ z: (Math.random() - 0.5) * 2
969
+ });
970
+ }
971
+
972
+ geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
973
+
974
+ const material = new THREE.PointsMaterial({
975
+ color: 0x58a6ff,
976
+ size: 2,
977
+ transparent: true,
978
+ opacity: 0.8
979
+ });
980
+
981
+ particles = new THREE.Points(geometry, material);
982
+ particles.userData = { velocities: velocities };
983
+ scene.add(particles);
984
+
985
+ // Create lines
986
+ const lineGeometry = new THREE.BufferGeometry();
987
+ const lineMaterial = new THREE.LineBasicMaterial({
988
+ color: 0x58a6ff,
989
+ transparent: true,
990
+ opacity: 0.3
991
+ });
992
+
993
+ lines = new THREE.LineSegments(lineGeometry, lineMaterial);
994
+ scene.add(lines);
995
+
996
+ camera.position.z = 1000;
997
+
998
+ // Start animation
999
+ animate();
1000
+ }
1001
+
1002
+ function animate() {
1003
+ requestAnimationFrame(animate);
1004
+
1005
+ // Update particles positions
1006
+ const positions = particles.geometry.attributes.position.array;
1007
+ const velocities = particles.userData.velocities;
1008
+
1009
+ for (let i = 0; i < particleCount; i++) {
1010
+ positions[i * 3] += velocities[i].x;
1011
+ positions[i * 3 + 1] += velocities[i].y;
1012
+ positions[i * 3 + 2] += velocities[i].z;
1013
+
1014
+ // Boundary check
1015
+ if (positions[i * 3] > 1000 || positions[i * 3] < -1000) velocities[i].x *= -1;
1016
+ if (positions[i * 3 + 1] > 1000 || positions[i * 3 + 1] < -1000) velocities[i].y *= -1;
1017
+ if (positions[i * 3 + 2] > 1000 || positions[i * 3 + 2] < -1000) velocities[i].z *= -1;
1018
+ }
1019
+
1020
+ particles.geometry.attributes.position.needsUpdate = true;
1021
+
1022
+ // Update lines between close particles
1023
+ updateLines();
1024
+
1025
+ // Camera movement based on mouse
1026
+ camera.position.x += (mouseX - camera.position.x) * 0.05;
1027
+ camera.position.y += (-mouseY - camera.position.y) * 0.05;
1028
+ camera.lookAt(scene.position);
1029
+
1030
+ renderer.render(scene, camera);
1031
+ }
1032
+
1033
+ function updateLines() {
1034
+ const positions = particles.geometry.attributes.position.array;
1035
+ const linePositions = [];
1036
+
1037
+ for (let i = 0; i < particleCount; i++) {
1038
+ for (let j = i + 1; j < particleCount; j++) {
1039
+ const dx = positions[i * 3] - positions[j * 3];
1040
+ const dy = positions[i * 3 + 1] - positions[j * 3 + 1];
1041
+ const dz = positions[i * 3 + 2] - positions[j * 3 + 2];
1042
+ const distance = Math.sqrt(dx * dx + dy * dy + dz * dz);
1043
+
1044
+ if (distance < 120) {.style.display = 'block';
1045
+ linePositions.push(positions[i * 3], positions[i * 3 + 1], positions[i * 3 + 2]);
1046
+ linePositions.push(positions[j * 3], positions[j * 3 + 1], positions[j * 3 + 2]);
1047
+ }
1048
+ }
1049
+ }
1050
+ nks = document.getElementById('navLinks');
1051
+ lines.geometry.setAttribute('position', new THREE.Float32BufferAttribute(linePositions, 3));nks.classList.toggle('active');
1052
+ }
1053
+
1054
+ // Mouse movement tracking // Smooth scroll for internal links
1055
+ document.addEventListener('mousemove', (event) => {]').forEach(anchor => {
1056
+ mouseX = event.clientX - windowHalfX;nction (e) {
1057
+ mouseY = event.clientY - windowHalfY;efault();
1058
+ }); const target = document.querySelector(this.getAttribute('href'));
1059
+
1060
+ // Window resize handlerollIntoView({
1061
+ window.addEventListener('resize', () => {
1062
+ windowHalfX = window.innerWidth / 2; block: 'start'
1063
+ windowHalfY = window.innerHeight / 2; });
1064
+ }
1065
+ camera.aspect = window.innerWidth / window.innerHeight;
1066
+ camera.updateProjectionMatrix();
1067
+ renderer.setSize(window.innerWidth, window.innerHeight);
1068
+ ge loads
1069
+ // Pause animation on mobile
1070
+ if (window.innerWidth < 600) {eJS();
1071
+ renderer.domElement.style.display = 'none';
1072
+ anchor.addEventListener('click', function (e) {/ Show content with animation
1073
+ e.preventDefault(); setTimeout(() => {
1074
+ const target = document.querySelector(this.getAttribute('href')); document.querySelector('.hero-content').classList.remove('loading');
1075
+ if (target) { }, 100);
1076
+ target.scrollIntoView({ });
projects.html ADDED
@@ -0,0 +1,1558 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Projects & Experience - Pranit Chilbule</title>
7
+ <link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;700&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
8
+ <style>
9
+ * {
10
+ margin: 0;
11
+ padding: 0;
12
+ box-sizing: border-box;
13
+ }
14
+
15
+ :root {
16
+ --bg-primary: #0d1117;
17
+ --bg-secondary: #010409;
18
+ --bg-card: #21262d;
19
+ --text-primary: #c9d1d9;
20
+ --text-secondary: rgba(201, 209, 217, 0.8);
21
+ --accent-blue: #58a6ff;
22
+ --accent-green: #10a37f;
23
+ --accent-purple: #a5b4fc;
24
+ --accent-orange: #fbbf24;
25
+ --header-bg: rgba(0, 0, 0, 0.8);
26
+ --border-color: #30363d;
27
+ --gradient-1: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
28
+ --gradient-2: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
29
+ --gradient-3: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
30
+ }
31
+
32
+ body {
33
+ background-color: var(--bg-primary);
34
+ color: var(--text-primary);
35
+ font-family: 'Inter', sans-serif;
36
+ line-height: 1.6;
37
+ overflow-x: hidden;
38
+ }
39
+
40
+ /* Animated Background */
41
+ .animated-bg {
42
+ position: fixed;
43
+ top: 0;
44
+ left: 0;
45
+ width: 100%;
46
+ height: 100%;
47
+ z-index: -1;
48
+ opacity: 0.1;
49
+ }
50
+
51
+ .floating-shape {
52
+ position: absolute;
53
+ border-radius: 50%;
54
+ animation: float 20s infinite ease-in-out;
55
+ }
56
+
57
+ .shape-1 {
58
+ width: 300px;
59
+ height: 300px;
60
+ background: var(--gradient-1);
61
+ top: 10%;
62
+ left: 10%;
63
+ animation-delay: 0s;
64
+ }
65
+
66
+ .shape-2 {
67
+ width: 200px;
68
+ height: 200px;
69
+ background: var(--gradient-2);
70
+ top: 60%;
71
+ right: 10%;
72
+ animation-delay: 7s;
73
+ }
74
+
75
+ .shape-3 {
76
+ width: 150px;
77
+ height: 150px;
78
+ background: var(--gradient-3);
79
+ bottom: 20%;
80
+ left: 20%;
81
+ animation-delay: 14s;
82
+ }
83
+
84
+ @keyframes float {
85
+ 0%, 100% { transform: translate(0, 0) rotate(0deg); }
86
+ 33% { transform: translate(50px, -50px) rotate(120deg); }
87
+ 66% { transform: translate(-30px, 30px) rotate(240deg); }
88
+ }
89
+
90
+ /* Header Styles */
91
+ header {
92
+ position: fixed;
93
+ top: 0;
94
+ left: 0;
95
+ width: 100%;
96
+ padding: 1rem 2rem;
97
+ background: var(--header-bg);
98
+ backdrop-filter: blur(20px);
99
+ z-index: 1000;
100
+ transition: all 0.3s ease;
101
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
102
+ }
103
+
104
+ header.scrolled {
105
+ background: rgba(0, 0, 0, 0.9);
106
+ }
107
+
108
+ nav {
109
+ display: flex;
110
+ justify-content: space-between;
111
+ align-items: center;
112
+ max-width: 1200px;
113
+ margin: 0 auto;
114
+ }
115
+
116
+ .logo {
117
+ font-family: 'Roboto Mono', monospace;
118
+ font-size: 1.5rem;
119
+ color: var(--text-primary);
120
+ text-decoration: none;
121
+ font-weight: 700;
122
+ transition: color 0.3s ease;
123
+ }
124
+
125
+ .logo:hover {
126
+ color: var(--accent-blue);
127
+ }
128
+
129
+ .nav-links {
130
+ display: flex;
131
+ gap: 2rem;
132
+ list-style: none;
133
+ }
134
+
135
+ .nav-links a {
136
+ color: var(--text-primary);
137
+ text-decoration: none;
138
+ font-weight: 500;
139
+ position: relative;
140
+ transition: color 0.3s ease;
141
+ padding: 0.5rem 0;
142
+ }
143
+
144
+ .nav-links a::after {
145
+ content: '';
146
+ position: absolute;
147
+ bottom: 0;
148
+ left: 0;
149
+ width: 0;
150
+ height: 2px;
151
+ background: var(--accent-blue);
152
+ transition: width 0.3s ease;
153
+ }
154
+
155
+ .nav-links a:hover::after,
156
+ .nav-links a.active::after {
157
+ width: 100%;
158
+ }
159
+
160
+ .nav-links a:hover,
161
+ .nav-links a.active {
162
+ color: var(--accent-blue);
163
+ }
164
+
165
+ /* Mobile Menu */
166
+ .menu-toggle {
167
+ display: none;
168
+ flex-direction: column;
169
+ cursor: pointer;
170
+ padding: 0.5rem;
171
+ }
172
+
173
+ .menu-toggle span {
174
+ height: 3px;
175
+ width: 25px;
176
+ background: var(--text-primary);
177
+ margin-bottom: 4px;
178
+ transition: all 0.3s ease;
179
+ }
180
+
181
+ .menu-toggle.active span:nth-child(1) {
182
+ transform: rotate(45deg) translate(5px, 5px);
183
+ }
184
+
185
+ .menu-toggle.active span:nth-child(2) {
186
+ opacity: 0;
187
+ }
188
+
189
+ .menu-toggle.active span:nth-child(3) {
190
+ transform: rotate(-45deg) translate(7px, -6px);
191
+ }
192
+
193
+ /* Main Content Styles */
194
+ main {
195
+ padding: 2rem;
196
+ max-width: 1200px;
197
+ margin: 80px auto 0;
198
+ }
199
+
200
+ section {
201
+ margin-bottom: 6rem;
202
+ }
203
+
204
+ h2 {
205
+ font-size: 3rem;
206
+ margin-bottom: 3rem;
207
+ color: var(--accent-blue);
208
+ text-align: center;
209
+ font-weight: 700;
210
+ position: relative;
211
+ }
212
+
213
+ h2::after {
214
+ content: '';
215
+ position: absolute;
216
+ bottom: -10px;
217
+ left: 50%;
218
+ transform: translateX(-50%);
219
+ width: 100px;
220
+ height: 4px;
221
+ background: var(--gradient-1);
222
+ border-radius: 2px;
223
+ }
224
+
225
+ /* Project Categories */
226
+ .project-categories {
227
+ display: flex;
228
+ justify-content: center;
229
+ gap: 1rem;
230
+ margin-bottom: 3rem;
231
+ flex-wrap: wrap;
232
+ }
233
+
234
+ .category-btn {
235
+ background: var(--bg-card);
236
+ border: 2px solid var(--border-color);
237
+ color: var(--text-primary);
238
+ padding: 0.75rem 1.5rem;
239
+ border-radius: 25px;
240
+ cursor: pointer;
241
+ transition: all 0.3s ease;
242
+ font-weight: 500;
243
+ }
244
+
245
+ .category-btn:hover,
246
+ .category-btn.active {
247
+ background: var(--accent-blue);
248
+ border-color: var(--accent-blue);
249
+ transform: translateY(-2px);
250
+ box-shadow: 0 5px 15px rgba(88, 166, 255, 0.4);
251
+ }
252
+
253
+ /* Project Cards */
254
+ .projects-grid {
255
+ display: grid;
256
+ grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
257
+ gap: 2.5rem;
258
+ padding: 2rem 0;
259
+ }
260
+
261
+ .project-card {
262
+ background: var(--bg-card);
263
+ border-radius: 16px;
264
+ overflow: hidden;
265
+ box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
266
+ transition: all 0.4s ease;
267
+ border: 1px solid var(--border-color);
268
+ position: relative;
269
+ }
270
+
271
+ .project-card::before {
272
+ content: '';
273
+ position: absolute;
274
+ top: 0;
275
+ left: 0;
276
+ right: 0;
277
+ height: 4px;
278
+ background: var(--gradient-1);
279
+ opacity: 0;
280
+ transition: opacity 0.3s ease;
281
+ }
282
+
283
+ .project-card:hover::before {
284
+ opacity: 1;
285
+ }
286
+
287
+ .project-card:hover {
288
+ transform: translateY(-10px);
289
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
290
+ border-color: var(--accent-blue);
291
+ }
292
+
293
+ .project-thumbnail {
294
+ position: relative;
295
+ padding-top: 56.25%;
296
+ background: var(--bg-secondary);
297
+ overflow: hidden;
298
+ }
299
+
300
+ .project-thumbnail img {
301
+ position: absolute;
302
+ top: 0;
303
+ left: 0;
304
+ width: 100%;
305
+ height: 100%;
306
+ object-fit: cover;
307
+ transition: transform 0.4s ease;
308
+ }
309
+
310
+ .project-card:hover .project-thumbnail img {
311
+ transform: scale(1.1);
312
+ }
313
+
314
+ .project-overlay {
315
+ position: absolute;
316
+ top: 0;
317
+ left: 0;
318
+ right: 0;
319
+ bottom: 0;
320
+ background: rgba(0, 0, 0, 0.7);
321
+ display: flex;
322
+ align-items: center;
323
+ justify-content: center;
324
+ opacity: 0;
325
+ transition: opacity 0.3s ease;
326
+ }
327
+
328
+ .project-card:hover .project-overlay {
329
+ opacity: 1;
330
+ }
331
+
332
+ .project-status {
333
+ position: absolute;
334
+ top: 1rem;
335
+ right: 1rem;
336
+ background: var(--accent-green);
337
+ color: white;
338
+ padding: 0.5rem 1rem;
339
+ border-radius: 15px;
340
+ font-size: 0.8rem;
341
+ font-weight: 600;
342
+ }
343
+
344
+ .project-status.in-progress {
345
+ background: var(--accent-orange);
346
+ }
347
+
348
+ .project-content {
349
+ padding: 2rem;
350
+ }
351
+
352
+ .project-title {
353
+ font-size: 1.4rem;
354
+ color: var(--accent-blue);
355
+ margin-bottom: 1rem;
356
+ font-weight: 600;
357
+ }
358
+
359
+ .project-description {
360
+ color: var(--text-secondary);
361
+ margin-bottom: 1.5rem;
362
+ line-height: 1.7;
363
+ }
364
+
365
+ .tech-stack {
366
+ display: flex;
367
+ flex-wrap: wrap;
368
+ gap: 0.75rem;
369
+ margin-bottom: 1.5rem;
370
+ }
371
+
372
+ .tech-tag {
373
+ background: var(--bg-secondary);
374
+ color: var(--accent-green);
375
+ padding: 0.4rem 1rem;
376
+ border-radius: 20px;
377
+ font-size: 0.85rem;
378
+ font-weight: 500;
379
+ border: 1px solid rgba(16, 163, 127, 0.3);
380
+ transition: all 0.3s ease;
381
+ }
382
+
383
+ .tech-tag:hover {
384
+ background: var(--accent-green);
385
+ color: white;
386
+ transform: translateY(-2px);
387
+ }
388
+
389
+ .project-links {
390
+ display: flex;
391
+ gap: 1rem;
392
+ }
393
+
394
+ .project-links a {
395
+ color: var(--accent-blue);
396
+ text-decoration: none;
397
+ display: flex;
398
+ align-items: center;
399
+ gap: 0.5rem;
400
+ padding: 0.75rem 1.5rem;
401
+ border: 2px solid var(--accent-blue);
402
+ border-radius: 8px;
403
+ transition: all 0.3s ease;
404
+ font-weight: 500;
405
+ }
406
+
407
+ .project-links a:hover {
408
+ background: var(--accent-blue);
409
+ color: white;
410
+ transform: translateY(-2px);
411
+ }
412
+
413
+ /* Experience Timeline */
414
+ .timeline {
415
+ position: relative;
416
+ max-width: 100%;
417
+ margin: 4rem auto;
418
+ padding: 3rem 0;
419
+ }
420
+
421
+ .timeline::before {
422
+ content: '';
423
+ position: absolute;
424
+ left: 0;
425
+ right: 0;
426
+ top: 50%;
427
+ height: 3px;
428
+ background: var(--gradient-1);
429
+ box-shadow: 0 0 20px var(--accent-blue);
430
+ border-radius: 2px;
431
+ }
432
+
433
+ .timeline-container {
434
+ display: flex;
435
+ justify-content: space-between;
436
+ align-items: center;
437
+ gap: 2rem;
438
+ overflow-x: auto;
439
+ padding: 3rem 1rem;
440
+ scroll-snap-type: x mandatory;
441
+ -ms-overflow-style: none;
442
+ scrollbar-width: none;
443
+ }
444
+
445
+ .timeline-container::-webkit-scrollbar {
446
+ display: none;
447
+ }
448
+
449
+ .timeline-item {
450
+ min-width: 380px;
451
+ max-width: 380px;
452
+ scroll-snap-align: center;
453
+ position: relative;
454
+ }
455
+
456
+ .timeline-item:nth-child(odd) {
457
+ transform: translateY(-40px);
458
+ }
459
+
460
+ .timeline-item:nth-child(even) {
461
+ transform: translateY(40px);
462
+ }
463
+
464
+ .timeline-content {
465
+ background: var(--bg-card);
466
+ padding: 2rem;
467
+ border-radius: 16px;
468
+ border: 1px solid var(--border-color);
469
+ backdrop-filter: blur(10px);
470
+ box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
471
+ transition: all 0.4s ease;
472
+ position: relative;
473
+ }
474
+
475
+ .timeline-content::before {
476
+ content: '';
477
+ position: absolute;
478
+ width: 24px;
479
+ height: 24px;
480
+ background: var(--accent-blue);
481
+ border-radius: 50%;
482
+ left: 50%;
483
+ transform: translateX(-50%);
484
+ border: 4px solid var(--bg-primary);
485
+ box-shadow: 0 0 20px var(--accent-blue);
486
+ }
487
+
488
+ .timeline-item:nth-child(odd) .timeline-content::before {
489
+ bottom: -52px;
490
+ }
491
+
492
+ .timeline-item:nth-child(even) .timeline-content::before {
493
+ top: -52px;
494
+ }
495
+
496
+ .timeline-content:hover {
497
+ transform: translateY(-10px);
498
+ box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
499
+ border-color: var(--accent-blue);
500
+ }
501
+
502
+ .timeline-date {
503
+ display: inline-block;
504
+ padding: 0.75rem 1.5rem;
505
+ background: var(--gradient-1);
506
+ border-radius: 25px;
507
+ color: white;
508
+ font-weight: 700;
509
+ margin-bottom: 1rem;
510
+ font-size: 0.9rem;
511
+ }
512
+
513
+ .timeline-location {
514
+ color: var(--text-secondary);
515
+ font-size: 0.95rem;
516
+ margin-bottom: 0.5rem;
517
+ display: flex;
518
+ align-items: center;
519
+ gap: 0.5rem;
520
+ }
521
+
522
+ .timeline-location::before {
523
+ content: '📍';
524
+ font-size: 1.1rem;
525
+ }
526
+
527
+ .timeline-role {
528
+ color: var(--accent-blue);
529
+ font-size: 1.2rem;
530
+ margin-bottom: 1rem;
531
+ font-weight: 600;
532
+ }
533
+
534
+ .timeline-content ul {
535
+ list-style: none;
536
+ margin-top: 1rem;
537
+ }
538
+
539
+ .timeline-content li {
540
+ position: relative;
541
+ padding-left: 2rem;
542
+ margin-bottom: 1rem;
543
+ color: var(--text-secondary);
544
+ line-height: 1.6;
545
+ }
546
+
547
+ .timeline-content li::before {
548
+ content: '→';
549
+ position: absolute;
550
+ left: 0;
551
+ color: var(--accent-green);
552
+ font-weight: bold;
553
+ font-size: 1.2rem;
554
+ }
555
+
556
+ /* Timeline Navigation */
557
+ .timeline-nav {
558
+ display: flex;
559
+ justify-content: center;
560
+ gap: 1rem;
561
+ margin-top: 3rem;
562
+ }
563
+
564
+ .timeline-nav button {
565
+ background: var(--bg-card);
566
+ border: 2px solid var(--border-color);
567
+ color: var(--text-primary);
568
+ padding: 0.75rem 1.5rem;
569
+ border-radius: 12px;
570
+ cursor: pointer;
571
+ transition: all 0.3s ease;
572
+ font-size: 1.1rem;
573
+ font-weight: 600;
574
+ }
575
+
576
+ .timeline-nav button:hover {
577
+ background: var(--accent-blue);
578
+ border-color: var(--accent-blue);
579
+ transform: translateY(-2px);
580
+ box-shadow: 0 5px 15px rgba(88, 166, 255, 0.4);
581
+ }
582
+
583
+ /* Skills Section */
584
+ .skills-section {
585
+ background: var(--bg-card);
586
+ border-radius: 20px;
587
+ padding: 3rem;
588
+ margin: 4rem 0;
589
+ border: 1px solid var(--border-color);
590
+ }
591
+
592
+ .skills-grid {
593
+ display: grid;
594
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
595
+ gap: 2rem;
596
+ margin-top: 2rem;
597
+ }
598
+
599
+ .skill-category {
600
+ text-align: center;
601
+ }
602
+
603
+ .skill-category h4 {
604
+ color: var(--accent-blue);
605
+ margin-bottom: 1rem;
606
+ font-size: 1.2rem;
607
+ }
608
+
609
+ .skill-list {
610
+ display: flex;
611
+ flex-wrap: wrap;
612
+ gap: 0.75rem;
613
+ justify-content: center;
614
+ }
615
+
616
+ .skill-item {
617
+ background: var(--bg-secondary);
618
+ color: var(--text-primary);
619
+ padding: 0.5rem 1rem;
620
+ border-radius: 15px;
621
+ font-size: 0.9rem;
622
+ transition: all 0.3s ease;
623
+ }
624
+
625
+ .skill-item:hover {
626
+ background: var(--accent-green);
627
+ color: white;
628
+ transform: translateY(-2px);
629
+ }
630
+
631
+ /* Contact Section */
632
+ .contact-section {
633
+ text-align: center;
634
+ background: var(--gradient-1);
635
+ border-radius: 20px;
636
+ padding: 4rem 2rem;
637
+ margin: 4rem 0;
638
+ color: white;
639
+ }
640
+
641
+ .contact-section h3 {
642
+ font-size: 2rem;
643
+ margin-bottom: 1rem;
644
+ }
645
+
646
+ .contact-section p {
647
+ font-size: 1.1rem;
648
+ margin-bottom: 2rem;
649
+ opacity: 0.9;
650
+ }
651
+
652
+ .contact-buttons {
653
+ display: flex;
654
+ gap: 1rem;
655
+ justify-content: center;
656
+ flex-wrap: wrap;
657
+ }
658
+
659
+ .contact-btn {
660
+ background: white;
661
+ color: var(--bg-primary);
662
+ padding: 1rem 2rem;
663
+ border-radius: 12px;
664
+ text-decoration: none;
665
+ font-weight: 600;
666
+ transition: all 0.3s ease;
667
+ display: flex;
668
+ align-items: center;
669
+ gap: 0.5rem;
670
+ }
671
+
672
+ .contact-btn:hover {
673
+ transform: translateY(-3px);
674
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
675
+ }
676
+
677
+ /* Animations */
678
+ .fade-in {
679
+ opacity: 0;
680
+ transform: translateY(30px);
681
+ transition: opacity 0.8s ease, transform 0.8s ease;
682
+ }
683
+
684
+ .fade-in.visible {
685
+ opacity: 1;
686
+ transform: translateY(0);
687
+ }
688
+
689
+ .slide-in-left {
690
+ opacity: 0;
691
+ transform: translateX(-50px);
692
+ transition: opacity 0.8s ease, transform 0.8s ease;
693
+ }
694
+
695
+ .slide-in-left.visible {
696
+ opacity: 1;
697
+ transform: translateX(0);
698
+ }
699
+
700
+ .slide-in-right {
701
+ opacity: 0;
702
+ transform: translateX(50px);
703
+ transition: opacity 0.8s ease, transform 0.8s ease;
704
+ }
705
+
706
+ .slide-in-right.visible {
707
+ opacity: 1;
708
+ transform: translateX(0);
709
+ }
710
+
711
+ /* Responsive Design */
712
+ @media (max-width: 768px) {
713
+ .menu-toggle {
714
+ display: flex;
715
+ }
716
+
717
+ .nav-links {
718
+ display: none;
719
+ position: fixed;
720
+ top: 80px;
721
+ left: 0;
722
+ width: 100%;
723
+ background: var(--bg-card);
724
+ padding: 2rem;
725
+ flex-direction: column;
726
+ align-items: center;
727
+ z-index: 1000;
728
+ border-top: 1px solid var(--border-color);
729
+ }
730
+
731
+ .nav-links.active {
732
+ display: flex;
733
+ }
734
+
735
+ h2 {
736
+ font-size: 2.5rem;
737
+ }
738
+
739
+ .projects-grid {
740
+ grid-template-columns: 1fr;
741
+ }
742
+
743
+ .timeline-item {
744
+ min-width: 300px;
745
+ transform: none !important;
746
+ }
747
+
748
+ .project-categories {
749
+ justify-content: flex-start;
750
+ overflow-x: auto;
751
+ padding-bottom: 1rem;
752
+ }
753
+
754
+ .contact-buttons {
755
+ flex-direction: column;
756
+ align-items: center;
757
+ }
758
+
759
+ .skills-grid {
760
+ grid-template-columns: 1fr;
761
+ }
762
+ }
763
+
764
+ @media (max-width: 480px) {
765
+ main {
766
+ padding: 1rem;
767
+ }
768
+
769
+ .timeline-item {
770
+ min-width: 280px;
771
+ }
772
+
773
+ .project-card {
774
+ margin-bottom: 1rem;
775
+ }
776
+ }
777
+ </style>
778
+ </head>
779
+ <body>
780
+ <!-- Animated Background -->
781
+ <div class="animated-bg">
782
+ <div class="floating-shape shape-1"></div>
783
+ <div class="floating-shape shape-2"></div>
784
+ <div class="floating-shape shape-3"></div>
785
+ </div>
786
+
787
+ <header>
788
+ <nav>
789
+ <a href="index.html" class="logo">Pranit Chilbule</a>
790
+ <div class="menu-toggle" onclick="toggleMenu()">
791
+ <span></span>
792
+ <span></span>
793
+ <span></span>
794
+ </div>
795
+ <ul class="nav-links">
796
+ <li><a href="index.html">Home</a></li>
797
+ <li><a href="about.html">About</a></li>
798
+ <li><a href="#" class="active">Projects</a></li>
799
+ <li><a href="achievements.html">Achievement</a></li>
800
+ <li><a href="contact.html">Contact</a></li>
801
+ </ul>
802
+ </nav>
803
+ </header>
804
+
805
+ <main>
806
+ <!-- Projects Section -->
807
+ <section id="projects">
808
+ <h2 class="fade-in">Featured Projects</h2>
809
+
810
+ <!-- Project Categories -->
811
+ <div class="project-categories fade-in">
812
+ <button class="category-btn active" onclick="filterProjects('all')">All Projects</button>
813
+ <button class="category-btn" onclick="filterProjects('ai-ml')">AI/ML</button>
814
+ <button class="category-btn" onclick="filterProjects('web')">Web Development</button>
815
+ <button class="category-btn" onclick="filterProjects('iot')">IoT</button>
816
+ </div>
817
+
818
+ <div class="projects-grid">
819
+ <!-- Project 1: Inspect.AI -->
820
+ <article class="project-card fade-in" data-category="ai-ml">
821
+ <div class="project-thumbnail">
822
+ <img src="https://images.unsplash.com/photo-1555949963-aa79dcee981c?w=600&h=400&fit=crop" alt="AI Inspection System" loading="lazy">
823
+ <div class="project-overlay">
824
+ <div style="color: white; font-weight: 600;">View Details</div>
825
+ </div>
826
+ <div class="project-status">Completed</div>
827
+ </div>
828
+ <div class="project-content">
829
+ <h3 class="project-title">Inspect.AI - Institute Inspection System</h3>
830
+ <p class="project-description">
831
+ Advanced AI-powered inspection system utilizing CNNs, YOLOv8, and image segmentation for comprehensive institute assessment. Features OCR document processing, automated report generation, and seamless ERP integration with 95% accuracy in defect detection.
832
+ </p>
833
+ <div class="tech-stack">
834
+ <span class="tech-tag">Flask</span>
835
+ <span class="tech-tag">YOLOv8</span>
836
+ <span class="tech-tag">Deep Learning</span>
837
+ <span class="tech-tag">Computer Vision</span>
838
+ <span class="tech-tag">NLP</span>
839
+ <span class="tech-tag">Gemini API</span>
840
+ <span class="tech-tag">OCR</span>
841
+ </div>
842
+ <div class="project-links">
843
+ <a href="https://github.com/pranit144/inspect-ai" target="_blank">
844
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
845
+ <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
846
+ </svg>
847
+ GitHub
848
+ </a>
849
+ <a href="#" target="_blank">
850
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
851
+ <path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
852
+ </svg>
853
+ Live Demo
854
+ </a>
855
+ </div>
856
+ </div>
857
+ </article>
858
+
859
+ <!-- Project 2: Ground Water Level Predictor -->
860
+ <article class="project-card fade-in" data-category="ai-ml">
861
+ <div class="project-thumbnail">
862
+ <img src="https://images.unsplash.com/photo-1569163139394-de4e4f43e4e3?w=600&h=400&fit=crop" alt="Water Level Prediction" loading="lazy">
863
+ <div class="project-overlay">
864
+ <div style="color: white; font-weight: 600;">View Details</div>
865
+ </div>
866
+ <div class="project-status">Completed</div>
867
+ </div>
868
+ <div class="project-content">
869
+ <h3 class="project-title">Ground Water Level Predictor</h3>
870
+ <p class="project-description">
871
+ Comprehensive web application for groundwater level estimation using machine learning algorithms. Features geospatial analysis, time-series forecasting, and achieved 90% accuracy using XGBoost and Prophet models with interactive visualization dashboard.
872
+ </p>
873
+ <div class="tech-stack">
874
+ <span class="tech-tag">Python</span>
875
+ <span class="tech-tag">Flask</span>
876
+ <span class="tech-tag">XGBoost</span>
877
+ <span class="tech-tag">Prophet</span>
878
+ <span class="tech-tag">Pandas</span>
879
+ <span class="tech-tag">Plotly</span>
880
+ <span class="tech-tag">Geospatial Analysis</span>
881
+ </div>
882
+ <div class="project-links">
883
+ <a href="#" target="_blank">
884
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
885
+ <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
886
+ </svg>
887
+ GitHub
888
+ </a>
889
+ <a href="#" target="_blank">
890
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
891
+ <path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
892
+ </svg>
893
+ Live Demo
894
+ </a>
895
+ </div>
896
+ </div>
897
+ </article>
898
+
899
+ <!-- Project 3: Enhanced Plant Disease Detection -->
900
+ <article class="project-card fade-in" data-category="iot">
901
+ <div class="project-thumbnail">
902
+ <img src="https://images.unsplash.com/photo-1416879595882-3373a0480b5b?w=600&h=400&fit=crop" alt="Plant Disease Detection System" loading="lazy">
903
+ <div class="project-overlay">
904
+ <div style="color: white; font-weight: 600;">View Details</div>
905
+ </div>
906
+ <div class="project-status">Completed</div>
907
+ </div>
908
+ <div class="project-content">
909
+ <h3 class="project-title">Enhanced Plant Disease Detection</h3>
910
+ <p class="project-description">
911
+ IoT-based agricultural solution combining deep learning and hardware automation for real-time crop disease detection. Features automated pesticide mixing system, smart resource management, and achieved 92% detection accuracy with reduced false positives.
912
+ </p>
913
+ <div class="tech-stack">
914
+ <span class="tech-tag">IoT</span>
915
+ <span class="tech-tag">Deep Learning</span>
916
+ <span class="tech-tag">Computer Vision</span>
917
+ <span class="tech-tag">Arduino</span>
918
+ <span class="tech-tag">Raspberry Pi</span>
919
+ <span class="tech-tag">Python</span>
920
+ <span class="tech-tag">Sensors</span>
921
+ </div>
922
+ <div class="project-links">
923
+ <a href="#" target="_blank">
924
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
925
+ <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
926
+ </svg>
927
+ GitHub
928
+ </a>
929
+ <a href="#" target="_blank">
930
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
931
+ <path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
932
+ </svg>
933
+ Live Demo
934
+ </a>
935
+ </div>
936
+ </div>
937
+ </article>
938
+
939
+ <!-- Project 4: E-Commerce Platform -->
940
+ <article class="project-card fade-in" data-category="web">
941
+ <div class="project-thumbnail">
942
+ <img src="https://images.unsplash.com/photo-1563013544-824ae1b704d3?w=600&h=400&fit=crop" alt="E-Commerce Platform" loading="lazy">
943
+ <div class="project-overlay">
944
+ <div style="color: white; font-weight: 600;">View Details</div>
945
+ </div>
946
+ <div class="project-status">Completed</div>
947
+ </div>
948
+ <div class="project-content">
949
+ <h3 class="project-title">Modern E-Commerce Platform</h3>
950
+ <p class="project-description">
951
+ Full-stack e-commerce solution with responsive design, payment integration, inventory management, and real-time analytics. Features secure authentication, order tracking, and optimized performance for high-traffic scenarios.
952
+ </p>
953
+ <div class="tech-stack">
954
+ <span class="tech-tag">React</span>
955
+ <span class="tech-tag">Node.js</span>
956
+ <span class="tech-tag">MongoDB</span>
957
+ <span class="tech-tag">Express</span>
958
+ <span class="tech-tag">Stripe API</span>
959
+ <span class="tech-tag">Redux</span>
960
+ <span class="tech-tag">JWT</span>
961
+ </div>
962
+ <div class="project-links">
963
+ <a href="#" target="_blank">
964
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
965
+ <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
966
+ </svg>
967
+ GitHub
968
+ </a>
969
+ <a href="#" target="_blank">
970
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
971
+ <path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
972
+ </svg>
973
+ Live Demo
974
+ </a>
975
+ </div>
976
+ </div>
977
+ </article>
978
+
979
+ <!-- Project 5: Smart Home Automation -->
980
+ <article class="project-card fade-in" data-category="iot">
981
+ <div class="project-thumbnail">
982
+ <img src="https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=600&h=400&fit=crop" alt="Smart Home System" loading="lazy">
983
+ <div class="project-overlay">
984
+ <div style="color: white; font-weight: 600;">View Details</div>
985
+ </div>
986
+ <div class="project-status in-progress">In Progress</div>
987
+ </div>
988
+ <div class="project-content">
989
+ <h3 class="project-title">Smart Home Automation System</h3>
990
+ <p class="project-description">
991
+ Comprehensive IoT solution for home automation featuring voice control, mobile app integration, energy monitoring, and AI-driven optimization. Implements machine learning for predictive analytics and energy efficiency.
992
+ </p>
993
+ <div class="tech-stack">
994
+ <span class="tech-tag">IoT</span>
995
+ <span class="tech-tag">Arduino</span>
996
+ <span class="tech-tag">React Native</span>
997
+ <span class="tech-tag">Firebase</span>
998
+ <span class="tech-tag">ML</span>
999
+ <span class="tech-tag">Voice Recognition</span>
1000
+ <span class="tech-tag">WiFi</span>
1001
+ </div>
1002
+ <div class="project-links">
1003
+ <a href="#" target="_blank">
1004
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
1005
+ <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
1006
+ </svg>
1007
+ GitHub
1008
+ </a>
1009
+ <a href="#" target="_blank">
1010
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
1011
+ <path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
1012
+ </svg>
1013
+ Preview
1014
+ </a>
1015
+ </div>
1016
+ </div>
1017
+ </article>
1018
+
1019
+ <!-- Project 6: Data Visualization Dashboard -->
1020
+ <article class="project-card fade-in" data-category="ai-ml">
1021
+ <div class="project-thumbnail">
1022
+ <img src="https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=600&h=400&fit=crop" alt="Data Visualization Dashboard" loading="lazy">
1023
+ <div class="project-overlay">
1024
+ <div style="color: white; font-weight: 600;">View Details</div>
1025
+ </div>
1026
+ <div class="project-status">Completed</div>
1027
+ </div>
1028
+ <div class="project-content">
1029
+ <h3 class="project-title">Interactive Data Analytics Dashboard</h3>
1030
+ <p class="project-description">
1031
+ Advanced analytics platform with real-time data processing, interactive visualizations, and predictive modeling capabilities. Features custom charts, automated reporting, and machine learning integration for business intelligence.
1032
+ </p>
1033
+ <div class="tech-stack">
1034
+ <span class="tech-tag">Python</span>
1035
+ <span class="tech-tag">Dash</span>
1036
+ <span class="tech-tag">Plotly</span>
1037
+ <span class="tech-tag">Pandas</span>
1038
+ <span class="tech-tag">SQL</span>
1039
+ <span class="tech-tag">Machine Learning</span>
1040
+ <span class="tech-tag">Docker</span>
1041
+ </div>
1042
+ <div class="project-links">
1043
+ <a href="#" target="_blank">
1044
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
1045
+ <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
1046
+ </svg>
1047
+ GitHub
1048
+ </a>
1049
+ <a href="#" target="_blank">
1050
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
1051
+ <path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
1052
+ </svg>
1053
+ Live Demo
1054
+ </a>
1055
+ </div>
1056
+ </div>
1057
+ </article>
1058
+ </div>
1059
+ </section>
1060
+
1061
+ <!-- Experience Timeline -->
1062
+ <section id="experience">
1063
+ <h2 class="fade-in">Professional Experience</h2>
1064
+ <div class="timeline">
1065
+ <div class="timeline-container">
1066
+ <!-- Passion Infotech -->
1067
+ <div class="timeline-item fade-in">
1068
+ <div class="timeline-content">
1069
+ <div class="timeline-date">August 2024-November 2024 </div>
1070
+ <div class="timeline-location">Pune, India</div>
1071
+ <h3 class="timeline-role">AI Engineer - Passion Infotech Private Limited</h3>
1072
+ <ul>
1073
+ <li>Developed a generative AI system using GANs and transformers for advanced content creation</li>
1074
+ <li>Implemented mood-driven audio-visual enhancements with 85% user satisfaction</li>
1075
+ <li>Secured ₹2.5M industry funding for innovation projects</li>
1076
+ <li>Expanded RAG framework expertise and deployed production-ready AI solutions</li>
1077
+ <li>Led cross-functional team of 5 engineers in AI product development</li>
1078
+ </ul>
1079
+ </div>
1080
+ </div>
1081
+
1082
+ <!-- Softgrowth Infotech -->
1083
+ <div class="timeline-item fade-in">
1084
+ <div class="timeline-content">
1085
+ <div class="timeline-date">July 2024</div>
1086
+ <div class="timeline-location">Chandrapur, India</div>
1087
+ <h3 class="timeline-role">Summer Intern - Softgrowth Infotech</h3>
1088
+ <ul>
1089
+ <li>Developed responsive website frontend using HTML5, CSS3, and JavaScript ES6</li>
1090
+ <li>Enhanced user experience and improved page load performance by 25%</li>
1091
+ <li>Ensured cross-browser compatibility and mobile responsiveness</li>
1092
+ <li>Collaborated with design team to implement pixel-perfect UI components</li>
1093
+ <li>Optimized code for better SEO performance and accessibility standards</li>
1094
+ </ul>
1095
+ </div>
1096
+ </div>
1097
+
1098
+ <!-- Acmegrade -->
1099
+ <div class="timeline-item fade-in">
1100
+ <div class="timeline-content">
1101
+ <div class="timeline-date">April 2023 - May 2023</div>
1102
+ <div class="timeline-location">Remote</div>
1103
+ <h3 class="timeline-role">Data Science Trainee - Acmegrade</h3>
1104
+ <ul>
1105
+ <li>Built spam classification model achieving 94% accuracy using ML techniques</li>
1106
+ <li>Developed NLP chatbot with advanced data preprocessing and sentiment analysis</li>
1107
+ <li>Implemented feature engineering pipelines using Pandas and NumPy</li>
1108
+ <li>Analyzed large datasets and created predictive models for business insights</li>
1109
+ <li>Participated in end-to-end ML project lifecycle from data collection to deployment</li>
1110
+ </ul>
1111
+ </div>
1112
+ </div>
1113
+ </div>
1114
+
1115
+ <div class="timeline-nav">
1116
+ <button onclick="scrollTimeline('left')" aria-label="Previous">←</button>
1117
+ <button onclick="scrollTimeline('right')" aria-label="Next">→</button>
1118
+ </div>
1119
+ </div>
1120
+ </section>
1121
+
1122
+ <!-- Skills Section -->
1123
+ <section id="skills">
1124
+ <div class="skills-section fade-in">
1125
+ <h2>Technical Skills</h2>
1126
+ <div class="skills-grid">
1127
+ <div class="skill-category">
1128
+ <h4>Programming Languages</h4>
1129
+ <div class="skill-list">
1130
+ <span class="skill-item">Python</span>
1131
+ <span class="skill-item">JavaScript</span>
1132
+ <span class="skill-item">Java</span>
1133
+ <span class="skill-item">C++</span>
1134
+ <span class="skill-item">SQL</span>
1135
+ <span class="skill-item">R</span>
1136
+ </div>
1137
+ </div>
1138
+ <div class="skill-category">
1139
+ <h4>AI/ML Technologies</h4>
1140
+ <div class="skill-list">
1141
+ <span class="skill-item">TensorFlow</span>
1142
+ <span class="skill-item">PyTorch</span>
1143
+ <span class="skill-item">Scikit-learn</span>
1144
+ <span class="skill-item">OpenCV</span>
1145
+ <span class="skill-item">YOLO</span>
1146
+ <span class="skill-item">Transformers</span>
1147
+ <span class="skill-item">GANs</span>
1148
+ </div>
1149
+ </div>
1150
+ <div class="skill-category">
1151
+ <h4>Web Technologies</h4>
1152
+ <div class="skill-list">
1153
+ <span class="skill-item">React</span>
1154
+ <span class="skill-item">Node.js</span>
1155
+ <span class="skill-item">Flask</span>
1156
+ <span class="skill-item">Django</span>
1157
+ <span class="skill-item">MongoDB</span>
1158
+ <span class="skill-item">Express</span>
1159
+ </div>
1160
+ </div>
1161
+ <div class="skill-category">
1162
+ <h4>Tools & Platforms</h4>
1163
+ <div class="skill-list">
1164
+ <span class="skill-item">Git</span>
1165
+ <span class="skill-item">Docker</span>
1166
+ <span class="skill-item">AWS</span>
1167
+ <span class="skill-item">Google Cloud</span>
1168
+ <span class="skill-item">Jupyter</span>
1169
+ <span class="skill-item">VS Code</span>
1170
+ </div>
1171
+ </div>
1172
+ </div>
1173
+ </div>
1174
+ </section>
1175
+
1176
+ <!-- Contact Section -->
1177
+ <section id="contact">
1178
+ <div class="contact-section fade-in">
1179
+ <h3>Let's Work Together</h3>
1180
+ <p>Ready to bring your ideas to life? Let's discuss how we can collaborate on your next project.</p>
1181
+ <div class="contact-buttons">
1182
+ <a href="mailto:[email protected]" class="contact-btn">
1183
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
1184
+ <path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.89 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/>
1185
+ </svg>
1186
+ Email Me
1187
+ </a>
1188
+ <a href="https://linkedin.com/in/pranit144" class="contact-btn">
1189
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
1190
+ <path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>
1191
+ </svg>
1192
+ LinkedIn
1193
+ </a>
1194
+ <a href="https://github.com/pranit144" class="contact-btn">
1195
+ <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24">
1196
+ <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
1197
+ </svg>
1198
+ GitHub
1199
+ </a>
1200
+ </div>
1201
+ </div>
1202
+ </section>
1203
+ </main>
1204
+
1205
+ <script>
1206
+ // Header scroll effect
1207
+ window.addEventListener('scroll', () => {
1208
+ const header = document.querySelector('header');
1209
+ if (window.scrollY > 100) {
1210
+ header.classList.add('scrolled');
1211
+ } else {
1212
+ header.classList.remove('scrolled');
1213
+ }
1214
+ });
1215
+
1216
+ // Mobile menu toggle
1217
+ function toggleMenu() {
1218
+ const navLinks = document.querySelector('.nav-links');
1219
+ const menuToggle = document.querySelector('.menu-toggle');
1220
+ navLinks.classList.toggle('active');
1221
+ menuToggle.classList.toggle('active');
1222
+ }
1223
+
1224
+ // Project filtering
1225
+ function filterProjects(category) {
1226
+ const cards = document.querySelectorAll('.project-card');
1227
+ const buttons = document.querySelectorAll('.category-btn');
1228
+
1229
+ // Update active button
1230
+ buttons.forEach(btn => btn.classList.remove('active'));
1231
+ event.target.classList.add('active');
1232
+
1233
+ // Filter cards
1234
+ cards.forEach(card => {
1235
+ if (category === 'all' || card.dataset.category === category) {
1236
+ card.style.display = 'block';
1237
+ card.style.animation = 'fadeIn 0.5s ease forwards';
1238
+ } else {
1239
+ card.style.display = 'none';
1240
+ }
1241
+ });
1242
+ }
1243
+
1244
+ // Timeline navigation
1245
+ function scrollTimeline(direction) {
1246
+ const container = document.querySelector('.timeline-container');
1247
+ const scrollAmount = 400;
1248
+ if (direction === 'left') {
1249
+ container.scrollBy({ left: -scrollAmount, behavior: 'smooth' });
1250
+ } else {
1251
+ container.scrollBy({ left: scrollAmount, behavior: 'smooth' });
1252
+ }
1253
+ }
1254
+
1255
+ // Intersection Observer for animations
1256
+ const observerOptions = {
1257
+ threshold: 0.1,
1258
+ rootMargin: '0px 0px -50px 0px'
1259
+ };
1260
+
1261
+ const observer = new IntersectionObserver((entries) => {
1262
+ entries.forEach(entry => {
1263
+ if (entry.isIntersecting) {
1264
+ entry.target.classList.add('visible');
1265
+ }
1266
+ });
1267
+ }, observerOptions);
1268
+
1269
+ // Observe all elements with animation classes
1270
+ document.addEventListener('DOMContentLoaded', () => {
1271
+ const animatedElements = document.querySelectorAll('.fade-in, .slide-in-left, .slide-in-right');
1272
+ animatedElements.forEach(el => observer.observe(el));
1273
+ });
1274
+
1275
+ // Smooth scrolling for navigation links
1276
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
1277
+ anchor.addEventListener('click', function (e) {
1278
+ e.preventDefault();
1279
+ const target = document.querySelector(this.getAttribute('href'));
1280
+ if (target) {
1281
+ const headerHeight = document.querySelector('header').offsetHeight;
1282
+ const targetPosition = target.offsetTop - headerHeight - 20;
1283
+
1284
+ window.scrollTo({
1285
+ top: targetPosition,
1286
+ behavior: 'smooth'
1287
+ });
1288
+
1289
+ // Close mobile menu if open
1290
+ const navLinks = document.querySelector('.nav-links');
1291
+ const menuToggle = document.querySelector('.menu-toggle');
1292
+ navLinks.classList.remove('active');
1293
+ menuToggle.classList.remove('active');
1294
+ }
1295
+ });
1296
+ });
1297
+
1298
+ // Typing animation for hero section
1299
+ function typeWriter(element, text, speed = 100) {
1300
+ let i = 0;
1301
+ element.innerHTML = '';
1302
+ function type() {
1303
+ if (i < text.length) {
1304
+ element.innerHTML += text.charAt(i);
1305
+ i++;
1306
+ setTimeout(type, speed);
1307
+ }
1308
+ }
1309
+ type();
1310
+ }
1311
+
1312
+ // Initialize typing animation
1313
+ window.addEventListener('load', () => {
1314
+ const heroTitle = document.querySelector('.hero-title');
1315
+ if (heroTitle) {
1316
+ typeWriter(heroTitle, 'AI Engineer & Full-Stack Developer', 80);
1317
+ }
1318
+ });
1319
+
1320
+ // Parallax effect for hero section
1321
+ window.addEventListener('scroll', () => {
1322
+ const scrolled = window.pageYOffset;
1323
+ const hero = document.querySelector('.hero');
1324
+ if (hero) {
1325
+ hero.style.transform = `translateY(${scrolled * 0.5}px)`;
1326
+ }
1327
+ });
1328
+
1329
+ // Project card hover effects
1330
+ document.querySelectorAll('.project-card').forEach(card => {
1331
+ card.addEventListener('mouseenter', function() {
1332
+ this.style.transform = 'translateY(-10px)';
1333
+ });
1334
+
1335
+ card.addEventListener('mouseleave', function() {
1336
+ this.style.transform = 'translateY(0)';
1337
+ });
1338
+ });
1339
+
1340
+ // Skills animation on scroll
1341
+ const skillItems = document.querySelectorAll('.skill-item');
1342
+ const skillObserver = new IntersectionObserver((entries) => {
1343
+ entries.forEach((entry, index) => {
1344
+ if (entry.isIntersecting) {
1345
+ setTimeout(() => {
1346
+ entry.target.style.opacity = '1';
1347
+ entry.target.style.transform = 'translateY(0)';
1348
+ }, index * 100);
1349
+ }
1350
+ });
1351
+ });
1352
+
1353
+ skillItems.forEach(item => {
1354
+ item.style.opacity = '0';
1355
+ item.style.transform = 'translateY(20px)';
1356
+ item.style.transition = 'all 0.5s ease';
1357
+ skillObserver.observe(item);
1358
+ });
1359
+
1360
+ // Dynamic year update
1361
+ const currentYear = new Date().getFullYear();
1362
+ const yearElements = document.querySelectorAll('.current-year');
1363
+ yearElements.forEach(el => el.textContent = currentYear);
1364
+
1365
+ // Form validation (if contact form exists)
1366
+ const contactForm = document.querySelector('#contact-form');
1367
+ if (contactForm) {
1368
+ contactForm.addEventListener('submit', function(e) {
1369
+ e.preventDefault();
1370
+ // Add form validation logic here
1371
+ alert('Thank you for your message! I will get back to you soon.');
1372
+ });
1373
+ }
1374
+
1375
+ // Performance optimization - lazy loading for images
1376
+ if ('IntersectionObserver' in window) {
1377
+ const imageObserver = new IntersectionObserver((entries, observer) => {
1378
+ entries.forEach(entry => {
1379
+ if (entry.isIntersecting) {
1380
+ const img = entry.target;
1381
+ img.src = img.dataset.src || img.src;
1382
+ img.classList.remove('lazy');
1383
+ observer.unobserve(img);
1384
+ }
1385
+ });
1386
+ });
1387
+
1388
+ document.querySelectorAll('img[loading="lazy"]').forEach(img => {
1389
+ imageObserver.observe(img);
1390
+ });
1391
+ }
1392
+
1393
+ // Active navigation highlighting
1394
+ window.addEventListener('scroll', () => {
1395
+ const sections = document.querySelectorAll('section[id]');
1396
+ const navLinks = document.querySelectorAll('.nav-links a');
1397
+
1398
+ let current = '';
1399
+ sections.forEach(section => {
1400
+ const sectionTop = section.offsetTop;
1401
+ const sectionHeight = section.clientHeight;
1402
+ if (scrollY >= (sectionTop - 200)) {
1403
+ current = section.getAttribute('id');
1404
+ }
1405
+ });
1406
+
1407
+ navLinks.forEach(link => {
1408
+ link.classList.remove('active');
1409
+ if (link.getAttribute('href') === '#' + current) {
1410
+ link.classList.add('active');
1411
+ }
1412
+ });
1413
+ });
1414
+
1415
+ // Timeline scroll indicators
1416
+ const timelineContainer = document.querySelector('.timeline-container');
1417
+ if (timelineContainer) {
1418
+ timelineContainer.addEventListener('scroll', () => {
1419
+ const scrollLeft = timelineContainer.scrollLeft;
1420
+ const maxScroll = timelineContainer.scrollWidth - timelineContainer.clientWidth;
1421
+ const scrollPercentage = (scrollLeft / maxScroll) * 100;
1422
+
1423
+ // Update navigation buttons state
1424
+ const leftBtn = document.querySelector('.timeline-nav button:first-child');
1425
+ const rightBtn = document.querySelector('.timeline-nav button:last-child');
1426
+
1427
+ if (leftBtn && rightBtn) {
1428
+ leftBtn.disabled = scrollLeft === 0;
1429
+ rightBtn.disabled = scrollLeft >= maxScroll - 1;
1430
+ }
1431
+ });
1432
+ }
1433
+
1434
+ // Easter egg - Konami code
1435
+ let konamiCode = [];
1436
+ const konamiSequence = [38, 38, 40, 40, 37, 39, 37, 39, 66, 65];
1437
+
1438
+ document.addEventListener('keydown', (e) => {
1439
+ konamiCode.push(e.keyCode);
1440
+ if (konamiCode.length > konamiSequence.length) {
1441
+ konamiCode.shift();
1442
+ }
1443
+
1444
+ if (konamiCode.toString() === konamiSequence.toString()) {
1445
+ document.body.style.animation = 'rainbow 2s infinite';
1446
+ setTimeout(() => {
1447
+ document.body.style.animation = '';
1448
+ }, 5000);
1449
+ console.log('🎉 Easter egg activated! Welcome to the matrix!');
1450
+ }
1451
+ });
1452
+
1453
+ // Add CSS for rainbow animation
1454
+ const style = document.createElement('style');
1455
+ style.textContent = `
1456
+ @keyframes rainbow {
1457
+ 0% { filter: hue-rotate(0deg); }
1458
+ 100% { filter: hue-rotate(360deg); }
1459
+ }
1460
+ `;
1461
+ document.head.appendChild(style);
1462
+
1463
+ // Console welcome message
1464
+ console.log('%c Welcome to Pranit Chilbule\'s Portfolio! ', 'background: linear-gradient(45deg, #667eea 0%, #764ba2 100%); color: white; padding: 10px; border-radius: 5px; font-size: 16px; font-weight: bold;');
1465
+ console.log('%c Feel free to explore the code and reach out if you have any questions! ', 'color: #667eea; font-size: 14px;');
1466
+ </script>
1467
+
1468
+ <!-- Additional CSS for enhanced animations and responsive design -->
1469
+ <style>
1470
+ /* Ensure smooth transitions for all interactive elements */
1471
+ * {
1472
+ transition-duration: 0.3s;
1473
+ }
1474
+
1475
+ /* Enhanced project card animations */
1476
+ .project-card {
1477
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1478
+ }
1479
+
1480
+ .project-card:hover {
1481
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
1482
+ }
1483
+
1484
+ /* Improved timeline navigation */
1485
+ .timeline-nav button:disabled {
1486
+ opacity: 0.5;
1487
+ cursor: not-allowed;
1488
+ }
1489
+
1490
+ /* Enhanced mobile responsiveness */
1491
+ @media (max-width: 768px) {
1492
+ .timeline-container {
1493
+ scroll-snap-type: x mandatory;
1494
+ }
1495
+
1496
+ .timeline-item {
1497
+ scroll-snap-align: start;
1498
+ }
1499
+
1500
+ .skills-grid {
1501
+ grid-template-columns: 1fr;
1502
+ gap: 1.5rem;
1503
+ }
1504
+ }
1505
+
1506
+ /* Loading animation for lazy images */
1507
+ img.lazy {
1508
+ opacity: 0;
1509
+ transition: opacity 0.3s;
1510
+ }
1511
+
1512
+ img.lazy.loaded {
1513
+ opacity: 1;
1514
+ }
1515
+
1516
+ /* Active navigation styling */
1517
+ .nav-links a.active {
1518
+ color: var(--primary-color);
1519
+ border-bottom: 2px solid var(--primary-color);
1520
+ }
1521
+
1522
+ /* Print styles */
1523
+ @media print {
1524
+ .nav-links,
1525
+ .menu-toggle,
1526
+ .project-links,
1527
+ .contact-buttons {
1528
+ display: none;
1529
+ }
1530
+
1531
+ .project-card,
1532
+ .timeline-item {
1533
+ break-inside: avoid;
1534
+ }
1535
+ }
1536
+
1537
+ /* High contrast mode support */
1538
+ @media (prefers-contrast: high) {
1539
+ :root {
1540
+ --text-color: #000;
1541
+ --background-color: #fff;
1542
+ --primary-color: #0000ff;
1543
+ }
1544
+ }
1545
+
1546
+ /* Reduced motion for accessibility */
1547
+ @media (prefers-reduced-motion: reduce) {
1548
+ *,
1549
+ *::before,
1550
+ *::after {
1551
+ animation-duration: 0.01ms !important;
1552
+ animation-iteration-count: 1 !important;
1553
+ transition-duration: 0.01ms !important;
1554
+ }
1555
+ }
1556
+ </style>
1557
+ </body>
1558
+ </html>