myetv-player 1.0.0 → 1.0.8

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 (38) hide show
  1. package/.github/workflows/codeql.yml +100 -0
  2. package/README.md +49 -58
  3. package/SECURITY.md +50 -0
  4. package/css/myetv-player.css +424 -219
  5. package/css/myetv-player.min.css +1 -1
  6. package/dist/myetv-player.js +1759 -1502
  7. package/dist/myetv-player.min.js +1705 -1469
  8. package/package.json +7 -1
  9. package/plugins/README.md +1016 -0
  10. package/plugins/cloudflare/README.md +1068 -0
  11. package/plugins/cloudflare/myetv-player-cloudflare-stream-plugin.js +556 -0
  12. package/plugins/facebook/README.md +1024 -0
  13. package/plugins/facebook/myetv-player-facebook-plugin.js +437 -0
  14. package/plugins/gamepad-remote-controller/README.md +816 -0
  15. package/plugins/gamepad-remote-controller/myetv-player-gamepad-remote-plugin.js +678 -0
  16. package/plugins/google-adsense-ads/README.md +1 -0
  17. package/plugins/google-adsense-ads/g-adsense-ads-plugin.js +158 -0
  18. package/plugins/google-ima-ads/README.md +1 -0
  19. package/plugins/google-ima-ads/g-ima-ads-plugin.js +355 -0
  20. package/plugins/twitch/README.md +1185 -0
  21. package/plugins/twitch/myetv-player-twitch-plugin.js +569 -0
  22. package/plugins/vast-vpaid-ads/README.md +1 -0
  23. package/plugins/vast-vpaid-ads/vast-vpaid-ads-plugin.js +346 -0
  24. package/plugins/vimeo/README.md +1416 -0
  25. package/plugins/vimeo/myetv-player-vimeo.js +640 -0
  26. package/plugins/youtube/README.md +851 -0
  27. package/plugins/youtube/myetv-player-youtube-plugin.js +1714 -210
  28. package/scss/README.md +160 -0
  29. package/scss/_controls.scss +184 -30
  30. package/scss/_menus.scss +840 -672
  31. package/scss/_responsive.scss +67 -105
  32. package/scss/_volume.scss +67 -105
  33. package/src/README.md +559 -0
  34. package/src/controls.js +17 -5
  35. package/src/core.js +1237 -1060
  36. package/src/i18n.js +27 -1
  37. package/src/quality.js +478 -436
  38. package/src/subtitles.js +2 -2
package/scss/_menus.scss CHANGED
@@ -5,9 +5,177 @@
5
5
  @use 'mixins' as *;
6
6
  @use 'variables' as *;
7
7
 
8
+ /* ===================================
9
+ ALL SUBMENUS - ULTRA-COMPACT FIX
10
+ =================================== */
11
+
12
+ /* Apply to ALL submenus */
13
+ .settings-submenu,
14
+ .subtitles-menu,
15
+ .quality-submenu,
16
+ .speed-submenu,
17
+ .yt-subtitles-submenu,
18
+ .yt-quality-submenu {
19
+ /* Ultra-compact: fit to content */
20
+ width: fit-content !important;
21
+ min-width: auto !important;
22
+ max-width: 180px !important;
23
+ /* Always open to the LEFT */
24
+ right: 100% !important;
25
+ left: auto !important;
26
+ margin-right: 5px !important;
27
+ margin-left: 0 !important;
28
+ /* Scrollbar for long lists */
29
+ max-height: 250px !important;
30
+ overflow-y: auto !important;
31
+ overflow-x: hidden !important;
32
+ /* Text handling */
33
+ white-space: nowrap !important;
34
+ }
35
+
36
+ /* All submenu options (inside submenus) */
37
+ .settings-submenu .settings-suboption,
38
+ .subtitles-menu .subtitle-option,
39
+ .quality-submenu .quality-option,
40
+ .speed-submenu .speed-option,
41
+ .yt-subtitles-submenu .quality-option {
42
+ padding: 8px 10px !important;
43
+ font-size: 12px !important;
44
+ white-space: nowrap !important;
45
+ overflow: hidden !important;
46
+ text-overflow: ellipsis !important;
47
+ }
48
+
49
+ /* ===================================
50
+ SETTINGS MENU - FONT CONSISTENCY
51
+ =================================== */
52
+
53
+ /* Main settings menu options (not in submenus) - keep consistent size */
54
+ .settings-menu > .settings-option,
55
+ .settings-menu > .subtitles-option {
56
+ font-size: 13px !important;
57
+ }
58
+
59
+ .settings-menu > .settings-option span,
60
+ .settings-menu > .subtitles-option span {
61
+ font-size: 13px !important;
62
+ }
63
+
64
+ /* Override any existing .subtitles-option font-size */
65
+ .subtitles-btn,
66
+ .subtitles-control {
67
+ font-size: 13px !important;
68
+ }
69
+
70
+ /* ===================================
71
+ RESPONSIVE - PROGRESSIVE REDUCTION
72
+ =================================== */
73
+
74
+ /* Tablets and larger phones */
75
+ @media (max-width: 768px) {
76
+ /* Main menu options stay readable */
77
+ .settings-menu > .settings-option,
78
+ .settings-menu > .subtitles-option {
79
+ font-size: 12px !important;
80
+ }
81
+
82
+ /* Submenus get smaller */
83
+ .settings-submenu,
84
+ .subtitles-menu,
85
+ .quality-submenu,
86
+ .speed-submenu,
87
+ .yt-subtitles-submenu,
88
+ .yt-quality-submenu {
89
+ max-width: min(140px, calc(100vw - 180px)) !important;
90
+ }
91
+
92
+ .settings-submenu .settings-suboption,
93
+ .subtitles-menu .subtitle-option,
94
+ .quality-submenu .quality-option,
95
+ .speed-submenu .speed-option,
96
+ .yt-subtitles-submenu .quality-option {
97
+ padding: 7px 8px !important;
98
+ font-size: 11px !important;
99
+ }
100
+ }
101
+
102
+ /* Small phones */
103
+ @media (max-width: 600px) {
104
+ .settings-menu > .settings-option,
105
+ .settings-menu > .subtitles-option {
106
+ font-size: 11px !important;
107
+ }
108
+
109
+ .settings-submenu,
110
+ .subtitles-menu,
111
+ .quality-submenu,
112
+ .speed-submenu,
113
+ .yt-subtitles-submenu,
114
+ .yt-quality-submenu {
115
+ max-width: min(120px, calc(100vw - 160px)) !important;
116
+ }
117
+
118
+ .settings-submenu .settings-suboption,
119
+ .subtitles-menu .subtitle-option,
120
+ .quality-submenu .quality-option,
121
+ .speed-submenu .speed-option,
122
+ .yt-subtitles-submenu .quality-option {
123
+ padding: 6px 7px !important;
124
+ font-size: 10px !important;
125
+ }
126
+ }
127
+
128
+ /* Very small phones */
129
+ @media (max-width: 450px) {
130
+ .settings-menu > .settings-option,
131
+ .settings-menu > .subtitles-option {
132
+ font-size: 10px !important;
133
+ }
8
134
 
135
+ .settings-submenu,
136
+ .subtitles-menu,
137
+ .quality-submenu,
138
+ .speed-submenu,
139
+ .yt-subtitles-submenu,
140
+ .yt-quality-submenu {
141
+ max-width: min(100px, calc(100vw - 140px)) !important;
142
+ }
143
+
144
+ .settings-submenu .settings-suboption,
145
+ .subtitles-menu .subtitle-option,
146
+ .quality-submenu .quality-option,
147
+ .speed-submenu .speed-option,
148
+ .yt-subtitles-submenu .quality-option {
149
+ padding: 5px 6px !important;
150
+ font-size: 9px !important;
151
+ }
152
+ }
153
+
154
+ /* Ultra small phones */
155
+ @media (max-width: 350px) {
156
+ .settings-menu > .settings-option,
157
+ .settings-menu > .subtitles-option {
158
+ font-size: 9px !important;
159
+ }
9
160
 
161
+ .settings-submenu,
162
+ .subtitles-menu,
163
+ .quality-submenu,
164
+ .speed-submenu,
165
+ .yt-subtitles-submenu,
166
+ .yt-quality-submenu {
167
+ max-width: min(90px, calc(100vw - 120px)) !important;
168
+ }
10
169
 
170
+ .settings-submenu .settings-suboption,
171
+ .subtitles-menu .subtitle-option,
172
+ .quality-submenu .quality-option,
173
+ .speed-submenu .speed-option,
174
+ .yt-subtitles-submenu .quality-option {
175
+ padding: 4px 5px !important;
176
+ font-size: 8px !important;
177
+ }
178
+ }
11
179
 
12
180
  /* QUALITY BUTTON WITH DUAL DISPLAY */
13
181
  .quality-btn {
@@ -95,24 +263,24 @@
95
263
  border: 1px solid rgba(255, 255, 255, 0.1);
96
264
  }
97
265
 
98
- .volume-tooltip::after {
99
- content: '';
100
- position: absolute;
101
- top: 100%;
102
- left: 50%;
103
- transform: translateX(-50%);
104
- width: 0;
105
- height: 0;
106
- border-left: 6px solid transparent;
107
- border-right: 6px solid transparent;
108
- border-top: 6px solid rgba(0, 0, 0, 0.9);
109
- }
266
+ .volume-tooltip::after {
267
+ content: '';
268
+ position: absolute;
269
+ top: 100%;
270
+ left: 50%;
271
+ transform: translateX(-50%);
272
+ width: 0;
273
+ height: 0;
274
+ border-left: 6px solid transparent;
275
+ border-right: 6px solid transparent;
276
+ border-top: 6px solid rgba(0, 0, 0, 0.9);
277
+ }
110
278
 
111
- .volume-container:hover .volume-tooltip,
112
- .volume-tooltip.visible {
113
- opacity: 1;
114
- visibility: visible;
115
- }
279
+ .volume-container:hover .volume-tooltip,
280
+ .volume-tooltip.visible {
281
+ opacity: 1;
282
+ visibility: visible;
283
+ }
116
284
 
