This repository was archived by the owner on Apr 19, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
573 lines (547 loc) · 110 KB
/
index.html
File metadata and controls
573 lines (547 loc) · 110 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
<!DOCTYPE html>
<html lang="tr" class="scroll-smooth">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cihat Aydın</title> <!-- BURAYI GÜNCELLE -->
<link rel="icon" href="./public/favicon-32x32.png" type="image/png" sizes="32x32">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdn.jsdelivr.net/npm/tsparticles@2.12.0/tsparticles.bundle.min.js"></script>
<script>
tailwind.config = {
darkMode: 'class',
theme: {
extend: {
fontFamily: {
sans: ['Inter', 'sans-serif'],
},
animation: {
'gradient': 'gradient 8s linear infinite',
'pulse-slow': 'pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite',
},
keyframes: {
gradient: {
'0%, 100%': { 'background-size': '200% 200%', 'background-position': 'left center' },
'50%': { 'background-size': '200% 200%', 'background-position': 'right center' }
}
}
}
}
}
</script>
<style>
body {
@apply font-sans bg-stone-50 text-stone-800 dark:bg-gray-900 dark:text-stone-200 transition-colors duration-300;
overflow-x: hidden;
}
.timeline-line::before {
content: '';
@apply absolute top-0 left-1/2 w-0.5 h-full bg-gradient-to-b from-emerald-300 via-lime-300 to-amber-300 dark:from-emerald-700 dark:via-lime-700 dark:to-amber-700 -translate-x-1/2;
}
@media (max-width: 767px) {
.timeline-line::before {
@apply left-4;
}
}
</style>
</head>
<body class="antialiased">
<header class="fixed top-0 right-0 p-4 z-50">
<button id="theme-toggle" type="button" aria-label="Toggle dark mode"
class="text-stone-500 dark:text-stone-400 hover:bg-stone-200 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-stone-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 transition-colors duration-200">
<svg id="theme-toggle-sun-icon" class="w-5 h-5 hidden" fill="currentColor" viewBox="0 0 20 20">
<path
d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 5.05A1 1 0 004.343 6.465l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 0zM3 11a1 1 0 100-2H2a1 1 0 100 2h1zm7 6a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM4.95 14.95l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 111.414 1.414z"
fill-rule="evenodd" clip-rule="evenodd"></path>
</svg>
<svg id="theme-toggle-moon-icon" class="w-5 h-5 hidden" fill="currentColor" viewBox="0 0 20 20">
<path d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"></path>
</svg>
</button>
</header>
<section id="hero"
class="min-h-screen relative overflow-hidden flex items-center justify-center py-20 px-4 bg-white dark:bg-gray-900 transition-colors duration-300">
<!-- YENİ: Parçacık Konteyneri (Eski gradient div yerine) -->
<div id="particles-js" class="absolute inset-0 z-0"></div>
<!-- Ana içerik (z-10 ile öne alınır) -->
<div class="relative z-10 text-center">
<div class="flex flex-col items-center space-y-8">
<div class="relative">
<div
class="w-40 h-40 md:w-48 md:h-48 rounded-full p-1 bg-gradient-to-r from-emerald-400 to-lime-500 dark:from-emerald-500 dark:to-lime-600 animate-pulse-slow shadow-lg">
<img id="profile-image" class="w-full h-full rounded-full object-cover"
src="https://avatars.githubusercontent.com/u/64714664?v=4" alt="Profil Fotoğrafı">
</div>
</div>
<div class="space-y-2">
<h1 id="profile-name"
class="text-4xl md:text-6xl font-extrabold tracking-tight bg-clip-text text-transparent bg-gradient-to-r from-emerald-700 to-lime-700 dark:from-emerald-400 dark:to-lime-400 pb-2">
</h1>
<p id="profile-title" class="text-xl md:text-2xl text-stone-600 dark:text-stone-300 font-medium">
</p>
</div>
<p id="profile-summary" class="max-w-2xl text-stone-700 dark:text-stone-300 text-base md:text-lg">
</p>
<div class="flex space-x-6 pt-4">
<a id="social-github" href="#" target="_blank" rel="noopener noreferrer" aria-label="GitHub Profile"
class="text-stone-500 dark:text-stone-400 hover:text-emerald-600 dark:hover:text-emerald-400 transform hover:scale-110 transition-all duration-300">
<svg class="w-8 h-8" fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<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.766-1.588 8.198-6.084 8.198-11.386 0-6.627-5.373-12-12-12z" />
</svg>
<a id="social-linkedin" href="#" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn Profile"
class="text-stone-500 dark:text-stone-400 hover:text-emerald-600 dark:hover:text-emerald-400 transform hover:scale-110 transition-all duration-300">
<svg class="w-8 h-8" fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<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" />
</svg>
</a>
<a id="social-twitter" href="#" target="_blank" rel="noopener noreferrer" aria-label="Twitter Profile"
class="text-stone-500 dark:text-stone-400 hover:text-emerald-600 dark:hover:text-emerald-400 transform hover:scale-110 transition-all duration-300">
<svg class="w-8 h-8" fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path
d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z" />
</svg>
</a>
</div>
</div>
</div>
</section>
<section id="skills" class="py-20 bg-gray-50 dark:bg-gray-800 transition-colors duration-300">
<div class="container mx-auto px-4">
<h2
class="text-3xl md:text-4xl font-bold text-center mb-16 bg-clip-text text-transparent bg-gradient-to-r from-emerald-600 to-lime-600 dark:from-emerald-400 dark:to-lime-400">
Tech Expertises
</h2>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-6 gap-10 md:gap-12">
<div class="space-y-6">
<h3 id="skills-frontend-title"
class="text-xl font-semibold text-stone-800 dark:text-white border-b-2 pb-2 flex items-center gap-2">
<svg id="skills-frontend-icon" class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z">
</path>
</svg>
Frontend
</h3>
<div id="skills-frontend" class="grid grid-cols-1 gap-y-3">
<div class="animate-pulse flex items-center space-x-3 p-3 bg-stone-200 dark:bg-gray-700 rounded-lg">
<div class="w-8 h-8 bg-stone-300 dark:bg-gray-600 rounded"></div>
<div class="h-4 bg-stone-300 dark:bg-gray-600 rounded w-20"></div>
</div>
<div class="animate-pulse flex items-center space-x-3 p-3 bg-stone-200 dark:bg-gray-700 rounded-lg">
<div class="w-8 h-8 bg-stone-300 dark:bg-gray-600 rounded"></div>
<div class="h-4 bg-stone-300 dark:bg-gray-600 rounded w-20"></div>
</div>
</div>
</div>
<div class="space-y-6">
<h3 id="skills-backend-title"
class="text-xl font-semibold text-stone-800 dark:text-white border-b-2 pb-2 flex items-center gap-2">
<svg id="skills-backend-icon" class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01">
</path>
</svg>
Backend
</h3>
<div id="skills-backend" class="grid grid-cols-1 gap-y-3">
<div class="animate-pulse flex items-center space-x-3 p-3 bg-stone-200 dark:bg-gray-700 rounded-lg">
<div class="w-8 h-8 bg-stone-300 dark:bg-gray-600 rounded"></div>
<div class="h-4 bg-stone-300 dark:bg-gray-600 rounded w-20"></div>
</div>
</div>
</div>
<div class="space-y-6">
<h3 id="skills-databases-title"
class="text-xl font-semibold text-stone-800 dark:text-white border-b-2 pb-2 flex items-center gap-2">
<svg id="skills-databases-icon" class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round"
d="M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125" />
</svg>
Database
</h3>
<div id="skills-databases" class="grid grid-cols-1 gap-y-3"></div>
</div>
<div class="space-y-6">
<h3 id="skills-vms-title"
class="text-xl font-semibold text-stone-800 dark:text-white border-b-2 pb-2 flex items-center gap-2">
<svg id="skills-vms-icon" class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round"
d="m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z" />
</svg>
VM
</h3>
<div id="skills-vms" class="grid grid-cols-1 gap-y-3"></div>
</div>
<div class="space-y-6">
<h3 id="skills-vcs-title"
class="text-xl font-semibold text-stone-800 dark:text-white border-b-2 pb-2 flex items-center gap-2">
<svg id="skills-vcs-icon" class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round"
d="M12 16.5V9.75m0 0 3 3m-3-3-3 3M6.75 19.5a4.5 4.5 0 0 1-1.41-8.775 5.25 5.25 0 0 1 10.233-2.33 3 3 0 0 1 3.758 3.848A3.752 3.752 0 0 1 18 19.5H6.75Z" />
</svg>
VCS
</h3>
<div id="skills-vcs" class="grid grid-cols-1 gap-y-3"></div>
</div>
<div class="space-y-6">
<h3 id="skills-cloud-title"
class="text-xl font-semibold text-stone-800 dark:text-white border-b-2 pb-2 flex items-center gap-2">
<svg id="skills-cloud-icon" class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round"
d="M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z" />
</svg>
Cloud
</h3>
<div id="skills-cloud" class="grid grid-cols-1 gap-y-3"></div>
</div>
</div>
</div>
</section>
<section id="experience" class="py-20 bg-white dark:bg-gray-900 transition-colors duration-300">
<div class="container mx-auto px-4">
<h2
class="text-3xl md:text-4xl font-bold text-center mb-16 bg-clip-text text-transparent bg-gradient-to-r from-emerald-600 to-lime-600 dark:from-emerald-400 dark:to-lime-400">
Experiences
</h2>
<div class="max-w-3xl mx-auto relative timeline-line">
<div class="animate-pulse mb-12 md:mb-16">
<div class="flex flex-col md:flex-row items-start gap-4 md:gap-10">
<div class="w-full md:w-5/12 space-y-2 md:text-right">
<div class="h-4 bg-stone-300 dark:bg-gray-700 rounded w-1/3"></div>
<div class="h-6 bg-stone-300 dark:bg-gray-700 rounded w-2/3"></div>
<div class="h-5 bg-stone-300 dark:bg-gray-700 rounded w-1/2"></div>
</div>
<div class="w-full md:w-7/12 pl-10 md:pl-0 relative">
<div class="p-6 bg-stone-200 dark:bg-gray-800 rounded-lg space-y-3">
<div class="h-4 bg-stone-300 dark:bg-gray-700 rounded"></div>
<div class="h-4 bg-stone-300 dark:bg-gray-700 rounded w-5/6"></div>
<div class="flex gap-2 pt-1">
<div class="h-6 w-16 bg-stone-300 dark:bg-gray-700 rounded-full"></div>
<div class="h-6 w-20 bg-stone-300 dark:bg-gray-700 rounded-full"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="contact" class="py-20 bg-gray-50 dark:bg-gray-800 transition-colors duration-300">
<div class="container mx-auto px-4">
<h2
class="text-3xl md:text-4xl font-bold text-center mb-12 bg-clip-text text-transparent bg-gradient-to-r from-emerald-600 to-lime-600 dark:from-emerald-400 dark:to-lime-400">
Stay in Touch
</h2>
<div
class="max-w-4xl mx-auto bg-white dark:bg-gray-800 p-8 rounded-xl shadow-lg border border-stone-200 dark:border-gray-700/50">
<div class="grid grid-cols-1 md:grid-cols-2 gap-8 md:gap-12">
<div class="space-y-6">
<h3 class="text-2xl font-semibold text-stone-800 dark:text-white mb-4">Contact Informations</h3>
<div class="space-y-4">
<div class="flex items-start space-x-3 group">
<svg class="w-6 h-6 text-emerald-600 dark:text-emerald-400 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor"
viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z">
</path>
</svg>
<div>
<span class="font-medium text-stone-700 dark:text-stone-300">Email</span>
<a id="contact-email" href="mailto:email@example.com"
class="block text-stone-600 dark:text-stone-400 hover:text-emerald-600 dark:hover:text-emerald-400 transition-colors duration-200"></a>
</div>
</div>
<div class="flex items-start space-x-3 group">
<svg class="w-6 h-6 text-emerald-600 dark:text-emerald-400 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor"
viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z">
</path>
</svg>
<div>
<span class="font-medium text-stone-700 dark:text-stone-300"></span>
<span id="contact-phone" class="block text-stone-600 dark:text-stone-400"></span>
</div>
</div>
<div class="flex items-start space-x-3 group">
<svg class="w-6 h-6 text-emerald-600 dark:text-emerald-400 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor"
viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z">
</path>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z">
</path>
</svg>
<div>
<span class="font-medium text-stone-700 dark:text-stone-300">Location</span>
<span id="contact-location" class="block text-stone-600 dark:text-stone-400"></span>
</div>
</div>
</div>
<p class="text-stone-600 dark:text-stone-400 text-sm pt-4">
Feel free to get in touch for new projects and collaboration opportunities!
</p>
</div>
<form action="https://formspree.io/f/xdkepkzr" method="POST" class="z-50 space-y-6">
<div>
<label for="name" class="block mb-2 text-sm font-medium text-stone-700 dark:text-stone-300">Name</label>
<input type="text" id="name" name="name" placeholder="Name Surname" required
class="w-full px-4 py-3 bg-stone-50 dark:bg-gray-700 border border-stone-300 dark:border-gray-600 rounded-xl focus:ring-2 focus:ring-emerald-500 dark:focus:ring-emerald-400 focus:border-transparent dark:text-white transition-all duration-300 outline-none placeholder-stone-400 dark:placeholder-stone-500">
</div>
<div>
<label for="email" class="block mb-2 text-sm font-medium text-stone-700 dark:text-stone-300">Email</label>
<input type="email" id="email" name="email" placeholder="email@yours.com" required
class="w-full px-4 py-3 bg-stone-50 dark:bg-gray-700 border border-stone-300 dark:border-gray-600 rounded-xl focus:ring-2 focus:ring-emerald-500 dark:focus:ring-emerald-400 focus:border-transparent dark:text-white transition-all duration-300 outline-none placeholder-stone-400 dark:placeholder-stone-500">
</div>
<div>
<label for="message" class="block mb-2 text-sm font-medium text-stone-700 dark:text-stone-300">Message</label>
<textarea id="message" name="message" placeholder="Leave your message here..." rows="4" required
class="w-full px-4 py-3 bg-stone-50 dark:bg-gray-700 border border-stone-300 dark:border-gray-600 rounded-xl focus:ring-2 focus:ring-emerald-500 dark:focus:ring-emerald-400 focus:border-transparent dark:text-white transition-all duration-300 outline-none resize-none placeholder-stone-400 dark:placeholder-stone-500"></textarea>
</div>
<button type="submit"
class="w-full px-6 py-3 bg-gradient-to-r from-emerald-600 to-lime-600 hover:from-emerald-700 hover:to-lime-700 text-white font-semibold rounded-xl shadow-md hover:shadow-lg transform hover:scale-[1.02] focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-emerald-500 dark:focus:ring-offset-gray-900 transition-all duration-300">
Send Message
</button>
<p id="form-status" class="text-sm text-center mt-4"></p>
</form>
</div>
</div>
</div>
</section>
<footer class="py-8 bg-stone-200 dark:bg-gray-800 transition-colors duration-300">
<div class="container mx-auto px-4 text-center text-stone-600 dark:text-stone-400 text-sm">
<p id="footer-text"></p>
</div>
</footer>
<script>
// --- Data ---
// BURAYI KENDİ BİLGİLERİNLE GÜNCELLE!
const cvData = {
profile: { name: "Cihat Aydın", title: "Software Developer", summary: "'The only thing I know is that I know nothing.' — Socrates", profileImage: "https://avatars.githubusercontent.com/u/44273782?v=4", social: { github: "https://github.com/cihataydin", linkedin: "https://www.linkedin.com/in/cihat-aydin/", twitter: "https://x.com/cihataydintr" } },
skills: [
{ category: "frontend", name: "HTML5", iconSVG: `<svg viewBox="0 0 128 128"><path fill="#E44D26" d="M19.037 113.876L9.032 1.661h109.936l-10.016 112.198-45.019 12.48z"></path><path fill="#F16529" d="M64 116.8l36.378-10.086 8.559-95.878H64z"></path><path fill="#EBEBEB" d="M64 52.455H45.788L44.53 38.361H64V24.599H29.489l.33 3.692 3.382 37.927H64zm0 35.743l-.061.017-15.327-4.14-.979-10.975H33.816l1.928 21.609 28.193 7.826.063-.017z"></path><path fill="#fff" d="M63.952 52.455v13.763h16.947l-1.597 17.849-15.35 4.143v14.319l28.215-7.82.207-2.325 3.234-36.233.335-3.696h-3.708zm0-27.856v13.762h33.244l.276-3.092.628-6.978.329-3.692z"></path></svg>` },
{ category: "frontend", name: "CSS3", iconSVG: `<svg viewBox="0 0 128 128"><path fill="#1572B6" d="M18.814 114.123L8.76 1.352h110.48l-10.064 112.754-45.243 12.543-45.119-12.526z"></path><path fill="#33A9DC" d="M64.001 117.062l36.559-10.136 8.601-96.354h-45.16v106.49z"></path><path fill="#fff" d="M64.001 51.429h18.302l1.264-14.163H64.001V23.435h34.682l-.332 3.711-3.4 38.114h-30.95V51.429z"></path><path fill="#EBEBEB" d="M64.083 87.349l-.061.018-15.403-4.159-.985-11.031H33.752l1.937 21.717 28.331 7.863.063-.018v-14.39z"></path><path fill="#fff" d="M81.127 64.675l-1.666 18.522-15.426 4.164v14.39l28.354-7.858.208-2.337 2.406-26.881H81.127z"></path><path fill="#EBEBEB" d="M64.048 23.435v13.831H30.64l-.277-3.108-.63-7.012-.331-3.711h34.646zm-.047 27.996v13.831H48.792l-.277-3.108-.631-7.012-.33-3.711h16.447z"></path></svg>` },
{ category: "frontend", name: "JavaScript", iconSVG: `<svg viewBox="0 0 128 128"><path fill="#F0DB4F" d="M1.408 1.408h125.184v125.185H1.408z"></path><path fill="#323330" d="M116.347 96.736c-.917-5.711-4.641-10.508-15.672-14.981-3.832-1.761-8.104-3.022-9.377-5.926-.452-1.69-.512-2.642-.226-3.665.821-3.32 4.784-4.355 7.925-3.403 2.023.678 3.938 2.237 5.093 4.724 5.402-3.498 5.391-3.475 9.163-5.879-1.381-2.141-2.118-3.129-3.022-4.045-3.249-3.629-7.676-5.498-14.756-5.355l-3.688.477c-3.534.893-6.902 2.748-8.877 5.235-5.926 6.724-4.236 18.492 2.975 23.335 7.104 5.332 17.54 6.545 18.873 11.531 1.297 6.104-4.486 8.08-10.234 7.378-4.236-.881-6.592-3.034-9.139-6.949-4.688 2.713-4.688 2.713-9.508 5.485 1.143 2.499 2.344 3.63 4.26 5.795 9.068 9.198 31.76 8.746 35.83-5.176.165-.478 1.261-3.666.38-8.581zM69.462 58.943H57.753l-.048 30.272c0 6.438.333 12.34-.714 14.149-1.713 3.558-6.152 3.117-8.175 2.427-2.059-1.012-3.106-2.451-4.319-4.485-.333-.584-.583-1.036-.667-1.071l-9.52 5.83c1.583 3.249 3.915 6.069 6.902 7.901 4.462 2.678 10.459 3.499 16.731 2.059 4.082-1.189 7.604-3.652 9.448-7.401 2.666-4.915 2.094-10.864 2.07-17.444.06-10.735.001-21.468.001-32.237z"></path></svg>` },
{ category: "backend", name: "TypeScript", iconSVG: `<svg viewBox="0 0 128 128"><path fill="#fff" d="M22.67 47h99.67v73.67H22.67z"></path><path data-name="original" fill="#007acc" d="M1.5 63.91v62.5h125v-125H1.5zm100.73-5a15.56 15.56 0 017.82 4.5 20.58 20.58 0 013 4c0 .16-5.4 3.81-8.69 5.85-.12.08-.6-.44-1.13-1.23a7.09 7.09 0 00-5.87-3.53c-3.79-.26-6.23 1.73-6.21 5a4.58 4.58 0 00.54 2.34c.83 1.73 2.38 2.76 7.24 4.86 8.95 3.85 12.78 6.39 15.16 10 2.66 4 3.25 10.46 1.45 15.24-2 5.2-6.9 8.73-13.83 9.9a38.32 38.32 0 01-9.52-.1 23 23 0 01-12.72-6.63c-1.15-1.27-3.39-4.58-3.25-4.82a9.34 9.34 0 011.15-.73L82 101l3.59-2.08.75 1.11a16.78 16.78 0 004.74 4.54c4 2.1 9.46 1.81 12.16-.62a5.43 5.43 0 00.69-6.92c-1-1.39-3-2.56-8.59-5-6.45-2.78-9.23-4.5-11.77-7.24a16.48 16.48 0 01-3.43-6.25 25 25 0 01-.22-8c1.33-6.23 6-10.58 12.82-11.87a31.66 31.66 0 019.49.26zm-29.34 5.24v5.12H56.66v46.23H45.15V69.26H28.88v-5a49.19 49.19 0 01.12-5.17C29.08 59 39 59 51 59h21.83z"></path></svg>` },
{ category: "frontend", name: "Tailwind CSS", iconSVG: `<svg viewBox="0 0 128 128"><path d="M64.004 25.602c-17.067 0-27.73 8.53-32 25.597 6.398-8.531 13.867-11.73 22.398-9.597 4.871 1.214 8.352 4.746 12.207 8.66C72.883 56.629 80.145 64 96.004 64c17.066 0 27.73-8.531 32-25.602-6.399 8.536-13.867 11.735-22.399 9.602-4.87-1.215-8.347-4.746-12.207-8.66-6.27-6.367-13.53-13.738-29.394-13.738zM32.004 64c-17.066 0-27.73 8.531-32 25.602C6.402 81.066 13.87 77.867 22.402 80c4.871 1.215 8.352 4.746 12.207 8.66 6.274 6.367 13.536 13.738 29.395 13.738 17.066 0 27.73-8.53 32-25.597-6.399 8.531-13.867 11.73-22.399 9.597-4.87-1.214-8.347-4.746-12.207-8.66C55.128 71.371 47.868 64 32.004 64zm0 0" fill="#38bdf8"></path></svg>` },
{ category: "backend", name: "Python", iconSVG: `<svg viewBox="0 0 128 128"><linearGradient id="python-original-a" gradientUnits="userSpaceOnUse" x1="70.252" y1="1237.476" x2="170.659" y2="1151.089" gradientTransform="matrix(.563 0 0 -.568 -29.215 707.817)"><stop offset="0" stop-color="#5A9FD4"></stop><stop offset="1" stop-color="#306998"></stop></linearGradient><linearGradient id="python-original-b" gradientUnits="userSpaceOnUse" x1="209.474" y1="1098.811" x2="173.62" y2="1149.537" gradientTransform="matrix(.563 0 0 -.568 -29.215 707.817)"><stop offset="0" stop-color="#FFD43B"></stop><stop offset="1" stop-color="#FFE873"></stop></linearGradient><path fill="url(#python-original-a)" d="M63.391 1.988c-4.222.02-8.252.379-11.8 1.007-10.45 1.846-12.346 5.71-12.346 12.837v9.411h24.693v3.137H29.977c-7.176 0-13.46 4.313-15.426 12.521-2.268 9.405-2.368 15.275 0 25.096 1.755 7.311 5.947 12.519 13.124 12.519h8.491V67.234c0-8.151 7.051-15.34 15.426-15.34h24.665c6.866 0 12.346-5.654 12.346-12.548V15.833c0-6.693-5.646-11.72-12.346-12.837-4.244-.706-8.645-1.027-12.866-1.008zM50.037 9.557c2.55 0 4.634 2.117 4.634 4.721 0 2.593-2.083 4.69-4.634 4.69-2.56 0-4.633-2.097-4.633-4.69-.001-2.604 2.073-4.721 4.633-4.721z" transform="translate(0 10.26)"></path><path fill="url(#python-original-b)" d="M91.682 28.38v10.966c0 8.5-7.208 15.655-15.426 15.655H51.591c-6.756 0-12.346 5.783-12.346 12.549v23.515c0 6.691 5.818 10.628 12.346 12.547 7.816 2.297 15.312 2.713 24.665 0 6.216-1.801 12.346-5.423 12.346-12.547v-9.412H63.938v-3.138h37.012c7.176 0 9.852-5.005 12.348-12.519 2.578-7.735 2.467-15.174 0-25.096-1.774-7.145-5.161-12.521-12.348-12.521h-9.268zM77.809 87.927c2.561 0 4.634 2.097 4.634 4.692 0 2.602-2.074 4.719-4.634 4.719-2.55 0-4.633-2.117-4.633-4.719 0-2.595 2.083-4.692 4.633-4.692z" transform="translate(0 10.26)"></path><radialGradient id="python-original-c" cx="1825.678" cy="444.45" r="26.743" gradientTransform="matrix(0 -.24 -1.055 0 532.979 557.576)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#B8B8B8" stop-opacity=".498"></stop><stop offset="1" stop-color="#7F7F7F" stop-opacity="0"></stop></radialGradient><path opacity=".444" fill="url(#python-original-c)" d="M97.309 119.597c0 3.543-14.816 6.416-33.091 6.416-18.276 0-33.092-2.873-33.092-6.416 0-3.544 14.815-6.417 33.092-6.417 18.275 0 33.091 2.872 33.091 6.417z"></path></svg>` },
{ category: "backend", name: "C#", iconSVG: `<svg viewBox="0 0 128 128"><path fill="#9B4F96" d="M115.4 30.7L67.1 2.9c-.8-.5-1.9-.7-3.1-.7-1.2 0-2.3.3-3.1.7l-48 27.9c-1.7 1-2.9 3.5-2.9 5.4v55.7c0 1.1.2 2.4 1 3.5l106.8-62c-.6-1.2-1.5-2.1-2.4-2.7z"></path><path fill="#68217A" d="M10.7 95.3c.5.8 1.2 1.5 1.9 1.9l48.2 27.9c.8.5 1.9.7 3.1.7 1.2 0 2.3-.3 3.1-.7l48-27.9c1.7-1 2.9-3.5 2.9-5.4V36.1c0-.9-.1-1.9-.6-2.8l-106.6 62z"></path><path fill="#fff" d="M85.3 76.1C81.1 83.5 73.1 88.5 64 88.5c-13.5 0-24.5-11-24.5-24.5s11-24.5 24.5-24.5c9.1 0 17.1 5 21.3 12.5l13-7.5c-6.8-11.9-19.6-20-34.3-20-21.8 0-39.5 17.7-39.5 39.5s17.7 39.5 39.5 39.5c14.6 0 27.4-8 34.2-19.8l-12.9-7.6zM97 66.2l.9-4.3h-4.2v-4.7h5.1L100 51h4.9l-1.2 6.1h3.8l1.2-6.1h4.8l-1.2 6.1h2.4v4.7h-3.3l-.9 4.3h4.2v4.7h-5.1l-1.2 6h-4.9l1.2-6h-3.8l-1.2 6h-4.8l1.2-6h-2.4v-4.7H97zm4.8 0h3.8l.9-4.3h-3.8l-.9 4.3z"></path></svg>` },
{ category: "backend", name: "PHP", iconSVG: `<svg viewBox="0 0 128 128"><path fill="url(#a)" d="M0 64c0 18.593 28.654 33.667 64 33.667 35.346 0 64-15.074 64-33.667 0-18.593-28.655-33.667-64-33.667C28.654 30.333 0 45.407 0 64Z"></path><path fill="#777bb3" d="M64 95.167c33.965 0 61.5-13.955 61.5-31.167 0-17.214-27.535-31.167-61.5-31.167S2.5 46.786 2.5 64c0 17.212 27.535 31.167 61.5 31.167Z"></path><path d="M34.772 67.864c2.793 0 4.877-.515 6.196-1.53 1.306-1.006 2.207-2.747 2.68-5.175.44-2.27.272-3.854-.5-4.71-.788-.874-2.493-1.317-5.067-1.317h-4.464l-2.473 12.732zM20.173 83.547a.694.694 0 0 1-.68-.828l6.557-33.738a.695.695 0 0 1 .68-.561h14.134c4.442 0 7.748 1.206 9.827 3.585 2.088 2.39 2.734 5.734 1.917 9.935-.333 1.711-.905 3.3-1.7 4.724a15.818 15.818 0 0 1-3.128 3.92c-1.531 1.432-3.264 2.472-5.147 3.083-1.852.604-4.232.91-7.07.91h-5.724l-1.634 8.408a.695.695 0 0 1-.682.562z"></path><path fill="#fff" d="M34.19 55.826h3.891c3.107 0 4.186.682 4.553 1.089.607.674.723 2.097.331 4.112-.439 2.257-1.253 3.858-2.42 4.756-1.194.92-3.138 1.386-5.773 1.386h-2.786l2.205-11.342zm6.674-8.1H26.731a1.39 1.39 0 0 0-1.364 1.123L18.81 82.588a1.39 1.39 0 0 0 1.363 1.653h7.35a1.39 1.39 0 0 0 1.363-1.124l1.525-7.846h5.151c2.912 0 5.364-.318 7.287-.944 1.977-.642 3.796-1.731 5.406-3.237a16.522 16.522 0 0 0 3.259-4.087c.831-1.487 1.429-3.147 1.775-4.931.86-4.423.161-7.964-2.076-10.524-2.216-2.537-5.698-3.823-10.349-3.823zM30.301 68.557h4.471c2.963 0 5.17-.557 6.62-1.675 1.451-1.116 2.428-2.98 2.938-5.591.485-2.508.264-4.277-.665-5.308-.931-1.03-2.791-1.546-5.584-1.546h-5.036l-2.743 14.12m10.563-19.445c4.252 0 7.353 1.117 9.303 3.348 1.95 2.232 2.536 5.347 1.76 9.346-.322 1.648-.863 3.154-1.625 4.518-.764 1.366-1.76 2.614-2.991 3.747-1.468 1.373-3.097 2.352-4.892 2.935-1.794.584-4.08.875-6.857.875h-6.296l-1.743 8.97h-7.35l6.558-33.739h14.133"></path><path d="M69.459 74.577a.694.694 0 0 1-.682-.827l2.9-14.928c.277-1.42.209-2.438-.19-2.87-.245-.263-.979-.704-3.15-.704h-5.256l-3.646 18.768a.695.695 0 0 1-.683.56h-7.29a.695.695 0 0 1-.683-.826l6.558-33.739a.695.695 0 0 1 .682-.561h7.29a.695.695 0 0 1 .683.826L64.41 48.42h5.653c4.307 0 7.227.758 8.928 2.321 1.733 1.593 2.275 4.14 1.608 7.573l-3.051 15.702a.695.695 0 0 1-.682.56h-7.407z"></path><path fill="#fff" d="M65.31 38.755h-7.291a1.39 1.39 0 0 0-1.364 1.124l-6.557 33.738a1.39 1.39 0 0 0 1.363 1.654h7.291a1.39 1.39 0 0 0 1.364-1.124l3.537-18.205h4.682c2.168 0 2.624.463 2.641.484.132.14.305.795.019 2.264l-2.9 14.927a1.39 1.39 0 0 0 1.364 1.654h7.408a1.39 1.39 0 0 0 1.363-1.124l3.051-15.7c.715-3.686.103-6.45-1.82-8.217-1.836-1.686-4.91-2.505-9.398-2.505h-4.81l1.421-7.315a1.39 1.39 0 0 0-1.364-1.655zm0 1.39-1.743 8.968h6.496c4.087 0 6.907.714 8.457 2.14 1.553 1.426 2.017 3.735 1.398 6.93l-3.052 15.699h-7.407l2.901-14.928c.33-1.698.208-2.856-.365-3.474-.573-.617-1.793-.926-3.658-.926h-5.829l-3.756 19.327H51.46l6.558-33.739h7.292z"></path><path d="M92.136 67.864c2.793 0 4.878-.515 6.198-1.53 1.304-1.006 2.206-2.747 2.679-5.175.44-2.27.273-3.854-.5-4.71-.788-.874-2.493-1.317-5.067-1.317h-4.463l-2.475 12.732zM77.54 83.547a.694.694 0 0 1-.682-.828l6.557-33.738a.695.695 0 0 1 .682-.561H98.23c4.442 0 7.748 1.206 9.826 3.585 2.089 2.39 2.734 5.734 1.917 9.935a15.878 15.878 0 0 1-1.699 4.724 15.838 15.838 0 0 1-3.128 3.92c-1.53 1.432-3.265 2.472-5.147 3.083-1.852.604-4.232.91-7.071.91h-5.723l-1.633 8.408a.695.695 0 0 1-.683.562z"></path><path fill="#fff" d="M91.555 55.826h3.891c3.107 0 4.186.682 4.552 1.089.61.674.724 2.097.333 4.112-.44 2.257-1.254 3.858-2.421 4.756-1.195.92-3.139 1.386-5.773 1.386h-2.786l2.204-11.342zm6.674-8.1H84.096a1.39 1.39 0 0 0-1.363 1.123l-6.558 33.739a1.39 1.39 0 0 0 1.364 1.653h7.35a1.39 1.39 0 0 0 1.363-1.124l1.525-7.846h5.15c2.911 0 5.364-.318 7.286-.944 1.978-.642 3.797-1.731 5.408-3.238a16.52 16.52 0 0 0 3.258-4.086c.832-1.487 1.428-3.147 1.775-4.931.86-4.423.162-7.964-2.076-10.524-2.216-2.537-5.697-3.823-10.35-3.823zM87.666 68.557h4.47c2.964 0 5.17-.557 6.622-1.675 1.45-1.116 2.428-2.98 2.936-5.591.487-2.508.266-4.277-.665-5.308-.93-1.03-2.791-1.546-5.583-1.546h-5.035Zm10.563-19.445c4.251 0 7.354 1.117 9.303 3.348 1.95 2.232 2.537 5.347 1.759 9.346-.32 1.648-.862 3.154-1.624 4.518-.763 1.366-1.76 2.614-2.992 3.747-1.467 1.373-3.097 2.352-4.892 2.935-1.793.584-4.078.875-6.856.875h-6.295l-1.745 8.97h-7.35l6.558-33.739h14.133"></path><defs><radialGradient id="a" cx="0" cy="0" r="1" gradientTransform="matrix(84.04136 0 0 84.04136 38.426 42.169)" gradientUnits="userSpaceOnUse"><stop stop-color="#AEB2D5"></stop><stop offset=".3" stop-color="#AEB2D5"></stop><stop offset=".75" stop-color="#484C89"></stop><stop offset="1" stop-color="#484C89"></stop></radialGradient></defs></svg>` },
{ category: "backend", name: "NestJS", iconSVG: `<svg viewBox="0 0 128 128"><path fill="#df234f" d="M75.323.4c-.898 0-1.796.199-2.594.498 1.696 1.098 2.594 2.594 3.093 4.29 0 .2.1.4.1.599 0 .2.1.399.1.598.1 2.894-.799 3.293-1.397 4.989-.998 2.194-.698 4.589.499 6.484.1.2.2.5.399.699-1.297-8.38 5.686-9.578 6.983-12.172.1-2.294-1.795-3.79-3.292-4.888C77.718.599 76.52.399 75.324.399ZM85.8 2.194c-.1.798 0 .599-.1.998 0 .299 0 .598-.1.898-.1.299-.1.499-.2.798-.1.3-.199.499-.299.798-.1.2-.2.399-.3.698-.099.1-.199.3-.298.4-.1.1-.1.199-.2.299-.2.2-.3.498-.499.698l-.598.599c-.2.2-.4.399-.599.498-.698.5-1.496.898-2.195 1.397-.2.2-.499.3-.698.499-.2.2-.4.3-.599.499l-.598.598c-.2.2-.4.4-.5.699-.199.2-.299.499-.498.698-.1.3-.2.499-.399.798-.1.3-.2.5-.3.798-.1.3-.199.599-.199.798 0 .1 0 .3-.1.4 0 .1 0 .299-.1.399v1.396c0 .3 0 .5.1.798 0 .3.1.5.2.799s.2.498.3.798c.099.2.199.299.199.499l-7.583-2.894a53.157 53.157 0 0 0-3.79-.997c-.699-.2-1.397-.3-2.096-.5a61.927 61.927 0 0 0-5.986-.897h-.2c-1.995-.2-3.89-.3-5.885-.3-1.497 0-2.894.1-4.29.2-1.996.1-3.99.4-5.986.699l-1.497.299c-.997.2-1.995.399-2.993.698-.499.1-.997.3-1.496.4-.499.199-.998.398-1.397.598-.399.2-.698.3-1.097.499-.1 0-.1 0-.2.1-.3.199-.598.299-.898.498-.1 0-.2.1-.2.1-.398.2-.698.4-.997.499-.2.1-.499.2-.698.3-.1.099-.2.099-.3.199-.299.2-.598.299-.898.498-.299.2-.598.3-.798.5-.2.199-.499.299-.698.498 0 0-.1 0-.1.1-.2.1-.399.3-.598.499l-.1.1c-.2.1-.3.299-.499.399-.1 0-.1.1-.2.1-.199.1-.299.299-.498.398 0 .1-.1.1-.1.1l-.599.599-.1.1-.598.598s0 .1-.1.1l-.499.499c-.1.1-.2.1-.2.2l-.598.598c0 .1-.1.1-.1.2l-.798.797-.1.1c-.498.599-1.097 1.098-1.695 1.597-.599.498-1.198.997-1.896 1.496s-1.297.898-1.995 1.297c-.699.399-1.397.698-2.095.998-.699.299-1.397.598-2.095.798-1.397.3-2.794.898-3.991.997 0-.498-.3-.399-.599-.399-.299.1-.598.1-.798.2-.3.1-.499.2-.798.3a2.96 2.96 0 0 0-.798.398c-.2.2-.499.3-.698.5-.2.199-.5.398-.699.598-.2.2-.499.399-.698.598-.2.2-.4.4-.599.699-.2.299-.399.498-.499.798-.199.2-.299.499-.498.798-.1.3-.3.598-.4.898l-.299.898c-.1.299-.1.498-.2.798v.1c-.1.3-.1.698-.1.898.1-.1.1.1.1.299v.399c0 .2.1.399.1.598.1.2.1.4.2.599.099.2.199.399.398.599.1.2.3.399.4.598.199.2.398.4.598.499.2.2.399.4.598.499.798.698.998.898 1.996 1.496.2.1.299.2.499.3h.1v.2c0 .298.1.498.199.797.1.3.2.599.3.798l.298.599c0 .1.1.1.1.2.1.299.3.498.4.698.199.2.299.499.498.698l.599.599.598.598h.1c.2.2.399.3.599.5s.499.299.698.398c.2.1.499.3.798.4.2.1.4.199.698.199 0 0 .1 0 .1.1.1 0 .3.1.4.1-.1 1.795-.1 3.491.1 4.09.298.698 1.795-1.397 3.192-3.691-.2 2.294-.3 4.988 0 5.786.399.798 2.294-1.796 4.09-4.59 23.345-5.387 44.695 10.775 46.99 33.622-.4-3.592-4.79-5.587-6.884-5.088-.998 2.394-2.694 5.587-5.387 7.482.199-2.195.1-4.39-.3-6.584-.698 2.993-2.095 5.886-4.09 8.28-3.093.2-6.285-1.297-7.882-3.591-.1-.1-.2-.3-.299-.4-.1-.199-.2-.498-.3-.698-.1-.2-.199-.499-.199-.698v-1.197c0-.2.1-.5.2-.699s.1-.499.2-.698c.099-.2.199-.499.398-.698.599-1.597.599-2.894-.499-3.592l-.598-.3c-.1 0-.3-.099-.4-.099s-.199-.1-.299-.1c-.199-.1-.498-.1-.698-.2-.2-.1-.499-.1-.698-.1-.2 0-.5-.099-.699-.099h-.498c-.3 0-.5 0-.699.1-.2 0-.499.1-.698.1-.2.1-.499.1-.699.2-.199.099-.399.199-.698.298l-.599.3c-7.682 4.988-3.092 16.76 2.096 20.152-1.996.4-3.991.798-4.59 1.198l-.1.1c1.397.897 2.894 1.596 4.49 2.194 2.095.699 4.39 1.297 5.387 1.597 2.694.598 5.488.798 8.281.598 14.566-.998 26.538-12.171 28.732-26.737.1.3.1.598.2.898.1.598.2 1.197.3 1.895.1.3.1.599.1.898v.1c0 .3.099.599.099.898 0 .399.1.698.1 1.097v4.19c0 .3-.1.5-.1.799v.299c0 .3-.1.599-.1.998-.1.299-.1.598-.2.898v.1c-.1.299-.1.598-.199.897v.1c-.1.3-.1.599-.2.898v.1l-.299.898v.1c-.1.299-.2.698-.299.997-.1.3-.2.599-.4.998-.099.299-.199.698-.398.997-.1.3-.3.599-.4.998-.099.3-.299.599-.398.898 0 .1-.1.2-.1.2s0 .1-.1.1c-2.095 4.289-5.287 8.08-9.278 11.073-.3.2-.499.4-.798.599-.1.1-.2.1-.2.2-.2.199-.499.299-.698.498l.1.2c.498-.1.898-.1 1.396-.2.898-.1 1.696-.3 2.594-.499.2 0 .5-.1.699-.2.2 0 .299-.1.498-.1s.5-.099.699-.099c.2-.1.399-.1.598-.2 3.293-.797 6.485-1.895 9.578-3.192-5.288 7.183-12.271 12.97-20.452 16.76 3.791-.299 7.582-.897 11.273-1.995a52.469 52.469 0 0 0 31.127-24.941c-1.396 7.582-4.39 14.865-8.879 21.25 3.193-2.095 6.086-4.59 8.78-7.283 7.382-7.682 12.27-17.559 13.867-28.034 1.098 5.188 1.497 10.575.998 15.863 23.844-33.222 1.995-67.641-7.183-76.72 0-.1-.1-.1-.1-.2 0 .4 0 .798-.1 1.198-.1.798-.2 1.496-.3 2.194-.199.699-.398 1.497-.598 2.195-.2.699-.499 1.397-.798 2.095-.3.699-.599 1.397-.998 1.996s-.798 1.297-1.197 1.895c-.399.599-.898 1.197-1.397 1.796-.498.599-.997 1.097-1.596 1.696-.3.3-.598.599-.997.798-.3.2-.5.4-.799.698-.598.5-1.197.898-1.895 1.297-.599.4-1.297.799-1.995 1.098l-2.096.898c-.698.299-1.396.499-2.095.698-.698.2-1.496.4-2.195.499-.798.1-1.496.2-2.194.3-.5 0-1.098.099-1.597.099-.798 0-1.496-.1-2.194-.1-.799-.1-1.497-.2-2.195-.3a7.874 7.874 0 0 1-2.195-.598c.698-.1 1.496-.1 2.195-.299.798-.1 1.496-.3 2.195-.499.698-.2 1.496-.399 2.095-.698l2.095-.898c.698-.3 1.297-.698 1.995-1.097.599-.4 1.297-.898 1.896-1.297.598-.5 1.197-.998 1.696-1.497.598-.499 1.097-1.097 1.596-1.596.499-.599.998-1.197 1.397-1.796.1-.1.1-.2.2-.3.298-.498.697-1.097.997-1.595a18.56 18.56 0 0 0 .997-1.996c.3-.698.6-1.397.799-2.095l.598-2.095c.1-.798.3-1.496.3-2.195.1-.798.1-1.496.1-2.195 0-.498 0-1.097-.1-1.596-.1-.798-.2-1.496-.3-2.195-.1-.798-.3-1.496-.499-2.195-.2-.698-.499-1.396-.698-2.095-.3-.698-.599-1.396-.898-1.995-.399-.698-.698-1.297-1.097-1.995-.4-.599-.898-1.198-1.297-1.796-.499-.599-.998-1.098-1.497-1.696-.299-.3-.598-.599-.898-.798-1.496-1.197-2.993-2.195-4.589-3.193-.2-.1-.399-.2-.698-.3-1.297-1.096-2.295-1.396-3.292-1.795Z"></path></svg>` },
{ category: "backend", name: ".NET", iconSVG: `<svg viewBox="0 0 128 128"><g fill="#623697"><path d="M61.195 0h4.953c12.918.535 25.688 4.89 36.043 12.676 9.809 7.289 17.473 17.437 21.727 28.906 2.441 6.387 3.664 13.18 4.082 19.992v4.211c-.414 11.293-3.664 22.52-9.73 32.082-6.801 10.895-16.922 19.73-28.727 24.828A64.399 64.399 0 0165.082 128h-2.144c-11.735-.191-23.41-3.66-33.297-9.992-11.196-7.113-20.114-17.785-25.028-30.117C1.891 81.19.441 74.02 0 66.812v-4.957c.504-14.39 5.953-28.609 15.41-39.496C23.168 13.31 33.5 6.48 44.887 2.937 50.172 1.27 55.676.41 61.195 0M25.191 37.523c-.03 12.153-.011 24.305-.011 36.454 1.43.011 2.86.011 4.293.011-.075-10.433.101-20.863-.106-31.293.48.907.918 1.84 1.465 2.707C37.035 54.91 43.105 64.5 49.309 74c1.738-.023 3.476-.023 5.214.004-.003-12.16-.007-24.32.004-36.48a308.076 308.076 0 00-4.25-.012c.075 10.32-.136 20.64.125 30.949-6.507-10.352-13.101-20.645-19.695-30.945a370.85 370.85 0 00-5.516.007m38.844-.011c-.129 12.16-.004 24.32-.047 36.476 6.469-.015 12.938.024 19.41-.02a83.36 83.36 0 01.024-3.952c-5.012-.016-10.027.007-15.043-.02-.074-4.21-.004-8.426-.04-12.637 4.395-.078 8.79.012 13.18-.047-.011-1.277-.011-2.554-.019-3.832-4.387.141-8.773-.054-13.164.012.012-4.023.02-8.05.02-12.078 4.699 0 9.398-.02 14.093.012-.008-1.301 0-2.606.016-3.906-6.145-.016-12.29-.008-18.43-.008m22.602.054c.004 1.266.004 2.528.008 3.79 3.488-.04 6.972.109 10.46.035-.023 10.863.004 21.718-.011 32.574 1.46.043 2.93.035 4.39-.09-.12-5.992.118-11.988-.156-17.977.067-2.699-.07-5.394.117-8.09.106-2.14-.277-4.277-.035-6.417 3.516.047 7.035.015 10.55.015a59.774 59.774 0 01.075-3.832c-8.469-.105-16.937-.094-25.398-.008M13.55 69.094c-1.977.91-2.106 4.023-.149 5.027 1.72 1.18 4.305-.371 4.227-2.41.133-2.004-2.29-3.688-4.078-2.617m29.23 15.289c-4.277 3.469-4.226 11.195.5 14.25 2.668 1.695 6.102 1.344 8.922.215.012-.621.027-1.239.05-1.86-2.671 1.395-6.41 1.68-8.675-.61-2.965-3.237-2.297-9.269 1.613-11.476 2.211-1.164 4.907-.824 7.086.239-.007-.66-.004-1.32 0-1.98-3.097-1.099-6.922-1.04-9.496 1.222m17.207 2.71c-1.89.22-3.758 1.22-4.633 2.966-1.253 2.496-1.109 5.867.864 7.96 2.035 2.297 5.945 2.32 8.18.297 2.425-2.308 2.699-6.468.757-9.164-1.148-1.629-3.273-2.183-5.168-2.058m17.887 2.722c-1.66 2.883-1.332 7.25 1.598 9.211 2.183 1.22 4.933.832 7.074-.308-.004-.617.004-1.235.031-1.848-1.687 1.07-3.937 1.856-5.812.777-1.309-.722-1.704-2.257-1.914-3.625 2.875-.039 5.746-.082 8.625-.074-.075-1.828-.118-3.894-1.45-5.308-2.199-2.43-6.644-1.657-8.152 1.175m-8.414-2.336v12.008c.652 0 1.312 0 1.973.004.023-2.195-.04-4.394.023-6.594.016-1.27.527-2.558 1.484-3.414.801-.605 1.883-.27 2.801-.246-.012-.636-.02-1.27-.023-1.902-1.793-.398-3.336.652-4.242 2.117-.02-.633-.04-1.266-.051-1.894-.656-.024-1.313-.051-1.965-.079zm0 0"></path><path d="M58.758 89.223c1.652-.805 4.023-.41 4.945 1.3 1.05 1.887 1.027 4.383-.137 6.211-1.52 2.286-5.527 1.786-6.523-.742-1.008-2.258-.617-5.484 1.715-6.77zm0 0M79.04 92.414c.046-1.574 1.144-3.137 2.726-3.48.976-.164 2.097.007 2.773.793.672.714.813 1.714.98 2.64-2.16.012-4.32-.031-6.48.047zm0 0"></path></g></svg>` },
{ category: "databases", name: "PostgreSQL", iconSVG: `<svg viewBox="0 0 128 128"><path d="M93.809 92.112c.785-6.533.55-7.492 5.416-6.433l1.235.108c3.742.17 8.637-.602 11.513-1.938 6.191-2.873 9.861-7.668 3.758-6.409-13.924 2.873-14.881-1.842-14.881-1.842 14.703-21.815 20.849-49.508 15.543-56.287-14.47-18.489-39.517-9.746-39.936-9.52l-.134.025c-2.751-.571-5.83-.912-9.289-.968-6.301-.104-11.082 1.652-14.709 4.402 0 0-44.683-18.409-42.604 23.151.442 8.841 12.672 66.898 27.26 49.362 5.332-6.412 10.484-11.834 10.484-11.834 2.558 1.699 5.622 2.567 8.834 2.255l.249-.212c-.078.796-.044 1.575.099 2.497-3.757 4.199-2.653 4.936-10.166 6.482-7.602 1.566-3.136 4.355-.221 5.084 3.535.884 11.712 2.136 17.238-5.598l-.22.882c1.474 1.18 1.375 8.477 1.583 13.69.209 5.214.558 10.079 1.621 12.948 1.063 2.868 2.317 10.256 12.191 8.14 8.252-1.764 14.561-4.309 15.136-27.985"></path><path d="M75.458 125.256c-4.367 0-7.211-1.689-8.938-3.32-2.607-2.46-3.641-5.629-4.259-7.522l-.267-.79c-1.244-3.358-1.666-8.193-1.916-14.419-.038-.935-.064-1.898-.093-2.919-.021-.747-.047-1.684-.085-2.664a18.8 18.8 0 01-4.962 1.568c-3.079.526-6.389.356-9.84-.507-2.435-.609-4.965-1.871-6.407-3.82-4.203 3.681-8.212 3.182-10.396 2.453-3.853-1.285-7.301-4.896-10.542-11.037-2.309-4.375-4.542-10.075-6.638-16.943-3.65-11.96-5.969-24.557-6.175-28.693C4.292 23.698 7.777 14.44 15.296 9.129 27.157.751 45.128 5.678 51.68 7.915c4.402-2.653 9.581-3.944 15.433-3.851 3.143.051 6.136.327 8.916.823 2.9-.912 8.628-2.221 15.185-2.139 12.081.144 22.092 4.852 28.949 13.615 4.894 6.252 2.474 19.381.597 26.651-2.642 10.226-7.271 21.102-12.957 30.57 1.544.011 3.781-.174 6.961-.831 6.274-1.295 8.109 2.069 8.607 3.575 1.995 6.042-6.677 10.608-9.382 11.864-3.466 1.609-9.117 2.589-13.745 2.377l-.202-.013-1.216-.107-.12 1.014-.116.991c-.311 11.999-2.025 19.598-5.552 24.619-3.697 5.264-8.835 6.739-13.361 7.709-1.544.33-2.947.474-4.219.474zm-9.19-43.671c2.819 2.256 3.066 6.501 3.287 14.434.028.99.054 1.927.089 2.802.106 2.65.355 8.855 1.327 11.477.137.371.26.747.39 1.146 1.083 3.316 1.626 4.979 6.309 3.978 3.931-.843 5.952-1.599 7.534-3.851 2.299-3.274 3.585-9.86 3.821-19.575l4.783.116-4.75-.57.14-1.186c.455-3.91.783-6.734 3.396-8.602 2.097-1.498 4.486-1.353 6.389-1.01-2.091-1.58-2.669-3.433-2.823-4.193l-.399-1.965 1.121-1.663c6.457-9.58 11.781-21.354 14.609-32.304 2.906-11.251 2.02-17.226 1.134-18.356-11.729-14.987-32.068-8.799-34.192-8.097l-.359.194-1.8.335-.922-.191c-2.542-.528-5.366-.82-8.393-.869-4.756-.08-8.593 1.044-11.739 3.431l-2.183 1.655-2.533-1.043c-5.412-2.213-21.308-6.662-29.696-.721-4.656 3.298-6.777 9.76-6.305 19.207.156 3.119 2.275 14.926 5.771 26.377 4.831 15.825 9.221 21.082 11.054 21.693.32.108 1.15-.537 1.976-1.529a270.708 270.708 0 0110.694-12.07l2.77-2.915 3.349 2.225c1.35.897 2.839 1.406 4.368 1.502l7.987-6.812-1.157 11.808c-.026.265-.039.626.065 1.296l.348 2.238-1.51 1.688-.174.196 4.388 2.025 1.836-2.301z"></path><path fill="#336791" d="M115.731 77.44c-13.925 2.873-14.882-1.842-14.882-1.842 14.703-21.816 20.849-49.51 15.545-56.287C101.924.823 76.875 9.566 76.457 9.793l-.135.024c-2.751-.571-5.83-.911-9.291-.967-6.301-.103-11.08 1.652-14.707 4.402 0 0-44.684-18.408-42.606 23.151.442 8.842 12.672 66.899 27.26 49.363 5.332-6.412 10.483-11.834 10.483-11.834 2.559 1.699 5.622 2.567 8.833 2.255l.25-.212c-.078.796-.042 1.575.1 2.497-3.758 4.199-2.654 4.936-10.167 6.482-7.602 1.566-3.136 4.355-.22 5.084 3.534.884 11.712 2.136 17.237-5.598l-.221.882c1.473 1.18 2.507 7.672 2.334 13.557-.174 5.885-.29 9.926.871 13.082 1.16 3.156 2.316 10.256 12.192 8.14 8.252-1.768 12.528-6.351 13.124-13.995.422-5.435 1.377-4.631 1.438-9.49l.767-2.3c.884-7.367.14-9.743 5.225-8.638l1.235.108c3.742.17 8.639-.602 11.514-1.938 6.19-2.871 9.861-7.667 3.758-6.408z"></path><path fill="#fff" d="M75.957 122.307c-8.232 0-10.84-6.519-11.907-9.185-1.562-3.907-1.899-19.069-1.551-31.503a1.59 1.59 0 011.64-1.55 1.594 1.594 0 011.55 1.639c-.401 14.341.168 27.337 1.324 30.229 1.804 4.509 4.54 8.453 12.275 6.796 7.343-1.575 10.093-4.359 11.318-11.46.94-5.449 2.799-20.951 3.028-24.01a1.593 1.593 0 011.71-1.472 1.597 1.597 0 011.472 1.71c-.239 3.185-2.089 18.657-3.065 24.315-1.446 8.387-5.185 12.191-13.794 14.037-1.463.313-2.792.453-4 .454zM31.321 90.466a6.71 6.71 0 01-2.116-.35c-5.347-1.784-10.44-10.492-15.138-25.885-3.576-11.717-5.842-23.947-6.041-27.922-.589-11.784 2.445-20.121 9.02-24.778 13.007-9.216 34.888-.44 35.813-.062a1.596 1.596 0 01-1.207 2.955c-.211-.086-21.193-8.492-32.768-.285-5.622 3.986-8.203 11.392-7.672 22.011.167 3.349 2.284 15.285 5.906 27.149 4.194 13.742 8.967 22.413 13.096 23.79.648.216 2.62.873 5.439-2.517A245.272 245.272 0 0145.88 73.046a1.596 1.596 0 012.304 2.208c-.048.05-4.847 5.067-10.077 11.359-2.477 2.979-4.851 3.853-6.786 3.853zm69.429-13.445a1.596 1.596 0 01-1.322-2.487c14.863-22.055 20.08-48.704 15.612-54.414-5.624-7.186-13.565-10.939-23.604-11.156-7.433-.16-13.341 1.738-14.307 2.069l-.243.099c-.971.305-1.716-.227-1.997-.849a1.6 1.6 0 01.631-2.025c.046-.027.192-.089.429-.176l-.021.006.021-.007c1.641-.601 7.639-2.4 15.068-2.315 11.108.118 20.284 4.401 26.534 12.388 2.957 3.779 2.964 12.485.019 23.887-3.002 11.625-8.651 24.118-15.497 34.277-.306.457-.81.703-1.323.703zm.76 10.21c-2.538 0-4.813-.358-6.175-1.174-1.4-.839-1.667-1.979-1.702-2.584-.382-6.71 3.32-7.878 5.208-8.411-.263-.398-.637-.866-1.024-1.349-1.101-1.376-2.609-3.26-3.771-6.078-.182-.44-.752-1.463-1.412-2.648-3.579-6.418-11.026-19.773-6.242-26.612 2.214-3.165 6.623-4.411 13.119-3.716C97.6 28.837 88.5 10.625 66.907 10.271c-6.494-.108-11.82 1.889-15.822 5.93-8.96 9.049-8.636 25.422-8.631 25.586a1.595 1.595 0 11-3.19.084c-.02-.727-.354-17.909 9.554-27.916C53.455 9.272 59.559 6.96 66.96 7.081c13.814.227 22.706 7.25 27.732 13.101 5.479 6.377 8.165 13.411 8.386 15.759.165 1.746-1.088 2.095-1.341 2.147l-.576.013c-6.375-1.021-10.465-.312-12.156 2.104-3.639 5.201 3.406 17.834 6.414 23.229.768 1.376 1.322 2.371 1.576 2.985.988 2.396 2.277 4.006 3.312 5.3.911 1.138 1.7 2.125 1.982 3.283.131.23 1.99 2.98 13.021.703 2.765-.57 4.423-.083 4.93 1.45.997 3.015-4.597 6.532-7.694 7.97-2.775 1.29-7.204 2.106-11.036 2.106zm-4.696-4.021c.35.353 2.101.962 5.727.806 3.224-.138 6.624-.839 8.664-1.786 2.609-1.212 4.351-2.567 5.253-3.492l-.5.092c-7.053 1.456-12.042 1.262-14.828-.577a6.162 6.162 0 01-.54-.401c-.302.119-.581.197-.78.253-1.58.443-3.214.902-2.996 5.105zm-45.562 8.915c-1.752 0-3.596-.239-5.479-.71-1.951-.488-5.24-1.957-5.19-4.37.057-2.707 3.994-3.519 5.476-3.824 5.354-1.103 5.703-1.545 7.376-3.67.488-.619 1.095-1.39 1.923-2.314 1.229-1.376 2.572-2.073 3.992-2.073.989 0 1.8.335 2.336.558 1.708.708 3.133 2.42 3.719 4.467.529 1.847.276 3.625-.71 5.006-3.237 4.533-7.886 6.93-13.443 6.93zm-7.222-4.943c.481.372 1.445.869 2.518 1.137 1.631.408 3.213.615 4.705.615 4.546 0 8.196-1.882 10.847-5.594.553-.774.387-1.757.239-2.274-.31-1.083-1.08-2.068-1.873-2.397-.43-.178-.787-.314-1.115-.314-.176 0-.712 0-1.614 1.009a41.146 41.146 0 00-1.794 2.162c-2.084 2.646-3.039 3.544-9.239 4.821-1.513.31-2.289.626-2.674.835zm12.269-7.36a1.596 1.596 0 01-1.575-1.354 8.218 8.218 0 01-.08-.799c-4.064-.076-7.985-1.82-10.962-4.926-3.764-3.927-5.477-9.368-4.699-14.927.845-6.037.529-11.366.359-14.229-.047-.796-.081-1.371-.079-1.769.003-.505.013-1.844 4.489-4.113 1.592-.807 4.784-2.215 8.271-2.576 5.777-.597 9.585 1.976 10.725 7.246 3.077 14.228.244 20.521-1.825 25.117-.385.856-.749 1.664-1.04 2.447l-.257.69c-1.093 2.931-2.038 5.463-1.748 7.354a1.595 1.595 0 01-1.335 1.819l-.244.02zM42.464 42.26l.062 1.139c.176 2.974.504 8.508-.384 14.86-.641 4.585.759 9.06 3.843 12.276 2.437 2.542 5.644 3.945 8.94 3.945h.068c.369-1.555.982-3.197 1.642-4.966l.255-.686c.329-.884.714-1.74 1.122-2.646 1.991-4.424 4.47-9.931 1.615-23.132-.565-2.615-1.936-4.128-4.189-4.627-4.628-1.022-11.525 2.459-12.974 3.837zm9.63-.677c-.08.564 1.033 2.07 2.485 2.271 1.449.203 2.689-.975 2.768-1.539.079-.564-1.033-1.186-2.485-1.388-1.451-.202-2.691.092-2.768.656zm2.818 2.826l-.407-.028c-.9-.125-1.81-.692-2.433-1.518-.219-.29-.576-.852-.505-1.354.101-.736.999-1.177 2.4-1.177.313 0 .639.023.967.069.766.106 1.477.327 2.002.62.91.508.977 1.075.936 1.368-.112.813-1.405 2.02-2.96 2.02zm-2.289-2.732c.045.348.907 1.496 2.029 1.651l.261.018c1.036 0 1.81-.815 1.901-1.082-.096-.182-.762-.634-2.025-.81a5.823 5.823 0 00-.821-.059c-.812 0-1.243.183-1.345.282zm43.605-1.245c.079.564-1.033 2.07-2.484 2.272-1.45.202-2.691-.975-2.771-1.539-.076-.564 1.036-1.187 2.486-1.388 1.45-.203 2.689.092 2.769.655zm-2.819 2.56c-1.396 0-2.601-1.086-2.7-1.791-.115-.846 1.278-1.489 2.712-1.688.316-.044.629-.066.93-.066 1.238 0 2.058.363 2.14.949.053.379-.238.964-.739 1.492-.331.347-1.026.948-1.973 1.079l-.37.025zm.943-3.013c-.276 0-.564.021-.856.061-1.441.201-2.301.779-2.259 1.089.048.341.968 1.332 2.173 1.332l.297-.021c.787-.109 1.378-.623 1.66-.919.443-.465.619-.903.598-1.052-.028-.198-.56-.49-1.613-.49zm3.965 32.843a1.594 1.594 0 01-1.324-2.483c3.398-5.075 2.776-10.25 2.175-15.255-.257-2.132-.521-4.337-.453-6.453.07-2.177.347-3.973.614-5.71.317-2.058.617-4.002.493-6.31a1.595 1.595 0 113.186-.172c.142 2.638-.197 4.838-.525 6.967-.253 1.643-.515 3.342-.578 5.327-.061 1.874.178 3.864.431 5.97.64 5.322 1.365 11.354-2.691 17.411a1.596 1.596 0 01-1.328.708z"></path></svg>` },
{ category: "databases", name: "MongoDB", iconSVG: `<svg viewBox="0 0 128 128"><path fill-rule="evenodd" clip-rule="evenodd" fill="#439934" d="M88.038 42.812c1.605 4.643 2.761 9.383 3.141 14.296.472 6.095.256 12.147-1.029 18.142-.035.165-.109.32-.164.48-.403.001-.814-.049-1.208.012-3.329.523-6.655 1.065-9.981 1.604-3.438.557-6.881 1.092-10.313 1.687-1.216.21-2.721-.041-3.212 1.641-.014.046-.154.054-.235.08l.166-10.051-.169-24.252 1.602-.275c2.62-.429 5.24-.864 7.862-1.281 3.129-.497 6.261-.98 9.392-1.465 1.381-.215 2.764-.412 4.148-.618z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#45A538" d="M61.729 110.054c-1.69-1.453-3.439-2.842-5.059-4.37-8.717-8.222-15.093-17.899-18.233-29.566-.865-3.211-1.442-6.474-1.627-9.792-.13-2.322-.318-4.665-.154-6.975.437-6.144 1.325-12.229 3.127-18.147l.099-.138c.175.233.427.439.516.702 1.759 5.18 3.505 10.364 5.242 15.551 5.458 16.3 10.909 32.604 16.376 48.9.107.318.384.579.583.866l-.87 2.969z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#46A037" d="M88.038 42.812c-1.384.206-2.768.403-4.149.616-3.131.485-6.263.968-9.392 1.465-2.622.417-5.242.852-7.862 1.281l-1.602.275-.012-1.045c-.053-.859-.144-1.717-.154-2.576-.069-5.478-.112-10.956-.18-16.434-.042-3.429-.105-6.857-.175-10.285-.043-2.13-.089-4.261-.185-6.388-.052-1.143-.236-2.28-.311-3.423-.042-.657.016-1.319.029-1.979.817 1.583 1.616 3.178 2.456 4.749 1.327 2.484 3.441 4.314 5.344 6.311 7.523 7.892 12.864 17.068 16.193 27.433z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#409433" d="M65.036 80.753c.081-.026.222-.034.235-.08.491-1.682 1.996-1.431 3.212-1.641 3.432-.594 6.875-1.13 10.313-1.687 3.326-.539 6.652-1.081 9.981-1.604.394-.062.805-.011 1.208-.012-.622 2.22-1.112 4.488-1.901 6.647-.896 2.449-1.98 4.839-3.131 7.182a49.142 49.142 0 01-6.353 9.763c-1.919 2.308-4.058 4.441-6.202 6.548-1.185 1.165-2.582 2.114-3.882 3.161l-.337-.23-1.214-1.038-1.256-2.753a41.402 41.402 0 01-1.394-9.838l.023-.561.171-2.426c.057-.828.133-1.655.168-2.485.129-2.982.241-5.964.359-8.946z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#4FAA41" d="M65.036 80.753c-.118 2.982-.23 5.964-.357 8.947-.035.83-.111 1.657-.168 2.485l-.765.289c-1.699-5.002-3.399-9.951-5.062-14.913-2.75-8.209-5.467-16.431-8.213-24.642a4498.887 4498.887 0 00-6.7-19.867c-.105-.31-.407-.552-.617-.826l4.896-9.002c.168.292.39.565.496.879a6167.476 6167.476 0 016.768 20.118c2.916 8.73 5.814 17.467 8.728 26.198.116.349.308.671.491 1.062l.67-.78-.167 10.052z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#4AA73C" d="M43.155 32.227c.21.274.511.516.617.826a4498.887 4498.887 0 016.7 19.867c2.746 8.211 5.463 16.433 8.213 24.642 1.662 4.961 3.362 9.911 5.062 14.913l.765-.289-.171 2.426-.155.559c-.266 2.656-.49 5.318-.814 7.968-.163 1.328-.509 2.632-.772 3.947-.198-.287-.476-.548-.583-.866-5.467-16.297-10.918-32.6-16.376-48.9a3888.972 3888.972 0 00-5.242-15.551c-.089-.263-.34-.469-.516-.702l3.272-8.84z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#57AE47" d="M65.202 70.702l-.67.78c-.183-.391-.375-.714-.491-1.062-2.913-8.731-5.812-17.468-8.728-26.198a6167.476 6167.476 0 00-6.768-20.118c-.105-.314-.327-.588-.496-.879l6.055-7.965c.191.255.463.482.562.769 1.681 4.921 3.347 9.848 5.003 14.778 1.547 4.604 3.071 9.215 4.636 13.813.105.308.47.526.714.786l.012 1.045c.058 8.082.115 16.167.171 24.251z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#60B24F" d="M65.021 45.404c-.244-.26-.609-.478-.714-.786-1.565-4.598-3.089-9.209-4.636-13.813-1.656-4.93-3.322-9.856-5.003-14.778-.099-.287-.371-.514-.562-.769 1.969-1.928 3.877-3.925 5.925-5.764 1.821-1.634 3.285-3.386 3.352-5.968.003-.107.059-.214.145-.514l.519 1.306c-.013.661-.072 1.322-.029 1.979.075 1.143.259 2.28.311 3.423.096 2.127.142 4.258.185 6.388.069 3.428.132 6.856.175 10.285.067 5.478.111 10.956.18 16.434.008.861.098 1.718.152 2.577z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#A9AA88" d="M62.598 107.085c.263-1.315.609-2.62.772-3.947.325-2.649.548-5.312.814-7.968l.066-.01.066.011a41.402 41.402 0 001.394 9.838c-.176.232-.425.439-.518.701-.727 2.05-1.412 4.116-2.143 6.166-.1.28-.378.498-.574.744l-.747-2.566.87-2.969z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#B6B598" d="M62.476 112.621c.196-.246.475-.464.574-.744.731-2.05 1.417-4.115 2.143-6.166.093-.262.341-.469.518-.701l1.255 2.754c-.248.352-.59.669-.728 1.061l-2.404 7.059c-.099.283-.437.483-.663.722l-.695-3.985z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#C2C1A7" d="M63.171 116.605c.227-.238.564-.439.663-.722l2.404-7.059c.137-.391.48-.709.728-1.061l1.215 1.037c-.587.58-.913 1.25-.717 2.097l-.369 1.208c-.168.207-.411.387-.494.624-.839 2.403-1.64 4.819-2.485 7.222-.107.305-.404.544-.614.812-.109-1.387-.22-2.771-.331-4.158z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#CECDB7" d="M63.503 120.763c.209-.269.506-.508.614-.812.845-2.402 1.646-4.818 2.485-7.222.083-.236.325-.417.494-.624l-.509 5.545c-.136.157-.333.294-.398.477-.575 1.614-1.117 3.24-1.694 4.854-.119.333-.347.627-.525.938-.158-.207-.441-.407-.454-.623-.051-.841-.016-1.688-.013-2.533z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#DBDAC7" d="M63.969 123.919c.178-.312.406-.606.525-.938.578-1.613 1.119-3.239 1.694-4.854.065-.183.263-.319.398-.477l.012 3.64-1.218 3.124-1.411-.495z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#EBE9DC" d="M65.38 124.415l1.218-3.124.251 3.696-1.469-.572z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#CECDB7" d="M67.464 110.898c-.196-.847.129-1.518.717-2.097l.337.23-1.054 1.867z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#4FAA41" d="M64.316 95.172l-.066-.011-.066.01.155-.559-.023.56z"></path></svg>` },
{ category: "databases", name: "Microsoft SQL", iconSVG: `<svg viewBox="0 0 128 128"><defs><linearGradient id="a" x1="-2901.9519" x2="-2061.249" y1="923.573" y2="1420.3311" gradientTransform="matrix(.01102 0 0 -.01102 56.808 125.521)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#909ca9"></stop><stop offset="1" stop-color="#ededee"></stop></linearGradient><linearGradient id="b" x1="-2882.7" x2="-2206.249" y1="10288.81" y2="10288.81" gradientTransform="matrix(.01102 0 0 -.01102 56.808 125.521)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#939fab"></stop><stop offset="1" stop-color="#dcdee1"></stop></linearGradient><radialGradient id="c" cx="-14217.448" cy="7277.7051" r="898.12" gradientTransform="matrix(-.01059 -.0016 -.00321 .02118 -64.462 -130.43)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ee352c"></stop><stop offset="1" stop-color="#a91d22"></stop></radialGradient></defs><path fill="url(#a)" d="m79.363 59.755-25.634 8.37-22.3 9.842-6.24 1.648a135.666 135.666 0 0 1-5.057 4.592c-1.976 1.704-3.816 3.255-5.23 4.378-1.57 1.24-3.895 3.565-5.077 5.038-1.764 2.209-3.158 4.553-3.759 6.355-1.066 3.255-.542 6.549 1.511 9.591 2.636 3.875 7.886 7.828 14.008 10.52 3.12 1.377 8.37 3.14 12.324 4.127 6.567 1.667 19.278 3.47 26.272 3.74 1.414.059 3.313.059 3.39 0 .156-.097 1.241-2.17 2.501-4.746 4.3-8.778 7.4-17.012 9.087-24.046 1.007-4.262 1.801-9.939 2.324-16.662.136-1.88.194-8.177.078-10.308-.175-3.487-.485-6.316-.97-9.086-.077-.408-.096-.776-.057-.796.077-.057.31-.135 3.468-1.046l-.639-1.51zm-5.851 3.43c.233 0 .852 5.947 1.007 9.706.039.795.02 1.318-.02 1.318-.154 0-3.274-1.84-5.501-3.236-1.938-1.22-5.62-3.661-6.2-4.127-.195-.135-.176-.155 1.413-.697 2.693-.91 9.088-2.965 9.3-2.965zm-13.06 4.3c.175 0 .62.252 1.686.911 3.991 2.5 9.417 5.523 11.742 6.53.716.31.794.193-.853 1.318-3.526 2.402-7.924 4.766-13.31 7.149-.95.426-1.745.755-1.764.755-.039 0 .078-.484.233-1.065 1.297-4.825 2.034-9.707 2.073-13.621.02-1.938.02-1.938.194-1.996-.04.02-.02.02 0 .02zm-2.692 1.027c.116.117.038 4.457-.117 5.639a49.361 49.361 0 0 1-1.782 8.428c-.213.717-.407 1.318-.446 1.356-.078.097-2.732-2.5-3.604-3.507-1.511-1.744-2.693-3.487-3.565-5.192-.445-.872-1.143-2.577-1.085-2.635.31-.214 10.521-4.166 10.599-4.089zm-12.672 4.98c.019 0 .038 0 .058.019.039.039.175.35.291.698.62 1.685 2.014 4.165 3.216 5.754 1.318 1.744 3.042 3.605 4.476 4.825.465.387.891.755.949.813.116.117.155.097-3.004 1.299-3.66 1.395-7.652 2.79-12.225 4.262a609.837 609.837 0 0 0-3.274 1.066c-.175.058-.116-.04.387-.834 2.267-3.544 5.715-10.5 7.653-15.422.33-.853.66-1.705.718-1.899.077-.271.174-.368.425-.504.136-.038.272-.077.33-.077zM41.213 75.1c.058.039-.93 2.112-1.899 4.01-1.88 3.663-3.933 7.267-6.684 11.646-.466.755-.91 1.453-.97 1.53-.096.136-.134.097-.445-.503-.659-1.299-1.201-2.965-1.492-4.496-.29-1.511-.232-4.146.098-5.774.25-1.2.232-1.181.813-1.472 2.48-1.26 10.502-5.018 10.58-4.941zm33.422 1.357v.813c0 4.321-.465 10.25-1.143 14.57-.116.756-.213 1.376-.232 1.396 0 0-.562-.155-1.22-.349a49.985 49.985 0 0 1-8.914-3.817c-1.88-1.027-4.61-2.713-4.533-2.79.019-.02.833-.446 1.782-.95 3.798-1.976 7.44-4.107 10.599-6.22 1.182-.794 2.964-2.072 3.351-2.421zm-48.05 5.734c.077 0 .057.155-.059.853a27.507 27.507 0 0 0-.213 2.072c-.155 2.83.31 4.923 1.705 7.79.388.794.698 1.453.678 1.472-.135.117-12.962 3.876-16.992 4.98-1.201.33-2.247.62-2.325.639-.136.04-.155.02-.097-.31.446-2.848 2.616-6.568 5.639-9.707 2.014-2.093 3.623-3.313 6.374-4.882 1.976-1.124 5.018-2.81 5.25-2.887 0-.02.02-.02.04-.02zm30.225 5.406c.02-.02.484.233 1.046.562 4.147 2.403 9.92 4.631 14.841 5.774l.446.097-.62.349c-2.576 1.434-11.044 4.96-19.704 8.195-1.26.465-2.5.93-2.732 1.027-.233.097-.446.155-.446.135 0-.02.349-.697.794-1.53 2.422-4.534 4.863-10.056 6.104-13.892.155-.368.251-.697.27-.717zm-3.08 1.007c.019.02-.136.427-.33.892-1.686 4.088-3.895 8.545-6.724 13.543-.716 1.28-1.317 2.306-1.336 2.306-.02 0-.601-.349-1.299-.775-4.107-2.519-7.75-5.619-10.132-8.622l-.35-.426 1.764-.485c6.316-1.724 11.683-3.584 17.011-5.87.756-.31 1.376-.563 1.395-.563zm19.142 6.685s.02.02 0 0c.02.446-.969 4.437-1.783 7.324-.678 2.422-1.259 4.32-2.325 7.672-.464 1.474-.87 2.693-.89 2.693-.02 0-.136-.018-.253-.057-5.754-1.047-10.908-2.5-15.752-4.437-1.356-.543-3.293-1.415-3.41-1.512-.038-.039 1.124-.581 2.597-1.22 8.816-3.856 17.96-8.235 21.1-10.114.368-.233.658-.349.716-.349zM28.677 96.8c.039.04-2.422 3.585-5.87 8.41-1.202 1.685-2.597 3.661-3.12 4.397a77.468 77.468 0 0 0-1.763 2.597l-.814 1.26-.872-.737c-1.027-.853-2.809-2.674-3.604-3.681-1.666-2.073-2.79-4.263-3.235-6.258-.214-.93-.214-1.396-.02-1.453a1459.3 1459.3 0 0 1 10.308-2.423 861.65 861.65 0 0 0 6.936-1.627c1.124-.271 2.035-.485 2.054-.485zm2.48.95.62.697c2.79 3.12 5.638 5.426 9.087 7.44.62.35 1.085.66 1.046.68-.135.096-11.974 4.3-17.457 6.199a462.501 462.501 0 0 1-5.638 1.957c-.019 0-.194-.117-.387-.252l-.349-.252.562-.814c1.82-2.635 4.107-5.522 9.086-11.528zm15.462 11.063c.019-.02.871.29 1.918.679 2.519.949 4.514 1.55 7.188 2.228 3.294.833 8.06 1.647 10.87 1.88.426.038.658.077.581.135-.136.077-2.984 1.027-5.076 1.685-3.333 1.047-13.505 4.05-21.798 6.433a218.735 218.735 0 0 1-2.925.834c-.194.038-.834-.137-.834-.214 0-.038.465-.639 1.027-1.298 2.79-3.333 5.561-7.053 7.867-10.579.64-.969 1.182-1.764 1.182-1.783zm-3.41.097c.019.02-1.357 2.228-3.76 6.026-1.026 1.608-2.17 3.43-2.576 4.069-.388.62-.97 1.589-1.298 2.131l-.562.988-.291-.077c-.698-.194-5.6-1.919-6.898-2.442a48.226 48.226 0 0 1-4.514-2.072c-1.55-.834-3.487-2.074-3.332-2.113.038-.02 2.693-.736 5.89-1.608 8.485-2.306 13.194-3.642 16.275-4.611.562-.175 1.046-.31 1.065-.29zm24.122 5.657h.02c.077.195-3.062 8.913-4.206 11.664-.251.62-.348.776-.484.756-.329-.02-4.882-.658-7.653-1.065-4.824-.736-12.924-2.151-14.957-2.616l-.466-.097 2.887-.659c6.2-1.395 9.184-2.15 12.207-3.08a86.251 86.251 0 0 0 11.412-4.399c.6-.27 1.104-.484 1.24-.503z"></path><path fill="url(#b)" d="M52.935.001c-.426-.058-7.305 2.422-11.741 4.224-5.988 2.441-10.637 4.766-13.505 6.781-1.066.756-2.403 2.093-2.616 2.616a1.812 1.812 0 0 0-.116.659l2.597 2.46 6.18 1.977 14.706 2.635 16.817 2.887.175-1.453c-.058 0-.097-.02-.155-.02l-2.209-.348-.445-.795c-2.287-4.03-4.805-9.029-6.278-12.4-1.142-2.616-2.228-5.638-2.828-7.808C53.187.098 53.149.02 52.935 0Zm-.31.988h.02c.019.02.096.563.174 1.202.33 2.712.93 5.328 1.88 8.157.716 2.13.716 2.015-.117 1.763-1.976-.542-10.83-2.073-17.244-2.965-1.027-.135-1.899-.27-1.899-.29-.077-.078 4.63-2.538 6.704-3.507 2.654-1.22 9.94-4.263 10.482-4.36ZM33.947 9.67l.756.252c4.108 1.395 14.434 3.372 20.131 3.837.639.058 1.182.116 1.2.116.02.02-.522.31-1.22.639-2.751 1.376-5.774 3.062-7.866 4.36-.62.387-1.182.698-1.26.698-.077 0-.484-.078-.91-.137l-.775-.116-1.938-1.899a803.532 803.532 0 0 0-7.11-6.84zm-.775.601 2.732 3.41c1.492 1.88 3.004 3.72 3.333 4.127.33.407.6.736.58.756-.077.058-3.952-.698-6.005-1.162-2.112-.485-2.984-.718-4.282-1.125l-1.066-.349v-.27c.02-1.3 1.667-3.237 4.456-5.212zm23.212 4.65c.077 0 .174.174.406.697.66 1.453 2.713 5.367 3.217 6.123.155.252.426.272-2.306-.174-6.568-1.066-8.68-1.415-8.68-1.453 0-.02.194-.155.446-.291 2.035-1.124 4.088-2.557 5.91-4.088.445-.368.852-.717.93-.775.019-.039.057-.058.077-.039z"></path><path fill="url(#c)" d="M25.209 13.35s-.426.679-.02 1.687c.252.62.988 1.375 1.822 2.15 0 0 8.621 8.409 9.668 9.61 4.766 5.503 6.84 10.928 7.033 18.407.117 4.805-.794 9.029-3.061 13.931-4.03 8.796-12.536 18.504-25.653 29.276l1.918-.64c1.24-.93 2.926-1.917 6.879-4.087 9.125-5 19.394-9.591 31.988-14.32 18.135-6.82 47.954-14.802 64.926-17.398l1.764-.271-.272-.427c-1.55-2.403-2.616-3.894-3.895-5.483-3.72-4.611-8.233-8.35-13.756-11.45-7.595-4.244-17.418-7.557-29.857-10.017-2.345-.466-7.499-1.357-11.684-1.996a1193.72 1193.72 0 0 1-20.925-3.41c-2.267-.388-5.658-.969-7.905-1.454-1.163-.252-3.39-.775-5.134-1.375-1.395-.543-3.41-1.085-3.837-2.732Zm4.999 4.844c.019-.018.329.098.736.233a50.336 50.336 0 0 0 2.81.853 142.908 142.908 0 0 0 2.557.678c1.162.29 2.131.561 2.15.561.136.136 2.093 6.394 2.752 8.797.252.91.446 1.685.427 1.685-.02.02-.233-.31-.485-.755-2.267-3.991-5.851-8.04-9.998-11.296-.542-.387-.95-.736-.95-.756Zm9.532 2.636c.098 0 .524.058 1.047.174 3.293.736 9.203 1.86 12.98 2.5.64.097 1.144.213 1.144.251 0 .04-.232.175-.523.33-.64.329-3.216 1.86-4.069 2.44-2.15 1.435-4.088 2.985-5.483 4.38-.562.562-1.046 1.027-1.046 1.027s-.116-.33-.214-.736c-.697-2.694-2.15-6.685-3.468-9.495-.213-.445-.387-.852-.387-.89 0 .038 0 .019.02.019zm16.78 3.196c.116.04.31.698.697 2.151a31.732 31.732 0 0 1 .93 8.874c-.039.814-.078 1.57-.117 1.667l-.058.193-1.007-.33c-2.073-.658-5.444-1.646-8.331-2.46-1.647-.446-2.984-.852-2.984-.89 0-.117 2.403-2.52 3.43-3.43 1.956-1.725 7.265-5.832 7.44-5.775zm1.336.194c.058-.058 8.022 1.317 11.645 2.015 2.694.523 6.607 1.337 6.84 1.434.115.039-.291.27-1.59.853-5.115 2.305-8.912 4.378-12.69 6.897-.988.659-1.822 1.202-1.84 1.202-.02 0-.04-.562-.04-1.24 0-3.681-.735-7.402-2.092-10.54-.136-.31-.252-.601-.233-.62zm20.596 4.07c.058.057-.193 1.627-.426 2.557-.698 2.887-2.577 7.169-4.882 11.199-.408.717-.776 1.298-.815 1.317-.038.02-.56-.271-1.162-.62-2.247-1.318-4.805-2.557-7.595-3.72-.775-.33-1.453-.6-1.472-.64-.136-.115 6.103-4.242 9.396-6.219 2.617-1.589 6.88-3.952 6.956-3.875zm1.473.232c.174 0 3.7.968 5.541 1.511 4.553 1.356 9.785 3.274 13.195 4.824l1.414.64-.988.232c-8.33 1.918-15.461 4.128-22.34 6.917-.562.233-1.066.427-1.104.427-.039 0 .155-.446.407-.988 2.073-4.399 3.41-8.99 3.74-12.905.019-.368.077-.658.135-.658zm-35.108 8.06c.058-.058 2.75.581 4.204.988 2.21.62 6.898 2.19 6.898 2.305 0 .02-.523.466-1.143 1.008-2.538 2.112-4.98 4.34-7.906 7.169-.871.833-1.607 1.511-1.646 1.511-.04 0-.058-.116-.04-.271.446-3.255.35-7.44-.27-11.683-.059-.543-.117-1.008-.098-1.027zm56.595.058c.038.039-1.24 2.053-2.054 3.196-1.162 1.667-2.868 3.876-6.723 8.72a1289.453 1289.453 0 0 0-5.076 6.413c-.775.969-1.414 1.782-1.435 1.782-.018 0-.27-.348-.542-.774-2.17-3.256-4.766-6.104-7.847-8.661a44.534 44.534 0 0 0-1.433-1.163c-.214-.155-.388-.31-.388-.33 0-.057 3.293-1.472 5.793-2.479 4.38-1.783 10.346-3.914 14.823-5.29 2.344-.736 4.843-1.453 4.882-1.414zm1.492.387c.077-.019.543.214 1.104.543 4.709 2.693 9.32 6.162 12.962 9.726 1.027 1.008 3.566 3.643 3.527 3.662 0 0-.892.078-1.938.155-8.157.62-18.6 2.344-28.636 4.766-.679.155-1.28.29-1.318.29-.038 0 .717-.755 1.667-1.665 5.89-5.677 8.583-9.261 11.76-15.656.446-.948.833-1.762.872-1.82-.02 0-.02 0 0 0zm-43.149 4.418c.271.058 2.79 1.24 4.689 2.19 1.744.871 4.36 2.266 4.495 2.383.02.019-.91.503-2.054 1.066a135.032 135.032 0 0 0-10.017 5.521c-.93.562-1.705 1.027-1.724 1.027-.078 0-.058-.078.465-1.027 1.744-3.177 3.139-6.975 3.933-10.676.077-.29.155-.484.213-.484zm-2.519.465c.058.058-.6 2.441-1.007 3.74-.795 2.46-2.132 5.54-3.43 7.866-.31.542-.775 1.337-1.027 1.782l-.484.775-1.085-1.046c-1.26-1.22-2.286-1.976-3.603-2.655-.524-.27-.931-.503-.931-.542 0-.155 3.314-3.158 5.852-5.328 1.82-1.57 5.657-4.65 5.715-4.592zm15.404 6.336.95.62c2.17 1.415 4.727 3.294 6.684 4.94 1.104.91 3.235 2.83 3.662 3.294l.232.252-1.57.446c-8.873 2.46-15.732 4.65-23.734 7.595-.892.33-1.647.6-1.705.6-.116 0-.213.097 1.783-1.744 5.115-4.707 9.648-9.9 13.02-14.957zm-4.05 1.007c.04.039-2.615 3.778-4.204 5.89-1.899 2.519-5.27 6.743-7.596 9.494-.968 1.144-1.8 2.093-1.84 2.112-.058.02-.078-.27-.078-.717 0-2.344-.6-4.844-1.646-6.975-.446-.891-.524-1.104-.426-1.201.368-.33 6.006-3.546 9.57-5.464 2.404-1.279 6.162-3.177 6.22-3.139zM44.1 55.26c.058 0 .503.232 1.008.503a21.28 21.28 0 0 1 3.332 2.248c.039.038-.465.446-1.124.93-1.84 1.317-4.63 3.43-6.258 4.728-1.705 1.356-1.763 1.394-1.57 1.104 1.28-1.957 1.919-3.061 2.597-4.476a36.066 36.066 0 0 0 1.627-4.05c.155-.56.349-.987.388-.987zm6.53 5.114c.096-.018.213.156.735.931 1.104 1.647 1.957 3.856 2.17 5.638l.04.387-2.655 1.028c-4.747 1.84-9.126 3.661-12.09 5.018a217.066 217.066 0 0 0-3.236 1.55c-.95.484-1.724.852-1.724.833 0-.02.6-.465 1.336-1.008C41 70.547 46.018 65.935 49.777 61.324c.407-.484.775-.93.813-.949zm-3.004.737c.078.077-2.131 2.577-3.642 4.108-3.74 3.816-7.44 6.8-12.032 9.706-.582.368-1.105.698-1.163.736-.135.078.038-.116 2.054-2.305a52.694 52.694 0 0 0 3.352-3.972c.736-.95.871-1.085 1.937-1.84 2.849-2.055 9.417-6.511 9.494-6.434z"></path></svg>` },
{ category: "databases", name: "MySQL", iconSVG: `<svg viewBox="0 0 128 128"><path fill="#00618A" d="M117.688 98.242c-6.973-.191-12.297.461-16.852 2.379-1.293.547-3.355.559-3.566 2.18.711.746.82 1.859 1.387 2.777 1.086 1.754 2.922 4.113 4.559 5.352 1.789 1.348 3.633 2.793 5.551 3.961 3.414 2.082 7.223 3.27 10.504 5.352 1.938 1.23 3.859 2.777 5.75 4.164.934.684 1.563 1.75 2.773 2.18v-.195c-.637-.812-.801-1.93-1.387-2.777l-2.578-2.578c-2.52-3.344-5.719-6.281-9.117-8.719-2.711-1.949-8.781-4.578-9.91-7.73l-.199-.199c1.922-.219 4.172-.914 5.949-1.391 2.98-.797 5.645-.59 8.719-1.387l4.164-1.187v-.793c-1.555-1.594-2.664-3.707-4.359-5.152-4.441-3.781-9.285-7.555-14.273-10.703-2.766-1.746-6.184-2.883-9.117-4.363-.988-.496-2.719-.758-3.371-1.586-1.539-1.961-2.379-4.449-3.566-6.738-2.488-4.793-4.93-10.023-7.137-15.066-1.504-3.437-2.484-6.828-4.359-9.91-9-14.797-18.687-23.73-33.695-32.508-3.195-1.867-7.039-2.605-11.102-3.57l-6.543-.395c-1.332-.555-2.715-2.184-3.965-2.977C16.977 3.52 4.223-3.312.539 5.672-1.785 11.34 4.016 16.871 6.09 19.746c1.457 2.012 3.32 4.273 4.359 6.539.688 1.492.805 2.984 1.391 4.559 1.438 3.883 2.695 8.109 4.559 11.695.941 1.816 1.98 3.727 3.172 5.352.727.996 1.98 1.438 2.18 2.973-1.227 1.715-1.297 4.375-1.984 6.543-3.098 9.77-1.926 21.91 2.578 29.137 1.383 2.223 4.641 6.98 9.117 5.156 3.918-1.598 3.043-6.539 4.164-10.902.254-.988.098-1.715.594-2.379v.199l3.57 7.133c2.641 4.254 7.324 8.699 11.297 11.699 2.059 1.555 3.68 4.242 6.344 5.152v-.199h-.199c-.516-.805-1.324-1.137-1.98-1.781-1.551-1.523-3.277-3.414-4.559-5.156-3.613-4.902-6.805-10.27-9.711-15.855-1.391-2.668-2.598-5.609-3.77-8.324-.453-1.047-.445-2.633-1.387-3.172-1.281 1.988-3.172 3.598-4.164 5.945-1.582 3.754-1.789 8.336-2.375 13.082-.348.125-.195.039-.398.199-2.762-.668-3.73-3.508-4.758-5.949-2.594-6.164-3.078-16.09-.793-23.191.59-1.836 3.262-7.617 2.18-9.316-.516-1.691-2.219-2.672-3.172-3.965-1.18-1.598-2.355-3.703-3.172-5.551-2.125-4.805-3.113-10.203-5.352-15.062-1.07-2.324-2.875-4.676-4.359-6.738-1.645-2.289-3.484-3.977-4.758-6.742-.453-.984-1.066-2.559-.398-3.566.215-.684.516-.969 1.191-1.191 1.148-.887 4.352.297 5.547.793 3.18 1.32 5.832 2.578 8.527 4.363 1.289.855 2.598 2.512 4.16 2.973h1.785c2.789.641 5.914.195 8.523.988 4.609 1.402 8.738 3.582 12.488 5.949 11.422 7.215 20.766 17.48 27.156 29.734 1.027 1.973 1.473 3.852 2.379 5.945 1.824 4.219 4.125 8.559 5.941 12.688 1.816 4.113 3.582 8.27 6.148 11.695 1.348 1.801 6.551 2.766 8.918 3.766 1.66.699 4.379 1.43 5.949 2.379 3 1.809 5.906 3.965 8.723 5.945 1.402.992 5.73 3.168 5.945 4.957zm-88.605-75.52c-1.453-.027-2.48.156-3.566.395v.199h.195c.695 1.422 1.918 2.34 2.777 3.566l1.98 4.164.199-.195c1.227-.867 1.789-2.25 1.781-4.363-.492-.52-.562-1.164-.992-1.785-.562-.824-1.66-1.289-2.375-1.98zm0 0"></path></svg>` },
{ category: "databases", name: "Redis", iconSVG: `<svg viewBox="0 0 128 128"><path fill="#A41E11" d="M121.8 93.1c-6.7 3.5-41.4 17.7-48.8 21.6-7.4 3.9-11.5 3.8-17.3 1S13 98.1 6.3 94.9c-3.3-1.6-5-2.9-5-4.2V78s48-10.5 55.8-13.2c7.8-2.8 10.4-2.9 17-.5s46.1 9.5 52.6 11.9v12.5c0 1.3-1.5 2.7-4.9 4.4z"></path><path fill="#D82C20" d="M121.8 80.5C115.1 84 80.4 98.2 73 102.1c-7.4 3.9-11.5 3.8-17.3 1-5.8-2.8-42.7-17.7-49.4-20.9C-.3 79-.5 76.8 6 74.3c6.5-2.6 43.2-17 51-19.7 7.8-2.8 10.4-2.9 17-.5s41.1 16.1 47.6 18.5c6.7 2.4 6.9 4.4.2 7.9z"></path><path fill="#A41E11" d="M121.8 72.5C115.1 76 80.4 90.2 73 94.1c-7.4 3.8-11.5 3.8-17.3 1C49.9 92.3 13 77.4 6.3 74.2c-3.3-1.6-5-2.9-5-4.2V57.3s48-10.5 55.8-13.2c7.8-2.8 10.4-2.9 17-.5s46.1 9.5 52.6 11.9V68c0 1.3-1.5 2.7-4.9 4.5z"></path><path fill="#D82C20" d="M121.8 59.8c-6.7 3.5-41.4 17.7-48.8 21.6-7.4 3.8-11.5 3.8-17.3 1C49.9 79.6 13 64.7 6.3 61.5s-6.8-5.4-.3-7.9c6.5-2.6 43.2-17 51-19.7 7.8-2.8 10.4-2.9 17-.5s41.1 16.1 47.6 18.5c6.7 2.4 6.9 4.4.2 7.9z"></path><path fill="#A41E11" d="M121.8 51c-6.7 3.5-41.4 17.7-48.8 21.6-7.4 3.8-11.5 3.8-17.3 1C49.9 70.9 13 56 6.3 52.8c-3.3-1.6-5.1-2.9-5.1-4.2V35.9s48-10.5 55.8-13.2c7.8-2.8 10.4-2.9 17-.5s46.1 9.5 52.6 11.9v12.5c.1 1.3-1.4 2.6-4.8 4.4z"></path><path fill="#D82C20" d="M121.8 38.3C115.1 41.8 80.4 56 73 59.9c-7.4 3.8-11.5 3.8-17.3 1S13 43.3 6.3 40.1s-6.8-5.4-.3-7.9c6.5-2.6 43.2-17 51-19.7 7.8-2.8 10.4-2.9 17-.5s41.1 16.1 47.6 18.5c6.7 2.4 6.9 4.4.2 7.8z"></path><path fill="#fff" d="M80.4 26.1l-10.8 1.2-2.5 5.8-3.9-6.5-12.5-1.1 9.3-3.4-2.8-5.2 8.8 3.4 8.2-2.7L72 23zM66.5 54.5l-20.3-8.4 29.1-4.4z"></path><ellipse fill="#fff" cx="38.4" cy="35.4" rx="15.5" ry="6"></ellipse><path fill="#7A0C00" d="M93.3 27.7l17.2 6.8-17.2 6.8z"></path><path fill="#AD2115" d="M74.3 35.3l19-7.6v13.6l-1.9.8z"></path></svg>` },
{ category: "vcs", name: "Git", iconSVG: `<svg viewBox="0 0 128 128"><path fill="#F34F29" d="M124.737 58.378L69.621 3.264c-3.172-3.174-8.32-3.174-11.497 0L46.68 14.71l14.518 14.518c3.375-1.139 7.243-.375 9.932 2.314 2.703 2.706 3.461 6.607 2.294 9.993l13.992 13.993c3.385-1.167 7.292-.413 9.994 2.295 3.78 3.777 3.78 9.9 0 13.679a9.673 9.673 0 01-13.683 0 9.677 9.677 0 01-2.105-10.521L68.574 47.933l-.002 34.341a9.708 9.708 0 012.559 1.828c3.778 3.777 3.778 9.898 0 13.683-3.779 3.777-9.904 3.777-13.679 0-3.778-3.784-3.778-9.905 0-13.683a9.65 9.65 0 013.167-2.11V47.333a9.581 9.581 0 01-3.167-2.111c-2.862-2.86-3.551-7.06-2.083-10.576L41.056 20.333 3.264 58.123a8.133 8.133 0 000 11.5l55.117 55.114c3.174 3.174 8.32 3.174 11.499 0l54.858-54.858a8.135 8.135 0 00-.001-11.501z"></path></svg>` },
{ category: "vms", name: "Docker", iconSVG: `<svg viewBox="0 0 128 128"><path fill-rule="evenodd" clip-rule="evenodd" fill="#3A4D54" d="M73.8 50.8h11.3v11.5h5.7c2.6 0 5.3-.5 7.8-1.3 1.2-.4 2.6-1 3.8-1.7-1.6-2.1-2.4-4.7-2.6-7.3-.3-3.5.4-8.1 2.8-10.8l1.2-1.4 1.4 1.1c3.6 2.9 6.5 6.8 7.1 11.4 4.3-1.3 9.3-1 13.1 1.2l1.5.9-.8 1.6c-3.2 6.2-9.9 8.2-16.4 7.8-9.8 24.3-31 35.8-56.8 35.8-13.3 0-25.5-5-32.5-16.8l-.1-.2-1-2.1c-2.4-5.2-3.1-10.9-2.6-16.6l.2-1.7h9.6V50.8h11.3V39.6h22.5V28.3h13.5v22.5z"></path><path fill="#00AADA" d="M110.4 55.1c.8-5.9-3.6-10.5-6.4-12.7-3.1 3.6-3.6 13.2 1.3 17.2-2.8 2.4-8.5 4.7-14.5 4.7H18.6c-.6 6.2.5 11.9 3 16.8l.8 1.5c.5.9 1.1 1.7 1.7 2.6 3 .2 5.7.3 8.2.2 4.9-.1 8.9-.7 12-1.7.5-.2.9.1 1.1.5.2.5-.1.9-.5 1.1-.4.1-.8.3-1.3.4-2.4.7-5 1.1-8.3 1.3h-.6c-1.3.1-2.7.1-4.2.1-1.6 0-3.1 0-4.9-.1 6 6.8 15.4 10.8 27.2 10.8 25 0 46.2-11.1 55.5-35.9 6.7.7 13.1-1 16-6.7-4.5-2.7-10.5-1.8-13.9-.1z"></path><path fill="#28B8EB" d="M110.4 55.1c.8-5.9-3.6-10.5-6.4-12.7-3.1 3.6-3.6 13.2 1.3 17.2-2.8 2.4-8.5 4.7-14.5 4.7h-68c-.3 9.5 3.2 16.7 9.5 21 4.9-.1 8.9-.7 12-1.7.5-.2.9.1 1.1.5.2.5-.1.9-.5 1.1-.4.1-.8.3-1.3.4-2.4.7-5.2 1.2-8.5 1.4l-.1-.1c8.5 4.4 20.8 4.3 35-1.1 15.8-6.1 30.6-17.7 40.9-30.9-.2.1-.4.1-.5.2z"></path><path fill="#028BB8" d="M18.7 71.8c.4 3.3 1.4 6.4 2.9 9.3l.8 1.5c.5.9 1.1 1.7 1.7 2.6 3 .2 5.7.3 8.2.2 4.9-.1 8.9-.7 12-1.7.5-.2.9.1 1.1.5.2.5-.1.9-.5 1.1-.4.1-.8.3-1.3.4-2.4.7-5.2 1.2-8.5 1.4h-.4c-1.3.1-2.7.1-4.1.1-1.6 0-3.2 0-4.9-.1 6 6.8 15.5 10.8 27.3 10.8 21.4 0 40-8.1 50.8-26H18.7v-.1z"></path><path fill="#019BC6" d="M23.5 71.8c1.3 5.8 4.3 10.4 8.8 13.5 4.9-.1 8.9-.7 12-1.7.5-.2.9.1 1.1.5.2.5-.1.9-.5 1.1-.4.1-.8.3-1.3.4-2.4.7-5.2 1.2-8.6 1.4 8.5 4.4 20.8 4.3 34.9-1.1 8.5-3.3 16.8-8.2 24.2-14.1H23.5z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#00ACD3" d="M28.4 52.7h9.8v9.8h-9.8v-9.8zm.8.8h.8v8.1h-.8v-8.1zm1.4 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm3-12h9.8v9.8h-9.8v-9.8zm.9.8h.8v8.1h-.8v-8.1zm1.4 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.4 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#23C2EE" d="M39.6 52.7h9.8v9.8h-9.8v-9.8zm.9.8h.8v8.1h-.8v-8.1zm1.4 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.4 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#00ACD3" d="M50.9 52.7h9.8v9.8h-9.8v-9.8zm.8.8h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.4 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#23C2EE" d="M50.9 41.5h9.8v9.8h-9.8v-9.8zm.8.8h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.4 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm3.1 10.4H72v9.8h-9.8v-9.8zm.8.8h.8v8.1H63v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.4 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#00ACD3" d="M62.2 41.5H72v9.8h-9.8v-9.8zm.8.8h.8v8.1H63v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.4 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#23C2EE" d="M62.2 30.2H72V40h-9.8v-9.8zm.8.8h.8v8.1H63V31zm1.5 0h.8v8.1h-.8V31zm1.4 0h.8v8.1h-.8V31zm1.5 0h.8v8.1h-.8V31zm1.5 0h.8v8.1h-.8V31zm1.5 0h.8v8.1h-.8V31z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#00ACD3" d="M73.5 52.7h9.8v9.8h-9.8v-9.8zm.8.8h.8v8.1h-.8v-8.1zm1.4 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1zm1.5 0h.8v8.1h-.8v-8.1z"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#D4EEF1" d="M48.8 78.3c1.5 0 2.7 1.2 2.7 2.7 0 1.5-1.2 2.7-2.7 2.7-1.5 0-2.7-1.2-2.7-2.7 0-1.5 1.2-2.7 2.7-2.7"></path><path fill-rule="evenodd" clip-rule="evenodd" fill="#3A4D54" d="M48.8 79.1c.2 0 .5 0 .7.1-.2.1-.4.4-.4.7 0 .4.4.8.8.8.3 0 .6-.2.7-.4.1.2.1.5.1.7 0 1.1-.9 1.9-1.9 1.9-1.1 0-1.9-.9-1.9-1.9 0-1 .8-1.9 1.9-1.9M1.1 72.8h125.4c-2.7-.7-8.6-1.6-7.7-5.2-5 5.7-16.9 4-20 1.2-3.4 4.9-23 3-24.3-.8-4.2 5-17.3 5-21.5 0-1.4 3.8-21 5.7-24.3.8-3 2.8-15 4.5-20-1.2 1.1 3.5-4.9 4.5-7.6 5.2"></path><path fill="#BFDBE0" d="M56 97.8c-6.7-3.2-10.3-7.5-12.4-12.2-2.5.7-5.5 1.2-8.9 1.4-1.3.1-2.7.1-4.1.1-1.7 0-3.4 0-5.2-.1 6 6 13.6 10.7 27.5 10.8H56z"></path><path fill="#D4EEF1" d="M46.1 89.9c-.9-1.3-1.8-2.8-2.5-4.3-2.5.7-5.5 1.2-8.9 1.4 2.3 1.2 5.7 2.4 11.4 2.9z"></path></svg>` },
{ category: "cloud", name: "AWS", iconSVG: `<svg viewBox="0 0 128 128"><path fill="#f90" d="M108.59 26.148c-1.852 0-3.622.211-5.305.715-1.684.504-3.117 1.223-4.379 2.188a10.829 10.829 0 0 0-3.031 3.453c-.757 1.348-1.137 2.906-1.137 4.676 0 2.187.716 4.25 2.106 6.105 1.386 1.895 3.66 3.324 6.734 4.293l6.106 1.895c2.062.675 3.496 1.391 4.254 2.191.757.801 1.136 1.765 1.136 2.945 0 1.726-.758 3.074-2.191 4-1.43.925-3.492 1.391-6.145 1.391-1.687 0-3.328-.168-5.011-.504a23.102 23.102 0 0 1-4.633-1.476c-.421-.168-.801-.336-1.051-.418a2.357 2.357 0 0 0-.758-.13c-.634 0-.969.423-.969 1.305v2.149a2.919 2.919 0 0 0 .254 1.18c.168.38.629.8 1.305 1.18 1.094.628 2.734 1.179 4.84 1.683 2.105.504 4.297.758 6.484.758 2.15 0 4.129-.297 6.024-.883 1.808-.551 3.367-1.309 4.672-2.36 1.304-1.01 2.316-2.273 3.074-3.707.714-1.429 1.094-3.07 1.094-4.882 0-2.188-.633-4.168-1.938-5.895-1.304-1.727-3.491-3.074-6.523-4.043l-5.98-1.895c-2.23-.713-3.79-1.516-4.634-2.316-.84-.797-1.261-1.808-1.261-2.988 0-1.726.671-2.95 1.98-3.746 1.305-.801 3.199-1.18 5.598-1.18 2.988 0 5.683.547 8.086 1.64.714.337 1.261.508 1.597.508.633 0 .969-.463.969-1.347v-1.98c0-.59-.125-1.051-.379-1.391-.25-.378-.672-.715-1.262-1.051-.422-.254-1.011-.504-1.77-.758a32.528 32.528 0 0 0-2.398-.676c-.886-.168-1.769-.336-2.738-.46a21.347 21.347 0 0 0-2.82-.169zm-86.822.082c-2.316 0-4.508.254-6.57.801-2.063.505-3.831 1.137-5.303 1.895-.59.297-.97.59-1.18.883-.211.296-.293.8-.293 1.476v2.063c0 .882.293 1.304.883 1.304.168 0 .378-.043.674-.125.293-.086.796-.254 1.472-.547a33.416 33.416 0 0 1 4.547-1.433A19.176 19.176 0 0 1 20.547 32c3.242 0 5.513.633 6.863 1.938 1.304 1.303 1.98 3.534 1.98 6.734v3.074c-1.683-.379-3.283-.715-4.843-.926-1.558-.21-3.031-.336-4.461-.336-4.34 0-7.75 1.094-10.316 3.286-2.571 2.187-3.832 5.093-3.832 8.671 0 3.368 1.05 6.063 3.113 8.086 2.066 2.02 4.887 3.032 8.422 3.032 4.97 0 9.097-1.938 12.379-5.813a34.153 34.153 0 0 0 1.304 2.484 13.28 13.28 0 0 0 1.516 1.98c.422.38.844.59 1.266.59.334 0 .714-.128 1.093-.378l2.653-1.77c.546-.42.8-.843.8-1.261a1.86 1.86 0 0 0-.293-.97 22.469 22.469 0 0 1-1.347-3.03c-.297-.925-.465-2.19-.465-3.75h-.086V40c0-4.633-1.176-8.086-3.492-10.36-2.36-2.273-6.025-3.41-11.033-3.41zm19.58 1.012c-.676 0-1.012.379-1.012 1.051 0 .297.129.844.379 1.687l9.894 32.547c.254.8.547 1.387.887 1.641.336.297.84.422 1.598.422h3.62c.759 0 1.347-.125 1.684-.422.34-.293.591-.84.801-1.684l6.485-27.117 6.527 27.16c.168.84.46 1.387.8 1.684.337.292.883.422 1.684.422h3.621c.715 0 1.262-.167 1.598-.422.34-.253.633-.8.887-1.64L90.949 30.02c.168-.46.25-.797.293-1.051.043-.254.086-.466.086-.676 0-.715-.379-1.05-1.055-1.05H86.36c-.757 0-1.308.166-1.644.421-.293.25-.59.8-.84 1.64L76.59 57.517l-6.653-28.211c-.166-.8-.464-1.39-.8-1.64-.336-.298-.884-.423-1.684-.423h-3.367c-.758 0-1.348.167-1.688.422-.335.25-.588.8-.796 1.64l-6.57 27.876-7.075-27.875c-.25-.8-.504-1.39-.84-1.64-.297-.298-.844-.423-1.644-.423h-4.125zM21.64 47.496a31.816 31.816 0 0 1 3.96.25 34.401 34.401 0 0 1 3.872.719v1.765c0 1.435-.168 2.653-.422 3.665-.25 1.01-.758 1.895-1.43 2.695-1.137 1.262-2.484 2.187-4 2.695-1.516.504-2.949.758-4.336.758-1.937 0-3.41-.508-4.422-1.559-1.054-1.01-1.558-2.484-1.558-4.464 0-2.106.675-3.704 2.062-4.84 1.391-1.137 3.454-1.684 6.274-1.684zM118 73.348c-4.432.063-9.664 1.052-13.621 3.832-1.223.883-1.012 2.062.336 1.894 4.508-.547 14.44-1.726 16.21.547 1.77 2.23-1.976 11.62-3.663 15.79-.504 1.26.59 1.769 1.726.8 7.41-6.231 9.348-19.242 7.832-21.137-.757-.925-4.388-1.79-8.82-1.726zM1.63 75.859c-.926.116-1.347 1.236-.368 2.121 16.508 14.902 38.359 23.872 62.613 23.872 17.305 0 37.43-5.43 51.281-15.66 2.273-1.689.298-4.254-2.02-3.204-15.533 6.57-32.421 9.77-47.788 9.77-22.778 0-44.8-6.273-62.653-16.633-.39-.231-.755-.304-1.064-.266z"></path></svg>` },
{ category: "cloud", name: "Azure", iconSVG: `<svg viewBox="0 0 128 128"><defs><linearGradient id="azure-original-a" x1="60.919" y1="9.602" x2="18.667" y2="134.423" gradientUnits="userSpaceOnUse"><stop stop-color="#114A8B"></stop><stop offset="1" stop-color="#0669BC"></stop></linearGradient><linearGradient id="azure-original-b" x1="74.117" y1="67.772" x2="64.344" y2="71.076" gradientUnits="userSpaceOnUse"><stop stop-opacity=".3"></stop><stop offset=".071" stop-opacity=".2"></stop><stop offset=".321" stop-opacity=".1"></stop><stop offset=".623" stop-opacity=".05"></stop><stop offset="1" stop-opacity="0"></stop></linearGradient><linearGradient id="azure-original-c" x1="68.742" y1="5.961" x2="115.122" y2="129.525" gradientUnits="userSpaceOnUse"><stop stop-color="#3CCBF4"></stop><stop offset="1" stop-color="#2892DF"></stop></linearGradient></defs><path d="M46.09.002h40.685L44.541 125.137a6.485 6.485 0 01-6.146 4.413H6.733a6.482 6.482 0 01-5.262-2.699 6.474 6.474 0 01-.876-5.848L39.944 4.414A6.488 6.488 0 0146.09 0z" fill="url(#azure-original-a)" transform="translate(.587 4.468) scale(.91904)"></path><path d="M97.28 81.607H37.987a2.743 2.743 0 00-1.874 4.751l38.1 35.562a5.991 5.991 0 004.087 1.61h33.574z" fill="#0078d4"></path><path d="M46.09.002A6.434 6.434 0 0039.93 4.5L.644 120.897a6.469 6.469 0 006.106 8.653h32.48a6.942 6.942 0 005.328-4.531l7.834-23.089 27.985 26.101a6.618 6.618 0 004.165 1.519h36.396l-15.963-45.616-46.533.011L86.922.002z" fill="url(#azure-original-b)" transform="translate(.587 4.468) scale(.91904)"></path><path d="M98.055 4.408A6.476 6.476 0 0091.917.002H46.575a6.478 6.478 0 016.137 4.406l39.35 116.594a6.476 6.476 0 01-6.137 8.55h45.344a6.48 6.48 0 006.136-8.55z" fill="url(#azure-original-c)" transform="translate(.587 4.468) scale(.91904)"></path></svg>` },
{ category: "vcs", name: "Azure DevOps", iconSVG: `<svg viewBox="0 0 128 128"><defs><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="9" y1="16.97" x2="9" y2="1.03" gradientTransform="scale(7.11111)"><stop offset="0" stop-color="#0078d4"></stop><stop offset=".16" stop-color="#1380da"></stop><stop offset=".53" stop-color="#3c91e5"></stop><stop offset=".82" stop-color="#559cec"></stop><stop offset="1" stop-color="#5ea0ef"></stop></linearGradient></defs><path fill="url(#a)" d="M120.89 28.445v69.262l-28.445 23.324-44.09-16.07v15.93L23.395 88.25l72.746 5.688V31.574ZM96.64 31.93 55.82 7.11v16.285L18.348 34.418 7.109 48.852v32.785l16.075 7.11V46.718Zm0 0"></path></svg>` },
],
experiences: [
{ period: "2023 - Present", title: "Backend Developer", company: "Milvus Robotics", description: "Robotic Management Interface...", technologies: ["TypeScript", "JavaScript", "Node.js", "NestJS", "TypeORM", "MongoDB", "PostgreSQL", "JEST", "NATS", "Docker", "Redis", "Grafana", "Prometheus", "Loki", "AWS", "Render"], color: "sky" },
{ period: "2022 - 2023", title: "Backend Developer", company: "Nevotek", description: "Hospitality System Design...", technologies: [".NET Framework", "ASP.NET", ".NET Core", "JavaScript", "HTML", "CSS", "Microsoft SQL", "Azure", "TFS"], color: "emerald" },
{ period: "2021 - 2022", title: "Full Stack Developer", company: "Jetklinik.com", description: "Online Therapy Platform Interface...", technologies: ["Html", "CSS", "JavaScript", "Bootstrap", "PHP", "Code Igniter 4", "MySQL", "Redis", "Docker", "AWS"], color: "lime" },
{ period: "2020 - 2021", title: "Junior Software Development Specialist", company: "Faturamatik Elektronik Para ve Ödeme Kuruluşu A.Ş.", description: "Payment System Design...", technologies: ["HTML", "JavaScript", "jQuery", "Syncfusion", ".NET", "ABP Framework", "Identity Server 4", "Redis", "Docker", "Azure DevOps"], color: "amber" },
{ period: "2019 - 2020", title: "Intern", company: "Bilge Adam", description: ".NET Developer from Zero to Hero...", technologies: ["HTML", "CSS", "JavaScript", "jQuery", ".NET", "ASP.NET", "Bootstrap", "Microsoft SQL", "Git", "GitHub", "Azure DevOps"], color: "rose" },
],
contact: { email: "cihataydin.tr@gmail.com", phone: "How about we get to know each other first?", location: "Eskişehir, Turkey" }
};
// --- Theme Toggle ---
const themeToggleBtn = document.getElementById('theme-toggle');
const sunIcon = document.getElementById('theme-toggle-sun-icon');
const moonIcon = document.getElementById('theme-toggle-moon-icon');
if (localStorage.getItem('color-theme') === 'dark' || (!('color-theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches))
{
document.documentElement.classList.add('dark'); moonIcon?.classList.remove('hidden');
} else
{
document.documentElement.classList.remove('dark'); sunIcon?.classList.remove('hidden');
}
themeToggleBtn?.addEventListener('click', function ()
{
sunIcon?.classList.toggle('hidden');
moonIcon?.classList.toggle('hidden');
if (localStorage.getItem('color-theme'))
{
if (localStorage.getItem('color-theme') === 'light') { document.documentElement.classList.add('dark'); localStorage.setItem('color-theme', 'dark'); }
else { document.documentElement.classList.remove('dark'); localStorage.setItem('color-theme', 'light'); }
} else
{
if (document.documentElement.classList.contains('dark')) { document.documentElement.classList.remove('dark'); localStorage.setItem('color-theme', 'light'); }
else { document.documentElement.classList.add('dark'); localStorage.setItem('color-theme', 'dark'); }
}
});
// --- DOM Content Loaded ---
document.addEventListener('DOMContentLoaded', function ()
{
// --- Populate Profile, Socials, Contact, Footer ---
const profileNameEl = document.getElementById('profile-name'); const profileTitleEl = document.getElementById('profile-title'); const profileSummaryEl = document.getElementById('profile-summary'); const profileImageEl = document.getElementById('profile-image'); const socialGithubEl = document.getElementById('social-github'); const socialLinkedinEl = document.getElementById('social-linkedin'); const socialTwitterEl = document.getElementById('social-twitter'); const contactEmailEl = document.getElementById('contact-email'); const contactPhoneEl = document.getElementById('contact-phone'); const contactLocationEl = document.getElementById('contact-location'); const footerTextEl = document.getElementById('footer-text');
if (profileNameEl) profileNameEl.textContent = cvData.profile.name; if (profileTitleEl) profileTitleEl.textContent = cvData.profile.title; if (profileSummaryEl) profileSummaryEl.textContent = cvData.profile.summary; if (profileImageEl) { profileImageEl.src = cvData.profile.profileImage; profileImageEl.alt = `${cvData.profile.name} - Profile Image`; } if (cvData.profile.social.github && socialGithubEl) socialGithubEl.href = cvData.profile.social.github; else socialGithubEl?.remove(); if (cvData.profile.social.linkedin && socialLinkedinEl) socialLinkedinEl.href = cvData.profile.social.linkedin; else socialLinkedinEl?.remove(); if (cvData.profile.social.twitter && socialTwitterEl) socialTwitterEl.href = cvData.profile.social.twitter; else socialTwitterEl?.remove(); if (contactEmailEl) { contactEmailEl.textContent = cvData.contact.email; contactEmailEl.href = `mailto:${cvData.contact.email}`; } if (cvData.contact.phone && contactPhoneEl) contactPhoneEl.textContent = cvData.contact.phone; else contactPhoneEl?.closest('div.flex')?.remove(); if (contactLocationEl) contactLocationEl.textContent = cvData.contact.location; if (footerTextEl) footerTextEl.innerHTML = `© ${new Date().getFullYear()} ${cvData.profile.name} | All rights reserved.`;
// --- Populate Experiences ---
const experienceContainer = document.querySelector('#experience .max-w-3xl');
if (experienceContainer && cvData.experiences)
{
experienceContainer.innerHTML = cvData.experiences.map((exp, index) =>
{
const color = exp.color || 'gray';
return `<article class="timeline-item group relative flex flex-col md:flex-row items-start mb-12 md:mb-16 ${index % 2 === 0 ? 'md:flex-row-reverse' : ''}"><div class="timeline-date w-full md:w-5/12 ${index % 2 === 0 ? 'md:pl-10' : 'md:pr-10 md:text-right'} mb-4 md:mb-0"><div class="sticky top-20"><span class="block text-sm font-semibold text-${color}-600 dark:text-${color}-400 mb-1">${exp.period}</span><h3 class="text-xl font-bold text-stone-800 dark:text-white">${exp.title}</h3><p class="text-md font-medium text-stone-600 dark:text-stone-400">${exp.company}</p></div></div><div class="timeline-content w-full md:w-7/12 ${index % 2 === 0 ? 'md:pr-10' : 'md:pl-10'} pl-10 md:pl-0 md:pr-0 relative"><div class="absolute top-0 bottom-0 left-4 w-0.5 bg-gradient-to-b from-${color}-200 to-transparent dark:from-${color}-700/50 md:hidden"></div><div class="bg-white dark:bg-gray-800 p-6 rounded-lg shadow-md relative border border-stone-200 dark:border-gray-700/50"><p class="text-stone-700 dark:text-stone-300 leading-relaxed mb-4">${exp.description}</p><div class="flex flex-wrap gap-2">${exp.technologies.map(tech => `<span class="px-3 py-1 rounded-full text-xs font-medium bg-${color}-100 text-${color}-800 dark:bg-${color}-900/50 dark:text-${color}-300">${tech}</span>`).join('')}</div></div></div></article>`;
}).join('');
}
// --- Populate Skills ---
const skillCategories = {
frontend: { el: document.getElementById('skills-frontend'), titleEl: document.getElementById('skills-frontend-title'), iconEl: document.getElementById('skills-frontend-icon'), color: 'emerald' },
backend: { el: document.getElementById('skills-backend'), titleEl: document.getElementById('skills-backend-title'), iconEl: document.getElementById('skills-backend-icon'), color: 'lime' },
'databases': { el: document.getElementById('skills-databases'), titleEl: document.getElementById('skills-databases-title'), iconEl: document.getElementById('skills-databases-icon'), color: 'amber' },
'vcs': { el: document.getElementById('skills-vcs'), titleEl: document.getElementById('skills-vcs-title'), iconEl: document.getElementById('skills-vcs-icon'), color: 'orange' },
'vms': { el: document.getElementById('skills-vms'), titleEl: document.getElementById('skills-vms-title'), iconEl: document.getElementById('skills-vms-icon'), color: 'blue' },
'cloud': { el: document.getElementById('skills-cloud'), titleEl: document.getElementById('skills-cloud-title'), iconEl: document.getElementById('skills-cloud-icon'), color: 'purple' }
};
Object.values(skillCategories).forEach(cat =>
{
if (cat.el) cat.el.innerHTML = '';
if (cat.titleEl) cat.titleEl.classList.add(`border-${cat.color}-500`, `dark:border-${cat.color}-400`);
if (cat.iconEl) cat.iconEl.classList.add(`text-${cat.color}-600`, `dark:text-${cat.color}-400`);
if (cat.el) cat.el.className = 'grid grid-cols-1 gap-y-3';
});
cvData.skills.forEach(skill =>
{
const categoryInfo = skillCategories[skill.category];
if (categoryInfo && categoryInfo.el)
{
const skillElement = document.createElement('div');
skillElement.className = 'flex items-center space-x-3 bg-white dark:bg-gray-700/60 p-3 rounded-lg shadow-sm hover:shadow-md transition-shadow duration-300 border border-stone-100 dark:border-gray-700';
skillElement.innerHTML = `
<div class="w-8 h-8 flex-shrink-0 flex items-center justify-center text-stone-600 dark:text-stone-300 overflow-hidden">
${skill.iconSVG ? skill.iconSVG : `<span class="text-xl font-bold">${skill.name.substring(0, 1)}</span>`}
</div>
<span class="text-sm font-medium text-stone-700 dark:text-stone-200 flex-1 min-w-0 break-words">${skill.name}</span>
`;
categoryInfo.el.appendChild(skillElement);
}
});
// --- Contact Form Submit ---
const contactForm = document.querySelector('#contact form');
const formStatus = document.getElementById('form-status');
if (contactForm && formStatus)
{
contactForm.addEventListener('submit', function (e)
{
//e.preventDefault();
formStatus.textContent = 'Sending your message...';
formStatus.className = 'text-sm text-center mt-4 text-emerald-600 dark:text-emerald-400';
setTimeout(() =>
{
formStatus.textContent = 'Your message has been sent successfully.';
formStatus.className = 'text-sm text-center mt-4 text-lime-600 dark:text-lime-400';
contactForm.reset();
}, 1500);
});
}
if (typeof tsParticles !== 'undefined')
{ // Kütüphanenin yüklendiğinden emin ol
tsParticles.load("particles-js", {
fpsLimit: 60, // Performans için limit
particles: {
number: {
value: 80, // Parçacık sayısı
density: {
enable: true,
value_area: 800 // Yoğunluk alanı
}
},
color: {
// Renkleri Forest Canopy paletine uygun seçelim
value: ["#34d399", "#a3e635", "#f5f5f4"] // emerald-400, lime-500, stone-100
},
shape: {
type: "circle" // veya "triangle", "star" vb.
},
opacity: {
value: 0.6, // Hafif yarı saydam
random: true,
anim: {
enable: true,
speed: 1,
opacity_min: 0.1,
sync: false
}
},
size: {
value: 3,
random: true,
anim: {
enable: false // Boyut animasyonu genellikle rahatsız edici olabilir
}
},
links: {
// Bağlantı çizgilerinin rengi
color: "#a8a29e", // stone-400
distance: 150,
enable: true,
opacity: 0.4,
width: 1
},
move: {
enable: true,
speed: 1.5, // Hareket hızı
direction: "none", // Rastgele yön
random: true,
straight: false,
out_mode: "out", // Ekran dışına çıkınca kaybolsun
bounce: false, // Kenarlardan sekmesin
}
},
interactivity: {
detect_on: "canvas",
events: {
onhover: {
enable: true,
mode: "grab" // Fare üzerine gelince yakala/bağlantı kur
},
onclick: {
enable: true,
mode: "push" // Tıklayınca it
},
resize: true
},
modes: {
grab: {
distance: 140,
line_linked: {
opacity: 1
}
},
bubble: { // Alternatif mode: "bubble"
distance: 400,
size: 40,
duration: 2,
opacity: 8,
speed: 3
},
repulse: { // Alternatif mode: "repulse"
distance: 200,
duration: 0.4
},
push: {
particles_nb: 4 // Tıklayınca eklenecek parçacık sayısı
},
remove: {
particles_nb: 2
}
}
},
retina_detect: true // Yüksek çözünürlüklü ekranlarda daha iyi görünüm
});
}
}); // End DOMContentLoaded
</script>
</body>
</html>