@pkg-nec/emulatorjs 4.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/.gitattributes +1 -0
  2. package/CHANGES.md +528 -0
  3. package/CODE_OF_CONDUCT.md +128 -0
  4. package/CONTRIBUTING.md +31 -0
  5. package/LICENSE +674 -0
  6. package/README.md +284 -0
  7. package/data/compression/README.md +11 -0
  8. package/data/compression/extract7z.js +1 -0
  9. package/data/compression/extractzip.js +1 -0
  10. package/data/compression/libunrar.js +519 -0
  11. package/data/compression/libunrar.wasm +0 -0
  12. package/data/cores/README.md +22 -0
  13. package/data/cores/package.json +65 -0
  14. package/data/emulator.css +1614 -0
  15. package/data/loader.js +170 -0
  16. package/data/localization/README.md +63 -0
  17. package/data/localization/af-FR.json +339 -0
  18. package/data/localization/ar-AR.json +301 -0
  19. package/data/localization/ben-BEN.json +301 -0
  20. package/data/localization/de-GER.json +301 -0
  21. package/data/localization/el-GR.json +301 -0
  22. package/data/localization/en-US.json +339 -0
  23. package/data/localization/es-ES.json +310 -0
  24. package/data/localization/fa-AF.json +310 -0
  25. package/data/localization/hi-HI.json +301 -0
  26. package/data/localization/it-IT.json +302 -0
  27. package/data/localization/ja-JA.json +301 -0
  28. package/data/localization/jv-JV.json +301 -0
  29. package/data/localization/ko-KO.json +336 -0
  30. package/data/localization/pt-BR.json +361 -0
  31. package/data/localization/retroarch.json +617 -0
  32. package/data/localization/ro-RO.json +310 -0
  33. package/data/localization/ru-RU.json +301 -0
  34. package/data/localization/tr-TR.json +310 -0
  35. package/data/localization/vi-VN.json +302 -0
  36. package/data/localization/zh-CN.json +351 -0
  37. package/data/src/GameManager.js +464 -0
  38. package/data/src/compression.js +142 -0
  39. package/data/src/emulator.js +6158 -0
  40. package/data/src/gamepad.js +167 -0
  41. package/data/src/nipplejs.js +1 -0
  42. package/data/src/shaders.js +236 -0
  43. package/data/src/socket.io.min.js +7 -0
  44. package/data/src/storage.js +125 -0
  45. package/data/version.json +5 -0
  46. package/docs/Logo-light.png +0 -0
  47. package/docs/Logo.png +0 -0
  48. package/docs/Logo.svg +4487 -0
  49. package/docs/contributors.json +46 -0
  50. package/docs/contributors.md +125 -0
  51. package/docs/favicon.ico +0 -0
  52. package/index.html +269 -0
  53. package/package.json +35 -0