117
285
  .volume-slider::-webkit-slider-thumb {
118
286
  -webkit-appearance: none;
@@ -127,10 +295,10 @@
127
295
  transform: translateY(0);
128
296
  }
129
297
 
130
- .volume-slider::-webkit-slider-thumb:hover {
131
- transform: translateY(0) scale(1.2);
132
- background: var(--player-primary-color);
133
- }
298
+ .volume-slider::-webkit-slider-thumb:hover {
299
+ transform: translateY(0) scale(1.2);
300
+ background: var(--player-primary-color);
301
+ }
134
302
 
135
303
  .volume-slider::-moz-range-thumb {
136
304
  width: var(--player-volume-handle-size);
@@ -145,10 +313,10 @@
145
313
  transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2));
146
314
  }
147
315
 
148
- .volume-slider::-moz-range-thumb:hover {
149
- background: var(--player-primary-color);
150
- transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2)) scale(1.1);
151
- }
316
+ .volume-slider::-moz-range-thumb:hover {
317
+ background: var(--player-primary-color);
318
+ transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2)) scale(1.1);
319
+ }
152
320
 
153
321
  .volume-slider::-webkit-slider-runnable-track {
154
322
  height: var(--player-volume-height);
@@ -209,16 +377,16 @@
209
377
  box-shadow: var(--player-shadow-menu);
210
378
  }
211
379
 
212
- .speed-control:hover .speed-menu,
213
- .speed-menu:hover,
214
- .quality-control:hover .quality-menu,
215
- .quality-menu:hover,
216
- .subtitles-control:hover .subtitles-menu,
217
- .subtitles-menu:hover {
218
- opacity: 1;
219
- visibility: visible;
220
- transform: translateY(-4px);
221
- }
380
+ .speed-control:hover .speed-menu,
381
+ .speed-menu:hover,
382
+ .quality-control:hover .quality-menu,
383
+ .quality-menu:hover,
384
+ .subtitles-control:hover .subtitles-menu,
385
+ .subtitles-menu:hover {
386
+ opacity: 1;
387
+ visibility: visible;
388
+ transform: translateY(-4px);
389
+ }
222
390
 
223
391
  .speed-option,
224
392
  .quality-option,
@@ -233,60 +401,60 @@
233
401
  justify-content: space-between;
234
402
  }
235
403
 
236
- .speed-option:hover,
237
- .quality-option:hover,
238
- .subtitles-option:hover {
239
- background: rgba(255, 255, 255, 0.1);
240
- color: var(--player-primary-color);
241
- }
404
+ .speed-option:hover,
405
+ .quality-option:hover,
406
+ .subtitles-option:hover {
407
+ background: rgba(255, 255, 255, 0.1);
408
+ color: var(--player-primary-color);
409
+ }
242
410
 
243
- .speed-option.active,
244
- .quality-option.active,
245
- .subtitles-option.active {
246
- color: var(--player-primary-color);
247
- font-weight: 600;
248
- background: rgba(255, 255, 255, 0.05);
249
- }
411
+ .speed-option.active,
412
+ .quality-option.active,
413
+ .subtitles-option.active {
414
+ color: var(--player-primary-color);
415
+ font-weight: 600;
416
+ background: rgba(255, 255, 255, 0.05);
417
+ }
250
418
 
251
- /* DUAL QUALITY INDICATORS */
252
- .quality-option.selected {
253
- color: var(--player-primary-color);
254
- font-weight: 600;
255
- }
419
+ /* DUAL QUALITY INDICATORS */
420
+ .quality-option.selected {
421
+ color: var(--player-primary-color);
422
+ font-weight: 600;
423
+ }
256
424
 
257
- .quality-option.selected::after {
258
- content: 'Selected';
259
- font-size: 12px;
260
- color: var(--player-primary-color);
261
- font-weight: 400;
262
- margin-left: 8px;
263
- }
425
+ .quality-option.selected::after {
426
+ content: 'Selected';
427
+ font-size: 12px;
428
+ color: var(--player-primary-color);
429
+ font-weight: 400;
430
+ margin-left: 8px;
431
+ }
264
432
 
265
- .quality-option.playing {
266
- background: rgba(255, 255, 255, 0.05);
267
- }
433
+ .quality-option.playing {
434
+ background: rgba(255, 255, 255, 0.05);
435
+ }
268
436
 
269
- .quality-option.playing::after {
270
- content: 'Playing';
271
- font-size: 12px;
272
- color: #4CAF50; /* Green for playing */
273
- font-weight: 400;
274
- margin-left: 8px;
275
- }
437
+ .quality-option.playing::after {
438
+ content: 'Playing';
439
+ font-size: 12px;
440
+ color: #4CAF50; /* Green for playing */
441
+ font-weight: 400;
442
+ margin-left: 8px;
443
+ }
276
444
 
277
- .quality-option.selected.playing::after {
278
- content: 'Active';
279
- font-size: 12px;
280
- color: var(--player-primary-color);
281
- font-weight: 500;
282
- margin-left: 8px;
283
- }
445
+ .quality-option.selected.playing::after {
446
+ content: 'Active';
447
+ font-size: 12px;
448
+ color: var(--player-primary-color);
449
+ font-weight: 500;
450
+ margin-left: 8px;
451
+ }
284
452
 
285
- .subtitles-option.active::after {
286
- content: '✓';
287
- font-size: 12px;
288
- color: var(--player-primary-color);
289
- }
453
+ .subtitles-option.active::after {
454
+ content: '✓';
455
+ font-size: 12px;
456
+ color: var(--player-primary-color);
457
+ }
290
458
 
291
459
  /* CUSTOM SUBTITLES STYLING */
292
460
  .video-player::cue {
@@ -327,9 +495,9 @@
327
495
  flex-shrink: 1; /* Allow brand logo to shrink */
328
496
  }
329
497
 
330
- .controls-right .brand-logo:hover {
331
- opacity: 1; /* opaque on hover */
332
- }
498
+ .controls-right .brand-logo:hover {
499
+ opacity: 1; /* opaque on hover */
500
+ }
333
501
 
334
502
  .controls-right .brand-logo-link {
335
503
  order: -1; /* force link container to appear first */
@@ -338,9 +506,9 @@
338
506
  text-decoration: none;
339
507
  }
340
508
 
341
- .controls-right .brand-logo-link .brand-logo {
342
- margin-right: 0; /* remove margin when inside link */
343
- }
509
+ .controls-right .brand-logo-link .brand-logo {
510
+ margin-right: 0; /* remove margin when inside link */
511
+ }
344
512
 
345
513
  /* SETTINGS DROPDOWN MENU - FOR SMALL SCREENS */
346
514
  .settings-control {
@@ -367,20 +535,20 @@
367
535
  white-space: nowrap;
368
536
  }
369
537
 
370
- .settings-btn:hover {
371
- background: var(--player-button-hover);
372
- transform: scale(1.05);
373
- }
538
+ .settings-btn:hover {
539
+ background: var(--player-button-hover);
540
+ transform: scale(1.05);
541
+ }
374
542
 
375
- .settings-btn:active {
376
- transform: scale(0.95);
377
- background: var(--player-button-active);
378
- }
543
+ .settings-btn:active {
544
+ transform: scale(0.95);
545
+ background: var(--player-button-active);
546
+ }
379
547
 
380
- .settings-btn .icon::before {
381
- content: '⚙️'; /* Settings gear emoji */
382
- font-size: 16px;
383
- }
548
+ .settings-btn .icon::before {
549
+ content: '⚙️'; /* Settings gear emoji */
550
+ font-size: 16px;
551
+ }
384
552
 
385
553
  .settings-menu {
386
554
  position: absolute;
@@ -400,12 +568,12 @@
400
568
  box-shadow: var(--player-shadow-menu);
401
569
  }
402
570
 
403
- .settings-control:hover .settings-menu,
404
- .settings-menu:hover {
405
- opacity: 1;
406
- visibility: visible;
407
- transform: translateY(-4px);
408
- }
571
+ .settings-control:hover .settings-menu,
572
+ .settings-menu:hover {
573
+ opacity: 1;
574
+ visibility: visible;
575
+ transform: translateY(-4px);
576
+ }
409
577
 
410
578
  .settings-option {
411
579
  padding: 8px 16px;
@@ -419,14 +587,14 @@
419
587
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
420
588
  }
421
589
 
422
- .settings-option:last-child {
423
- border-bottom: none;
424
- }
590
+ .settings-option:last-child {
591
+ border-bottom: none;
592
+ }
425
593
 
426
- .settings-option:hover {
427
- background: rgba(255, 255, 255, 0.1);
428
- color: var(--player-primary-color);
429
- }
594
+ .settings-option:hover {
595
+ background: rgba(255, 255, 255, 0.1);
596
+ color: var(--player-primary-color);
597
+ }
430
598
 
431
599
  .settings-option-label {
432
600
  display: flex;
@@ -482,22 +650,22 @@
482
650
  justify-content: space-between;
483
651
  }
484
652
 
485
- .settings-suboption:hover {
486
- background: rgba(255, 255, 255, 0.1);
487
- color: var(--player-primary-color);
488
- }
653
+ .settings-suboption:hover {
654
+ background: rgba(255, 255, 255, 0.1);
655
+ color: var(--player-primary-color);
656
+ }
489
657
 
490
- .settings-suboption.active {
491
- color: var(--player-primary-color);
492
- font-weight: 600;
493
- background: rgba(255, 255, 255, 0.05);
494
- }
658
+ .settings-suboption.active {
659
+ color: var(--player-primary-color);
660
+ font-weight: 600;
661
+ background: rgba(255, 255, 255, 0.05);
662
+ }
495
663
 
496
- .settings-suboption.active::after {
497
- content: '✓';
498
- font-size: 12px;
499
- color: var(--player-primary-color);
500
- }
664
+ .settings-suboption.active::after {
665
+ content: '✓';
666
+ font-size: 12px;
667
+ color: var(--player-primary-color);
668
+ }
501
669
 
502
670
  /* RESPONSIVE DESIGN - Progressive Degradation with Drop-Down Menu */
503
671
 
@@ -760,9 +928,9 @@
760
928
  -ms-overflow-style: none; /* Internet Explorer 10+ */
761
929
  }
