karaoke-eternal 1.0.0 → 2.0.0-beta.6

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 (128) hide show
  1. package/README.md +10 -10
  2. package/build/client/447.83b0127845c2fa8729fe.js +1 -0
  3. package/build/client/715.83b0127845c2fa8729fe.js +1 -0
  4. package/build/client/718.83b0127845c2fa8729fe.js +1 -0
  5. package/build/client/851.83b0127845c2fa8729fe.js +1 -0
  6. package/build/{845.4be526e3a94d53aeceae.css → client/958.83b0127845c2fa8729fe.css} +53 -6
  7. package/build/client/958.83b0127845c2fa8729fe.js +1 -0
  8. package/build/{index.html → client/index.html} +1 -1
  9. package/build/{licenses.txt → client/licenses.txt} +208 -496
  10. package/build/client/main.83b0127845c2fa8729fe.css +2341 -0
  11. package/build/client/main.83b0127845c2fa8729fe.js +1 -0
  12. package/build/server/Library/Library.js +297 -0
  13. package/build/server/Library/ipc.js +13 -0
  14. package/build/server/Library/router.js +20 -0
  15. package/build/server/Library/socket.js +35 -0
  16. package/build/server/Media/Media.js +170 -0
  17. package/build/server/Media/fileTypes.js +8 -0
  18. package/build/server/Media/ipc.js +13 -0
  19. package/build/server/Media/router.js +97 -0
  20. package/build/server/Player/socket.js +66 -0
  21. package/build/server/Prefs/Prefs.js +181 -0
  22. package/build/server/Prefs/router.js +151 -0
  23. package/build/server/Prefs/socket.js +52 -0
  24. package/build/server/Queue/Queue.js +203 -0
  25. package/build/server/Queue/socket.js +83 -0
  26. package/build/server/Rooms/Rooms.js +171 -0
  27. package/build/server/Rooms/router.js +97 -0
  28. package/build/server/Rooms/socket.js +23 -0
  29. package/build/server/Scanner/FileScanner/FileScanner.js +166 -0
  30. package/build/server/Scanner/FileScanner/getConfig.js +32 -0
  31. package/build/server/Scanner/FileScanner/getFiles.js +61 -0
  32. package/build/server/Scanner/MetaParser/MetaParser.js +77 -0
  33. package/build/server/Scanner/MetaParser/defaultMiddleware.js +170 -0
  34. package/build/server/Scanner/Scanner.js +26 -0
  35. package/build/server/Scanner/ScannerQueue.js +62 -0
  36. package/build/server/User/User.js +206 -0
  37. package/build/server/User/router.js +366 -0
  38. package/build/server/lib/Database.js +39 -0
  39. package/build/server/lib/Errors.js +6 -0
  40. package/build/server/lib/IPCBridge.js +128 -0
  41. package/build/server/lib/Log.js +31 -0
  42. package/build/server/lib/accumulatedThrottle.js +16 -0
  43. package/build/server/lib/bcrypt.js +23 -0
  44. package/build/server/lib/cli.js +131 -0
  45. package/build/server/lib/getCdgName.js +18 -0
  46. package/build/server/lib/getFolders.js +8 -0
  47. package/build/server/lib/getHotMiddleware.js +22 -0
  48. package/build/server/lib/getIPAddress.js +14 -0
  49. package/build/server/lib/getPermutations.js +17 -0
  50. package/build/server/lib/getWindowsDrives.js +17 -0
  51. package/build/server/lib/parseCookie.js +13 -0
  52. package/build/server/lib/pushQueuesAndLibrary.js +22 -0
  53. package/{server → build/server}/lib/schemas/001-initial-schema.sql +26 -26
  54. package/build/server/lib/schemas/004-paths-rooms-data.sql +7 -0
  55. package/build/server/lib/schemas/005-roles.sql +32 -0
  56. package/build/server/lib/util.js +39 -0
  57. package/build/server/main.js +124 -0
  58. package/build/server/scannerWorker.js +59 -0
  59. package/build/server/serverWorker.js +219 -0
  60. package/build/server/socket.js +134 -0
  61. package/build/server/watcherWorker.js +51 -0
  62. package/build/shared/actionTypes.js +113 -0
  63. package/build/shared/types.js +1 -0
  64. package/package.json +111 -86
  65. package/build/267.4be526e3a94d53aeceae.js +0 -1
  66. package/build/591.4be526e3a94d53aeceae.js +0 -1
  67. package/build/598.4be526e3a94d53aeceae.js +0 -1
  68. package/build/799.4be526e3a94d53aeceae.js +0 -1
  69. package/build/845.4be526e3a94d53aeceae.js +0 -1
  70. package/build/main.4be526e3a94d53aeceae.css +0 -2034
  71. package/build/main.4be526e3a94d53aeceae.js +0 -1
  72. package/server/Library/Library.js +0 -340
  73. package/server/Library/index.js +0 -3
  74. package/server/Library/ipc.js +0 -18
  75. package/server/Library/router.js +0 -27
  76. package/server/Library/socket.js +0 -47
  77. package/server/Media/Media.js +0 -207
  78. package/server/Media/index.js +0 -3
  79. package/server/Media/ipc.js +0 -19
  80. package/server/Media/router.js +0 -99
  81. package/server/Player/socket.js +0 -78
  82. package/server/Prefs/Prefs.js +0 -165
  83. package/server/Prefs/index.js +0 -3
  84. package/server/Prefs/router.js +0 -124
  85. package/server/Prefs/socket.js +0 -68
  86. package/server/Queue/Queue.js +0 -208
  87. package/server/Queue/index.js +0 -3
  88. package/server/Queue/socket.js +0 -99
  89. package/server/Rooms/Rooms.js +0 -114
  90. package/server/Rooms/index.js +0 -3
  91. package/server/Rooms/router.js +0 -146
  92. package/server/Scanner/FileScanner/FileScanner.js +0 -225
  93. package/server/Scanner/FileScanner/getConfig.js +0 -35
  94. package/server/Scanner/FileScanner/getFiles.js +0 -63
  95. package/server/Scanner/FileScanner/index.js +0 -3
  96. package/server/Scanner/MetaParser/MetaParser.js +0 -49
  97. package/server/Scanner/MetaParser/defaultMiddleware.js +0 -197
  98. package/server/Scanner/MetaParser/index.js +0 -3
  99. package/server/Scanner/Scanner.js +0 -33
  100. package/server/User/User.js +0 -139
  101. package/server/User/index.js +0 -3
  102. package/server/User/router.js +0 -442
  103. package/server/lib/Database.js +0 -55
  104. package/server/lib/IPCBridge.js +0 -115
  105. package/server/lib/Log.js +0 -71
  106. package/server/lib/bcrypt.js +0 -24
  107. package/server/lib/cli.js +0 -136
  108. package/server/lib/electron.js +0 -81
  109. package/server/lib/getCdgName.js +0 -20
  110. package/server/lib/getDevMiddleware.js +0 -51
  111. package/server/lib/getFolders.js +0 -10
  112. package/server/lib/getHotMiddleware.js +0 -27
  113. package/server/lib/getIPAddress.js +0 -16
  114. package/server/lib/getPermutations.js +0 -21
  115. package/server/lib/getWindowsDrives.js +0 -30
  116. package/server/lib/parseCookie.js +0 -12
  117. package/server/lib/pushQueuesAndLibrary.js +0 -29
  118. package/server/main.js +0 -135
  119. package/server/scannerWorker.js +0 -58
  120. package/server/serverWorker.js +0 -242
  121. package/server/socket.js +0 -173
  122. package/shared/actionTypes.js +0 -103
  123. /package/build/{7ce9eb3fe454f54745a4.woff2 → client/7ce9eb3fe454f54745a4.woff2} +0 -0
  124. /package/build/{598.4be526e3a94d53aeceae.css → client/851.83b0127845c2fa8729fe.css} +0 -0
  125. /package/build/{a35814dd9eb496e3d7cc.woff2 → client/a35814dd9eb496e3d7cc.woff2} +0 -0
  126. /package/build/{e419b95dccb58b362811.woff2 → client/e419b95dccb58b362811.woff2} +0 -0
  127. /package/{server → build/server}/lib/schemas/002-replaygain.sql +0 -0
  128. /package/{server → build/server}/lib/schemas/003-queue-linked-list.sql +0 -0