@@ -0,0 +1,1614 @@
1
+ .ejs_parent {
2
+ background: #000;
3
+ overflow: hidden;
4
+ position: relative;
5
+ font-family: Avenir, "Avenir Next", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;
6
+ -webkit-user-select: none;
7
+ -moz-user-select: none;
8
+ -ms-user-select: none;
9
+ user-select: none;
10
+ font-weight: 500;
11
+ line-height: 1.7;
12
+ width: 100%;
13
+ height: 100%;
14
+ color: #bcbcbc;
15
+ outline-width: 0;
16
+ outline: none;
17
+ font-size: 14px;
18
+ }
19
+
20
+ .ejs_parent *,
21
+ .ejs_parent *::after,
22
+ .ejs_parent *::before {
23
+ font-family: Avenir, "Avenir Next", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;
24
+ box-sizing: border-box;
25
+
26
+ -webkit-user-select: none;
27
+ -moz-user-select: none;
28
+ -ms-user-select: none;
29
+ user-select: none;
30
+ }
31
+
32
+ .ejs_parent ::-webkit-scrollbar {
33
+ width: 8px;
34
+ height: 16px;
35
+ }
36
+
37
+ .ejs_parent ::-webkit-scrollbar-thumb {
38
+ border-radius: 10px;
39
+ background: rgba(var(--ejs-primary-color));
40
+ }
41
+
42
+ .ejs_parent ::-webkit-scrollbar-track {
43
+ border-radius: 10px;
44
+ background: rgba(64, 64, 64, 0.5)
45
+ }
46
+
47
+ .ejs_ad_iframe {
48
+ position: absolute;
49
+ left: 50%;
50
+ top: 50%;
51
+ z-index: 1;
52
+ transform: translate(-50%, -50%);
53
+ }
54
+
55
+ .ejs_ad_close {
56
+ cursor: pointer;
57
+ }
58
+
59
+ .ejs_ad_close:after {
60
+ content: "";
61
+ position: absolute;
62
+ border-left: 20px solid transparent;
63
+ border-right: 20px solid #a7a7a77d;
64
+ border-top: 20px solid #a7a7a77d;
65
+ border-bottom: 20px solid transparent;
66
+ right: 0;
67
+ }
68
+
69
+ .ejs_ad_close a {
70
+ right: 4px;
71
+ top: 4px;
72
+ position: absolute;
73
+ border: 0;
74
+ padding: 0;
75
+ width: 15px;
76
+ height: 15px;
77
+ z-index: 99;
78
+ }
79
+
80
+ .ejs_ad_close a:before {
81
+ content: "";
82
+ border-bottom: 1px solid #fff;
83
+ transform: rotate(45deg) translateY(-45%);
84
+ width: 15px;
85
+ height: 15px;
86
+ display: block;
87
+ position: absolute;
88
+ top: 0;
89
+ right: 0;
90
+ }
91
+
92
+ .ejs_ad_close a:after {
93
+ content: "";
94
+ border-bottom: 1px solid #fff;
95
+ width: 15px;
96
+ height: 15px;
97
+ display: block;
98
+ position: absolute;
99
+ right: 0;
100
+ background: transparent;
101
+ top: 0;
102
+ transform: rotate(-45deg) translateY(-50%) translateX(0);
103
+ }
104
+
105
+ .ejs_game {
106
+ width: inherit;
107
+ height: inherit;
108
+ background-color: var(--ejs-background-color);
109
+ cursor: default;
110
+ position: relative;
111
+ overflow: hidden;
112
+ }
113
+
114
+ .ejs_game_background {
115
+ background-image: var(--ejs-background-image);
116
+ background-size: contain;
117
+ background-position: center center;
118
+ background-repeat: no-repeat;
119
+ text-align: -webkit-auto;
120
+ }
121
+
122
+ .ejs_game_background_blur:before,
123
+ .ejs_game_background_blur:after {
124
+ content: "";
125
+ position: absolute;
126
+ width: 100%;
127
+ height: 100%;
128
+ background: var(--ejs-background-image);
129
+ background-repeat: no-repeat;
130
+ background-position: center;
131
+ background-size: contain;
132
+ }
133
+
134
+ .ejs_game_background_blur:before {
135
+ background-size: cover;
136
+ filter: blur(10px);
137
+ transform: scale(1.1);
138
+ }
139
+
140
+ .ejs_start_button {
141
+ position: absolute;
142
+ bottom: 65px;
143
+ left: 50%;
144
+ transform: translateX(-50%);
145
+ cursor: pointer;
146
+ box-sizing: inherit;
147
+ display: flex;
148
+ justify-content: center;
149
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
150
+ font-size: 20px;
151
+ line-height: 45px;
152
+ text-transform: uppercase;
153
+ font-weight: bolder;
154
+ position: relative;
155
+ text-decoration: none;
156
+ width: fit-content;
157
+ padding-left: 40px;
158
+ padding-right: 40px;
159
+ white-space: nowrap;
160
+ height: 45px;
161
+ border: 0;
162
+ color: #fff !important;
163
+ border-radius: 35px;
164
+ text-align: center;
165
+ background-color: rgba(var(--ejs-primary-color), 1);
166
+ box-shadow: 0 0 0 0 #222, 0 0px 0px 0 #111, inset 0 0px 0px 0 rgba(250, 250, 250, 0.2), inset 0 0px 0px 0px rgba(0, 0, 0, 0.5);
167
+ }
168
+
169
+ .ejs_start_button_border {
170
+ border: 0.5px solid #333;
171
+ }
172
+
173
+ .ejs_start_button:active,
174
+ .ejs_start_button:hover {
175
+ animation: ejs_start_button_pulse 2s infinite;
176
+ }
177
+
178
+ @keyframes ejs_start_button_pulse {
179
+ 50% {
180
+ box-shadow: 0 0 0 0 #222, 0 3px 7px 0 #111, inset 0 1px 1px 0 rgba(250, 250, 250, 0.2), inset 0 0px 15px 1px rgba(0, 0, 0, 0.5);
181
+ }
182
+
183
+ 0%,
184
+ 100% {
185
+ box-shadow: 0 0 0 0 #222, 0 0px 0px 0 #111, inset 0 0px 0px 0 rgba(250, 250, 250, 0.2), inset 0 0px 0px 0px rgba(0, 0, 0, 0.5);
186
+ }
187
+ }
188
+
189
+ .ejs_loading_text {
190
+ position: absolute;
191
+ bottom: 20px;
192
+ font-weight: 500;
193
+ left: 50%;
194
+ transform: translateX(-50%);
195
+ box-sizing: inherit;
196
+ font-size: 12px;
197
+ color: #bcbcbc;
198
+ text-align: center;
199
+ text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
200
+ }
201
+
202
+ .ejs_loading_text_glow {
203
+ background-color: rgba(0, 0, 0, 0.9);
204
+ border-radius: 10px;
205
+ padding: 1px 5px 1px 5px;
206
+ box-shadow: 0 0 30px rgba(0, 0, 0, 0.9);
207
+ }
208
+
209
+ .ejs_error_text {
210
+ bottom: 10%;
211
+ color: #F82300;
212
+ border-radius: 15px;
213
+ padding: 1.5px 8px 1.5px 8px;
214
+ font-weight: bold;
215
+ background-color: rgba(0, 0, 0, 0.6);
216
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.7);
217
+ }
218
+
219
+ .ejs_canvas {
220
+ width: 100%;
221
+ height: 100%;
222
+ }
223
+
224
+ .ejs_canvas_parent {
225
+ width: 100%;
226
+ height: 100%;
227
+ }
228
+
229
+ .ejs_context_menu {
230
+ position: absolute;
231
+ display: none;
232
+ z-index: 9;
233
+ background: rgba(16, 16, 16, 0.9);
234
+ border-radius: 3px;
235
+ font-size: 13px;
236
+ min-width: 140px;
237
+ padding: 8px;
238
+ box-sizing: inherit;
239
+ }
240
+
241
+ .ejs_context_menu li {
242
+ padding: 4px 11px;
243
+ text-align: center;
244
+ }
245
+
246
+ .ejs_context_menu li a {
247
+ color: #999;
248
+ display: block;
249
+ font-size: 13px;
250
+ }
251
+
252
+ .ejs_context_menu ul {
253
+ color: #999;
254
+ display: block;
255
+ font-size: 13px;
256
+ list-style: none;
257
+ margin: 0;
258
+ padding: 0;
259
+ }
260
+
261
+ .ejs_context_menu li:hover {
262
+ background: rgba(var(--ejs-primary-color), 1);
263
+ border-radius: 4px;
264
+ box-shadow: 0 0 0 5px rgba(var(--ejs-primary-color), 0.5);
265
+ outline: 0;
266
+ }
267
+
268
+ .ejs_context_menu li:hover a {
269
+ color: #fff;
270
+ }
271
+
272
+ .ejs_context_menu_tab {
273
+ text-align: center;
274
+ width: 100%;
275
+ padding: 10px;
276
+ overflow-wrap: anywhere;
277
+ }
278
+
279
+ .ejs_list_selector {
280
+ background: rgba(0, 0, 0, 0.5);
281
+ border-radius: 3px;
282
+ font-size: 13px;
283
+ min-width: 140px;
284
+ padding: 8px;
285
+ box-sizing: inherit;
286
+ width: 10%;
287
+ max-width: 15%;
288
+ top: 10%;
289
+ left: 0px;
290
+ height: 80%;
291
+ overflow: auto;
292
+ position: sticky;
293
+ }
294
+
295
+ .ejs_list_selector li {
296
+ padding: 4px 11px;
297
+ text-align: center;
298
+ }
299
+
300
+ .ejs_list_selector li a {
301
+ color: #999;
302
+ display: block;
303
+ font-size: 13px;
304
+ }
305
+
306
+ .ejs_list_selector ul {
307
+ color: #999 !important;
308
+ display: block;
309
+ font-size: 13px;
310
+ list-style: none;
311
+ margin: 0;
312
+ padding: 0;
313
+ }
314
+
315
+ .ejs_list_selector li:hover {
316
+ background: rgba(var(--ejs-primary-color), 1);
317
+ border-radius: 4px;
318
+ box-shadow: 0 0 0 5px rgba(var(--ejs-primary-color), 0.5);
319
+ outline: 0;
320
+ }
321
+
322
+ .ejs_list_selector li:hover a {
323
+ color: #fff !important;
324
+ }
325
+
326
+ .ejs_active_list_element {
327
+ background: rgba(var(--ejs-primary-color), 1);
328
+ border-radius: 4px;
329
+ box-shadow: 0 0 0 5px rgba(var(--ejs-primary-color), 0.25);
330
+ outline: 0;
331
+ color: #fff !important;
332
+ }
333
+
334
+ .ejs_active_list_element a {
335
+ color: #fff !important;
336
+ }
337
+
338
+ .ejs_svg_rotate {
339
+ transform: rotate(90deg);
340
+ }
341
+
342
+ .ejs_small_screen .ejs_settings_parent::before {
343
+ border: none;
344
+ }
345
+
346
+ .ejs_small_screen .ejs_settings_parent::after {
347
+ border: none;
348
+ }
349
+
350
+ .ejs_small_screen .ejs_settings_center_right {
351
+ right: -35%
352
+ }
353
+
354
+ .ejs_small_screen .ejs_settings_center_left {
355
+ right: -135%
356
+ }
357
+
358
+ .ejs_small_screen .ejs_settings_center_right::after {
359
+ right: 25%;
360
+ }
361
+
362
+ .ejs_small_screen .ejs_settings_center_left::after {
363
+ left: 25%;
364
+ }
365
+
366
+ .ejs_small_screen .ejs_menu_bar {
367
+ transition: opacity .4s ease-in-out, transform .4s ease-in-out;
368
+ position: absolute;
369
+ transform: translate(-50%, 0);
370
+ width: 300px;
371
+ max-height: 260px;
372
+ display: flex;
373
+ flex-wrap: wrap;
374
+ align-items: flex-start;
375
+ background: rgba(0, 0, 0, .9);
376
+ padding: 10px;
377
+ z-index: 9999;
378
+ left: 50%;
379
+ bottom: 0;
380
+ color: #fff;
381
+ }
382
+
383
+ .ejs_small_screen .ejs_menu_bar_hidden {
384
+ opacity: 0;
385
+ pointer-events: none;
386
+ transform: translate(-50%, 100%);
387
+ }
388
+
389
+ .ejs_small_screen .ejs_menu_button {
390
+ width: 135px;
391
+ margin: 0px;
392
+ margin-left: 2px !important;
393
+ margin-right: 0 !important;
394
+ line-height: 1;
395
+ background: 0 0;
396
+ border: 0;
397
+ border-radius: 3px;
398
+ color: inherit;
399
+ cursor: pointer;
400
+ flex-shrink: 0;
401
+ overflow: visible;
402
+ padding: 7px;
403
+ position: relative;
404
+ transition: all .3s ease;
405
+ }
406
+
407
+ .ejs_small_screen .ejs_menu_button:hover {
408
+ background: rgba(var(--ejs-primary-color), 1);
409
+ color: #fff;
410
+ box-shadow: none;
411
+ }
412
+
413
+ .ejs_small_screen .ejs_menu_button svg {
414
+ float: left;
415
+ transition: transform .3s ease;
416
+ }
417
+
418
+ .ejs_small_screen .ejs_menu_text {
419
+ position: static;
420
+ color: #fff;
421
+ background: 0 0;
422
+ opacity: 1;
423
+ padding: 0;
424
+ transform: scale(.8) !important;
425
+ font-size: 12px;
426
+ }
427
+
428
+ .ejs_small_screen .ejs_menu_bar_spacer {
429
+ display: none;
430
+ }
431
+
432
+ .ejs_small_screen .ejs_volume_parent span {
433
+ display: none;
434
+ }
435
+
436
+ .ejs_small_screen .ejs_volume_parent button {
437
+ width: 30px;
438
+ }
439
+
440
+ .ejs_big_screen .ejs_menu_bar_hidden {
441
+ opacity: 0;
442
+ pointer-events: none;
443
+ transform: translateY(100%);
444
+ }
445
+
446
+ .ejs_big_screen .ejs_settings_parent {
447
+ right: -3px;
448
+ }
449
+
450
+ /* .ejs_big_screen .ejs_settings_parent::after {
451
+ right: 15px;
452
+ } */
453
+ .ejs_big_screen .ejs_settings_text {
454
+ display: none;
455
+ }
456
+
457
+ .ejs_big_screen .ejs_disks_text {
458
+ display: none;
459
+ }
460
+
461
+ .ejs_big_screen .ejs_menu_bar_spacer {
462
+ flex: 1;
463
+ }
464
+
465
+ .ejs_big_screen .ejs_menu_button svg {
466
+ transition: transform .3s ease;
467
+ }
468
+
469
+ .ejs_big_screen .ejs_menu_button {
470
+ width: auto;
471
+ margin: auto;
472
+ font-family: Avenir, "Avenir Next", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;
473
+ margin-right: 2px;
474
+ touch-action: manipulation;
475
+ background: transparent;
476
+ border: 0;
477
+ border-radius: 3px;
478
+ color: inherit;
479
+ cursor: pointer;
480
+ flex-shrink: 0;
481
+ overflow: visible;
482
+ padding: 7px;
483
+ position: relative;
484
+ transition: all .3s ease;
485
+ }
486
+
487
+ .ejs_big_screen .ejs_menu_button:hover {
488
+ background: rgba(var(--ejs-primary-color), 1);
489
+ color: #fff;
490
+ box-shadow: none;
491
+ }
492
+
493
+ .ejs_big_screen .ejs_menu_button:hover .ejs_menu_text {
494
+ transform: translate(0, 0) scale(1);
495
+ opacity: 1;
496
+ }
497
+
498
+ .ejs_big_screen .ejs_menu_text_right {
499
+ right: 0;
500
+ left: auto !important;
501
+ }
502
+
503
+ .ejs_big_screen .ejs_menu_text {
504
+ left: 0;
505
+ background: rgba(255, 255, 255, 0.9);
506
+ border-radius: 3px;
507
+ bottom: 100%;
508
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
509
+ color: #4f5b5f;
510
+ font-size: 14px;
511
+ font-weight: 500;
512
+ line-height: 1.3;
513
+ margin-bottom: 10px;
514
+ opacity: 0;
515
+ padding: 5px 7.5px;
516
+ pointer-events: none;
517
+ position: absolute;
518
+ transform: translate(0, 10px) scale(0.8);
519
+ transform-origin: 0 100%;
520
+ transition: transform .2s .1s ease, opacity .2s .1s ease;
521
+ white-space: nowrap;
522
+ z-index: 2;
523
+ }
524
+
525
+ .ejs_big_screen .ejs_menu_text::before {
526
+ border-left: 4px solid transparent;
527
+ border-right: 4px solid transparent;
528
+ border-top: 4px solid rgba(255, 255, 255, 0.9);
529
+ bottom: -4px;
530
+ content: '';
531
+ height: 0;
532
+ left: 16px;
533
+ position: absolute;
534
+ transform: translateX(-50%);
535
+ width: 0;
536
+ z-index: 2;
537
+ }
538
+
539
+ .ejs_big_screen .ejs_menu_text_right::before {
540
+ left: auto !important;
541
+ right: 16px;
542
+ transform: translateX(50%) !important;
543
+ }
544
+
545
+ .ejs_big_screen .ejs_menu_bar {
546
+ padding: 15px 10px 10px;
547
+ background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.7));
548
+ border-bottom-left-radius: inherit;
549
+ border-bottom-right-radius: inherit;
550
+ bottom: 0;
551
+ color: #fff;
552
+ left: 0;
553
+ position: absolute;
554
+ right: 0;
555
+ transition: opacity .4s ease-in-out, transform .4s ease-in-out;
556
+ z-index: 9999;
557
+ align-items: center;
558
+ display: flex;
559
+ justify-content: flex-start;
560
+ text-align: center;
561
+ }
562
+
563
+ .ejs_menu_button.shadow {
564
+ background: rgba(0, 0, 0, 0.7);
565
+ box-shadow: 0 0 5px 1px rgba(0, 0, 0, 0.7);
566
+ }
567
+
568
+ .ejs_menu_bar svg {
569
+ display: block;
570
+ fill: currentColor;
571
+ height: 18px;
572
+ pointer-events: none;
573
+ width: 18px;
574
+ }
575
+
576
+ .ejs_popup_container {
577
+ background: rgba(0, 0, 0, 0.8);
578
+ text-align: center;
579
+ z-index: 9999;
580
+ height: 100%;
581
+ overflow: hidden;
582
+ position: absolute;
583
+ top: 0;
584
+ width: 100%;
585
+ color: #ccc;
586
+ }
587
+
588
+ .ejs_popup_container *,
589
+ .ejs_popup_container *::after,
590
+ .ejs_popup_container *::before {
591
+ box-sizing: border-box;
592
+ color: #bcbcbc;
593
+
594
+ -webkit-user-select: none;
595
+ -moz-user-select: none;
596
+ -ms-user-select: none;
597
+ user-select: none;
598
+ }
599
+
600
+ .ejs_popup_container h4 {
601
+ color: #ccc;
602
+ font-size: 24px;
603
+ margin: 0;
604
+ padding: 10px;
605
+ }
606
+
607
+ .ejs_button {
608
+ border-radius: .25rem;
609
+ font-size: .875rem;
610
+ padding-left: 1rem;
611
+ padding-right: 1rem;
612
+ padding-top: .5rem;
613
+ padding-bottom: .5rem;
614
+ display: inline-block;
615
+ background-color: rgba(var(--ejs-primary-color), 1);
616
+ margin: 0 10px;
617
+ color: #fff !important;
618
+ touch-action: manipulation;
619
+ cursor: pointer;
620
+ }
621
+
622
+ .ejs_popup_body {
623
+ height: calc(100% - 130px);
624
+ overflow: auto;
625
+ }
626
+
627
+ .ejs_control_body {
628
+ color: #bcbcbc !important;
629
+ border: unset;
630
+ }
631
+
632
+ .ejs_control_body input[type='text'] {
633
+ background-color: #fff;
634
+ border: 1px solid #000;
635
+ font-size: 12px;
636
+ font-weight: 700;
637
+ color: #000 !important;
638
+ }
639
+
640
+ .ejs_control_player_bar {
641
+ margin: 0;
642
+ padding: 0;
643
+ }
644
+
645
+ .ejs_control_player_bar ul {
646
+ list-style: none;
647
+ }
648
+
649
+ .ejs_control_player_bar li {
650
+ color: #bcbcbc !important;
651
+ display: inline-block;
652
+ }
653
+
654
+ .ejs_control_player_bar a {
655
+ padding: 2px 5px;
656
+ color: #bcbcbc !important;
657
+ font-size: 14px;
658
+ cursor: pointer;
659
+ }
660
+
661
+ .ejs_control_player_bar li:hover:not(.ejs_control_selected) {
662
+ background-color: #333;
663
+ border-bottom: 1px solid #333;
664
+ }
665
+
666
+ .ejs_control_selected {
667
+ border-bottom: 1px solid #fff;
668
+ background-color: #fff;
669
+ }
670
+
671
+ .ejs_control_selected a {
672
+ color: #000 !important;
673
+ }
674
+
675
+ .ejs_control_bar:hover {
676
+ background-color: #2d2d2d;
677
+ }
678
+
679
+ .ejs_control_set_button {
680
+ float: none;
681
+ padding: .1rem .5rem;
682
+ background-color: rgba(var(--ejs-primary-color), 1);
683
+ color: #fff !important;
684
+ border-radius: .25rem;
685
+ cursor: pointer;
686
+ font-size: 14px;
687
+ }
688
+
689
+ .ejs_control_row label::before {
690
+ top: -0.15rem !important;
691
+ }
692
+
693
+ .ejs_control_row label::after {
694
+ top: calc(-0.15rem + 2px) !important;
695
+ }
696
+
697
+ .ejs_popup_box {
698
+ position: absolute;
699
+ width: 300px;
700
+ top: 50%;
701
+ margin-left: -150px;
702
+ margin-top: -50px;
703
+ left: 50%;
704
+ background: rgba(0, 0, 0, 0.8) !important;
705
+ padding: 15px 0;
706
+ }
707
+
708
+ .ejs_virtualGamepad_parent {
709
+ width: 100%;
710
+ position: absolute;
711
+ bottom: 50px;
712
+ }
713
+
714
+ .ejs_virtualGamepad_top {
715
+ position: absolute;
716
+ bottom: 250px;
717
+ width: 100%;
718
+ }
719
+
720
+ .ejs_virtualGamepad_bottom {
721
+ position: absolute;
722
+ bottom: 10px;
723
+ height: 30px;
724
+ width: 124px;
725
+ left: 50%;
726
+ margin-left: -62px;
727
+ }
728
+
729
+ .ejs_virtualGamepad_left {
730
+ position: absolute;
731
+ bottom: 50px;
732
+ width: 125px;
733
+ height: 125px;
734
+ left: 10px;
735
+ }
736
+
737
+ .ejs_virtualGamepad_right {
738
+ position: absolute;
739
+ bottom: 50px;
740
+ width: 130px;
741
+ height: 130px;
742
+ right: 10px;
743
+ }
744
+
745
+ .ejs_virtualGamepad_button {
746
+ position: absolute;
747
+ font-size: 20px;
748
+ width: 50px;
749
+ height: 50px;
750
+ text-align: center;
751
+ line-height: 50px;
752
+ border: 1px solid #ccc;
753
+ border-radius: 50%;
754
+ font-size: 30px;
755
+ font-weight: bold;
756
+ background-color: rgba(255, 255, 255, 0.15);
757
+ user-select: none;
758
+ transition: all .2s;
759
+ }
760
+
761
+ .ejs_virtualGamepad_button_down {
762
+ background-color: #000000ad;
763
+ }
764
+
765
+ .ejs_dpad_main {
766
+ touch-action: none;
767
+ position: absolute;
768
+ top: 0;
769
+ left: 0;
770
+ width: 100%;
771
+ height: 100%;
772
+ opacity: .7;
773
+ }
774
+
775
+ .ejs_dpad_horizontal {
776
+ width: 100%;
777
+ height: 36px;
778
+ transform: translate(0, -50%);
779
+ position: absolute;
780
+ left: 0;
781
+ top: 50%;
782
+ border-radius: 5px;
783
+ overflow: hidden;
784
+ }
785
+
786
+ .ejs_dpad_horizontal:before {
787
+ content: "";
788
+ position: absolute;
789
+ left: 0;
790
+ top: 50%;
791
+ z-index: 1;
792
+ transform: translate(0, -50%);
793
+ width: 0;
794
+ height: 0;
795
+ border: 8px solid;
796
+ border-color: transparent #333 transparent transparent;
797
+ }
798
+
799
+ .ejs_dpad_horizontal:after {
800
+ content: "";
801
+ position: absolute;
802
+ right: 0;
803
+ top: 50%;
804
+ z-index: 1;
805
+ transform: translate(0, -50%);
806
+ width: 0;
807
+ height: 0;
808
+ border: 8px solid;
809
+ border-color: transparent transparent transparent #333;
810
+ }
811
+
812
+ .ejs_dpad_vertical {
813
+ width: 36px;
814
+ height: 100%;
815
+ transform: translate(-50%, 0);
816
+ position: absolute;
817
+ left: 50%;
818
+ border-radius: 5px;
819
+ overflow: hidden;
820
+ }
821
+
822
+ .ejs_dpad_vertical:before {
823
+ content: "";
824
+ position: absolute;
825
+ top: 0;
826
+ left: 50%;
827
+ z-index: 1;
828
+ transform: translate(-50%, 0);
829
+ width: 0;
830
+ height: 0;
831
+ border: 8px solid;
832
+ border-color: transparent transparent #333 transparent;
833
+ }
834
+
835
+ .ejs_dpad_vertical:after {
836
+ content: "";
837
+ position: absolute;
838
+ bottom: 0;
839
+ left: 50%;
840
+ z-index: 1;
841
+ transform: translate(-50%, 0);
842
+ width: 0;
843
+ height: 0;
844
+ border: 8px solid;
845
+ border-color: #333 transparent transparent transparent;
846
+ }
847
+
848
+ .ejs_dpad_bar {
849
+ position: absolute;
850
+ width: 100%;
851
+ height: 100%;
852
+ background: #787878;
853
+ }
854
+
855
+ .ejs_dpad_left_pressed .ejs_dpad_horizontal:before {
856
+ border-right-color: #fff;
857
+ }
858
+
859
+ .ejs_dpad_right_pressed .ejs_dpad_horizontal:after {
860
+ border-left-color: #fff;
861
+ }
862
+
863
+ .ejs_dpad_up_pressed .ejs_dpad_vertical:before {
864
+ border-bottom-color: #fff;
865
+ }
866
+
867
+ .ejs_dpad_down_pressed .ejs_dpad_vertical:after {
868
+ border-top-color: #fff
869
+ }
870
+
871
+ @keyframes ejs_settings_parent_animation {
872
+ 0% {
873
+ opacity: 0.5;
874
+ transform: translateY(10px)
875
+ }
876
+
877
+ to {
878
+ opacity: 1;
879
+ transform: translateY(0)
880
+ }
881
+ }
882
+
883
+ .ejs_settings_parent {
884
+ animation: ejs_settings_parent_animation .2s ease;
885
+ background: rgba(29, 29, 29, 0.9);
886
+ border-radius: 4px;
887
+ border-width: 1px;
888
+ border-style: solid;
889
+ border-color: rgba(49, 49, 49, 0.9);
890
+ bottom: 100%;
891
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
892
+ color: #4f5b5f;
893
+ font-size: 16px;
894
+ margin-bottom: 10px;
895
+ position: absolute;
896
+ text-align: left;
897
+ white-space: nowrap;
898
+ z-index: 9999;
899
+ backdrop-filter: blur(8px);
900
+ -webkit-backdrop-filter: blur(8px);
901
+ }
902
+
903
+ /* .ejs_settings_parent::after {
904
+ border: 5px solid transparent;
905
+ border-top-color: rgba(119, 119, 119, 0.9);
906
+ content: '';
907
+ height: 0;
908
+ position: absolute;
909
+ top: 100%;
910
+ width: 0;
911
+ } */
912
+ .ejs_settings_parent::before,
913
+ .ejs_settings_parent::after {
914
+ position: absolute;
915
+ right: 15px;
916
+ width: 0;
917
+ height: 0;
918
+ content: '';
919
+ border-left: 5px solid transparent;
920
+ border-right: 5px solid transparent;
921
+ border-top-width: 5px;
922
+ border-top-style: solid;
923
+ }
924
+
925
+ .ejs_settings_parent::before {
926
+ top: calc(100% + 1px);
927
+ border-top-color: rgba(49, 49, 49, 0.9);
928
+ }
929
+
930
+ .ejs_settings_parent::after {
931
+ top: 100%;
932
+ border-top-color: rgba(29, 29, 29, 0.9);
933
+ }
934
+
935
+ .ejs_settings_transition {
936
+ overflow: hidden;
937
+ transition: height .35s cubic-bezier(0.4, 0, 0.2, 1), width .35s cubic-bezier(0.4, 0, 0.2, 1);
938
+ }
939
+
940
+ .ejs_settings_main_bar {
941
+ align-items: center;
942
+ color: #999;
943
+ display: flex;
944
+ font-size: 13px;
945
+ padding: 4px 11px;
946
+ user-select: none;
947
+ width: 100%;
948
+ padding-right: 28px;
949
+ background: transparent;
950
+ border: 0;
951
+ border-radius: 3px;
952
+ flex-shrink: 0;
953
+ overflow: visible;
954
+ position: relative;
955
+ transition: all .3s ease;
956
+ box-sizing: border-box;
957
+ }
958
+
959
+ .ejs_settings_main_bar::after {
960
+ border: 4px solid transparent;
961
+ content: '';
962
+ position: absolute;
963
+ top: 50%;
964
+ transform: translateY(-50%);
965
+ border-left-color: rgba(79, 91, 95, 0.8);
966
+ right: 5px;
967
+ }
968
+
969
+ .ejs_settings_main_bar>span {
970
+ align-items: inherit;
971
+ display: flex;
972
+ width: 100%;
973
+ }
974
+
975
+ .ejs_settings_main_bar:hover {
976
+ background: rgba(var(--ejs-primary-color), 1);
977
+ color: #fff;
978
+ cursor: pointer;
979
+ }
980
+
981
+ .ejs_settings_main_bar:hover::after {
982
+ border-left-color: currentColor;
983
+ }
984
+
985
+ .ejs_settings_main_bar_selected {
986
+ align-items: center;
987
+ display: flex;
988
+ margin-left: auto;
989
+ margin-right: -5px;
990
+ overflow: hidden;
991
+ padding-left: 25px;
992
+ pointer-events: none;
993
+ }
994
+
995
+ .ejs_setting_menu {
996
+ padding: 7px;
997
+ overflow-x: hidden;
998
+ overflow-y: auto;
999
+ }
1000
+
1001
+ .ejs_parent_option_div {
1002
+ display: flex;
1003
+ flex-direction: column;
1004
+ max-height: inherit;
1005
+ overflow: hidden;
1006
+ }
1007
+
1008
+ .ejs_back_button {
1009
+ font-weight: 500;
1010
+ margin: 7px;
1011
+ margin-bottom: 3px;
1012
+ padding-left: 28px;
1013
+ position: relative;
1014
+ width: calc(100% - 14px);
1015
+ align-items: center;
1016
+ color: #999;
1017
+ display: flex;
1018
+ font-size: 13px;
1019
+ padding: 4px 11px;
1020
+ user-select: none;
1021
+
1022
+ background: transparent;
1023
+ border: 0;
1024
+ border-radius: 3px;
1025
+ cursor: pointer;
1026
+ flex-shrink: 0;
1027
+ overflow: visible;
1028
+ transition: all .3s ease;
1029
+ }
1030
+
1031
+ .ejs_back_button:hover {
1032
+ background: rgba(var(--ejs-primary-color), 1);
1033
+ color: #fff;
1034
+ }
1035
+
1036
+ .ejs_back_button:hover::after {
1037
+ border-right-color: currentColor;
1038
+ }
1039
+
1040
+ .ejs_back_button::before {
1041
+ background: #b7c5cd;
1042
+ box-shadow: 0 1px 0 #fff;
1043
+ content: '';
1044
+ height: 1px;
1045
+ left: 0;
1046
+ margin-top: 4px;
1047
+ overflow: hidden;
1048
+ position: absolute;
1049
+ right: 0;
1050
+ top: 100%;
1051
+ }
1052
+
1053
+ .ejs_back_button::after {
1054
+ border: 4px solid transparent;
1055
+ border-right-color: rgba(79, 91, 95, 0.8);
1056
+ left: 7px;
1057
+ content: '';
1058
+ position: absolute;
1059
+ top: 50%;
1060
+ transform: translateY(-50%);
1061
+ }
1062
+
1063
+ .ejs_menu_text_a {
1064
+ align-items: center;
1065
+ display: flex;
1066
+ font-size: 13px;
1067
+ padding: 4px 11px;
1068
+ user-select: none;
1069
+ width: 100%;
1070
+ }
1071
+
1072
+ .ejs_option_row {
1073
+ padding-left: 7px;
1074
+ }
1075
+
1076
+ .ejs_option_row:hover::before {
1077
+ background: rgba(0, 0, 0, 0.1);
1078
+ }
1079
+
1080
+ .ejs_option_row::before {
1081
+ background: rgba(204, 204, 204, 0.1);
1082
+ content: '';
1083
+ display: block;
1084
+ flex-shrink: 0;
1085
+ height: 16px;
1086
+ margin-right: 10px;
1087
+ transition: all .3s ease;
1088
+ width: 16px;
1089
+ border-radius: 100%;
1090
+ }
1091
+
1092
+ .ejs_option_row::after {
1093
+ background: #fff;
1094
+ border: 0;
1095
+ height: 6px;
1096
+ left: 12px;
1097
+ opacity: 0;
1098
+ top: 50%;
1099
+ transform: translateY(-50%) scale(0);
1100
+ transition: transform .3s ease, opacity .3s ease;
1101
+ width: 6px;
1102
+ border-radius: 100%;
1103
+ content: '';
1104
+ position: absolute;
1105
+ }
1106
+
1107
+ .ejs_option_row_selected::before {
1108
+ background: rgba(var(--ejs-primary-color), 1);
1109
+ }
1110
+
1111
+ .ejs_option_row_selected::after {
1112
+ opacity: 1;
1113
+ transform: translateY(-50%) scale(1);
1114
+ }
1115
+
1116
+ .ejs_option_row>span {
1117
+ align-items: center;
1118
+ display: flex;
1119
+ width: 100%;
1120
+ }
1121
+
1122
+ .ejs_button_style {
1123
+ margin: 0px;
1124
+ background: transparent;
1125
+ border: 0;
1126
+ border-radius: 3px;
1127
+ cursor: pointer;
1128
+ flex-shrink: 0;
1129
+ overflow: visible;
1130
+ padding: 7px;
1131
+ position: relative;
1132
+ transition: all .3s ease;
1133
+
1134
+ align-items: center;
1135
+ color: #999;
1136
+ display: flex;
1137
+ font-size: 13px;
1138
+ user-select: none;
1139
+ width: 100%;
1140
+ }
1141
+
1142
+ .ejs_button_style:hover {
1143
+ background: rgba(var(--ejs-primary-color), 1);
1144
+ color: #fff;
1145
+ }
1146
+
1147
+ .ejs_cheat_heading {
1148
+ margin-top: 0 !important;
1149
+ margin-bottom: 0 !important;
1150
+ font-weight: 600 !important;
1151
+ font-size: 1.25rem;
1152
+ line-height: 1.25 !important;
1153
+ color: rgba(var(--ejs-primary-color), 1) !important;
1154
+ }
1155
+
1156
+ .ejs_cheat_close {
1157
+ font: inherit;
1158
+ line-height: inherit;
1159
+ width: auto;
1160
+ background: transparent;
1161
+ border: 0;
1162
+ color: #bcbcbc !important;
1163
+ cursor: pointer;
1164
+ }
1165
+
1166
+ .ejs_cheat_close::before {
1167
+ content: "\2715";
1168
+ color: #bcbcbc !important;
1169
+ font: inherit;
1170
+ line-height: inherit;
1171
+ width: auto;
1172
+ }
1173
+
1174
+ .ejs_cheat_header {
1175
+ display: flex;
1176
+ justify-content: space-between;
1177
+ align-items: center;
1178
+ }
1179
+
1180
+ .ejs_cheat_main {
1181
+ margin-top: 2rem;
1182
+ margin-bottom: 2rem;
1183
+ line-height: 1.5;
1184
+ color: rgba(0, 0, 0, 0.8);
1185
+ text-align: left;
1186
+ color: #bcbcbc !important;
1187
+ border: unset;
1188
+ }
1189
+
1190
+ .ejs_cheat_code {
1191
+ color: #000 !important;
1192
+ font-size: 1rem;
1193
+ padding: .4rem;
1194
+ max-width: 100%;
1195
+ }
1196
+
1197
+ @keyframes ejs_cheat_animation {
1198
+ from {
1199
+ transform: translateY(15%)
1200
+ }
1201
+
1202
+ to {
1203
+ transform: translateY(0)
1204
+ }
1205
+ }
1206
+
1207
+ .ejs_cheat_parent {
1208
+ background-color: rgba(0, 0, 0, 0.8);
1209
+ border: 1px solid rgba(238, 238, 238, 0.2);
1210
+ padding: 30px;
1211
+ min-width: 200px;
1212
+ max-width: 500px;
1213
+ max-height: 100vh;
1214
+ border-radius: 4px;
1215
+ overflow-y: auto;
1216
+ box-sizing: border-box;
1217
+ will-change: transform;
1218
+ animation: ejs_cheat_animation .3s cubic-bezier(0, 0, 0.2, 1);
1219
+ font-size: 14px;
1220
+ }
1221
+
1222
+ .ejs_popup_container_box {
1223
+ position: absolute;
1224
+ top: 0;
1225
+ left: 0;
1226
+ right: 0;
1227
+ bottom: 0;
1228
+ background: rgba(0, 0, 0, 0.6);
1229
+ display: flex;
1230
+ justify-content: center;
1231
+ align-items: center;
1232
+ }
1233
+
1234
+ .ejs_popup_submit {
1235
+ touch-action: manipulation;
1236
+ font: inherit;
1237
+ line-height: inherit;
1238
+ width: auto;
1239
+ }
1240
+
1241
+ .ejs_button_button {
1242
+ color: #fff !important;
1243
+ padding-left: 1rem;
1244
+ padding-right: 1rem;
1245
+ padding-top: .5rem;
1246
+ padding-bottom: .5rem;
1247
+ background-color: #929292;
1248
+ border-radius: .25rem;
1249
+ border-style: none;
1250
+ border-width: 0;
1251
+ cursor: pointer;
1252
+ -webkit-appearance: button;
1253
+ appearance: button;
1254
+ text-transform: none;
1255
+ overflow: visible;
1256
+ margin: 0;
1257
+ will-change: transform;
1258
+ transition: transform .25s ease-out, -webkit-transform .25s ease-out;
1259
+ }
1260
+
1261
+ .ejs_button_button:hover {
1262
+ transform: scale(1.05);
1263
+ }
1264
+
1265
+ .ejs_cheat_rows {
1266
+ max-width: 320px;
1267
+ margin: 0 auto;
1268
+ text-align: left;
1269
+ width: 100%;
1270
+ float: none;
1271
+ user-select: text !important;
1272
+ }
1273
+
1274
+ .ejs_cheat_row {
1275
+ padding-left: 2.25rem;
1276
+ position: relative;
1277
+ padding: .2em 0;
1278
+ clear: both;
1279
+ }
1280
+
1281
+ .ejs_cheat_row:hover {
1282
+ background-color: rgba(0, 0, 0, 0.8);
1283
+ }
1284
+
1285
+ .ejs_cheat_row input[type=checkbox] {
1286
+ position: absolute;
1287
+ z-index: -1;
1288
+ opacity: 0;
1289
+ box-sizing: border-box;
1290
+ width: auto;
1291
+ }
1292
+
1293
+ .ejs_cheat_row label {
1294
+ position: relative;
1295
+ margin-bottom: 0;
1296
+ vertical-align: top;
1297
+ word-break: break-word;
1298
+ }
1299
+
1300
+ .ejs_cheat_row label::before {
1301
+ position: absolute;
1302
+ top: 0rem;
1303
+ display: block;
1304
+ height: 1rem;
1305
+ content: "";
1306
+ background-color: #fff;
1307
+ border: #adb5bd solid 1px;
1308
+ left: -2.25rem;
1309
+ width: 1.75rem;
1310
+ pointer-events: all;
1311
+ border-radius: .5rem;
1312
+ }
1313
+
1314
+ .ejs_cheat_row input:checked+label::before {
1315
+ color: #fff;
1316
+ border-color: rgba(var(--ejs-primary-color), 1);
1317
+ background-color: rgba(var(--ejs-primary-color), 1);
1318
+ }
1319
+
1320
+ .ejs_cheat_row label::after {
1321
+ position: absolute;
1322
+ display: block;
1323
+ content: "";
1324
+ background-repeat: no-repeat;
1325
+ background-position: center center;
1326
+ top: calc(0rem + 2px);
1327
+ left: calc(-2.25rem + 2px);
1328
+ width: calc(1rem - 4px);
1329
+ height: calc(1rem - 4px);
1330
+ background-color: #adb5bd;
1331
+ border-radius: .5rem;
1332
+ transition: transform .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, -webkit-transform .15s ease-in-out;
1333
+ }
1334
+
1335
+ .ejs_cheat_row input:checked+label::after {
1336
+ background-color: #fff;
1337
+ -webkit-transform: translateX(0.75rem);
1338
+ transform: translateX(0.75rem);
1339
+ }
1340
+
1341
+ .ejs_cheat_row_button {
1342
+ position: absolute;
1343
+ padding: .1rem .5rem;
1344
+ background-color: rgba(var(--ejs-primary-color), 1);
1345
+ color: #fff !important;
1346
+ border-radius: .25rem;
1347
+ cursor: pointer;
1348
+ right: .025rem;
1349
+ border: 0;
1350
+ }
1351
+
1352
+ .ejs_small_screen .ejs_volume_parent input[type='range'] {
1353
+ width: 100%;
1354
+ }
1355
+
1356
+ .ejs_big_screen .ejs_volume_parent {
1357
+ max-width: 110px;
1358
+ }
1359
+
1360
+ .ejs_volume_parent {
1361
+ align-items: center;
1362
+ display: flex;
1363
+ flex: 1;
1364
+ position: relative;
1365
+ }
1366
+
1367
+ .ejs_volume_parent {
1368
+ padding-right: 15px;
1369
+ }
1370
+
1371
+ .ejs_volume_parent::-webkit-media-controls {
1372
+ display: none;
1373
+ }
1374
+
1375
+ .ejs_volume_parent input[type='range'] {
1376
+ display: block;
1377
+ -webkit-appearance: none;
1378
+ appearance: none;
1379
+ border: 0;
1380
+ border-radius: 28px;
1381
+ color: rgba(var(--ejs-primary-color), 1);
1382
+ margin: 0;
1383
+ padding: 0;
1384
+ transition: box-shadow 0.3s ease;
1385
+ width: 100%;
1386
+ background: white;
1387
+ height: 6px;
1388
+ }
1389
+
1390
+ .ejs_volume_parent input[type='range']::-webkit-slider-runnable-track {
1391
+ background-color: rgba(255, 255, 255, 0.25);
1392
+ outline: 0;
1393
+ background: transparent;
1394
+ border: 0;
1395
+ border-radius: 3px;
1396
+ height: 6px;
1397
+ transition: box-shadow 0.3s ease;
1398
+ user-select: none;
1399
+ background-image: linear-gradient(to right, currentColor var(--value, 0%), transparent var(--value, 0%))
1400
+ }
1401
+
1402
+ .ejs_volume_parent input[type='range']::-webkit-slider-thumb {
1403
+ background: #fff;
1404
+ border: 0;
1405
+ border-radius: 100%;
1406
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(47, 52, 61, 0.2);
1407
+ height: 14px;
1408
+ position: relative;
1409
+ transition: all 0.2s ease;
1410
+ width: 14px;
1411
+ -webkit-appearance: none;
1412
+ margin-top: -4px
1413
+ }
1414
+
1415
+ .ejs_volume_parent input[type='range']::-moz-range-track {
1416
+ background-color: rgba(255, 255, 255, 0.25);
1417
+ outline: 0;
1418
+ background: transparent;
1419
+ border: 0;
1420
+ border-radius: 3px;
1421
+ height: 6px;
1422
+ transition: box-shadow 0.3s ease;
1423
+ user-select: none
1424
+ }
1425
+
1426
+ .ejs_volume_parent input[type='range']::-moz-range-thumb {
1427
+ background: #fff;
1428
+ border: 0;
1429
+ border-radius: 100%;
1430
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(47, 52, 61, 0.2);
1431
+ height: 14px;
1432
+ position: relative;
1433
+ transition: all 0.2s ease;
1434
+ width: 14px
1435
+ }
1436
+
1437
+ .ejs_volume_parent input[type='range']::-moz-range-progress {
1438
+ background: currentColor;
1439
+ border-radius: 3px;
1440
+ height: 6px
1441
+ }
1442
+
1443
+ .ejs_volume_parent input[type='range']::-ms-track {
1444
+ background-color: rgba(255, 255, 255, 0.25);
1445
+ outline: 0;
1446
+ background: transparent;
1447
+ border: 0;
1448
+ border-radius: 3px;
1449
+ height: 6px;
1450
+ transition: box-shadow 0.3s ease;
1451
+ user-select: none;
1452
+ color: transparent
1453
+ }
1454
+
1455
+ .ejs_volume_parent input[type='range']::-ms-fill-upper {
1456
+ background: transparent;
1457
+ border: 0;
1458
+ border-radius: 3px;
1459
+ height: 6px;
1460
+ transition: box-shadow 0.3s ease;
1461
+ user-select: none
1462
+ }
1463
+
1464
+ .ejs_volume_parent input[type='range']::-ms-fill-lower {
1465
+ background: transparent;
1466
+ border: 0;
1467
+ border-radius: 3px;
1468
+ height: 6px;
1469
+ transition: box-shadow 0.3s ease;
1470
+ user-select: none;
1471
+ background: currentColor
1472
+ }
1473
+
1474
+ .ejs_volume_parent input[type='range']::-ms-thumb {
1475
+ background: #fff;
1476
+ border: 0;
1477
+ border-radius: 100%;
1478
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(47, 52, 61, 0.2);
1479
+ height: 14px;
1480
+ position: relative;
1481
+ transition: all 0.2s ease;
1482
+ width: 14px;
1483
+ margin-top: 0
1484
+ }
1485
+
1486
+ .ejs_volume_parent input[type='range']::-ms-tooltip {
1487
+ display: none
1488
+ }
1489
+
1490
+ .ejs_volume_parent input[type='range']:focus {
1491
+ outline: 0
1492
+ }
1493
+
1494
+ .ejs_volume_parent input[type='range']::-moz-focus-outer {
1495
+ border: 0
1496
+ }
1497
+
1498
+ .ejs_volume_parent input[type='range']:active::-webkit-slider-thumb {
1499
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(47, 52, 61, 0.2), 0 0 0 3px rgba(255, 255, 255, 0.5)
1500
+ }
1501
+
1502
+ .ejs_volume_parent input[type='range']:active::-moz-range-thumb {
1503
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(47, 52, 61, 0.2), 0 0 0 3px rgba(255, 255, 255, 0.5)
1504
+ }
1505
+
1506
+ .ejs_volume_parent input[type='range']:active::-ms-thumb {
1507
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(47, 52, 61, 0.2), 0 0 0 3px rgba(255, 255, 255, 0.5)
1508
+ }
1509
+
1510
+ .ejs_message {
1511
+ float: none;
1512
+ overflow: hidden;
1513
+ position: absolute;
1514
+ top: 0;
1515
+ color: red;
1516
+ font-size: 17px;
1517
+ padding: 10px;
1518
+ text-align: left;
1519
+ text-shadow: rgb(0, 0, 0) 1px 1px 1px;
1520
+ }
1521
+
1522
+ .ejs_virtualGamepad_open {
1523
+ display: inline-block;
1524
+ width: 24px;
1525
+ height: 24px;
1526
+ color: #fff;
1527
+ position: absolute;
1528
+ top: 5px;
1529
+ right: 5px;
1530
+ opacity: .5;
1531
+ z-index: 999;
1532
+ cursor: pointer;
1533
+ }
1534
+
1535
+ .ejs_virtualGamepad_open svg {
1536
+ fill: currentColor;
1537
+ }
1538
+
1539
+ .ejs_netplay_header {
1540
+ margin-top: .5rem;
1541
+ margin-bottom: .5rem;
1542
+ line-height: 1.5;
1543
+ color: rgba(0, 0, 0, .8);
1544
+ text-align: left;
1545
+ }
1546
+
1547
+ .ejs_netplay_header input,
1548
+ .ejs_netplay_header select {
1549
+ font-size: 1rem;
1550
+ padding: .4rem;
1551
+ max-width: 100%;
1552
+ color: #000 !important;
1553
+ background-color: #fff !important;
1554
+ margin: 0;
1555
+ height: 2rem;
1556
+ display: block;
1557
+ font-family: Arial;
1558
+ border: 0px;
1559
+ }
1560
+
1561
+ .ejs_netplay_name_heading {
1562
+ margin-top: 0 !important;
1563
+ margin-bottom: 0 !important;
1564
+ font-weight: 600 !important;
1565
+ font-size: 1.25rem;
1566
+ line-height: 1.25 !important;
1567
+ color: rgba(var(--ejs-primary-color), 1) !important;
1568
+ display: flex;
1569
+ justify-content: space-between;
1570
+ align-items: center;
1571
+ }
1572
+
1573
+ .ejs_netplay_table {
1574
+ font-family: Avenir, "Avenir Next", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;
1575
+ font-size: 0.8rem;
1576
+ padding: 0 10px;
1577
+ }
1578
+
1579
+ .ejs_netplay_join_button {
1580
+ float: none;
1581
+ padding: .1rem .5rem;
1582
+ background-color: rgba(var(--ejs-primary-color), 1);
1583
+ color: #fff !important;
1584
+ border-radius: .25rem;
1585
+ cursor: pointer;
1586
+ }
1587
+
1588
+ .ejs_netplay_table_row:hover {
1589
+ background-color: #2d2d2d;
1590
+ }
1591
+
1592
+ .ejs_gamepad_dropdown {
1593
+ background-color: var(--ejs-background-color);
1594
+ color: white;
1595
+ border: none;
1596
+ padding: 8px 12px;
1597
+ border-radius: 6px;
1598
+ font-family: inherit;
1599
+ outline: none;
1600
+ cursor: pointer;
1601
+ font-size: inherit;
1602
+ }
1603
+
1604
+ .ejs_gamepad_dropdown:focus, .ejs_gamepad_dropdown:active, .ejs_gamepad_dropdown:hover {
1605
+ box-shadow: 0 0 0 2px rgba(51, 153, 255, 0.6);
1606
+ background-color: var(--ejs-background-color);
1607
+ }
1608
+
1609
+ .ejs_gamepad_section {
1610
+ font-size: 12px;
1611
+ justify-content: center;
1612
+ display: flex;
1613
+ align-items: center;
1614
+ }