762
930
 
763
- .controls-main::-webkit-scrollbar {
764
- display: none; /* Safari and Chrome */
765
- }
931
+ .controls-main::-webkit-scrollbar {
932
+ display: none; /* Safari and Chrome */
933
+ }
766
934
 
767
935
  .controls-left,
768
936
  .controls-right {
@@ -781,10 +949,10 @@
781
949
  display: none; /* Hidden by default, shown only when playlist is detected */
782
950
  }
783
951
 
784
- .controls-right .playlist-prev-btn.playlist-active,
785
- .controls-right .playlist-next-btn.playlist-active {
786
- display: flex;
787
- }
952
+ .controls-right .playlist-prev-btn.playlist-active,
953
+ .controls-right .playlist-next-btn.playlist-active {
954
+ display: flex;
955
+ }
788
956
 
789
957
  /* Playlist button styles */
790
958
  .playlist-prev-btn .icon::before {
@@ -803,10 +971,10 @@
803
971
  pointer-events: none;
804
972
  }
805
973
 
806
- .playlist-prev-btn:disabled .icon,
807
- .playlist-next-btn:disabled .icon {
808
- opacity: 0.5;
809
- }
974
+ .playlist-prev-btn:disabled .icon,
975
+ .playlist-next-btn:disabled .icon {
976
+ opacity: 0.5;
977
+ }
810
978
 
811
979
  /* Responsive playlist buttons */
812
980
  @media (max-width: 768px) {
@@ -885,9 +1053,9 @@
885
1053
  transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 2px));
886
1054
  }
887
1055
 
888
- .volume-slider::-moz-range-thumb:hover {
889
- transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 2px)) scale(1.1);
890
- }
1056
+ .volume-slider::-moz-range-thumb:hover {
1057
+ transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 2px)) scale(1.1);
1058
+ }
891
1059
  /* Ensure the track alignment is also correct */
892
1060
  .volume-slider::-moz-range-track {
893
1061
  height: var(--player-volume-height);
@@ -906,13 +1074,13 @@
906
1074
  margin-top: -1px;
907
1075
  }
908
1076
 
909
- .volume-slider::-moz-range-thumb {
910
- transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 1.5px));
911
- }
1077
+ .volume-slider::-moz-range-thumb {
1078
+ transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 1.5px));
1079
+ }
912
1080
 
913
- .volume-slider::-moz-range-thumb:hover {
914
- transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 1.5px)) scale(1.1);
915
- }
1081
+ .volume-slider::-moz-range-thumb:hover {
1082
+ transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 1.5px)) scale(1.1);
1083
+ }
916
1084
  }
917
1085
 
918
1086
  /* FIREFOX VOLUME CONTAINER POSITION FIX */
@@ -927,9 +1095,9 @@
927
1095
  transform: translateY(-2px) !important;
928
1096
  }
929
1097
 
930
- .volume-slider::-moz-range-thumb:hover {
931
- transform: translateY(-2px) scale(1.1) !important;
932
- }
1098
+ .volume-slider::-moz-range-thumb:hover {
1099
+ transform: translateY(-2px) scale(1.1) !important;
1100
+ }
933
1101
  }
934
1102
 
935
1103
  /* RESOLUTION CONTROL SYSTEM - Video resolution modes management */
@@ -1166,49 +1334,49 @@ video::-webkit-media-text-track-display {
1166
1334
  }
1167
1335
  /* Custom subtitle overlay responsive styles */
1168
1336
  .custom-subtitle-overlay {
1169
- font-size: clamp(12px, 4vw, 18px);
1337
+ font-size: clamp(12px, 4vw, 18px);
1170
1338
  }
1171
1339
 
1172
1340
  /* Tablet responsiveness */
1173
1341
  @media (max-width: 768px) {
1174
- .custom-subtitle-overlay {
1175
- font-size: 16px !important;
1176
- bottom: 70px !important;
1177
- max-width: 85% !important;
1178
- padding: 6px 12px !important;
1179
- line-height: 1.2 !important;
1180
- }
1342
+ .custom-subtitle-overlay {
1343
+ font-size: 16px !important;
1344
+ bottom: 70px !important;
1345
+ max-width: 85% !important;
1346
+ padding: 6px 12px !important;
1347
+ line-height: 1.2 !important;
1348
+ }
1181
1349
  }
1182
1350
 
1183
1351
  /* Mobile phone responsiveness */
1184
1352
  @media (max-width: 480px) {
1185
- .custom-subtitle-overlay {
1186
- font-size: 14px !important;
1187
- bottom: 60px !important;
1188
- max-width: 90% !important;
1189
- padding: 5px 10px !important;
1190
- line-height: 1.15 !important;
1191
- }
1353
+ .custom-subtitle-overlay {
1354
+ font-size: 14px !important;
1355
+ bottom: 60px !important;
1356
+ max-width: 90% !important;
1357
+ padding: 5px 10px !important;
1358
+ line-height: 1.15 !important;
1359
+ }
1192
1360
  }
1193
1361
 
1194
1362
  /* Very small screens */
1195
1363
  @media (max-width: 360px) {
1196
- .custom-subtitle-overlay {
1197
- font-size: 12px !important;
1198
- bottom: 50px !important;
1199
- max-width: 95% !important;
1200
- padding: 4px 8px !important;
1201
- }
1364
+ .custom-subtitle-overlay {
1365
+ font-size: 12px !important;
1366
+ bottom: 50px !important;
1367
+ max-width: 95% !important;
1368
+ padding: 4px 8px !important;
1369
+ }
1202
1370
  }
1203
1371
 
1204
1372
  /* Landscape mobile optimization */
1205
1373
  @media (max-height: 500px) and (orientation: landscape) {
1206
- .custom-subtitle-overlay {
1207
- font-size: 13px !important;
1208
- bottom: 45px !important;
1209
- max-width: 85% !important;
1210
- padding: 4px 10px !important;
1211
- }
1374
+ .custom-subtitle-overlay {
1375
+ font-size: 13px !important;
1376
+ bottom: 45px !important;
1377
+ max-width: 85% !important;
1378
+ padding: 4px 10px !important;
1379
+ }
1212
1380
  }
1213
1381
 
1214
1382
  /* Scrollable dropdown menus for small player heights */
@@ -1221,32 +1389,32 @@ video::-webkit-media-text-track-display {
1221
1389
  scrollbar-color: var(--player-primary-color) rgba(255, 255, 255, 0.1);
1222
1390
  }
1223
1391
 
1224
- /* Custom scrollbar for WebKit browsers */
1225
- .speed-menu::-webkit-scrollbar,
1226
- .quality-menu::-webkit-scrollbar,
1227
- .subtitles-menu::-webkit-scrollbar {
1228
- width: 6px;
1229
- }
1392
+ /* Custom scrollbar for WebKit browsers */
1393
+ .speed-menu::-webkit-scrollbar,
1394
+ .quality-menu::-webkit-scrollbar,
1395
+ .subtitles-menu::-webkit-scrollbar {
1396
+ width: 6px;
1397
+ }
1230
1398
 
1231
- .speed-menu::-webkit-scrollbar-track,
1232
- .quality-menu::-webkit-scrollbar-track,
1233
- .subtitles-menu::-webkit-scrollbar-track {
1234
- background: rgba(255, 255, 255, 0.1);
1235
- border-radius: 3px;
1236
- }
1399
+ .speed-menu::-webkit-scrollbar-track,
1400
+ .quality-menu::-webkit-scrollbar-track,
1401
+ .subtitles-menu::-webkit-scrollbar-track {
1402
+ background: rgba(255, 255, 255, 0.1);
1403
+ border-radius: 3px;
1404
+ }
1237
1405
 
1238
- .speed-menu::-webkit-scrollbar-thumb,
1239
- .quality-menu::-webkit-scrollbar-thumb,
1240
- .subtitles-menu::-webkit-scrollbar-thumb {
1241
- background: var(--player-primary-color);
1242
- border-radius: 3px;
1243
- }
1406
+ .speed-menu::-webkit-scrollbar-thumb,
1407
+ .quality-menu::-webkit-scrollbar-thumb,
1408
+ .subtitles-menu::-webkit-scrollbar-thumb {
1409
+ background: var(--player-primary-color);
1410
+ border-radius: 3px;
1411
+ }
1244
1412
 
1245
- .speed-menu::-webkit-scrollbar-thumb:hover,
1246
- .quality-menu::-webkit-scrollbar-thumb:hover,
1247
- .subtitles-menu::-webkit-scrollbar-thumb:hover {
1248
- background: var(--player-primary-hover);
1249
- }
1413
+ .speed-menu::-webkit-scrollbar-thumb:hover,
1414
+ .quality-menu::-webkit-scrollbar-thumb:hover,
1415
+ .subtitles-menu::-webkit-scrollbar-thumb:hover {
1416
+ background: var(--player-primary-hover);
1417
+ }
1250
1418
 
1251
1419
  /* Responsive max-height for very small players */