@@ -0,0 +1,2341 @@
1
+ /*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize */
2
+
3
+ /*
4
+ Document
5
+ ========
6
+ */
7
+
8
+ /**
9
+ Use a better box model (opinionated).
10
+ */
11
+
12
+ *,
13
+ ::before,
14
+ ::after {
15
+ box-sizing: border-box;
16
+ }
17
+
18
+ html {
19
+ /* Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) */
20
+ font-family:
21
+ system-ui,
22
+ 'Segoe UI',
23
+ Roboto,
24
+ Helvetica,
25
+ Arial,
26
+ sans-serif,
27
+ 'Apple Color Emoji',
28
+ 'Segoe UI Emoji';
29
+ line-height: 1.15; /* 1. Correct the line height in all browsers. */
30
+ -webkit-text-size-adjust: 100%; /* 2. Prevent adjustments of font size after orientation changes in iOS. */
31
+ tab-size: 4; /* 3. Use a more readable tab size (opinionated). */
32
+ }
33
+
34
+ /*
35
+ Sections
36
+ ========
37
+ */
38
+
39
+ body {
40
+ margin: 0; /* Remove the margin in all browsers. */
41
+ }
42
+
43
+ /*
44
+ Text-level semantics
45
+ ====================
46
+ */
47
+
48
+ /**
49
+ Add the correct font weight in Chrome and Safari.
50
+ */
51
+
52
+ b,
53
+ strong {
54
+ font-weight: bolder;
55
+ }
56
+
57
+ /**
58
+ 1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
59
+ 2. Correct the odd 'em' font sizing in all browsers.
60
+ */
61
+
62
+ code,
63
+ kbd,
64
+ samp,
65
+ pre {
66
+ font-family:
67
+ ui-monospace,
68
+ SFMono-Regular,
69
+ Consolas,
70
+ 'Liberation Mono',
71
+ Menlo,
72
+ monospace; /* 1 */
73
+ font-size: 1em; /* 2 */
74
+ }
75
+
76
+ /**
77
+ Add the correct font size in all browsers.
78
+ */
79
+
80
+ small {
81
+ font-size: 80%;
82
+ }
83
+
84
+ /**
85
+ Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
86
+ */
87
+
88
+ sub,
89
+ sup {
90
+ font-size: 75%;
91
+ line-height: 0;
92
+ position: relative;
93
+ vertical-align: baseline;
94
+ }
95
+
96
+ sub {
97
+ bottom: -0.25em;
98
+ }
99
+
100
+ sup {
101
+ top: -0.5em;
102
+ }
103
+
104
+ /*
105
+ Tabular data
106
+ ============
107
+ */
108
+
109
+ /**
110
+ Correct table border color inheritance in Chrome and Safari. (https://issues.chromium.org/issues/40615503, https://bugs.webkit.org/show_bug.cgi?id=195016)
111
+ */
112
+
113
+ table {
114
+ border-color: currentcolor;
115
+ }
116
+
117
+ /*
118
+ Forms
119
+ =====
120
+ */
121
+
122
+ /**
123
+ 1. Change the font styles in all browsers.
124
+ 2. Remove the margin in Firefox and Safari.
125
+ */
126
+
127
+ button,
128
+ input,
129
+ optgroup,
130
+ select,
131
+ textarea {
132
+ font-family: inherit; /* 1 */
133
+ font-size: 100%; /* 1 */
134
+ line-height: 1.15; /* 1 */
135
+ margin: 0; /* 2 */
136
+ }
137
+
138
+ /**
139
+ Correct the inability to style clickable types in iOS and Safari.
140
+ */
141
+
142
+ button,
143
+ [type='button'],
144
+ [type='reset'],
145
+ [type='submit'] {
146
+ -webkit-appearance: button;
147
+ }
148
+
149
+ /**
150
+ Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
151
+ */
152
+
153
+ legend {
154
+ padding: 0;
155
+ }
156
+
157
+ /**
158
+ Add the correct vertical alignment in Chrome and Firefox.
159
+ */
160
+
161
+ progress {
162
+ vertical-align: baseline;
163
+ }
164
+
165
+ /**
166
+ Correct the cursor style of increment and decrement buttons in Safari.
167
+ */
168
+
169
+ ::-webkit-inner-spin-button,
170
+ ::-webkit-outer-spin-button {
171
+ height: auto;
172
+ }
173
+
174
+ /**
175
+ 1. Correct the odd appearance in Chrome and Safari.
176
+ 2. Correct the outline style in Safari.
177
+ */
178
+
179
+ [type='search'] {
180
+ -webkit-appearance: textfield; /* 1 */
181
+ outline-offset: -2px; /* 2 */
182
+ }
183
+
184
+ /**
185
+ Remove the inner padding in Chrome and Safari on macOS.
186
+ */
187
+
188
+ ::-webkit-search-decoration {
189
+ -webkit-appearance: none;
190
+ }
191
+
192
+ /**
193
+ 1. Correct the inability to style clickable types in iOS and Safari.
194
+ 2. Change font properties to 'inherit' in Safari.
195
+ */
196
+
197
+ ::-webkit-file-upload-button {
198
+ -webkit-appearance: button; /* 1 */
199
+ font: inherit; /* 2 */
200
+ }
201
+
202
+ /*
203
+ Interactive
204
+ ===========
205
+ */
206
+
207
+ /*
208
+ Add the correct display in Chrome and Safari.
209
+ */
210
+
211
+ summary {
212
+ display: list-item;
213
+ }
214
+
215
+ :root {
216
+ --hue-blue: 209;
217
+ --hue-pink: 270;
218
+ --color-gray-1: hsl(var(--hue-blue), 10%, 10%);
219
+ --color-gray-2: hsl(var(--hue-blue), 10%, 20%);
220
+ --color-gray-3: hsl(var(--hue-blue), 10%, 30%);
221
+ --color-gray-4: hsl(var(--hue-blue), 10%, 40%);
222
+ --color-gray-5: hsl(var(--hue-blue), 10%, 50%);
223
+ --color-gray-6: hsl(var(--hue-blue), 10%, 60%);
224
+ --color-gray-7: hsl(var(--hue-blue), 10%, 70%);
225
+ --color-gray-8: hsl(var(--hue-blue), 10%, 80%);
226
+ --color-gray-9: hsl(var(--hue-blue), 10%, 90%);
227
+
228
+ --font-family: system-ui, sans-serif;
229
+ --font-family-custom: system-ui, sans-serif;
230
+ --font-weight-light: 300;
231
+ --font-weight-normal: 400;
232
+ --font-weight-bold: 600;
233
+
234
+ --font-size-xs: 0.75rem;
235
+ --font-size-s: 1rem;
236
+ --font-size-m: 1.25rem;
237
+ --font-size-l: 1.5rem;
238
+ --font-size-xl: 2rem;
239
+
240
+ --icon-size-s: 1rem;
241
+ --icon-size-m: 1.5rem;
242
+ --icon-size-l: 2rem;
243
+ --icon-size-xl: 3rem;
244
+
245
+ --space-xs: 4px;
246
+ --space-s: 8px;
247
+ --space-m: 16px;
248
+ --space-l: 24px;
249
+ --space-xl: 32px;
250
+ --container-padding: 12px;
251
+
252
+ --bg-color: hsl(var(--hue-blue), 40%, 2%);
253
+ --text-color: hsl(var(--hue-blue), 10%, 80%);
254
+ --link-color: hsl(var(--hue-blue), 92%, 69%);
255
+ --mark-bg-color: hsl(var(--hue-blue), 50%, 30%);
256
+
257
+ --text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
258
+ --box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
259
+ --drop-shadow-filter: drop-shadow(0 2px 5px #222);
260
+ --border-radius: 8px;
261
+ --focus-outline: 4px solid var(--btn-danger-bg-color);
262
+
263
+ --input-color: var(--color-gray-1);
264
+ --input-placeholder-color: var(--color-gray-5);
265
+ --input-bg-color: hsl(var(--hue-blue), 10%, 80%);
266
+ --input-outline-color: hsl(var(--hue-blue), 90%, 50%);
267
+ --input-margin: 7px;
268
+
269
+ --btn-bg-color: hsl(var(--hue-blue), 40%, 30%);
270
+ --btn-active-bg-color: var(--link-color);
271
+ --btn-active-filter: drop-shadow(0 0 10px hsla(var(--hue-blue), 100%, 100%, .5));
272
+ --btn-activate-filter: drop-shadow(-.25rem 0 .75rem hsl(var(--hue-blue), 80%, 50%)) drop-shadow(.25rem 0 .75rem hsl(var(--hue-blue), 80%, 50%)) drop-shadow(0 0 1rem hsl(var(--hue-blue), 80%, 50%));
273
+
274
+ --btn-danger-bg-color: hsl(var(--hue-pink), 60%, 57%);
275
+ --btn-danger-filter: drop-shadow(0 0 10px hsla(var(--hue-pink), 100%, 100%, .5));
276
+ --btn-danger-activate-filter:
277
+ drop-shadow(-5px 0 10px hsl(var(--hue-pink), 80%, 70%)) drop-shadow(5px 0 10px hsl(var(--hue-pink), 80%, 70%)) drop-shadow(0 0 10px hsl(var(--hue-pink), 80%, 70%));
278
+
279
+ /* UI chrome (header/footer) */
280
+ --chrome-bg-color: hsla(var(--hue-blue), 100%, 5%, .8);
281
+ --chrome-border-color: hsla(var(--hue-blue), 24%, 26%, 0.5);
282
+ --header-notice-color: var(--text-color);
283
+ --header-notice-bg-color: hsl(var(--hue-blue), 100%, 27%);
284
+
285
+ /* Library */
286
+ --artist-folder-color: var(--text-color);
287
+ --artist-folder-bg-color: hsl(var(--hue-blue), 90%, 25%);
288
+ --artist-folder-starred-color: #000;
289
+ --artist-folder-starred-bg-color: var(--link-color);
290
+ --artist-folder-starred-filter: var(--btn-active-filter);
291
+ --artist-name-color: hsl(var(--hue-blue), 10%, 85%);
292
+
293
+ --song-item-btn-bg-color: hsl(var(--hue-blue), 100%, 15%);
294
+ --song-item-btn-active-color: #333;
295
+ --song-item-btn-active-bg-color: var(--btn-active-bg-color);
296
+ --song-item-btn-active-filter: var(--btn-active-filter);
297
+
298
+ --alpha-picker-color: var(--artist-folder-bg-color);
299
+ --queued-item-color: hsl(var(--hue-pink), 70%, 80%);
300
+ --queued-item-text-shadow: var(--text-shadow-glow);
301
+
302
+ /* Account panels */
303
+ --panel-bg-color: hsl(var(--hue-blue), 20%, 10%);
304
+
305
+ /* PlaybackCtrl */
306
+ --transport-btn-bg-color: var(--btn-danger-bg-color);
307
+ --transport-btn-filter: var(--btn-danger-filter);
308
+ --transport-volume-track-color: var(--btn-bg-color);
309
+ --transport-volume-track-active-color: var(--btn-active-bg-color);
310
+ --transport-volume-track-active-filter: var(--btn-active-filter);
311
+
312
+ /* Up Next header/banner */
313
+ --up-next-bg-color-from: hsl(var(--hue-blue), 70%, 20%);
314
+ --up-next-bg-color-to: hsl(var(--hue-blue), 70%, 35%);
315
+ --up-next-filter: none;
316
+
317
+ --up-now-bg-color-from: hsl(var(--hue-pink), 70%, 20%);
318
+ --up-now-bg-color-to: hsl(var(--hue-pink), 50%, 40%);
319
+ --up-now-filter: none;
320
+
321
+ /* <button> colors */
322
+ --btn-primary-color: #333;
323
+ --btn-primary-bg-color: var(--btn-active-bg-color);
324
+
325
+ /* Animation */
326
+ --spring-duration: .5s;
327
+ --spring-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
328
+ --animation-text-shadow-glow: glow .25s ease-out;
329
+ --animation-btn-danger-activate: btn-danger-activate .1s ease-out;
330
+ --text-shadow-glow: 0 0 .25em hsl(var(--hue-pink), 100%, 50%), 0 0 .5em hsl(var(--hue-pink), 100%, 50%);
331
+
332
+ --animation-btn-star: starBounce .5s var(--bounce-1);
333
+ --bounce-1: linear(0, 0.74 5.9%, 0.911 8.5%, 0.954 9.8%, 0.969 11.1%, 0.956 12.4%, 0.919 13.7%, 0.766 16.5%, -0.246 28.6%, -0.382 31.4%, -0.449 34.2%, -0.456 35.4%, -0.452 36.6%, -0.405 39.3%, 0.012 50.9%, 0.09 54.1%, 0.131 57.3%, 0.138 59.7%, 0.127 62.4%, 0.022 72.7%, -0.011 78.2%, -0.016 82.9%, 0);
334
+
335
+ --animation-btn-activate: btn-activate 5s var(--activate-1);
336
+ --activate-1: linear(0, 0.027 1%, 0.206 4.8%, 0.331 7.9%, 0.437 11%, 0.532 14.3%, 0.623 18.2%, 0.7 22.3%, 0.766 26.8%, 0.821 31.6%, 0.865 36.7%, 0.902 42.4%, 0.954 56%, 0.983 73.7%, 1);
337
+ }
338
+
339
+ @keyframes starBounce {
340
+ 0% {
341
+ transform: scale(1);
342
+ }
343
+
344
+ 100% {
345
+ transform: scale(1.5);
346
+ }
347
+ }
348
+
349
+ @keyframes glow {
350
+ from {
351
+ text-shadow: none;
352
+ }
353
+
354
+ 25% {
355
+ text-shadow: 0 0 4px hsl(var(--hue-pink), 100%, 100%), 0 0 8px hsl(var(--hue-pink), 100%, 100%), 0 0 12px hsl(var(--hue-pink), 100%, 100%);
356
+ }
357
+
358
+ to {
359
+ text-shadow: var(--text-shadow-glow);
360
+ }
361
+ }
362
+
363
+ @keyframes btn-activate {
364
+ from {
365
+ filter: var(--btn-activate-filter);
366
+ }
367
+
368
+ to {
369
+ filter: var(--btn-active-filter);
370
+ }
371
+ }
372
+
373
+ @keyframes btn-danger-activate {
374
+ from {
375
+ filter: var(--btn-danger-activate-filter);
376
+ }
377
+
378
+ to {
379
+ filter: none;
380
+ }
381
+ }
382
+ @font-face {
383
+ font-family: 'Beon';
384
+ font-style: normal;
385
+ font-weight: normal;
386
+ src: url(a35814dd9eb496e3d7cc.woff2) format('woff2');
387
+ }
388
+
389
+ @font-face {
390
+ font-family: 'Raleway';
391
+ font-style: normal;
392
+ font-weight: 200;
393
+ src: url(e419b95dccb58b362811.woff2) format('woff2');
394
+ }
395
+
396
+ @font-face {
397
+ font-family: 'Raleway';
398
+ font-style: normal;
399
+ font-weight: 700;
400
+ src: url(7ce9eb3fe454f54745a4.woff2) format('woff2');
401
+ }
402
+
403
+ html {
404
+ height: 100%;
405
+ touch-action: manipulation;
406
+ -webkit-user-select: none;
407
+ -moz-user-select: none;
408
+ -ms-user-select: none;
409
+ user-select: none;
410
+ -webkit-touch-callout: none;
411
+ }
412
+
413
+ body {
414
+ background-color: var(--bg-color);
415
+ color: var(--text-color);
416
+ font-family: var(--font-family);
417
+ height: 100%;
418
+ margin: 0;
419
+ padding: 0;
420
+ }
421
+
422
+ body.scroll-lock {
423
+ overflow: hidden;
424
+ position: fixed;
425
+ width: 100%;
426
+ }
427
+
428
+ a {
429
+ color: var(--link-color);
430
+ font-weight: bold;
431
+ cursor: pointer;
432
+ }
433
+
434
+ /* Form elements */
435
+ input[type="text"],
436
+ input[type="email"],
437
+ input[type="password"],
438
+ input[type="search"] {
439
+ display: block;
440
+ width: 100%;
441
+ padding: 8px;
442
+ font-size: 18px;
443
+ box-shadow: inset 1px 1px 3px 0px rgba(50, 50, 50, 0.75);
444
+ border: none;
445
+ border-radius: var(--border-radius);
446
+ color: var(--input-color);
447
+ background-color: var(--input-bg-color);
448
+ }
449
+
450
+ input[type="text"]::placeholder,
451
+ input[type="email"]::placeholder,
452
+ input[type="password"]::placeholder {
453
+ color: var(--input-placeholder-color);
454
+ }
455
+
456
+ input[type="text"]:focus,
457
+ input[type="email"]:focus,
458
+ input[type="password"]:focus,
459
+ input[type="search"]:focus {
460
+ box-shadow: inset 0px 0px 5px 3px var(--input-outline-color);
461
+ outline: none;
462
+ }
463
+
464
+ input[type="text"],
465
+ input[type="email"],
466
+ input[type="password"],
467
+ input[type="search"],
468
+ input[type="search"]::-webkit-search-cancel-button {
469
+ appearance: none;
470
+ -webkit-appearance: none;
471
+ }
472
+
473
+ select {
474
+ font-size: var(--font-size-s);
475
+ width: auto;
476
+ padding: var(--space-s);
477
+ padding-right: var(--space-xl);
478
+ appearance: none;
479
+ color: var(--input-color);
480
+ border: none;
481
+ border-radius: var(--border-radius);
482
+ background-color: hsl(var(--hue-blue), 10%, 66%);
483
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 height=%271rem%27 viewBox=%270 0 24 24%27><path fill=%27currentColor%27 d=%27M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z%27/></svg>");
484
+ background-repeat: no-repeat;
485
+ background-position: right 8px center;
486
+ background-size: 1.5rem;
487
+ outline: none;
488
+ cursor: pointer;
489
+
490
+ &:focus-visible {
491
+ outline: var(--focus-outline);
492
+ }
493
+ }
494
+
495
+ @supports (backdrop-filter: saturate(250%) blur(20px)) or (-webkit-backdrop-filter: saturate(250%) blur(20px)) {
496
+ .bg-blur {
497
+ background-color: transparent !important;
498
+ -webkit-backdrop-filter: saturate(250%) blur(20px);
499
+ backdrop-filter: saturate(250%) blur(20px);
500
+ }
501
+ }
502
+
503
+ mark {
504
+ color: inherit;
505
+ background-color: var(--mark-bg-color);
506
+ }
507
+ .rYzGz3Rx2eJjMVVhj_lA {
508
+ background: transparent;
509
+ border: none;
510
+ padding: 0;
511
+ outline: none;
512
+ cursor: pointer;
513
+
514
+ &:focus-visible {
515
+ outline: var(--focus-outline);
516
+ }
517
+
518
+ svg {
519
+ display: block;
520
+ }
521
+ }
522
+
523
+ .BRCYi6lJspftkCxcFdpw,
524
+ .u4HHBIWYgUhQaG3hu6kB,
525
+ .X_mi34pYwHmBoHHJS15M {
526
+ padding: var(--space-m);
527
+ width: 100%;
528
+ font-size: var(--font-size-s);
529
+ font-weight: var(--font-weight-bold);
530
+ color: var(--btn-default-color);
531
+ box-shadow: var(--box-shadow);
532
+ border-radius: var(--border-radius);
533
+ }
534
+
535
+ .BRCYi6lJspftkCxcFdpw {
536
+ color: var(--text-color);
537
+ text-shadow: var(--text-shadow);
538
+ background-color: hsl(var(--hue-blue), 10%, 25%);
539
+ background-image: linear-gradient(180deg, hsl(var(--hue-blue), 10%, 30%) 0%, hsl(var(--hue-blue), 10%, 25%) 100%);
540
+ }
541
+
542
+ .u4HHBIWYgUhQaG3hu6kB {
543
+ color: var(--text-color);
544
+ text-shadow: var(--text-shadow);
545
+ background-color: var(--btn-primary-bg-color);
546
+ background-image: linear-gradient(180deg, hsl(var(--hue-blue), 92%, 50%) 0%, hsl(var(--hue-blue), 92%, 45%) 100%);
547
+ }
548
+
549
+ .X_mi34pYwHmBoHHJS15M {
550
+ color: var(--text-color);
551
+ text-shadow: var(--text-shadow);
552
+ background-color: var(--btn-danger-bg-color);
553
+ background-image: linear-gradient(180deg, hsl(var(--hue-pink), 62%, 50%) 0%, hsl(var(--hue-pink), 62%, 45%) 100%);
554
+ }
555
+ .UIK2HEzG93kJrZg1zrOI {
556
+ display: flex;
557
+ align-items: center;
558
+ padding: var(--space-xs);
559
+
560
+ button {
561
+ cursor: pointer;
562
+ color: var(--btn-bg-color);
563
+ }
564
+
565
+ button.PM6oSstQkOr7xx5WXBco {
566
+ color: var(--btn-active-bg-color);
567
+ filter: var(--btn-active-filter);
568
+ }
569
+ }
570
+
571
+ .jvBgtBq5nhwhgFxDdohV {
572
+ flex: 1;
573
+ margin: 0;
574
+ margin-left: -4px;
575
+ border: none !important;
576
+ font-size: var(--font-size-m) !important;
577
+ color: var(--text-color) !important;
578
+ background-color: transparent !important;
579
+ box-shadow: none !important;
580
+ }
581
+
582
+ .jvBgtBq5nhwhgFxDdohV::placeholder {
583
+ color: var(--btn-bg-color) !important;
584
+ }
585
+
586
+ .yRcmNgWXHlqworm4xJFy svg {
587
+ height: 2.5rem;
588
+ }
589
+
590
+ .q3cBXbOJzq3CC3galiDw {
591
+ height: 2.75rem;
592
+
593
+ svg {
594
+ height: 3rem;
595
+ }
596
+ }
597
+
598
+ .zKCotnvYis3lj_IxNd42 svg {
599
+ height: 2.75rem;
600
+ }
601
+ .DY6_kAr5khzv1QwqLveK {
602
+ --track-height: 0.5rem;
603
+ --handle-height: 3rem;
604
+
605
+ height: var(--handle-height);
606
+
607
+ &.rc-slider {
608
+ position: relative;
609
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
610
+ }
611
+
612
+ &.rc-slider * {
613
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
614
+ }
615
+
616
+ & .rc-slider-rail {
617
+ position: absolute;
618
+ height: var(--track-height);
619
+ top: calc(50% - (var(--track-height) / 2));
620
+ width: 100%;
621
+ background-color: var(--transport-volume-track-color);
622
+ border-radius: var(--border-radius);
623
+ cursor: pointer;
624
+ }
625
+
626
+ & .rc-slider-track {
627
+ position: absolute;
628
+ height: var(--track-height);
629
+ top: calc(50% - (var(--track-height) / 2));
630
+ left: 0;
631
+ border-radius: var(--border-radius);
632
+ background-color: var(--transport-volume-track-active-color);
633
+ filter: var(--transport-volume-track-active-filter);
634
+ cursor: pointer;
635
+ }
636
+ }
637
+
638
+ .X0DCwMUX1tj5tsoGjDFq {
639
+ cursor: pointer;
640
+ color: var(--btn-active-bg-color);
641
+ position: absolute;
642
+ touch-action: pan-x;
643
+ outline: none;
644
+
645
+ &:focus-visible {
646
+ outline: var(--focus-outline);
647
+ }
648
+
649
+ svg {
650
+ display: block;
651
+ height: var(--handle-height);
652
+ }
653
+ }
654
+
655
+ .dMo9SQYONtw9WYO5lxiN {
656
+ width: 100%;
657
+ margin: 0 34px 0 30px;
658
+ }
659
+
660
+ .pMYNwtxIUiwKZSuUB8NQ {
661
+ cursor: pointer;
662
+ color: var(--transport-btn-bg-color);
663
+ filter: var(--transport-btn-filter);
664
+ position: absolute;
665
+ touch-action: pan-x;
666
+ outline: none;
667
+
668
+ &:focus-visible {
669
+ outline: var(--focus-outline);
670
+ }
671
+
672
+ svg {
673
+ height: var(--icon-size-xl);
674
+ }
675
+ }
676
+
677
+ .sfr6H9YQSnxNFewvtYb2 {
678
+ font-size: 16px;
679
+ color: var(--header-notice-color);
680
+ background-color: var(--header-notice-bg-color);
681
+ }
682
+
683
+ .QYsiKZ5NRjaOsK5iaXfX {
684
+ margin: 0;
685
+ padding: 5px;
686
+ text-align: center;
687
+ }
688
+
689
+ .HHYLkEZBcUJPga1se3oQ {
690
+ display: flex;
691
+ flex-direction: column;
692
+ opacity: 0;
693
+ color: var(--text-color);
694
+ background: transparent;
695
+ padding: var(--space-m);
696
+ border: 1.5px solid hsl(var(--hue-blue), 20%, 30%);
697
+ border-radius: 16px;
698
+ max-width: min(800px, 90vw);
699
+ box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0);
700
+ backdrop-filter: blur(30px) brightness(50%) saturate(100%);
701
+ -webkit-backdrop-filter: blur(30px) brightness(50%) saturate(100%);
702
+
703
+ &[open] {
704
+ animation: JUb3t4IxoCde77QnaDuQ 0.15s forwards;
705
+ box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.5);
706
+ }
707
+ }
708
+
709
+ .pfOAkdcjAgxEaiTckdFA {
710
+ display: flex;
711
+ font-family: var(--font-family-custom);
712
+ margin: 0 0 var(--space-s) 0;
713
+
714
+ h1 {
715
+ flex: 1;
716
+ margin: 0;
717
+ font-size: var(--font-size-xl);
718
+ line-height: 1em;
719
+ }
720
+
721
+ }
722
+
723
+ .aIGh3kF56tYlTfTCzGuC {
724
+ position: relative;
725
+ top: calc(var(--space-s) * -1);
726
+ right: calc(var(--space-s) * -1);
727
+ align-self: flex-start;
728
+ color: var(--btn-active-bg-color);
729
+ padding: var(--space-s);
730
+ line-height: 1em;
731
+
732
+ &:focus-visible {
733
+ outline: none;
734
+ }
735
+
736
+ svg {
737
+ height: var(--icon-size-l);
738
+ line-height: 1em;
739
+ }
740
+ }
741
+
742
+ .M1nSLELWzWtg0nMNVAPp {
743
+ flex: 1;
744
+
745
+ &.G89xv3BCUffZqoya0LQl {
746
+ overflow: auto;
747
+ -webkit-overflow-scrolling: touch;
748
+ }
749
+ }
750
+
751
+ .nsGMxmc6ZA0V4Fwl17Bf {
752
+ display: flex;
753
+ flex-direction: column;
754
+ row-gap: var(--space-s);
755
+ column-gap: var(--space-m);
756
+ margin-top: var(--container-padding);
757
+ }
758
+
759
+
760
+ @keyframes JUb3t4IxoCde77QnaDuQ {
761
+ from { opacity: 0; }
762
+ to { opacity: 1; }
763
+ }
764
+
765
+ .Fqzbj50Thya7wadiB1RR {
766
+ display: inline-flex;
767
+ align-items: center;
768
+ gap: var(--space-s);
769
+ cursor: pointer;
770
+
771
+ input[type="checkbox"] {
772
+ -webkit-appearance: none;
773
+ appearance: none;
774
+ margin: 0;
775
+ background: var(--btn-bg-color);
776
+ color: var(--btn-bg-color);
777
+ width: 1.25em;
778
+ height: 1.25em;
779
+ border-radius: 0.15em;
780
+ display: grid;
781
+ place-content: center;
782
+ cursor: pointer;
783
+
784
+ &:focus-visible {
785
+ outline: var(--focus-outline);
786
+ }
787
+
788
+ &::before {
789
+ content: "";
790
+ width: 0.65em;
791
+ height: 0.65em;
792
+ clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
793
+ transform: scale(0);
794
+ background: #000;
795
+ }
796
+
797
+ &:checked {
798
+ background: var(--btn-active-bg-color);
799
+ }
800
+
801
+ &:checked::before {
802
+ transform: scale(1);
803
+ }
804
+ }
805
+ }
806
+
807
+ .CHH6ukgfI31pNfRWfp2z {
808
+ width: 90vw;
809
+ max-width: 480px;
810
+ }
811
+
812
+ .xKkwU06MKq2DbjSima4p {
813
+ display: flex;
814
+ flex-direction: column;
815
+ gap: var(--space-m);
816
+ }
817
+
818
+ .eBgZD0SKZoZxdKfDH4T1 {
819
+
820
+ /* Safari REALLY doesn't like fieldsets to be flex *items*, hence the .section wrapper */
821
+ fieldset {
822
+ display: flex;
823
+ flex-direction: column;
824
+ gap: var(--space-m);
825
+ margin: 0;
826
+ padding: var(--container-padding);
827
+ border: 1px solid var(--btn-bg-color);
828
+ border-radius: var(--border-radius);
829
+ /* Prevent fieldset from overflowing parent */
830
+ min-width: 0;
831
+ }
832
+
833
+ legend {
834
+ font-size: var(--font-size-m);
835
+ width: fit-content;
836
+ }
837
+ }
838
+
839
+ .PJhDzihe1KxTY9CE2xvq legend {
840
+ label {
841
+ display: flex;
842
+ gap: var(--space-s);
843
+ align-items: center;
844
+ cursor: pointer;
845
+ }
846
+ }
847
+
848
+ .hMPTUMcNQY0YeMY1WnWo {
849
+ display: flex;
850
+ flex-direction: column;
851
+ gap: var(--space-s);
852
+ }
853
+
854
+ .WPJeW28XmDzljHtBz0mq {
855
+ display: flex;
856
+ gap: var(--space-s);
857
+
858
+ button {
859
+ display: block;
860
+ background-color: var(--btn-active-bg-color);
861
+ border-radius: var(--border-radius);
862
+ width: 100%;
863
+
864
+ svg {
865
+ height: var(--icon-size-xl);
866
+ color: #000;
867
+ margin: 0 auto;
868
+ }
869
+ }
870
+ }
871
+
872
+ .Sx5QwRYN26kPCBm4i6rP {
873
+ margin: 0;
874
+ height: 2lh;
875
+ display: -webkit-box;
876
+ -webkit-line-clamp: 2;
877
+ -webkit-box-orient: vertical;
878
+ line-clamp: 2;
879
+ overflow: hidden;
880
+ text-overflow: ellipsis;
881
+ }
882
+
883
+ .zIEucMK4dBypf03pERBF {
884
+ text-align: center;
885
+ margin: var(--space-m) 0;
886
+ color: grey;
887
+ }
888
+
889
+ .MhuyzAaoykU7XrttP0lt {
890
+ margin: 0 1.25rem;
891
+ }
892
+ .s6dMfvg4cHkpBCZwMxlM {
893
+ display: flex;
894
+ align-items: center;
895
+ padding: 0 var(--container-padding);
896
+ }
897
+
898
+ .utieeUffOQOs5Tb422mr {
899
+ color: var(--transport-btn-bg-color);
900
+ filter: var(--transport-btn-filter);
901
+
902
+ svg {
903
+ height: var(--icon-size-xl);
904
+ }
905
+ }
906
+
907
+ .pRlD2sOdoJdRfrjBCylf {
908
+ animation: var(--animation-btn-danger-activate);
909
+ }
910
+
911
+ .ffq0SD5gzioIYEcgKgLY,
912
+ .pjBKslXw1U349A1rnhe0 {
913
+ svg {
914
+ height: 2.66rem;
915
+ }
916
+ }
917
+
918
+ .tQEHmnxGjJM781oxemUN {
919
+ margin: 0 var(--space-s);
920
+ }
921
+
922
+ .fIuT4teYAIcl4oLOLEzJ {
923
+ color: var(--btn-active-bg-color);
924
+ filter: var(--btn-active-filter);
925
+ }
926
+
927
+ .HZ7zG9VjL9eCkdQDZGIM {
928
+ color: var(--btn-active-bg-color);
929
+ filter: var(--btn-active-filter);
930
+ }
931
+
932
+ .R0tWhGzOMnxRvplqamqt {
933
+ display: flex;
934
+ align-items: center;
935
+ height: 40px;
936
+ width: 100%;
937
+ background-image: linear-gradient(to right, var(--active-item-from-bg-color), var(--active-item-from-bg-color));
938
+ background-repeat: no-repeat;
939
+ }
940
+
941
+ .WxqoYmzzeIRmqDepbVLR {
942
+ flex: 1;
943
+ font-size: 16px;
944
+ text-align: center;
945
+ white-space: nowrap;
946
+ text-overflow: ellipsis;
947
+ overflow: hidden;
948
+ color: var(--text-color);
949
+ }
950
+
951
+ .L3KVVs498s_TTzMFHKn5 {
952
+ cursor: pointer;
953
+ }
954
+
955
+ .iL_22Dl4fbuLsQo42o2o {
956
+ color: var(--btn-danger-bg-color);
957
+ filter: var(--btn-danger-filter);
958
+ }
959
+
960
+ .rMNneKuTapuKwyse_AMl {
961
+ color: var(--btn-active-bg-color);
962
+ filter: var(--btn-active-filter);
963
+ }
964
+
965
+ .qdbIg3xgUn4KEomWXd7E {
966
+ font-size: 16px;
967
+ color: var(--text-color);
968
+ animation-duration: 1.5s;
969
+ animation-direction: alternate;
970
+ animation-iteration-count: infinite;
971
+ animation-timing-function: ease-out;
972
+ }
973
+
974
+ .PhYxOVpDCwPMJWw0BE6k {
975
+ animation-name: chycT2sgXRCUDLsKIkuK;
976
+ filter: var(--up-next-filter);
977
+ }
978
+
979
+ @keyframes chycT2sgXRCUDLsKIkuK {
980
+ 0% { background-color: var(--up-next-bg-color-to); }
981
+ 100% { background-color: var(--up-next-bg-color-from); }
982
+ }
983
+
984
+ .C9WuYntlaEVvxRaewY7r {
985
+ animation-name: arEOr6pUTnFXinmiHz2o;
986
+ filter: var(--up-now-filter);
987
+ }
988
+
989
+ @keyframes arEOr6pUTnFXinmiHz2o {
990
+ 0% { background-color: var(--up-now-bg-color-to); }
991
+ 100% { background-color: var(--up-now-bg-color-from); }
992
+ }
993
+
994
+ .pXcSEQ5RRGogLr2WCFum {
995
+ background-color: var(--up-next-bg-color-from);
996
+ }
997
+
998
+ .ZYRIFRvELzaH67PRlPlp {
999
+ margin: 0;
1000
+ padding: 5px;
1001
+ text-align: center;
1002
+ }
1003
+
1004
+ .vreYukSnqUrGi25wejn4 {
1005
+ position: fixed;
1006
+ top: 0;
1007
+ left: 0;
1008
+ width: 100%;
1009
+ background-color: var(--chrome-bg-color);
1010
+ border-bottom: 1px solid var(--chrome-border-color);
1011
+ z-index: 1;
1012
+
1013
+ &:empty {
1014
+ display: none;
1015
+ }
1016
+ }
1017
+
1018
+ .sjMaG58osNAeqXFe4zpO {
1019
+ position: fixed;
1020
+ bottom: 0;
1021
+ left: 0;
1022
+ display: flex;
1023
+ width: 100%;
1024
+ background-color: var(--chrome-bg-color);
1025
+ border-top: 1px solid var(--chrome-border-color);
1026
+ z-index: 99;
1027
+
1028
+ a {
1029
+ flex: 1;
1030
+ padding: var(--space-xs) 0;
1031
+ }
1032
+
1033
+ span {
1034
+ display: flex;
1035
+ justify-content: center;
1036
+ color: var(--btn-bg-color);
1037
+ /* filter: drop-shadow(0px 1px 0px hsl(var(--hue-blue), 100%, 30%)); */
1038
+
1039
+ svg {
1040
+ height: var(--icon-size-xl);
1041
+ }
1042
+ }
1043
+
1044
+ .KFIi1hoqiTVulFtwCOgg span {
1045
+ color: var(--link-color);
1046
+ filter: var(--btn-active-filter) drop-shadow(0 0 1px rgba(0, 0, 0, 1));
1047
+ }
1048
+ }
1049
+
1050
+ .bx9kUlhkDMmCKpxez9Kn {
1051
+ animation: YlMykufEl9xVpOVVrlnC 5s var(--activate-1);
1052
+ }
1053
+
1054
+ @keyframes YlMykufEl9xVpOVVrlnC {
1055
+ from {
1056
+ filter: var(--btn-activate-filter) drop-shadow(0 0 0 transparent);
1057
+ }
1058
+
1059
+ to {
1060
+ filter: var(--btn-active-filter) drop-shadow(0 0 1px rgba(0, 0, 0, 1));
1061
+ }
1062
+ }
1063
+ .AOWDkEJZ7Uh6TMmJSmDN {
1064
+ height: 100%;
1065
+ display: flex;
1066
+ flex-direction: column;
1067
+ }
1068
+
1069
+ .Gi_1FjbpZU1FcRC85lBE {
1070
+ flex: 1;
1071
+ margin: .5rem 0;
1072
+ overflow: scroll;
1073
+ }
1074
+
1075
+ .k8N_J395xr2bblBgwvim {
1076
+ margin-bottom: 1em;
1077
+ overflow-wrap: break-word;
1078
+ }
1079
+
1080
+ .TSJBvSrnl7BotohIdqrj {
1081
+ font-weight: bold;
1082
+ color: #777;
1083
+ }
1084
+
1085
+ .MhLrBfYw2bVvon36GHQg {
1086
+ font-family: Beon;
1087
+ white-space: nowrap;
1088
+ flex: 1;
1089
+ }
1090
+
1091
+ .MRwxEsiCu74aMC4fJ2yn {
1092
+ border: none;
1093
+ color: hsl(var(--hue-blue), 10%, 80%);
1094
+ display: inline-block;
1095
+ font-size: 200%;
1096
+ font-weight: normal;
1097
+ text-transform: uppercase;
1098
+ margin: 0;
1099
+ text-shadow:
1100
+ 0 0 .1em hsl(var(--hue-pink), 100%, 100%),
1101
+ 0 0 .5em hsl(var(--hue-pink), 100%, 100%),
1102
+ 0 0 .25em hsl(var(--hue-pink), 100%, 50%),
1103
+ 0 0 .5em hsl(var(--hue-pink), 100%, 50%),
1104
+ 0 0 .75em hsl(var(--hue-pink), 100%, 50%),
1105
+ 0 0 1em hsl(var(--hue-pink), 100%, 50%),
1106
+ 0 0 1.5em hsl(var(--hue-pink), 100%, 50%),
1107
+ 0 0 3em hsl(var(--hue-pink), 100%, 50%),
1108
+ 0 0 6em hsl(var(--hue-pink), 100%, 50%),
1109
+ 0 0 9em hsl(var(--hue-pink), 100%, 50%);
1110
+ }
1111
+
1112
+ .XrgY7jUteM7yAiFgHV3G {
1113
+ font-size: 40%;
1114
+ text-transform: uppercase;
1115
+ display: block;
1116
+ letter-spacing: .9em;
1117
+ border: .1em solid hsl(var(--hue-blue), 100%, 90%);
1118
+ border-radius: .25em;
1119
+ padding: .25em;
1120
+ text-shadow:
1121
+ 0 0 .1em hsl(var(--hue-blue), 100%, 90%),
1122
+ 0 0 .25em hsl(var(--hue-blue), 100%, 90%),
1123
+ 0 0 .25em hsl(var(--hue-blue), 100%, 50%),
1124
+ 0 0 .5em hsl(var(--hue-blue), 100%, 50%);
1125
+ box-shadow:
1126
+ 0 0 .1em hsl(var(--hue-blue), 100%, 90%),
1127
+ 0 0 .25em hsl(var(--hue-blue), 100%, 90%),
1128
+ 0 0 .5em hsl(var(--hue-blue), 100%, 50%),
1129
+ 0 0 .75em hsl(var(--hue-blue), 100%, 50%),
1130
+ inset 0 0 .5em hsl(var(--hue-blue), 100%, 50%),
1131
+ inset 0 0 .75em hsl(var(--hue-blue), 100%, 50%);
1132
+ }
1133
+
1134
+ .opBGPXUVYOwhN4fsI5_5 {
1135
+ letter-spacing: normal;
1136
+ }
1137
+
1138
+ .kMVEh9LeEn4g4mp_4CQN {
1139
+ display: flex;
1140
+ position: relative;
1141
+ overflow: hidden;
1142
+ min-width: 96px;
1143
+ height: 72px;
1144
+ border-radius: var(--border-radius);
1145
+ align-items: center;
1146
+ cursor: pointer;
1147
+ background-color: var(--btn-bg-color);
1148
+
1149
+ svg {
1150
+ margin: 0 auto;
1151
+ color: #000;
1152
+ }
1153
+
1154
+ &:has(:focus-visible) {
1155
+ outline: var(--focus-outline);
1156
+ }
1157
+ }
1158
+
1159
+ .YA6i4Cl4kAWWDVU3e1xA {
1160
+ cursor: inherit;
1161
+ display: block;
1162
+ font-size: 999px;
1163
+ filter: alpha(opacity=0);
1164
+ min-height: 100%;
1165
+ min-width: 100%;
1166
+ opacity: 0;
1167
+ position: absolute;
1168
+ right: 0;
1169
+ text-align: right;
1170
+ top: 0;
1171
+ }
1172
+
1173
+ .s4sM5iEgPiWiNqVuWXXy {
1174
+ position: absolute;
1175
+ top: 0;
1176
+ left: 0;
1177
+ z-index: 99;
1178
+
1179
+ svg {
1180
+ color: hsl(var(--hue-pink), 100%, 70%);
1181
+ filter: drop-shadow(0 0 4px rgba(0, 0, 0, 1));
1182
+ }
1183
+ }
1184
+
1185
+ .urwdlhf5zLiQCnkW1lW9 {
1186
+ color: var(--btn-bg-color);
1187
+ }
1188
+ .UJP7G5dKPXhMYPVm9lGC {
1189
+ display: flex;
1190
+ flex-direction: column;
1191
+ gap: var(--space-s);
1192
+ }
1193
+
1194
+ .MRv8af4NPh12SLYbjwuA {
1195
+ display: flex;
1196
+ gap: var(--space-s);
1197
+ }
1198
+
1199
+ .IwyJhXcw4stbQluvU1RS {
1200
+ margin: 0 auto;
1201
+ overflow: hidden;
1202
+ padding: var(--container-padding);
1203
+
1204
+ h1 {
1205
+ margin: var(--space-l) 0 var(--space-m) 0;
1206
+ font-family: var(--font-family-custom);
1207
+ font-size: var(--font-size-l);
1208
+ color: hsl(var(--hue-blue), 10%, 60%);
1209
+ }
1210
+ }
1211
+
1212
+ .LBGExauA2_9eEf6X1NAw {
1213
+ margin-bottom: var(--space-xl);
1214
+ text-align: center;
1215
+ font-size: 30px;
1216
+
1217
+ @media (min-width: 42em) {
1218
+ margin: var(--space-xl) 0;
1219
+ font-size: 36px;
1220
+ }
1221
+ }
1222
+ .WUYY8MZhwwhVekAlX5_d {
1223
+ background-color: var(--panel-bg-color);
1224
+ border-radius: 12px;
1225
+ overflow: hidden;
1226
+ }
1227
+
1228
+ .eP0BAX5ayTg1WGhcfd7y {
1229
+ display: flex;
1230
+ align-items: center;
1231
+ justify-content: space-between;
1232
+ padding: var(--space-s) var(--container-padding);
1233
+ color: hsl(var(--hue-blue), 10%, 80%);
1234
+ background-color: hsl(var(--hue-blue), 20%, 20%);
1235
+ background-image: linear-gradient(135deg, hsl(209,20%,20%) 0%, hsl(209,20%,10%) 100%);
1236
+
1237
+ h1 {
1238
+ margin: 0;
1239
+ font-size: var(--font-size-l);
1240
+ font-weight: var(--font-weight-bold);
1241
+ }
1242
+ }
1243
+
1244
+ .OgJ5EnIwV5jp1GGDcabg {
1245
+ padding: var(--container-padding);
1246
+ }
1247
+
1248
+ .XIvZjD6Co9DyofyCj0Da {
1249
+ text-align: center;
1250
+ }
1251
+
1252
+ .oPMyaF6eFojk2b8ZQKwH {
1253
+ font-size: 24px;
1254
+ cursor: pointer;
1255
+ }
1256
+
1257
+ .mFno0FFze3kHGDdbZDBB {
1258
+ color: #aaa;
1259
+ font-size: 75%;
1260
+ margin-top: 1em;
1261
+ }
1262
+
1263
+ .NjmtwxMJxR179Hk2Pomb {
1264
+ text-decoration: underline;
1265
+ }
1266
+
1267
+ .okfIUIOCzr40SucFJR9B {
1268
+ text-align: left;
1269
+ width: 90%;
1270
+ height: 90%;
1271
+ }
1272
+
1273
+ .J1Y6pDd6XtAUjqhW2qIF {
1274
+ display: flex;
1275
+ justify-content: center;
1276
+ gap: 12px;
1277
+ }
1278
+
1279
+ .ZKYWLeUdrki571OMgwqw {
1280
+ display: inline-block;
1281
+ white-space: nowrap;
1282
+ border: 1px solid;
1283
+ border-color: rgba(240, 246, 252, .1);
1284
+ background-image: linear-gradient(180deg, #21262d, #1a1e23 90%);
1285
+ border-radius: 0.25em;
1286
+ }
1287
+
1288
+ .ZKYWLeUdrki571OMgwqw:hover {
1289
+ border-color: #8b949e;
1290
+ background-image: linear-gradient(180deg, #30363d, #292e33 90%);
1291
+ }
1292
+
1293
+ .ZKYWLeUdrki571OMgwqw a {
1294
+ display: inline-flex;
1295
+ color: #c9d1d9;
1296
+ padding: 8px 10px;
1297
+ font-size: 12px;
1298
+ line-height: 16px;
1299
+ text-decoration: none;
1300
+ }
1301
+
1302
+ .ZKYWLeUdrki571OMgwqw svg {
1303
+ margin-right: 5px;
1304
+ }
1305
+
1306
+ .ZKYWLeUdrki571OMgwqw.z6j4SZzTbavwii_DBoa2 svg {
1307
+ color: #db61a2;
1308
+ }
1309
+ .eWB988t3JuRQuM9e6O_N p {
1310
+ margin-top: 10px;
1311
+ }
1312
+
1313
+ .lVRxnFYFCfHZHGIPV2QD {
1314
+ margin-top: var(--input-margin);
1315
+ }
1316
+
1317
+ .Fj4oA4Er2_057Nqs3d_R {
1318
+ margin-top: var(--input-margin);
1319
+ }
1320
+
1321
+ .Kyq1e8Js6YODEAIrpuiV {
1322
+ background: hsl(var(--hue-blue), 20%, 15%);
1323
+ border-radius: var(--border-radius);
1324
+
1325
+ &[data-expanded] {
1326
+ .vrRzBvLX1MqJZgM7p38z {
1327
+ transform: rotate(90deg);
1328
+ }
1329
+
1330
+ .tVJZZisJHykY_Y7qwkKK {
1331
+ border-radius: var(--border-radius) var(--border-radius) 0 0;
1332
+ }
1333
+ }
1334
+ }
1335
+
1336
+ .vrRzBvLX1MqJZgM7p38z {
1337
+ flex-shrink: 0;
1338
+ }
1339
+
1340
+ .tVJZZisJHykY_Y7qwkKK {
1341
+ display: flex;
1342
+ justify-content: space-between;
1343
+ align-items: center;
1344
+ background-color: hsl(var(--hue-blue), 20%, 25%);
1345
+ background-image: linear-gradient(135deg, hsl(var(--hue-blue), 20%, 25%) 0%, hsl(var(--hue-blue), 20%, 15%) 100%);
1346
+ border-radius: var(--border-radius);
1347
+ cursor: pointer;
1348
+
1349
+ button {
1350
+ color: inherit;
1351
+ background: none;
1352
+ border: none;
1353
+ cursor: pointer;
1354
+ outline: none;
1355
+
1356
+ &:focus-visible {
1357
+ outline: var(--focus-outline);
1358
+ }
1359
+ }
1360
+
1361
+ svg {
1362
+ display: block;
1363
+ height: var(--icon-size-l);
1364
+ }
1365
+ }
1366
+
1367
+ .zXRZqy8GypIyzzonhQDj {
1368
+ display: flex;
1369
+ height: 40px;
1370
+ cursor: pointer;
1371
+ align-items: center;
1372
+ }
1373
+
1374
+ .nn35PIgJyM8hd_PfVG9P {
1375
+ flex: 1;
1376
+ font-size: 16px;
1377
+ margin-left: 5px;
1378
+ overflow: hidden;
1379
+ text-overflow: ellipsis;
1380
+ white-space: nowrap;
1381
+ }
1382
+
1383
+ .Z1AkYsOvWFhZrcYR6W9z {
1384
+ width: 90%;
1385
+ height: 95%;
1386
+ }
1387
+
1388
+ .PCD9_JwmkY6aoE1S6ZP_ {
1389
+ display: flex;
1390
+ flex-direction: column;
1391
+ height: 100%;
1392
+ }
1393
+
1394
+ .zuvIYSwYXKYBkknUSBt0 {
1395
+ padding: 10px;
1396
+ border: 1px solid var(--text-color);
1397
+ border-radius: var(--border-radius);
1398
+ background: var(--panel-bg-color);
1399
+ overflow-wrap: anywhere;
1400
+ }
1401
+
1402
+ .Er04pbLH9MbYq06HYgN2 {
1403
+ flex: 1;
1404
+ margin: var(--space-s) 0;
1405
+ overflow: auto;
1406
+ }
1407
+
1408
+ .PQDNPIs88caRIT2AXWfT {
1409
+ display: flex;
1410
+ gap: var(--space-m);
1411
+ }
1412
+
1413
+ .ATXORF88MX2KCM3GK6PD {
1414
+ overflow-wrap: anywhere;
1415
+ }
1416
+
1417
+ .J_rtBBS98nuownep8wbe {
1418
+ font-weight: bold;
1419
+ color: #777;
1420
+ }
1421
+
1422
+ .YZaEmIfhPKE_g3gNZwso {
1423
+ display: flex;
1424
+ flex-direction: column;
1425
+ gap: var(--space-m);
1426
+ margin-bottom: var(--space-m);
1427
+ }
1428
+
1429
+ .vfEtFMD1PnnZpL7KJi5i {
1430
+ display: flex;
1431
+ align-items: center;
1432
+ background-color: var(--panel-bg-color);
1433
+ padding: var(--space-xs);
1434
+ margin-bottom: var(--space-s);
1435
+ border-radius: var(--border-radius);
1436
+ }
1437
+
1438
+ .reQxnTVFy0pmOJ_OxHEW {
1439
+ flex: 1;
1440
+ user-select: text;
1441
+ text-overflow: ellipsis;
1442
+ overflow: hidden;
1443
+ direction: rtl;
1444
+ text-align: left;
1445
+ white-space: nowrap;
1446
+ }
1447
+
1448
+ .cLbX8ACpwjrJHf1i33Kw {
1449
+ cursor: grab;
1450
+ color: var(--btn-bg-color);
1451
+ height: var(--icon-size-l);
1452
+ }
1453
+
1454
+ .mFavmW0ojDDlX4oNvSlc,
1455
+ .vKWSaWmD75njSGInSqpQ {
1456
+ color: var(--btn-active-bg-color);
1457
+ padding: var(--space-xs);
1458
+
1459
+ svg {
1460
+ height: var(--icon-size-l);
1461
+ }
1462
+ }
1463
+ .IkPiZ7oarPYasin3JcFC {
1464
+ button {
1465
+ display: flex;
1466
+ align-items: center;
1467
+ gap: var(--space-s);
1468
+ padding: var(--space-s);
1469
+ font-size: var(--font-size-m);
1470
+ }
1471
+
1472
+ svg {
1473
+ height: var(--icon-size-l);
1474
+ }
1475
+ }
1476
+
1477
+ .eYUqAJLLPnFSGQfPrwJp {
1478
+ display: flex;
1479
+ flex-direction: column;
1480
+ gap: var(--space-s);
1481
+ padding: var(--container-padding);
1482
+ }
1483
+
1484
+ .COsFBSxrE3VeJHh23G5V {
1485
+ display: flex;
1486
+ align-items: flex-end;
1487
+ gap: var(--space-m);
1488
+
1489
+ button {
1490
+ flex: 1;
1491
+ }
1492
+ }
1493
+
1494
+ .iQsmu84S0UOMvskFslib {
1495
+ button {
1496
+ display: flex;
1497
+ align-items: center;
1498
+ gap: var(--space-s);
1499
+ padding: var(--space-s);
1500
+ font-size: var(--font-size-m);
1501
+ }
1502
+
1503
+ svg {
1504
+ height: var(--icon-size-l);
1505
+ }
1506
+ }
1507
+
1508
+ .EsTYWrxvRDwQ5bUKgop3 {
1509
+ padding: var(--container-padding);
1510
+ }
1511
+
1512
+ .EsTYWrxvRDwQ5bUKgop3 label {
1513
+ padding: var(--container-padding);
1514
+ cursor: pointer;
1515
+ }
1516
+
1517
+ .ew2x2VQFG7Hj_ltiyxbF {
1518
+ display: flex;
1519
+ flex-direction: column;
1520
+ gap: 8px;
1521
+ }
1522
+
1523
+ .WI7RHMq3jaNSZwGU2FA6 {
1524
+ button {
1525
+ display: flex;
1526
+ align-items: center;
1527
+ gap: var(--space-s);
1528
+ padding: var(--space-s);
1529
+ font-size: var(--font-size-s);
1530
+ }
1531
+
1532
+ svg {
1533
+ height: var(--icon-size-m);
1534
+ }
1535
+ }
1536
+
1537
+ .tW4weGP7ZNHvtdAvHXkQ {
1538
+ display: flex;
1539
+ flex-direction: column;
1540
+ gap: var(--space-m);
1541
+ padding: var(--space-m) var(--container-padding);
1542
+ }
1543
+
1544
+ .NxVXilqTVRm2Gn61JMnN {
1545
+ button {
1546
+ display: flex;
1547
+ align-items: center;
1548
+ gap: var(--space-s);
1549
+ padding: var(--space-s);
1550
+ font-size: var(--font-size-s);
1551
+ }
1552
+
1553
+ svg {
1554
+ height: var(--icon-size-m);
1555
+ }
1556
+ }
1557
+
1558
+ .HOcMzCIA0WXMfcLNpS_4 {
1559
+ margin: 0 1.25rem;
1560
+ }
1561
+
1562
+ .bjETwqGW5QyR3on58pts {
1563
+ display: flex;
1564
+ flex-direction: column;
1565
+ gap: var(--space-m);
1566
+ padding: var(--space-m) var(--container-padding);
1567
+ }
1568
+
1569
+ ._zeQjaCY8RxRMtxT2JAF {
1570
+ display: none;
1571
+ }
1572
+
1573
+ .Q5T7XWGqm4a5MPArNfUg {
1574
+ min-width: 360px;
1575
+ }
1576
+
1577
+ .YSEBZfRCIoJmOplLt9mP,
1578
+ .a5K1WCxiR97esx_y_2Ex,
1579
+ .uiSOmb44a9pRFxf0NKJc {
1580
+ display: flex;
1581
+ flex-direction: column;
1582
+ gap: var(--space-s);
1583
+ margin: var(--space-l) 0;
1584
+
1585
+ &:first-child {
1586
+ margin-top: 0;
1587
+ }
1588
+
1589
+ &:last-child {
1590
+ margin-bottom: 0;
1591
+ }
1592
+ }
1593
+
1594
+ .YSEBZfRCIoJmOplLt9mP select {
1595
+ width: fit-content;
1596
+ }
1597
+ .dlkVNG9BLZN9R9HguwLu {
1598
+ max-width: 50%;
1599
+ }
1600
+
1601
+ .wM1sRpuOJYI8QczteHwR {
1602
+ cursor: pointer;
1603
+ }
1604
+
1605
+ .HAVmLg8TCL18Jeiuo7fX {
1606
+ width: 100%;
1607
+ }
1608
+
1609
+ .HAVmLg8TCL18Jeiuo7fX > * {
1610
+ outline: none;
1611
+ }
1612
+
1613
+ .HAVmLg8TCL18Jeiuo7fX th {
1614
+ color: hsl(var(--hue-blue), 10%, 60%);
1615
+ font-weight: normal;
1616
+ text-align: left;
1617
+ }
1618
+
1619
+ .HAVmLg8TCL18Jeiuo7fX th:first-child {
1620
+ width: 100%;
1621
+ }
1622
+
1623
+ .HAVmLg8TCL18Jeiuo7fX th:nth-child(2) {
1624
+ min-width: 70px;
1625
+ }
1626
+
1627
+ .HAVmLg8TCL18Jeiuo7fX td {
1628
+ height: 25px;
1629
+ overflow: hidden;
1630
+ white-space: nowrap;
1631
+ }
1632
+
1633
+ .HAVmLg8TCL18Jeiuo7fX td:first-child {
1634
+ text-overflow: ellipsis;
1635
+ max-width: 0;
1636
+ }
1637
+
1638
+ .gqWI3mlnDqWIUNXebNqh {
1639
+ min-width: 360px;
1640
+ }
1641
+
1642
+ ._UZuyKF0ewftaeFpnDiS {
1643
+ display: flex;
1644
+ flex-direction: column;
1645
+ gap: var(--space-s);
1646
+ margin-top: var(--space-m);
1647
+ }
1648
+
1649
+ .egMKJajhBRVHHcS0ruyV {
1650
+ margin-bottom: var(--input-margin);
1651
+ }
1652
+
1653
+ .krYGtNnm9wreKzV0sC87 {
1654
+ max-width: 50%;
1655
+ }
1656
+
1657
+ .IhdI0Ej7cIQc3O9IulTL {
1658
+ cursor: pointer;
1659
+ }
1660
+
1661
+ .dVtQTutpaei_Zk_0Dmhd {
1662
+ width: 100%;
1663
+ }
1664
+
1665
+ .dVtQTutpaei_Zk_0Dmhd > * {
1666
+ outline: none;
1667
+ }
1668
+
1669
+ .dVtQTutpaei_Zk_0Dmhd th {
1670
+ color: hsl(var(--hue-blue), 10%, 60%);
1671
+ font-weight: normal;
1672
+ text-align: left;
1673
+ }
1674
+
1675
+ .dVtQTutpaei_Zk_0Dmhd th:first-child {
1676
+ width: 100%;
1677
+ }
1678
+
1679
+ .dVtQTutpaei_Zk_0Dmhd th:nth-child(2) {
1680
+ min-width: 70px;
1681
+ }
1682
+
1683
+ .dVtQTutpaei_Zk_0Dmhd td {
1684
+ height: 25px;
1685
+ overflow: hidden;
1686
+ white-space: nowrap;
1687
+ }
1688
+
1689
+ .dVtQTutpaei_Zk_0Dmhd td:first-child {
1690
+ text-overflow: ellipsis;
1691
+ max-width: 0;
1692
+ }
1693
+
1694
+ .Wdz5LHTVlrpDjGYTKK9L {
1695
+ display: inline-flex;
1696
+ align-items: center;
1697
+ gap: var(--space-s);
1698
+ cursor: pointer;
1699
+
1700
+ &:has(:focus-visible) {
1701
+ outline: var(--focus-outline);
1702
+ }
1703
+
1704
+ input[type="radio"] {
1705
+ -webkit-appearance: none;
1706
+ appearance: none;
1707
+ min-width: 1.5em;
1708
+ min-height: 1.5em;
1709
+ border-radius: 50%;
1710
+ border: 2px solid var(--btn-bg-color);
1711
+ outline: none;
1712
+
1713
+ &:checked,
1714
+ &:focus:checked,
1715
+ &:hover:checked {
1716
+ background: radial-gradient(
1717
+ circle,
1718
+ var(--btn-active-bg-color) 0%,
1719
+ var(--btn-active-bg-color) 60%,
1720
+ #000 60%,
1721
+ #000 100%
1722
+ );
1723
+ }
1724
+ }
1725
+ }
1726
+
1727
+ .MTzbvQ4VAtgPXbJKkrGO {
1728
+ display: flex;
1729
+ flex-direction: column;
1730
+ gap: var(--space-s);
1731
+
1732
+ input[type="password"] {
1733
+ margin: var(--space-s) 0;
1734
+ }
1735
+
1736
+ label {
1737
+ width: 100%;
1738
+ }
1739
+ }
1740
+
1741
+ .X1Pj4fM1xquH4Ymuq0Q5 {
1742
+ display: none !important;
1743
+ }
1744
+ .mlhmoE1JUQKR4Te5DEtv {
1745
+ display: flex;
1746
+ flex-direction: column;
1747
+ gap: var(--space-s);
1748
+
1749
+ button {
1750
+ margin-top: var(--space-s);
1751
+ }
1752
+ }
1753
+
1754
+ .glTWFMiUMaerBvhPz8ti {
1755
+ display: flex;
1756
+ gap: var(--space-s);
1757
+ }
1758
+
1759
+ .pvyilF8BtiMYHtpXJ_jT {
1760
+ display: flex;
1761
+ flex-direction: column;
1762
+ gap: var(--space-s);
1763
+
1764
+ button {
1765
+ margin-top: var(--space-s);
1766
+ }
1767
+ }
1768
+ .e3jR4OMsV_OIaaAci_hn {
1769
+ margin: 0 auto;
1770
+ overflow: hidden;
1771
+ padding: var(--container-padding);
1772
+
1773
+ h1 {
1774
+ margin: var(--space-l) 0 var(--space-m) 0;
1775
+ font-family: var(--font-family-custom);
1776
+ font-size: var(--font-size-l);
1777
+ color: hsl(var(--hue-blue), 10%, 60%);
1778
+ }
1779
+ }
1780
+
1781
+ .kfaDc9tZA7V0rbLrrQxW {
1782
+ margin-bottom: var(--space-xl);
1783
+ text-align: center;
1784
+ font-size: 30px;
1785
+
1786
+ @media (min-width: 42em) {
1787
+ margin: var(--space-xl) 0;
1788
+ font-size: 36px;
1789
+ }
1790
+ }
1791
+
1792
+ .unPhcciIOQl7IyVNBGQk {
1793
+ display: flex;
1794
+ flex-direction: column;
1795
+ gap: var(--space-s);
1796
+ white-space: nowrap;
1797
+ margin-bottom: var(--space-m);
1798
+ }
1799
+
1800
+ .cRQaBuJaYH041jNLJIlp {
1801
+ display: none;
1802
+ }
1803
+ .EPw4Q8pC4VCZu_ENeHOh {
1804
+ margin: 0 auto;
1805
+ overflow-x: hidden;
1806
+ overflow-y: auto;
1807
+ -webkit-overflow-scrolling: touch;
1808
+
1809
+ & > div {
1810
+ margin: var(--space-m) auto;
1811
+ }
1812
+ }
1813
+
1814
+ .JoCtgfMdp4_LkFISBVdL {
1815
+ overflow: hidden auto !important; /* allow scrolling on Y-axis only */
1816
+ scrollbar-width: none; /* Firefox */
1817
+ }
1818
+
1819
+ .JoCtgfMdp4_LkFISBVdL::-webkit-scrollbar {
1820
+ display: none; /* Safari and Chrome */
1821
+ }
1822
+
1823
+ .vN10Ra6WwFQwsoJD1_3H {
1824
+ align-items: center;
1825
+ color: var(--alpha-picker-color);
1826
+ display: flex;
1827
+ flex-direction: column;
1828
+ font-size: 2vh;
1829
+ padding: 5px 0;
1830
+ position: fixed;
1831
+ right: 0;
1832
+ width: 32px;
1833
+ cursor: pointer;
1834
+ touch-action: none;
1835
+ }
1836
+
1837
+ .NLkRlVVNnuiKJMNOXMhe {
1838
+ display: flex;
1839
+ align-items: center;
1840
+ transition: width var(--spring-duration) var(--spring-function);
1841
+
1842
+ button {
1843
+ margin-right: var(--space-s);
1844
+ cursor: pointer;
1845
+ transition: opacity .3s linear;
1846
+ flex-shrink: 0;
1847
+ }
1848
+ }
1849
+
1850
+ .IW53X1CCc5LsUP_viCWs {
1851
+ opacity: 0;
1852
+ }
1853
+ .Hk5Oiz4LTn0TQU1HJ_4r {
1854
+ --song-item-btn-size: 48px;
1855
+
1856
+ display: flex;
1857
+ align-items: center;
1858
+ margin-left: var(--space-xs);
1859
+ margin-bottom: var(--space-xs);
1860
+ background-color: hsl(var(--hue-blue), 40%, 6%);
1861
+ border-left: var(--space-xs) solid var(--song-item-btn-bg-color);
1862
+ height: 52px;
1863
+
1864
+ &.otX4OYp4lT3aOtJMqjAT {
1865
+ height: 64px;
1866
+ }
1867
+
1868
+ &.Ar5Q9JpCbRQjA3OMib2W {
1869
+ text-shadow: var(--queued-item-text-shadow);
1870
+
1871
+ .oqSOn8U_QmqEzSvyfAw_ {
1872
+ color: var(--queued-item-color);
1873
+ }
1874
+ }
1875
+
1876
+ &.iMwtWGP1vWpUXRv3MLTP:not(.Ar5Q9JpCbRQjA3OMib2W) {
1877
+ .oqSOn8U_QmqEzSvyfAw_ {
1878
+ color: var(--color-gray-5);
1879
+ }
1880
+ }
1881
+
1882
+ &._t4JBPFRguFbumW7x8D6 {
1883
+ .bfE_vcKGNAy6HuKrhsLQ {
1884
+ color: var(--song-item-btn-active-bg-color);
1885
+ filter: var(--song-item-btn-active-filter);
1886
+ }
1887
+
1888
+ .a2lTNMjjT5QzeuYbGeux {
1889
+ color: var(--song-item-btn-active-color);
1890
+ }
1891
+ }
1892
+ }
1893
+
1894
+ .q8d4R7JJbyKfMfb5qTtn {
1895
+ animation: var(--animation-text-shadow-glow);
1896
+ }
1897
+
1898
+ .hxXzgFhspryRgl6_AkmQ {
1899
+ color: var(--color-gray-5);
1900
+ font-size: 14px;
1901
+ text-align: right;
1902
+ width: 40px;
1903
+ }
1904
+
1905
+ .z8K08MurHExDsFH50TjN {
1906
+ cursor: pointer;
1907
+ flex: 1;
1908
+ overflow: hidden;
1909
+ white-space: nowrap;
1910
+ margin-left: 14px;
1911
+ }
1912
+
1913
+ .oqSOn8U_QmqEzSvyfAw_ {
1914
+ color: var(--color-gray-9);
1915
+ font-size: 18px;
1916
+ text-overflow: ellipsis;
1917
+ overflow: hidden;
1918
+ }
1919
+
1920
+ .INKd0vI4DamezRZUfFHO {
1921
+ color: var(--color-gray-7);
1922
+ font-size: 16px;
1923
+ text-overflow: ellipsis;
1924
+ overflow: hidden;
1925
+ white-space: nowrap;
1926
+ margin-top: var(--space-xs);
1927
+ }
1928
+
1929
+ /* Buttons */
1930
+ .DLgbTdB3hYU0zYVmvotm {
1931
+ position: relative;
1932
+
1933
+ svg {
1934
+ display: block;
1935
+ width: var(--song-item-btn-size);
1936
+ height: var(--song-item-btn-size);
1937
+ }
1938
+ }
1939
+
1940
+ .bfE_vcKGNAy6HuKrhsLQ {
1941
+ color: var(--song-item-btn-bg-color);
1942
+ }
1943
+
1944
+ .a2lTNMjjT5QzeuYbGeux {
1945
+ position: absolute;
1946
+ font-size: 14px;
1947
+ top: 0;
1948
+ text-shadow: none;
1949
+ color: var(--text-color);
1950
+ width: 100%;
1951
+ height: 100%;
1952
+ display: flex;
1953
+ align-items: center;
1954
+ justify-content: center;
1955
+ }
1956
+
1957
+ .IpLs3GshduGnVRAThUSV {
1958
+ color: var(--song-item-btn-active-bg-color);
1959
+ filter: var(--song-item-btn-active-filter);
1960
+ }
1961
+
1962
+ .r4HcW54ut9T2YXA4ysAf {
1963
+ animation: var(--animation-btn-star);
1964
+ will-change: transform;
1965
+
1966
+ @media (prefers-reduced-motion: reduce) {
1967
+ animation: none;
1968
+ }
1969
+ }
1970
+ .ZQ1vJSuEzaXfK5U2mVy3 {
1971
+ --artist-item-height: 48px;
1972
+
1973
+ display: flex;
1974
+ height: var(--artist-item-height);
1975
+ align-items: center;
1976
+ overflow: hidden;
1977
+ }
1978
+
1979
+ .Lo0KOIA2KNbjdkAzONWs {
1980
+ color: var(--artist-name-color);
1981
+ flex: 1;
1982
+ font-size: 20px;
1983
+ text-overflow: ellipsis;
1984
+ overflow: hidden;
1985
+ white-space: nowrap;
1986
+ padding-left: 3px;
1987
+ cursor: pointer;
1988
+ }
1989
+
1990
+ .p93wNKEZo5tcFcoqQsLu {
1991
+ position: relative;
1992
+ color: var(--artist-folder-bg-color);
1993
+
1994
+ svg {
1995
+ height: var(--artist-item-height);
1996
+ }
1997
+
1998
+ .EDIoZvkx8L71cjC29VBS svg {
1999
+ height: 24px;
2000
+ }
2001
+
2002
+ div {
2003
+ position: absolute;
2004
+ top: 0;
2005
+ display: flex;
2006
+ align-items: center;
2007
+ justify-content: center;
2008
+ color: var(--text-color);
2009
+ width: 100%;
2010
+ height: 100%;
2011
+ }
2012
+ }
2013
+
2014
+ .uK9euOQJZqLMy1JCBauJ .p93wNKEZo5tcFcoqQsLu {
2015
+ color: var(--artist-folder-starred-bg-color);
2016
+ filter: var(--artist-folder-starred-filter);
2017
+ }
2018
+
2019
+ .uK9euOQJZqLMy1JCBauJ .EDIoZvkx8L71cjC29VBS,
2020
+ .uK9euOQJZqLMy1JCBauJ .b9LqH0GqWQ8WmCaa4ktx {
2021
+ color: #000;
2022
+ }
2023
+
2024
+ .HZ0_7hegL7xDvnX1Vw9I {
2025
+ animation: var(--animation-text-shadow-glow);
2026
+ }
2027
+
2028
+ .sfB8p0Y7lGZmslY0UxWw {
2029
+ color: var(--queued-item-color);
2030
+ text-shadow: var(--queued-item-text-shadow);
2031
+ }
2032
+ .FM0NON48tUGevc0Mocok,
2033
+ .CEmdQRH561N9ZZS2sElY {
2034
+ display: flex;
2035
+ align-items: center;
2036
+ justify-content: center;
2037
+ color: var(--text-color);
2038
+ background-color: hsl(var(--hue-blue), 90%, 25%);
2039
+ font-size: 18px;
2040
+ }
2041
+ .l_cLCw9eRNCSyRKgXWS5 {
2042
+ display: flex;
2043
+ height: 100%;
2044
+ text-align: center;
2045
+ align-items: center;
2046
+ }
2047
+
2048
+ .Fog7IKmx1oVfPd8FU407 {
2049
+ flex: 1;
2050
+ }
2051
+
2052
+ /* adapted from https://github.com/tobiasahlin/SpinKit */
2053
+ .Cy2j9ZX2IZrQWobGUi7X {
2054
+ display: flex;
2055
+ height: 100%;
2056
+ align-items: center;
2057
+ justify-content: center;
2058
+ }
2059
+
2060
+ .dTWtSURLdyh9OV1LTnaC {
2061
+ background-color: var(--btn-bg-color);
2062
+ height: 40px;
2063
+ width: 6px;
2064
+ animation: pQ8Wi97sGo_5PlIrHfhm 0.8s infinite ease-in-out;
2065
+ margin: 0 5px;
2066
+ }
2067
+
2068
+ .L3qh5gTBMbZXjFIzwmUI {
2069
+ animation-delay: -0.7s;
2070
+ }
2071
+
2072
+ .f7Ry7aQoljxI7zOj18tU {
2073
+ animation-delay: -0.6s;
2074
+ }
2075
+
2076
+ .jZojmB6JI3Y1bkX6XnDI {
2077
+ animation-delay: -0.5s;
2078
+ }
2079
+
2080
+ .EcvP0cnG_tPw2rSbAdHh {
2081
+ animation-delay: -0.4s;
2082
+ }
2083
+
2084
+ @-webkit-keyframes pQ8Wi97sGo_5PlIrHfhm {
2085
+ 0%, 40%, 100% { -webkit-transform: scaleY(0.4) }
2086
+ 20% { -webkit-transform: scaleY(1.0) }
2087
+ }
2088
+
2089
+ @keyframes pQ8Wi97sGo_5PlIrHfhm {
2090
+ 0%, 40%, 100% {
2091
+ transform: scaleY(0.4);
2092
+ } 20% {
2093
+ transform: scaleY(1.0);
2094
+ }
2095
+ }
2096
+
2097
+ .bhZWQ2xPWPTNIX6C4F3a h1 {
2098
+ font-family: var(--font-family-custom);
2099
+ }
2100
+
2101
+ .qVDsyq0en4mmfO12Q9S6 {
2102
+ aspect-ratio: 4/3;
2103
+ margin: 0 auto;
2104
+
2105
+ img {
2106
+ border-radius: var(--border-radius);
2107
+ }
2108
+
2109
+ svg {
2110
+ color: var(--btn-bg-color);
2111
+ }
2112
+
2113
+ img,
2114
+ svg {
2115
+ width: 100%;
2116
+ height: 100%;
2117
+ }
2118
+ }
2119
+ .wmZzvQLV8SUXBxloByaI {
2120
+ --image-width: 104px;
2121
+ --queue-item-btn-size: 48px;
2122
+
2123
+ position: relative;
2124
+ /* 104px */
2125
+ height: 6.5rem;
2126
+ display: flex;
2127
+ align-items: center;
2128
+ overflow: hidden;
2129
+ background-color: hsl(var(--hue-blue), 40%, 6%);
2130
+ margin: var(--space-s) 0;
2131
+ }
2132
+
2133
+ .OcXId78BLaxBJIqdYIof {
2134
+ display: flex;
2135
+ flex: 1;
2136
+ margin: 0.5rem 0 0.5rem var(--space-s);
2137
+ overflow: hidden;
2138
+ }
2139
+
2140
+ .umnUSnD73DO3rWOYPZ9K {
2141
+ opacity: .5;
2142
+ }
2143
+
2144
+ .GacRKdveAPO6_ywV1_ca {
2145
+ position: relative;
2146
+ display: flex;
2147
+ justify-content: center;
2148
+ width: var(--image-width);
2149
+ aspect-ratio: 4 / 3;
2150
+ overflow: hidden;
2151
+
2152
+ img {
2153
+ width: 100%;
2154
+ height: 100%;
2155
+ }
2156
+ }
2157
+
2158
+ .ctOyiO7TWxvaj2cMva6s {
2159
+ position: absolute;
2160
+ bottom: 0;
2161
+ right: 0;
2162
+ background-color: rgba(0, 0, 0, 0.6);
2163
+ border-top-left-radius: var(--border-radius);
2164
+ }
2165
+
2166
+ .pCDYhCexaZe_zujCsnng {
2167
+ color: var(--color-gray-7);
2168
+ font-size: var(--font-size-s);
2169
+ padding: var(--space-xs);
2170
+ }
2171
+
2172
+ .nDkBZyovKLxzMG7K_3Tg {
2173
+ flex: 1;
2174
+ display: flex;
2175
+ flex-direction: column;
2176
+ margin-left: var(--container-padding);
2177
+ overflow: hidden;
2178
+ }
2179
+
2180
+ .Wj7Me9sY8G3TTqTAeAaj {
2181
+ flex: 1;
2182
+ }
2183
+
2184
+ .oyozFDwcV8GMOumLs906 {
2185
+ color: var(--color-gray-9);
2186
+ font-size: 1.25rem;
2187
+ }
2188
+
2189
+ .PyOIw1JanvSSiLfkRkZt {
2190
+ color: var(--color-gray-7);
2191
+ font-size: 1.125rem;
2192
+ }
2193
+
2194
+ .HEBTYqqhv5BzgHhWH7vd {
2195
+ font-size: var(--font-size-s);
2196
+ text-overflow: ellipsis;
2197
+ overflow: hidden;
2198
+ white-space: nowrap;
2199
+ color: var(--color-gray-5);
2200
+ margin-bottom: 0.25rem;
2201
+ }
2202
+
2203
+ ._LtmdT6l38fSEjxPLZod {
2204
+ color: var(--queued-item-color);
2205
+ text-shadow: var(--text-shadow-glow);
2206
+ }
2207
+
2208
+ .oyozFDwcV8GMOumLs906,
2209
+ .PyOIw1JanvSSiLfkRkZt,
2210
+ .HEBTYqqhv5BzgHhWH7vd {
2211
+ text-overflow: ellipsis;
2212
+ overflow: hidden;
2213
+ white-space: nowrap;
2214
+ }
2215
+
2216
+ /* Buttons */
2217
+ .SUdDbZdeZwQPymCmhaMA {
2218
+ button {
2219
+ position: relative;
2220
+ /* overflow: hidden; */
2221
+ width: var(--queue-item-btn-size);
2222
+ height: var(--queue-item-btn-size);
2223
+ color: var(--song-item-btn-bg-color);
2224
+ }
2225
+
2226
+ button.YmwxQ7Vy9kTAPCo00I2U {
2227
+ color: var(--song-item-btn-active-bg-color);
2228
+ filter: var(--song-item-btn-active-filter);
2229
+ }
2230
+
2231
+ button.tX8eNQUgD77rREuwXWHO {
2232
+ color: var(--btn-danger-bg-color);
2233
+ filter: var(--btn-danger-filter);
2234
+ }
2235
+
2236
+ svg {
2237
+ width: var(--queue-item-btn-size);
2238
+ height: var(--queue-item-btn-size);
2239
+ }
2240
+ }
2241
+
2242
+ .gh_SYElq5eTJHE5IZynP svg,
2243
+ ._gt_BEXlOrYwzEmK6sQ8 svg,
2244
+ .ENoEOjlwEk0jBI45f4pk svg {
2245
+ position: absolute;
2246
+ top: 50%;
2247
+ left: 50%;
2248
+ width: 60px;
2249
+ height: 60px;
2250
+ transform: translate(-50%, -50%);
2251
+ pointer-events: none;
2252
+ }
2253
+
2254
+ .ZRVZZ_1kYEKO36fznW79 {
2255
+ animation: var(--animation-btn-star);
2256
+ will-change: transform;
2257
+ }
2258
+
2259
+ /* Currently playing */
2260
+ .wmZzvQLV8SUXBxloByaI.x1y3JtPFnfVcJSd6mKkB {
2261
+ /* Added 1% tail fade (99% -> 100%) */
2262
+ background-image: linear-gradient(to right,
2263
+ hsl(var(--hue-blue), 100%, 20%) 99%,
2264
+ transparent 100%);
2265
+ background-repeat: no-repeat;
2266
+ background-size: var(--progress, 0%) 100%;
2267
+ }
2268
+
2269
+ .wmZzvQLV8SUXBxloByaI.x1y3JtPFnfVcJSd6mKkB::after {
2270
+ content: "";
2271
+ position: absolute;
2272
+ top: 0;
2273
+ left: 0;
2274
+ bottom: 0;
2275
+ right: auto;
2276
+ width: var(--progress, 0%);
2277
+ --queue-item-crawl-span: 300%;
2278
+ --queue-item-shine-width: 55vw;
2279
+ /* Tile must exceed shine width; gap factor creates transparent buffer so repeat is seamless */
2280
+ --queue-item-gap-factor: 1.5;
2281
+ --queue-item-tile-size: calc(var(--queue-item-shine-width) * var(--queue-item-gap-factor));
2282
+ /* Soften trailing edge of shine (fade last 1%) */
2283
+ -webkit-mask-image: linear-gradient(to right, #000 0%, #000 99%, rgba(0, 0, 0, 0) 100%);
2284
+ mask-image: linear-gradient(to right, #000 0%, #000 99%, rgba(0, 0, 0, 0) 100%);
2285
+ /* Slightly reduced alpha of shine for overall softness */
2286
+ background: linear-gradient(90deg,
2287
+ transparent 0%,
2288
+ transparent calc(50% - (var(--queue-item-shine-width) / 2)),
2289
+ rgba(255, 255, 255, 0.55) 50%,
2290
+ transparent calc(50% + (var(--queue-item-shine-width) / 2)),
2291
+ transparent 100%);
2292
+ /* Use the computed tile size so the shine fully fits inside one repeat */
2293
+ background-size: var(--queue-item-tile-size) 100%;
2294
+ background-repeat: repeat-x;
2295
+ animation: cWb6RjtltIZ875IxD0pA 3s linear infinite;
2296
+ will-change: background-position;
2297
+ mix-blend-mode: overlay;
2298
+ opacity: 0.85;
2299
+ }
2300
+
2301
+ .wmZzvQLV8SUXBxloByaI.x1y3JtPFnfVcJSd6mKkB.pXOty7OejiIGXdAxm6PY::after {
2302
+ animation-play-state: paused;
2303
+ }
2304
+
2305
+ @keyframes cWb6RjtltIZ875IxD0pA {
2306
+ 0% {
2307
+ background-position: 0 0;
2308
+ }
2309
+
2310
+ 100% {
2311
+ background-position: var(--queue-item-tile-size) 0;
2312
+ }
2313
+ }
2314
+ .bbUhdC2XhFqBtedX7G5x {
2315
+ animation: egvUeoIxP3c8CjTQWSwH .3s;
2316
+ }
2317
+
2318
+ .oj9sgd1_DuPZvgyJKc_3 {
2319
+ animation: zM_lTYVFPmOz9sQfvcpQ .5s;
2320
+ }
2321
+
2322
+ @keyframes egvUeoIxP3c8CjTQWSwH {
2323
+ 0% { opacity: 0; transform: scale3d(0, 0, 0); }
2324
+ 100% { opacity: 1; transform: scale3d(1, 1, 1); }
2325
+ }
2326
+
2327
+ @keyframes zM_lTYVFPmOz9sQfvcpQ {
2328
+ 0% { opacity: 1; transform: scale3d(1, 1, 1); }
2329
+ 100% { opacity: 0; transform: scale3d(0, 0, 0); }
2330
+ }
2331
+
2332
+ .SF0X5MbNRNL3euuIjCwB {
2333
+ overflow-x: hidden;
2334
+ overflow-y: auto;
2335
+ -webkit-overflow-scrolling: touch;
2336
+ }
2337
+
2338
+ .SF0X5MbNRNL3euuIjCwB h1 {
2339
+ font-family: var(--font-family-custom);
2340
+ }
2341
+