@gentomiyano/optimized-web-audio-player 0.2.2 → 0.3.0

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.
@@ -1,713 +1,1337 @@
1
- .player-compact,
2
- .player-bound-compact,
3
- .player-wide,
4
- .player-detailed,
5
- .player-podcast,
6
- .player-mini,
7
- .player-queue-panel {
8
- container-name: player-surface;
9
- container-type: inline-size;
10
- }
11
-
12
- .player-bound-compact {
13
- max-width: 480px;
14
- overflow: visible;
15
- }
16
-
17
- .player-bound-compact__main {
18
- display: grid;
19
- grid-template-areas:
20
- "play artwork metadata"
21
- "play artwork signal"
22
- "seek seek seek";
23
- grid-template-columns: auto 48px minmax(0, 1fr);
24
- align-items: center;
25
- min-width: 0;
26
- column-gap: 0.65rem;
27
- row-gap: 0.3rem;
28
- padding: 0.55rem 0.65rem;
29
- }
30
-
31
- .player-bound-compact__main[data-active="true"] {
32
- box-shadow: inset 3px 0 0 var(--player-accent);
33
- }
34
-
35
- .player-bound-compact__main > .player-play-button {
36
- grid-area: play;
37
- min-width: var(--player-hit);
38
- min-height: var(--player-hit);
39
- }
40
-
41
- .player-bound-compact__artwork {
42
- grid-area: artwork;
43
- width: 48px;
44
- height: 48px;
45
- }
46
-
47
- .player-bound-compact__main > .player-metadata {
48
- grid-area: metadata;
49
- gap: 0.05rem;
50
- }
51
-
52
- .player-bound-compact__signal {
53
- display: grid;
54
- grid-area: signal;
55
- grid-template-columns: minmax(48px, 1fr) auto;
56
- align-items: center;
57
- min-width: 0;
58
- gap: 0.4rem;
59
- }
60
-
61
- .player-bound-compact__signal .player-waveform {
62
- height: 14px;
63
- }
64
-
65
- .player-bound-compact__main > .player-seek {
66
- grid-area: seek;
67
- min-height: 24px;
68
- }
69
-
70
- .player-compact {
71
- max-width: 480px;
72
- overflow: visible;
73
- }
74
-
75
- .player-compact__main {
76
- display: grid;
77
- grid-template-areas:
78
- "play artwork metadata volume"
79
- "play artwork signal volume";
80
- grid-template-columns: auto 48px minmax(0, 1fr) auto;
81
- align-items: center;
82
- min-width: 0;
83
- column-gap: 0.65rem;
84
- row-gap: 0.18rem;
85
- padding: 0.55rem 0.65rem;
86
- }
87
-
88
- .player-compact__main > .player-play-button {
89
- grid-area: play;
90
- min-width: var(--player-hit);
91
- min-height: var(--player-hit);
92
- }
93
-
94
- .player-compact__artwork {
95
- grid-area: artwork;
96
- width: 48px;
97
- height: 48px;
98
- }
99
-
100
- .player-compact__main > .player-metadata {
101
- grid-area: metadata;
102
- gap: 0.05rem;
103
- }
104
-
105
- .player-compact .player-collection {
106
- display: none;
107
- }
108
-
109
- .player-compact .player-title {
110
- font-size: 0.82rem;
111
- }
112
-
113
- .player-compact .player-creator {
114
- font-size: 0.63rem;
115
- }
116
-
117
- .player-compact__signal {
118
- display: grid;
119
- grid-area: signal;
120
- grid-template-columns: auto minmax(48px, 1fr) auto;
121
- align-items: center;
122
- min-width: 0;
123
- gap: 0.4rem;
124
- }
125
-
126
- .player-compact__main > .player-volume-popover {
127
- grid-area: volume;
128
- }
129
-
130
- .player-compact .player-waveform {
131
- height: 14px;
132
- }
133
-
134
- .player-compact .player-status,
135
- .player-compact .player-time {
136
- font-size: 0.52rem;
137
- letter-spacing: 0.05em;
138
- }
139
-
140
- .player-compact .player-time {
141
- gap: 0.18rem;
142
- }
143
-
144
- .player-wide {
145
- max-width: 680px;
146
- }
147
-
148
- .player-wide__grid {
149
- min-width: 0;
150
- }
151
-
152
- .player-wide__header {
153
- display: grid;
154
- grid-template-columns: 96px minmax(0, 1fr);
155
- align-items: center;
156
- min-width: 0;
157
- gap: clamp(0.9rem, 3vw, 1.2rem);
158
- padding: 0.9rem 1.1rem;
159
- border-bottom: 1px solid var(--player-faint);
160
- }
161
-
162
- .player-wide__artwork {
163
- width: 96px;
164
- height: 96px;
165
- }
166
-
167
- .player-wide__identity {
168
- display: grid;
169
- min-width: 0;
170
- gap: 0.55rem;
171
- }
172
-
173
- .player-wide[data-appearance="light"] .player-wide__identity {
174
- padding: 0.65rem 0.8rem;
175
- border: 1px solid var(--player-lcd-rule);
176
- background: var(--player-lcd);
177
- }
178
-
179
- .player-wide__identity .player-title {
180
- font-size: clamp(1.05rem, 4cqi, 1.42rem);
181
- font-weight: 350;
182
- }
183
-
184
- .player-wide__content {
185
- display: grid;
186
- min-width: 0;
187
- gap: 0.35rem;
188
- padding: 0.65rem 1.1rem 0.8rem;
189
- }
190
-
191
- .player-wide .player-transport {
192
- padding-top: 0.4rem;
193
- border-top: 1px solid var(--player-faint);
194
- }
195
-
196
- .player-timeline,
197
- .player-podcast__timeline {
198
- display: grid;
199
- grid-template-rows: auto auto auto;
200
- min-width: 0;
201
- }
202
-
203
- .player-timeline > .player-waveform,
204
- .player-podcast__timeline > .player-waveform {
205
- grid-row: 1;
206
- }
207
-
208
- .player-timeline > .player-seek,
209
- .player-podcast__timeline > .player-seek {
210
- grid-row: 2;
211
- }
212
-
213
- .player-timeline > .player-wide__timeline-footer,
214
- .player-podcast__timeline > .player-time {
215
- grid-row: 3;
216
- }
217
-
218
- .player-wide .player-waveform {
219
- height: 50px;
220
- margin-block: 0;
221
- }
222
-
223
- .player-timeline .player-seek,
224
- .player-podcast__timeline .player-seek {
225
- min-height: 30px;
226
- }
227
-
228
- .player-wide__timeline-footer {
229
- display: flex;
230
- align-items: center;
231
- justify-content: space-between;
232
- min-width: 0;
233
- gap: 1.5rem;
234
- }
235
-
236
- .player-wide__timeline-footer .player-time {
237
- width: min(13rem, 42%);
238
- }
239
-
240
- .player-wide__timeline-footer .player-volume {
241
- justify-content: flex-end;
242
- }
243
-
244
- .player-detailed {
245
- max-width: 720px;
246
- }
247
-
248
- .player-detailed__display {
249
- display: grid;
250
- grid-template-columns: 170px minmax(0, 1fr) 126px;
251
- min-width: 0;
252
- border-bottom: 1px solid var(--player-rule);
253
- }
254
-
255
- .player-detailed__artwork {
256
- width: 170px;
257
- min-height: 170px;
258
- }
259
-
260
- .player-detailed__primary {
261
- display: grid;
262
- align-content: center;
263
- min-width: 0;
264
- gap: 0.25rem;
265
- padding: 0.65rem 1.2rem 0.25rem;
266
- border-right: 1px solid var(--player-faint);
267
- }
268
-
269
- .player-detailed[data-appearance="light"] .player-detailed__primary {
270
- background: var(--player-lcd);
271
- }
272
-
273
- .player-detailed__primary .player-title {
274
- font-size: clamp(1.02rem, 3.2cqi, 1.32rem);
275
- font-weight: 350;
276
- }
277
-
278
- .player-detailed__primary .player-waveform {
279
- height: 28px;
280
- }
281
-
282
- .player-detailed__primary .player-seek {
283
- min-height: 30px;
284
- }
285
-
286
- .player-detailed__numbers {
287
- display: grid;
288
- align-content: center;
289
- min-width: 0;
290
- gap: 0.55rem;
291
- padding: 0.95rem;
292
- }
293
-
294
- .player-detailed__metric {
295
- display: grid;
296
- min-width: 0;
297
- gap: 0.12rem;
298
- justify-items: end;
299
- }
300
-
301
- .player-detailed__metric-label {
302
- color: var(--player-muted);
303
- font-size: 0.5rem;
304
- letter-spacing: 0.13em;
305
- text-transform: uppercase;
306
- }
307
-
308
- .player-detailed__metric-value {
309
- color: var(--player-text);
310
- font-family: var(--player-font-digital);
311
- font-size: 0.68rem;
312
- font-variant-numeric: tabular-nums;
313
- letter-spacing: 0.09em;
314
- }
315
-
316
- .player-detailed__transport {
317
- padding: 0.4rem 1rem;
318
- border-bottom: 1px solid var(--player-rule);
319
- }
320
-
321
- .player-section-heading {
322
- display: flex;
323
- align-items: center;
324
- justify-content: space-between;
325
- min-height: 38px;
326
- border-bottom: 1px solid var(--player-faint);
327
- color: var(--player-muted);
328
- font-size: 0.67rem;
329
- letter-spacing: 0.13em;
330
- text-transform: uppercase;
331
- }
332
-
333
- .player-detailed__queue {
334
- padding: 0 1rem 0.65rem;
335
- }
336
-
337
- .player-detailed__queue ol,
338
- .player-queue-panel ol {
339
- padding: 0;
340
- margin: 0;
341
- list-style: none;
342
- }
343
-
344
- .player-detailed__queue li,
345
- .player-queue-panel li {
346
- border-bottom: 1px solid var(--player-faint);
347
- }
348
-
349
- .player-detailed__queue li:last-child,
350
- .player-queue-panel li:last-child {
351
- border-bottom: 0;
352
- }
353
-
354
- .player-detailed__queue li[data-current="true"],
355
- .player-queue-panel li[data-current="true"] {
356
- background: var(--player-active-wash);
357
- }
358
-
359
- .player-detailed__queue li[data-current="true"] .player-queue-number,
360
- .player-detailed__queue li[data-current="true"] .player-queue-title,
361
- .player-queue-panel li[data-current="true"] .player-queue-number {
362
- color: var(--player-brand);
363
- }
364
-
365
- .player-detailed__queue li[data-current="true"] .player-queue-title,
366
- .player-queue-panel li[data-current="true"] .player-queue-copy strong {
367
- font-weight: 650;
368
- }
369
-
370
- .player-detailed__queue li > button {
371
- display: grid;
372
- grid-template-columns: 2.25rem minmax(0, 1fr) auto;
373
- align-items: center;
374
- width: 100%;
375
- min-height: 38px;
376
- padding: 0 0.55rem;
377
- border: 0;
378
- background: transparent;
379
- color: inherit;
380
- text-align: left;
381
- cursor: pointer;
382
- }
383
-
384
- .player-detailed__queue li > button:hover,
385
- .player-queue-panel li > button:hover {
386
- background: var(--player-faint);
387
- }
388
-
389
- .player-detailed__queue time,
390
- .player-queue-panel time {
391
- color: var(--player-muted);
392
- font-family: var(--player-font-digital);
393
- font-size: 0.66rem;
394
- font-variant-numeric: tabular-nums;
395
- }
396
-
397
- .player-queue-title {
398
- overflow: hidden;
399
- font-size: 0.76rem;
400
- text-overflow: ellipsis;
401
- white-space: nowrap;
402
- }
403
-
404
- .player-empty {
405
- margin: 0;
406
- padding: 1.4rem 0.6rem;
407
- color: var(--player-muted);
408
- font-size: 0.8rem;
409
- }
410
-
411
- .player-podcast {
412
- max-width: 760px;
413
- }
414
-
415
- .player-podcast__header {
416
- display: grid;
417
- grid-template-columns: 112px minmax(0, 1fr) auto;
418
- align-items: center;
419
- min-width: 0;
420
- gap: clamp(1rem, 4vw, 1.6rem);
421
- padding: 1.15rem;
422
- border-bottom: 1px solid var(--player-faint);
423
- }
424
-
425
- .player-podcast__artwork {
426
- width: 112px;
427
- height: 112px;
428
- }
429
-
430
- .player-podcast__header .player-title {
431
- font-size: clamp(1.05rem, 3.6cqi, 1.4rem);
432
- font-weight: 350;
433
- }
434
-
435
- .player-podcast[data-appearance="light"]
436
- .player-podcast__header
437
- > .player-metadata {
438
- padding: 0.65rem 0.8rem;
439
- border: 1px solid var(--player-lcd-rule);
440
- background: var(--player-lcd);
441
- }
442
-
443
- .player-podcast__transport {
444
- display: flex;
445
- align-items: center;
446
- justify-content: center;
447
- gap: clamp(0.15rem, 2vw, 1rem);
448
- padding: 0.45rem 1rem;
449
- border-top: 1px solid var(--player-rule);
450
- }
451
-
452
- .player-podcast__timeline {
453
- padding: 0.75rem 1.15rem 1.1rem;
454
- }
455
-
456
- .player-podcast__timeline .player-waveform {
457
- height: 60px;
458
- }
459
-
460
- .player-mini {
461
- max-width: 100%;
462
- overflow: visible;
463
- }
464
-
465
- .player-mini__main {
466
- display: grid;
467
- grid-template-columns: 48px minmax(120px, 1fr) auto auto minmax(130px, 0.65fr);
468
- align-items: center;
469
- min-width: 0;
470
- gap: 0.55rem;
471
- padding: 0.4rem 0.65rem;
472
- }
473
-
474
- .player-mini__artwork {
475
- width: 48px;
476
- height: 48px;
477
- }
478
-
479
- .player-mini__controls {
480
- display: flex;
481
- align-items: center;
482
- gap: 0;
483
- }
484
-
485
- .player-mini__timeline {
486
- display: grid;
487
- min-width: 0;
488
- }
489
-
490
- .player-mini__timeline .player-seek {
491
- min-height: 24px;
492
- }
493
-
494
- .player-queue-panel {
495
- max-width: 460px;
496
- }
497
-
498
- .player-queue-panel > header {
499
- display: grid;
500
- grid-template-columns: minmax(0, 1fr) auto auto;
501
- align-items: center;
502
- min-height: 60px;
503
- padding: 0.5rem 0.65rem 0.5rem 1rem;
504
- border-bottom: 1px solid var(--player-rule);
505
- }
506
-
507
- .player-queue-panel h2 {
508
- margin: 0.12rem 0 0;
509
- overflow: hidden;
510
- font-size: 0.92rem;
511
- font-weight: 600;
512
- text-overflow: ellipsis;
513
- white-space: nowrap;
514
- }
515
-
516
- .player-queue-panel li > button {
517
- display: grid;
518
- grid-template-columns: 2.3rem minmax(0, 1fr) auto;
519
- align-items: center;
520
- width: 100%;
521
- min-height: 48px;
522
- padding: 0.3rem 0.8rem 0.3rem 0.65rem;
523
- border: 0;
524
- background: transparent;
525
- color: inherit;
526
- text-align: left;
527
- cursor: pointer;
528
- }
529
-
530
- .player-queue-copy {
531
- display: grid;
532
- min-width: 0;
533
- gap: 0.08rem;
534
- }
535
-
536
- .player-queue-copy strong,
537
- .player-queue-copy small {
538
- overflow: hidden;
539
- text-overflow: ellipsis;
540
- white-space: nowrap;
541
- }
542
-
543
- .player-queue-copy strong {
544
- font-size: 0.78rem;
545
- font-weight: 540;
546
- }
547
-
548
- .player-queue-copy small {
549
- color: var(--player-muted);
550
- font-size: 0.66rem;
551
- }
552
-
553
- .player-transport .player-icon-button:not(.player-play-button),
554
- .player-podcast__transport .player-icon-button:not(.player-play-button) {
555
- color: var(--player-muted);
556
- }
557
-
558
- .player-transport .player-icon-button[aria-pressed="true"],
559
- .player-transport .player-icon-button:hover:not(:disabled),
560
- .player-podcast__transport .player-icon-button:hover:not(:disabled) {
561
- color: var(--player-brand);
562
- }
563
-
564
- @container player-surface (max-width: 680px) {
565
- .player-detailed__display {
566
- grid-template-columns: 104px minmax(0, 1fr);
567
- }
568
-
569
- .player-detailed__artwork {
570
- width: 104px;
571
- height: 104px;
572
- min-height: 0;
573
- align-self: start;
574
- }
575
-
576
- .player-detailed__primary {
577
- padding: 0.75rem;
578
- border-right: 0;
579
- }
580
-
581
- .player-detailed__primary .player-waveform {
582
- height: 24px;
583
- }
584
-
585
- .player-detailed__numbers {
586
- grid-column: 1 / -1;
587
- grid-template-columns: repeat(4, minmax(0, 1fr));
588
- align-items: center;
589
- padding: 0.5rem 0.75rem;
590
- border-top: 1px solid var(--player-faint);
591
- }
592
-
593
- .player-detailed__metric {
594
- justify-items: start;
595
- }
596
-
597
- .player-detailed__transport {
598
- padding-inline: 0.5rem;
599
- }
600
-
601
- .player-detailed__transport .player-transport {
602
- width: 100%;
603
- justify-content: space-between;
604
- gap: 0;
605
- }
606
-
607
- .player-podcast__header {
608
- grid-template-columns: 86px minmax(0, 1fr);
609
- gap: 0.85rem;
610
- padding: 0.85rem;
611
- }
612
-
613
- .player-podcast__artwork {
614
- width: 86px;
615
- height: 86px;
616
- }
617
-
618
- .player-podcast__header > .player-status {
619
- grid-column: 2;
620
- }
621
-
622
- .player-podcast__transport {
623
- gap: 0;
624
- padding-inline: 0.3rem;
625
- }
626
-
627
- .player-mini__main {
628
- grid-template-columns: 46px minmax(0, 1fr) auto;
629
- }
630
-
631
- .player-mini__controls > .player-volume-popover {
632
- display: none;
633
- }
634
-
635
- .player-mini__artwork {
636
- width: 46px;
637
- height: 46px;
638
- }
639
-
640
- .player-mini__main > .player-status,
641
- .player-mini__timeline {
642
- display: none;
643
- }
644
- }
645
-
646
- @container player-surface (max-width: 440px) {
647
- .player-compact__main {
648
- grid-template-areas:
649
- "play artwork metadata"
650
- "play artwork signal";
651
- grid-template-columns: auto 48px minmax(0, 1fr);
652
- }
653
-
654
- .player-compact__main > .player-volume-popover {
655
- display: none;
656
- }
657
-
658
- .player-compact__signal {
659
- grid-template-columns: minmax(48px, 1fr) auto;
660
- }
661
-
662
- .player-compact .player-status {
663
- display: none;
664
- }
665
-
666
- .player-wide__header {
667
- grid-template-columns: 78px minmax(0, 1fr);
668
- gap: 0.85rem;
669
- padding: 0.85rem;
670
- }
671
-
672
- .player-wide__artwork {
673
- width: 78px;
674
- height: 78px;
675
- }
676
-
677
- .player-wide__identity {
678
- gap: 0.55rem;
679
- }
680
-
681
- .player-wide__content {
682
- padding: 0.7rem 0.85rem 1rem;
683
- }
684
-
685
- .player-wide__timeline-footer .player-volume {
686
- display: none;
687
- }
688
-
689
- .player-wide__timeline-footer .player-time {
690
- width: 100%;
691
- }
692
-
693
- .player-transport {
694
- justify-content: space-between;
695
- }
696
-
697
- .player-detailed__queue {
698
- padding-inline: 0.5rem;
699
- }
700
-
701
- .player-detailed__transport {
702
- padding-inline: 0.25rem;
703
- }
704
-
705
- .player-queue-panel > header {
706
- padding-left: 0.65rem;
707
- }
708
-
709
- .player-queue-panel li > button {
710
- grid-template-columns: 1.9rem minmax(0, 1fr) auto;
711
- padding-inline: 0.45rem;
712
- }
713
- }
1
+ .player-compact,
2
+ .player-wide,
3
+ .player-detailed,
4
+ .player-podcast,
5
+ .player-content,
6
+ .player-mini,
7
+ .player-queue-panel {
8
+ container-name: player-surface;
9
+ container-type: inline-size;
10
+ }
11
+
12
+ .player-content {
13
+ max-width: 760px;
14
+ }
15
+
16
+ .player-release {
17
+ max-width: 980px;
18
+ }
19
+
20
+ .player-program {
21
+ max-width: 980px;
22
+ }
23
+
24
+ .player-release__hero {
25
+ display: grid;
26
+ grid-template-columns: minmax(280px, 0.92fr) minmax(320px, 1.08fr);
27
+ align-items: start;
28
+ gap: clamp(1.5rem, 4cqi, 3.2rem);
29
+ padding: clamp(1.2rem, 3.5cqi, 2.4rem);
30
+ border-bottom: 1px solid var(--player-rule);
31
+ }
32
+
33
+ .player-release .player-release__artwork {
34
+ width: 100%;
35
+ height: auto;
36
+ aspect-ratio: 1;
37
+ box-shadow: 0 20px 48px rgb(0 0 0 / 0.34);
38
+ }
39
+
40
+ .player-release__detail {
41
+ display: grid;
42
+ align-self: stretch;
43
+ min-width: 0;
44
+ gap: 1rem;
45
+ }
46
+
47
+ .player-release__identity {
48
+ display: grid;
49
+ min-width: 0;
50
+ gap: 0.28rem;
51
+ }
52
+
53
+ .player-release__identity h2,
54
+ .player-release__identity p {
55
+ min-width: 0;
56
+ margin: 0;
57
+ }
58
+
59
+ .player-release__identity h2 {
60
+ font-family: var(--player-font-title);
61
+ font-size: clamp(2rem, 6.4cqi, 4rem);
62
+ font-stretch: semi-condensed;
63
+ font-weight: 350;
64
+ font-variation-settings: "wght" 340, "wdth" 88;
65
+ letter-spacing: -0.025em;
66
+ line-height: 0.96;
67
+ }
68
+
69
+ .player-release__artist {
70
+ color: var(--player-text);
71
+ font-size: clamp(1rem, 2.2cqi, 1.35rem);
72
+ font-weight: 450;
73
+ }
74
+
75
+ .player-release__facts {
76
+ display: flex;
77
+ flex-wrap: wrap;
78
+ gap: 0.7rem 1.5rem;
79
+ margin: 0.65rem 0 0;
80
+ }
81
+
82
+ .player-release__facts > div {
83
+ display: grid;
84
+ gap: 0.12rem;
85
+ }
86
+
87
+ .player-release__facts dt,
88
+ .player-release__credits > span,
89
+ .player-release__now-playing > span {
90
+ color: var(--player-muted);
91
+ font-family: var(--player-font-digital);
92
+ font-size: 0.58rem;
93
+ letter-spacing: 0.11em;
94
+ text-transform: uppercase;
95
+ }
96
+
97
+ .player-release__facts dd {
98
+ margin: 0;
99
+ font-size: 0.78rem;
100
+ }
101
+
102
+ .player-release__notes {
103
+ max-width: 44rem;
104
+ margin: 0;
105
+ color: var(--player-muted);
106
+ font-size: 0.78rem;
107
+ line-height: 1.55;
108
+ }
109
+
110
+ .player-release__credits {
111
+ display: grid;
112
+ gap: 0.35rem;
113
+ }
114
+
115
+ .player-release__credits ul {
116
+ display: grid;
117
+ gap: 0.18rem;
118
+ padding: 0;
119
+ margin: 0;
120
+ color: var(--player-muted);
121
+ font-size: 0.68rem;
122
+ list-style: none;
123
+ }
124
+
125
+ .player-release__playback {
126
+ display: grid;
127
+ min-width: 0;
128
+ gap: 0.65rem;
129
+ padding: 0.9rem 0 0 !important;
130
+ border-top: 1px solid var(--player-rule);
131
+ }
132
+
133
+ .player-release__now-playing {
134
+ display: grid;
135
+ min-width: 0;
136
+ gap: 0.15rem;
137
+ }
138
+
139
+ .player-release__now-playing strong {
140
+ overflow: hidden;
141
+ font-family: var(--player-font-title);
142
+ font-size: clamp(1rem, 2.6cqi, 1.45rem);
143
+ font-weight: 400;
144
+ text-overflow: ellipsis;
145
+ white-space: nowrap;
146
+ }
147
+
148
+ .player-release__signal {
149
+ display: grid;
150
+ min-width: 0;
151
+ grid-template-rows: auto auto auto;
152
+ }
153
+
154
+ .player-release__signal .player-waveform {
155
+ height: clamp(74px, 12cqi, 112px);
156
+ }
157
+
158
+ .player-release__signal .player-seek {
159
+ min-height: 34px;
160
+ }
161
+
162
+ .player-release__signal .player-time {
163
+ justify-self: end;
164
+ }
165
+
166
+ .player-release__playback > .player-content__transport {
167
+ justify-content: flex-start;
168
+ min-height: var(--player-hit);
169
+ }
170
+
171
+ .player-release__tracklist {
172
+ padding: 0 clamp(1rem, 3.5cqi, 2.4rem) 1.2rem !important;
173
+ }
174
+
175
+ .player-release__tracklist .player-section-heading {
176
+ min-height: 52px;
177
+ }
178
+
179
+ .player-content__header {
180
+ display: grid;
181
+ grid-template-columns: 112px minmax(0, 1fr) auto;
182
+ align-items: center;
183
+ min-width: 0;
184
+ gap: clamp(0.8rem, 3vw, 1.4rem);
185
+ padding: 1rem;
186
+ border-bottom: 1px solid var(--player-rule);
187
+ }
188
+
189
+ .player-content__artwork {
190
+ display: block;
191
+ width: 112px;
192
+ height: 112px;
193
+ overflow: hidden;
194
+ background: var(--player-panel-soft);
195
+ }
196
+
197
+ .player-content__artwork img {
198
+ display: block;
199
+ width: 100%;
200
+ height: 100%;
201
+ object-fit: cover;
202
+ }
203
+
204
+ .player-content__heading {
205
+ display: grid;
206
+ min-width: 0;
207
+ gap: 0.2rem;
208
+ }
209
+
210
+ .player-content__heading h2,
211
+ .player-content__heading p {
212
+ min-width: 0;
213
+ margin: 0;
214
+ overflow: hidden;
215
+ text-overflow: ellipsis;
216
+ white-space: nowrap;
217
+ }
218
+
219
+ .player-content__heading h2 {
220
+ font-family: var(--player-font-title);
221
+ font-size: clamp(1.1rem, 4cqi, 1.6rem);
222
+ font-weight: 350;
223
+ }
224
+
225
+ .player-content__heading p {
226
+ color: var(--player-muted);
227
+ font-size: 0.78rem;
228
+ }
229
+
230
+ .player-content__transport,
231
+ .player-content__skip-controls {
232
+ display: flex;
233
+ align-items: center;
234
+ justify-content: center;
235
+ }
236
+
237
+ .player-content__timeline {
238
+ display: grid;
239
+ gap: 0.25rem;
240
+ padding: 0.75rem 1rem;
241
+ border-bottom: 1px solid var(--player-faint);
242
+ }
243
+
244
+ .player-content__skip-controls {
245
+ padding: 0 1rem 0.5rem;
246
+ border-bottom: 1px solid var(--player-faint);
247
+ }
248
+
249
+ .player-content section {
250
+ padding: 0 1rem 0.65rem;
251
+ }
252
+
253
+ .player-content__list,
254
+ .player-content__chapters {
255
+ padding: 0;
256
+ margin: 0;
257
+ list-style: none;
258
+ }
259
+
260
+ .player-content__list > li {
261
+ border-bottom: 1px solid var(--player-faint);
262
+ }
263
+
264
+ .player-content__list > li:last-child {
265
+ border-bottom: 0;
266
+ }
267
+
268
+ .player-content__list > li[data-current="true"] {
269
+ background: var(--player-active-wash);
270
+ }
271
+
272
+ .player-content__list > li > button {
273
+ display: grid;
274
+ grid-template-columns: 2.25rem minmax(0, 1fr) auto;
275
+ align-items: center;
276
+ width: 100%;
277
+ min-height: var(--player-hit);
278
+ padding: 0.35rem 0.45rem;
279
+ border: 0;
280
+ background: transparent;
281
+ color: var(--player-text);
282
+ text-align: left;
283
+ cursor: pointer;
284
+ }
285
+
286
+ .player-content__list > li > button:disabled {
287
+ cursor: not-allowed;
288
+ opacity: 0.58;
289
+ }
290
+
291
+ .player-content__list > li > button:hover:not(:disabled) {
292
+ background: var(--player-faint);
293
+ }
294
+
295
+ .player-content__entry-copy {
296
+ display: grid;
297
+ min-width: 0;
298
+ gap: 0.08rem;
299
+ }
300
+
301
+ .player-content__entry-copy strong,
302
+ .player-content__entry-copy small {
303
+ overflow: hidden;
304
+ text-overflow: ellipsis;
305
+ white-space: nowrap;
306
+ }
307
+
308
+ .player-content__entry-copy strong {
309
+ font-size: 0.82rem;
310
+ font-weight: 500;
311
+ }
312
+
313
+ .player-content__entry-copy small,
314
+ .player-content__list time,
315
+ .player-content__chapters time {
316
+ color: var(--player-muted);
317
+ font-family: var(--player-font-digital);
318
+ font-size: 0.62rem;
319
+ }
320
+
321
+ .player-content__chapters {
322
+ padding: 0.1rem 0.45rem 0.55rem 2.7rem;
323
+ }
324
+
325
+ .player-content__chapters button {
326
+ display: grid;
327
+ grid-template-columns: 4rem minmax(0, 1fr);
328
+ width: 100%;
329
+ min-height: var(--player-hit);
330
+ align-items: center;
331
+ padding: 0 0.45rem;
332
+ border: 0;
333
+ background: transparent;
334
+ color: var(--player-text);
335
+ text-align: left;
336
+ cursor: pointer;
337
+ }
338
+
339
+ .player-content__chapters button[aria-current="true"] {
340
+ color: var(--player-brand);
341
+ }
342
+
343
+ .player-program__hero {
344
+ display: grid;
345
+ grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
346
+ align-items: center;
347
+ gap: clamp(1.5rem, 5cqi, 3.8rem);
348
+ padding: clamp(1.2rem, 4cqi, 2.8rem);
349
+ border-bottom: 1px solid var(--player-rule);
350
+ }
351
+
352
+ .player-program__artwork {
353
+ width: 100%;
354
+ height: auto;
355
+ aspect-ratio: 1;
356
+ border-radius: 0.35rem;
357
+ box-shadow: 0 20px 48px rgb(0 0 0 / 0.3);
358
+ }
359
+
360
+ .player-program__detail {
361
+ display: grid;
362
+ min-width: 0;
363
+ gap: 0.85rem;
364
+ }
365
+
366
+ .player-program__detail h2 {
367
+ max-width: 13ch;
368
+ margin: 0;
369
+ font-family: var(--player-font-title);
370
+ font-size: clamp(2.4rem, 7.4cqi, 5rem);
371
+ font-stretch: semi-condensed;
372
+ font-weight: 340;
373
+ font-variation-settings: "wght" 340, "wdth" 88;
374
+ letter-spacing: -0.035em;
375
+ line-height: 0.92;
376
+ }
377
+
378
+ .player-program__description,
379
+ .player-program__episode-heading > p {
380
+ max-width: 48rem;
381
+ margin: 0;
382
+ color: var(--player-muted);
383
+ font-size: 0.82rem;
384
+ line-height: 1.62;
385
+ }
386
+
387
+ .player-program__credits {
388
+ display: grid;
389
+ grid-template-columns: repeat(2, minmax(0, 1fr));
390
+ gap: 0.65rem 1.4rem;
391
+ margin: 0;
392
+ }
393
+
394
+ .player-program__credits > div,
395
+ .player-program__episode-facts > div {
396
+ display: grid;
397
+ min-width: 0;
398
+ gap: 0.16rem;
399
+ }
400
+
401
+ .player-program__credits dt,
402
+ .player-program__episode-facts dt {
403
+ color: var(--player-muted);
404
+ font-family: var(--player-font-digital);
405
+ font-size: 0.58rem;
406
+ letter-spacing: 0.11em;
407
+ text-transform: uppercase;
408
+ }
409
+
410
+ .player-program__credits dd,
411
+ .player-program__episode-facts dd {
412
+ margin: 0;
413
+ font-size: 0.72rem;
414
+ line-height: 1.45;
415
+ }
416
+
417
+ .player-program__episode {
418
+ display: grid;
419
+ grid-template-columns: minmax(0, 0.75fr) minmax(320px, 1.25fr);
420
+ gap: clamp(1.2rem, 4cqi, 2.8rem);
421
+ padding: clamp(1.3rem, 4cqi, 2.5rem) !important;
422
+ border-bottom: 1px solid var(--player-rule);
423
+ background: var(--player-panel-soft);
424
+ }
425
+
426
+ .player-program__episode-heading {
427
+ display: grid;
428
+ align-content: start;
429
+ min-width: 0;
430
+ gap: 0.65rem;
431
+ }
432
+
433
+ .player-program__episode-heading h3 {
434
+ margin: 0;
435
+ font-family: var(--player-font-title);
436
+ font-size: clamp(1.65rem, 4.2cqi, 2.8rem);
437
+ font-weight: 380;
438
+ letter-spacing: -0.02em;
439
+ line-height: 1.02;
440
+ }
441
+
442
+ .player-program__episode-facts {
443
+ display: flex;
444
+ flex-wrap: wrap;
445
+ gap: 0.55rem 1.5rem;
446
+ margin: 0;
447
+ }
448
+
449
+ .player-program__playback {
450
+ display: grid;
451
+ min-width: 0;
452
+ align-content: start;
453
+ gap: 0.7rem;
454
+ }
455
+
456
+ .player-program__signal {
457
+ display: grid;
458
+ min-width: 0;
459
+ grid-template-rows: auto auto auto;
460
+ }
461
+
462
+ .player-program__signal .player-waveform {
463
+ height: clamp(100px, 15cqi, 138px);
464
+ }
465
+
466
+ .player-program__signal .player-seek {
467
+ min-height: 36px;
468
+ }
469
+
470
+ .player-program__signal .player-time {
471
+ justify-self: end;
472
+ }
473
+
474
+ .player-program__transport-row {
475
+ display: flex;
476
+ align-items: center;
477
+ justify-content: space-between;
478
+ gap: 1rem;
479
+ min-height: var(--player-hit);
480
+ }
481
+
482
+ .player-program__transport-row > .player-content__transport,
483
+ .player-program__skip-controls {
484
+ display: flex;
485
+ align-items: center;
486
+ }
487
+
488
+ .player-program__chapters {
489
+ grid-column: 1 / -1;
490
+ padding-top: 0.35rem;
491
+ border-top: 1px solid var(--player-rule);
492
+ }
493
+
494
+ .player-program__chapters ol {
495
+ display: grid;
496
+ grid-template-columns: repeat(2, minmax(0, 1fr));
497
+ gap: 0.35rem;
498
+ padding: 0;
499
+ margin: 0;
500
+ list-style: none;
501
+ }
502
+
503
+ .player-program__chapters li {
504
+ min-width: 0;
505
+ }
506
+
507
+ .player-program__chapters li > button {
508
+ display: grid;
509
+ grid-template-columns: 3.5rem minmax(0, 1fr);
510
+ align-items: center;
511
+ width: 100%;
512
+ min-height: var(--player-hit);
513
+ padding: 0.4rem 0.65rem;
514
+ border: 1px solid var(--player-faint);
515
+ background: transparent;
516
+ color: var(--player-text);
517
+ text-align: left;
518
+ cursor: pointer;
519
+ }
520
+
521
+ .player-program__chapters li > button:hover,
522
+ .player-program__chapters li > button[aria-current="true"] {
523
+ border-color: var(--player-brand);
524
+ background: var(--player-active-wash);
525
+ }
526
+
527
+ .player-program__chapters time {
528
+ color: var(--player-brand);
529
+ font-family: var(--player-font-digital);
530
+ font-size: 0.64rem;
531
+ }
532
+
533
+ .player-program__chapters li span {
534
+ overflow: hidden;
535
+ font-size: 0.76rem;
536
+ text-overflow: ellipsis;
537
+ white-space: nowrap;
538
+ }
539
+
540
+ .player-program__chapters-toggle {
541
+ min-height: var(--player-hit);
542
+ padding: 0 0.2rem;
543
+ border: 0;
544
+ background: transparent;
545
+ color: var(--player-brand);
546
+ font-family: var(--player-font-digital);
547
+ font-size: 0.62rem;
548
+ letter-spacing: 0.04em;
549
+ cursor: pointer;
550
+ }
551
+
552
+ .player-program__episode-list {
553
+ padding: 0 clamp(1rem, 4cqi, 2.5rem) 1.2rem !important;
554
+ }
555
+
556
+ .player-program__episode-list .player-section-heading {
557
+ min-height: 56px;
558
+ }
559
+
560
+ @container player-surface (max-width: 560px) {
561
+ .player-content__header {
562
+ grid-template-columns: 76px minmax(0, 1fr);
563
+ padding: 0.75rem;
564
+ }
565
+
566
+ .player-content__artwork {
567
+ width: 76px;
568
+ height: 76px;
569
+ }
570
+
571
+ .player-content__header > .player-content__transport {
572
+ grid-column: 1 / -1;
573
+ border-top: 1px solid var(--player-faint);
574
+ }
575
+
576
+ .player-content section {
577
+ padding-inline: 0.5rem;
578
+ }
579
+
580
+ .player-content__list > li > button {
581
+ grid-template-columns: 2rem minmax(0, 1fr) auto;
582
+ }
583
+
584
+ .player-content__chapters {
585
+ padding-left: 2rem;
586
+ }
587
+ }
588
+
589
+ @container player-surface (max-width: 760px) {
590
+ .player-release__hero {
591
+ grid-template-columns: minmax(0, 1fr);
592
+ gap: 1.4rem;
593
+ padding: 1rem;
594
+ }
595
+
596
+ .player-release__artwork {
597
+ width: min(100%, 560px);
598
+ justify-self: center;
599
+ }
600
+
601
+ .player-release__identity h2 {
602
+ font-size: clamp(2.25rem, 12cqi, 4.5rem);
603
+ }
604
+
605
+ .player-release__artist {
606
+ font-size: 1.05rem;
607
+ }
608
+
609
+ .player-release__signal .player-waveform {
610
+ height: clamp(86px, 24cqi, 132px);
611
+ }
612
+
613
+ .player-release__tracklist {
614
+ padding-inline: 0.65rem !important;
615
+ }
616
+
617
+ .player-program__hero {
618
+ grid-template-columns: minmax(0, 1fr);
619
+ gap: 1.4rem;
620
+ padding: 1rem;
621
+ }
622
+
623
+ .player-program__artwork {
624
+ width: min(78%, 420px);
625
+ height: auto;
626
+ justify-self: center;
627
+ }
628
+
629
+ .player-program__detail h2 {
630
+ max-width: none;
631
+ font-size: clamp(2.4rem, 13cqi, 4.4rem);
632
+ }
633
+
634
+ .player-program__episode {
635
+ grid-template-columns: minmax(0, 1fr);
636
+ gap: 1.25rem;
637
+ padding: 1rem !important;
638
+ }
639
+
640
+ .player-program__signal .player-waveform {
641
+ height: clamp(106px, 27cqi, 142px);
642
+ }
643
+
644
+ .player-program__chapters {
645
+ grid-column: 1;
646
+ }
647
+
648
+ .player-program__chapters ol {
649
+ grid-template-columns: minmax(0, 1fr);
650
+ }
651
+
652
+ .player-program__episode-list {
653
+ padding-inline: 0.65rem !important;
654
+ }
655
+ }
656
+
657
+ .player-compact {
658
+ max-width: 480px;
659
+ overflow: visible;
660
+ }
661
+
662
+ .player-compact__main {
663
+ display: grid;
664
+ grid-template-areas:
665
+ "play artwork metadata volume"
666
+ "play artwork signal volume";
667
+ grid-template-columns: auto 48px minmax(0, 1fr) auto;
668
+ align-items: center;
669
+ min-width: 0;
670
+ column-gap: 0.65rem;
671
+ row-gap: 0.18rem;
672
+ padding: 0.55rem 0.65rem;
673
+ }
674
+
675
+ .player-compact__main > .player-play-button {
676
+ grid-area: play;
677
+ min-width: var(--player-hit);
678
+ min-height: var(--player-hit);
679
+ }
680
+
681
+ .player-compact__main[data-has-trailing-control="false"] {
682
+ grid-template-areas:
683
+ "play artwork metadata"
684
+ "play artwork signal";
685
+ grid-template-columns: auto 48px minmax(0, 1fr);
686
+ }
687
+
688
+ .player-compact__artwork {
689
+ grid-area: artwork;
690
+ width: 48px;
691
+ height: 48px;
692
+ }
693
+
694
+ .player-compact__main > .player-metadata {
695
+ grid-area: metadata;
696
+ gap: 0.05rem;
697
+ }
698
+
699
+ .player-compact .player-collection {
700
+ display: none;
701
+ }
702
+
703
+ .player-compact .player-title {
704
+ font-size: 0.82rem;
705
+ }
706
+
707
+ .player-compact .player-creator {
708
+ font-size: 0.63rem;
709
+ }
710
+
711
+ .player-compact__signal {
712
+ display: grid;
713
+ grid-area: signal;
714
+ grid-template-columns: auto minmax(48px, 1fr) auto;
715
+ align-items: center;
716
+ min-width: 0;
717
+ gap: 0.4rem;
718
+ }
719
+
720
+ .player-compact__main[data-has-status="false"] .player-compact__signal {
721
+ grid-template-columns: minmax(48px, 1fr) auto;
722
+ }
723
+
724
+ .player-compact__scrubber {
725
+ position: relative;
726
+ display: grid;
727
+ min-width: 48px;
728
+ align-items: center;
729
+ }
730
+
731
+ .player-compact__scrubber > * {
732
+ grid-area: 1 / 1;
733
+ }
734
+
735
+ .player-compact__scrubber > .player-seek {
736
+ position: absolute;
737
+ inset: -8px 0;
738
+ min-height: 30px;
739
+ }
740
+
741
+ .player-compact__scrubber > .player-seek::before,
742
+ .player-compact__scrubber > .player-seek > .player-seek__progress {
743
+ opacity: 0;
744
+ }
745
+
746
+ .player-compact__scrubber > .player-seek input {
747
+ height: 30px;
748
+ }
749
+
750
+ .player-compact__main > .player-volume-popover {
751
+ grid-area: volume;
752
+ }
753
+
754
+ .player-compact .player-waveform {
755
+ height: 14px;
756
+ }
757
+
758
+ .player-compact .player-status,
759
+ .player-compact .player-time {
760
+ font-size: 0.52rem;
761
+ letter-spacing: 0.05em;
762
+ }
763
+
764
+ .player-compact .player-time {
765
+ gap: 0.18rem;
766
+ }
767
+
768
+ .player-wide {
769
+ max-width: 680px;
770
+ }
771
+
772
+ .player-wide__grid {
773
+ min-width: 0;
774
+ }
775
+
776
+ .player-wide__header {
777
+ display: grid;
778
+ grid-template-columns: 96px minmax(0, 1fr);
779
+ align-items: center;
780
+ min-width: 0;
781
+ gap: clamp(0.9rem, 3vw, 1.2rem);
782
+ padding: 0.9rem 1.1rem;
783
+ border-bottom: 1px solid var(--player-faint);
784
+ }
785
+
786
+ .player-wide__artwork {
787
+ width: 96px;
788
+ height: 96px;
789
+ }
790
+
791
+ .player-wide__identity {
792
+ display: grid;
793
+ min-width: 0;
794
+ gap: 0.55rem;
795
+ }
796
+
797
+ .player-wide[data-appearance="light"] .player-wide__identity {
798
+ padding: 0.65rem 0.8rem;
799
+ border: 1px solid var(--player-lcd-rule);
800
+ background: var(--player-lcd);
801
+ }
802
+
803
+ .player-wide__identity .player-title {
804
+ font-size: clamp(1.05rem, 4cqi, 1.42rem);
805
+ font-weight: 350;
806
+ }
807
+
808
+ .player-wide__content {
809
+ display: grid;
810
+ min-width: 0;
811
+ gap: 0.35rem;
812
+ padding: 0.65rem 1.1rem 0.8rem;
813
+ }
814
+
815
+ .player-wide .player-transport {
816
+ padding-top: 0.4rem;
817
+ border-top: 1px solid var(--player-faint);
818
+ }
819
+
820
+ .player-timeline,
821
+ .player-podcast__timeline {
822
+ display: grid;
823
+ grid-template-rows: auto auto auto;
824
+ min-width: 0;
825
+ }
826
+
827
+ .player-timeline > .player-waveform,
828
+ .player-podcast__timeline > .player-waveform {
829
+ grid-row: 1;
830
+ }
831
+
832
+ .player-timeline > .player-seek,
833
+ .player-podcast__timeline > .player-seek {
834
+ grid-row: 2;
835
+ }
836
+
837
+ .player-timeline > .player-wide__timeline-footer,
838
+ .player-podcast__timeline > .player-time {
839
+ grid-row: 3;
840
+ }
841
+
842
+ .player-wide .player-waveform {
843
+ height: 50px;
844
+ margin-block: 0;
845
+ }
846
+
847
+ .player-timeline .player-seek,
848
+ .player-podcast__timeline .player-seek {
849
+ min-height: 30px;
850
+ }
851
+
852
+ .player-wide__timeline-footer {
853
+ display: flex;
854
+ align-items: center;
855
+ justify-content: space-between;
856
+ min-width: 0;
857
+ gap: 1.5rem;
858
+ }
859
+
860
+ .player-wide__timeline-footer .player-time {
861
+ width: min(13rem, 42%);
862
+ }
863
+
864
+ .player-wide__timeline-footer .player-volume {
865
+ justify-content: flex-end;
866
+ }
867
+
868
+ .player-detailed {
869
+ max-width: 720px;
870
+ }
871
+
872
+ .player-detailed__display {
873
+ display: grid;
874
+ grid-template-columns: 170px minmax(0, 1fr) 126px;
875
+ min-width: 0;
876
+ border-bottom: 1px solid var(--player-rule);
877
+ }
878
+
879
+ .player-detailed__artwork {
880
+ width: 170px;
881
+ min-height: 170px;
882
+ }
883
+
884
+ .player-detailed__primary {
885
+ display: grid;
886
+ align-content: center;
887
+ min-width: 0;
888
+ gap: 0.25rem;
889
+ padding: 0.65rem 1.2rem 0.25rem;
890
+ border-right: 1px solid var(--player-faint);
891
+ }
892
+
893
+ .player-detailed[data-appearance="light"] .player-detailed__primary {
894
+ background: var(--player-lcd);
895
+ }
896
+
897
+ .player-detailed__primary .player-title {
898
+ font-size: clamp(1.02rem, 3.2cqi, 1.32rem);
899
+ font-weight: 350;
900
+ }
901
+
902
+ .player-detailed__primary .player-waveform {
903
+ height: 28px;
904
+ }
905
+
906
+ .player-detailed__primary .player-seek {
907
+ min-height: 30px;
908
+ }
909
+
910
+ .player-detailed__numbers {
911
+ display: grid;
912
+ align-content: center;
913
+ min-width: 0;
914
+ gap: 0.55rem;
915
+ padding: 0.95rem;
916
+ }
917
+
918
+ .player-detailed__metric {
919
+ display: grid;
920
+ min-width: 0;
921
+ gap: 0.12rem;
922
+ justify-items: end;
923
+ }
924
+
925
+ .player-detailed__metric-label {
926
+ color: var(--player-muted);
927
+ font-size: 0.5rem;
928
+ letter-spacing: 0.13em;
929
+ text-transform: uppercase;
930
+ }
931
+
932
+ .player-detailed__metric-value {
933
+ color: var(--player-text);
934
+ font-family: var(--player-font-digital);
935
+ font-size: 0.68rem;
936
+ font-variant-numeric: tabular-nums;
937
+ letter-spacing: 0.09em;
938
+ }
939
+
940
+ .player-detailed__transport {
941
+ padding: 0.4rem 1rem;
942
+ border-bottom: 1px solid var(--player-rule);
943
+ }
944
+
945
+ .player-section-heading {
946
+ display: flex;
947
+ align-items: center;
948
+ justify-content: space-between;
949
+ min-height: 38px;
950
+ border-bottom: 1px solid var(--player-faint);
951
+ color: var(--player-muted);
952
+ font-size: 0.67rem;
953
+ letter-spacing: 0.13em;
954
+ text-transform: uppercase;
955
+ }
956
+
957
+ .player-detailed__queue {
958
+ padding: 0 1rem 0.65rem;
959
+ }
960
+
961
+ .player-detailed__queue ol,
962
+ .player-queue-panel ol {
963
+ padding: 0;
964
+ margin: 0;
965
+ list-style: none;
966
+ }
967
+
968
+ .player-detailed__queue li,
969
+ .player-queue-panel li {
970
+ border-bottom: 1px solid var(--player-faint);
971
+ }
972
+
973
+ .player-detailed__queue li:last-child,
974
+ .player-queue-panel li:last-child {
975
+ border-bottom: 0;
976
+ }
977
+
978
+ .player-detailed__queue li[data-current="true"],
979
+ .player-queue-panel li[data-current="true"] {
980
+ background: var(--player-active-wash);
981
+ }
982
+
983
+ .player-detailed__queue li[data-current="true"] .player-queue-number,
984
+ .player-detailed__queue li[data-current="true"] .player-queue-title,
985
+ .player-queue-panel li[data-current="true"] .player-queue-number {
986
+ color: var(--player-brand);
987
+ }
988
+
989
+ .player-detailed__queue li[data-current="true"] .player-queue-title,
990
+ .player-queue-panel li[data-current="true"] .player-queue-copy strong {
991
+ font-weight: 650;
992
+ }
993
+
994
+ .player-detailed__queue li > button {
995
+ display: grid;
996
+ grid-template-columns: 2.25rem minmax(0, 1fr) auto;
997
+ align-items: center;
998
+ width: 100%;
999
+ min-height: 38px;
1000
+ padding: 0 0.55rem;
1001
+ border: 0;
1002
+ background: transparent;
1003
+ color: inherit;
1004
+ text-align: left;
1005
+ cursor: pointer;
1006
+ }
1007
+
1008
+ .player-detailed__queue li > button:hover,
1009
+ .player-queue-panel li > button:hover {
1010
+ background: var(--player-faint);
1011
+ }
1012
+
1013
+ .player-detailed__queue time,
1014
+ .player-queue-panel time {
1015
+ color: var(--player-muted);
1016
+ font-family: var(--player-font-digital);
1017
+ font-size: 0.66rem;
1018
+ font-variant-numeric: tabular-nums;
1019
+ }
1020
+
1021
+ .player-queue-title {
1022
+ overflow: hidden;
1023
+ font-size: 0.76rem;
1024
+ text-overflow: ellipsis;
1025
+ white-space: nowrap;
1026
+ }
1027
+
1028
+ .player-empty {
1029
+ margin: 0;
1030
+ padding: 1.4rem 0.6rem;
1031
+ color: var(--player-muted);
1032
+ font-size: 0.8rem;
1033
+ }
1034
+
1035
+ .player-podcast {
1036
+ max-width: 760px;
1037
+ }
1038
+
1039
+ .player-podcast__header {
1040
+ display: grid;
1041
+ grid-template-columns: 112px minmax(0, 1fr) auto;
1042
+ align-items: center;
1043
+ min-width: 0;
1044
+ gap: clamp(1rem, 4vw, 1.6rem);
1045
+ padding: 1.15rem;
1046
+ border-bottom: 1px solid var(--player-faint);
1047
+ }
1048
+
1049
+ .player-podcast__artwork {
1050
+ width: 112px;
1051
+ height: 112px;
1052
+ }
1053
+
1054
+ .player-podcast__header .player-title {
1055
+ font-size: clamp(1.05rem, 3.6cqi, 1.4rem);
1056
+ font-weight: 350;
1057
+ }
1058
+
1059
+ .player-podcast[data-appearance="light"]
1060
+ .player-podcast__header
1061
+ > .player-metadata {
1062
+ padding: 0.65rem 0.8rem;
1063
+ border: 1px solid var(--player-lcd-rule);
1064
+ background: var(--player-lcd);
1065
+ }
1066
+
1067
+ .player-podcast__transport {
1068
+ display: flex;
1069
+ align-items: center;
1070
+ justify-content: center;
1071
+ gap: clamp(0.15rem, 2vw, 1rem);
1072
+ padding: 0.45rem 1rem;
1073
+ border-top: 1px solid var(--player-rule);
1074
+ }
1075
+
1076
+ .player-podcast__timeline {
1077
+ padding: 0.75rem 1.15rem 1.1rem;
1078
+ }
1079
+
1080
+ .player-podcast__timeline .player-waveform {
1081
+ height: 60px;
1082
+ }
1083
+
1084
+ .player-mini {
1085
+ max-width: 100%;
1086
+ overflow: visible;
1087
+ }
1088
+
1089
+ .player-mini__main {
1090
+ display: grid;
1091
+ grid-template-columns: 48px minmax(120px, 1fr) auto auto minmax(130px, 0.65fr);
1092
+ align-items: center;
1093
+ min-width: 0;
1094
+ gap: 0.55rem;
1095
+ padding: 0.4rem 0.65rem;
1096
+ }
1097
+
1098
+ .player-mini__artwork {
1099
+ width: 48px;
1100
+ height: 48px;
1101
+ }
1102
+
1103
+ .player-mini__controls {
1104
+ display: flex;
1105
+ align-items: center;
1106
+ gap: 0;
1107
+ }
1108
+
1109
+ .player-mini__timeline {
1110
+ display: grid;
1111
+ min-width: 0;
1112
+ }
1113
+
1114
+ .player-mini__timeline .player-seek {
1115
+ min-height: 24px;
1116
+ }
1117
+
1118
+ .player-queue-panel {
1119
+ max-width: 460px;
1120
+ }
1121
+
1122
+ .player-queue-panel > header {
1123
+ display: grid;
1124
+ grid-template-columns: minmax(0, 1fr) auto auto;
1125
+ align-items: center;
1126
+ min-height: 60px;
1127
+ padding: 0.5rem 0.65rem 0.5rem 1rem;
1128
+ border-bottom: 1px solid var(--player-rule);
1129
+ }
1130
+
1131
+ .player-queue-panel h2 {
1132
+ margin: 0.12rem 0 0;
1133
+ overflow: hidden;
1134
+ font-size: 0.92rem;
1135
+ font-weight: 600;
1136
+ text-overflow: ellipsis;
1137
+ white-space: nowrap;
1138
+ }
1139
+
1140
+ .player-queue-panel li > button {
1141
+ display: grid;
1142
+ grid-template-columns: 2.3rem minmax(0, 1fr) auto;
1143
+ align-items: center;
1144
+ width: 100%;
1145
+ min-height: 48px;
1146
+ padding: 0.3rem 0.8rem 0.3rem 0.65rem;
1147
+ border: 0;
1148
+ background: transparent;
1149
+ color: inherit;
1150
+ text-align: left;
1151
+ cursor: pointer;
1152
+ }
1153
+
1154
+ .player-queue-copy {
1155
+ display: grid;
1156
+ min-width: 0;
1157
+ gap: 0.08rem;
1158
+ }
1159
+
1160
+ .player-queue-copy strong,
1161
+ .player-queue-copy small {
1162
+ overflow: hidden;
1163
+ text-overflow: ellipsis;
1164
+ white-space: nowrap;
1165
+ }
1166
+
1167
+ .player-queue-copy strong {
1168
+ font-size: 0.78rem;
1169
+ font-weight: 540;
1170
+ }
1171
+
1172
+ .player-queue-copy small {
1173
+ color: var(--player-muted);
1174
+ font-size: 0.66rem;
1175
+ }
1176
+
1177
+ .player-transport .player-icon-button:not(.player-play-button),
1178
+ .player-podcast__transport .player-icon-button:not(.player-play-button) {
1179
+ color: var(--player-muted);
1180
+ }
1181
+
1182
+ .player-transport .player-icon-button[aria-pressed="true"],
1183
+ .player-transport .player-icon-button:hover:not(:disabled),
1184
+ .player-podcast__transport .player-icon-button:hover:not(:disabled) {
1185
+ color: var(--player-brand);
1186
+ }
1187
+
1188
+ @container player-surface (max-width: 680px) {
1189
+ .player-detailed__display {
1190
+ grid-template-columns: 104px minmax(0, 1fr);
1191
+ }
1192
+
1193
+ .player-detailed__artwork {
1194
+ width: 104px;
1195
+ height: 104px;
1196
+ min-height: 0;
1197
+ align-self: start;
1198
+ }
1199
+
1200
+ .player-detailed__primary {
1201
+ padding: 0.75rem;
1202
+ border-right: 0;
1203
+ }
1204
+
1205
+ .player-detailed__primary .player-waveform {
1206
+ height: 24px;
1207
+ }
1208
+
1209
+ .player-detailed__numbers {
1210
+ grid-column: 1 / -1;
1211
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1212
+ align-items: center;
1213
+ padding: 0.5rem 0.75rem;
1214
+ border-top: 1px solid var(--player-faint);
1215
+ }
1216
+
1217
+ .player-detailed__metric {
1218
+ justify-items: start;
1219
+ }
1220
+
1221
+ .player-detailed__transport {
1222
+ padding-inline: 0.5rem;
1223
+ }
1224
+
1225
+ .player-detailed__transport .player-transport {
1226
+ width: 100%;
1227
+ justify-content: space-between;
1228
+ gap: 0;
1229
+ }
1230
+
1231
+ .player-podcast__header {
1232
+ grid-template-columns: 86px minmax(0, 1fr);
1233
+ gap: 0.85rem;
1234
+ padding: 0.85rem;
1235
+ }
1236
+
1237
+ .player-podcast__artwork {
1238
+ width: 86px;
1239
+ height: 86px;
1240
+ }
1241
+
1242
+ .player-podcast__header > .player-status {
1243
+ grid-column: 2;
1244
+ }
1245
+
1246
+ .player-podcast__transport {
1247
+ gap: 0;
1248
+ padding-inline: 0.3rem;
1249
+ }
1250
+
1251
+ .player-mini__main {
1252
+ grid-template-columns: 46px minmax(0, 1fr) auto;
1253
+ }
1254
+
1255
+ .player-mini__controls > .player-volume-popover {
1256
+ display: none;
1257
+ }
1258
+
1259
+ .player-mini__artwork {
1260
+ width: 46px;
1261
+ height: 46px;
1262
+ }
1263
+
1264
+ .player-mini__main > .player-status,
1265
+ .player-mini__timeline {
1266
+ display: none;
1267
+ }
1268
+ }
1269
+
1270
+ @container player-surface (max-width: 440px) {
1271
+ .player-compact__main {
1272
+ grid-template-areas:
1273
+ "play artwork metadata"
1274
+ "play artwork signal";
1275
+ grid-template-columns: auto 48px minmax(0, 1fr);
1276
+ }
1277
+
1278
+ .player-compact__main > .player-volume-popover {
1279
+ display: none;
1280
+ }
1281
+
1282
+ .player-compact__signal {
1283
+ grid-template-columns: minmax(48px, 1fr) auto;
1284
+ }
1285
+
1286
+ .player-compact .player-status {
1287
+ display: none;
1288
+ }
1289
+
1290
+ .player-wide__header {
1291
+ grid-template-columns: 78px minmax(0, 1fr);
1292
+ gap: 0.85rem;
1293
+ padding: 0.85rem;
1294
+ }
1295
+
1296
+ .player-wide__artwork {
1297
+ width: 78px;
1298
+ height: 78px;
1299
+ }
1300
+
1301
+ .player-wide__identity {
1302
+ gap: 0.55rem;
1303
+ }
1304
+
1305
+ .player-wide__content {
1306
+ padding: 0.7rem 0.85rem 1rem;
1307
+ }
1308
+
1309
+ .player-wide__timeline-footer .player-volume {
1310
+ display: none;
1311
+ }
1312
+
1313
+ .player-wide__timeline-footer .player-time {
1314
+ width: 100%;
1315
+ }
1316
+
1317
+ .player-transport {
1318
+ justify-content: space-between;
1319
+ }
1320
+
1321
+ .player-detailed__queue {
1322
+ padding-inline: 0.5rem;
1323
+ }
1324
+
1325
+ .player-detailed__transport {
1326
+ padding-inline: 0.25rem;
1327
+ }
1328
+
1329
+ .player-queue-panel > header {
1330
+ padding-left: 0.65rem;
1331
+ }
1332
+
1333
+ .player-queue-panel li > button {
1334
+ grid-template-columns: 1.9rem minmax(0, 1fr) auto;
1335
+ padding-inline: 0.45rem;
1336
+ }
1337
+ }