1252
1420
  @media (max-height: 400px) {
@@ -1273,24 +1441,24 @@ video::-webkit-media-text-track-display {
1273
1441
  scrollbar-color: var(--player-primary-color) rgba(255, 255, 255, 0.1);
1274
1442
  }
1275
1443
 
1276
- /* Custom scrollbar for settings submenu in WebKit browsers */
1277
- .settings-submenu::-webkit-scrollbar {
1278
- width: 6px;
1279
- }
1444
+ /* Custom scrollbar for settings submenu in WebKit browsers */
1445
+ .settings-submenu::-webkit-scrollbar {
1446
+ width: 6px;
1447
+ }
1280
1448
 
1281
- .settings-submenu::-webkit-scrollbar-track {
1282
- background: rgba(255, 255, 255, 0.1);
1283
- border-radius: 3px;
1284
- }
1449
+ .settings-submenu::-webkit-scrollbar-track {
1450
+ background: rgba(255, 255, 255, 0.1);
1451
+ border-radius: 3px;
1452
+ }
1285
1453
 
1286
- .settings-submenu::-webkit-scrollbar-thumb {
1287
- background: var(--player-primary-color);
1288
- border-radius: 3px;
1289
- }
1454
+ .settings-submenu::-webkit-scrollbar-thumb {
1455
+ background: var(--player-primary-color);
1456
+ border-radius: 3px;
1457
+ }
1290
1458
 
1291
- .settings-submenu::-webkit-scrollbar-thumb:hover {
1292
- background: var(--player-primary-hover);
1293
- }
1459
+ .settings-submenu::-webkit-scrollbar-thumb:hover {
1460
+ background: var(--player-primary-hover);
1461
+ }
1294
1462
 
1295
1463
  /* Responsive adjustments for settings submenu on very small screens */
1296
1464
  @media (max-width: 350px) {
@@ -1313,14 +1481,14 @@ video::-webkit-media-text-track-display {
1313
1481
  gap: var(--player-controls-gap);
1314
1482
  }
1315
1483
 
1316
- /* Horizontal Volume Slider (default) - Base width reduced */
1317
- .volume-container[data-orientation="horizontal"] .volume-slider {
1318
- width: 80px; /* Ridotto da var(--player-volume-width) a 80px fissi */
1319
- height: var(--player-volume-height);
1320
- background: var(--player-volume-bg);
1321
- border-radius: calc(var(--player-volume-height) / 2);
1322
- transition: all 0.3s ease;
1323
- }
1484
+ /* Horizontal Volume Slider (default) - Base width reduced */
1485
+ .volume-container[data-orientation="horizontal"] .volume-slider {
1486
+ width: 80px; /* Ridotto da var(--player-volume-width) a 80px fissi */
1487
+ height: var(--player-volume-height);
1488
+ background: var(--player-volume-bg);
1489
+ border-radius: calc(var(--player-volume-height) / 2);
1490
+ transition: all 0.3s ease;
1491
+ }
1324
1492
 
1325
1493
  /* Responsive width reduction for horizontal slider */
1326
1494
  @media (max-width: 1200px) {
@@ -1354,16 +1522,16 @@ video::-webkit-media-text-track-display {
1354
1522
  justify-content: center;
1355
1523
  }
1356
1524
 
1357
- .volume-container[data-orientation="vertical"] .volume-slider {
1358
- width: 4px;
1359
- height: 60px;
1360
- writing-mode: bt-lr; /* IE */
1361
- -webkit-appearance: slider-vertical; /* WebKit */
1362
- background: var(--player-volume-bg);
1363
- border-radius: 2px;
1364
- transform: rotate(0deg);
1365
- transition: all 0.3s ease;
1366
- }
1525
+ .volume-container[data-orientation="vertical"] .volume-slider {
1526
+ width: 4px;
1527
+ height: 60px;
1528
+ writing-mode: bt-lr; /* IE */
1529
+ -webkit-appearance: slider-vertical; /* WebKit */
1530
+ background: var(--player-volume-bg);
1531
+ border-radius: 2px;
1532
+ transform: rotate(0deg);
1533
+ transition: all 0.3s ease;
1534
+ }
1367
1535
 
1368
1536
  /* Responsive: Force vertical behavior for horizontal sliders under 550px */
1369
1537
  @media (max-width: 550px) {
@@ -1501,21 +1669,21 @@ video::-webkit-media-text-track-display {
1501
1669
  transform: translateX(-50%);
1502
1670
  }
1503
1671
 
1504
- /* Hover state for chapter marker */
1505
- .chapter-marker:hover {
1506
- opacity: 1;
1507
- width: 4px;
1508
- height: 120%;
1509
- top: -10%;
1510
- box-shadow: 0 0 8px var(--player-primary-color);
1511
- }
1672
+ /* Hover state for chapter marker */
1673
+ .chapter-marker:hover {
1674
+ opacity: 1;
1675
+ width: 4px;
1676
+ height: 120%;
1677
+ top: -10%;
1678
+ box-shadow: 0 0 8px var(--player-primary-color);
1679
+ }
1512
1680
 
1513
- /* Active chapter marker (currently playing) */
1514
- .chapter-marker.active {
1515
- background: var(--player-primary-hover);
1516
- opacity: 1;
1517
- width: 4px;
1518
- }
1681
+ /* Active chapter marker (currently playing) */
1682
+ .chapter-marker.active {
1683
+ background: var(--player-primary-hover);
1684
+ opacity: 1;
1685
+ width: 4px;
1686
+ }
1519
1687
 
1520
1688
  /* Chapter tooltip */
1521
1689
  .chapter-tooltip {
@@ -1540,19 +1708,19 @@ video::-webkit-media-text-track-display {
1540
1708
  pointer-events: none;
1541
1709
  }
1542
1710
 
1543
- /* Tooltip arrow */
1544
- .chapter-tooltip::after {
1545
- content: '';
1546
- position: absolute;
1547
- top: 100%;
1548
- left: 50%;
1549
- transform: translateX(-50%);
1550
- width: 0;
1551
- height: 0;
1552
- border-left: 6px solid transparent;
1553
- border-right: 6px solid transparent;
1554
- border-top: 6px solid rgba(0, 0, 0, 0.95);
1555
- }
1711
+ /* Tooltip arrow */
1712
+ .chapter-tooltip::after {
1713
+ content: '';
1714
+ position: absolute;
1715
+ top: 100%;
1716
+ left: 50%;
1717
+ transform: translateX(-50%);
1718
+ width: 0;
1719
+ height: 0;
1720
+ border-left: 6px solid transparent;
1721
+ border-right: 6px solid transparent;
1722
+ border-top: 6px solid rgba(0, 0, 0, 0.95);
1723
+ }
1556
1724
 
1557
1725
  /* Chapter tooltip image */
1558
1726
  .chapter-tooltip-image {
@@ -1590,9 +1758,9 @@ video::-webkit-media-text-track-display {
1590
1758
  width: 2px;
1591
1759
  }
1592
1760
 
1593
- .chapter-marker:hover {
1594
- width: 3px;
1595
- }
1761
+ .chapter-marker:hover {
1762
+ width: 3px;
1763
+ }
1596
1764
 
1597
1765
  .chapter-tooltip {
1598
1766
  min-width: 160px;
@@ -1623,73 +1791,73 @@ video::-webkit-media-text-track-display {
1623
1791
  pointer-events: none;
1624
1792
  }
1625
1793
 
1626
- /* Visible state */
1627
- .video-poster-overlay.visible {
1628
- opacity: 1;
1629
- visibility: visible;
1630
- pointer-events: auto;
1631
- }
1794
+ /* Visible state */
1795
+ .video-poster-overlay.visible {
1796
+ opacity: 1;
1797
+ visibility: visible;
1798
+ pointer-events: auto;
1799
+ }
1632
1800
 
1633
- /* Hidden state */
1634
- .video-poster-overlay.hidden {
1635
- opacity: 0;
1636
- visibility: hidden;
1637
- pointer-events: none;
1638
- }
1801
+ /* Hidden state */
1802
+ .video-poster-overlay.hidden {
1803
+ opacity: 0;
1804
+ visibility: hidden;
1805
+ pointer-events: none;
1806
+ }
1639
1807
 
1640
- /* Hover effect on poster */
1641
- .video-poster-overlay.visible:hover {
1642
- opacity: 0.95;
1643
- }
1808
+ /* Hover effect on poster */
1809
+ .video-poster-overlay.visible:hover {
1810
+ opacity: 0.95;
1811
+ }
1644
1812
 
1645
- /* Play button overlay on poster - THEMED COLORS 🎨 */
1646
- .video-poster-overlay::after {
1647
- content: '';
1648
- position: absolute;
1649
- top: 50%;
1650
- left: 50%;
1651
- transform: translate(-50%, -50%);
1652
- width: 80px;
1653
- height: 80px;
1654
- background: rgba(0, 0, 0, 0.7);
1655
- border-radius: 50%;
1656
- border: 3px solid var(--player-primary-color); /* THEMED BORDER ✨ */
1657
- opacity: 0;
1658
- transition: opacity 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
1659
- pointer-events: none;
1660
- }
1813
+ /* Play button overlay on poster - THEMED COLORS 🎨 */
1814
+ .video-poster-overlay::after {
1815
+ content: '';
1816
+ position: absolute;
1817
+ top: 50%;
1818
+ left: 50%;
1819
+ transform: translate(-50%, -50%);
1820
+ width: 80px;
1821
+ height: 80px;
1822
+ background: rgba(0, 0, 0, 0.7);
1823
+ border-radius: 50%;
1824
+ border: 3px solid var(--player-primary-color); /* THEMED BORDER ✨ */
1825
+ opacity: 0;
1826
+ transition: opacity 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
1827
+ pointer-events: none;
1828
+ }
1661
1829
 
1662
- /* Show play button on hover with animation and themed glow */
1663
- .video-poster-overlay.visible:hover::after {
1664
- opacity: 1;
1665
- transform: translate(-50%, -50%) scale(1.1);
1666
- border-color: var(--player-primary-hover); /* THEMED HOVER COLOR 🌟 */
1667
- box-shadow: 0 0 20px var(--player-primary-color); /* THEMED GLOW 💫 */
1668
- }
1830
+ /* Show play button on hover with animation and themed glow */
1831
+ .video-poster-overlay.visible:hover::after {
1832
+ opacity: 1;
1833
+ transform: translate(-50%, -50%) scale(1.1);
1834
+ border-color: var(--player-primary-hover); /* THEMED HOVER COLOR 🌟 */
1835
+ box-shadow: 0 0 20px var(--player-primary-color); /* THEMED GLOW 💫 */
1836
+ }
1669
1837
 
1670
- /* Play icon triangle - THEMED COLOR 🎨 */
1671
- .video-poster-overlay::before {
1672
- content: '';
1673
- position: absolute;
1674
- top: 50%;
1675
- left: 50%;
1676
- transform: translate(-40%, -50%);
1677
- width: 0;
1678
- height: 0;
1679
- border-style: solid;
1680
- border-width: 15px 0 15px 25px;
1681
- border-color: transparent transparent transparent var(--player-primary-color); /* THEMED TRIANGLE ✨ */
1682
- z-index: 2;
1683
- opacity: 0;
1684
- transition: opacity 0.3s ease, border-color 0.3s ease;
1685
- pointer-events: none;
1686
- }
1838
+ /* Play icon triangle - THEMED COLOR 🎨 */
1839
+ .video-poster-overlay::before {
1840
+ content: '';
1841
+ position: absolute;
1842
+ top: 50%;
1843
+ left: 50%;
1844
+ transform: translate(-40%, -50%);
1845
+ width: 0;
1846
+ height: 0;
1847
+ border-style: solid;
1848
+ border-width: 15px 0 15px 25px;
1849
+ border-color: transparent transparent transparent var(--player-primary-color); /* THEMED TRIANGLE ✨ */
1850
+ z-index: 2;
1851
+ opacity: 0;
1852
+ transition: opacity 0.3s ease, border-color 0.3s ease;
1853
+ pointer-events: none;
1854
+ }
1687
1855
 
1688
- /* Show play icon on hover with themed color */
1689
- .video-poster-overlay.visible:hover::before {
1690
- opacity: 1;
1691
- border-color: transparent transparent transparent var(--player-primary-hover); /* THEMED HOVER 🌟 */
1692
- }
1856
+ /* Show play icon on hover with themed color */
1857
+ .video-poster-overlay.visible:hover::before {
1858
+ opacity: 1;
1859
+ border-color: transparent transparent transparent var(--player-primary-hover); /* THEMED HOVER 🌟 */
1860
+ }
1693
1861
 
1694
1862
  /* Responsive adjustments */
1695
1863
  @media (max-width: 768px) {
@@ -2035,22 +2203,22 @@ video::-webkit-media-text-track-display {
2035
2203
  position: relative;
2036
2204
  }
2037
2205
 
2038
- .subtitles-btn.active {
2039
- background: var(--player-button-active);
2040
- color: var(--player-primary-color);
2041
- }
2206
+ .subtitles-btn.active {
2207
+ background: var(--player-button-active);
2208
+ color: var(--player-primary-color);
2209
+ }
2042
2210
 
2043
- .subtitles-btn.active::after {
2044
- content: '';
2045
- position: absolute;
2046
- bottom: 2px;
2047
- left: 50%;
2048
- transform: translateX(-50%);
2049
- width: 20px;
2050
- height: 2px;
2051
- background: var(--player-primary-color);
2052
- border-radius: 1px;
2053
- }
2211
+ .subtitles-btn.active::after {
2212
+ content: '';
2213
+ position: absolute;
2214
+ bottom: 2px;
2215
+ left: 50%;
2216
+ transform: translateX(-50%);
2217
+ width: 20px;
2218
+ height: 2px;
2219
+ background: var(--player-primary-color);
2220
+ border-radius: 1px;
2221
+ }
2054
2222
 
2055
2223
  /* QUALITY BUTTON WITH DUAL DISPLAY */
2056
2224
  .quality-btn {
@@ -2138,24 +2306,24 @@ video::-webkit-media-text-track-display {
2138
2306
  border: 1px solid rgba(255, 255, 255, 0.1);
2139
2307
  }
2140
2308
 
2141
- .volume-tooltip::after {
2142
- content: '';
2143
- position: absolute;
2144
- top: 100%;
2145
- left: 50%;
2146
- transform: translateX(-50%);
2147
- width: 0;
2148
- height: 0;
2149
- border-left: 6px solid transparent;
2150
- border-right: 6px solid transparent;
2151
- border-top: 6px solid rgba(0, 0, 0, 0.9);
2152
- }
2309
+ .volume-tooltip::after {
2310
+ content: '';
2311
+ position: absolute;
2312
+ top: 100%;
2313
+ left: 50%;
2314
+ transform: translateX(-50%);
2315
+ width: 0;
2316
+ height: 0;
2317
+ border-left: 6px solid transparent;
2318
+ border-right: 6px solid transparent;
2319
+ border-top: 6px solid rgba(0, 0, 0, 0.9);
2320
+ }
2153
2321
 
2154
- .volume-container:hover .volume-tooltip,
2155
- .volume-tooltip.visible {
2156
- opacity: 1;
2157
- visibility: visible;
2158
- }
2322
+ .volume-container:hover .volume-tooltip,
2323
+ .volume-tooltip.visible {
2324
+ opacity: 1;
2325
+ visibility: visible;
2326
+ }
2159
2327
 
2160
2328
  .volume-slider::-webkit-slider-thumb {
2161
2329
  -webkit-appearance: none;
@@ -2170,10 +2338,10 @@ video::-webkit-media-text-track-display {
2170
2338
  transform: translateY(0);
2171
2339
  }
2172
2340
 
2173
- .volume-slider::-webkit-slider-thumb:hover {
2174
- transform: translateY(0) scale(1.2);
2175
- background: var(--player-primary-color);
2176
- }
2341
+ .volume-slider::-webkit-slider-thumb:hover {
2342
+ transform: translateY(0) scale(1.2);
2343
+ background: var(--player-primary-color);
2344
+ }
2177
2345
 
2178
2346
  .volume-slider::-moz-range-thumb {
2179
2347
  width: var(--player-volume-handle-size);
@@ -2188,10 +2356,10 @@ video::-webkit-media-text-track-display {
2188
2356
  transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2));
2189
2357
  }
2190
2358
 
2191
- .volume-slider::-moz-range-thumb:hover {
2192
- background: var(--player-primary-color);
2193
- transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2)) scale(1.1);
2194
- }
2359
+ .volume-slider::-moz-range-thumb:hover {
2360
+ background: var(--player-primary-color);
2361
+ transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2)) scale(1.1);
2362
+ }
2195
2363
 
2196
2364
  .volume-slider::-webkit-slider-runnable-track {
2197
2365
  height: var(--player-volume-height);
@@ -2252,16 +2420,16 @@ video::-webkit-media-text-track-display {
2252
2420
  box-shadow: var(--player-shadow-menu);
2253
2421
  }
2254
2422
 
2255
- .speed-control:hover .speed-menu,
2256
- .speed-menu:hover,
2257
- .quality-control:hover .quality-menu,
2258
- .quality-menu:hover,
2259
- .subtitles-control:hover .subtitles-menu,
2260
- .subtitles-menu:hover {
2261
- opacity: 1;
2262
- visibility: visible;
2263
- transform: translateY(-4px);
2264
- }
2423
+ .speed-control:hover .speed-menu,
2424
+ .speed-menu:hover,
2425
+ .quality-control:hover .quality-menu,
2426
+ .quality-menu:hover,
2427
+ .subtitles-control:hover .subtitles-menu,
2428
+ .subtitles-menu:hover {
2429
+ opacity: 1;
2430
+ visibility: visible;
2431
+ transform: translateY(-4px);
2432
+ }
2265
2433
 
2266
2434
  .speed-option,
2267
2435
  .quality-option,
@@ -2276,60 +2444,60 @@ video::-webkit-media-text-track-display {
2276
2444
  justify-content: space-between;
2277
2445
  }
2278
2446
 
2279
- .speed-option:hover,
2280
- .quality-option:hover,
2281
- .subtitles-option:hover {
2282
- background: rgba(255, 255, 255, 0.1);
2283
- color: var(--player-primary-color);
2284
- }
2447
+ .speed-option:hover,
2448
+ .quality-option:hover,
2449
+ .subtitles-option:hover {
2450
+ background: rgba(255, 255, 255, 0.1);
2451
+ color: var(--player-primary-color);
2452
+ }
2285
2453
 
2286
- .speed-option.active,
2287
- .quality-option.active,
2288
- .subtitles-option.active {
2289
- color: var(--player-primary-color);
2290
- font-weight: 600;
2291
- background: rgba(255, 255, 255, 0.05);
2292
- }
2454
+ .speed-option.active,
2455
+ .quality-option.active,
2456
+ .subtitles-option.active {
2457
+ color: var(--player-primary-color);
2458
+ font-weight: 600;
2459
+ background: rgba(255, 255, 255, 0.05);
2460
+ }
2293
2461
 
2294
- /* DUAL QUALITY INDICATORS */
2295
- .quality-option.selected {
2296
- color: var(--player-primary-color);
2297
- font-weight: 600;
2298
- }
2462
+ /* DUAL QUALITY INDICATORS */
2463
+ .quality-option.selected {
2464
+ color: var(--player-primary-color);
2465
+ font-weight: 600;
2466
+ }
2299
2467
 
2300
- .quality-option.selected::after {
2301
- content: 'Selected';
2302
- font-size: 12px;
2303
- color: var(--player-primary-color);
2304
- font-weight: 400;
2305
- margin-left: 8px;
2306
- }
2468
+ .quality-option.selected::after {
2469
+ content: 'Selected';
2470
+ font-size: 12px;
2471
+ color: var(--player-primary-color);
2472
+ font-weight: 400;
2473
+ margin-left: 8px;
2474
+ }
2307
2475
 
2308
- .quality-option.playing {
2309
- background: rgba(255, 255, 255, 0.05);
2310
- }
2476
+ .quality-option.playing {
2477
+ background: rgba(255, 255, 255, 0.05);
2478
+ }
2311
2479
 
2312
- .quality-option.playing::after {
2313
- content: 'Playing';
2314
- font-size: 12px;
2315
- color: #4CAF50; /* Green for playing */
2316
- font-weight: 400;
2317
- margin-left: 8px;
2318
- }
2480
+ .quality-option.playing::after {
2481
+ content: 'Playing';
2482
+ font-size: 12px;
2483
+ color: #4CAF50; /* Green for playing */
2484
+ font-weight: 400;
2485
+ margin-left: 8px;
2486
+ }
2319
2487
 
2320
- .quality-option.selected.playing::after {
2321
- content: 'Active';
2322
- font-size: 12px;
2323
- color: var(--player-primary-color);
2324
- font-weight: 500;
2325
- margin-left: 8px;
2326
- }
2488
+ .quality-option.selected.playing::after {
2489
+ content: 'Active';
2490
+ font-size: 12px;
2491
+ color: var(--player-primary-color);
2492
+ font-weight: 500;
2493
+ margin-left: 8px;
2494
+ }
2327
2495
 
2328
- .subtitles-option.active::after {
2329
- content: '✓';
2330
- font-size: 12px;
2331
- color: var(--player-primary-color);
2332
- }
2496
+ .subtitles-option.active::after {
2497
+ content: '✓';
2498
+ font-size: 12px;
2499
+ color: var(--player-primary-color);
2500
+ }
2333
2501
 
2334
2502
  /* CUSTOM SUBTITLES STYLING */
2335
2503
  .video-player::cue {
@@ -2370,9 +2538,9 @@ video::-webkit-media-text-track-display {
2370
2538
  flex-shrink: 1; /* Allow brand logo to shrink */
2371
2539
  }
2372
2540
 
2373
- .controls-right .brand-logo:hover {
2374
- opacity: 1; /* opaque on hover */
2375
- }
2541
+ .controls-right .brand-logo:hover {
2542
+ opacity: 1; /* opaque on hover */
2543
+ }
2376
2544
 
2377
2545
  .controls-right .brand-logo-link {
2378
2546
  order: -1; /* force link container to appear first */
@@ -2381,9 +2549,9 @@ video::-webkit-media-text-track-display {
2381
2549
  text-decoration: none;
2382
2550
  }
2383
2551
 
2384
- .controls-right .brand-logo-link .brand-logo {
2385
- margin-right: 0; /* remove margin when inside link */
2386
- }
2552
+ .controls-right .brand-logo-link .brand-logo {
2553
+ margin-right: 0; /* remove margin when inside link */
2554
+ }
2387
2555
 
2388
2556
  /* SETTINGS DROPDOWN MENU - NUOVO SISTEMA PER SCHERMI PICCOLI */
2389
2557
  .settings-control {
@@ -2410,20 +2578,20 @@ video::-webkit-media-text-track-display {
2410
2578
  white-space: nowrap;
2411
2579
  }
2412
2580
 
2413
- .settings-btn:hover {
2414
- background: var(--player-button-hover);
2415
- transform: scale(1.05);
2416
- }
2581
+ .settings-btn:hover {
2582
+ background: var(--player-button-hover);
2583
+ transform: scale(1.05);
2584
+ }
2417
2585
 
2418
- .settings-btn:active {
2419
- transform: scale(0.95);
2420
- background: var(--player-button-active);
2421
- }
2586
+ .settings-btn:active {
2587
+ transform: scale(0.95);
2588
+ background: var(--player-button-active);
2589
+ }
2422
2590
 
2423
- .settings-btn .icon::before {
2424
- content: '⚙️'; /* Settings gear emoji */
2425
- font-size: 16px;
2426
- }
2591
+ .settings-btn .icon::before {
2592
+ content: '⚙️'; /* Settings gear emoji */
2593
+ font-size: 16px;
2594
+ }
2427
2595
 
2428
2596
  .settings-menu {
2429
2597
  position: absolute;
@@ -2443,12 +2611,12 @@ video::-webkit-media-text-track-display {
2443
2611
  box-shadow: var(--player-shadow-menu);
2444
2612
  }
2445
2613
 
2446
- .settings-control:hover .settings-menu,
2447
- .settings-menu:hover {
2448
- opacity: 1;
2449
- visibility: visible;
2450
- transform: translateY(-4px);
2451
- }
2614
+ .settings-control:hover .settings-menu,
2615
+ .settings-menu:hover {
2616
+ opacity: 1;
2617
+ visibility: visible;
2618
+ transform: translateY(-4px);
2619
+ }
2452
2620
 
2453
2621
  .settings-option {
2454
2622
  padding: 8px 16px;
@@ -2462,14 +2630,14 @@ video::-webkit-media-text-track-display {
2462
2630
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
2463
2631
  }
2464
2632
 
2465
- .settings-option:last-child {
2466
- border-bottom: none;
2467
- }
2633
+ .settings-option:last-child {
2634
+ border-bottom: none;
2635
+ }
2468
2636
 
2469
- .settings-option:hover {
2470
- background: rgba(255, 255, 255, 0.1);
2471
- color: var(--player-primary-color);
2472
- }
2637
+ .settings-option:hover {
2638
+ background: rgba(255, 255, 255, 0.1);
2639
+ color: var(--player-primary-color);
2640
+ }
2473
2641
 
2474
2642
  .settings-option-label {
2475
2643
  display: flex;
@@ -2525,24 +2693,24 @@ video::-webkit-media-text-track-display {
2525
2693
  justify-content: space-between;
2526
2694
  }
2527
2695
 
2528
- .settings-suboption:hover {
2529
- background: rgba(255, 255, 255, 0.1);
2530
- color: var(--player-primary-color);
2531
- }
2696
+ .settings-suboption:hover {
2697
+ background: rgba(255, 255, 255, 0.1);
2698
+ color: var(--player-primary-color);
2699
+ }
2532
2700
 
2533
- .settings-suboption.active {
2534
- color: var(--player-primary-color);
2535
- font-weight: 600;
2536
- background: rgba(255, 255, 255, 0.05);
2537
- }
2701
+ .settings-suboption.active {
2702
+ color: var(--player-primary-color);
2703
+ font-weight: 600;
2704
+ background: rgba(255, 255, 255, 0.05);
2705
+ }
2538
2706
 
2539
- .settings-suboption.active::after {
2540
- content: '✓';
2541
- font-size: 12px;
2542
- color: var(--player-primary-color);
2543
- }
2707
+ .settings-suboption.active::after {
2708
+ content: '✓';
2709
+ font-size: 12px;
2710
+ color: var(--player-primary-color);
2711
+ }
2544
2712
 
2545
- /* RESPONSIVE DESIGN - PROGRESSIVE DEGRADATION CON MENU A TENDINA */
2713
+ /* RESPONSIVE DESIGN - PROGRESSIVE DEGRADATION WITH DROP-DOWN MENU */
2546
2714
 
2547
2715
  /* Large tablets and small desktops */
2548
2716
  @media (max-width: 768px) {
@@ -2663,21 +2831,21 @@ video::-webkit-media-text-track-display {
2663
2831
  }
2664
2832
  }
2665
2833
 
2666
- /* SCHERMI MOLTO PICCOLI - ATTIVA MENU SETTINGS DROPDOWN */
2834
+ /* VERY SMALL SCREENS - ENABLE MENU SETTINGS DROPDOWN */
2667
2835
  @media (max-width: 350px) {
2668
- /* Mostra il menu Settings solo su schermi molto piccoli */
2836
+ /* Show the Settings menu only on very small screens */
2669
2837
  .settings-control {
2670
2838
  display: block !important;
2671
2839
  }
2672
2840
 
2673
- /* Nascondi i controlli individuali e spostali nel menu */
2841
+ /* Hide individual controls and move them to the menu */
2674
2842
  .pip-btn,
2675
2843
  .speed-control,
2676
2844
  .subtitles-control {
2677
2845
  display: none !important;
2678
2846
  }
2679
2847
 
2680
- /* Riduci ulteriormente gli spazi */
2848
+ /* Reduce the spaces further */
2681
2849
  .controls-left,
2682
2850
  .controls-right {
2683
2851
  gap: 4px;
@@ -2711,10 +2879,10 @@ video::-webkit-media-text-track-display {
2711
2879
  }
2712
2880
 
2713
2881
  .volume-slider {
2714
- width: 30px; /* Volume slider ancora più piccolo */
2882
+ width: 30px; /* Even smaller volume slider */
2715
2883
  }
2716
2884
 
2717
- /* Riduci il menu settings per schermi ultra-piccoli */
2885
+ /* Reduce the settings menu for ultra-small screens */
2718
2886
  .settings-menu {
2719
2887
  min-width: 160px;
2720
2888
  font-size: 12px;
@@ -2773,7 +2941,7 @@ video::-webkit-media-text-track-display {
2773
2941
  width: 25px;
2774
2942
  }
2775
2943
 
2776
- /* Menu settings ultra-compatto */
2944
+ /* Menu settings ultra-compact */
2777
2945
  .settings-menu {
2778
2946
  min-width: 140px;
2779
2947
  font-size: 11px;
@@ -2803,9 +2971,9 @@ video::-webkit-media-text-track-display {
2803
2971
  -ms-overflow-style: none; /* Internet Explorer 10+ */
2804
2972
  }
2805
2973
 
2806
- .controls-main::-webkit-scrollbar {
2807
- display: none; /* Safari and Chrome */
2808
- }
2974
+ .controls-main::-webkit-scrollbar {
2975
+ display: none; /* Safari and Chrome */
2976
+ }
2809
2977
 
2810
2978
  .controls-left,
2811
2979
  .controls-right {
@@ -2824,10 +2992,10 @@ video::-webkit-media-text-track-display {
2824
2992
  display: none; /* Hidden by default, shown only when playlist is detected */
2825
2993
  }
2826
2994
 
2827
- .controls-right .playlist-prev-btn.playlist-active,
2828
- .controls-right .playlist-next-btn.playlist-active {
2829
- display: flex;
2830
- }
2995
+ .controls-right .playlist-prev-btn.playlist-active,
2996
+ .controls-right .playlist-next-btn.playlist-active {
2997
+ display: flex;
2998
+ }
2831
2999
 
2832
3000
  /* Playlist button styles */
2833
3001
  .playlist-prev-btn .icon::before {
@@ -2846,10 +3014,10 @@ video::-webkit-media-text-track-display {
2846
3014
  pointer-events: none;
2847
3015
  }
2848
3016
 
2849
- .playlist-prev-btn:disabled .icon,
2850
- .playlist-next-btn:disabled .icon {
2851
- opacity: 0.5;
2852
- }
3017
+ .playlist-prev-btn:disabled .icon,
3018
+ .playlist-next-btn:disabled .icon {
3019
+ opacity: 0.5;
3020
+ }
2853
3021
 
2854
3022
  /* Responsive playlist buttons */
2855
3023
  @media (max-width: 768px) {
@@ -2928,9 +3096,9 @@ video::-webkit-media-text-track-display {
2928
3096
  transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 2px));
2929
3097
  }
2930
3098
 
2931
- .volume-slider::-moz-range-thumb:hover {
2932
- transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 2px)) scale(1.1);
2933
- }
3099
+ .volume-slider::-moz-range-thumb:hover {
3100
+ transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 2px)) scale(1.1);
3101
+ }
2934
3102
  /* Ensure the track alignment is also correct */
2935
3103
  .volume-slider::-moz-range-track {
2936
3104
  height: var(--player-volume-height);
@@ -2949,13 +3117,13 @@ video::-webkit-media-text-track-display {
2949
3117
  margin-top: -1px;
2950
3118
  }
2951
3119
 
2952
- .volume-slider::-moz-range-thumb {
2953
- transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 1.5px));
2954
- }
3120
+ .volume-slider::-moz-range-thumb {
3121
+ transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 1.5px));
3122
+ }
2955
3123
 
2956
- .volume-slider::-moz-range-thumb:hover {
2957
- transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 1.5px)) scale(1.1);
2958
- }
3124
+ .volume-slider::-moz-range-thumb:hover {
3125
+ transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 1.5px)) scale(1.1);
3126
+ }
2959
3127
  }
2960
3128
 
2961
3129
  /* FIREFOX VOLUME CONTAINER POSITION FIX */
@@ -2970,9 +3138,9 @@ video::-webkit-media-text-track-display {
2970
3138
  transform: translateY(-2px) !important;
2971
3139
  }
2972
3140
 
2973
- .volume-slider::-moz-range-thumb:hover {
2974
- transform: translateY(-2px) scale(1.1) !important;
2975
- }
3141
+ .volume-slider::-moz-range-thumb:hover {
3142
+ transform: translateY(-2px) scale(1.1) !important;
3143
+ }
2976
3144
  }
2977
3145
 
2978
3146
  /* RESOLUTION CONTROL SYSTEM - Video resolution modes management */
@@ -3209,49 +3377,49 @@ video::-webkit-media-text-track-display {
3209
3377
  }
3210
3378
  /* Custom subtitle overlay responsive styles */
3211
3379
  .custom-subtitle-overlay {
3212
- font-size: clamp(12px, 4vw, 18px);
3380
+ font-size: clamp(12px, 4vw, 18px);
3213
3381
  }
3214
3382
 
3215
3383
  /* Tablet responsiveness */
3216
3384
  @media (max-width: 768px) {
3217
- .custom-subtitle-overlay {
3218
- font-size: 16px !important;
3219
- bottom: 70px !important;
3220
- max-width: 85% !important;
3221
- padding: 6px 12px !important;
3222
- line-height: 1.2 !important;
3223
- }
3385
+ .custom-subtitle-overlay {
3386
+ font-size: 16px !important;
3387
+ bottom: 70px !important;
3388
+ max-width: 85% !important;
3389
+ padding: 6px 12px !important;
3390
+ line-height: 1.2 !important;
3391
+ }
3224
3392
  }
3225
3393
 
3226
3394
  /* Mobile phone responsiveness */
3227
3395
  @media (max-width: 480px) {
3228
- .custom-subtitle-overlay {
3229
- font-size: 14px !important;
3230
- bottom: 60px !important;
3231
- max-width: 90% !important;
3232
- padding: 5px 10px !important;
3233
- line-height: 1.15 !important;
3234
- }
3396
+ .custom-subtitle-overlay {
3397
+ font-size: 14px !important;
3398
+ bottom: 60px !important;
3399
+ max-width: 90% !important;
3400
+ padding: 5px 10px !important;
3401
+ line-height: 1.15 !important;
3402
+ }
3235
3403
  }
3236
3404
 
3237
3405
  /* Very small screens */
3238
3406
  @media (max-width: 360px) {
3239
- .custom-subtitle-overlay {
3240
- font-size: 12px !important;
3241
- bottom: 50px !important;
3242
- max-width: 95% !important;
3243
- padding: 4px 8px !important;
3244
- }
3407
+ .custom-subtitle-overlay {
3408
+ font-size: 12px !important;
3409
+ bottom: 50px !important;
3410
+ max-width: 95% !important;
3411
+ padding: 4px 8px !important;
3412
+ }
3245
3413
  }
3246
3414
 
3247
3415
  /* Landscape mobile optimization */
3248
3416
  @media (max-height: 500px) and (orientation: landscape) {
3249
- .custom-subtitle-overlay {
3250
- font-size: 13px !important;
3251
- bottom: 45px !important;
3252
- max-width: 85% !important;
3253
- padding: 4px 10px !important;
3254
- }
3417
+ .custom-subtitle-overlay {
3418
+ font-size: 13px !important;
3419
+ bottom: 45px !important;
3420
+ max-width: 85% !important;
3421
+ padding: 4px 10px !important;
3422
+ }
3255
3423
  }
3256
3424
 
3257
3425
  /* Scrollable dropdown menus for small player heights */
@@ -3264,32 +3432,32 @@ video::-webkit-media-text-track-display {
3264
3432
  scrollbar-color: var(--player-primary-color) rgba(255, 255, 255, 0.1);
3265
3433
  }
3266
3434
 
3267
- /* Custom scrollbar for WebKit browsers */
3268
- .speed-menu::-webkit-scrollbar,
3269
- .quality-menu::-webkit-scrollbar,
3270
- .subtitles-menu::-webkit-scrollbar {
3271
- width: 6px;
3272
- }
3435
+ /* Custom scrollbar for WebKit browsers */
3436
+ .speed-menu::-webkit-scrollbar,
3437
+ .quality-menu::-webkit-scrollbar,
3438
+ .subtitles-menu::-webkit-scrollbar {
3439
+ width: 6px;
3440
+ }
3273
3441
 
3274
- .speed-menu::-webkit-scrollbar-track,
3275
- .quality-menu::-webkit-scrollbar-track,
3276
- .subtitles-menu::-webkit-scrollbar-track {
3277
- background: rgba(255, 255, 255, 0.1);
3278
- border-radius: 3px;
3279
- }
3442
+ .speed-menu::-webkit-scrollbar-track,
3443
+ .quality-menu::-webkit-scrollbar-track,
3444
+ .subtitles-menu::-webkit-scrollbar-track {
3445
+ background: rgba(255, 255, 255, 0.1);
3446
+ border-radius: 3px;
3447
+ }
3280
3448
 
3281
- .speed-menu::-webkit-scrollbar-thumb,
3282
- .quality-menu::-webkit-scrollbar-thumb,
3283
- .subtitles-menu::-webkit-scrollbar-thumb {
3284
- background: var(--player-primary-color);
3285
- border-radius: 3px;
3286
- }
3449
+ .speed-menu::-webkit-scrollbar-thumb,
3450
+ .quality-menu::-webkit-scrollbar-thumb,
3451
+ .subtitles-menu::-webkit-scrollbar-thumb {
3452
+ background: var(--player-primary-color);
3453
+ border-radius: 3px;
3454
+ }
3287
3455
 
3288
- .speed-menu::-webkit-scrollbar-thumb:hover,
3289
- .quality-menu::-webkit-scrollbar-thumb:hover,
3290
- .subtitles-menu::-webkit-scrollbar-thumb:hover {
3291
- background: var(--player-primary-hover);
3292
- }
3456
+ .speed-menu::-webkit-scrollbar-thumb:hover,
3457
+ .quality-menu::-webkit-scrollbar-thumb:hover,
3458
+ .subtitles-menu::-webkit-scrollbar-thumb:hover {
3459
+ background: var(--player-primary-hover);
3460
+ }
3293
3461
 
3294
3462
  /* Responsive max-height for very small players */
3295
3463
  @media (max-height: 400px) {
@@ -3316,24 +3484,24 @@ video::-webkit-media-text-track-display {
3316
3484
  scrollbar-color: var(--player-primary-color) rgba(255, 255, 255, 0.1);
3317
3485
  }
3318
3486
 
3319
- /* Custom scrollbar for settings submenu in WebKit browsers */
3320
- .settings-submenu::-webkit-scrollbar {
3321
- width: 6px;
3322
- }
3487
+ /* Custom scrollbar for settings submenu in WebKit browsers */
3488
+ .settings-submenu::-webkit-scrollbar {
3489
+ width: 6px;
3490
+ }
3323
3491
 
3324
- .settings-submenu::-webkit-scrollbar-track {
3325
- background: rgba(255, 255, 255, 0.1);
3326
- border-radius: 3px;
3327
- }
3492
+ .settings-submenu::-webkit-scrollbar-track {
3493
+ background: rgba(255, 255, 255, 0.1);
3494
+ border-radius: 3px;
3495
+ }
3328
3496
 
3329
- .settings-submenu::-webkit-scrollbar-thumb {
3330
- background: var(--player-primary-color);
3331
- border-radius: 3px;
3332
- }
3497
+ .settings-submenu::-webkit-scrollbar-thumb {
3498
+ background: var(--player-primary-color);
3499
+ border-radius: 3px;
3500
+ }
3333
3501
 
3334
- .settings-submenu::-webkit-scrollbar-thumb:hover {
3335
- background: var(--player-primary-hover);
3336
- }
3502
+ .settings-submenu::-webkit-scrollbar-thumb:hover {
3503
+ background: var(--player-primary-hover);
3504
+ }
3337
3505
 
3338
3506
  /* Responsive adjustments for settings submenu on very small screens */
3339
3507
  @media (max-width: 350px) {
@@ -3356,14 +3524,14 @@ video::-webkit-media-text-track-display {
3356
3524
  gap: var(--player-controls-gap);
3357
3525
  }
3358
3526
 
3359
- /* Horizontal Volume Slider (default) - Base width reduced */
3360
- .volume-container[data-orientation="horizontal"] .volume-slider {
3361
- width: 80px; /* Ridotto da var(--player-volume-width) a 80px fissi */
3362
- height: var(--player-volume-height);
3363
- background: var(--player-volume-bg);
3364
- border-radius: calc(var(--player-volume-height) / 2);
3365
- transition: all 0.3s ease;
3366
- }
3527
+ /* Horizontal Volume Slider (default) - Base width reduced */
3528
+ .volume-container[data-orientation="horizontal"] .volume-slider {
3529
+ width: 80px; /* Ridotto da var(--player-volume-width) a 80px fissi */
3530
+ height: var(--player-volume-height);
3531
+ background: var(--player-volume-bg);
3532
+ border-radius: calc(var(--player-volume-height) / 2);
3533
+ transition: all 0.3s ease;
3534
+ }
3367
3535
 
3368
3536
  /* Responsive width reduction for horizontal slider */
3369
3537
  @media (max-width: 1200px) {
@@ -3397,16 +3565,16 @@ video::-webkit-media-text-track-display {
3397
3565
  justify-content: center;
3398
3566
  }
3399
3567
 
3400
- .volume-container[data-orientation="vertical"] .volume-slider {
3401
- width: 4px;
3402
- height: 60px;
3403
- writing-mode: bt-lr; /* IE */
3404
- -webkit-appearance: slider-vertical; /* WebKit */
3405
- background: var(--player-volume-bg);
3406
- border-radius: 2px;
3407
- transform: rotate(0deg);
3408
- transition: all 0.3s ease;
3409
- }
3568
+ .volume-container[data-orientation="vertical"] .volume-slider {
3569
+ width: 4px;
3570
+ height: 60px;
3571
+ writing-mode: bt-lr; /* IE */
3572
+ -webkit-appearance: slider-vertical; /* WebKit */
3573
+ background: var(--player-volume-bg);
3574
+ border-radius: 2px;
3575
+ transform: rotate(0deg);
3576
+ transition: all 0.3s ease;
3577
+ }
3410
3578
 
3411
3579
  /* Responsive: Force vertical behavior for horizontal sliders under 550px */
3412
3580
  @media (max-width: 550px) {
@@ -3544,21 +3712,21 @@ video::-webkit-media-text-track-display {
3544
3712
  transform: translateX(-50%);
3545
3713
  }
3546
3714
 
3547
- /* Hover state for chapter marker */
3548
- .chapter-marker:hover {
3549
- opacity: 1;
3550
- width: 4px;
3551
- height: 120%;
3552
- top: -10%;
3553
- box-shadow: 0 0 8px var(--player-primary-color);
3554
- }
3715
+ /* Hover state for chapter marker */
3716
+ .chapter-marker:hover {
3717
+ opacity: 1;
3718
+ width: 4px;
3719
+ height: 120%;
3720
+ top: -10%;
3721
+ box-shadow: 0 0 8px var(--player-primary-color);
3722
+ }
3555
3723
 
3556
- /* Active chapter marker (currently playing) */
3557
- .chapter-marker.active {
3558
- background: var(--player-primary-hover);
3559
- opacity: 1;
3560
- width: 4px;
3561
- }
3724
+ /* Active chapter marker (currently playing) */
3725
+ .chapter-marker.active {
3726
+ background: var(--player-primary-hover);
3727
+ opacity: 1;
3728
+ width: 4px;
3729
+ }
3562
3730
 
3563
3731
  /* Chapter tooltip */
3564
3732
  .chapter-tooltip {
@@ -3583,19 +3751,19 @@ video::-webkit-media-text-track-display {
3583
3751
  pointer-events: none;
3584
3752
  }
3585
3753
 
3586
- /* Tooltip arrow */
3587
- .chapter-tooltip::after {
3588
- content: '';
3589
- position: absolute;
3590
- top: 100%;
3591
- left: 50%;
3592
- transform: translateX(-50%);
3593
- width: 0;
3594
- height: 0;
3595
- border-left: 6px solid transparent;
3596
- border-right: 6px solid transparent;
3597
- border-top: 6px solid rgba(0, 0, 0, 0.95);
3598
- }
3754
+ /* Tooltip arrow */
3755
+ .chapter-tooltip::after {
3756
+ content: '';
3757
+ position: absolute;
3758
+ top: 100%;
3759
+ left: 50%;
3760
+ transform: translateX(-50%);
3761
+ width: 0;
3762
+ height: 0;
3763
+ border-left: 6px solid transparent;
3764
+ border-right: 6px solid transparent;
3765
+ border-top: 6px solid rgba(0, 0, 0, 0.95);
3766
+ }
3599
3767
 
3600
3768
  /* Chapter tooltip image */
3601
3769
  .chapter-tooltip-image {
@@ -3633,9 +3801,9 @@ video::-webkit-media-text-track-display {
3633
3801
  width: 2px;
3634
3802
  }
3635
3803
 
3636
- .chapter-marker:hover {
3637
- width: 3px;
3638
- }
3804
+ .chapter-marker:hover {
3805
+ width: 3px;
3806
+ }
3639
3807
 
3640
3808
  .chapter-tooltip {
3641
3809
  min-width: 160px;
@@ -3666,73 +3834,73 @@ video::-webkit-media-text-track-display {
3666
3834
  pointer-events: none;
3667
3835
  }
3668
3836
 
3669
- /* Visible state */
3670
- .video-poster-overlay.visible {
3671
- opacity: 1;
3672
- visibility: visible;
3673
- pointer-events: auto;
3674
- }
3837
+ /* Visible state */
3838
+ .video-poster-overlay.visible {
3839
+ opacity: 1;
3840
+ visibility: visible;
3841
+ pointer-events: auto;
3842
+ }
3675
3843
 
3676
- /* Hidden state */
3677
- .video-poster-overlay.hidden {
3678
- opacity: 0;
3679
- visibility: hidden;
3680
- pointer-events: none;
3681
- }
3844
+ /* Hidden state */
3845
+ .video-poster-overlay.hidden {
3846
+ opacity: 0;
3847
+ visibility: hidden;
3848
+ pointer-events: none;
3849
+ }
3682
3850
 
3683
- /* Hover effect on poster */
3684
- .video-poster-overlay.visible:hover {
3685
- opacity: 0.95;
3686
- }
3851
+ /* Hover effect on poster */
3852
+ .video-poster-overlay.visible:hover {
3853
+ opacity: 0.95;
3854
+ }
3687
3855
 
3688
- /* Play button overlay on poster - THEMED COLORS 🎨 */
3689
- .video-poster-overlay::after {
3690
- content: '';
3691
- position: absolute;
3692
- top: 50%;
3693
- left: 50%;
3694
- transform: translate(-50%, -50%);
3695
- width: 80px;
3696
- height: 80px;
3697
- background: rgba(0, 0, 0, 0.7);
3698
- border-radius: 50%;
3699
- border: 3px solid var(--player-primary-color); /* THEMED BORDER ✨ */
3700
- opacity: 0;
3701
- transition: opacity 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
3702
- pointer-events: none;
3703
- }
3856
+ /* Play button overlay on poster - THEMED COLORS 🎨 */
3857
+ .video-poster-overlay::after {
3858
+ content: '';
3859
+ position: absolute;
3860
+ top: 50%;
3861
+ left: 50%;
3862
+ transform: translate(-50%, -50%);
3863
+ width: 80px;
3864
+ height: 80px;
3865
+ background: rgba(0, 0, 0, 0.7);
3866
+ border-radius: 50%;
3867
+ border: 3px solid var(--player-primary-color); /* THEMED BORDER ✨ */
3868
+ opacity: 0;
3869
+ transition: opacity 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
3870
+ pointer-events: none;
3871
+ }
3704
3872
 
3705
- /* Show play button on hover with animation and themed glow */
3706
- .video-poster-overlay.visible:hover::after {
3707
- opacity: 1;
3708
- transform: translate(-50%, -50%) scale(1.1);
3709
- border-color: var(--player-primary-hover); /* THEMED HOVER COLOR 🌟 */
3710
- box-shadow: 0 0 20px var(--player-primary-color); /* THEMED GLOW 💫 */
3711
- }
3873
+ /* Show play button on hover with animation and themed glow */
3874
+ .video-poster-overlay.visible:hover::after {
3875
+ opacity: 1;
3876
+ transform: translate(-50%, -50%) scale(1.1);
3877
+ border-color: var(--player-primary-hover); /* THEMED HOVER COLOR 🌟 */
3878
+ box-shadow: 0 0 20px var(--player-primary-color); /* THEMED GLOW 💫 */
3879
+ }
3712
3880
 
3713
- /* Play icon triangle - THEMED COLOR 🎨 */
3714
- .video-poster-overlay::before {
3715
- content: '';
3716
- position: absolute;
3717
- top: 50%;
3718
- left: 50%;
3719
- transform: translate(-40%, -50%);
3720
- width: 0;
3721
- height: 0;
3722
- border-style: solid;
3723
- border-width: 15px 0 15px 25px;
3724
- border-color: transparent transparent transparent var(--player-primary-color); /* THEMED TRIANGLE ✨ */
3725
- z-index: 2;
3726
- opacity: 0;
3727
- transition: opacity 0.3s ease, border-color 0.3s ease;
3728
- pointer-events: none;
3729
- }
3881
+ /* Play icon triangle - THEMED COLOR 🎨 */
3882
+ .video-poster-overlay::before {
3883
+ content: '';
3884
+ position: absolute;
3885
+ top: 50%;
3886
+ left: 50%;
3887
+ transform: translate(-40%, -50%);
3888
+ width: 0;
3889
+ height: 0;
3890
+ border-style: solid;
3891
+ border-width: 15px 0 15px 25px;
3892
+ border-color: transparent transparent transparent var(--player-primary-color); /* THEMED TRIANGLE ✨ */
3893
+ z-index: 2;
3894
+ opacity: 0;
3895
+ transition: opacity 0.3s ease, border-color 0.3s ease;
3896
+ pointer-events: none;
3897
+ }
3730
3898
 
3731
- /* Show play icon on hover with themed color */
3732
- .video-poster-overlay.visible:hover::before {
3733
- opacity: 1;
3734
- border-color: transparent transparent transparent var(--player-primary-hover); /* THEMED HOVER 🌟 */
3735
- }
3899
+ /* Show play icon on hover with themed color */
3900
+ .video-poster-overlay.visible:hover::before {
3901
+ opacity: 1;
3902
+ border-color: transparent transparent transparent var(--player-primary-hover); /* THEMED HOVER 🌟 */
3903
+ }
3736
3904
 
3737
3905
  /* Responsive adjustments */
3738
3906
  @media (max-width: 768px) {
@@ -4067,4 +4235,4 @@ video::-webkit-media-text-track-display {
4067
4235
  /* Clickable watermark cursor */
4068
4236
  .video-watermark[style*="cursor: pointer"] {
4069
4237
  cursor: pointer !important;
4070
- }
4238
+ }