@smartimpact-it/modern-video-embed 2.0.5 → 2.0.7

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 (65) hide show
  1. package/README.md +322 -71
  2. package/dist/components/BaseVideoEmbed.d.ts +91 -0
  3. package/dist/components/BaseVideoEmbed.d.ts.map +1 -0
  4. package/dist/components/BaseVideoEmbed.js +275 -0
  5. package/dist/components/BaseVideoEmbed.js.map +1 -0
  6. package/dist/components/VideoEmbed.d.ts +68 -0
  7. package/dist/components/VideoEmbed.d.ts.map +1 -0
  8. package/dist/components/VideoEmbed.js +786 -0
  9. package/dist/components/VideoEmbed.js.map +1 -0
  10. package/dist/components/VimeoEmbed.d.ts +26 -36
  11. package/dist/components/VimeoEmbed.d.ts.map +1 -1
  12. package/dist/components/VimeoEmbed.js +231 -326
  13. package/dist/components/VimeoEmbed.js.map +1 -1
  14. package/dist/components/VimeoEmbed.min.js +1 -1
  15. package/dist/components/YouTubeEmbed.d.ts +108 -42
  16. package/dist/components/YouTubeEmbed.d.ts.map +1 -1
  17. package/dist/components/YouTubeEmbed.js +361 -375
  18. package/dist/components/YouTubeEmbed.js.map +1 -1
  19. package/dist/components/YouTubeEmbed.min.js +1 -1
  20. package/dist/css/components.css +285 -68
  21. package/dist/css/components.css.map +1 -1
  22. package/dist/css/components.min.css +1 -1
  23. package/dist/css/main.css +285 -68
  24. package/dist/css/main.css.map +1 -1
  25. package/dist/css/main.min.css +1 -1
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +1 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/index.min.js +1 -1
  31. package/dist/types/index.d.ts +1 -0
  32. package/dist/types/index.d.ts.map +1 -1
  33. package/dist/video-only.d.ts +7 -0
  34. package/dist/video-only.d.ts.map +1 -0
  35. package/dist/video-only.js +8 -0
  36. package/dist/video-only.js.map +1 -0
  37. package/dist/vimeo-only.d.ts +2 -2
  38. package/dist/vimeo-only.d.ts.map +1 -1
  39. package/dist/vimeo-only.js +2 -2
  40. package/dist/vimeo-only.js.map +1 -1
  41. package/dist/vimeo-only.min.js +1 -1
  42. package/dist/youtube-only.d.ts +2 -2
  43. package/dist/youtube-only.d.ts.map +1 -1
  44. package/dist/youtube-only.js +2 -2
  45. package/dist/youtube-only.js.map +1 -1
  46. package/dist/youtube-only.min.js +1 -1
  47. package/package.json +6 -5
  48. package/src/components/BaseVideoEmbed.ts +335 -0
  49. package/src/components/VideoEmbed.ts +870 -0
  50. package/src/components/VideoEmbed.ts.backup +1051 -0
  51. package/src/components/VimeoEmbed.ts +258 -395
  52. package/src/components/YouTubeEmbed.ts +378 -432
  53. package/src/index.ts +1 -0
  54. package/src/styles/_embed-base.scss +275 -0
  55. package/src/styles/_shared-functions.scss +56 -0
  56. package/src/styles/components.scss +4 -3
  57. package/src/styles/main.scss +7 -5
  58. package/src/styles/video-embed.scss +55 -0
  59. package/src/styles/vimeo-embed.scss +8 -248
  60. package/src/styles/youtube-embed.scss +8 -254
  61. package/src/types/index.ts +1 -0
  62. package/src/types/video-embed.d.ts +90 -0
  63. package/src/video-only.ts +9 -0
  64. package/src/vimeo-only.ts +2 -2
  65. package/src/youtube-only.ts +2 -2
@@ -1,42 +1,45 @@
1
1
  /**
2
- * SVG encoding functions
3
- */
2
+ * YouTube Embed Component Styles
3
+ * Uses shared base styles with YouTube-specific branding
4
+ */
5
+ /**
6
+ * Base styles and mixins for all video embed components
7
+ * Provides reusable CSS patterns to reduce duplication
8
+ */
9
+ /**
10
+ * Shared SCSS functions for SVG encoding
11
+ * Used by all video embed components
12
+ */
4
13
  youtube-embed {
5
- --video-aspect-ratio: 56.25%;
6
- --poster-object-fit: cover;
7
- --video-object-fit: contain;
8
- --control-button-size: 70px;
9
- --control-button-color: #ffffff;
10
- --overlay-background-color: rgba(0, 0, 0, 0.5);
14
+ --si-embed-video-aspect-ratio: 56.25%;
15
+ --si-embed-aspect-width: 16;
16
+ --si-embed-aspect-height: 9;
17
+ --si-embed-poster-object-fit: cover;
18
+ --si-embed-video-object-fit: contain;
19
+ --si-embed-control-button-size: 70px;
20
+ --si-embed-control-button-color: #ffffff;
21
+ --si-embed-overlay-background-color: rgba(0, 0, 0, 0.5);
11
22
  display: block;
12
23
  position: relative;
13
24
  width: 100%;
14
- padding-top: var(--video-aspect-ratio);
25
+ padding-top: var(--si-embed-video-aspect-ratio);
15
26
  overflow: hidden;
16
27
  background-color: #000;
17
28
  }
