diff --git a/dist/hahow-plyr.css b/dist/hahow-plyr.css index 4c96cf88c..8fb342641 100644 --- a/dist/hahow-plyr.css +++ b/dist/hahow-plyr.css @@ -1 +1 @@ -@keyframes plyr-progress{to{background-position:25px 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{from{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;direction:ltr;font-family:Avenir,"Avenir Next","Helvetica Neue","Segoe UI",Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.7;max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease}.plyr audio,.plyr video{border-radius:inherit;height:auto;vertical-align:middle;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui ::after,.plyr--full-ui ::before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4f5b5f;border-radius:2px;color:#fff;font-size:9px;line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;color:#fff;display:none;font-size:24px;left:0;padding:10px;position:absolute;text-align:center;transform:translateY(-40px);transition:transform .4s ease-in-out;width:100%}.plyr__captions .plyr__caption{background:rgba(0,0,0,.8);border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__captions .plyr__caption div{display:inline}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:24px;padding:20px}}@media (min-width:768px){.plyr__captions{font-size:18px}}.plyr__caption_position__top{bottom:inherit;top:0}.plyr--captions-active .plyr__captions{display:block}.plyr--hide-controls .plyr__captions{transform:translateY(-15px)}.plyr__captions.plyr__caption_position__top{transform:none}.plyr__control{background:0 0;border:0;border-radius:0;color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:10px;position:relative;transition:all .3s ease}.plyr__control svg{display:block;fill:currentColor;height:18px;pointer-events:none;width:18px}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{box-shadow:0 0 0 3px rgba(0,190,164,.35);outline:0}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed{display:none}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#00bea4;color:#fff}.plyr__control--overlaid{background:rgba(0,190,164,.8);border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15);color:#fff;display:none;left:50%;padding:15px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:2}.plyr__control--overlaid svg{height:20px;left:2px;position:relative;width:20px}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{background:#00bea4}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__menu,.plyr__controls .plyr__progress,.plyr__controls .plyr__time,.plyr__controls>.plyr__control{margin-left:5px}.plyr__controls .plyr__menu:first-child,.plyr__controls .plyr__menu:first-child+[data-plyr=pause],.plyr__controls .plyr__progress:first-child,.plyr__controls .plyr__progress:first-child+[data-plyr=pause],.plyr__controls .plyr__time:first-child,.plyr__controls .plyr__time:first-child+[data-plyr=pause],.plyr__controls>.plyr__control:first-child,.plyr__controls>.plyr__control:first-child+[data-plyr=pause]{margin-left:0;margin-right:auto}.plyr__controls .plyr__volume{margin-left:5px}@media (min-width:480px){.plyr__controls .plyr__menu,.plyr__controls .plyr__progress,.plyr__controls .plyr__time,.plyr__controls>.plyr__control{margin-left:10px}.plyr__controls .plyr__menu+.plyr__control,.plyr__controls>.plyr__control+.plyr__control,.plyr__controls>.plyr__control+.plyr__menu{margin-left:5px}}.plyr--video .plyr__controls{background:linear-gradient(transparent,rgba(0,0,0,.7));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;left:0;padding:35px 10px 10px;position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:2}.plyr--video .plyr__controls .plyr__control svg{-webkit-filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15));filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}.plyr--video .plyr__controls .plyr__control.plyr__tab-focus,.plyr--video .plyr__controls .plyr__control:hover,.plyr--video .plyr__controls .plyr__control[aria-expanded=true]{background:#00bea4;color:#fff}.plyr--audio .plyr__controls{background:#fff;border-radius:inherit;color:#4f5b5f;padding:10px}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip]{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__controls:empty{display:none}.plyr__controls:empty~.plyr__captions{transform:translateY(0)}.plyr__video-embed{height:0;padding-bottom:56.25%;position:relative}.plyr__video-embed iframe{border:0;height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:rgba(0,0,0,.75);border-radius:4px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#fff;font-size:16px;margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container::after{border:4px solid transparent;border-top-color:rgba(0,0,0,.75);content:'';height:0;position:absolute;right:15px;top:100%;width:0}.plyr__menu__container ul{list-style:none;margin:0;overflow:hidden;padding:10px}.plyr__menu__container ul li{margin-top:2px}.plyr__menu__container ul li:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#fff;display:flex;font-size:14px;padding:5px 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control::after{border:4px solid transparent;content:'';position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:40px}.plyr__menu__container .plyr__control--forward::after{border-left-color:rgba(255,255,255,.8);right:5px}.plyr__menu__container .plyr__control--forward.plyr__tab-focus::after,.plyr__menu__container .plyr__control--forward:hover::after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:500;margin:10px;margin-bottom:5px;padding-left:40px;position:relative;width:calc(100% - 20px)}.plyr__menu__container .plyr__control--back::after{border-right-color:rgba(255,255,255,.8);left:10px}.plyr__menu__container .plyr__control--back::before{background:#b7c5cd;box-shadow:0 1px 0 #fff;content:'';height:1px;left:0;margin-top:5px;overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus::after,.plyr__menu__container .plyr__control--back:hover::after{border-right-color:currentColor}.plyr__menu__container label.plyr__control{padding-left:10px}.plyr__menu__container label.plyr__control input[type=radio]+span{background:rgba(0,0,0,.1);border-radius:100%;display:block;flex-shrink:0;height:16px;margin-right:10px;position:relative;transition:all .3s ease;width:16px}.plyr__menu__container label.plyr__control input[type=radio]+span::after{background:#fff;border-radius:100%;content:'';height:6px;left:5px;opacity:0;position:absolute;top:5px;transform:scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container label.plyr__control input[type=radio]:checked+span{background:#00bea4}.plyr__menu__container label.plyr__control input[type=radio]:checked+span::after{opacity:1;transform:scale(1)}.plyr__menu__container label.plyr__control input[type=radio]:focus+span{box-shadow:0 0 0 3px rgba(0,190,164,.35);outline:0}.plyr__menu__container label.plyr__control.plyr__tab-focus input[type=radio]+span,.plyr__menu__container label.plyr__control:hover input[type=radio]+span{background:rgba(0,0,0,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:-10px;overflow:hidden;padding-left:35px;pointer-events:none}.plyr--full-ui .plyr__progress input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;border-radius:3px;height:6px;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0))}.plyr--full-ui .plyr__progress input[type=range]::-webkit-slider-thumb{background:#ffb115;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;-webkit-appearance:none;margin-top:-4px}.plyr--full-ui .plyr__progress input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:3px;height:6px;-moz-user-select:none;user-select:none}.plyr--full-ui .plyr__progress input[type=range]::-moz-range-thumb{background:#ffb115;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px}.plyr--full-ui .plyr__progress input[type=range]::-moz-range-progress{background:currentColor;border-radius:3px;height:6px}.plyr--full-ui .plyr__progress input[type=range]::-ms-track{background:0 0;border:0;border-radius:3px;height:6px;-ms-user-select:none;user-select:none;color:transparent}.plyr--full-ui .plyr__progress input[type=range]::-ms-fill-upper{background:0 0;border:0;border-radius:3px;height:6px;-ms-user-select:none;user-select:none}.plyr--full-ui .plyr__progress input[type=range]::-ms-fill-lower{background:0 0;border:0;border-radius:3px;height:6px;-ms-user-select:none;user-select:none;background:currentColor}.plyr--full-ui .plyr__progress input[type=range]::-ms-thumb{background:#ffb115;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;margin-top:0}.plyr--full-ui input[type=range]{-webkit-appearance:none;background:0 0;border:0;border-radius:28px;color:#00bea4;display:block;height:20px;margin:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;border-radius:3px;height:6px;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0))}.plyr--full-ui input[type=range]::-webkit-slider-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;-webkit-appearance:none;margin-top:-4px}.plyr--full-ui input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:3px;height:6px;-moz-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:3px;height:6px}.plyr--full-ui input[type=range]::-ms-track{background:0 0;border:0;border-radius:3px;height:6px;-ms-user-select:none;user-select:none;color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper{background:0 0;border:0;border-radius:3px;height:6px;-ms-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:0 0;border:0;border-radius:3px;height:6px;-ms-user-select:none;user-select:none;background:currentColor}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;margin-top:0}.plyr--full-ui input[type=range]::-ms-tooltip{display:none}.plyr--full-ui input[type=range]:focus{outline:0}.plyr--full-ui input[type=range]::-moz-focus-outer{border:0}.plyr--full-ui input[type=range].plyr__tab-focus::-webkit-slider-runnable-track{box-shadow:0 0 0 3px rgba(0,190,164,.35);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{box-shadow:0 0 0 3px rgba(0,190,164,.35);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{box-shadow:0 0 0 3px rgba(0,190,164,.35);outline:0}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr__poster{background-color:#000;background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease;width:100%;z-index:1}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1;pointer-events:none}.plyr__time{font-size:14px}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr--video .plyr__time{text-shadow:0 1px 1px rgba(0,0,0,.15)}.plyr__tooltip{background:rgba(0,0,0,.75);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#fff;font-size:14px;font-weight:500;line-height:1.3;margin-bottom:10px;opacity:0;padding:5px 7.5px;pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;white-space:nowrap;z-index:2}.plyr__tooltip::before{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(0,0,0,.75);bottom:-4px;content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;transform:translate(-50%,0) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip{left:0;transform:translate(0,10px) scale(.8);transform-origin:0 100%}.plyr__controls>.plyr__control:first-child .plyr__tooltip::before,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip::before{left:19px}.plyr__controls>.plyr__control:last-child .plyr__tooltip{right:0;transform:translate(0,10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip::before{left:auto;right:19px;transform:translateX(50%)}.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0,0) scale(1)}.plyr--video{overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;border-radius:inherit;overflow:hidden;position:relative;z-index:0}.plyr__progress{display:flex;flex:1;left:7px;margin-right:14px;position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-7px;margin-right:-7px;width:calc(100% + 14px)}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{font-size:14px;left:0}.plyr__progress__buffer{-webkit-appearance:none;background:0 0;border:0;border-radius:100px;height:6px;left:0;margin-top:-3px;padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:0 0;transition:width .2s ease}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:6px}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:6px;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;transition:width .2s ease}.plyr--video .plyr__progress__buffer{box-shadow:0 1px 1px rgba(0,0,0,.15);color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress__buffer{color:rgba(183,197,205,.66)}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(47,52,61,.6) 25%,transparent 25%,transparent 50%,rgba(47,52,61,.6) 50%,rgba(47,52,61,.6) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:25px 25px;color:transparent}.plyr--video.plyr--loading .plyr__progress__buffer{background-color:rgba(255,255,255,.25)}.plyr--audio.plyr--loading .plyr__progress__buffer{background-color:rgba(183,197,205,.66)}.plyr__volume{flex:1;position:relative}.plyr__volume input[type=range]{position:relative;z-index:2}@media (min-width:480px){.plyr__volume{max-width:50px}}@media (min-width:768px){.plyr__volume{max-width:80px}}.plyr--is-ios .plyr__volume{display:none!important}.plyr--is-ios.plyr--vimeo [data-plyr=mute]{display:none!important}.plyr--logo{position:absolute;right:20px;top:15px;z-index:1}.plyr--logo a,.plyr--logo a:active,.plyr--logo a:focus,.plyr--logo a:hover{border:0;text-decoration:none;outline:0;transition:none}.plyr--logo a::after,.plyr--logo a:active::after,.plyr--logo a:focus::after,.plyr--logo a:hover::after{content:none;height:auto}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-moz-full-screen video{height:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:fullscreen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-moz-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr:fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr:-webkit-full-screen .plyr__video-embed{overflow:visible}.plyr:-moz-full-screen .plyr__video-embed{overflow:visible}.plyr:-ms-fullscreen .plyr__video-embed{overflow:visible}.plyr:fullscreen .plyr__video-embed{overflow:visible}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}.plyr:-moz-full-screen .plyr__captions{font-size:21px}.plyr:-ms-fullscreen .plyr__captions{font-size:21px}.plyr:fullscreen .plyr__captions{font-size:21px}}.plyr:-webkit-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr:-moz-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr:-ms-fullscreen .plyr__control[data-plyr=zoom]{display:none}.plyr:fullscreen .plyr__control[data-plyr=zoom]{display:none}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-webkit-full-screen .plyr__video-embed{overflow:visible}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}}.plyr:-webkit-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-moz-full-screen video{height:100%}.plyr:-moz-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-moz-full-screen .plyr__video-embed{overflow:visible}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-moz-full-screen .plyr__captions{font-size:21px}}.plyr:-moz-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr:-ms-fullscreen .plyr__video-embed{overflow:visible}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-ms-fullscreen .plyr__captions{font-size:21px}}.plyr:-ms-fullscreen .plyr__control[data-plyr=zoom]{display:none}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;left:0;position:fixed;right:0;top:0;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__video-wrapper{height:100%;width:100%}.plyr--fullscreen-fallback .plyr__video-embed{overflow:visible}.plyr--fullscreen-fallback.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px}}.plyr--fullscreen-fallback .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-webkit-full-screen video{height:100%}.plyr__outer-container:-moz-full-screen video{height:100%}.plyr__outer-container:-ms-fullscreen video{height:100%}.plyr__outer-container:fullscreen video{height:100%}.plyr__outer-container:-webkit-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-moz-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-ms-fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-webkit-full-screen .plyr__video-embed{overflow:visible}.plyr__outer-container:-moz-full-screen .plyr__video-embed{overflow:visible}.plyr__outer-container:-ms-fullscreen .plyr__video-embed{overflow:visible}.plyr__outer-container:fullscreen .plyr__video-embed{overflow:visible}.plyr__outer-container:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-webkit-full-screen.plyr--hide-controls{cursor:none}.plyr__outer-container:-moz-full-screen.plyr--hide-controls{cursor:none}.plyr__outer-container:-ms-fullscreen.plyr--hide-controls{cursor:none}.plyr__outer-container:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-webkit-full-screen .plyr__captions{font-size:21px}.plyr__outer-container:-moz-full-screen .plyr__captions{font-size:21px}.plyr__outer-container:-ms-fullscreen .plyr__captions{font-size:21px}.plyr__outer-container:fullscreen .plyr__captions{font-size:21px}}.plyr__outer-container:-webkit-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-moz-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-ms-fullscreen .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:fullscreen .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-webkit-full-screen .plyr{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-moz-full-screen .plyr{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-ms-fullscreen .plyr{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:fullscreen .plyr{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-webkit-full-screen .plyr video{height:100%}.plyr__outer-container:-moz-full-screen .plyr video{height:100%}.plyr__outer-container:-ms-fullscreen .plyr video{height:100%}.plyr__outer-container:fullscreen .plyr video{height:100%}.plyr__outer-container:-webkit-full-screen .plyr .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-moz-full-screen .plyr .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-ms-fullscreen .plyr .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:fullscreen .plyr .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-webkit-full-screen .plyr .plyr__video-embed{overflow:visible}.plyr__outer-container:-moz-full-screen .plyr .plyr__video-embed{overflow:visible}.plyr__outer-container:-ms-fullscreen .plyr .plyr__video-embed{overflow:visible}.plyr__outer-container:fullscreen .plyr .plyr__video-embed{overflow:visible}.plyr__outer-container:-webkit-full-screen .plyr.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-moz-full-screen .plyr.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-ms-fullscreen .plyr.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:fullscreen .plyr.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-webkit-full-screen .plyr .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-moz-full-screen .plyr .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-ms-fullscreen .plyr .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:fullscreen .plyr .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-webkit-full-screen .plyr .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-moz-full-screen .plyr .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-ms-fullscreen .plyr .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:fullscreen .plyr .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-webkit-full-screen .plyr.plyr--hide-controls{cursor:none}.plyr__outer-container:-moz-full-screen .plyr.plyr--hide-controls{cursor:none}.plyr__outer-container:-ms-fullscreen .plyr.plyr--hide-controls{cursor:none}.plyr__outer-container:fullscreen .plyr.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-webkit-full-screen .plyr .plyr__captions{font-size:21px}.plyr__outer-container:-moz-full-screen .plyr .plyr__captions{font-size:21px}.plyr__outer-container:-ms-fullscreen .plyr .plyr__captions{font-size:21px}.plyr__outer-container:fullscreen .plyr .plyr__captions{font-size:21px}}.plyr__outer-container:-webkit-full-screen .plyr .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-moz-full-screen .plyr .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-ms-fullscreen .plyr .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:fullscreen .plyr .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-webkit-full-screen video{height:100%}.plyr__outer-container:-webkit-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-webkit-full-screen .plyr__video-embed{overflow:visible}.plyr__outer-container:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-webkit-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-webkit-full-screen .plyr__captions{font-size:21px}}.plyr__outer-container:-webkit-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-webkit-full-screen .plyr{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-webkit-full-screen .plyr video{height:100%}.plyr__outer-container:-webkit-full-screen .plyr .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-webkit-full-screen .plyr .plyr__video-embed{overflow:visible}.plyr__outer-container:-webkit-full-screen .plyr.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-webkit-full-screen .plyr .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-webkit-full-screen .plyr .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-webkit-full-screen .plyr.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-webkit-full-screen .plyr .plyr__captions{font-size:21px}}.plyr__outer-container:-webkit-full-screen .plyr .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-moz-full-screen video{height:100%}.plyr__outer-container:-moz-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-moz-full-screen .plyr__video-embed{overflow:visible}.plyr__outer-container:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-moz-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-moz-full-screen .plyr__captions{font-size:21px}}.plyr__outer-container:-moz-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-moz-full-screen .plyr{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-moz-full-screen .plyr video{height:100%}.plyr__outer-container:-moz-full-screen .plyr .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-moz-full-screen .plyr .plyr__video-embed{overflow:visible}.plyr__outer-container:-moz-full-screen .plyr.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-moz-full-screen .plyr .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-moz-full-screen .plyr .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-moz-full-screen .plyr.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-moz-full-screen .plyr .plyr__captions{font-size:21px}}.plyr__outer-container:-moz-full-screen .plyr .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-ms-fullscreen video{height:100%}.plyr__outer-container:-ms-fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-ms-fullscreen .plyr__video-embed{overflow:visible}.plyr__outer-container:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-ms-fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-ms-fullscreen .plyr__captions{font-size:21px}}.plyr__outer-container:-ms-fullscreen .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-ms-fullscreen .plyr{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-ms-fullscreen .plyr video{height:100%}.plyr__outer-container:-ms-fullscreen .plyr .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-ms-fullscreen .plyr .plyr__video-embed{overflow:visible}.plyr__outer-container:-ms-fullscreen .plyr.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-ms-fullscreen .plyr .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-ms-fullscreen .plyr .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-ms-fullscreen .plyr.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-ms-fullscreen .plyr .plyr__captions{font-size:21px}}.plyr__outer-container:-ms-fullscreen .plyr .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;left:0;position:fixed;right:0;top:0;z-index:10000000}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback video{height:100%}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback .plyr__video-embed{overflow:visible}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback .plyr__captions{font-size:21px}}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback .plyr__control[data-plyr=zoom]{display:none}.plyr--fullscreen-fallback .plyr__control[data-plyr=zoom]{display:block!important}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads::after{background:rgba(47,52,61,.8);border-radius:2px;bottom:10px;color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;z-index:3}.plyr__ads::after:empty{display:none}.plyr__cues{background:currentColor;display:block;height:6px;left:0;margin:-3px 0 0;opacity:.8;position:absolute;top:50%;width:3px;z-index:3}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;border:0!important;height:1px!important;padding:0!important;position:absolute!important;width:1px!important}.plyr__controls{display:flex;flex-flow:column}.plyr__controls-top{width:100%}.plyr__controls-bottom{display:flex;justify-content:space-between;width:100%}.plyr__controls-bottom-left,.plyr__controls-bottom-right{align-items:center;display:flex}.plyr__menu__container{border-radius:0}.plyr__menu__container ul{padding:0}.plyr__menu__container ul li{border-bottom:2px solid rgba(255,255,255,.43);margin:0}.plyr__menu__container .subpanel ul li{border-bottom:none}.plyr__menu__container .plyr__control{font-size:16px;font-weight:600;padding:10px 25px 10px 15px}.plyr__menu__container .plyr__control .plyr__menu__value{font-weight:500}.plyr__menu__container .plyr__control--back{margin:0;padding:10px 15px 10px 25px;width:100%}.plyr__menu__container .plyr__control--back::before{margin-top:0}.plyr__tooltip{font-size:14px;border-radius:0}.plyr__control[data-plyr=rewind] .plyr__tooltip{transform:translate(-25%,10px) scale(1)}.plyr__control[data-plyr=rewind] .plyr__tooltip::before{left:25%}.plyr__control[data-plyr=rewind]:hover .plyr__tooltip{transform:translate(-25%,0) scale(1)}.plyr__control[data-plyr=rewind]:hover .plyr__tooltip::before{left:25%}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}@media (max-width:767px){.plyr__time+.plyr__time{display:inherit}}@media (max-width:479px){.plyr__time+.plyr__time{display:none}}.plyr__outer-container{height:100%}.plyr__outer-container .plyr{height:100%}.plyr__outer-container .plyr .plyr__video-wrapper{height:100%}.plyr__outer-container .plyr .plyr__video-wrapper video{height:100%}.plyr__volume{max-width:100px}@media (min-width:480px){.plyr__volume{max-width:100px}}@media (min-width:768px){.plyr__volume{max-width:100px}}.plyr__captions{font-size:24px!important}.plyr .plyr__poster{display:none}.plyr.plyr--full-ui .plyr__poster{display:block}.plyr.plyr--full-ui video::cue{display:none!important}.plyr__progress input[type=range],.plyr__progress__buffer{width:100%}.plyr__control.plyr__add-lecture-note{align-items:center;display:flex;justify-content:space-around}.plyr__control.plyr__add-lecture-note span{line-height:1}.plyr__control.plyr__add-lecture-note svg{margin-right:2px}.plyr__control.plyr__add-lecture-note.disable{color:#aaa}.plyr__control.plyr__add-lecture-note.disable:hover{background:0 0;color:#aaa}.plyr__control.plyr__add-lecture-note.hidden{display:none}.plyr__lecture-note-container{height:10px;left:-2px;position:absolute;top:-4px;width:calc(100% - 14px);z-index:10}.plyr__lecture-note-container.hidden{display:none}.plyr__lecture-note-container .lecture-note{position:absolute}.lecture-note .lecture-note__mark{background-color:#ffb115;cursor:pointer;display:inline-block;height:6px;position:absolute;top:11px;width:3px;z-index:5}.lecture-note .lecture-note__mark:hover{background-color:#ffb115;border-radius:50%;transform:scale(2.5);transition:transform 250ms ease;width:6px}.lecture-note__content-container{align-items:center;background-color:#fff;border-radius:5px;bottom:0;box-shadow:0 0 0 rgba(0,0,0,.67);display:none;left:0;padding:2px 4px 2px 2px;position:absolute;z-index:10}.lecture-note__content-container svg{color:#000;height:18px;width:18px}.lecture-note__content-container .lecture-note__content-textarea{display:none}.lecture-note__content-container .lecture-note__content-show-text{display:inline-block;min-width:160px;word-break:break-all}.lecture-note__content-container.lecture-note__content-container--edit .lecture-note__content-textarea{display:inline-block}.lecture-note__content-container.lecture-note__content-container--edit .lecture-note__content-show-text{display:none}.lecture-note__content-container.lecture-note__content-container--edit,.lecture-note__content-container.lecture-note__content-container--show{display:flex}.lecture-note__content-show-text{color:#000;margin:2px 5px;text-align:left}.lecture-note__content-textarea{border:none 0;color:#000;min-width:160px;outline:0;overflow:hidden;resize:none}.lecture-note__trash-icon-wrapper{line-height:1} \ No newline at end of file +@keyframes plyr-progress{to{background-position:25px 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{from{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;direction:ltr;font-family:Avenir,"Avenir Next","Helvetica Neue","Segoe UI",Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.7;max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease}.plyr audio,.plyr video{border-radius:inherit;height:auto;vertical-align:middle;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui ::after,.plyr--full-ui ::before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4f5b5f;border-radius:2px;color:#fff;font-size:9px;line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;color:#fff;display:none;font-size:24px;left:0;padding:10px;position:absolute;text-align:center;transform:translateY(-40px);transition:transform .4s ease-in-out;width:100%}.plyr__captions .plyr__caption{background:rgba(0,0,0,.8);border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__captions .plyr__caption div{display:inline}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:24px;padding:20px}}@media (min-width:768px){.plyr__captions{font-size:18px}}.plyr__caption_position__top{bottom:inherit;top:0}.plyr--captions-active .plyr__captions{display:block}.plyr--hide-controls .plyr__captions{transform:translateY(-15px)}.plyr__captions.plyr__caption_position__top{transform:none}.plyr__control{background:0 0;border:0;border-radius:0;color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:10px;position:relative;transition:all .3s ease}.plyr__control svg{display:block;fill:currentColor;height:18px;pointer-events:none;width:18px}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{box-shadow:0 0 0 3px rgba(0,190,164,.35);outline:0}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed{display:none}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#00bea4;color:#fff}.plyr__control--overlaid{background:rgba(0,190,164,.8);border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15);color:#fff;display:none;left:50%;padding:15px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:2}.plyr__control--overlaid svg{height:20px;left:2px;position:relative;width:20px}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{background:#00bea4}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__menu,.plyr__controls .plyr__progress,.plyr__controls .plyr__time,.plyr__controls>.plyr__control{margin-left:5px}.plyr__controls .plyr__menu:first-child,.plyr__controls .plyr__menu:first-child+[data-plyr=pause],.plyr__controls .plyr__progress:first-child,.plyr__controls .plyr__progress:first-child+[data-plyr=pause],.plyr__controls .plyr__time:first-child,.plyr__controls .plyr__time:first-child+[data-plyr=pause],.plyr__controls>.plyr__control:first-child,.plyr__controls>.plyr__control:first-child+[data-plyr=pause]{margin-left:0;margin-right:auto}.plyr__controls .plyr__volume{margin-left:5px}@media (min-width:480px){.plyr__controls .plyr__menu,.plyr__controls .plyr__progress,.plyr__controls .plyr__time,.plyr__controls>.plyr__control{margin-left:10px}.plyr__controls .plyr__menu+.plyr__control,.plyr__controls>.plyr__control+.plyr__control,.plyr__controls>.plyr__control+.plyr__menu{margin-left:5px}}.plyr--video .plyr__controls{background:linear-gradient(transparent,rgba(0,0,0,.7));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;left:0;padding:35px 10px 10px;position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:2}.plyr--video .plyr__controls .plyr__control svg{-webkit-filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15));filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}.plyr--video .plyr__controls .plyr__control.plyr__tab-focus,.plyr--video .plyr__controls .plyr__control:hover,.plyr--video .plyr__controls .plyr__control[aria-expanded=true]{background:#00bea4;color:#fff}.plyr--audio .plyr__controls{background:#fff;border-radius:inherit;color:#4f5b5f;padding:10px}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip]{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__controls:empty{display:none}.plyr__controls:empty~.plyr__captions{transform:translateY(0)}.plyr__video-embed{height:0;padding-bottom:56.25%;position:relative}.plyr__video-embed iframe{border:0;height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:rgba(0,0,0,.75);border-radius:4px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#fff;font-size:16px;margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container::after{border:4px solid transparent;border-top-color:rgba(0,0,0,.75);content:'';height:0;position:absolute;right:15px;top:100%;width:0}.plyr__menu__container ul{list-style:none;margin:0;overflow:hidden;padding:10px}.plyr__menu__container ul li{margin-top:2px}.plyr__menu__container ul li:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#fff;display:flex;font-size:14px;padding:5px 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control::after{border:4px solid transparent;content:'';position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:40px}.plyr__menu__container .plyr__control--forward::after{border-left-color:rgba(255,255,255,.8);right:5px}.plyr__menu__container .plyr__control--forward.plyr__tab-focus::after,.plyr__menu__container .plyr__control--forward:hover::after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:500;margin:10px;margin-bottom:5px;padding-left:40px;position:relative;width:calc(100% - 20px)}.plyr__menu__container .plyr__control--back::after{border-right-color:rgba(255,255,255,.8);left:10px}.plyr__menu__container .plyr__control--back::before{background:#b7c5cd;box-shadow:0 1px 0 #fff;content:'';height:1px;left:0;margin-top:5px;overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus::after,.plyr__menu__container .plyr__control--back:hover::after{border-right-color:currentColor}.plyr__menu__container label.plyr__control{padding-left:10px}.plyr__menu__container label.plyr__control input[type=radio]+span{background:rgba(0,0,0,.1);border-radius:100%;display:block;flex-shrink:0;height:16px;margin-right:10px;position:relative;transition:all .3s ease;width:16px}.plyr__menu__container label.plyr__control input[type=radio]+span::after{background:#fff;border-radius:100%;content:'';height:6px;left:5px;opacity:0;position:absolute;top:5px;transform:scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container label.plyr__control input[type=radio]:checked+span{background:#00bea4}.plyr__menu__container label.plyr__control input[type=radio]:checked+span::after{opacity:1;transform:scale(1)}.plyr__menu__container label.plyr__control input[type=radio]:focus+span{box-shadow:0 0 0 3px rgba(0,190,164,.35);outline:0}.plyr__menu__container label.plyr__control.plyr__tab-focus input[type=radio]+span,.plyr__menu__container label.plyr__control:hover input[type=radio]+span{background:rgba(0,0,0,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:-10px;overflow:hidden;padding-left:35px;pointer-events:none}.plyr--full-ui .plyr__progress input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;border-radius:3px;height:6px;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0))}.plyr--full-ui .plyr__progress input[type=range]::-webkit-slider-thumb{background:#ffb115;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;-webkit-appearance:none;margin-top:-4px}.plyr--full-ui .plyr__progress input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:3px;height:6px;-moz-user-select:none;user-select:none}.plyr--full-ui .plyr__progress input[type=range]::-moz-range-thumb{background:#ffb115;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px}.plyr--full-ui .plyr__progress input[type=range]::-moz-range-progress{background:currentColor;border-radius:3px;height:6px}.plyr--full-ui .plyr__progress input[type=range]::-ms-track{background:0 0;border:0;border-radius:3px;height:6px;-ms-user-select:none;user-select:none;color:transparent}.plyr--full-ui .plyr__progress input[type=range]::-ms-fill-upper{background:0 0;border:0;border-radius:3px;height:6px;-ms-user-select:none;user-select:none}.plyr--full-ui .plyr__progress input[type=range]::-ms-fill-lower{background:0 0;border:0;border-radius:3px;height:6px;-ms-user-select:none;user-select:none;background:currentColor}.plyr--full-ui .plyr__progress input[type=range]::-ms-thumb{background:#ffb115;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;margin-top:0}.plyr--full-ui input[type=range]{-webkit-appearance:none;background:0 0;border:0;border-radius:28px;color:#00bea4;display:block;height:20px;margin:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;border-radius:3px;height:6px;-webkit-user-select:none;user-select:none;background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0))}.plyr--full-ui input[type=range]::-webkit-slider-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;-webkit-appearance:none;margin-top:-4px}.plyr--full-ui input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:3px;height:6px;-moz-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:3px;height:6px}.plyr--full-ui input[type=range]::-ms-track{background:0 0;border:0;border-radius:3px;height:6px;-ms-user-select:none;user-select:none;color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper{background:0 0;border:0;border-radius:3px;height:6px;-ms-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:0 0;border:0;border-radius:3px;height:6px;-ms-user-select:none;user-select:none;background:currentColor}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2);box-sizing:border-box;height:14px;position:relative;transition:all .2s ease;width:14px;margin-top:0}.plyr--full-ui input[type=range]::-ms-tooltip{display:none}.plyr--full-ui input[type=range]:focus{outline:0}.plyr--full-ui input[type=range]::-moz-focus-outer{border:0}.plyr--full-ui input[type=range].plyr__tab-focus::-webkit-slider-runnable-track{box-shadow:0 0 0 3px rgba(0,190,164,.35);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{box-shadow:0 0 0 3px rgba(0,190,164,.35);outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{box-shadow:0 0 0 3px rgba(0,190,164,.35);outline:0}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:rgba(255,255,255,.25)}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(255,255,255,.5)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:rgba(183,197,205,.66)}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(47,52,61,.2),0 0 0 3px rgba(0,0,0,.1)}.plyr__poster{background-color:#000;background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease;width:100%;z-index:1}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1;pointer-events:none}.plyr__time{font-size:14px}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr--video .plyr__time{text-shadow:0 1px 1px rgba(0,0,0,.15)}.plyr__tooltip{background:rgba(0,0,0,.75);border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);color:#fff;font-size:14px;font-weight:500;line-height:1.3;margin-bottom:10px;opacity:0;padding:5px 7.5px;pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease;white-space:nowrap;z-index:2}.plyr__tooltip::before{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(0,0,0,.75);bottom:-4px;content:'';height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;transform:translate(-50%,0) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip{left:0;transform:translate(0,10px) scale(.8);transform-origin:0 100%}.plyr__controls>.plyr__control:first-child .plyr__tooltip::before,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip::before{left:19px}.plyr__controls>.plyr__control:last-child .plyr__tooltip{right:0;transform:translate(0,10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip::before{left:auto;right:19px;transform:translateX(50%)}.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0,0) scale(1)}.plyr--video{overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;border-radius:inherit;overflow:hidden;position:relative;z-index:0}.plyr__progress{display:flex;flex:1;left:7px;margin-right:14px;position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-7px;margin-right:-7px;width:calc(100% + 14px)}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{font-size:14px;left:0}.plyr__progress__buffer{-webkit-appearance:none;background:0 0;border:0;border-radius:100px;height:6px;left:0;margin-top:-3px;padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:0 0;transition:width .2s ease}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:6px}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:6px;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;transition:width .2s ease}.plyr--video .plyr__progress__buffer{box-shadow:0 1px 1px rgba(0,0,0,.15);color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress__buffer{color:rgba(183,197,205,.66)}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(47,52,61,.6) 25%,transparent 25%,transparent 50%,rgba(47,52,61,.6) 50%,rgba(47,52,61,.6) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:25px 25px;color:transparent}.plyr--video.plyr--loading .plyr__progress__buffer{background-color:rgba(255,255,255,.25)}.plyr--audio.plyr--loading .plyr__progress__buffer{background-color:rgba(183,197,205,.66)}.plyr__volume{flex:1;position:relative}.plyr__volume input[type=range]{position:relative;z-index:2}@media (min-width:480px){.plyr__volume{max-width:50px}}@media (min-width:768px){.plyr__volume{max-width:80px}}.plyr--is-ios .plyr__volume{display:none!important}.plyr--is-ios.plyr--vimeo [data-plyr=mute]{display:none!important}.plyr--logo{position:absolute;right:20px;top:15px;z-index:1}.plyr--logo a,.plyr--logo a:active,.plyr--logo a:focus,.plyr--logo a:hover{border:0;text-decoration:none;outline:0;transition:none}.plyr--logo a::after,.plyr--logo a:active::after,.plyr--logo a:focus::after,.plyr--logo a:hover::after{content:none;height:auto}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-moz-full-screen video{height:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:fullscreen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-moz-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr:fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr:-webkit-full-screen .plyr__video-embed{overflow:visible}.plyr:-moz-full-screen .plyr__video-embed{overflow:visible}.plyr:-ms-fullscreen .plyr__video-embed{overflow:visible}.plyr:fullscreen .plyr__video-embed{overflow:visible}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}.plyr:-moz-full-screen .plyr__captions{font-size:21px}.plyr:-ms-fullscreen .plyr__captions{font-size:21px}.plyr:fullscreen .plyr__captions{font-size:21px}}.plyr:-webkit-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr:-moz-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr:-ms-fullscreen .plyr__control[data-plyr=zoom]{display:none}.plyr:fullscreen .plyr__control[data-plyr=zoom]{display:none}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-webkit-full-screen .plyr__video-embed{overflow:visible}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px}}.plyr:-webkit-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-moz-full-screen video{height:100%}.plyr:-moz-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr:-moz-full-screen .plyr__video-embed{overflow:visible}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-moz-full-screen .plyr__captions{font-size:21px}}.plyr:-moz-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr:-ms-fullscreen .plyr__video-embed{overflow:visible}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-ms-fullscreen .plyr__captions{font-size:21px}}.plyr:-ms-fullscreen .plyr__control[data-plyr=zoom]{display:none}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;left:0;position:fixed;right:0;top:0;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__video-wrapper{height:100%;width:100%}.plyr--fullscreen-fallback .plyr__video-embed{overflow:visible}.plyr--fullscreen-fallback.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px}}.plyr--fullscreen-fallback .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-webkit-full-screen video{height:100%}.plyr__outer-container:-moz-full-screen video{height:100%}.plyr__outer-container:-ms-fullscreen video{height:100%}.plyr__outer-container:fullscreen video{height:100%}.plyr__outer-container:-webkit-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-moz-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-ms-fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-webkit-full-screen .plyr__video-embed{overflow:visible}.plyr__outer-container:-moz-full-screen .plyr__video-embed{overflow:visible}.plyr__outer-container:-ms-fullscreen .plyr__video-embed{overflow:visible}.plyr__outer-container:fullscreen .plyr__video-embed{overflow:visible}.plyr__outer-container:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-webkit-full-screen.plyr--hide-controls{cursor:none}.plyr__outer-container:-moz-full-screen.plyr--hide-controls{cursor:none}.plyr__outer-container:-ms-fullscreen.plyr--hide-controls{cursor:none}.plyr__outer-container:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-webkit-full-screen .plyr__captions{font-size:21px}.plyr__outer-container:-moz-full-screen .plyr__captions{font-size:21px}.plyr__outer-container:-ms-fullscreen .plyr__captions{font-size:21px}.plyr__outer-container:fullscreen .plyr__captions{font-size:21px}}.plyr__outer-container:-webkit-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-moz-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-ms-fullscreen .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:fullscreen .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-webkit-full-screen .plyr{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-moz-full-screen .plyr{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-ms-fullscreen .plyr{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:fullscreen .plyr{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-webkit-full-screen .plyr video{height:100%}.plyr__outer-container:-moz-full-screen .plyr video{height:100%}.plyr__outer-container:-ms-fullscreen .plyr video{height:100%}.plyr__outer-container:fullscreen .plyr video{height:100%}.plyr__outer-container:-webkit-full-screen .plyr .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-moz-full-screen .plyr .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-ms-fullscreen .plyr .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:fullscreen .plyr .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-webkit-full-screen .plyr .plyr__video-embed{overflow:visible}.plyr__outer-container:-moz-full-screen .plyr .plyr__video-embed{overflow:visible}.plyr__outer-container:-ms-fullscreen .plyr .plyr__video-embed{overflow:visible}.plyr__outer-container:fullscreen .plyr .plyr__video-embed{overflow:visible}.plyr__outer-container:-webkit-full-screen .plyr.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-moz-full-screen .plyr.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-ms-fullscreen .plyr.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:fullscreen .plyr.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-webkit-full-screen .plyr .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-moz-full-screen .plyr .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-ms-fullscreen .plyr .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:fullscreen .plyr .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-webkit-full-screen .plyr .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-moz-full-screen .plyr .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-ms-fullscreen .plyr .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:fullscreen .plyr .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-webkit-full-screen .plyr.plyr--hide-controls{cursor:none}.plyr__outer-container:-moz-full-screen .plyr.plyr--hide-controls{cursor:none}.plyr__outer-container:-ms-fullscreen .plyr.plyr--hide-controls{cursor:none}.plyr__outer-container:fullscreen .plyr.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-webkit-full-screen .plyr .plyr__captions{font-size:21px}.plyr__outer-container:-moz-full-screen .plyr .plyr__captions{font-size:21px}.plyr__outer-container:-ms-fullscreen .plyr .plyr__captions{font-size:21px}.plyr__outer-container:fullscreen .plyr .plyr__captions{font-size:21px}}.plyr__outer-container:-webkit-full-screen .plyr .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-moz-full-screen .plyr .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-ms-fullscreen .plyr .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:fullscreen .plyr .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-webkit-full-screen video{height:100%}.plyr__outer-container:-webkit-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-webkit-full-screen .plyr__video-embed{overflow:visible}.plyr__outer-container:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-webkit-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-webkit-full-screen .plyr__captions{font-size:21px}}.plyr__outer-container:-webkit-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-webkit-full-screen .plyr{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-webkit-full-screen .plyr video{height:100%}.plyr__outer-container:-webkit-full-screen .plyr .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-webkit-full-screen .plyr .plyr__video-embed{overflow:visible}.plyr__outer-container:-webkit-full-screen .plyr.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-webkit-full-screen .plyr .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-webkit-full-screen .plyr .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-webkit-full-screen .plyr.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-webkit-full-screen .plyr .plyr__captions{font-size:21px}}.plyr__outer-container:-webkit-full-screen .plyr .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-moz-full-screen video{height:100%}.plyr__outer-container:-moz-full-screen .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-moz-full-screen .plyr__video-embed{overflow:visible}.plyr__outer-container:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-moz-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-moz-full-screen .plyr__captions{font-size:21px}}.plyr__outer-container:-moz-full-screen .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-moz-full-screen .plyr{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-moz-full-screen .plyr video{height:100%}.plyr__outer-container:-moz-full-screen .plyr .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-moz-full-screen .plyr .plyr__video-embed{overflow:visible}.plyr__outer-container:-moz-full-screen .plyr.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-moz-full-screen .plyr .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-moz-full-screen .plyr .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-moz-full-screen .plyr.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-moz-full-screen .plyr .plyr__captions{font-size:21px}}.plyr__outer-container:-moz-full-screen .plyr .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-ms-fullscreen video{height:100%}.plyr__outer-container:-ms-fullscreen .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-ms-fullscreen .plyr__video-embed{overflow:visible}.plyr__outer-container:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-ms-fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-ms-fullscreen .plyr__captions{font-size:21px}}.plyr__outer-container:-ms-fullscreen .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container:-ms-fullscreen .plyr{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr__outer-container:-ms-fullscreen .plyr video{height:100%}.plyr__outer-container:-ms-fullscreen .plyr .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container:-ms-fullscreen .plyr .plyr__video-embed{overflow:visible}.plyr__outer-container:-ms-fullscreen .plyr.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container:-ms-fullscreen .plyr .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container:-ms-fullscreen .plyr .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container:-ms-fullscreen .plyr.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container:-ms-fullscreen .plyr .plyr__captions{font-size:21px}}.plyr__outer-container:-ms-fullscreen .plyr .plyr__control[data-plyr=zoom]{display:none}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;left:0;position:fixed;right:0;top:0;z-index:10000000}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback video{height:100%}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback .plyr__video-wrapper{height:100%;width:100%}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback .plyr__video-embed{overflow:visible}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback .plyr__captions{font-size:21px}}.plyr__outer-container .plyr__outer-container.plyr--fullscreen-fallback .plyr__control[data-plyr=zoom]{display:none}.plyr--fullscreen-fallback .plyr__control[data-plyr=zoom]{display:block!important}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads::after{background:rgba(47,52,61,.8);border-radius:2px;bottom:10px;color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;z-index:3}.plyr__ads::after:empty{display:none}.plyr__cues{background:currentColor;display:block;height:6px;left:0;margin:-3px 0 0;opacity:.8;position:absolute;top:50%;width:3px;z-index:3}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;border:0!important;height:1px!important;padding:0!important;position:absolute!important;width:1px!important}.plyr__controls{display:flex;flex-flow:column}.plyr__controls-top{width:100%}.plyr__controls-bottom{display:flex;justify-content:space-between;width:100%}.plyr__controls-bottom-left,.plyr__controls-bottom-right{align-items:center;display:flex}.plyr__menu__container{border-radius:0}.plyr__menu__container ul{padding:0}.plyr__menu__container ul li{border-bottom:2px solid rgba(255,255,255,.43);margin:0}.plyr__menu__container .subpanel ul li{border-bottom:none}.plyr__menu__container .plyr__control{font-size:16px;font-weight:600;padding:10px 25px 10px 15px}.plyr__menu__container .plyr__control .plyr__menu__value{font-weight:500}.plyr__menu__container .plyr__control--back{margin:0;padding:10px 15px 10px 25px;width:100%}.plyr__menu__container .plyr__control--back::before{margin-top:0}.plyr__tooltip{font-size:14px;border-radius:0}.plyr__control[data-plyr=rewind] .plyr__tooltip{transform:translate(-25%,10px) scale(1)}.plyr__control[data-plyr=rewind] .plyr__tooltip::before{left:25%}.plyr__control[data-plyr=rewind]:hover .plyr__tooltip{transform:translate(-25%,0) scale(1)}.plyr__control[data-plyr=rewind]:hover .plyr__tooltip::before{left:25%}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}@media (max-width:767px){.plyr__time+.plyr__time{display:inherit}}@media (max-width:479px){.plyr__time+.plyr__time{display:none}}.plyr__outer-container{height:100%}.plyr__outer-container .plyr{height:100%}.plyr__outer-container .plyr .plyr__video-wrapper{height:100%}.plyr__outer-container .plyr .plyr__video-wrapper video{height:100%}.plyr__volume{max-width:100px}@media (min-width:480px){.plyr__volume{max-width:100px}}@media (min-width:768px){.plyr__volume{max-width:100px}}.plyr__captions{font-size:24px!important}.plyr .plyr__poster{display:none}.plyr.plyr--full-ui .plyr__poster{display:block}.plyr.plyr--full-ui video::cue{display:none!important}.plyr__progress input[type=range],.plyr__progress__buffer{width:100%}.plyr__control.plyr__add-lecture-note{align-items:center;display:flex;justify-content:space-around}.plyr__control.plyr__add-lecture-note span{line-height:1}.plyr__control.plyr__add-lecture-note svg{margin-right:2px}.plyr__control.plyr__add-lecture-note.disable{color:#aaa}.plyr__control.plyr__add-lecture-note.disable:hover{background:0 0;color:#aaa}.plyr__control.plyr__add-lecture-note.hidden{display:none}.plyr__lecture-note-container{height:10px;left:-2px;position:absolute;top:-4px;width:calc(100% - 14px);z-index:10}.plyr__lecture-note-container.hidden{display:none}.plyr__lecture-note-container .lecture-note{position:absolute}.lecture-note .lecture-note__mark{background-color:#ffb115;cursor:pointer;display:inline-block;height:6px;position:absolute;top:11px;width:3px;z-index:5}.lecture-note .lecture-note__mark:hover{background-color:#ffb115;border-radius:50%;transform:scale(2.5);transition:transform 250ms ease;width:6px}.lecture-note__content-container{align-items:center;background-color:#fff;border-radius:5px;bottom:0;box-shadow:0 0 0 rgba(0,0,0,.67);display:none;left:0;padding:2px 4px 2px 2px;position:absolute;z-index:10}.lecture-note__content-container svg{color:#000;height:18px;width:18px}.lecture-note__content-container .lecture-note__content-textarea{display:none}.lecture-note__content-container .lecture-note__content-show-text{display:inline-block;min-width:160px;word-break:break-all}.lecture-note__content-container.lecture-note__content-container--edit .lecture-note__content-textarea{display:inline-block}.lecture-note__content-container.lecture-note__content-container--edit .lecture-note__content-show-text{display:none}.lecture-note__content-container.lecture-note__content-container--edit,.lecture-note__content-container.lecture-note__content-container--show{display:flex}.lecture-note__content-container.lecture-note__content-container--near-end{left:auto;right:0}.lecture-note__content-show-text{color:#000;margin:2px 5px;text-align:left}.lecture-note__content-textarea{border:none 0;color:#000;min-width:160px;outline:0;overflow:hidden;resize:none}.lecture-note__trash-icon-wrapper{line-height:1} \ No newline at end of file diff --git a/dist/plyr.js b/dist/plyr.js index f095a1d8d..5d5a01030 100644 --- a/dist/plyr.js +++ b/dist/plyr.js @@ -7861,6 +7861,13 @@ typeof navigator === "object" && (function (global, factory) { cancelTimeout = null; } toggleClass(contentContainer, 'lecture-note__content-container--show', true); + var container = _this.getContainer(); + var leftLimit = (container.offsetWidth - 200) / container.offsetWidth * 100 || 0; + if (percent > leftLimit) { + toggleClass(contentContainer, 'lecture-note__content-container--near-end', true); + } else { + toggleClass(contentContainer, 'lecture-note__content-container--near-end', false); + } e.preventDefault(); }); @@ -7878,6 +7885,13 @@ typeof navigator === "object" && (function (global, factory) { cancelTimeout = null; } toggleClass(contentContainer, 'lecture-note__content-container--show', true); + var container = _this.getContainer(); + var leftLimit = (container.offsetWidth - 200) / container.offsetWidth; + if (percent > leftLimit) { + toggleClass(contentContainer, 'lecture-note__content-container--near-end', true); + } else { + toggleClass(contentContainer, 'lecture-note__content-container--near-end', false); + } e.preventDefault(); }); @@ -7889,7 +7903,7 @@ typeof navigator === "object" && (function (global, factory) { e.preventDefault(); }); - lectureNoteContainer.style.left = 'calc(' + (lectureNote.time / duration * 100 || 0) + '%)'; + lectureNoteContainer.style.left = 'calc(' + percent + '%)'; return lectureNoteContainer; } }]); diff --git a/dist/plyr.js.map b/dist/plyr.js.map index 702512caf..29718c2d6 100644 --- a/dist/plyr.js.map +++ b/dist/plyr.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/js/utils/is.js","src/js/utils/events.js","src/js/utils/elements.js","src/js/utils/animation.js","src/js/utils/browser.js","src/js/support.js","src/js/html5.js","src/js/utils/objects.js","src/js/utils/strings.js","src/js/i18n.js","src/js/utils/arrays.js","src/js/storage.js","src/js/utils/fetch.js","src/js/utils/loadSprite.js","src/js/utils/time.js","src/js/controls.js","src/js/utils/urls.js","src/js/captions.js","src/js/config/defaults.js","src/js/config/types.js","src/js/console.js","src/js/fullscreen.js","src/js/hahowCustomControl.js","src/js/utils/loadImage.js","src/js/ui.js","src/js/listeners.js","src/js/logo.js","node_modules/loadjs/dist/loadjs.umd.js","src/js/utils/loadScript.js","src/js/plugins/vimeo.js","src/js/plugins/youtube.js","src/js/media.js","src/js/plugins/ads.js","src/js/plugins/lectureNote.js","src/js/source.js","src/js/plyr.js"],"names":["getConstructor","input","constructor","instanceOf","Boolean","isNullOrUndefined","isObject","Object","isNumber","Number","isNaN","isString","String","isBoolean","isFunction","Function","isArray","Array","isWeakMap","WeakMap","isNodeList","NodeList","isElement","Element","isTextNode","Text","isEvent","Event","isCue","window","TextTrackCue","VTTCue","isTrack","TextTrack","kind","isEmpty","length","keys","isUrl","URL","string","startsWith","hostname","e","nullOrUndefined","object","number","boolean","function","array","weakMap","nodeList","element","textNode","event","cue","track","url","empty","supportsPassiveListeners","supported","options","defineProperty","get","addEventListener","removeEventListener","toggleListener","callback","toggle","passive","capture","is","events","split","forEach","eventListeners","push","type","on","call","off","once","onceCallback","args","apply","triggerEvent","bubbles","detail","CustomEvent","assign","plyr","dispatchEvent","err","Error","JSON","stringify","unbindListeners","item","ready","Promise","setTimeout","resolve","elements","container","then","wrap","wrapper","targets","from","reverse","index","child","cloneNode","parent","parentNode","sibling","nextSibling","appendChild","insertBefore","setAttributes","attributes","entries","filter","value","key","setAttribute","createElement","text","document","innerText","insertAfter","target","insertElement","removeElement","removeChild","emptyElement","childNodes","lastChild","replaceElement","newChild","oldChild","replaceChild","getAttributesFromSelector","sel","existingAttributes","existing","selector","s","trim","className","replace","stripped","parts","start","charAt","class","id","toggleHidden","hidden","hide","hasAttribute","removeAttribute","toggleClass","force","method","classList","contains","hasClass","matches","prototype","match","querySelectorAll","includes","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","getElements","getElement","querySelector","getFocusElement","focused","activeElement","body","trapFocus","focusable","first","last","trap","keyCode","shiftKey","focus","preventDefault","transitionEndEvent","WebkitTransition","MozTransition","OTransition","transition","find","style","undefined","repaint","offsetHeight","browser","isIE","documentMode","isWebkit","documentElement","test","navigator","userAgent","isIPhone","platform","isIos","defaultCodecs","support","audio","video","check","provider","playsinline","canPlayInline","api","ui","rangeInput","pip","webkitSetPresentationMode","airplay","WebKitPlaybackTargetAvailabilityEvent","mime","inputType","mediaType","isHTML5","media","canPlayType","textTracks","range","touch","transitions","reducedMotion","matchMedia","html5","getSources","sources","source","getAttribute","getQualityOptions","map","extend","player","configurable","set","currentTime","paused","preload","readyState","pause","setImmediate","src","play","load","speed","storage","controls","updateSetting","quality","cancelRequests","config","blankVideo","debug","log","cloneDeep","parse","getDeep","path","reduce","obj","shift","generateId","prefix","Math","floor","random","format","toString","i","getPercentage","current","max","toFixed","replaceAll","RegExp","toTitleCase","toUpperCase","substr","toLowerCase","toPascalCase","toCamelCase","slice","stripHTML","fragment","createDocumentFragment","innerHTML","firstChild","getHTML","i18n","seekTime","title","dedupe","indexOf","closest","prev","curr","abs","Storage","enabled","store","localStorage","getItem","json","setItem","removeItem","fetch","responseType","reject","request","XMLHttpRequest","responseText","response","status","open","send","loadSprite","hasId","isCached","exists","getElementById","update","data","insertAdjacentElement","useStorage","cached","content","result","catch","getHours","parseInt","getMinutes","getSeconds","formatTime","time","displayHours","inverted","hours","mins","secs","getIconUrl","iconUrl","location","cors","host","svg4everybody","findElements","selectors","buttons","restart","rewind","fastForward","mute","settings","captions","fullscreen","progress","inputs","seek","volume","display","buffer","duration","seekTooltip","classNames","tooltip","error","warn","toggleNativeControls","createIcon","namespace","iconPath","iconPrefix","icon","createElementNS","role","use","setAttributeNS","createLabel","attr","universals","join","createBadge","badge","menu","createButton","buttonType","button","label","labelPressed","iconPressed","control","controlPressed","enumerable","pressed","createRange","min","step","autocomplete","updateRangeFill","createProgress","suffixKey","played","suffix","createTime","createMenuItem","list","checked","radio","name","faux","insertAdjacentHTML","forceHours","updateTimeDisplay","updateVolume","setRange","muted","updateProgress","setProgress","getElementsByTagName","nodeValue","buffered","percent","setProperty","updateSeekTooltip","tooltips","clientRect","getBoundingClientRect","visible","width","pageX","left","parseFloat","timeUpdate","invert","invertTime","seeking","durationUpdate","hasDuration","displayDuration","toggleTab","setting","tabs","setQualityMenu","panes","checkMenu","getBadge","sort","a","b","sorting","getLabel","pane","currentTrack","captionPosition","default","setCaptionsMenu","tracks","getTracks","toggled","language","unshift","bind","setCaptionsPositionMenu","positions","position","setSpeedMenu","isVimeo","values","some","tab","toggleMenu","form","show","isMenuItem","isButton","stopPropagation","getTabSize","clone","opacity","scrollWidth","height","scrollHeight","showTab","isTab","size","restore","propertyName","create","tabindex","inner","home","back","inject","props","seektime","insertMethod","labels","parseUrl","safe","parser","href","buildUrlParams","params","URLSearchParams","setup","isVideo","isYouTube","protocol","createObjectURL","blob","languages","userLanguage","active","setPosition","trackEvents","meta","currentTrackNode","languageExists","mode","updateCues","setLanguage","customMenu","caption","activeClass","findTrack","embed","enableTextTrack","has","sortIsDefault","sorted","every","getCurrentTrack","cues","activeCues","getCueAsHTML","cueText","changed","setDefault","defaultLanguage","captionsActive","captionsLanguage","findLanguageList","defaults","autoplay","autopause","toggleInvert","ratio","clickToPlay","hideControls","resetOnEnd","disableContextMenu","logo","link","fullscreenContainer","loop","selected","keyboard","global","fallback","iosNative","seekLabel","unmute","enableCaptions","disableCaptions","enterFullscreen","exitFullscreen","enterZoom","exitZoom","frameTitle","noCaptions","top","bottom","menuBack","normal","end","all","reset","disabled","advertisement","qualityBadge","urls","vimeo","sdk","iframe","youtube","googleIMA","listeners","editable","layer","topLayer","bottomLayer","right","zoom","embedContainer","poster","posterEnabled","ads","playing","stopped","loading","hover","isTouch","uiSupported","noTransition","tabFocus","outerContainer","google","publisherId","providers","types","getProviderByUrl","noop","Console","console","onChange","isZoom","zoomActive","isIosNative","isOutterContainerSet","toggleFallback","scrollPosition","x","scrollX","y","scrollY","scrollTo","overflow","Fullscreen","property","native","toggleZoom","webkitEnterFullscreen","requestFullscreen","webkitExitFullscreen","cancelFullScreen","action","enter","exit","fullscreenElement","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","prefixes","pre","hahow","createControls","bottomLeft","bottomRight","addLecturneNoteBtn","lectureNote","addLectureNote","loadImage","minWidth","image","Image","handler","onload","onerror","naturalWidth","addStyleHook","addStylehookToFullscreenContainer","build","checkPlaying","setTitle","setPoster","isEmbed","togglePoster","enable","backgroundImage","backgroundSize","toggleControls","checkLoading","clearTimeout","timers","Listeners","lastKey","handleKey","firstTouch","code","which","repeat","altKey","ctrlKey","metaKey","seekByKey","togglePlay","increaseVolume","decreaseVolume","forward","toggleCaptions","delay","isAlreadyRegisterEventListener","hasAudio","initialized","managerPromise","proxyEvents","concat","isAudio","ended","inputEvent","proxy","defaultHandler","customHandlerKey","customHandler","hasCustomHandler","returned","currentTarget","eventType","done","seekTo","webkitDirectionInvertedFromDevice","deltaX","deltaY","direction","sign","logoContainer","imageContainer","linkElement","logoElement","define","this","loadScript","loadjs","success","parseId","regex","$2","getAspectRatio","getRatio","w","h","assurePlaybackState","hasPlayed","setAspectRatio","Vimeo","padding","paddingBottom","offset","transform","byline","portrait","transparent","gesture","thumbnail_large","pathname","Player","disableTextTrack","stop","restorePause","setVolume","setCurrentTime","setPlaybackRate","setLoop","currentSrc","getVideoUrl","getVideoWidth","getVideoHeight","dimensions","setAutopause","state","getVideoTitle","getCurrentTime","getDuration","getTextTracks","strippedCues","getPaused","frame","seconds","mapQualityUnit","qualities","hd2160","hd1440","hd1080","hd720","large","medium","small","tiny","entry","mapQualityUnits","levels","level","YT","onYouTubeReadyCallbacks","onYouTubeIframeAPIReady","getTitle","videoId","getVideoData","items","snippet","currentId","posterSrc","playerVars","hl","rel","showinfo","iv_load_policy","modestbranding","disablekb","widget_referrer","cc_load_policy","cc_lang_pref","onError","message","onPlaybackQualityChange","onPlaybackRateChange","instance","playbackRate","getPlaybackRate","onReady","playVideo","pauseVideo","stopVideo","getPlaybackQuality","setPlaybackQuality","getAvailablePlaybackRates","clearInterval","buffering","setInterval","getVideoLoadedFraction","lastBuffered","onStateChange","seeked","getAvailableQualityLevels","unMute","Ads","displayContainer","manager","loader","cuePoints","safetyTimer","countdownTimer","ima","trigger","startSafetyTimer","clearSafetyTimer","setupIMA","setVpaidMode","ImaSdkSettings","VpaidMode","ENABLED","setLocale","AdDisplayContainer","requestAds","AdsLoader","AdsManagerLoadedEvent","Type","ADS_MANAGER_LOADED","onAdsManagerLoaded","AdErrorEvent","AD_ERROR","onAdError","AdsRequest","adTagUrl","tagUrl","linearAdSlotWidth","offsetWidth","linearAdSlotHeight","nonLinearAdSlotWidth","nonLinearAdSlotHeight","forceNonLinearFullSlot","setAdWillPlayMuted","getRemainingTime","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","enablePreloading","getAdsManager","getCuePoints","cuePoint","seekElement","cuePercentage","AdEvent","onAdEvent","ad","getAd","LOADED","pollCountdown","isLinear","ALL_ADS_COMPLETED","loadAds","CONTENT_PAUSE_REQUESTED","pauseContent","CONTENT_RESUME_REQUESTED","resumeContent","STARTED","MIDPOINT","COMPLETE","IMPRESSION","CLICK","cancel","contentComplete","seekedTime","discardAdBreak","splice","resize","ViewMode","NORMAL","initialize","init","adError","zIndex","destroy","handlers","AV_PUBLISHERID","AV_CHANNELID","AV_URL","cb","Date","now","AV_WIDTH","AV_HEIGHT","AV_CDIM2","base","LectureNoteModel","showStatus","ShowStatus","Edit","noteStatus","NoteStatus","Create","note","Hide","Normal","AddLectureNoteButtonStatus","Enable","Disable","Hidden","LectureNote","lectureNoteList","lectureNoteContainer","addLectureNoteButtonStatus","isLoadedLectureNote","hiddenLectureNote","updateAddLectureNoteButtonUI","addLectureNoteButton","getContainer","isLectureNoteExists","_id","lectureNoteDOM","generateLectureNoteDOM","lectureNotes","setupUI","enableLectureNote","round","getSameTimeLectureNote","contentContianer","clickEvent","disableLectureNote","newLectureNote","parentElement","progresses","lectureNoteId","cancelTimeout","mark","contentContainer","contentTextarea","placeholder","maxLength","rows","contentShowText","trashIconWrapper","trashIcon","removeLectureNote","isInComposition","insertElements","attribute","change","clear","prevType","prevProvider","tagName","crossorigin","defaultCaption","defaultTracks","srclang","Plyr","failed","jQuery","original","search","truthy","searchParams","webkitShowPlaybackTargetPicker","isHidden","hiding","eventName","soft","unload","inputIsValid","fauxDuration","realDuration","Infinity","mozHasAudio","webkitAudioDecodedByteCount","audioTracks","states","inline","webkitPresentationMode","t"],"mappings":"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","file":"plyr.js","sourcesContent":["// ==========================================================================\n// Type checking utils\n// ==========================================================================\n\nconst getConstructor = input => (input !== null && typeof input !== 'undefined' ? input.constructor : null);\nconst instanceOf = (input, constructor) => Boolean(input && constructor && input instanceof constructor);\nconst isNullOrUndefined = input => input === null || typeof input === 'undefined';\nconst isObject = input => getConstructor(input) === Object;\nconst isNumber = input => getConstructor(input) === Number && !Number.isNaN(input);\nconst isString = input => getConstructor(input) === String;\nconst isBoolean = input => getConstructor(input) === Boolean;\nconst isFunction = input => getConstructor(input) === Function;\nconst isArray = input => Array.isArray(input);\nconst isWeakMap = input => instanceOf(input, WeakMap);\nconst isNodeList = input => instanceOf(input, NodeList);\nconst isElement = input => instanceOf(input, Element);\nconst isTextNode = input => getConstructor(input) === Text;\nconst isEvent = input => instanceOf(input, Event);\nconst isCue = input => instanceOf(input, window.TextTrackCue) || instanceOf(input, window.VTTCue);\nconst isTrack = input => instanceOf(input, TextTrack) || (!isNullOrUndefined(input) && isString(input.kind));\n\nconst isEmpty = input =>\n isNullOrUndefined(input) ||\n ((isString(input) || isArray(input) || isNodeList(input)) && !input.length) ||\n (isObject(input) && !Object.keys(input).length);\n\nconst isUrl = input => {\n // Accept a URL object\n if (instanceOf(input, window.URL)) {\n return true;\n }\n\n // Add the protocol if required\n let string = input;\n if (!input.startsWith('http://') || !input.startsWith('https://')) {\n string = `http://${input}`;\n }\n\n try {\n return !isEmpty(new URL(string).hostname);\n } catch (e) {\n return false;\n }\n};\n\nexport default {\n nullOrUndefined: isNullOrUndefined,\n object: isObject,\n number: isNumber,\n string: isString,\n boolean: isBoolean,\n function: isFunction,\n array: isArray,\n weakMap: isWeakMap,\n nodeList: isNodeList,\n element: isElement,\n textNode: isTextNode,\n event: isEvent,\n cue: isCue,\n track: isTrack,\n url: isUrl,\n empty: isEmpty,\n};\n","// ==========================================================================\n// Event utils\n// ==========================================================================\n\nimport is from './is';\n\n// Check for passive event listener support\n// https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n// https://www.youtube.com/watch?v=NPM6172J22g\nconst supportsPassiveListeners = (() => {\n // Test via a getter in the options object to see if the passive property is accessed\n let supported = false;\n try {\n const options = Object.defineProperty({}, 'passive', {\n get() {\n supported = true;\n return null;\n },\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n // Do nothing\n }\n\n return supported;\n})();\n\n// Toggle event listener\nexport function toggleListener(element, event, callback, toggle = false, passive = true, capture = false) {\n // Bail if no element, event, or callback\n if (!element || !('addEventListener' in element) || is.empty(event) || !is.function(callback)) {\n return;\n }\n\n // Allow multiple events\n const events = event.split(' ');\n\n // Build options\n // Default to just the capture boolean for browsers with no passive listener support\n let options = capture;\n\n // If passive events listeners are supported\n if (supportsPassiveListeners) {\n options = {\n // Whether the listener can be passive (i.e. default never prevented)\n passive,\n // Whether the listener is a capturing listener or not\n capture,\n };\n }\n\n // If a single node is passed, bind the event listener\n events.forEach(type => {\n if (this && this.eventListeners && toggle) {\n // Cache event listener\n this.eventListeners.push({ element, type, callback, options });\n }\n\n element[toggle ? 'addEventListener' : 'removeEventListener'](type, callback, options);\n });\n}\n\n// Bind event handler\nexport function on(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, true, passive, capture);\n}\n\n// Unbind event handler\nexport function off(element, events = '', callback, passive = true, capture = false) {\n toggleListener.call(this, element, events, callback, false, passive, capture);\n}\n\n// Bind once-only event handler\nexport function once(element, events = '', callback, passive = true, capture = false) {\n function onceCallback(...args) {\n off(element, events, onceCallback, passive, capture);\n callback.apply(this, args);\n }\n\n toggleListener.call(this, element, events, onceCallback, true, passive, capture);\n}\n\n// Trigger event\nexport function triggerEvent(element, type = '', bubbles = false, detail = {}) {\n // Bail if no element\n if (!is.element(element) || is.empty(type)) {\n return;\n }\n\n // Create and dispatch the event\n const event = new CustomEvent(type, {\n bubbles,\n detail: Object.assign({}, detail, {\n plyr: this,\n }),\n });\n\n // Dispatch the event\n\n try {\n element.dispatchEvent(event);\n } catch (err) {\n throw new Error(`CustomEvent ${event.type}: ${JSON.stringify(event.detail)}`);\n }\n}\n\n// Unbind all cached event listeners\nexport function unbindListeners() {\n if (this && this.eventListeners) {\n this.eventListeners.forEach(item => {\n const { element, type, callback, options } = item;\n element.removeEventListener(type, callback, options);\n });\n\n this.eventListeners = [];\n }\n}\n\n// Run method when / if player is ready\nexport function ready() {\n return new Promise(\n resolve => (this.ready ? setTimeout(resolve, 0) : on.call(this, this.elements.container, 'ready', resolve)),\n ).then(() => {});\n}\n","// ==========================================================================\n// Element utils\n// ==========================================================================\n\nimport { toggleListener } from './events';\nimport is from './is';\n\n// Wrap an element\nexport function wrap(elements, wrapper) {\n // Convert `elements` to an array, if necessary.\n const targets = elements.length ? elements : [elements];\n\n // Loops backwards to prevent having to clone the wrapper on the\n // first element (see `child` below).\n Array.from(targets)\n .reverse()\n .forEach((element, index) => {\n const child = index > 0 ? wrapper.cloneNode(true) : wrapper;\n\n // Cache the current parent and sibling.\n const parent = element.parentNode;\n const sibling = element.nextSibling;\n\n // Wrap the element (is automatically removed from its current\n // parent).\n child.appendChild(element);\n\n // If the element had a sibling, insert the wrapper before\n // the sibling to maintain the HTML structure; otherwise, just\n // append it to the parent.\n if (sibling) {\n parent.insertBefore(child, sibling);\n } else {\n parent.appendChild(child);\n }\n });\n}\n\n// Set attributes\nexport function setAttributes(element, attributes) {\n if (!is.element(element) || is.empty(attributes)) {\n return;\n }\n\n // Assume null and undefined attributes should be left out,\n // Setting them would otherwise convert them to \"null\" and \"undefined\"\n Object.entries(attributes)\n .filter(([, value]) => !is.nullOrUndefined(value))\n .forEach(([key, value]) => element.setAttribute(key, value));\n}\n\n// Create a DocumentFragment\nexport function createElement(type, attributes, text) {\n // Create a new \n const element = document.createElement(type);\n\n // Set all passed attributes\n if (is.object(attributes)) {\n setAttributes(element, attributes);\n }\n\n // Add text node\n if (is.string(text)) {\n element.innerText = text;\n }\n\n // Return built element\n return element;\n}\n\n// Inaert an element after another\nexport function insertAfter(element, target) {\n target.parentNode.insertBefore(element, target.nextSibling);\n}\n\n// Insert a DocumentFragment\nexport function insertElement(type, parent, attributes, text) {\n // Inject the new \n parent.appendChild(createElement(type, attributes, text));\n}\n\n// Remove element(s)\nexport function removeElement(element) {\n if (is.nodeList(element) || is.array(element)) {\n Array.from(element).forEach(removeElement);\n return;\n }\n\n if (!is.element(element) || !is.element(element.parentNode)) {\n return;\n }\n\n element.parentNode.removeChild(element);\n}\n\n// Remove all child elements\nexport function emptyElement(element) {\n let { length } = element.childNodes;\n\n while (length > 0) {\n element.removeChild(element.lastChild);\n length -= 1;\n }\n}\n\n// Replace element\nexport function replaceElement(newChild, oldChild) {\n if (!is.element(oldChild) || !is.element(oldChild.parentNode) || !is.element(newChild)) {\n return null;\n }\n\n oldChild.parentNode.replaceChild(newChild, oldChild);\n\n return newChild;\n}\n\n// Get an attribute object from a string selector\nexport function getAttributesFromSelector(sel, existingAttributes) {\n // For example:\n // '.test' to { class: 'test' }\n // '#test' to { id: 'test' }\n // '[data-test=\"test\"]' to { 'data-test': 'test' }\n\n if (!is.string(sel) || is.empty(sel)) {\n return {};\n }\n\n const attributes = {};\n const existing = existingAttributes;\n\n sel.split(',').forEach(s => {\n // Remove whitespace\n const selector = s.trim();\n const className = selector.replace('.', '');\n const stripped = selector.replace(/[[\\]]/g, '');\n\n // Get the parts and value\n const parts = stripped.split('=');\n const key = parts[0];\n const value = parts.length > 1 ? parts[1].replace(/[\"']/g, '') : '';\n\n // Get the first character\n const start = selector.charAt(0);\n\n switch (start) {\n case '.':\n // Add to existing classname\n if (is.object(existing) && is.string(existing.class)) {\n existing.class += ` ${className}`;\n }\n\n attributes.class = className;\n break;\n\n case '#':\n // ID selector\n attributes.id = selector.replace('#', '');\n break;\n\n case '[':\n // Attribute selector\n attributes[key] = value;\n\n break;\n\n default:\n break;\n }\n });\n\n return attributes;\n}\n\n// Toggle hidden\nexport function toggleHidden(element, hidden) {\n if (!is.element(element)) {\n return;\n }\n\n let hide = hidden;\n\n if (!is.boolean(hide)) {\n hide = !element.hasAttribute('hidden');\n }\n\n if (hide) {\n element.setAttribute('hidden', '');\n } else {\n element.removeAttribute('hidden');\n }\n}\n\n// Mirror Element.classList.toggle, with IE compatibility for \"force\" argument\nexport function toggleClass(element, className, force) {\n if (is.element(element)) {\n let method = 'toggle';\n if (typeof force !== 'undefined') {\n method = force ? 'add' : 'remove';\n }\n\n element.classList[method](className);\n return element.classList.contains(className);\n }\n\n return null;\n}\n\n// Has class name\nexport function hasClass(element, className) {\n return is.element(element) && element.classList.contains(className);\n}\n\n// Element matches selector\nexport function matches(element, selector) {\n const prototype = { Element };\n\n function match() {\n return Array.from(document.querySelectorAll(selector)).includes(this);\n }\n\n const matches =\n prototype.matches ||\n prototype.webkitMatchesSelector ||\n prototype.mozMatchesSelector ||\n prototype.msMatchesSelector ||\n match;\n\n return matches.call(element, selector);\n}\n\n// Find all elements\nexport function getElements(selector) {\n return this.elements.container.querySelectorAll(selector);\n}\n\n// Find a single element\nexport function getElement(selector) {\n return this.elements.container.querySelector(selector);\n}\n\n// Get the focused element\nexport function getFocusElement() {\n let focused = document.activeElement;\n\n if (!focused || focused === document.body) {\n focused = null;\n } else {\n focused = document.querySelector(':focus');\n }\n\n return focused;\n}\n\n// Trap focus inside container\nexport function trapFocus(element = null, toggle = false) {\n if (!is.element(element)) {\n return;\n }\n\n const focusable = getElements.call(this, 'button:not(:disabled), input:not(:disabled), [tabindex]');\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n\n const trap = event => {\n // Bail if not tab key or not fullscreen\n if (event.key !== 'Tab' || event.keyCode !== 9) {\n return;\n }\n\n // Get the current focused element\n const focused = getFocusElement();\n\n if (focused === last && !event.shiftKey) {\n // Move focus to first element that can be tabbed if Shift isn't used\n first.focus();\n event.preventDefault();\n } else if (focused === first && event.shiftKey) {\n // Move focus to last element that can be tabbed if Shift is used\n last.focus();\n event.preventDefault();\n }\n };\n\n toggleListener.call(this, this.elements.container, 'keydown', trap, toggle, false);\n}\n","// ==========================================================================\n// Animation utils\n// ==========================================================================\n\nimport { toggleHidden } from './elements';\nimport is from './is';\n\nexport const transitionEndEvent = (() => {\n const element = document.createElement('span');\n\n const events = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend',\n };\n\n const type = Object.keys(events).find(event => element.style[event] !== undefined);\n\n return is.string(type) ? events[type] : false;\n})();\n\n// Force repaint of element\nexport function repaint(element) {\n setTimeout(() => {\n toggleHidden(element, true);\n element.offsetHeight; // eslint-disable-line\n toggleHidden(element, false);\n }, 0);\n}\n","// ==========================================================================\n// Browser sniffing\n// Unfortunately, due to mixed support, UA sniffing is required\n// ==========================================================================\n\nconst browser = {\n isIE: /* @cc_on!@ */ false || !!document.documentMode,\n isWebkit: 'WebkitAppearance' in document.documentElement.style && !/Edge/.test(navigator.userAgent),\n isIPhone: /(iPhone|iPod)/gi.test(navigator.platform),\n isIos: /(iPad|iPhone|iPod)/gi.test(navigator.platform),\n};\n\nexport default browser;\n","// ==========================================================================\n// Plyr support checks\n// ==========================================================================\n\nimport { transitionEndEvent } from './utils/animation';\nimport browser from './utils/browser';\nimport { createElement } from './utils/elements';\nimport is from './utils/is';\n\n// Default codecs for checking mimetype support\nconst defaultCodecs = {\n 'audio/ogg': 'vorbis',\n 'audio/wav': '1',\n 'video/webm': 'vp8, vorbis',\n 'video/mp4': 'avc1.42E01E, mp4a.40.2',\n 'video/ogg': 'theora',\n};\n\n// Check for feature support\nconst support = {\n // Basic support\n audio: 'canPlayType' in document.createElement('audio'),\n video: 'canPlayType' in document.createElement('video'),\n\n // Check for support\n // Basic functionality vs full UI\n check(type, provider, playsinline) {\n const canPlayInline = browser.isIPhone && playsinline && support.playsinline;\n const api = support[type] || provider !== 'html5';\n const ui = api && support.rangeInput && (type !== 'video' || !browser.isIPhone || canPlayInline);\n\n return {\n api,\n ui,\n };\n },\n\n // Picture-in-picture support\n // Safari only currently\n pip: (() => !browser.isIPhone && is.function(createElement('video').webkitSetPresentationMode))(),\n\n // Airplay support\n // Safari only currently\n airplay: is.function(window.WebKitPlaybackTargetAvailabilityEvent),\n\n // Inline playback support\n // https://webkit.org/blog/6784/new-video-policies-for-ios/\n playsinline: 'playsInline' in document.createElement('video'),\n\n // Check for mime type support against a player instance\n // Credits: http://diveintohtml5.info/everything.html\n // Related: http://www.leanbackplayer.com/test/h5mt.html\n mime(inputType) {\n const [mediaType] = inputType.split('/');\n if (!this.isHTML5 || mediaType !== this.type) {\n return false;\n }\n\n let type;\n if (inputType && inputType.includes('codecs=')) {\n // Use input directly\n type = inputType;\n } else if (inputType === 'audio/mpeg') {\n // Skip codec\n type = 'audio/mpeg;';\n } else if (inputType in defaultCodecs) {\n // Use codec\n type = `${inputType}; codecs=\"${defaultCodecs[inputType]}\"`;\n }\n\n try {\n return Boolean(type && this.media.canPlayType(type).replace(/no/, ''));\n } catch (err) {\n return false;\n }\n },\n\n // Check for textTracks support\n textTracks: 'textTracks' in document.createElement('video'),\n\n // Sliders\n rangeInput: (() => {\n const range = document.createElement('input');\n range.type = 'range';\n return range.type === 'range';\n })(),\n\n // Touch\n // NOTE: Remember a device can be mouse + touch enabled so we check on first touch event\n touch: 'ontouchstart' in document.documentElement,\n\n // Detect transitions support\n transitions: transitionEndEvent !== false,\n\n // Reduced motion iOS & MacOS setting\n // https://webkit.org/blog/7551/responsive-design-for-motion/\n reducedMotion: 'matchMedia' in window && window.matchMedia('(prefers-reduced-motion)').matches,\n};\n\nexport default support;\n","// ==========================================================================\n// Plyr HTML5 helpers\n// ==========================================================================\n\nimport controls from './controls';\nimport is from './utils/is';\nimport support from './support';\nimport { removeElement } from './utils/elements';\nimport { triggerEvent } from './utils/events';\n\nconst html5 = {\n getSources() {\n if (!this.isHTML5) {\n return [];\n }\n\n const sources = Array.from(this.media.querySelectorAll('source'));\n\n // Filter out unsupported sources\n return sources.filter(source => support.mime.call(this, source.getAttribute('type')));\n },\n\n // Get quality levels\n getQualityOptions() {\n // Get sizes from elements\n return html5.getSources\n .call(this)\n .map(source => Number(source.getAttribute('size')))\n .filter(Boolean);\n },\n\n extend() {\n if (!this.isHTML5) {\n return;\n }\n\n const player = this;\n\n // Quality\n Object.defineProperty(player.media, 'quality', {\n configurable: true,\n get() {\n // Get sources\n const sources = html5.getSources.call(player);\n const source = sources.find(source => source.getAttribute('src') === player.source);\n\n // Return size, if match is found\n return source && Number(source.getAttribute('size'));\n },\n set(input) {\n // Get sources\n const sources = html5.getSources.call(player);\n\n // Get first match for requested size\n const source = sources.find(source => Number(source.getAttribute('size')) === input);\n\n // No matching source found\n if (!source) {\n return;\n }\n\n // Get current state\n const { currentTime, paused, preload, readyState } = player.media;\n\n player.pause();\n\n setImmediate(() => {\n // Set new source\n player.media.src = source.getAttribute('src');\n\n // Prevent loading if preload=\"none\" and the current source isn't loaded (#1044)\n if (preload !== 'none' || readyState) {\n // Restore time\n player.once('loadedmetadata', () => {\n if (player.currentTime === 0) {\n player.currentTime = currentTime;\n }\n\n // Resume playing\n if (!paused) {\n player.play();\n }\n });\n\n // Load new source\n player.media.load();\n }\n\n // restore speed\n const speed = player.storage.get('speed');\n if (is.number(speed)) {\n player.speed = speed;\n controls.updateSetting.call(player, 'speed', speed);\n }\n\n // Trigger change event\n triggerEvent.call(player, player.media, 'qualitychange', false, {\n quality: input,\n });\n });\n },\n });\n },\n\n // Cancel current network requests\n // See https://github.com/sampotts/plyr/issues/174\n cancelRequests() {\n if (!this.isHTML5) {\n return;\n }\n\n const sources = html5.getSources.call(this);\n if (sources && sources.length > 0) {\n // set source to blank string to avoid memory leak\n sources.forEach((source) => {\n source.setAttribute('src', '');\n });\n this.media.load();\n }\n // Remove child sources\n removeElement(sources);\n\n // Set blank video src attribute\n // This is to prevent a MEDIA_ERR_SRC_NOT_SUPPORTED error\n // Info: http://stackoverflow.com/questions/32231579/how-to-properly-dispose-of-an-html5-video-and-close-socket-or-connection\n this.media.setAttribute('src', this.config.blankVideo);\n\n // Load the new empty source\n // This will cancel existing requests\n // See https://github.com/sampotts/plyr/issues/174\n this.media.load();\n\n // Debugging\n this.debug.log('Cancelled network requests');\n },\n};\n\nexport default html5;\n","// ==========================================================================\n// Object utils\n// ==========================================================================\n\nimport is from './is';\n\n// Clone nested objects\nexport function cloneDeep(object) {\n return JSON.parse(JSON.stringify(object));\n}\n\n// Get a nested value in an object\nexport function getDeep(object, path) {\n return path.split('.').reduce((obj, key) => obj && obj[key], object);\n}\n\n// Deep extend destination object with N more objects\nexport function extend(target = {}, ...sources) {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n\n if (!is.object(source)) {\n return target;\n }\n\n Object.keys(source).forEach(key => {\n if (is.object(source[key])) {\n if (!Object.keys(target).includes(key)) {\n Object.assign(target, { [key]: {} });\n }\n\n extend(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n });\n\n return extend(target, ...sources);\n}\n","// ==========================================================================\n// String utils\n// ==========================================================================\n\nimport is from './is';\n\n// Generate a random ID\nexport function generateId(prefix) {\n return `${prefix}-${Math.floor(Math.random() * 10000)}`;\n}\n\n// Format string\nexport function format(input, ...args) {\n if (is.empty(input)) {\n return input;\n }\n\n return input.toString().replace(/{(\\d+)}/g, (match, i) => args[i].toString());\n}\n\n// Get percentage\nexport function getPercentage(current, max) {\n if (current === 0 || max === 0 || Number.isNaN(current) || Number.isNaN(max)) {\n return 0;\n }\n\n return (current / max * 100).toFixed(2);\n}\n\n// Replace all occurances of a string in a string\nexport function replaceAll(input = '', find = '', replace = '') {\n return input.replace(\n new RegExp(find.toString().replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1'), 'g'),\n replace.toString(),\n );\n}\n\n// Convert to title case\nexport function toTitleCase(input = '') {\n return input.toString().replace(/\\w\\S*/g, text => text.charAt(0).toUpperCase() + text.substr(1).toLowerCase());\n}\n\n// Convert string to pascalCase\nexport function toPascalCase(input = '') {\n let string = input.toString();\n\n // Convert kebab case\n string = replaceAll(string, '-', ' ');\n\n // Convert snake case\n string = replaceAll(string, '_', ' ');\n\n // Convert to title case\n string = toTitleCase(string);\n\n // Convert to pascal case\n return replaceAll(string, ' ', '');\n}\n\n// Convert string to pascalCase\nexport function toCamelCase(input = '') {\n let string = input.toString();\n\n // Convert to pascal case\n string = toPascalCase(string);\n\n // Convert first character to lowercase\n return string.charAt(0).toLowerCase() + string.slice(1);\n}\n\n// Remove HTML from a string\nexport function stripHTML(source) {\n const fragment = document.createDocumentFragment();\n const element = document.createElement('div');\n fragment.appendChild(element);\n element.innerHTML = source;\n return fragment.firstChild.innerText;\n}\n\n// Like outerHTML, but also works for DocumentFragment\nexport function getHTML(element) {\n const wrapper = document.createElement('div');\n wrapper.appendChild(element);\n return wrapper.innerHTML;\n}\n","// ==========================================================================\n// Plyr internationalization\n// ==========================================================================\n\nimport is from './utils/is';\nimport { getDeep } from './utils/objects';\nimport { replaceAll } from './utils/strings';\n\nconst i18n = {\n get(key = '', config = {}) {\n if (is.empty(key) || is.empty(config)) {\n return '';\n }\n\n let string = getDeep(config.i18n, key);\n\n if (is.empty(string)) {\n return '';\n }\n\n const replace = {\n '{seektime}': config.seekTime,\n '{title}': config.title,\n };\n\n Object.entries(replace).forEach(([key, value]) => {\n string = replaceAll(string, key, value);\n });\n\n return string;\n },\n};\n\nexport default i18n;\n","// ==========================================================================\n// Array utils\n// ==========================================================================\n\nimport is from './is';\n\n// Remove duplicates in an array\nexport function dedupe(array) {\n if (!is.array(array)) {\n return array;\n }\n\n return array.filter((item, index) => array.indexOf(item) === index);\n}\n\n// Get the closest value in an array\nexport function closest(array, value) {\n if (!is.array(array) || !array.length) {\n return null;\n }\n\n return array.reduce((prev, curr) => (Math.abs(curr - value) < Math.abs(prev - value) ? curr : prev));\n}\n","// ==========================================================================\n// Plyr storage\n// ==========================================================================\n\nimport is from './utils/is';\nimport { extend } from './utils/objects';\n\nclass Storage {\n constructor(player) {\n this.enabled = player.config.storage.enabled;\n this.key = player.config.storage.key;\n }\n\n // Check for actual support (see if we can use it)\n static get supported() {\n try {\n if (!('localStorage' in window)) {\n return false;\n }\n\n const test = '___test';\n\n // Try to use it (it might be disabled, e.g. user is in private mode)\n // see: https://github.com/sampotts/plyr/issues/131\n window.localStorage.setItem(test, test);\n window.localStorage.removeItem(test);\n\n return true;\n } catch (e) {\n return false;\n }\n }\n\n get(key) {\n if (!Storage.supported || !this.enabled) {\n return null;\n }\n\n const store = window.localStorage.getItem(this.key);\n\n if (is.empty(store)) {\n return null;\n }\n\n const json = JSON.parse(store);\n\n return is.string(key) && key.length ? json[key] : json;\n }\n\n set(object) {\n // Bail if we don't have localStorage support or it's disabled\n if (!Storage.supported || !this.enabled) {\n return;\n }\n\n // Can only store objectst\n if (!is.object(object)) {\n return;\n }\n\n // Get current storage\n let storage = this.get();\n\n // Default to empty object\n if (is.empty(storage)) {\n storage = {};\n }\n\n // Update the working copy of the values\n extend(storage, object);\n\n // Update storage\n window.localStorage.setItem(this.key, JSON.stringify(storage));\n }\n}\n\nexport default Storage;\n","// ==========================================================================\n// Fetch wrapper\n// Using XHR to avoid issues with older browsers\n// ==========================================================================\n\nexport default function fetch(url, responseType = 'text') {\n return new Promise((resolve, reject) => {\n try {\n const request = new XMLHttpRequest();\n\n // Check for CORS support\n if (!('withCredentials' in request)) {\n return;\n }\n\n request.addEventListener('load', () => {\n if (responseType === 'text') {\n try {\n resolve(JSON.parse(request.responseText));\n } catch (e) {\n resolve(request.responseText);\n }\n } else {\n resolve(request.response);\n }\n });\n\n request.addEventListener('error', () => {\n throw new Error(request.status);\n });\n\n request.open('GET', url, true);\n\n // Set the required response type\n request.responseType = responseType;\n\n request.send();\n } catch (e) {\n reject(e);\n }\n });\n}\n","// ==========================================================================\n// Sprite loader\n// ==========================================================================\n\nimport Storage from '../storage';\nimport fetch from './fetch';\nimport is from './is';\n\n// Load an external SVG sprite\nexport default function loadSprite(url, id) {\n if (!is.string(url)) {\n return;\n }\n\n const prefix = 'cache';\n const hasId = is.string(id);\n let isCached = false;\n\n const exists = () => document.getElementById(id) !== null;\n\n const update = (container, data) => {\n container.innerHTML = data;\n\n // Check again incase of race condition\n if (hasId && exists()) {\n return;\n }\n\n // Inject the SVG to the body\n document.body.insertAdjacentElement('afterbegin', container);\n };\n\n // Only load once if ID set\n if (!hasId || !exists()) {\n const useStorage = Storage.supported;\n\n // Create container\n const container = document.createElement('div');\n container.setAttribute('hidden', '');\n\n if (hasId) {\n container.setAttribute('id', id);\n }\n\n // Check in cache\n if (useStorage) {\n const cached = window.localStorage.getItem(`${prefix}-${id}`);\n isCached = cached !== null;\n\n if (isCached) {\n const data = JSON.parse(cached);\n update(container, data.content);\n }\n }\n\n // Get the sprite\n fetch(url)\n .then(result => {\n if (is.empty(result)) {\n return;\n }\n\n if (useStorage) {\n window.localStorage.setItem(\n `${prefix}-${id}`,\n JSON.stringify({\n content: result,\n }),\n );\n }\n\n update(container, result);\n })\n .catch(() => {});\n }\n}\n","// ==========================================================================\n// Time utils\n// ==========================================================================\n\nimport is from './is';\n\n// Time helpers\nexport const getHours = value => parseInt((value / 60 / 60) % 60, 10);\nexport const getMinutes = value => parseInt((value / 60) % 60, 10);\nexport const getSeconds = value => parseInt(value % 60, 10);\n\n// Format time to UI friendly string\nexport function formatTime(time = 0, displayHours = false, inverted = false) {\n // Bail if the value isn't a number\n if (!is.number(time)) {\n return formatTime(null, displayHours, inverted);\n }\n\n // Format time component to add leading zero\n const format = value => `0${value}`.slice(-2);\n\n // Breakdown to hours, mins, secs\n let hours = getHours(time);\n const mins = getMinutes(time);\n const secs = getSeconds(time);\n\n // Do we need to display hours?\n if (displayHours || hours > 0) {\n hours = `${hours}:`;\n } else {\n hours = '';\n }\n\n // Render\n return `${inverted && time > 0 ? '-' : ''}${hours}${format(mins)}:${format(secs)}`;\n}\n","// ==========================================================================\n// Plyr controls\n// ==========================================================================\n\nimport captions from './captions';\nimport html5 from './html5';\nimport i18n from './i18n';\nimport support from './support';\nimport { repaint, transitionEndEvent } from './utils/animation';\nimport { dedupe } from './utils/arrays';\nimport browser from './utils/browser';\nimport {\n createElement,\n emptyElement,\n getAttributesFromSelector,\n getElement,\n getElements,\n hasClass,\n matches,\n removeElement,\n setAttributes,\n toggleClass,\n toggleHidden,\n} from './utils/elements';\nimport { off, on } from './utils/events';\nimport is from './utils/is';\nimport loadSprite from './utils/loadSprite';\nimport { extend } from './utils/objects';\nimport { getPercentage, replaceAll, toCamelCase, toTitleCase } from './utils/strings';\nimport { formatTime, getHours } from './utils/time';\n\n// TODO: Don't export a massive object - break down and create class\nconst controls = {\n // Get icon URL\n getIconUrl() {\n const url = new URL(this.config.iconUrl, window.location);\n const cors = url.host !== window.location.host || (browser.isIE && !window.svg4everybody);\n\n return {\n url: this.config.iconUrl,\n cors,\n };\n },\n\n // Find the UI controls\n findElements() {\n try {\n this.elements.controls = getElement.call(this, this.config.selectors.controls.wrapper);\n\n // Buttons\n this.elements.buttons = {\n play: getElements.call(this, this.config.selectors.buttons.play),\n pause: getElement.call(this, this.config.selectors.buttons.pause),\n restart: getElement.call(this, this.config.selectors.buttons.restart),\n rewind: getElement.call(this, this.config.selectors.buttons.rewind),\n fastForward: getElement.call(this, this.config.selectors.buttons.fastForward),\n mute: getElement.call(this, this.config.selectors.buttons.mute),\n pip: getElement.call(this, this.config.selectors.buttons.pip),\n airplay: getElement.call(this, this.config.selectors.buttons.airplay),\n settings: getElement.call(this, this.config.selectors.buttons.settings),\n captions: getElement.call(this, this.config.selectors.buttons.captions),\n fullscreen: getElement.call(this, this.config.selectors.buttons.fullscreen),\n };\n\n // Progress\n this.elements.progress = getElement.call(this, this.config.selectors.progress);\n\n // Inputs\n this.elements.inputs = {\n seek: getElement.call(this, this.config.selectors.inputs.seek),\n volume: getElement.call(this, this.config.selectors.inputs.volume),\n };\n\n // Display\n this.elements.display = {\n buffer: getElement.call(this, this.config.selectors.display.buffer),\n currentTime: getElement.call(this, this.config.selectors.display.currentTime),\n duration: getElement.call(this, this.config.selectors.display.duration),\n };\n\n // Seek tooltip\n if (is.element(this.elements.progress)) {\n this.elements.display.seekTooltip = this.elements.progress.querySelector(\n `.${this.config.classNames.tooltip}`,\n );\n }\n\n return true;\n } catch (error) {\n // Log it\n this.debug.warn('It looks like there is a problem with your custom controls HTML', error);\n\n // Restore native video controls\n this.toggleNativeControls(true);\n\n return false;\n }\n },\n\n // Create icon\n createIcon(type, attributes) {\n const namespace = 'http://www.w3.org/2000/svg';\n const iconUrl = controls.getIconUrl.call(this);\n const iconPath = `${!iconUrl.cors ? iconUrl.url : ''}#${this.config.iconPrefix}`;\n\n // Create \n const icon = document.createElementNS(namespace, 'svg');\n setAttributes(\n icon,\n extend(attributes, {\n role: 'presentation',\n focusable: 'false',\n }),\n );\n\n // Create the to reference sprite\n const use = document.createElementNS(namespace, 'use');\n const path = `${iconPath}-${type}`;\n\n // Set `href` attributes\n // https://github.com/sampotts/plyr/issues/460\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href\n if ('href' in use) {\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n } else {\n use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', path);\n }\n\n // Add to \n icon.appendChild(use);\n\n return icon;\n },\n\n // Create hidden text label\n createLabel(type, attr = {}) {\n // Skip i18n for abbreviations and brand names\n const universals = {\n pip: 'PIP',\n airplay: 'AirPlay',\n };\n const text = universals[type] || i18n.get(type, this.config);\n\n const attributes = Object.assign({}, attr, {\n class: [attr.class, this.config.classNames.hidden].filter(Boolean).join(' '),\n });\n return createElement('span', attributes, text);\n },\n\n // Create a badge\n createBadge(text) {\n if (is.empty(text)) {\n return null;\n }\n\n const badge = createElement('span', {\n class: this.config.classNames.menu.value,\n });\n\n badge.appendChild(\n createElement(\n 'span',\n {\n class: this.config.classNames.menu.badge,\n },\n text,\n ),\n );\n\n return badge;\n },\n\n // Create a
to hide the standard controls and UI\n setAspectRatio(input) {\n const [x, y] = (is.string(input) ? input : this.config.ratio).split(':');\n const padding = 100 / x * y;\n this.elements.wrapper.style.paddingBottom = `${padding}%`;\n\n if (this.supported.ui) {\n const height = 240;\n const offset = (height - padding) / (height / 50);\n\n this.media.style.transform = `translateY(-${offset}%)`;\n }\n },\n\n // API Ready\n ready() {\n const player = this;\n\n // Get Vimeo params for the iframe\n const options = {\n loop: player.config.loop.active,\n autoplay: player.autoplay,\n // muted: player.muted,\n byline: false,\n portrait: false,\n title: false,\n speed: true,\n transparent: 0,\n gesture: 'media',\n playsinline: !this.config.fullscreen.iosNative,\n };\n const params = buildUrlParams(options);\n\n // Get the source URL or ID\n let source = player.media.getAttribute('src');\n\n // Get from
if needed\n if (is.empty(source)) {\n source = player.media.getAttribute(player.config.attributes.embed.id);\n }\n\n const id = parseId(source);\n\n // Build an iframe\n const iframe = createElement('iframe');\n const src = format(player.config.urls.vimeo.iframe, id, params);\n iframe.setAttribute('src', src);\n iframe.setAttribute('allowfullscreen', '');\n iframe.setAttribute('allowtransparency', '');\n iframe.setAttribute('allow', 'autoplay');\n\n // Get poster, if already set\n const { poster } = player;\n\n // Inject the package\n const wrapper = createElement('div', { poster, class: player.config.classNames.embedContainer });\n wrapper.appendChild(iframe);\n player.media = replaceElement(wrapper, player.media);\n\n // Get poster image\n fetch(format(player.config.urls.vimeo.api, id), 'json').then(response => {\n if (is.empty(response)) {\n return;\n }\n\n // Get the URL for thumbnail\n const url = new URL(response[0].thumbnail_large);\n\n // Get original image\n url.pathname = `${url.pathname.split('_')[0]}.jpg`;\n\n // Set and show poster\n ui.setPoster.call(player, url.href).catch(() => {});\n });\n\n // Setup instance\n // https://github.com/vimeo/player.js\n player.embed = new window.Vimeo.Player(iframe, {\n autopause: player.config.autopause,\n muted: player.muted,\n });\n\n player.media.paused = true;\n player.media.currentTime = 0;\n\n // Disable native text track rendering\n if (player.supported.ui) {\n player.embed.disableTextTrack();\n }\n\n // Create a faux HTML5 API using the Vimeo API\n player.media.play = () => {\n assurePlaybackState.call(player, true);\n return player.embed.play();\n };\n\n player.media.pause = () => {\n assurePlaybackState.call(player, false);\n return player.embed.pause();\n };\n\n player.media.stop = () => {\n player.pause();\n player.currentTime = 0;\n };\n\n // Seeking\n let { currentTime } = player.media;\n Object.defineProperty(player.media, 'currentTime', {\n get() {\n return currentTime;\n },\n set(time) {\n // Vimeo will automatically play on seek if the video hasn't been played before\n\n // Get current paused state and volume etc\n const { embed, media, paused, volume } = player;\n const restorePause = paused && !embed.hasPlayed;\n\n // Set seeking state and trigger event\n media.seeking = true;\n triggerEvent.call(player, media, 'seeking');\n\n // If paused, mute until seek is complete\n Promise.resolve(restorePause && embed.setVolume(0))\n // Seek\n .then(() => embed.setCurrentTime(time))\n // Restore paused\n .then(() => restorePause && embed.pause())\n // Restore volume\n .then(() => restorePause && embed.setVolume(volume))\n .catch(() => {\n // Do nothing\n });\n },\n });\n\n // Playback speed\n let speed = player.config.speed.selected;\n Object.defineProperty(player.media, 'playbackRate', {\n get() {\n return speed;\n },\n set(input) {\n player.embed\n .setPlaybackRate(input)\n .then(() => {\n speed = input;\n triggerEvent.call(player, player.media, 'ratechange');\n })\n .catch(error => {\n // Hide menu item (and menu if empty)\n if (error.name === 'Error') {\n controls.setSpeedMenu.call(player, []);\n }\n });\n },\n });\n\n // Volume\n let { volume } = player.config;\n Object.defineProperty(player.media, 'volume', {\n get() {\n return volume;\n },\n set(input) {\n player.embed.setVolume(input).then(() => {\n volume = input;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n },\n });\n\n // Muted\n let { muted } = player.config;\n Object.defineProperty(player.media, 'muted', {\n get() {\n return muted;\n },\n set(input) {\n const toggle = is.boolean(input) ? input : false;\n\n player.embed.setVolume(toggle ? 0 : player.config.volume).then(() => {\n muted = toggle;\n triggerEvent.call(player, player.media, 'volumechange');\n });\n },\n });\n\n // Loop\n let { loop } = player.config;\n Object.defineProperty(player.media, 'loop', {\n get() {\n return loop;\n },\n set(input) {\n const toggle = is.boolean(input) ? input : player.config.loop.active;\n\n player.embed.setLoop(toggle).then(() => {\n loop = toggle;\n });\n },\n });\n\n // Source\n let currentSrc;\n player.embed\n .getVideoUrl()\n .then(value => {\n currentSrc = value;\n })\n .catch(error => {\n this.debug.warn(error);\n });\n\n Object.defineProperty(player.media, 'currentSrc', {\n get() {\n return currentSrc;\n },\n });\n\n // Ended\n Object.defineProperty(player.media, 'ended', {\n get() {\n return player.currentTime === player.duration;\n },\n });\n\n // Set aspect ratio based on video size\n Promise.all([player.embed.getVideoWidth(), player.embed.getVideoHeight()]).then(dimensions => {\n const ratio = getAspectRatio(dimensions[0], dimensions[1]);\n vimeo.setAspectRatio.call(this, ratio);\n });\n\n // Set autopause\n player.embed.setAutopause(player.config.autopause).then(state => {\n player.config.autopause = state;\n });\n\n // Get title\n player.embed.getVideoTitle().then(title => {\n player.config.title = title;\n ui.setTitle.call(this);\n });\n\n // Get current time\n player.embed.getCurrentTime().then(value => {\n currentTime = value;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n\n // Get duration\n player.embed.getDuration().then(value => {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n });\n\n // Get captions\n player.embed.getTextTracks().then(tracks => {\n player.media.textTracks = tracks;\n captions.setup.call(player);\n });\n\n player.embed.on('cuechange', ({ cues = [] }) => {\n const strippedCues = cues.map(cue => stripHTML(cue.text));\n captions.updateCues.call(player, strippedCues);\n });\n\n player.embed.on('loaded', () => {\n // Assure state and events are updated on autoplay\n player.embed.getPaused().then(paused => {\n assurePlaybackState.call(player, !paused);\n if (!paused) {\n triggerEvent.call(player, player.media, 'playing');\n }\n });\n\n if (is.element(player.embed.element) && player.supported.ui) {\n const frame = player.embed.element;\n\n // Fix keyboard focus issues\n // https://github.com/sampotts/plyr/issues/317\n frame.setAttribute('tabindex', -1);\n }\n });\n\n player.embed.on('play', () => {\n assurePlaybackState.call(player, true);\n triggerEvent.call(player, player.media, 'playing');\n });\n\n player.embed.on('pause', () => {\n assurePlaybackState.call(player, false);\n });\n\n player.embed.on('timeupdate', data => {\n player.media.seeking = false;\n currentTime = data.seconds;\n triggerEvent.call(player, player.media, 'timeupdate');\n });\n\n player.embed.on('progress', data => {\n player.media.buffered = data.percent;\n triggerEvent.call(player, player.media, 'progress');\n\n // Check all loaded\n if (parseInt(data.percent, 10) === 1) {\n triggerEvent.call(player, player.media, 'canplaythrough');\n }\n\n // Get duration as if we do it before load, it gives an incorrect value\n // https://github.com/sampotts/plyr/issues/891\n player.embed.getDuration().then(value => {\n if (value !== player.media.duration) {\n player.media.duration = value;\n triggerEvent.call(player, player.media, 'durationchange');\n }\n });\n });\n\n player.embed.on('seeked', () => {\n player.media.seeking = false;\n triggerEvent.call(player, player.media, 'seeked');\n });\n\n player.embed.on('ended', () => {\n player.media.paused = true;\n triggerEvent.call(player, player.media, 'ended');\n });\n\n player.embed.on('error', detail => {\n player.media.error = detail;\n triggerEvent.call(player, player.media, 'error');\n });\n\n // Rebuild UI\n setTimeout(() => ui.build.call(player), 0);\n },\n};\n\nexport default vimeo;\n","// ==========================================================================\n// YouTube plugin\n// ==========================================================================\n\nimport controls from '../controls';\nimport ui from '../ui';\nimport { dedupe } from '../utils/arrays';\nimport { createElement, replaceElement, toggleClass } from '../utils/elements';\nimport { triggerEvent } from '../utils/events';\nimport fetch from '../utils/fetch';\nimport is from '../utils/is';\nimport loadImage from '../utils/loadImage';\nimport loadScript from '../utils/loadScript';\nimport { format, generateId } from '../utils/strings';\n\n// Parse YouTube ID from URL\nfunction parseId(url) {\n if (is.empty(url)) {\n return null;\n }\n\n const regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/;\n return url.match(regex) ? RegExp.$2 : url;\n}\n\n// Standardise YouTube quality unit\nfunction mapQualityUnit(input) {\n const qualities = {\n hd2160: 2160,\n hd1440: 1440,\n hd1080: 1080,\n hd720: 720,\n large: 480,\n medium: 360,\n small: 240,\n tiny: 144,\n };\n\n const entry = Object.entries(qualities).find(entry => entry.includes(input));\n\n if (entry) {\n // Get the match corresponding to the input\n return entry.find(value => value !== input);\n }\n\n return 'default';\n}\n\nfunction mapQualityUnits(levels) {\n if (is.empty(levels)) {\n return levels;\n }\n\n return dedupe(levels.map(level => mapQualityUnit(level)));\n}\n\n// Set playback state and trigger change (only on actual change)\nfunction assurePlaybackState(play) {\n if (play && !this.embed.hasPlayed) {\n this.embed.hasPlayed = true;\n }\n if (this.media.paused === play) {\n this.media.paused = !play;\n triggerEvent.call(this, this.media, play ? 'play' : 'pause');\n }\n}\n\nconst youtube = {\n setup() {\n // Add embed class for responsive\n toggleClass(this.elements.wrapper, this.config.classNames.embed, true);\n\n // Set aspect ratio\n youtube.setAspectRatio.call(this);\n\n // Setup API\n if (is.object(window.YT) && is.function(window.YT.Player)) {\n youtube.ready.call(this);\n } else {\n // Load the API\n loadScript(this.config.urls.youtube.sdk).catch(error => {\n this.debug.warn('YouTube API failed to load', error);\n });\n\n // Setup callback for the API\n // YouTube has it's own system of course...\n window.onYouTubeReadyCallbacks = window.onYouTubeReadyCallbacks || [];\n\n // Add to queue\n window.onYouTubeReadyCallbacks.push(() => {\n youtube.ready.call(this);\n });\n\n // Set callback to process queue\n window.onYouTubeIframeAPIReady = () => {\n window.onYouTubeReadyCallbacks.forEach(callback => {\n callback();\n });\n };\n }\n },\n\n // Get the media title\n getTitle(videoId) {\n // Try via undocumented API method first\n // This method disappears now and then though...\n // https://github.com/sampotts/plyr/issues/709\n if (is.function(this.embed.getVideoData)) {\n const { title } = this.embed.getVideoData();\n\n if (is.empty(title)) {\n this.config.title = title;\n ui.setTitle.call(this);\n return;\n }\n }\n\n // Or via Google API\n const key = this.config.keys.google;\n if (is.string(key) && !is.empty(key)) {\n const url = format(this.config.urls.youtube.api, videoId, key);\n\n fetch(url)\n .then(result => {\n if (is.object(result)) {\n this.config.title = result.items[0].snippet.title;\n ui.setTitle.call(this);\n }\n })\n .catch(() => {});\n }\n },\n\n // Set aspect ratio\n setAspectRatio() {\n const ratio = this.config.ratio.split(':');\n this.elements.wrapper.style.paddingBottom = `${100 / ratio[0] * ratio[1]}%`;\n },\n\n // API ready\n ready() {\n const player = this;\n\n // Ignore already setup (race condition)\n const currentId = player.media.getAttribute('id');\n if (!is.empty(currentId) && currentId.startsWith('youtube-')) {\n return;\n }\n\n // Get the source URL or ID\n let source = player.media.getAttribute('src');\n\n // Get from
if needed\n if (is.empty(source)) {\n source = player.media.getAttribute(this.config.attributes.embed.id);\n }\n\n // Replace the