-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmen.html
More file actions
625 lines (576 loc) · 85.7 KB
/
men.html
File metadata and controls
625 lines (576 loc) · 85.7 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
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>منتایمر</title>
<!-- Tailwind CSS CDN -->
<script src="https://cdn.tailwindcss.com"></script>
<!-- Google Fonts: Vazirmatn for Persian text -->
<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=Vazirmatn:wght@400;700&display=swap" rel="stylesheet">
<style>
html, body {
height: 100%;
overflow: hidden;
}
body {
font-family: 'Vazirmatn', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transition: background-color 0.5s ease;
}
.timer-path-progress {
transition: stroke-dashoffset 1s linear;
}
.subtle-textarea {
background-color: #374151;
border: none; outline: none; border-radius: 0.5rem;
resize: none; padding: 0.5rem;
}
.subtle-textarea:focus {
background-color: #4b5563;
box-shadow: 0 0 0 2px #3b82f6;
}
.subtle-textarea::placeholder { color: #9ca3af; }
.gif-background {
position: absolute; top: 0; left: 0;
width: 100%; height: 100%;
background-size: cover; background-position: center;
z-index: 1;
transition: opacity 0.3s ease;
}
.modal-container {
transition: opacity 0.3s ease-in-out;
}
.modal-content {
transition: all 0.3s ease-in-out;
}
.player-profile-wrapper, #add-profile-btn {
transition: all 0.4s ease-in-out;
}
/* Animations */
@keyframes pulse-warning { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.03); } }
.pulse-warning { animation: pulse-warning 1.5s infinite ease-in-out; }
@keyframes shake-alarm { 0% { transform: translate(1px, 1px) rotate(0deg); } 10% { transform: translate(-1px, -2px) rotate(-1deg); } 20% { transform: translate(-3px, 0px) rotate(1deg); } 30% { transform: translate(3px, 2px) rotate(0deg); } 40% { transform: translate(1px, -1px) rotate(1deg); } 50% { transform: translate(-1px, 2px) rotate(-1deg); } 60% { transform: translate(-3px, 1px) rotate(0deg); } 70% { transform: translate(3px, 1px) rotate(-1deg); } 80% { transform: translate(-1px, -1px) rotate(1deg); } 90% { transform: translate(1px, 2px) rotate(0deg); } 100% { transform: translate(1px, -2px) rotate(-1deg); } }
.shake-alarm { animation: shake-alarm 0.5s infinite; }
@keyframes flash-red-bg { 0%, 100% { background-color: #7f1d1d; } 50% { background-color: #b91c1c; } }
.flash-red { animation: flash-red-bg 0.5s infinite; }
@keyframes summer-breeze { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
</style>
</head>
<body class="bg-gray-900 text-gray-200 flex flex-col h-screen">
<!-- Header -->
<header id="main-header" class="relative flex-col-reverse lg:flex-row lg:row-auto w-full mx-auto px-4 lg:px-24 py-4 top-0 left-0 right-0 z-30 flex justify-between items-center transition-opacity duration-400">
<div id="logo-container" class="hidden lg:block w-56 transition-opacity duration-400">
<svg class="w-full" viewBox="0 0 286 153" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M31.8074 10.3546C32.0239 7.01705 33.5214 4.23456 36.422 2.76568C39.2963 1.28831 43.3373 1.24523 47.2042 2.49946C51.0712 3.75369 54.3175 6.16037 55.7775 9.04358C57.2638 11.9353 56.843 15.067 55.0594 17.8963C55.0594 17.8963 55.0594 17.8963 55.0594 17.8963C54.82 18.0892 54.4523 18.7338 54.1491 19.1979C50.7457 24.6643 47.6977 31.4566 47.1503 35.945C46.6953 38.7282 48.6846 42.5402 52.2079 45.2308C52.6746 45.6056 53.2611 45.9923 53.6573 46.2759C54.044 46.4866 54.3633 46.8905 54.5605 47.3381C54.7568 47.7893 54.8148 48.2475 54.7063 48.6724C54.5978 49.0973 54.3273 49.4716 53.9387 49.7734C53.551 50.0718 53.0771 50.2731 52.6367 50.2726C52.6367 50.2726 52.6367 50.2726 52.6367 50.2726C51.7552 50.2067 51.0385 50.1201 50.2643 49.9902C45.0075 49.1067 38.8762 46.2753 35.4375 39.8156C30.9111 29.9274 31.3604 21.5962 31.5721 12.939C31.6259 12.1173 31.6513 11.4047 31.8074 10.3546Z" fill="#DFB7AC" fill-opacity="0.8"/><path d="M6.12354 97.285C4.49145 100.204 4.23629 103.354 5.87284 106.163C7.48275 108.966 10.8514 111.198 14.7791 112.247C18.7068 113.295 22.7398 113.039 25.5323 111.413C28.3515 109.793 29.7002 106.935 29.7406 103.591C29.7406 103.591 29.7406 103.591 29.7406 103.591C29.6445 103.299 29.6862 102.558 29.6839 102.004C29.7978 95.5653 30.9306 88.2072 32.9104 84.1421C34.0411 81.5585 37.7827 79.4397 42.2024 79.0959C42.7979 79.0349 43.5003 79.0291 43.987 79.0063C44.4262 79.0396 44.9137 78.8741 45.3226 78.6055C45.7325 78.3334 46.0302 77.9804 46.1701 77.5647C46.3099 77.1491 46.2862 76.6878 46.1241 76.2233C45.9608 75.7622 45.6724 75.3356 45.3025 75.0967C45.3025 75.0967 45.3025 75.0967 45.3025 75.0967C44.5267 74.6729 43.878 74.3561 43.1574 74.0444C38.2646 71.9292 31.579 70.9737 25.1818 74.5274C16.0083 80.3679 11.8578 87.6056 7.33062 94.9877C6.92921 95.7067 6.56314 96.3187 6.12354 97.285Z" fill="#DFB7AC" fill-opacity="0.8"/><path d="M46.1206 129.037C47.6591 132.018 50.1412 133.964 53.3896 134.111C56.6166 134.279 60.3447 132.635 63.385 129.877C66.4254 127.119 68.4231 123.568 68.57 120.34C68.7383 117.093 67.0429 114.433 64.2253 112.613C64.2253 112.613 64.2253 112.613 64.2253 112.613C64.249 112.702 64.0833 112.58 63.9995 112.547C63.8868 112.482 63.7885 112.432 63.6731 112.361C63.4546 112.234 63.2194 112.084 62.9945 111.942C57.888 108.568 52.873 104.194 49.8632 99.4695C48.0391 96.9128 47.2946 92.9817 48.1384 88.9144C48.2438 88.3577 48.4346 87.717 48.5346 87.288C48.6972 86.8829 48.6866 86.3698 48.557 85.9004C48.4244 85.4287 48.1835 85.0393 47.8355 84.779C47.4874 84.5187 47.0458 84.3977 46.5559 84.4038C46.069 84.4122 45.5738 84.5471 45.2312 84.8176C45.2312 84.8176 45.2312 84.8176 45.2312 84.8176C44.5909 85.4194 44.1152 85.9068 43.6106 86.4795C40.1913 90.3578 37.7093 95.8485 37.9022 102.142C38.2016 111.275 41.1434 119.121 44.8559 126.771C45.2364 127.5 45.5091 128.099 46.1206 129.037Z" fill="#DFB7AC" fill-opacity="0.5"/><path d="M82.8914 4.58032C85.8028 2.91403 88.9438 2.62977 91.751 4.27104C94.5507 5.88438 96.787 9.28997 97.8403 13.2576C98.8935 17.2253 98.6406 21.2916 97.0096 24.0811C95.386 26.8985 92.5175 28.2095 89.163 28.2065C89.163 28.2065 89.163 28.2065 89.163 28.2065C89.2316 28.1441 89.0259 28.157 88.9377 28.1389C88.8075 28.1327 88.6979 28.121 88.5627 28.1176C88.3103 28.1054 88.031 28.1039 87.7655 28.1004C81.645 28.1578 75.0583 29.1038 69.964 31.434C67.0434 32.5889 64.2819 35.4841 62.7799 39.3569C62.5658 39.8815 62.3777 40.5231 62.2285 40.9374C62.1449 41.3659 61.8572 41.7909 61.4933 42.1145C61.1256 42.4383 60.7118 42.6343 60.2781 42.6636C59.8445 42.693 59.408 42.5545 59.0001 42.2832C58.5959 42.0115 58.2535 41.6292 58.1129 41.2159C58.1129 41.2159 58.1129 41.2159 58.1129 41.2159C57.9026 40.3627 57.7681 39.6951 57.6558 38.9401C56.8932 33.8263 57.7937 27.8684 61.3758 22.6906C66.591 15.1863 73.3245 10.1988 80.5981 5.79517C81.3138 5.38989 81.8682 5.03548 82.8914 4.58032Z" fill="#DFB7AC" fill-opacity="0.5"/><path d="M18.7934 41.0248C15.9551 39.1914 12.8457 38.7438 9.99352 40.3078C7.1504 41.8413 4.79779 45.2594 3.60899 49.283C2.4202 53.3066 2.53743 57.4544 4.09067 60.2868C5.63486 63.1497 8.4882 64.4639 11.8672 64.4674C12.4746 64.4703 13.082 64.4732 13.6894 64.4761C24.6227 64.5282 35.556 64.5804 46.4893 64.6325C47.0967 64.6354 47.7041 64.6383 48.3115 64.6412C48.7398 64.6416 49.2092 64.4433 49.5968 64.1566C49.9855 63.866 50.2607 63.5107 50.3814 63.1021C50.5021 62.6934 50.4643 62.2457 50.2959 61.7905C50.1263 61.3392 49.8401 60.9176 49.4803 60.6852C48.9689 60.3576 48.4574 60.0299 47.946 59.7022C38.7399 53.8041 29.5339 47.9059 20.3278 42.0078C19.8163 41.6801 19.3049 41.3524 18.7934 41.0248Z" fill="#DFB7AC"/><path d="M278.651 55.638C280.283 52.7186 280.538 49.569 278.901 46.7597C277.291 43.9575 273.922 41.7254 269.994 40.6768C266.067 39.6282 262.034 39.8844 259.241 41.5113C256.422 43.1311 255.074 45.9887 255.033 49.333C255.033 49.333 255.033 49.333 255.033 49.333C255.129 49.625 255.088 50.3659 255.09 50.9203C254.976 57.3587 253.844 64.7168 251.864 68.782C250.734 71.3657 246.992 73.4846 242.573 73.8286C241.977 73.8896 241.275 73.8955 240.788 73.9183C240.349 73.885 239.861 74.0505 239.452 74.3191C239.042 74.5912 238.745 74.9443 238.605 75.36C238.465 75.7756 238.489 76.2368 238.651 76.7014C238.814 77.1625 239.103 77.5891 239.473 77.828C239.473 77.828 239.473 77.828 239.473 77.828C240.248 78.2517 240.897 78.5684 241.618 78.8801C246.511 80.9951 253.196 81.9503 259.593 78.3964C268.767 72.5554 272.917 65.3176 277.444 57.9353C277.845 57.2163 278.211 56.6043 278.651 55.638Z" fill="#DFB7AC" fill-opacity="0.8"/><path d="M252.97 142.569C252.754 145.907 251.257 148.689 248.356 150.158C245.482 151.636 241.441 151.679 237.574 150.425C233.707 149.171 230.461 146.764 229 143.881C227.514 140.989 227.935 137.858 229.718 135.028C229.718 135.028 229.718 135.028 229.718 135.028C229.958 134.836 230.325 134.191 230.628 133.727C234.032 128.26 237.079 121.468 237.626 116.979C238.081 114.196 236.092 110.384 232.568 107.694C232.102 107.319 231.515 106.932 231.119 106.649C230.732 106.438 230.413 106.034 230.216 105.587C230.019 105.135 229.961 104.677 230.07 104.252C230.178 103.827 230.449 103.453 230.838 103.151C231.225 102.853 231.699 102.651 232.139 102.652C232.139 102.652 232.139 102.652 232.139 102.652C233.021 102.718 233.738 102.804 234.512 102.934C239.769 103.818 245.9 106.649 249.339 113.108C253.866 122.996 253.417 131.327 253.206 139.985C253.152 140.806 253.127 141.519 252.97 142.569Z" fill="#DFB7AC" fill-opacity="0.8"/><path d="M202.14 147.488C199.228 149.155 196.087 149.439 193.28 147.798C190.48 146.185 188.244 142.779 187.19 138.812C186.137 134.844 186.39 130.778 188.021 127.988C189.644 125.171 192.512 123.86 195.867 123.862C195.867 123.862 195.867 123.862 195.867 123.862C195.798 123.925 196.004 123.912 196.092 123.93C196.222 123.936 196.332 123.948 196.467 123.951C196.72 123.963 196.999 123.965 197.264 123.968C203.385 123.911 209.972 122.964 215.066 120.634C217.986 119.479 220.748 116.584 222.25 112.711C222.464 112.186 222.652 111.545 222.801 111.13C222.884 110.702 223.172 110.277 223.536 109.953C223.904 109.629 224.318 109.433 224.751 109.404C225.185 109.375 225.621 109.513 226.029 109.784C226.433 110.056 226.776 110.438 226.916 110.852C226.916 110.852 226.916 110.852 226.916 110.852C227.127 111.705 227.261 112.372 227.374 113.127C228.136 118.241 227.236 124.199 223.654 129.377C218.44 136.882 211.706 141.869 204.433 146.273C203.717 146.679 203.163 147.033 202.14 147.488Z" fill="#DFB7AC" fill-opacity="0.5"/><path d="M238.906 23.03C237.368 20.049 234.885 18.1035 231.637 17.9558C228.41 17.7886 224.682 19.4322 221.642 22.1905C218.602 24.9488 216.604 28.4997 216.457 31.7277C216.289 34.9751 217.985 37.6344 220.802 39.4549C220.802 39.4549 220.802 39.4549 220.802 39.4549C220.779 39.3652 220.944 39.4878 221.028 39.5206C221.141 39.5861 221.239 39.6359 221.354 39.7065C221.573 39.8334 221.808 39.9839 222.033 40.1252C227.14 43.4995 232.155 47.8731 235.165 52.5976C236.989 55.1541 237.734 59.0853 236.89 63.1525C236.785 63.7093 236.594 64.35 236.494 64.7789C236.331 65.1841 236.342 65.6972 236.472 66.1666C236.604 66.6382 236.845 67.0276 237.193 67.2879C237.541 67.5482 237.983 67.6692 238.473 67.6631C238.96 67.6547 239.455 67.5198 239.798 67.2492C239.798 67.2492 239.798 67.2492 239.798 67.2492C240.438 66.6474 240.914 66.16 241.418 65.5872C244.837 61.7088 247.319 56.2181 247.126 49.9249C246.826 40.7914 243.884 32.9454 240.171 25.296C239.791 24.5669 239.518 23.9681 238.906 23.03Z" fill="#DFB7AC" fill-opacity="0.5"/><path d="M272.909 88.4563C276.288 88.4597 279.141 89.7737 280.685 92.6366C282.239 95.4689 282.356 99.6167 281.168 103.64C279.979 107.664 277.626 111.082 274.783 112.616C271.931 114.18 268.822 113.732 265.983 111.899C265.472 111.572 264.961 111.244 264.449 110.916C255.243 105.019 246.036 99.1208 236.83 93.223C236.319 92.8954 235.807 92.5677 235.296 92.2401C234.936 92.0077 234.65 91.5861 234.48 91.1348C234.312 90.6796 234.274 90.2319 234.395 89.8232C234.515 89.4146 234.79 89.0593 235.179 88.7687C235.567 88.482 236.036 88.2836 236.464 88.2841C237.072 88.2869 237.679 88.2898 238.287 88.2927C249.22 88.3443 260.153 88.396 271.087 88.4476C271.694 88.4505 272.301 88.4534 272.909 88.4563Z" fill="#DFB7AC"/><g filter="url(#filter0_d_1128_52)"><path d="M112.605 69.981C109.517 69.981 107.31 69.9689 105.983 69.9448C104.656 69.8965 103.51 69.788 102.545 69.6191C101.604 69.4261 100.639 69.1124 99.6494 68.6781C98.1294 68.0267 96.9231 66.8928 96.0304 65.2763C95.1377 63.6357 94.6913 61.8141 94.6913 59.8116C94.6913 58.6776 94.824 57.6281 95.0894 56.6631L96.9713 49.4974L104.752 51.8136L103.196 57.7488C103.148 57.9418 103.124 58.0865 103.124 58.183C103.124 58.4967 103.208 58.738 103.377 58.9068C103.57 59.0516 103.835 59.124 104.173 59.124H122.956L122.485 53.9126L130.447 53.1164L130.845 57.5678C130.918 58.2675 131.05 58.7018 131.243 58.8707C131.436 59.0395 131.871 59.124 132.546 59.124H132.944L133.559 64.5163L132.944 69.981H132.546C130.23 69.981 128.348 69.3175 126.9 67.9905C125.139 69.3175 123.028 69.981 120.567 69.981H112.605ZM106.634 44.9375H119.337V51.3069H106.634V44.9375Z" fill="url(#paint0_radial_1128_52)"/><path d="M132.186 59.124H137.832C138.242 59.124 138.495 59.0516 138.592 58.9068C138.712 58.7621 138.749 58.4605 138.7 58.0021L138.338 53.9126L146.3 53.1164L146.698 57.5678C146.747 58.2434 146.759 58.7621 146.735 59.124H148.399L149.015 64.5163L148.399 69.981C146.204 69.981 144.382 69.3658 142.935 68.1353C141.559 69.3658 140.003 69.981 138.266 69.981H132.186V59.124ZM129.689 72.08H142.392V78.4494H129.689V72.08Z" fill="url(#paint1_radial_1128_52)"/><path d="M147.693 59.124H159.237C160.106 59.124 160.576 58.6776 160.649 57.785L157.754 57.8211C154.907 57.8211 152.723 57.0853 151.203 55.6136C149.707 54.1177 148.959 52.0428 148.959 49.3889C148.959 47.507 149.261 45.7458 149.864 44.1051C150.491 42.4645 151.481 41.1376 152.832 40.1242C154.183 39.0868 155.896 38.5681 157.971 38.5681C159.901 38.5681 161.553 39.0385 162.929 39.9795C164.328 40.9204 165.39 42.1509 166.113 43.6709C166.861 45.1667 167.308 46.7953 167.452 48.5565L168.14 57.3507C168.164 57.6402 168.176 58.0624 168.176 58.6173C168.176 60.6681 167.766 62.562 166.946 64.2992C166.126 66.0121 164.835 67.3874 163.073 68.4248C161.312 69.4623 159.105 69.981 156.451 69.981H147.693V59.124ZM151.71 30.0996H164.413V36.469H151.71V30.0996ZM155.908 48.3756C155.908 49.3889 156.487 49.8955 157.645 49.8955C158.682 49.8955 159.539 49.8593 160.214 49.787L160.178 49.0994C160.13 48.1343 159.901 47.3984 159.491 46.8918C159.081 46.3851 158.538 46.1318 157.862 46.1318C157.283 46.1318 156.813 46.3489 156.451 46.7832C156.089 47.1934 155.908 47.7241 155.908 48.3756Z" fill="url(#paint2_radial_1128_52)"/><path d="M195.204 69.981C193.153 69.981 191.452 69.2693 190.101 67.8458C188.436 69.2693 186.397 69.981 183.985 69.981H171.246V59.124H183.152C183.442 59.124 183.671 59.0395 183.84 58.8707C184.009 58.6776 184.081 58.3278 184.057 57.8211L183.297 40.1604L192.562 39.69L193.213 56.4821L193.249 57.1697C193.298 57.797 193.467 58.2796 193.756 58.6173C194.07 58.9551 194.588 59.124 195.312 59.124H195.891L196.507 64.5525L195.891 69.981H195.204ZM178.882 41.2823L182.067 56.3012L173.164 58.1469L169.979 43.2366L178.882 41.2823Z" fill="url(#paint3_radial_1128_52)"/><path d="M195.21 59.124H197.128C201.543 59.124 204.752 58.9551 206.754 58.6173L212.436 57.6764L206.682 55.324C206.127 55.0828 205.644 54.9621 205.234 54.9621C204.631 54.9621 204.124 55.2758 203.714 55.9031L203.244 56.5907L197.236 52.8631L198.069 51.3793C199.13 49.4974 200.349 48.074 201.724 47.1089C203.099 46.1197 204.595 45.6251 206.211 45.6251C207.852 45.6251 209.541 46.1197 211.278 47.1089L222.244 53.225L221.085 63.8287L213.847 66.8325C211.073 67.9905 208.142 68.8108 205.053 69.2934C201.989 69.7518 199.335 69.981 197.092 69.981H195.21V59.124ZM202.158 36.6862H208.745V43.2728H202.158V36.6862Z" fill="url(#paint4_radial_1128_52)"/></g><g filter="url(#filter1_d_1128_52)"><path d="M55.3914 67.9566L55.9343 67.8118C57.7438 67.3293 59.119 66.9071 60.0599 66.5452C61.025 66.1833 61.8815 65.5922 62.6294 64.7718C63.3773 63.9515 63.7513 62.8417 63.7513 61.4424C63.7513 60.9357 63.7272 60.5497 63.6789 60.2843L62.2675 49.8616L62.6294 49.7892L63.6789 57.6786C63.7272 58.0646 63.7754 58.3662 63.8237 58.5834L64.0408 60.2481C64.0891 60.5376 64.1132 60.9478 64.1132 61.4786C64.1132 62.9503 63.7272 64.1084 62.9551 64.9528C62.2072 65.8214 61.3266 66.4487 60.3133 66.8347C59.2999 67.2448 57.8644 67.6912 56.0066 68.1737L55.4638 68.3185L55.3914 67.9566Z" fill="url(#paint5_radial_1128_52)"/><path d="M74.066 58.9814C72.3289 58.9814 71.0261 58.8005 70.1575 58.4386C69.3131 58.0526 68.7823 57.4494 68.5651 56.6291C68.3721 55.9294 68.2756 55.1091 68.2756 54.1682H68.6013C68.6013 55.0126 68.6858 55.7726 68.8547 56.4481C69.0477 57.2202 69.5543 57.7751 70.3746 58.1129C71.2191 58.4507 72.4495 58.6195 74.066 58.6195H74.3194C78.3726 58.6195 80.3993 57.4253 80.3993 55.0367C80.3993 54.699 80.339 54.2888 80.2183 53.8063C79.8805 52.4552 79.1567 50.8146 78.0469 48.8844C76.9371 46.9302 75.6946 45.0121 74.3194 43.1302L74.6089 42.9131C76.0082 44.8432 77.2749 46.7975 78.4088 48.7759C79.5428 50.7301 80.2666 52.3828 80.5802 53.7339C80.7009 54.2647 80.7612 54.7231 80.7612 55.1091C80.7612 57.6907 78.6139 58.9814 74.3194 58.9814H74.066Z" fill="url(#paint6_radial_1128_52)"/><path d="M56.3914 68.9566L56.9343 68.8118C58.7438 68.3293 60.119 67.9071 61.0599 67.5452C62.025 67.1833 62.8815 66.5922 63.6294 65.7718C64.3773 64.9515 64.7513 63.8417 64.7513 62.4424C64.7513 61.9357 64.7272 61.5497 64.6789 61.2843L63.2675 50.8616L63.6294 50.7892L64.6789 58.6786C64.7272 59.0646 64.7754 59.3662 64.8237 59.5834L65.0408 61.2481C65.0891 61.5376 65.1132 61.9478 65.1132 62.4786C65.1132 63.9503 64.7272 65.1084 63.9551 65.9528C63.2072 66.8214 62.3266 67.4487 61.3133 67.8347C60.2999 68.2448 58.8644 68.6912 57.0066 69.1737L56.4638 69.3185L56.3914 68.9566Z" fill="url(#paint7_radial_1128_52)"/><path d="M75.066 59.9814C73.3289 59.9814 72.0261 59.8005 71.1575 59.4386C70.3131 59.0526 69.7823 58.4494 69.5651 57.6291C69.3721 56.9294 69.2756 56.1091 69.2756 55.1682H69.6013C69.6013 56.0126 69.6858 56.7726 69.8547 57.4481C70.0477 58.2202 70.5543 58.7751 71.3746 59.1129C72.2191 59.4507 73.4495 59.6195 75.066 59.6195H75.3194C79.3726 59.6195 81.3993 58.4253 81.3993 56.0367C81.3993 55.699 81.339 55.2888 81.2183 54.8063C80.8805 53.4552 80.1567 51.8146 79.0469 49.8844C77.9371 47.9302 76.6946 46.0121 75.3194 44.1302L75.6089 43.9131C77.0082 45.8432 78.2749 47.7975 79.4088 49.7759C80.5428 51.7301 81.2666 53.3828 81.5802 54.7339C81.7009 55.2647 81.7612 55.7231 81.7612 56.1091C81.7612 58.6907 79.6139 59.9814 75.3194 59.9814H75.066Z" fill="url(#paint8_radial_1128_52)"/><path d="M57.3914 69.9566L57.9343 69.8118C59.7438 69.3293 61.119 68.9071 62.0599 68.5452C63.025 68.1833 63.8815 67.5922 64.6294 66.7718C65.3773 65.9515 65.7513 64.8417 65.7513 63.4424C65.7513 62.9357 65.7272 62.5497 65.6789 62.2843L64.2675 51.8616L64.6294 51.7892L65.6789 59.6786C65.7272 60.0646 65.7754 60.3662 65.8237 60.5834L66.0408 62.2481C66.0891 62.5376 66.1132 62.9478 66.1132 63.4786C66.1132 64.9503 65.7272 66.1084 64.9551 66.9528C64.2072 67.8214 63.3266 68.4487 62.3133 68.8347C61.2999 69.2448 59.8644 69.6912 58.0066 70.1737L57.4638 70.3185L57.3914 69.9566Z" fill="url(#paint9_radial_1128_52)"/><path d="M76.066 60.9814C74.3289 60.9814 73.0261 60.8005 72.1575 60.4386C71.3131 60.0526 70.7823 59.4494 70.5651 58.6291C70.3721 57.9294 70.2756 57.1091 70.2756 56.1682H70.6013C70.6013 57.0126 70.6858 57.7726 70.8547 58.4481C71.0477 59.2202 71.5543 59.7751 72.3746 60.1129C73.2191 60.4507 74.4495 60.6195 76.066 60.6195H76.3194C80.3726 60.6195 82.3993 59.4253 82.3993 57.0367C82.3993 56.699 82.339 56.2888 82.2183 55.8063C81.8805 54.4552 81.1567 52.8146 80.0469 50.8844C78.9371 48.9302 77.6946 47.0121 76.3194 45.1302L76.6089 44.9131C78.0082 46.8432 79.2749 48.7975 80.4088 50.7759C81.5428 52.7301 82.2666 54.3828 82.5802 55.7339C82.7009 56.2647 82.7612 56.7231 82.7612 57.1091C82.7612 59.6907 80.6139 60.9814 76.3194 60.9814H76.066Z" fill="url(#paint10_radial_1128_52)"/><path d="M58.3914 70.9566L58.9343 70.8118C60.7438 70.3293 62.119 69.9071 63.0599 69.5452C64.025 69.1833 64.8815 68.5922 65.6294 67.7718C66.3773 66.9515 66.7513 65.8417 66.7513 64.4424C66.7513 63.9357 66.7272 63.5497 66.6789 63.2843L65.2675 52.8616L65.6294 52.7892L66.6789 60.6786C66.7272 61.0646 66.7754 61.3662 66.8237 61.5834L67.0408 63.2481C67.0891 63.5376 67.1132 63.9478 67.1132 64.4786C67.1132 65.9503 66.7272 67.1084 65.9551 67.9528C65.2072 68.8214 64.3266 69.4487 63.3133 69.8347C62.2999 70.2448 60.8644 70.6912 59.0066 71.1737L58.4638 71.3185L58.3914 70.9566Z" fill="url(#paint11_radial_1128_52)"/><path d="M77.066 61.9814C75.3289 61.9814 74.0261 61.8005 73.1575 61.4386C72.3131 61.0526 71.7823 60.4494 71.5651 59.6291C71.3721 58.9294 71.2756 58.1091 71.2756 57.1682H71.6013C71.6013 58.0126 71.6858 58.7726 71.8547 59.4481C72.0477 60.2202 72.5543 60.7751 73.3746 61.1129C74.2191 61.4507 75.4495 61.6195 77.066 61.6195H77.3194C81.3726 61.6195 83.3993 60.4253 83.3993 58.0367C83.3993 57.699 83.339 57.2888 83.2183 56.8063C82.8805 55.4552 82.1567 53.8146 81.0469 51.8844C79.9371 49.9302 78.6946 48.0121 77.3194 46.1302L77.6089 45.9131C79.0082 47.8432 80.2749 49.7975 81.4088 51.7759C82.5428 53.7301 83.2666 55.3828 83.5802 56.7339C83.7009 57.2647 83.7612 57.7231 83.7612 58.1091C83.7612 60.6907 81.6139 61.9814 77.3194 61.9814H77.066Z" fill="url(#paint12_radial_1128_52)"/><path d="M59.3914 71.9566L59.9343 71.8118C61.7438 71.3293 63.119 70.9071 64.0599 70.5452C65.025 70.1833 65.8815 69.5922 66.6294 68.7718C67.3773 67.9515 67.7513 66.8417 67.7513 65.4424C67.7513 64.9357 67.7272 64.5497 67.6789 64.2843L66.2675 53.8616L66.6294 53.7892L67.6789 61.6786C67.7272 62.0646 67.7754 62.3662 67.8237 62.5834L68.0408 64.2481C68.0891 64.5376 68.1132 64.9478 68.1132 65.4786C68.1132 66.9503 67.7272 68.1084 66.9551 68.9528C66.2072 69.8214 65.3266 70.4487 64.3133 70.8347C63.2999 71.2448 61.8644 71.6912 60.0066 72.1737L59.4638 72.3185L59.3914 71.9566Z" fill="url(#paint13_radial_1128_52)"/><path d="M78.066 62.9814C76.3289 62.9814 75.0261 62.8005 74.1575 62.4386C73.3131 62.0526 72.7823 61.4494 72.5651 60.6291C72.3721 59.9294 72.2756 59.1091 72.2756 58.1682H72.6013C72.6013 59.0126 72.6858 59.7726 72.8547 60.4481C73.0477 61.2202 73.5543 61.7751 74.3746 62.1129C75.2191 62.4507 76.4495 62.6195 78.066 62.6195H78.3194C82.3726 62.6195 84.3993 61.4253 84.3993 59.0367C84.3993 58.699 84.339 58.2888 84.2183 57.8063C83.8805 56.4552 83.1567 54.8146 82.0469 52.8844C80.9371 50.9302 79.6946 49.0121 78.3194 47.1302L78.6089 46.9131C80.0082 48.8432 81.2749 50.7975 82.4088 52.7759C83.5428 54.7301 84.2666 56.3828 84.5802 57.7339C84.7009 58.2647 84.7612 58.7231 84.7612 59.1091C84.7612 61.6907 82.6139 62.9814 78.3194 62.9814H78.066Z" fill="url(#paint14_radial_1128_52)"/><path d="M59.985 72.3413L60.745 72.1242C62.4097 71.6899 63.7126 71.2918 64.6535 70.9299C65.6186 70.568 66.4389 70.001 67.1144 69.229C67.8141 68.4569 68.1639 67.4074 68.1639 66.0805C68.1639 65.8875 68.1398 65.5256 68.0915 64.9948L66.6801 54.6082L67.5849 54.4273L68.6344 62.2805L68.743 63.1491C68.8153 63.5351 68.8998 64.1141 68.9963 64.8862C69.0687 65.3687 69.1049 65.7909 69.1049 66.1528C69.1049 67.6246 68.7309 68.8068 67.983 69.6995C67.2351 70.5922 66.3182 71.2556 65.2325 71.6899C64.171 72.1483 62.7475 72.6188 60.9621 73.1013L60.2021 73.3185L59.985 72.3413Z" fill="url(#paint15_radial_1128_52)"/><path d="M79.013 63.9814C77.2759 63.9814 75.9489 63.7522 75.0321 63.2938C74.1394 62.8354 73.5966 62.1599 73.4036 61.2672C73.2105 60.6158 73.114 59.8075 73.114 58.8425H73.9826C73.9826 59.6628 74.055 60.3866 74.1997 61.0139C74.3686 61.7377 74.827 62.2564 75.575 62.57C76.347 62.8596 77.4568 63.0043 78.9044 63.0043H79.6644C81.6187 63.0043 83.0301 62.7148 83.8987 62.1358C84.7913 61.5326 85.2377 60.7364 85.2377 59.7472C85.2377 59.3853 85.1774 58.9872 85.0567 58.5529C84.6948 57.226 83.959 55.6095 82.8491 53.7035C81.7634 51.7734 80.5451 49.8794 79.194 48.0217L79.9178 47.4064C81.3412 49.3366 82.6199 51.3029 83.7539 53.3054C84.8879 55.2838 85.6237 56.9606 85.9615 58.3358C86.0821 58.8666 86.1424 59.3371 86.1424 59.7472C86.1424 61.0259 85.6358 62.0513 84.6225 62.8234C83.6091 63.5954 81.9323 63.9814 79.5921 63.9814H79.013Z" fill="url(#paint16_radial_1128_52)"/></g><g filter="url(#filter2_d_1128_52)"><path d="M81.607 105.981C78.7842 105.981 76.7214 105.957 75.4186 105.909C74.1157 105.861 73.0059 105.752 72.0891 105.583C71.1723 105.414 70.2313 105.113 69.2663 104.679C67.7463 104.027 66.5399 102.893 65.6473 101.277C64.7546 99.6361 64.3082 97.8145 64.3082 95.812C64.3082 94.6781 64.4409 93.6285 64.7063 92.6635L66.5882 85.4979L74.369 87.814L72.8129 93.7492C72.7646 93.9422 72.7405 94.087 72.7405 94.1835C72.7405 94.4971 72.8249 94.7384 72.9938 94.9073C73.1868 95.052 73.4522 95.1244 73.79 95.1244H82.7289C87.0959 95.1244 89.8463 95.0158 90.9803 94.7987C91.5834 94.7022 91.885 94.3765 91.885 93.8216C91.885 93.6527 91.8488 93.4597 91.7764 93.2425L90.2565 87.814L98.0735 85.4617L99.9192 92.2654C100.233 93.3752 100.39 94.5333 100.39 95.7396C100.39 97.7663 99.9433 99.5878 99.0506 101.204C98.1821 102.821 96.9757 103.979 95.4316 104.679C94.4666 105.113 93.5497 105.414 92.6812 105.583C91.8368 105.752 90.8114 105.861 89.605 105.909C88.4228 105.957 86.5168 105.981 83.887 105.981H81.607ZM75.889 80.9379H88.5917V87.3074H75.889V80.9379Z" fill="url(#paint17_radial_1128_52)"/><path d="M112.898 105.981C110.558 105.981 108.676 105.595 107.253 104.823C105.829 104.051 104.768 102.869 104.068 101.277C103.392 99.6843 103.006 97.5974 102.91 95.0158L102.186 76.197L111.523 75.7266L112.247 93.532C112.271 94.1111 112.356 94.5212 112.5 94.7625C112.669 95.0038 112.923 95.1244 113.26 95.1244H114.491L115.106 100.553L114.491 105.981H112.898Z" fill="url(#paint18_radial_1128_52)"/><path d="M113.846 95.1244H118.261L118.551 94.6539L117.718 76.197L126.621 75.7989L126.73 84.376C128.563 82.9525 130.662 82.2408 133.027 82.2408C135.029 82.2408 136.791 82.7474 138.311 83.7607C139.855 84.7499 141.037 86.1252 141.857 87.8864C142.702 89.6235 143.124 91.5778 143.124 93.7492C143.124 94.087 143.1 94.6177 143.051 95.3415C142.81 97.9231 142.002 100.01 140.627 101.602C139.276 103.171 137.671 104.293 135.813 104.968C133.98 105.644 132.146 105.981 130.313 105.981H113.846V95.1244ZM132.629 95.1244C133.353 95.1244 133.932 94.9193 134.366 94.5092C134.8 94.099 135.017 93.5682 135.017 92.9168C135.017 92.2895 134.8 91.7708 134.366 91.3606C133.932 90.9264 133.353 90.7092 132.629 90.7092C132.074 90.7092 131.471 90.9143 130.819 91.3245C130.192 91.7346 129.323 92.4463 128.214 93.4597L126.404 95.1244H132.629Z" fill="url(#paint19_radial_1128_52)"/><path d="M155.645 105.981C153.305 105.981 151.423 105.595 149.999 104.823C148.576 104.051 147.514 102.869 146.815 101.277C146.139 99.6843 145.753 97.5974 145.657 95.0158L144.933 76.197L154.27 75.7266L154.994 93.532C155.018 94.1111 155.102 94.5212 155.247 94.7625C155.416 95.0038 155.669 95.1244 156.007 95.1244H157.237L157.853 100.553L157.237 105.981H155.645Z" fill="url(#paint20_radial_1128_52)"/><path d="M156.593 95.1244H159.524C159.934 95.1244 160.188 95.052 160.284 94.9073C160.405 94.7625 160.441 94.4609 160.393 94.0025L160.031 89.913L167.993 89.1169L168.391 93.5682C168.439 94.2438 168.451 94.7625 168.427 95.1244H170.092L170.707 100.517L170.092 105.981C167.896 105.981 166.075 105.366 164.627 104.136C163.252 105.366 161.696 105.981 159.958 105.981H156.593V95.1244ZM154.675 108.117H161.261V114.703H154.675V108.117Z" fill="url(#paint21_radial_1128_52)"/><path d="M169.519 95.1244H176.106C176.781 95.1244 177.119 94.859 177.119 94.3282C177.119 94.087 177.095 93.8939 177.047 93.7492L175.418 87.814L183.235 85.4617L185.153 92.6273C185.467 93.8095 185.624 94.9917 185.624 96.1739C185.624 98.0075 185.238 99.6723 184.466 101.168C183.718 102.664 182.632 103.846 181.209 104.715C179.809 105.559 178.169 105.981 176.287 105.981H169.519V95.1244ZM170.424 76.957H183.127V83.3265H170.424V76.957Z" fill="url(#paint22_radial_1128_52)"/><path d="M184.272 106.886L188.615 105.692C189.604 105.402 190.256 105.125 190.569 104.86C190.907 104.594 191.076 104.184 191.076 103.629C191.076 103.291 191.04 102.869 190.967 102.362L189.158 89.8769L197.264 88.6826L198.567 97.9472L198.748 99.1053C198.941 100.336 199.134 101.783 199.327 103.448C199.472 104.679 199.544 105.776 199.544 106.741C199.544 108.647 199.255 110.204 198.676 111.41C198.097 112.616 197.192 113.593 195.962 114.341C194.755 115.089 193.102 115.753 191.003 116.332L186.661 117.526L184.272 106.886Z" fill="url(#paint23_radial_1128_52)"/><path d="M200.465 76.2332L210.164 75.7266L211.285 105.837L201.587 106.271L200.465 76.2332Z" fill="url(#paint24_radial_1128_52)"/></g><path d="M128.007 25.2926C127.413 25.426 126.885 25.4927 126.425 25.4927C125.054 25.4927 123.975 25.044 123.187 24.1466C122.411 23.2492 122.023 22.0426 122.023 20.5268C122.023 19.3869 122.247 18.1621 122.696 16.8524L124.005 17.3799C123.593 18.5684 123.387 19.6294 123.387 20.5632C123.387 21.6303 123.648 22.461 124.169 23.0552C124.703 23.6494 125.454 23.9465 126.425 23.9465C126.825 23.9465 127.249 23.892 127.698 23.7828C128.486 23.613 129.092 23.4554 129.517 23.3099C129.941 23.1644 130.275 22.9703 130.517 22.7278C130.772 22.4974 130.899 22.1882 130.899 21.8001C130.899 21.7273 130.887 21.594 130.863 21.3999C130.814 21.1574 130.584 20.9209 130.172 20.6905C129.759 20.4601 129.286 20.254 128.753 20.0721L127.862 19.781L128.298 18.3076C128.48 18.3683 128.692 18.4289 128.935 18.4895C130.099 18.8412 131.002 19.0959 131.645 19.2535C132.288 19.399 132.918 19.4718 133.537 19.4718L133.628 20.2358L133.537 20.9997C133.088 20.9997 132.603 20.9694 132.082 20.9088C132.179 21.0543 132.233 21.2059 132.245 21.3635C132.27 21.6061 132.282 21.7819 132.282 21.8911C132.282 22.8248 131.918 23.5403 131.19 24.0375C130.463 24.5468 129.402 24.9652 128.007 25.2926Z" fill="#E3B8BA"/><path d="M138.225 20.9997C137.727 20.9997 137.291 20.927 136.915 20.7815C136.539 20.6359 136.224 20.3752 135.969 19.9993C135.714 20.3025 135.387 20.545 134.987 20.7269C134.587 20.9088 134.12 20.9997 133.586 20.9997H133.168V19.4718H133.586C134.241 19.4718 134.684 19.3263 134.914 19.0352C135.144 18.7442 135.248 18.4046 135.223 18.0166L134.878 9.03073L136.26 8.95797L136.606 17.8711C136.666 18.5017 136.836 18.9261 137.115 19.1444C137.406 19.3626 137.776 19.4718 138.225 19.4718H138.588L138.679 20.2358L138.588 20.9997H138.225Z" fill="#E3B8BA"/><path d="M148.558 20.9997C147.467 20.9997 146.648 20.5753 146.102 19.7264C146.066 19.8235 146.042 19.8841 146.03 19.9083C145.86 20.26 145.611 20.545 145.284 20.7633C144.956 20.9816 144.605 21.0907 144.229 21.0907C143.938 21.0907 143.647 21.0179 143.356 20.8724L141.027 19.6719C140.712 20.0963 140.33 20.4237 139.881 20.6541C139.445 20.8845 138.96 20.9997 138.426 20.9997H138.226V19.4718H138.426C138.826 19.4718 139.178 19.3808 139.481 19.1989C139.797 19.017 140.039 18.7624 140.209 18.435L141.573 15.8156C141.804 15.3669 142.131 15.0213 142.555 14.7788C142.98 14.5241 143.435 14.3968 143.92 14.3968C144.38 14.3968 144.793 14.4999 145.157 14.706C145.654 14.9728 146.024 15.3366 146.266 15.7974C146.521 16.2461 146.648 16.7675 146.648 17.3617C146.648 17.677 146.624 17.962 146.575 18.2167C146.697 18.6047 146.927 18.914 147.267 19.1444C147.618 19.3626 148.049 19.4718 148.558 19.4718L148.649 20.2358L148.558 20.9997ZM144.156 19.5627C144.277 19.6234 144.387 19.6537 144.484 19.6537C144.605 19.6537 144.708 19.6234 144.793 19.5627C144.878 19.49 144.938 19.4051 144.975 19.3081L145.138 18.9807C145.345 18.4713 145.448 18.0045 145.448 17.58C145.448 17.2162 145.375 16.9009 145.229 16.6341C145.096 16.3552 144.89 16.143 144.611 15.9975C144.393 15.8884 144.174 15.8338 143.956 15.8338C143.677 15.8338 143.416 15.9126 143.174 16.0703C142.931 16.2158 142.743 16.4219 142.61 16.6887L141.755 18.344L144.156 19.5627Z" fill="#E3B8BA"/><path d="M153.828 20.7815C153.767 20.7936 153.688 20.8057 153.591 20.8178C153.494 20.83 153.422 20.836 153.373 20.836C152.439 20.9209 150.754 20.9755 148.316 20.9997H148.116V19.4718H148.316L150.572 19.4172C150.305 19.017 150.129 18.5805 150.044 18.1075C150.008 17.8893 149.99 17.677 149.99 17.4709C149.99 16.6584 150.238 15.9429 150.736 15.3245C151.233 14.706 151.876 14.3301 152.664 14.1967C152.834 14.1724 152.979 14.1603 153.1 14.1603C153.755 14.1603 154.61 14.2998 155.665 14.5787L155.301 16.0703C154.198 15.7671 153.428 15.6458 152.991 15.7065C152.506 15.7671 152.112 15.9672 151.809 16.3067C151.506 16.6341 151.354 17.0222 151.354 17.4709C151.354 17.8347 151.451 18.1621 151.645 18.4531C151.839 18.7442 152.094 18.9625 152.409 19.108C152.724 19.2535 153.058 19.3081 153.41 19.2717L153.573 19.2535L156.684 18.6714L156.938 20.1812L153.828 20.7815Z" fill="#E3B8BA"/><path d="M166.199 21.0179C165.629 21.0179 165.102 20.8785 164.617 20.5996C164.144 20.3085 163.768 19.9205 163.489 19.4354C163.21 18.9382 163.07 18.4046 163.07 17.8347C163.07 17.3375 163.192 16.8342 163.434 16.3249C163.689 15.8156 164.035 15.3427 164.471 14.9061L165.217 14.1785L164.598 13.5782L165.562 12.4686L167.654 14.5059C168.249 15.088 168.673 15.6337 168.928 16.143C169.182 16.6523 169.31 17.2162 169.31 17.8347C169.31 18.4046 169.17 18.9382 168.891 19.4354C168.612 19.9205 168.23 20.3085 167.745 20.5996C167.272 20.8785 166.757 21.0179 166.199 21.0179ZM164.417 17.8347C164.417 18.2955 164.586 18.6957 164.926 19.0352C165.278 19.3626 165.702 19.5264 166.199 19.5264C166.696 19.5264 167.115 19.3626 167.454 19.0352C167.794 18.7078 167.964 18.3076 167.964 17.8347C167.964 17.483 167.879 17.1495 167.709 16.8342C167.551 16.5189 167.224 16.1188 166.727 15.6337L166.217 15.1426L165.49 15.852C165.114 16.2279 164.841 16.5735 164.671 16.8888C164.501 17.2041 164.417 17.5194 164.417 17.8347Z" fill="#E3B8BA"/><path d="M174.882 20.9997C174.094 20.9997 173.476 20.8845 173.027 20.6541C172.578 20.4237 172.251 20.0539 172.045 19.5445C171.839 19.0231 171.717 18.3076 171.681 17.3981L171.353 9.03073L172.736 8.95797L173.063 17.3981C173.088 18.0166 173.142 18.4653 173.227 18.7442C173.324 19.0231 173.494 19.2171 173.736 19.3263C173.979 19.4233 174.361 19.4718 174.882 19.4718H175.064L175.155 20.2358L175.064 20.9997H174.882Z" fill="#E3B8BA"/><path d="M174.709 19.4718H178.475C178.766 19.4718 179.002 19.399 179.184 19.2535C179.342 19.1444 179.463 19.0049 179.548 18.8351C179.645 18.6654 179.693 18.4895 179.693 18.3076C179.693 18.0893 179.627 17.865 179.493 17.6346L175.437 11.9047L175.746 10.7406L182.331 8.32132L182.804 9.75833L177.165 11.832L180.53 16.7069C180.906 17.2769 181.094 17.8711 181.094 18.4895C181.094 18.8291 181.027 19.1504 180.894 19.4536C180.773 19.7568 180.597 20.0175 180.366 20.2358C179.893 20.7451 179.257 20.9997 178.456 20.9997H174.709V19.4718ZM180.439 6.52051L180.803 7.50277L176.364 9.10349L176.019 8.12123L180.439 6.52051Z" fill="#E3B8BA"/><path d="M181.031 24.183L181.795 23.9647C182.51 23.7707 183.062 23.5888 183.45 23.419C183.85 23.2614 184.178 23.031 184.432 22.7278C184.687 22.4368 184.814 22.0366 184.814 21.5273C184.814 21.4302 184.802 21.2726 184.778 21.0543L184.05 15.8338L185.415 15.6155L185.942 19.49L186.142 20.8724C186.179 21.1513 186.197 21.406 186.197 21.6364C186.197 22.3761 186.027 22.9885 185.688 23.4736C185.348 23.9708 184.887 24.3649 184.305 24.6559C183.735 24.947 183.014 25.2138 182.141 25.4563L181.395 25.6746L181.031 24.183Z" fill="#E3B8BA"/><path d="M191.532 20.9997C190.744 20.9997 190.125 20.8845 189.676 20.6541C189.228 20.4237 188.9 20.0539 188.694 19.5445C188.488 19.0231 188.367 18.3076 188.33 17.3981L188.003 9.03073L189.385 8.95797L189.713 17.3981C189.737 18.0166 189.792 18.4653 189.877 18.7442C189.974 19.0231 190.143 19.2171 190.386 19.3263C190.628 19.4233 191.01 19.4718 191.532 19.4718H191.714L191.805 20.2358L191.714 20.9997H191.532Z" fill="#E3B8BA"/><path d="M191.359 19.4718H195.124C195.415 19.4718 195.652 19.399 195.833 19.2535C195.991 19.1444 196.112 19.0049 196.197 18.8351C196.294 18.6654 196.343 18.4895 196.343 18.3076C196.343 18.0893 196.276 17.865 196.143 17.6346L192.086 11.9047L192.396 10.7406L198.98 8.32132L199.453 9.75833L193.814 11.832L197.18 16.7069C197.555 17.2769 197.743 17.8711 197.743 18.4895C197.743 18.8291 197.677 19.1504 197.543 19.4536C197.422 19.7568 197.246 20.0175 197.016 20.2358C196.543 20.7451 195.906 20.9997 195.106 20.9997H191.359V19.4718Z" fill="#E3B8BA"/><defs><filter id="filter0_d_1128_52" x="78.6913" y="22.0996" width="159.552" height="80.3496" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="8"/><feGaussianBlur stdDeviation="8"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.32 0"/><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1128_52"/><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1128_52" result="shape"/></filter><filter id="filter1_d_1128_52" x="39.3914" y="34.9131" width="62.751" height="62.4053" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="8"/><feGaussianBlur stdDeviation="8"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.32 0"/><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1128_52"/><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1128_52" result="shape"/></filter><filter id="filter2_d_1128_52" x="48.3082" y="67.7266" width="178.977" height="73.7998" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="8"/><feGaussianBlur stdDeviation="8"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.32 0"/><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1128_52"/><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1128_52" result="shape"/></filter><radialGradient id="paint0_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(158.087 62.9814) rotate(88.9864) scale(22.0034 50.1935)"><stop stop-color="#D49786"/><stop offset="1" stop-color="#F6D5B0"/></radialGradient><radialGradient id="paint1_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(158.087 62.9814) rotate(88.9864) scale(22.0034 50.1935)"><stop stop-color="#D49786"/><stop offset="1" stop-color="#F6D5B0"/></radialGradient><radialGradient id="paint2_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(158.087 62.9814) rotate(88.9864) scale(22.0034 50.1935)"><stop stop-color="#D49786"/><stop offset="1" stop-color="#F6D5B0"/></radialGradient><radialGradient id="paint3_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(158.087 62.9814) rotate(88.9864) scale(22.0034 50.1935)"><stop stop-color="#D49786"/><stop offset="1" stop-color="#F6D5B0"/></radialGradient><radialGradient id="paint4_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(158.087 62.9814) rotate(88.9864) scale(22.0034 50.1935)"><stop stop-color="#D49786"/><stop offset="1" stop-color="#F6D5B0"/></radialGradient><radialGradient id="paint5_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(73.8922 59.9113) rotate(89.7607) scale(20.0704 10.8125)"><stop stop-color="#D49483"/><stop offset="1" stop-color="#DFB7AC"/></radialGradient><radialGradient id="paint6_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(73.8922 59.9113) rotate(89.7607) scale(20.0704 10.8125)"><stop stop-color="#D49483"/><stop offset="1" stop-color="#DFB7AC"/></radialGradient><radialGradient id="paint7_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(73.8922 59.9113) rotate(89.7607) scale(20.0704 10.8125)"><stop stop-color="#D49483"/><stop offset="1" stop-color="#DFB7AC"/></radialGradient><radialGradient id="paint8_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(73.8922 59.9113) rotate(89.7607) scale(20.0704 10.8125)"><stop stop-color="#D49483"/><stop offset="1" stop-color="#DFB7AC"/></radialGradient><radialGradient id="paint9_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(73.8922 59.9113) rotate(89.7607) scale(20.0704 10.8125)"><stop stop-color="#D49483"/><stop offset="1" stop-color="#DFB7AC"/></radialGradient><radialGradient id="paint10_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(73.8922 59.9113) rotate(89.7607) scale(20.0704 10.8125)"><stop stop-color="#D49483"/><stop offset="1" stop-color="#DFB7AC"/></radialGradient><radialGradient id="paint11_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(73.8922 59.9113) rotate(89.7607) scale(20.0704 10.8125)"><stop stop-color="#D49483"/><stop offset="1" stop-color="#DFB7AC"/></radialGradient><radialGradient id="paint12_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(73.8922 59.9113) rotate(89.7607) scale(20.0704 10.8125)"><stop stop-color="#D49483"/><stop offset="1" stop-color="#DFB7AC"/></radialGradient><radialGradient id="paint13_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(73.8922 59.9113) rotate(89.7607) scale(20.0704 10.8125)"><stop stop-color="#D49483"/><stop offset="1" stop-color="#DFB7AC"/></radialGradient><radialGradient id="paint14_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(73.8922 59.9113) rotate(89.7607) scale(20.0704 10.8125)"><stop stop-color="#D49483"/><stop offset="1" stop-color="#DFB7AC"/></radialGradient><radialGradient id="paint15_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(73.8922 59.9113) rotate(89.7607) scale(20.0704 10.8125)"><stop stop-color="#D49483"/><stop offset="1" stop-color="#DFB7AC"/></radialGradient><radialGradient id="paint16_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(73.8922 59.9113) rotate(89.7607) scale(20.0704 10.8125)"><stop stop-color="#D49483"/><stop offset="1" stop-color="#DFB7AC"/></radialGradient><radialGradient id="paint17_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(137.527 98.9814) rotate(88.8305) scale(22.0046 57.9126)"><stop stop-color="#D49786"/><stop offset="1" stop-color="#F6D5B0"/></radialGradient><radialGradient id="paint18_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(137.527 98.9814) rotate(88.8305) scale(22.0046 57.9126)"><stop stop-color="#D49786"/><stop offset="1" stop-color="#F6D5B0"/></radialGradient><radialGradient id="paint19_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(137.527 98.9814) rotate(88.8305) scale(22.0046 57.9126)"><stop stop-color="#D49786"/><stop offset="1" stop-color="#F6D5B0"/></radialGradient><radialGradient id="paint20_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(137.527 98.9814) rotate(88.8305) scale(22.0046 57.9126)"><stop stop-color="#D49786"/><stop offset="1" stop-color="#F6D5B0"/></radialGradient><radialGradient id="paint21_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(137.527 98.9814) rotate(88.8305) scale(22.0046 57.9126)"><stop stop-color="#D49786"/><stop offset="1" stop-color="#F6D5B0"/></radialGradient><radialGradient id="paint22_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(137.527 98.9814) rotate(88.8305) scale(22.0046 57.9126)"><stop stop-color="#D49786"/><stop offset="1" stop-color="#F6D5B0"/></radialGradient><radialGradient id="paint23_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(137.527 98.9814) rotate(88.8305) scale(22.0046 57.9126)"><stop stop-color="#D49786"/><stop offset="1" stop-color="#F6D5B0"/></radialGradient><radialGradient id="paint24_radial_1128_52" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(137.527 98.9814) rotate(88.8305) scale(22.0046 57.9126)"><stop stop-color="#D49786"/><stop offset="1" stop-color="#F6D5B0"/></radialGradient></defs>
</svg>
</div>
<div id="profiles-container" class="flex gap-4 justify-center items-center flex-wrap">
<!-- Profiles are rendered here by JS -->
</div>
<div id="menu" class="flex items-center w-56 justify-end">
<div class="flex items-center text-gray-400">
<button id="global-timer-reset" class="p-1 rounded-full hover:bg-gray-700"></button>
<button id="global-timer-start-pause" class="p-1 rounded-full hover:bg-gray-700"></button>
<span id="global-timer-display" class="font-mono ms-3 text-lg">00:00</span>
</div>
<button id="add-profile-btn" class="p-2 rounded-full hover:bg-gray-700 transition-opacity duration-400">
<svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18 9v3m0 0v3m0-3h3m-3 0h-3m-2-5a4 4 0 11-8 0 4 4 0 018 0zM3 20a6 6 0 0112 0v1H3v-1z" /></svg>
</button>
<button id="settings-btn" class="p-2 rounded-full hover:bg-gray-700 transition-opacity duration-400">
<svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" /><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z" /></svg>
</button>
</div>
</header>
<!-- Main Content: Timer -->
<main class="flex-grow flex flex-col items-center relative justify-center -mt-24">
<div id="timer-selection" class="absolute text-center transition-all duration-500 ease-in-out"></div>
<div id="countdown-container" class="absolute w-[350px] h-[350px] md:w-[500px] md:h-[500px] flex items-center justify-center transition-all duration-500 ease-in-out opacity-0 scale-90 -z-10">
<div id="gif-bg" class="gif-background rounded-[2.5rem]"></div>
<svg class="absolute w-full h-full top-0 left-0 z-10" viewBox="0 0 500 500">
<defs>
<linearGradient id="gradient-sky" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="#7dd3fc"/><stop offset="100%" stop-color="#2563eb"/></linearGradient>
<linearGradient id="gradient-green" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="#4ade80"/><stop offset="100%" stop-color="#16a34a"/></linearGradient>
<linearGradient id="gradient-indigo" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="#818cf8"/><stop offset="100%" stop-color="#7c3aed"/></linearGradient>
</defs>
<path d="M 60,25 L 440,25 A 35,35 0 0 1 475,60 L 475,440 A 35,35 0 0 1 440,475 L 60,475 A 35,35 0 0 1 25,440 L 25,60 A 35,35 0 0 1 60,25 Z" class="text-gray-700/50" stroke-width="25" stroke="currentColor" fill="transparent"/>
<path id="timer-progress" d="M 60,25 L 440,25 A 35,35 0 0 1 475,60 L 475,440 A 35,35 0 0 1 440,475 L 60,475 A 35,35 0 0 1 25,440 L 25,60 A 35,35 0 0 1 60,25 Z" class="timer-path-progress" stroke-width="25" stroke-linecap="round" fill="transparent"/>
</svg>
<span id="time-display" class="relative z-20 text-8xl md:text-9xl font-mono font-bold text-white" style="text-shadow: 0 0 15px rgba(0,0,0,0.8);"></span>
</div>
</main>
<footer class="w-full p-4 flex justify-center items-center gap-4 mb-8">
<div id="footer-buttons" class="flex items-center gap-4 transition-all duration-500">
<button id="toggle-notes-btn" class="px-6 py-3 font-bold rounded-lg text-xs bg-blue-600 hover:bg-blue-500 flex items-center gap-2">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" /></svg>
نمایش نوتها
</button>
<button id="scoreboard-btn" class="px-6 py-3 font-bold rounded-lg text-xs bg-amber-600 hover:bg-amber-500 flex items-center gap-2">
<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M3 10h18M3 14h18m-9-4v8m-7 0h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z" /></svg>
جدول امتیازات
</button>
</div>
<div id="timer-controls" class="flex justify-center -z-10 max-w-0 transition-all duration-500 ease-in-out opacity-0 items-center gap-4">
<button id="pause-resume-btn" class="px-6 py-3 bg-yellow-500 text-gray-900 font-bold rounded-lg hover:bg-yellow-400 flex items-center gap-2"></button>
<button id="reset-btn" class="px-6 py-3 bg-gray-600 text-white font-bold rounded-lg hover:bg-gray-500 flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" /></svg>ریست</button>
<button id="end-btn" class="px-6 py-3 bg-red-600 text-white font-bold rounded-lg hover:bg-red-500 flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" /></svg>پایان</button>
</div>
</footer>
<!-- Modals -->
<div id="generic-modal" class="modal-container fixed inset-0 bg-black bg-opacity-75 flex items-center justify-center z-50 opacity-0 pointer-events-none"></div>
<div id="notes-modal" class="modal-container fixed inset-0 bg-black bg-opacity-75 flex items-center justify-center z-50 opacity-0 pointer-events-none">
<div class="modal-content bg-gray-800 rounded-lg p-6 w-full max-w-3xl text-center opacity-0 scale-95">
<h3 class="text-lg font-bold mb-4">یادداشتها</h3>
<div id="notes-container" class="grid grid-cols-1 gap-2 max-h-[60vh] overflow-y-auto"></div>
<button id="close-notes-modal" class="mt-4 px-4 py-2 bg-gray-600 rounded-lg hover:bg-gray-500 w-full">بستن</button>
</div>
</div>
<div id="scoreboard-modal" class="modal-container fixed inset-0 bg-black bg-opacity-75 flex items-center justify-center z-50 opacity-0 pointer-events-none">
<div class="modal-content bg-gray-800 rounded-lg p-6 w-full max-w-3xl text-center opacity-0 scale-95">
<h3 class="text-lg font-bold mb-4">جدول امتیازات</h3>
<div id="scoreboard-container" class="space-y-2 max-h-[60vh] overflow-y-auto"></div>
<div class="flex justify-between mt-4">
<button id="show-leaderboard-btn" class="px-4 py-2 bg-yellow-500 text-gray-900 font-bold rounded-lg hover:bg-yellow-400">🏆 نمایش لیدربورد</button>
<button id="close-scoreboard-modal" class="px-4 py-2 bg-gray-600 rounded-lg hover:bg-gray-500">بستن</button>
</div>
</div>
</div>
<div id="leaderboard-modal" class="modal-container fixed inset-0 bg-black bg-opacity-75 flex items-center justify-center z-50 opacity-0 pointer-events-none">
<div class="modal-content bg-gray-800 rounded-lg p-6 w-full max-w-md text-center opacity-0 scale-95">
<h3 class="text-lg font-bold mb-4">لیدربورد</h3>
<div id="leaderboard-container" class="space-y-3 max-h-[60vh] overflow-y-auto"></div>
<button id="close-leaderboard-modal" class="mt-4 px-4 py-2 bg-gray-600 rounded-lg hover:bg-gray-500 w-full">بستن</button>
</div>
</div>
<div id="settings-modal" class="modal-container fixed inset-0 bg-black bg-opacity-75 flex items-center justify-center z-50 opacity-0 pointer-events-none">
<div class="modal-content bg-gray-800 rounded-lg p-6 w-full max-w-4xl text-center opacity-0 scale-95 max-h-[90vh] flex flex-col">
<h3 class="text-lg font-bold mb-4">تنظیمات تایمرها</h3>
<div id="presets-container" class="flex-grow overflow-y-auto space-y-4 pr-2"></div>
<div class="mt-4 pt-4 border-t border-gray-700 flex justify-between items-center">
<button id="reset-settings-btn" class="px-4 py-2 bg-red-800 text-white font-bold rounded-lg hover:bg-red-700">بازنشانی به حالت کارخانه</button>
<div>
<button id="add-preset-btn" class="px-4 py-2 bg-indigo-600 text-white font-bold rounded-lg hover:bg-indigo-500 me-2">افزودن تایمر جدید</button>
<button id="save-settings-btn" class="px-4 py-2 bg-green-600 text-white font-bold rounded-lg hover:bg-green-500">ذخیره و بستن</button>
</div>
</div>
</div>
</div>
<div id="global-paste-modal" class="modal-container fixed inset-0 bg-black bg-opacity-75 flex items-center justify-center z-50 opacity-0 pointer-events-none"></div>
<script>
// --- DOM Elements ---
const bodyEl = document.body, menuContainer = document.getElementById('menu'), logoContainer = document.getElementById('logo-container'), mainHeader = document.getElementById('main-header'), profilesContainer = document.getElementById('profiles-container'), addProfileBtn = document.getElementById('add-profile-btn'), notesContainer = document.getElementById('notes-container'), timerSelectionContainer = document.getElementById('timer-selection'), countdownContainer = document.getElementById('countdown-container'), timerControls = document.getElementById('timer-controls'), timeDisplay = document.getElementById('time-display'), progressPath = document.getElementById('timer-progress'), gifBg = document.getElementById('gif-bg'), pauseResumeBtn = document.getElementById('pause-resume-btn'), resetBtn = document.getElementById('reset-btn'), endBtn = document.getElementById('end-btn'), settingsBtn = document.getElementById('settings-btn'), scoreboardBtn = document.getElementById('scoreboard-btn'), footerButtons = document.getElementById('footer-buttons');
// --- State ---
let appData = {};
let timerInterval, alarmInterval, totalTime = 0, remainingTime = 0, isPaused = false, pathLength;
let gifTrackers = {};
const pauseIcon = `<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M15.75 5.25v13.5m-7.5-13.5v13.5" /></svg><span>توقف</span>`;
const playIcon = `<svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.348a1.125 1.125 0 010 1.971l-11.54 6.347a1.125 1.125 0 01-1.667-.985V5.653z" /></svg><span>ادامه</span>`;
const defaultData = {
profiles: [],
presets: [
{ id: 'cooking', label: '👨🍳 پخت و پز', time: 180, gradient: 'sky', gifs: ['https://gifdb.com/images/thumbnail/children-s-cooking-show-d8ybknp8uiid83xj.gif', 'https://i.pinimg.com/originals/d6/20/43/d62043ee5bc42e41af71142f30e3501b.gif', 'https://gifdb.com/images/thumbnail/hairy-man-cooking-f0r41k2usq98s8l4.gif', 'https://i.makeagif.com/media/9-19-2023/fZx86P.gif', 'https://i.gifer.com/iD.gif'] },
{ id: 'selling', label: '💰 فروش', time: 120, gradient: 'green', gifs: ['https://media.tenor.com/UVdyTjo2DHAAAAAM/leonardo-dicaprio-sold-gif.gif', 'https://media.tenor.com/l8AKoc15NRcAAAAM/turkish-swipe-ice-cream.gif', 'https://media.tenor.com/1rHLrnOkiOwAAAAM/shocked-face.gif', 'https://media.tenor.com/1f9xrdM1kL0AAAAM/legend-of-the-stardust-brothers-stardust-brothers.gif'] },
{ id: 'advertising', label: '🎨 نقاشی', time: 60, gradient: 'indigo', gifs: ['https://media.tenor.com/DdnZxQbfO1AAAAAM/bob-ross-bob.gif', 'https://i.pinimg.com/originals/03/f8/ab/03f8abcc4e84b8a97bc5f95da6f5b764.gif', 'https://media.tenor.com/81JaPJoMBy0AAAAM/squidward-painting.gif', 'https://31.media.tumblr.com/953c5280a0958c8047da13e86b2cb75f/tumblr_mohfr3UVjf1rmlt5bo1_500.gif', 'https://media.tenor.com/CDRTzvI7YR4AAAAM/novy-start-delnik.gif', 'https://media.tenor.com/ySG0roklCeEAAAAM/chimpanzee-chimp-painting.gif', 'https://media.tenor.com/-76TV1LYkKkAAAAM/art-painting.gif'] }
],
selectedProfileId: null
};
// --- Data Management ---
const saveData = () => localStorage.setItem('mentimerData', JSON.stringify(appData));
const loadData = () => {
const data = localStorage.getItem('mentimerData');
appData = data ? JSON.parse(data) : JSON.parse(JSON.stringify(defaultData));
renderAll();
};
// --- Rendering ---
const getEmptyStateHTML = (message, icon) => `<div class="text-center col-span-full text-gray-500 py-10"><div class="text-6xl mb-2">${icon}</div><p>${message}</p></div>`;
function renderAll() {
renderProfiles();
renderTimerButtons();
renderNotes();
preloadGifs();
}
function renderProfiles() {
while(profilesContainer.firstChild && profilesContainer.firstChild !== addProfileBtn) {
profilesContainer.removeChild(profilesContainer.firstChild);
}
appData.profiles.forEach(p => {
const profileWrapper = document.createElement('div');
profileWrapper.id = `profile-wrapper-${p.id}`;
profileWrapper.className = 'player-profile-wrapper text-center';
const newProfileImg = document.createElement('img');
newProfileImg.id = `player-img-${p.id}`;
newProfileImg.dataset.profileId = p.id;
newProfileImg.alt = p.name;
newProfileImg.src = p.imgSrc;
newProfileImg.className = 'player-profile relative size-24 rounded-full border-2 border-gray-600 object-cover cursor-pointer';
newProfileImg.onclick = () => selectProfile(p.id);
const nameEl = document.createElement('span');
nameEl.className = 'font-bold mt-2 text-gray-300 block';
nameEl.textContent = p.name;
profileWrapper.appendChild(newProfileImg);
profileWrapper.appendChild(nameEl);
profilesContainer.appendChild(profileWrapper);
});
renderProfileSelection();
}
function renderTimerButtons() {
timerSelectionContainer.innerHTML = `
<div class="flex justify-center items-start gap-6 mb-8">
${appData.presets.map(p => `
<div class="flex flex-col items-center gap-3">
<button data-time="${p.time}" data-gradient="${p.gradient}" data-category="${p.id}" class="timer-btn flex items-center justify-center w-20 h-20 md:w-36 md:h-36 rounded-full bg-gradient-to-br from-${p.gradient}-400 to-${p.gradient}-600 text-white text-xl font-bold shadow-lg hover:scale-105 transition-transform">${formatTime(p.time)}</button>
<span class="text-gray-400">${p.label}</span>
</div>
`).join('')}
</div>
<div class="flex justify-center items-center gap-2">
<input id="custom-time-input" type="text" placeholder="زمان دلخواه (مثال: 5:30)" class="bg-gray-700 text-center text-white placeholder-gray-400 rounded-lg px-4 py-2 w-60 focus:outline-none focus:ring-2 focus:ring-teal-500">
<button id="custom-time-btn" class="px-4 py-2 bg-teal-600 text-white font-bold rounded-lg hover:bg-teal-500 transition-colors">شروع</button>
</div>
`;
document.querySelectorAll('.timer-btn').forEach(b => b.onclick = () => startTimer(parseInt(b.dataset.time), { category: b.dataset.category, gradient: b.dataset.gradient }));
document.getElementById('custom-time-btn').onclick = () => {
const timeParts = document.getElementById('custom-time-input').value.split(':').map(Number);
const seconds = (timeParts[0] || 0) * 60 + (timeParts[1] || 0);
if (seconds > 0) startTimer(seconds, { isCustom: true });
};
}
function renderNotes() {
if (appData.profiles.length === 0) {
notesContainer.innerHTML = getEmptyStateHTML('هیچ بازیکنی اضافه نشده است', '🙅♂️');
return;
}
notesContainer.innerHTML = '';
appData.profiles.forEach(p => {
const noteDiv = document.createElement('div');
noteDiv.className = 'text-start';
noteDiv.innerHTML = `<label class="ms-1 mb-1" for="note-${p.id}">یادداشت ${p.name}</label><textarea id="note-${p.id}" placeholder="یادداشت..." rows="4" class="subtle-textarea w-full">${p.note || ''}</textarea>`;
notesContainer.appendChild(noteDiv);
noteDiv.querySelector('textarea').oninput = (e) => {
const profile = appData.profiles.find(prof => prof.id === p.id);
if (profile) profile.note = e.target.value;
saveData();
};
});
}
function renderProfileSelection() {
document.querySelectorAll('.player-profile').forEach(el => {
const id = parseInt(el.dataset.profileId);
el.classList.toggle('border-yellow-400', id === appData.selectedProfileId);
el.classList.toggle('scale-110', id === appData.selectedProfileId);
el.classList.toggle('shadow-lg', id === appData.selectedProfileId);
el.classList.toggle('border-gray-600', id !== appData.selectedProfileId);
});
}
// --- Core Timer Logic ---
const preloadGifs = () => { appData.presets.flatMap(p => p.gifs).forEach(url => { new Image().src = url; }); };
const formatTime = (s) => { const neg = s < 0; const a = Math.abs(s); const m = Math.floor(a / 60); const r = a % 60; return `${neg?'-':''}${String(m).padStart(2,'0')}:${String(r).padStart(2,'0')}`; };
const setProgress = (p) => { if (!pathLength) return; const offset = pathLength - (p / 100) * pathLength; progressPath.style.strokeDashoffset = Math.max(0, offset); };
function updateTimerDisplay() { timeDisplay.textContent = formatTime(remainingTime); setProgress(totalTime > 0 ? (remainingTime / totalTime) * 100 : 0); countdownContainer.classList.toggle('pulse-warning', remainingTime <= 10 && remainingTime > 0 && !isPaused); }
function triggerAlarm() { clearInterval(timerInterval); countdownContainer.classList.remove('pulse-warning'); countdownContainer.classList.add('shake-alarm'); bodyEl.classList.add('flash-red'); gifBg.style.opacity = '0.2'; progressPath.style.opacity = '0.2'; alarmInterval = setInterval(() => { remainingTime--; updateTimerDisplay(); }, 1000); }
function runTimer() { if (isPaused) return; timerInterval = setInterval(() => { remainingTime--; updateTimerDisplay(); if (remainingTime < 0) triggerAlarm(); }, 1000); }
function startTimer(duration, options = {}) {
totalTime = duration; remainingTime = duration; isPaused = false;
const { category, gradient, isCustom } = options;
if (appData.selectedProfileId !== null) {
mainHeader.classList.add('opacity-0');
}
footerButtons.classList.add('hidden', 'pointer-events-none');
gifBg.style.backgroundImage = ''; gifBg.style.background = ''; gifBg.style.animation = '';
if (isCustom) {
gifBg.style.background = 'linear-gradient(-45deg, #f97316, #fde047, #38bdf8, #4ade80)';
gifBg.style.backgroundSize = '400% 400%';
gifBg.style.animation = 'summer-breeze 15s ease infinite';
progressPath.setAttribute('stroke', '#A9A9A9');
} else {
const preset = appData.presets.find(p => p.id === category);
if (preset && preset.gifs.length > 0) {
if (gifTrackers[category] === undefined) {
gifTrackers[category] = 0;
}
const gifUrl = preset.gifs[gifTrackers[category]];
gifBg.style.backgroundImage = `url(${gifUrl})`;
gifTrackers[category] = (gifTrackers[category] + 1) % preset.gifs.length;
}
progressPath.setAttribute('stroke', `url(#gradient-${gradient})`);
}
timerSelectionContainer.classList.add('opacity-0', 'scale-90', '-z-10');
setTimeout(() => { countdownContainer.classList.remove('opacity-0', 'scale-90', '-z-10'); timerControls.classList.remove('max-w-0', 'opacity-0', '-z-10'); }, 100);
pauseResumeBtn.innerHTML = pauseIcon;
updateTimerDisplay();
runTimer();
}
function cleanupAlarm() { clearInterval(alarmInterval); bodyEl.classList.remove('flash-red'); countdownContainer.classList.remove('shake-alarm', 'pulse-warning'); gifBg.style.opacity = '1'; progressPath.style.opacity = '1'; }
function endTimer() {
clearInterval(timerInterval);
cleanupAlarm();
if (appData.selectedProfileId !== null) {
mainHeader.classList.remove('opacity-0');
}
Array.from(profilesContainer.children).forEach(el => el.classList.remove('opacity-0'));
appData.selectedProfileId = null;
renderProfileSelection();
countdownContainer.classList.add('opacity-0', 'scale-90', '-z-10');
timerControls.classList.add('opacity-0', '-z-10', 'max-w-0');
setTimeout(() => {
footerButtons.classList.remove('hidden', 'pointer-events-none');
timerSelectionContainer.classList.remove('opacity-0', 'scale-90', '-z-10');
}, 400);
}
function handlePauseResume() { isPaused = !isPaused; pauseResumeBtn.innerHTML = isPaused ? playIcon : pauseIcon; gifBg.style.opacity = isPaused ? '0.2' : '1'; if (isPaused) clearInterval(timerInterval); else runTimer(); }
function handleReset() { clearInterval(timerInterval); cleanupAlarm(); remainingTime = totalTime; isPaused = false; pauseResumeBtn.innerHTML = pauseIcon; gifBg.style.opacity = '1'; updateTimerDisplay(); runTimer(); }
// --- Modal Logic ---
const globalPasteModalEl = document.getElementById('global-paste-modal'), notesModalEl = document.getElementById('notes-modal'), settingsModalEl = document.getElementById('settings-modal'), scoreboardModalEl = document.getElementById('scoreboard-modal'), leaderboardModalEl = document.getElementById('leaderboard-modal'), genericModalEl = document.getElementById('generic-modal');
let pastedImageUrl = null;
function showModal(modalEl) { modalEl.classList.remove('pointer-events-none'); setTimeout(() => { modalEl.classList.remove('opacity-0'); modalEl.querySelector('.modal-content')?.classList.remove('opacity-0', 'scale-95'); }, 10); }
function hideModal(modalEl) { modalEl.classList.add('opacity-0'); modalEl.querySelector('.modal-content')?.classList.add('opacity-0', 'scale-95'); setTimeout(() => { modalEl.classList.add('pointer-events-none'); }, 300); }
function showGlobalPasteModal(imageUrl) {
globalPasteModalEl.innerHTML = `<div class="modal-content bg-gray-800 rounded-lg p-6 w-full max-w-md text-center opacity-0 scale-95"><h3 class="text-lg font-bold mb-4">انتخاب پروفایل</h3><p class="text-gray-400 mb-4">تصویر زیر را برای کدام پروفایل تنظیم میکنید؟</p><img src="${imageUrl}" class="w-24 h-24 rounded-lg object-contain mx-auto mb-4"><div class="grid grid-cols-2 gap-4" id="global-profile-selection"></div><button id="global-cancel-btn" class="mt-4 px-4 py-2 bg-gray-600 rounded-lg hover:bg-gray-500 w-full">انصراف</button></div>`;
const selectionContainer = globalPasteModalEl.querySelector('#global-profile-selection');
appData.profiles.forEach(p => {
const profileDiv = document.createElement('div');
profileDiv.className = 'flex items-center gap-2 p-2 rounded-lg cursor-pointer hover:bg-gray-700';
profileDiv.innerHTML = `<img src="${p.imgSrc}" class="w-12 h-12 rounded-full object-cover"><span class="text-white">${p.name}</span>`;
profileDiv.onclick = () => { p.imgSrc = imageUrl; saveData(); renderProfiles(); hideAllModals(); };
selectionContainer.appendChild(profileDiv);
});
showModal(globalPasteModalEl);
globalPasteModalEl.querySelector('#global-cancel-btn').onclick = hideAllModals;
}
function hideAllModals() { [globalPasteModalEl, notesModalEl, settingsModalEl, scoreboardModalEl, leaderboardModalEl, genericModalEl].forEach(hideModal); if (pastedImageUrl) URL.revokeObjectURL(pastedImageUrl); pastedImageUrl = null; }
function handlePaste(e) {
const isModalOpen = !!document.querySelector('.modal-container:not(.pointer-events-none)');
const isTyping = e.target.tagName === 'TEXTAREA' || e.target.tagName === 'INPUT';
if (isTyping || isModalOpen) return;
const items = (e.clipboardData || window.clipboardData).items;
let imageFile = null;
for (let item of items) { if (item.type.indexOf('image') !== -1) { imageFile = item.getAsFile(); break; } }
if (imageFile) {
e.preventDefault();
const reader = new FileReader();
reader.onload = (event) => {
showGlobalPasteModal(event.target.result);
};
reader.readAsDataURL(imageFile);
}
}
// --- Settings Modal Logic ---
function renderSettings() {
const presetsContainer = document.getElementById('presets-container');
if (appData.presets.length === 0) {
presetsContainer.innerHTML = getEmptyStateHTML('هیچ تایمر پیشفرضی وجود ندارد', '⏱️');
return;
}
presetsContainer.innerHTML = '';
appData.presets.forEach((preset, index) => {
const presetEl = document.createElement('div');
presetEl.className = 'p-4 bg-gray-700 rounded-lg grid grid-cols-1 md:grid-cols-4 gap-4 items-start';
presetEl.innerHTML = `
<div class="space-y-2"><label class="block text-sm font-medium text-gray-300">لیبل</label><input type="text" value="${preset.label}" class="data-label bg-gray-800 text-white rounded-md p-2 w-full"></div>
<div class="space-y-2"><label class="block text-sm font-medium text-gray-300">زمان (m:ss)</label><input type="text" value="${formatTime(preset.time)}" class="data-time bg-gray-800 text-white rounded-md p-2 w-full"></div>
<div class="space-y-2"><label class="block text-sm font-medium text-gray-300">رنگ گرادیان</label><input type="text" value="${preset.gradient}" class="data-gradient bg-gray-800 text-white rounded-md p-2 w-full"></div>
<div class="space-y-2 mt-3"><button class="remove-preset-btn w-full mt-4 px-4 py-2 bg-red-600 text-white font-bold rounded-lg hover:bg-red-500" data-index="${index}">حذف</button></div>
<div class="space-y-2 col-span-full"><label class="block text-sm font-medium text-gray-300">لینک گیفها (هر لینک در یک خط)</label><textarea rows="5" class="data-gifs bg-gray-800 text-white rounded-md p-2 w-full">${preset.gifs.join('\n')}</textarea></div>
`;
presetsContainer.appendChild(presetEl);
});
document.querySelectorAll('.remove-preset-btn').forEach(btn => btn.onclick = (e) => { appData.presets.splice(e.target.dataset.index, 1); renderSettings(); });
}
// --- Scoreboard & Leaderboard Logic ---
function renderScoreboard() {
const container = document.getElementById('scoreboard-container');
if (appData.profiles.length === 0) {
container.innerHTML = getEmptyStateHTML('هیچ بازیکنی برای نمایش امتیاز وجود ندارد', '🏆');
return;
}
container.innerHTML = '';
appData.profiles.forEach(p => {
const totalScore = (p.scores || []).reduce((sum, score) => sum + score, 0);
const scoreRow = document.createElement('div');
scoreRow.className = 'flex items-center justify-between p-2 bg-gray-700 rounded-lg';
scoreRow.innerHTML = `
<div class="flex items-center gap-3">
<img src="${p.imgSrc}" class="size-12 rounded-full object-cover">
<span class="font-bold">${p.name}</span>
</div>
<div class="flex items-center gap-3">
<span class="font-bold text-xl">${totalScore}</span>
<div class="add-score-container flex gap-1">
<input type="number" class="score-input bg-gray-800 w-20 text-center rounded-md p-1 hidden">
<button class="add-score-btn px-3 py-1 bg-green-600 rounded-md hover:bg-green-500">+</button>
</div>
</div>
`;
container.appendChild(scoreRow);
const addBtn = scoreRow.querySelector('.add-score-btn');
const scoreInput = scoreRow.querySelector('.score-input');
addBtn.onclick = () => {
if (scoreInput.classList.contains('hidden')) {
scoreInput.classList.remove('hidden');
scoreInput.focus();
addBtn.textContent = '✔';
} else {
const score = parseInt(scoreInput.value);
if (!isNaN(score)) {
p.scores.push(score);
saveData();
renderScoreboard();
}
scoreInput.classList.add('hidden');
scoreInput.value = '';
addBtn.textContent = '+';
}
};
});
}
function renderLeaderboard() {
const container = document.getElementById('leaderboard-container');
if (appData.profiles.length === 0) {
container.innerHTML = getEmptyStateHTML('هیچ بازیکنی برای رتبهبندی وجود ندارد', '🥇');
showModal(leaderboardModalEl);
return;
}
container.innerHTML = '';
const sortedProfiles = [...appData.profiles]
.map(p => ({ ...p, totalScore: (p.scores || []).reduce((sum, score) => sum + score, 0) }))
.sort((a, b) => b.totalScore - a.totalScore);
sortedProfiles.forEach((p, index) => {
let rankClasses = 'bg-gray-700';
let rankIcon = '';
if (index === 0 && p.totalScore > 0) {rankClasses = 'bg-gradient-to-r from-amber-500 to-yellow-400 text-gray-900'; rankIcon = '<span class="text-4xl">🏆</span>'; }
const rankRow = document.createElement('div');
rankRow.className = `flex items-center justify-between p-3 rounded-lg ${rankClasses} shadow-lg`;
rankRow.innerHTML = `
<img src="${p.imgSrc}" class="size-12 rounded-full object-cover border-2 border-gray-300">
<div class="flex w-full flex-col gap-2">
${rankIcon && `<p>${rankIcon}</p>`}
<p class="font-bold text-lg">${p.name}</p>
</div>
<div class="flex flex-col">
<p class="font-bold text-2xl">${p.totalScore}</p>
<p class="font-bold text-xs">امتیاز</p>
</div>
`;
container.appendChild(rankRow);
});
showModal(leaderboardModalEl);
}
// --- Profile Management ---
function addProfile() {
showPromptModal("لطفاً نام بازیکن جدید را وارد کنید:", (name) => {
if (name && name.trim() !== '') {
const newId = appData.profiles.length > 0 ? Math.max(...appData.profiles.map(p => p.id)) + 1 : 1;
appData.profiles.push({ id: newId, name: name.trim(), imgSrc: `https://placehold.co/80x80/4b5563/e5e7eb?text=${name.trim().charAt(0)}`, note: '', scores: [] });
saveData();
renderAll();
}
});
}
function selectProfile(profileId) {
appData.selectedProfileId = appData.selectedProfileId === profileId ? null : profileId;
renderProfileSelection();
}
// --- Generic Modal for Prompt/Confirm ---
function showPromptModal(message, onConfirm) {
genericModalEl.innerHTML = `<div class="modal-content z-100 bg-gray-800 rounded-lg p-6 w-full max-w-sm text-center opacity-0 scale-95"><h3 class="text-lg font-bold mb-4">${message}</h3><input id="prompt-input" class="bg-gray-700 text-white rounded-md p-2 w-full mb-4"><div class="flex justify-end gap-4"><button id="prompt-cancel" class="px-4 py-2 bg-gray-600 rounded-lg hover:bg-gray-500">انصراف</button><button id="prompt-confirm" class="px-4 py-2 bg-blue-600 rounded-lg hover:bg-blue-500">تایید</button></div></div>`;
showModal(genericModalEl);
const input = genericModalEl.querySelector('#prompt-input');
input.focus();
genericModalEl.querySelector('#prompt-confirm').onclick = () => {
onConfirm(input.value);
hideModal(genericModalEl);
};
genericModalEl.querySelector('#prompt-cancel').onclick = () => hideModal(genericModalEl);
}
function showConfirmModal(message, onConfirm) {
genericModalEl.innerHTML = `<div class="modal-content bg-gray-800 rounded-lg p-6 w-full max-w-sm text-center opacity-0 scale-95"><h3 class="text-lg font-bold mb-4">${message}</h3><div class="flex justify-end gap-4"><button id="confirm-cancel" class="px-4 py-2 bg-gray-600 rounded-lg hover:bg-gray-500">انصراف</button><button id="confirm-confirm" class="px-4 py-2 bg-red-600 rounded-lg hover:bg-red-500">تایید</button></div></div>`;
showModal(genericModalEl);
genericModalEl.querySelector('#confirm-confirm').onclick = () => {
onConfirm();
hideModal(genericModalEl);
};
genericModalEl.querySelector('#confirm-cancel').onclick = () => hideModal(genericModalEl);
}
// --- Event Listeners & Init ---
window.addEventListener('load', () => {
loadData();
pathLength = progressPath.getTotalLength();
progressPath.style.strokeDasharray = pathLength;
progressPath.style.strokeDashoffset = pathLength;
document.getElementById('toggle-notes-btn').onclick = () => { renderNotes(); showModal(notesModalEl); };
document.getElementById('close-notes-modal').onclick = hideAllModals;
settingsBtn.onclick = () => { renderSettings(); showModal(settingsModalEl); };
document.getElementById('save-settings-btn').onclick = () => {
const newPresets = [];
document.querySelectorAll('#presets-container > div').forEach(el => {
const timeParts = el.querySelector('.data-time').value.split(':').map(Number);
newPresets.push({
id: `custom-${Date.now()}-${Math.random()}`,
label: el.querySelector('.data-label').value,
time: (timeParts[0] || 0) * 60 + (timeParts[1] || 0),
gradient: el.querySelector('.data-gradient').value,
gifs: el.querySelector('.data-gifs').value.split('\n').filter(url => url.trim() !== '')
});
});
appData.presets = newPresets;
saveData();
renderTimerButtons();
hideAllModals();
};
document.getElementById('add-preset-btn').onclick = () => { appData.presets.push({ id: `new-${Date.now()}`, label: 'تایمر جدید', time: 60, gradient: 'gray', gifs: [] }); renderSettings(); };
document.getElementById('reset-settings-btn').onclick = () => {
showConfirmModal('آیا مطمئن هستید؟ تمام پروفایلها و تنظیمات شما به حالت اولیه بازمیگردد.', () => {
localStorage.removeItem('mentimerData');
loadData();
hideAllModals();
});
};
scoreboardBtn.onclick = () => { renderScoreboard(); showModal(scoreboardModalEl); };
document.getElementById('close-scoreboard-modal').onclick = hideAllModals;
document.getElementById('show-leaderboard-btn').onclick = renderLeaderboard;
document.getElementById('close-leaderboard-modal').onclick = hideAllModals;
// Global Timer Init
const globalTimerDisplay = document.getElementById('global-timer-display');
const globalTimerStartPause = document.getElementById('global-timer-start-pause');
const globalTimerReset = document.getElementById('global-timer-reset');
let g_seconds = 0, g_interval = null, g_isRunning = false;
const g_playIcon = `<svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"></path><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>`;
const g_pauseIcon = `<svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 9v6m4-6v6m7-3a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>`;
const g_resetIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6"><path stroke-linecap="round" stroke-linejoin="round" d="M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" /><path stroke-linecap="round" stroke-linejoin="round" d="M9 9.563C9 9.252 9.252 9 9.563 9h4.874c.311 0 .563.252.563.563v4.874c0 .311-.252.563-.563.563H9.564A.562.562 0 0 1 9 14.437V9.564Z" /></svg>`;
globalTimerStartPause.innerHTML = g_playIcon;
globalTimerReset.innerHTML = g_resetIcon;
function updateGlobalTimer() {
g_seconds++;
const mins = Math.floor(g_seconds / 60);
const secs = g_seconds % 60;
globalTimerDisplay.textContent = `${String(mins).padStart(2, '0')}:${String(secs).padStart(2, '0')}`;
}
globalTimerStartPause.onclick = () => {
if (g_isRunning) {
clearInterval(g_interval);
globalTimerStartPause.innerHTML = g_playIcon;
} else {
g_interval = setInterval(updateGlobalTimer, 1000);
globalTimerStartPause.innerHTML = g_pauseIcon;
}
g_isRunning = !g_isRunning;
};
globalTimerReset.onclick = () => {
clearInterval(g_interval);
g_isRunning = false;
g_seconds = 0;
globalTimerDisplay.textContent = '00:00';
globalTimerStartPause.innerHTML = g_playIcon;
};
});
window.addEventListener('paste', handlePaste);
addProfileBtn.onclick = addProfile;
pauseResumeBtn.onclick = handlePauseResume;
resetBtn.onclick = handleReset;
endBtn.onclick = endTimer;
</script>
</body>
</html>