18
- youtube-embed iframe {
19
- position: absolute;
20
- top: 0;
21
- left: 0;
22
- width: 100%;
23
- height: 100%;
24
- border: none;
25
- object-fit: var(--video-object-fit);
26
- }
29
+ youtube-embed .video-poster,
27
30
  youtube-embed .youtube-poster,
28
- youtube-embed .video-poster {
31
+ youtube-embed .vimeo-poster {
29
32
  position: absolute;
30
33
  top: 0;
31
34
  left: 0;
32
35
  width: 100%;
33
36
  height: 100%;
34
- object-fit: var(--poster-object-fit);
37
+ object-fit: var(--si-embed-poster-object-fit);
35
38
  display: block;
36
39
  cursor: pointer;
37
40
  }
38
41
  youtube-embed .button-overlay {
39
- background: var(--overlay-background-color);
42
+ background: var(--si-embed-overlay-background-color);
40
43
  cursor: pointer;
41
44
  display: flex;
42
45
  align-items: center;
@@ -53,17 +56,19 @@ youtube-embed .button-overlay {
53
56
  }
54
57
  youtube-embed.is-playing .button-overlay {
55
58
  opacity: 0;
59
+ pointer-events: none;
56
60
  }
57
61
  youtube-embed.is-playing:hover .button-overlay {
58
62
  opacity: 1;
63
+ pointer-events: auto;
59
64
  }
60
65
  youtube-embed .button-overlay .button {
61
66
  cursor: pointer;
62
67
  display: flex;
63
68
  align-items: center;
64
69
  justify-content: center;
65
- height: var(--control-button-size);
66
- width: var(--control-button-size);
70
+ height: var(--si-embed-control-button-size);
71
+ width: var(--si-embed-control-button-size);
67
72
  background-image: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M8%2C5.14V19.14L19%2C12.14L8%2C5.14Z%22%20%2F%3E%3C%2Fsvg%3E");
68
73
  background-size: cover;
69
74
  background-repeat: no-repeat;
@@ -88,17 +93,11 @@ youtube-embed.is-background iframe {
88
93
  top: 50%;
89
94
  left: 50%;
90
95
  transform: translate(-50%, -50%);
91
- min-width: 100%;
92
- min-height: 100%;
96
+ aspect-ratio: var(--si-embed-aspect-width)/var(--si-embed-aspect-height);
93
97
  width: auto;
94
98
  height: auto;
95
- }
96
- @supports (aspect-ratio: 16/9) {
97
- youtube-embed.is-background iframe {
98
- aspect-ratio: 16/9;
99
- }
100
- }
101
- youtube-embed.is-background iframe {
99
+ min-width: 100%;
100
+ min-height: 100%;
102
101
  pointer-events: none;
103
102
  }
104
103
  youtube-embed.is-background .button-overlay {
@@ -112,7 +111,7 @@ youtube-embed.has-background-controls .button-overlay {
112
111
  padding: 1rem;
113
112
  }
114
113
  youtube-embed.has-background-controls .button-overlay .button {
115
- --control-button-size: 40px;
114
+ --si-embed-control-button-size: 40px;
116
115
  opacity: 0.7;
117
116
  transition: opacity 0.2s ease;
118
117
  }
@@ -144,7 +143,7 @@ youtube-embed .youtube-error-message .error-content {
144
143
  max-width: 400px;
145
144
  }
146
145
  youtube-embed .youtube-error-message .error-content svg {
147
- color: #ff4444;
146
+ color: #ff0000;
148
147
  margin-bottom: 1rem;
149
148
  }
150
149
  youtube-embed .youtube-error-message .error-content .error-message {
@@ -171,46 +170,50 @@ youtube-embed .youtube-error-message .error-content .retry-button:focus {
171
170
  outline: 2px solid white;
172
171
  outline-offset: 2px;
173
172
  }
173
+ youtube-embed iframe {
174
+ position: absolute;
175
+ top: 0;
176
+ left: 0;
177
+ width: 100%;
178
+ height: 100%;
179
+ border: none;
180
+ object-fit: var(--si-embed-video-object-fit);
181
+ }
174
182
 
175
183
  /**
176
- * SVG encoding functions (shared with YouTube embed)
177
- */
184
+ * Vimeo Embed Component Styles
185
+ * Uses shared base styles with Vimeo-specific branding
186
+ */
178
187
  vimeo-embed {
179
- --video-aspect-ratio: 56.25%;
180
- --poster-object-fit: cover;
181
- --video-object-fit: contain;
182
- --control-button-size: 70px;
183
- --control-button-color: #ffffff;
184
- --overlay-background-color: rgba(0, 0, 0, 0.5);
188
+ --si-embed-video-aspect-ratio: 56.25%;
189
+ --si-embed-aspect-width: 16;
190
+ --si-embed-aspect-height: 9;
191
+ --si-embed-poster-object-fit: cover;
192
+ --si-embed-video-object-fit: contain;
193
+ --si-embed-control-button-size: 70px;
194
+ --si-embed-control-button-color: #ffffff;
195
+ --si-embed-overlay-background-color: rgba(0, 0, 0, 0.5);
185
196
  display: block;
186
197
  position: relative;
187
198
  width: 100%;
188
- padding-top: var(--video-aspect-ratio);
199
+ padding-top: var(--si-embed-video-aspect-ratio);
189
200
  overflow: hidden;
190
201
  background-color: #000;
191
202
  }
192
- vimeo-embed iframe {
193
- position: absolute;
194
- top: 0;
195
- left: 0;
196
- width: 100%;
197
- height: 100%;
198
- border: none;
199
- object-fit: var(--video-object-fit);
200
- }
201
- vimeo-embed .vimeo-poster,
202
- vimeo-embed .video-poster {
203
+ vimeo-embed .video-poster,
204
+ vimeo-embed .youtube-poster,
205
+ vimeo-embed .vimeo-poster {
203
206
  position: absolute;
204
207
  top: 0;
205
208
  left: 0;
206
209
  width: 100%;
207
210
  height: 100%;
208
- object-fit: var(--poster-object-fit);
211
+ object-fit: var(--si-embed-poster-object-fit);
209
212
  display: block;
210
213
  cursor: pointer;
211
214
  }
212
215
  vimeo-embed .button-overlay {
213
- background: var(--overlay-background-color);
216
+ background: var(--si-embed-overlay-background-color);
214
217
  cursor: pointer;
215
218
  display: flex;
216
219
  align-items: center;
@@ -227,17 +230,19 @@ vimeo-embed .button-overlay {
227
230
  }
228
231
  vimeo-embed.is-playing .button-overlay {
229
232
  opacity: 0;
233
+ pointer-events: none;
230
234
  }
231
235
  vimeo-embed.is-playing:hover .button-overlay {
232
236
  opacity: 1;
237
+ pointer-events: auto;
233
238
  }
234
239
  vimeo-embed .button-overlay .button {
235
240
  cursor: pointer;
236
241
  display: flex;
237
242
  align-items: center;
238
243
  justify-content: center;
239
- height: var(--control-button-size);
240
- width: var(--control-button-size);
244
+ height: var(--si-embed-control-button-size);
245
+ width: var(--si-embed-control-button-size);
241
246
  background-image: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M8%2C5.14V19.14L19%2C12.14L8%2C5.14Z%22%20%2F%3E%3C%2Fsvg%3E");
242
247
  background-size: cover;
243
248
  background-repeat: no-repeat;
@@ -262,17 +267,11 @@ vimeo-embed.is-background iframe {
262
267
  top: 50%;
263
268
  left: 50%;
264
269
  transform: translate(-50%, -50%);
265
- min-width: 100%;
266
- min-height: 100%;
270
+ aspect-ratio: var(--si-embed-aspect-width)/var(--si-embed-aspect-height);
267
271
  width: auto;
268
272
  height: auto;
269
- }
270
- @supports (aspect-ratio: 16/9) {
271
- vimeo-embed.is-background iframe {
272
- aspect-ratio: 16/9;
273
- }
274
- }
275
- vimeo-embed.is-background iframe {
273
+ min-width: 100%;
274
+ min-height: 100%;
276
275
  pointer-events: none;
277
276
  }
278
277
  vimeo-embed.is-background .button-overlay {
@@ -286,7 +285,7 @@ vimeo-embed.has-background-controls .button-overlay {
286
285
  padding: 1rem;
287
286
  }
288
287
  vimeo-embed.has-background-controls .button-overlay .button {
289
- --control-button-size: 40px;
288
+ --si-embed-control-button-size: 40px;
290
289
  opacity: 0.7;
291
290
  transition: opacity 0.2s ease;
292
291
  }
@@ -345,5 +344,223 @@ vimeo-embed .vimeo-error-message .error-content .retry-button:focus {
345
344
  outline: 2px solid white;
346
345
  outline-offset: 2px;
347
346
  }
347
+ vimeo-embed iframe {
348
+ position: absolute;
349
+ top: 0;
350
+ left: 0;
351
+ width: 100%;
352
+ height: 100%;
353
+ border: none;
354
+ object-fit: var(--si-embed-video-object-fit);
355
+ }
356
+
357
+ /**
358
+ * Video Embed Component Styles
359
+ * Uses shared base styles with video-specific overrides
360
+ */
361
+ video-embed {
362
+ --si-embed-video-aspect-ratio: 56.25%;
363
+ --si-embed-aspect-width: 16;
364
+ --si-embed-aspect-height: 9;
365
+ --si-embed-poster-object-fit: cover;
366
+ --si-embed-video-object-fit: contain;
367
+ --si-embed-control-button-size: 70px;
368
+ --si-embed-control-button-color: #ffffff;
369
+ --si-embed-overlay-background-color: rgba(0, 0, 0, 0.5);
370
+ display: block;
371
+ position: relative;
372
+ width: 100%;
373
+ padding-top: var(--si-embed-video-aspect-ratio);
374
+ overflow: hidden;
375
+ background-color: #000;
376
+ }
377
+ video-embed .video-poster,
378
+ video-embed .youtube-poster,
379
+ video-embed .vimeo-poster {
380
+ position: absolute;
381
+ top: 0;
382
+ left: 0;
383
+ width: 100%;
384
+ height: 100%;
385
+ object-fit: var(--si-embed-poster-object-fit);
386
+ display: block;
387
+ cursor: pointer;
388
+ }
389
+ video-embed .button-overlay {
390
+ background: var(--si-embed-overlay-background-color);
391
+ cursor: pointer;
392
+ display: flex;
393
+ align-items: center;
394
+ justify-content: center;
395
+ position: absolute;
396
+ left: 0;
397
+ top: 0;
398
+ right: 0;
399
+ bottom: 0;
400
+ height: 100%;
401
+ width: 100%;
402
+ transition: opacity 0.3s ease;
403
+ z-index: 10;
404
+ }
405
+ video-embed.is-playing .button-overlay {
406
+ opacity: 0;
407
+ pointer-events: none;
408
+ }
409
+ video-embed.is-playing:hover .button-overlay {
410
+ opacity: 1;
411
+ pointer-events: auto;
412
+ }
413
+ video-embed .button-overlay .button {
414
+ cursor: pointer;
415
+ display: flex;
416
+ align-items: center;
417
+ justify-content: center;
418
+ height: var(--si-embed-control-button-size);
419
+ width: var(--si-embed-control-button-size);
420
+ background-image: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M8%2C5.14V19.14L19%2C12.14L8%2C5.14Z%22%20%2F%3E%3C%2Fsvg%3E");
421
+ background-size: cover;
422
+ background-repeat: no-repeat;
423
+ background-position: center;
424
+ }
425
+ video-embed.is-playing .button-overlay .button {
426
+ background-image: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M14%2C19H18V5H14M6%2C19H10V5H6V19Z%22%20%2F%3E%3C%2Fsvg%3E");
427
+ }
428
+ video-embed.is-background {
429
+ padding-top: 0;
430
+ position: absolute;
431
+ height: 100%;
432
+ width: 100%;
433
+ top: 0;
434
+ left: 0;
435
+ z-index: 0;
436
+ overflow: hidden;
437
+ background: #000;
438
+ }
439
+ video-embed.is-background video {
440
+ position: absolute;
441
+ top: 50%;
442
+ left: 50%;
443
+ transform: translate(-50%, -50%);
444
+ width: 100%;
445
+ height: calc(100% * var(--si-embed-aspect-height) / var(--si-embed-aspect-width));
446
+ min-width: 100%;
447
+ min-height: 100%;
448
+ object-fit: cover;
449
+ pointer-events: none;
450
+ }
451
+ video-embed.is-background video::-webkit-media-controls {
452
+ display: none !important;
453
+ }
454
+ video-embed.is-background video::-webkit-media-controls-enclosure {
455
+ display: none !important;
456
+ }
457
+ video-embed.is-background .button-overlay {
458
+ display: none;
459
+ }
460
+ video-embed.has-background-controls .button-overlay {
461
+ display: flex;
462
+ background: none;
463
+ justify-content: flex-end;
464
+ align-items: flex-end;
465
+ padding: 1rem;
466
+ }
467
+ video-embed.has-background-controls .button-overlay .button {
468
+ --si-embed-control-button-size: 40px;
469
+ opacity: 0.7;
470
+ transition: opacity 0.2s ease;
471
+ }
472
+ video-embed.has-background-controls .button-overlay .button:hover {
473
+ opacity: 1;
474
+ }
475
+ video-embed.has-background-controls.is-playing .button-overlay {
476
+ opacity: 0;
477
+ }
478
+ video-embed.has-background-controls.is-playing .button-overlay:hover {
479
+ opacity: 1;
480
+ }
481
+ video-embed .video-error-message {
482
+ position: absolute;
483
+ top: 0;
484
+ left: 0;
485
+ width: 100%;
486
+ height: 100%;
487
+ display: flex;
488
+ align-items: center;
489
+ justify-content: center;
490
+ background: rgba(0, 0, 0, 0.9);
491
+ color: white;
492
+ z-index: 1000;
493
+ }
494
+ video-embed .video-error-message .error-content {
495
+ text-align: center;
496
+ padding: 2rem;
497
+ max-width: 400px;
498
+ }
499
+ video-embed .video-error-message .error-content svg {
500
+ color: #ff4444;
501
+ margin-bottom: 1rem;
502
+ }
503
+ video-embed .video-error-message .error-content .error-message {
504
+ margin: 1rem 0;
505
+ font-size: 1rem;
506
+ line-height: 1.5;
507
+ }
508
+ video-embed .video-error-message .error-content .retry-button {
509
+ margin-top: 1rem;
510
+ padding: 0.75rem 1.5rem;
511
+ background: #ff4444;
512
+ color: white;
513
+ border: none;
514
+ border-radius: 4px;
515
+ cursor: pointer;
516
+ font-size: 1rem;
517
+ font-weight: 600;
518
+ transition: background 0.2s ease;
519
+ }
520
+ video-embed .video-error-message .error-content .retry-button:hover {
521
+ background: #cc0000;
522
+ }
523
+ video-embed .video-error-message .error-content .retry-button:focus {
524
+ outline: 2px solid white;
525
+ outline-offset: 2px;
526
+ }
527
+ video-embed video {
528
+ position: absolute;
529
+ top: 0;
530
+ left: 0;
531
+ width: 100%;
532
+ height: 100%;
533
+ border: none;
534
+ object-fit: var(--si-embed-video-object-fit);
535
+ }
536
+ video-embed video::-webkit-media-controls {
537
+ display: none !important;
538
+ }
539
+ video-embed video::-webkit-media-controls-enclosure {
540
+ display: none !important;
541
+ }
542
+ video-embed[controls] video::-webkit-media-controls {
543
+ display: flex !important;
544
+ }
545
+ video-embed[controls] video::-webkit-media-controls-enclosure {
546
+ display: flex !important;
547
+ }
548
+ video-embed .video-poster {
549
+ background-size: cover;
550
+ background-position: center;
551
+ background-repeat: no-repeat;
552
+ }
553
+ video-embed.is-fullscreen {
554
+ padding-top: 0;
555
+ position: fixed;
556
+ top: 0;
557
+ left: 0;
558
+ width: 100vw;
559
+ height: 100vh;
560
+ z-index: 9999;
561
+ }
562
+ video-embed.is-fullscreen video {
563
+ object-fit: contain;
564
+ }
348
565
 
349
566
  /*# sourceMappingURL=components.css.map */
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../src/styles/youtube-embed.scss","../../src/styles/vimeo-embed.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAqDA;EAEE;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;;AAGF;EACE;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EAIA;EACA;EACA;EACA;;AAGA;EAdF;IAeI;;;AAfJ;EAoBE;;AAGF;EACE;;AAIF;EACE;EACA;EAEA;EACA;EACA;;AAEA;EAEE;EACA;EACA;;AACA;EACE;;AAMN;EACE;;AACA;EACE;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;;AC/PV;AAAA;AAAA;AAqDA;EAEE;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;;AAGF;EACE;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAEA;EAXF;IAYI;;;AAZJ;EAeE;;AAGF;EACE;;AAMF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AACA;EACE;;AAKN;EACE;;AACA;EACE;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA","file":"components.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../src/styles/youtube-embed.scss","../../src/styles/_embed-base.scss","../../src/styles/_shared-functions.scss","../../src/styles/vimeo-embed.scss","../../src/styles/video-embed.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AFMA;ECIE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKA;EACA;EACA;EACA;EACA;EACA;;AAgBA;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;;AAGF;EACE;;AAQF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;EACA;EACA;EACA;EAEA;EAGA;EACA;EAEA;EACA;EACA;;AA4BJ;EACE;;AAMF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AACA;EACE;;AAKN;EACE;;AACA;EACE;;AAYN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE,ODtN0C;ECuN1C;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA,YDnO0C;ECoO1C;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,YD7OiD;;ACgPnD;EACE;EACA;;AD/OR;ECqBA;EACA;EACA;EACA;EACA;EACA;EACA;;;AEtCF;AAAA;AAAA;AAAA;AAMA;EFIE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKA;EACA;EACA;EACA;EACA;EACA;;AAgBA;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;;AAGF;EACE;;AAQF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;EACA;EACA;EACA;EAEA;EAGA;EACA;EAEA;EACA;EACA;;AA4BJ;EACE;;AAMF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AACA;EACE;;AAKN;EACE;;AACA;EACE;;AAYN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE,OEtNwC;EFuNxC;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA,YEnOwC;EFoOxC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,YE7O+C;;AFgPjD;EACE;EACA;;AE/OR;EFqBA;EACA;EACA;EACA;EACA;EACA;EACA;;;AGtCF;AAAA;AAAA;AAAA;AAMA;EHIE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAKA;EACA;EACA;EACA;EACA;EACA;;AAgBA;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;;AAGF;EACE;;AAQF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAoBE;EACE;EACA;EACA;EACA;EAEA;EACA;EAGA;EACA;EACA;EACA;;AAGA;EACE;;AAEF;EACE;;AAKN;EACE;;AAMF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AACA;EACE;;AAKN;EACE;;AACA;EACE;;AAYN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE,OGtNuC;EHuNvC;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA,YGnOuC;EHoOvC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,YG7O8C;;AHgPhD;EACE;EACA;;AG/OR;EHqBA;EACA;EACA;EACA;EACA;EACA;EACA;;AGvBE;EACE;;AAEF;EACE;;AAMF;EACE;;AAEF;EACE;;AAKJ;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE","file":"components.css"}
@@ -1 +1 @@
1
- vimeo-embed,youtube-embed{--video-aspect-ratio:56.25%;--poster-object-fit:cover;--video-object-fit:contain;--control-button-size:70px;--control-button-color:#ffffff;--overlay-background-color:rgba(0, 0, 0, 0.5);display:block;position:relative;width:100%;padding-top:var(--video-aspect-ratio);overflow:hidden;background-color:#000}vimeo-embed iframe,youtube-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;object-fit:var(--video-object-fit)}youtube-embed .video-poster,youtube-embed .youtube-poster{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:var(--poster-object-fit);display:block;cursor:pointer}youtube-embed .button-overlay,youtube-embed .youtube-error-message{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center}youtube-embed .button-overlay{background:var(--overlay-background-color);cursor:pointer;right:0;bottom:0;transition:opacity .3s ease;z-index:10}youtube-embed.is-playing .button-overlay{opacity:0}youtube-embed.has-background-controls .button-overlay .button:hover,youtube-embed.has-background-controls.is-playing .button-overlay:hover,youtube-embed.is-playing:hover .button-overlay{opacity:1}youtube-embed .button-overlay .button{cursor:pointer;display:flex;align-items:center;justify-content:center;height:var(--control-button-size);width:var(--control-button-size);background-image:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M8%2C5.14V19.14L19%2C12.14L8%2C5.14Z%22%20%2F%3E%3C%2Fsvg%3E);background-size:cover;background-repeat:no-repeat;background-position:center}youtube-embed.is-playing .button-overlay .button{background-image:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M14%2C19H18V5H14M6%2C19H10V5H6V19Z%22%20%2F%3E%3C%2Fsvg%3E)}vimeo-embed.is-background,youtube-embed.is-background{padding-top:0;position:absolute;height:100%;width:100%;top:0;left:0;z-index:0;overflow:hidden;background:#000}youtube-embed.is-background iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:100%;min-height:100%;width:auto;height:auto}@supports (aspect-ratio:16/9){youtube-embed.is-background iframe{aspect-ratio:16/9}}youtube-embed.is-background iframe{pointer-events:none}youtube-embed.is-background .button-overlay{display:none}youtube-embed.has-background-controls .button-overlay{display:flex;background:0 0;justify-content:flex-end;align-items:flex-end;padding:1rem}youtube-embed.has-background-controls .button-overlay .button{--control-button-size:40px;opacity:.7;transition:opacity .2s ease}youtube-embed.has-background-controls.is-playing .button-overlay{opacity:0}youtube-embed .youtube-error-message{background:rgba(0,0,0,.9);color:#fff;z-index:1000}youtube-embed .youtube-error-message .error-content{text-align:center;padding:2rem;max-width:400px}youtube-embed .youtube-error-message .error-content svg{color:#f44;margin-bottom:1rem}youtube-embed .youtube-error-message .error-content .error-message{margin:1rem 0;font-size:1rem;line-height:1.5}youtube-embed .youtube-error-message .error-content .retry-button{margin-top:1rem;padding:.75rem 1.5rem;background:red;color:#fff;border:0;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:600;transition:background .2s ease}youtube-embed .youtube-error-message .error-content .retry-button:hover{background:#c00}youtube-embed .youtube-error-message .error-content .retry-button:focus{outline:2px solid #fff;outline-offset:2px}vimeo-embed .video-poster,vimeo-embed .vimeo-poster{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:var(--poster-object-fit);display:block;cursor:pointer}vimeo-embed .button-overlay,vimeo-embed .vimeo-error-message{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center}vimeo-embed .button-overlay{background:var(--overlay-background-color);cursor:pointer;right:0;bottom:0;transition:opacity .3s ease;z-index:10}vimeo-embed.is-playing .button-overlay{opacity:0}vimeo-embed.has-background-controls .button-overlay .button:hover,vimeo-embed.has-background-controls.is-playing .button-overlay:hover,vimeo-embed.is-playing:hover .button-overlay{opacity:1}vimeo-embed .button-overlay .button{cursor:pointer;display:flex;align-items:center;justify-content:center;height:var(--control-button-size);width:var(--control-button-size);background-image:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M8%2C5.14V19.14L19%2C12.14L8%2C5.14Z%22%20%2F%3E%3C%2Fsvg%3E);background-size:cover;background-repeat:no-repeat;background-position:center}vimeo-embed.is-playing .button-overlay .button{background-image:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M14%2C19H18V5H14M6%2C19H10V5H6V19Z%22%20%2F%3E%3C%2Fsvg%3E)}vimeo-embed.is-background iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:100%;min-height:100%;width:auto;height:auto}@supports (aspect-ratio:16/9){vimeo-embed.is-background iframe{aspect-ratio:16/9}}vimeo-embed.is-background iframe{pointer-events:none}vimeo-embed.is-background .button-overlay{display:none}vimeo-embed.has-background-controls .button-overlay{display:flex;background:0 0;justify-content:flex-end;align-items:flex-end;padding:1rem}vimeo-embed.has-background-controls .button-overlay .button{--control-button-size:40px;opacity:.7;transition:opacity .2s ease}vimeo-embed.has-background-controls.is-playing .button-overlay{opacity:0}vimeo-embed .vimeo-error-message{background:rgba(0,0,0,.9);color:#fff;z-index:1000}vimeo-embed .vimeo-error-message .error-content{text-align:center;padding:2rem;max-width:400px}vimeo-embed .vimeo-error-message .error-content svg{color:#00adef;margin-bottom:1rem}vimeo-embed .vimeo-error-message .error-content .error-message{margin:1rem 0;font-size:1rem;line-height:1.5}vimeo-embed .vimeo-error-message .error-content .retry-button{margin-top:1rem;padding:.75rem 1.5rem;background:#00adef;color:#fff;border:0;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:600;transition:background .2s ease}vimeo-embed .vimeo-error-message .error-content .retry-button:hover{background:#0088bf}vimeo-embed .vimeo-error-message .error-content .retry-button:focus{outline:2px solid #fff;outline-offset:2px}
1
+ video-embed,vimeo-embed,youtube-embed{--si-embed-video-aspect-ratio:56.25%;--si-embed-aspect-width:16;--si-embed-aspect-height:9;--si-embed-poster-object-fit:cover;--si-embed-video-object-fit:contain;--si-embed-control-button-size:70px;--si-embed-control-button-color:#ffffff;--si-embed-overlay-background-color:rgba(0, 0, 0, 0.5);display:block;position:relative;width:100%;padding-top:var(--si-embed-video-aspect-ratio);overflow:hidden;background-color:#000}youtube-embed .video-poster,youtube-embed .vimeo-poster,youtube-embed .youtube-poster{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:var(--si-embed-poster-object-fit);display:block;cursor:pointer}youtube-embed .button-overlay,youtube-embed .youtube-error-message{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center}youtube-embed .button-overlay{background:var(--si-embed-overlay-background-color);cursor:pointer;right:0;bottom:0;transition:opacity .3s ease;z-index:10}youtube-embed.is-playing .button-overlay{opacity:0;pointer-events:none}youtube-embed.is-playing:hover .button-overlay{opacity:1;pointer-events:auto}youtube-embed .button-overlay .button{cursor:pointer;display:flex;align-items:center;justify-content:center;height:var(--si-embed-control-button-size);width:var(--si-embed-control-button-size);background-image:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M8%2C5.14V19.14L19%2C12.14L8%2C5.14Z%22%20%2F%3E%3C%2Fsvg%3E);background-size:cover;background-repeat:no-repeat;background-position:center}youtube-embed.is-playing .button-overlay .button{background-image:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M14%2C19H18V5H14M6%2C19H10V5H6V19Z%22%20%2F%3E%3C%2Fsvg%3E)}video-embed.is-background,vimeo-embed.is-background,youtube-embed.is-background{padding-top:0;position:absolute;height:100%;width:100%;top:0;left:0;z-index:0;overflow:hidden;background:#000}vimeo-embed.is-background iframe,youtube-embed.is-background iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);aspect-ratio:var(--si-embed-aspect-width)/var(--si-embed-aspect-height);width:auto;height:auto;min-width:100%;min-height:100%;pointer-events:none}youtube-embed.is-background .button-overlay{display:none}youtube-embed.has-background-controls .button-overlay{display:flex;background:0 0;justify-content:flex-end;align-items:flex-end;padding:1rem}youtube-embed.has-background-controls .button-overlay .button{--si-embed-control-button-size:40px;opacity:.7;transition:opacity .2s ease}youtube-embed.has-background-controls .button-overlay .button:hover,youtube-embed.has-background-controls.is-playing .button-overlay:hover{opacity:1}youtube-embed.has-background-controls.is-playing .button-overlay{opacity:0}youtube-embed .youtube-error-message{background:rgba(0,0,0,.9);color:#fff;z-index:1000}youtube-embed .youtube-error-message .error-content{text-align:center;padding:2rem;max-width:400px}youtube-embed .youtube-error-message .error-content svg{color:red;margin-bottom:1rem}youtube-embed .youtube-error-message .error-content .error-message{margin:1rem 0;font-size:1rem;line-height:1.5}youtube-embed .youtube-error-message .error-content .retry-button{margin-top:1rem;padding:.75rem 1.5rem;background:red;color:#fff;border:0;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:600;transition:background .2s ease}youtube-embed .youtube-error-message .error-content .retry-button:hover{background:#c00}youtube-embed .youtube-error-message .error-content .retry-button:focus{outline:2px solid #fff;outline-offset:2px}video-embed video,vimeo-embed iframe,youtube-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;object-fit:var(--si-embed-video-object-fit)}vimeo-embed .video-poster,vimeo-embed .vimeo-poster,vimeo-embed .youtube-poster{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:var(--si-embed-poster-object-fit);display:block;cursor:pointer}vimeo-embed .button-overlay,vimeo-embed .vimeo-error-message{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center}vimeo-embed .button-overlay{background:var(--si-embed-overlay-background-color);cursor:pointer;right:0;bottom:0;transition:opacity .3s ease;z-index:10}vimeo-embed.is-playing .button-overlay{opacity:0;pointer-events:none}vimeo-embed.is-playing:hover .button-overlay{opacity:1;pointer-events:auto}vimeo-embed .button-overlay .button{cursor:pointer;display:flex;align-items:center;justify-content:center;height:var(--si-embed-control-button-size);width:var(--si-embed-control-button-size);background-image:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M8%2C5.14V19.14L19%2C12.14L8%2C5.14Z%22%20%2F%3E%3C%2Fsvg%3E);background-size:cover;background-repeat:no-repeat;background-position:center}vimeo-embed.is-playing .button-overlay .button{background-image:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M14%2C19H18V5H14M6%2C19H10V5H6V19Z%22%20%2F%3E%3C%2Fsvg%3E)}vimeo-embed.is-background .button-overlay{display:none}vimeo-embed.has-background-controls .button-overlay{display:flex;background:0 0;justify-content:flex-end;align-items:flex-end;padding:1rem}vimeo-embed.has-background-controls .button-overlay .button{--si-embed-control-button-size:40px;opacity:.7;transition:opacity .2s ease}vimeo-embed.has-background-controls .button-overlay .button:hover,vimeo-embed.has-background-controls.is-playing .button-overlay:hover{opacity:1}vimeo-embed.has-background-controls.is-playing .button-overlay{opacity:0}vimeo-embed .vimeo-error-message{background:rgba(0,0,0,.9);color:#fff;z-index:1000}vimeo-embed .vimeo-error-message .error-content{text-align:center;padding:2rem;max-width:400px}vimeo-embed .vimeo-error-message .error-content svg{color:#00adef;margin-bottom:1rem}vimeo-embed .vimeo-error-message .error-content .error-message{margin:1rem 0;font-size:1rem;line-height:1.5}vimeo-embed .vimeo-error-message .error-content .retry-button{margin-top:1rem;padding:.75rem 1.5rem;background:#00adef;color:#fff;border:0;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:600;transition:background .2s ease}vimeo-embed .vimeo-error-message .error-content .retry-button:hover{background:#0088bf}vimeo-embed .vimeo-error-message .error-content .retry-button:focus{outline:2px solid #fff;outline-offset:2px}video-embed .video-poster,video-embed .vimeo-poster,video-embed .youtube-poster{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:var(--si-embed-poster-object-fit);display:block;cursor:pointer}video-embed .button-overlay{background:var(--si-embed-overlay-background-color);position:absolute;left:0;top:0;right:0;bottom:0;height:100%;width:100%;transition:opacity .3s ease;z-index:10}video-embed.is-playing .button-overlay{opacity:0;pointer-events:none}video-embed.is-playing:hover .button-overlay{opacity:1;pointer-events:auto}video-embed .button-overlay,video-embed .button-overlay .button{cursor:pointer;display:flex;align-items:center;justify-content:center}video-embed .button-overlay .button{height:var(--si-embed-control-button-size);width:var(--si-embed-control-button-size);background-image:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M8%2C5.14V19.14L19%2C12.14L8%2C5.14Z%22%20%2F%3E%3C%2Fsvg%3E);background-size:cover;background-repeat:no-repeat;background-position:center}video-embed.is-playing .button-overlay .button{background-image:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M14%2C19H18V5H14M6%2C19H10V5H6V19Z%22%20%2F%3E%3C%2Fsvg%3E)}video-embed.is-background video{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:calc(100%*var(--si-embed-aspect-height)/var(--si-embed-aspect-width));min-width:100%;min-height:100%;object-fit:cover;pointer-events:none}video-embed video::-webkit-media-controls,video-embed.is-background video::-webkit-media-controls{display:none!important}video-embed video::-webkit-media-controls-enclosure,video-embed.is-background video::-webkit-media-controls-enclosure{display:none!important}video-embed.is-background .button-overlay{display:none}video-embed.has-background-controls .button-overlay{display:flex;background:0 0;justify-content:flex-end;align-items:flex-end;padding:1rem}video-embed.has-background-controls .button-overlay .button{--si-embed-control-button-size:40px;opacity:.7;transition:opacity .2s ease}video-embed.has-background-controls .button-overlay .button:hover,video-embed.has-background-controls.is-playing .button-overlay:hover{opacity:1}video-embed.has-background-controls.is-playing .button-overlay{opacity:0}video-embed .video-error-message{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.9);color:#fff;z-index:1000}video-embed .video-error-message .error-content{text-align:center;padding:2rem;max-width:400px}video-embed .video-error-message .error-content svg{color:#f44;margin-bottom:1rem}video-embed .video-error-message .error-content .error-message{margin:1rem 0;font-size:1rem;line-height:1.5}video-embed .video-error-message .error-content .retry-button{margin-top:1rem;padding:.75rem 1.5rem;background:#f44;color:#fff;border:0;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:600;transition:background .2s ease}video-embed .video-error-message .error-content .retry-button:hover{background:#c00}video-embed .video-error-message .error-content .retry-button:focus{outline:2px solid #fff;outline-offset:2px}video-embed[controls] video::-webkit-media-controls{display:flex!important}video-embed[controls] video::-webkit-media-controls-enclosure{display:flex!important}video-embed .video-poster{background-size:cover;background-position:center;background-repeat:no-repeat}video-embed.is-fullscreen{padding-top:0;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999}video-embed.is-fullscreen video{object-fit:contain}