Skip to content
FrameworkStyle

Customize skins

Learn how to customize Video.js v10 skins by copying and modifying them

Video.js v10 comes with two pre-built skins; Default and Minimal. Basic customization is possible with CSS custom properties, but if you want more control over the design and functionality of your player, you can copy the skin’s code into your project and modify it as needed. We call this “ejecting” the skin, since you’re taking the internal code that makes up the skin and making it your own.

Basic customization

Property Name Description Type Example
--media-border-radius The border radius of the media player A valid border-radius value 1rem
--media-color-primary The color of icons and text in media controls <color> red

You can of course also add your own classnames to the skins themselves.

Ejecting

If you’d like to customize them you can fully customize them by “ejecting” the code and making it your own.

While eventually we’ll have a CLI that will eject skins in your preferred framework and style, for now we invite you to try it out with these copy-paste-ready implementations.

Default Video Skin

<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html/cdn/video-ui.js"></script>
<link rel="stylesheet" href="./player.css">

<video-player>
  <media-container class="media-default-skin media-default-skin--video">
    <video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline></video>

    <media-poster>
      <img src="https://image.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/thumbnail.webp" />
    </media-poster>

    <media-buffering-indicator class="media-buffering-indicator">
      <div class="media-surface">
        <media-icon name="spinner" class="media-icon"></media-icon>
      </div>
    </media-buffering-indicator>

    <media-error-dialog class="media-error">
      <div class="media-error__dialog media-surface">
        <div class="media-error__content">
          <media-alert-dialog-title class="media-error__title">Something went wrong.</media-alert-dialog-title>
          <media-alert-dialog-description class="media-error__description"></media-alert-dialog-description>
        </div>
        <div class="media-error__actions">
          <media-alert-dialog-close class="media-button media-button--primary">OK</media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <media-controls class="media-surface media-controls">
      <media-tooltip-group>
        <div class="media-button-group">
          <media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play">
            <media-icon name="restart" class="media-icon media-icon--restart"></media-icon>
            <media-icon name="play" class="media-icon media-icon--play"></media-icon>
            <media-icon name="pause" class="media-icon media-icon--pause"></media-icon>
          </media-play-button>
          <media-tooltip id="play-tooltip" side="top" class="media-surface media-tooltip"></media-tooltip>

          <media-seek-button commandfor="seek-backward-tooltip" seconds="-10" class="media-button media-button--subtle media-button--icon media-button--seek">
            <span class="media-icon__container">
              <media-icon name="seek" class="media-icon media-icon--flipped"></media-icon>
              <span class="media-icon__label">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-backward-tooltip" side="top" class="media-surface media-tooltip"></media-tooltip>

          <media-seek-button commandfor="seek-forward-tooltip" seconds="10" class="media-button media-button--subtle media-button--icon media-button--seek">
            <span class="media-icon__container">
              <media-icon name="seek" class="media-icon"></media-icon>
              <span class="media-icon__label">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-forward-tooltip" side="top" class="media-surface media-tooltip"></media-tooltip>
        </div>

        <div class="media-time-controls">
          <media-time type="current" class="media-time"></media-time>
          <media-time-slider class="media-slider">
            <media-slider-track class="media-slider__track">
              <media-slider-fill class="media-slider__fill"></media-slider-fill>
              <media-slider-buffer class="media-slider__buffer"></media-slider-buffer>
            </media-slider-track>
            <media-slider-thumb class="media-slider__thumb"></media-slider-thumb>

            <div class="media-surface media-thumbnail media-slider__thumbnail">
              <media-slider-thumbnail class="media-thumbnail__image"></media-slider-thumbnail>
              <media-slider-value type="pointer" class="media-time media-thumbnail__time"></media-slider-value>
              <media-icon name="spinner" class="media-thumbnail__spinner media-icon"></media-icon>
            </div>

            <media-slider-preview class="media-slider__preview">
              <media-slider-value type="pointer" class="media-slider__value media-time"></media-slider-value>
            </media-slider-preview>
          </media-time-slider>
          <media-time type="duration" class="media-time"></media-time>
        </div>

        <div class="media-button-group">
          <media-mute-button commandfor="video-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute">
            <media-icon name="volume-off" class="media-icon media-icon--volume-off"></media-icon>
            <media-icon name="volume-low" class="media-icon media-icon--volume-low"></media-icon>
            <media-icon name="volume-high" class="media-icon media-icon--volume-high"></media-icon>
          </media-mute-button>

          <media-popover id="video-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="media-surface media-popover media-popover--volume">
            <media-volume-slider class="media-slider" orientation="vertical" thumb-alignment="edge">
              <media-slider-track class="media-slider__track">
                <media-slider-fill class="media-slider__fill"></media-slider-fill>
              </media-slider-track>
              <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
            </media-volume-slider>
          </media-popover>

          <button commandfor="settings-menu" aria-label="Settings" class="media-button media-button--subtle media-button--icon media-button--settings">
            <media-icon name="gear" class="media-icon media-icon--settings"></media-icon>
          </button>
          <media-menu id="settings-menu" side="top" align="center" class="media-surface media-popover media-menu media-menu--settings">
            <media-menu-view class="media-menu__panel">
              <div class="media-menu__group">
                <media-menu-item commandfor="settings-speed-menu" type="playback-rate" data-setting="playback-rate" class="media-menu__item media-menu__item--submenu">
                  <span>Speed</span>
                  <span class="media-menu__hint">
                    <media-menu-item-value class="media-menu__hint-label"></media-menu-item-value>
                    <media-icon name="chevron" class="media-icon media-menu__chevron"></media-icon>
                  </span>
                </media-menu-item>
                <media-menu-item commandfor="settings-captions-menu" type="captions" data-setting="captions" class="media-menu__item media-menu__item--submenu">
                  <span>Captions</span>
                  <span class="media-menu__hint">
                    <media-menu-item-value class="media-menu__hint-label"></media-menu-item-value>
                    <media-icon name="chevron" class="media-icon media-menu__chevron"></media-icon>
                  </span>
                </media-menu-item>
              </div>
            </media-menu-view>

            <media-menu id="settings-speed-menu" class="media-menu__panel">
              <media-menu-back class="media-menu__back">
                <media-icon name="chevron" class="media-icon media-menu__chevron media-icon--flipped"></media-icon>
                Speed
              </media-menu-back>
              <media-playback-rate-radio-group class="media-menu__group">
                <template>
                  <media-menu-radio-item class="media-menu__item">
                    <span data-part="label"></span>
                    <media-menu-item-indicator force-mount class="media-menu__indicator">
                      <media-icon name="check" class="media-icon"></media-icon>
                    </media-menu-item-indicator>
                  </media-menu-radio-item>
                </template>
              </media-playback-rate-radio-group>
            </media-menu>

            <media-menu id="settings-captions-menu" class="media-menu__panel">
              <media-menu-back class="media-menu__back">
                <media-icon name="chevron" class="media-icon media-menu__chevron media-icon--flipped"></media-icon>
                Captions
              </media-menu-back>
              <media-captions-radio-group class="media-menu__group">
                <template>
                  <media-menu-radio-item class="media-menu__item">
                    <span data-part="label"></span>
                    <media-menu-item-indicator force-mount class="media-menu__indicator">
                      <media-icon name="check" class="media-icon"></media-icon>
                    </media-menu-item-indicator>
                  </media-menu-radio-item>
                </template>
              </media-captions-radio-group>
            </media-menu>
          </media-menu>

          <media-cast-button commandfor="cast-tooltip" class="media-button media-button--subtle media-button--icon media-button--cast">
            <media-icon name="cast-enter" class="media-icon media-icon--cast-enter"></media-icon>
            <media-icon name="cast-exit" class="media-icon media-icon--cast-exit"></media-icon>
          </media-cast-button>
          <media-tooltip id="cast-tooltip" side="top" class="media-surface media-tooltip"></media-tooltip>

          <media-airplay-button commandfor="airplay-tooltip" class="media-button media-button--subtle media-button--icon media-button--airplay">
            <media-icon name="airplay-enter" class="media-icon media-icon--airplay-enter"></media-icon>
            <media-icon name="airplay-exit" class="media-icon media-icon--airplay-exit"></media-icon>
          </media-airplay-button>
          <media-tooltip id="airplay-tooltip" side="top" class="media-surface media-tooltip"></media-tooltip>

          <media-pip-button commandfor="pip-tooltip" class="media-button media-button--subtle media-button--icon media-button--pip">
            <media-icon name="pip-enter" class="media-icon media-icon--pip-enter"></media-icon>
            <media-icon name="pip-exit" class="media-icon media-icon--pip-exit"></media-icon>
          </media-pip-button>
          <media-tooltip id="pip-tooltip" side="top" class="media-surface media-tooltip"></media-tooltip>

          <media-fullscreen-button commandfor="fullscreen-tooltip" class="media-button media-button--subtle media-button--icon media-button--fullscreen">
            <media-icon name="fullscreen-enter" class="media-icon media-icon--fullscreen-enter"></media-icon>
            <media-icon name="fullscreen-exit" class="media-icon media-icon--fullscreen-exit"></media-icon>
          </media-fullscreen-button>
          <media-tooltip id="fullscreen-tooltip" side="top" class="media-surface media-tooltip"></media-tooltip>
        </div>
      </media-tooltip-group>
    </media-controls>

    <div class="media-overlay"></div>

    <!-- Hotkeys -->
    <media-hotkey keys="Space" action="togglePaused"></media-hotkey>
    <media-hotkey keys="k" action="togglePaused"></media-hotkey>
    <media-hotkey keys="m" action="toggleMuted"></media-hotkey>
    <media-hotkey keys="f" action="toggleFullscreen"></media-hotkey>
    <media-hotkey keys="c" action="toggleSubtitles"></media-hotkey>
    <media-hotkey keys="i" action="togglePictureInPicture"></media-hotkey>
    <media-hotkey keys="ArrowRight" action="seekStep" value="5"></media-hotkey>
    <media-hotkey keys="ArrowLeft" action="seekStep" value="-5"></media-hotkey>
    <media-hotkey keys="l" action="seekStep" value="10"></media-hotkey>
    <media-hotkey keys="j" action="seekStep" value="-10"></media-hotkey>
    <media-hotkey keys="ArrowUp" action="volumeStep" value="0.05"></media-hotkey>
    <media-hotkey keys="ArrowDown" action="volumeStep" value="-0.05"></media-hotkey>
    <media-hotkey keys="0-9" action="seekToPercent"></media-hotkey>
    <media-hotkey keys="Home" action="seekToPercent" value="0"></media-hotkey>
    <media-hotkey keys="End" action="seekToPercent" value="100"></media-hotkey>
    <media-hotkey keys=">" action="speedUp"></media-hotkey>
    <media-hotkey keys="<" action="speedDown"></media-hotkey>

    <!-- Gestures -->
    <media-gesture type="tap" action="togglePaused" pointer="mouse" region="center"></media-gesture>
    <media-gesture type="tap" action="toggleControls" pointer="touch"></media-gesture>
    <media-gesture type="doubletap" action="seekStep" value="-10" region="left"></media-gesture>
    <media-gesture type="doubletap" action="toggleFullscreen" region="center"></media-gesture>
    <media-gesture type="doubletap" action="seekStep" value="10" region="right"></media-gesture>

    <!-- Input Feedback -->
    <media-status-announcer></media-status-announcer>
    <div class="media-input-feedback">
      <media-volume-indicator hidden class="media-surface media-input-feedback-island media-input-feedback-island--volume">
        <media-volume-indicator-fill class="media-input-feedback-island__content">
          <media-icon name="volume-high" class="media-icon media-icon--volume-high"></media-icon>
          <media-icon name="volume-low" class="media-icon media-icon--volume-low"></media-icon>
          <media-icon name="volume-off" class="media-icon media-icon--volume-off"></media-icon>
          <media-volume-indicator-value class="media-input-feedback-island__value"></media-volume-indicator-value>
        </media-volume-indicator-fill>
      </media-volume-indicator>
      <media-status-indicator
        hidden
        actions="toggleSubtitles toggleFullscreen togglePictureInPicture"
        class="media-surface media-input-feedback-island media-input-feedback-island--status"
      >
        <div class="media-input-feedback-island__content">
          <media-icon name="captions-on" class="media-icon media-icon--captions-on"></media-icon>
          <media-icon name="captions-off" class="media-icon media-icon--captions-off"></media-icon>
          <media-icon name="fullscreen-enter" class="media-icon media-icon--fullscreen-enter"></media-icon>
          <media-icon name="fullscreen-exit" class="media-icon media-icon--fullscreen-exit"></media-icon>
          <media-icon name="pip-enter" class="media-icon media-icon--pip-enter"></media-icon>
          <media-icon name="pip-exit" class="media-icon media-icon--pip-exit"></media-icon>
          <media-status-indicator-value class="media-input-feedback-island__value"></media-status-indicator-value>
        </div>
      </media-status-indicator>
      <media-seek-indicator hidden class="media-input-feedback-bubble">
        <media-icon name="chevron" class="media-icon media-icon--seek"></media-icon>
        <media-seek-indicator-value class="media-time"></media-seek-indicator-value>
      </media-seek-indicator>
      <media-status-indicator hidden actions="togglePaused" class="media-input-feedback-bubble">
        <media-icon name="play" class="media-icon media-icon--play"></media-icon>
        <media-icon name="pause" class="media-icon media-icon--pause"></media-icon>
      </media-status-indicator>
    </div>
  </media-container>
</video-player>
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html/cdn/video-ui.js"></script>
<link rel="stylesheet" href="./player.css">

<video-player>
  <media-container class="**:box-border [&_[hidden][hidden]]:hidden [&_button]:font-[inherit] motion-safe:[interpolate-size:allow-keywords] block relative isolate h-full w-full @container/media-root rounded-(--media-border-radius,2rem) font-[Inter_Variable,Inter,ui-sans-serif,system-ui,sans-serif] text-[0.8125rem] leading-normal subpixel-antialiased outline-2 outline-transparent -outline-offset-4 transition-[outline-offset,outline-color] duration-100 ease-out focus-visible:outline-current focus-visible:outline-offset-2 [--media-current-shadow-color:oklch(from_currentColor_0_0_0/clamp(0,calc((l-0.5)*0.5),0.15))] [--media-current-shadow-color-subtle:oklch(from_var(--media-current-shadow-color)_l_c_h/calc(alpha*0.4))] [--media-icon-size:18px] bg-black overflow-clip after:absolute after:pointer-events-none after:rounded-[inherit] after:z-10 after:inset-0 after:ring-1 after:ring-inset after:ring-black/10 dark:after:ring-white/15 [&_::slotted(video)]:block [&_::slotted(video)]:w-full [&_::slotted(video)]:h-full [&_::slotted(video)]:rounded-(--media-video-border-radius) [&_::slotted(video)]:[object-fit:var(--media-object-fit,contain)] [&_::slotted(video)]:[object-position:var(--media-object-position,center)] [--media-spring-timing-function:linear(0,0.034_1.5%,0.763_9.7%,1.066_13.9%,1.198_19.9%,1.184_21.8%,0.963_37.5%,0.997_50.9%,1)] [--media-video-border-radius:var(--media-border-radius,2rem)] [--media-controls-transition-duration:100ms] [--media-controls-transition-timing-function:ease-out] [--media-error-dialog-transition-duration:350ms] [--media-error-dialog-transition-delay:100ms] [--media-error-dialog-transition-timing-function:var(--media-spring-timing-function)] [--media-popup-transition-duration:100ms] [--media-popup-transition-timing-function:ease-out] [--media-surface-background-color:oklch(1_0_0/0.1)] [--media-surface-inner-border-color:oklch(1_0_0/0.05)] [--media-surface-outer-border-color:oklch(0_0_0/0.1)] [--media-surface-shadow-color:oklch(0_0_0/0.15)] [--media-surface-backdrop-filter:blur(16px)_saturate(1.5)] motion-reduce:[--media-error-dialog-transition-duration:50ms] motion-reduce:[--media-error-dialog-transition-delay:0ms] motion-reduce:[--media-error-dialog-transition-timing-function:ease-out] [--media-tooltip-side-offset:0.75rem] [--media-tooltip-boundary-offset:0.5rem] [--media-popover-side-offset:0.5rem] [--media-popover-boundary-offset:0.5rem] motion-reduce:[--media-popup-transition-duration:0ms] [@media(prefers-reduced-transparency:reduce)]:[--media-surface-background-color:oklch(0_0_0)] contrast-more:[--media-surface-background-color:oklch(0_0_0)] [@media(prefers-reduced-transparency:reduce)]:[--media-surface-inner-border-color:oklch(1_0_0/0.25)] contrast-more:[--media-surface-inner-border-color:oklch(1_0_0/0.25)] [@media(prefers-reduced-transparency:reduce)]:[--media-surface-outer-border-color:transparent] contrast-more:[--media-surface-outer-border-color:transparent] pointer-fine:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:300ms] pointer-coarse:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:150ms] motion-reduce:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:50ms] [--media-caption-track-y:-0.5rem] [--media-caption-track-delay:25ms] [--media-caption-track-duration:var(--media-controls-transition-duration)] has-[[data-controls][data-visible]]:[--media-caption-track-y:-5.5rem] @2xl/media-root:has-[[data-controls][data-visible]]:*:[--media-caption-track-y:-3.5rem] [&:fullscreen]:[--media-border-radius:0] [&:fullscreen_::slotted(video)]:object-contain">
    <video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline></video>

    <media-poster class="absolute inset-0 w-full h-full pointer-events-none transition-opacity duration-250 not-data-visible:opacity-0 [&_::slotted(img)]:absolute [&_::slotted(img)]:inset-0 [&_::slotted(img)]:w-full [&_::slotted(img)]:h-full [&_::slotted(img)]:[object-fit:var(--media-object-fit,contain)] [&_::slotted(img)]:[object-position:var(--media-object-position,center)] [&_::slotted(img)]:rounded-(--media-video-border-radius)">
      <img src="https://image.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/thumbnail.webp" />
    </media-poster>

    <media-buffering-indicator class="absolute inset-0 hidden items-center justify-center pointer-events-none text-white not-data-visible:[--media-spinner-animation:none] data-visible:flex">
      <div class="p-1 rounded-full bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10">
        <media-icon name="spinner"></media-icon>
      </div>
    </media-buffering-indicator>

    <media-error-dialog class="peer/error group/error hidden data-[open]:flex absolute inset-0 z-20 items-center justify-center outline-none">
      <div class="flex flex-col gap-3 max-w-72 p-3 rounded-[1.75rem] text-white transition-[opacity,scale,transform] duration-(--media-error-dialog-transition-duration) delay-(--media-error-dialog-transition-delay) ease-(--media-error-dialog-transition-timing-function) group-data-starting-style/error:opacity-0 group-data-starting-style/error:scale-50 group-data-ending-style/error:opacity-0 group-data-ending-style/error:scale-50 group-data-ending-style/error:delay-0 bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 text-shadow-2xs text-shadow-black/25">
        <div class="flex flex-col gap-2 px-2 pt-2 pb-1.5 text-shadow-inherit">
          <media-alert-dialog-title class="font-semibold leading-tight text-base">Something went wrong.</media-alert-dialog-title>
          <media-alert-dialog-description class="opacity-70 wrap-anywhere"></media-alert-dialog-description>
        </div>
        <div class="flex gap-2 *:flex-1">
          <media-alert-dialog-close class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-white text-black font-medium text-shadow-none">OK</media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <media-controls data-controls="" class="peer/controls @container/media-controls p-[0.375rem] flex items-center gap-x-[0.075rem] rounded-3xl text-shadow-2xs text-shadow-(color:--media-current-shadow-color) bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 absolute bottom-2 inset-x-2 flex-wrap [color:var(--media-color-primary,oklch(1_0_0))] z-10 peer-data-open/error:hidden ease-(--media-controls-transition-timing-function) origin-bottom duration-(--media-controls-transition-duration) pointer-fine:will-change-[scale,filter,opacity] pointer-fine:transition-[scale,filter,opacity] pointer-coarse:will-change-[scale,opacity] pointer-coarse:transition-[scale,opacity] not-data-visible:pointer-events-none not-data-visible:opacity-0 motion-safe:not-data-visible:scale-90 pointer-fine:motion-safe:not-data-visible:blur-sm @2xl/media-root:bottom-3 @2xl/media-root:inset-x-3 @2xl/media-root:flex-nowrap @2xl/media-root:gap-x-0.5 @2xl/media-root:p-1">
      <media-tooltip-group>
        <div class="flex items-center gap-[0.075rem] @2xl/media-root:gap-0.5 flex-1 @2xl/media-root:flex-none">
            <media-play-button commandfor="play-tooltip" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 hover:no-underline focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-9 aspect-square p-0 active:scale-90 group">
              <media-icon name="restart" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-ended:block group-data-ended:opacity-100"></media-icon>
              <media-icon name="play" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100 group-not-data-ended:group-not-data-started:block group-not-data-ended:group-not-data-started:opacity-100"></media-icon>
              <media-icon name="pause" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-started:group-not-data-paused:group-not-data-ended:block group-data-started:group-not-data-paused:group-not-data-ended:opacity-100"></media-icon>
            </media-play-button>
            <media-tooltip id="play-tooltip" side="top" class="bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full py-1 px-2.5 rounded-full text-[0.75rem] whitespace-nowrap data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>

          <media-seek-button commandfor="seek-backward-tooltip" seconds="-10" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 hover:no-underline focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-9 aspect-square p-0 active:scale-90">
            <span class="relative grid">
              <media-icon name="seek" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out [scale:-1_1]"></media-icon>
              <span class="text-[10px] font-medium tracking-tighter tabular-nums absolute -left-px -bottom-0.75">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-backward-tooltip" side="top" class="bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full py-1 px-2.5 rounded-full text-[0.75rem] whitespace-nowrap data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>

          <media-seek-button commandfor="seek-forward-tooltip" seconds="10" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 hover:no-underline focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-9 aspect-square p-0 active:scale-90">
            <span class="relative grid">
              <media-icon name="seek" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out"></media-icon>
              <span class="text-[10px] font-medium tracking-tighter tabular-nums absolute -right-px -bottom-0.75">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-forward-tooltip" side="top" class="bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full py-1 px-2.5 rounded-full text-[0.75rem] whitespace-nowrap data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>
        </div>

        <div class="@container/media-time flex items-center flex-1 gap-3 px-2 grow-0 shrink-0 basis-full order-[-1] px-2.5 @2xl/media-root:grow @2xl/media-root:shrink @2xl/media-root:basis-0 @2xl/media-root:order-[unset]">
          <media-time type="current" class="hidden @2xs/media-time:block tabular-nums"></media-time>
          <media-time-slider class="group/slider relative flex flex-1 items-center justify-center rounded-full outline-none cursor-pointer data-[orientation=horizontal]:min-w-20 data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-8 data-[orientation=vertical]:w-8 data-[orientation=vertical]:h-20">
            <media-slider-track class="relative isolate overflow-hidden rounded-[inherit] select-none data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-1 data-[orientation=vertical]:w-1 data-[orientation=vertical]:h-full bg-white/20 ring-1 ring-black/5">
              <media-slider-fill class="absolute rounded-[inherit] pointer-events-none bg-current data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0 data-[orientation=horizontal]:w-(--media-slider-fill) data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0 data-[orientation=vertical]:h-(--media-slider-fill)"></media-slider-fill>
              <media-slider-buffer class="absolute rounded-[inherit] pointer-events-none bg-current/20 duration-250 ease-out data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0 data-[orientation=horizontal]:transition-[width] data-[orientation=horizontal]:w-(--media-slider-buffer) data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0 data-[orientation=vertical]:transition-[height] data-[orientation=vertical]:h-(--media-slider-buffer)"></media-slider-buffer>
            </media-slider-track>
            <media-slider-thumb class="z-10 absolute -translate-x-1/2 -translate-y-1/2 bg-current rounded-full shadow-[0_0_0_1px_var(--media-current-shadow-color,oklch(0_0_0/0.1)),0_1px_3px_0_oklch(0_0_0/0.35),0_1px_2px_-1px_oklch(0_0_0/0.35)] transition-[opacity,height,width,outline-offset] duration-150 ease-out select-none outline-4 outline-transparent -outline-offset-4 hover:outline-current/15 hover:outline-offset-0 focus-visible:outline-current/15 focus-visible:outline-offset-0 data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:left-(--media-slider-fill) data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:top-[calc(100%-var(--media-slider-fill))] size-2.5 opacity-0 focus-visible:opacity-100 group-hover/slider:opacity-100 group-active/slider:size-3"></media-slider-thumb>

            <div class="group/thumbnail peer/thumbnail pointer-events-none bg-black/90 rounded-xl bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 [--media-slider-thumbnail-max-width:11rem] [--media-slider-thumbnail-padding:-1.125rem] [--media-slider-thumbnail-inset:calc((100cqi-100%)/2)] absolute [left:clamp(calc(var(--media-slider-thumbnail-max-width)/2+var(--media-slider-thumbnail-padding)-var(--media-slider-thumbnail-inset)),var(--media-slider-pointer),calc(100%-var(--media-slider-thumbnail-max-width)/2-var(--media-slider-thumbnail-padding)+var(--media-slider-thumbnail-inset)))] bottom-[calc(100%+1.2rem)] -translate-x-1/2 opacity-0 scale-80 blur-sm origin-bottom transition-[scale,opacity,filter] duration-150 has-[[role=img]:not([data-hidden])]:group-data-pointing/slider:opacity-100 has-[[role=img]:not([data-hidden])]:group-data-pointing/slider:scale-100 has-[[role=img]:not([data-hidden])]:group-data-pointing/slider:blur-none has-[[role=img][data-loading]]:max-h-24">
              <media-slider-thumbnail class="block relative overflow-clip rounded-[inherit] transition-opacity duration-150 ease-out after:absolute after:inset-0 after:rounded-[inherit] after:bg-linear-to-t after:from-black/80 after:via-black/30 after:to-black/0 data-loading:opacity-0 max-w-(--media-slider-thumbnail-max-width)"></media-slider-thumbnail>
              <media-slider-value type="pointer" class="hidden @2xs/media-time:block tabular-nums absolute bottom-2 inset-x-0 text-center tabular-nums"></media-slider-value>
              <media-icon name="spinner" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 opacity-0 transition-opacity duration-150 ease-out group-not-has-[[role=img][data-loading]]/thumbnail:[--media-spinner-animation:none] group-has-[[role=img][data-loading]]/thumbnail:opacity-100"></media-icon>
            </div>
            <media-slider-preview class="group/preview before:block before:min-w-1 before:h-1 before:bg-current before:rounded-full before:opacity-0 before:scale-50 before:shadow-[0_0_0_1px_var(--media-current-shadow-color,oklch(0_0_0/0.15)),0_1px_2px_0_oklch(0_0_0/0.35)] before:transition-[opacity,scale] before:duration-200 before:ease-out data-pointing:not-data-dragging:before:opacity-100 data-pointing:not-data-dragging:before:scale-100 peer-has-[[role=img]:not([data-hidden])]/thumbnail:*:hidden">
              <media-slider-value type="pointer" class="absolute bottom-9 tabular-nums -translate-x-1/2 translate-y-2 scale-50 opacity-0 blur-lg text-shadow-2xs text-shadow-(color:--media-current-shadow-color) transition-[filter,opacity,scale,translate] duration-200 ease-out group-data-pointing/preview:translate-y-0 group-data-pointing/preview:scale-100 group-data-pointing/preview:opacity-100 group-data-pointing/preview:blur-none hidden @2xs/media-time:block tabular-nums"></media-slider-value>
            </media-slider-preview>
          </media-time-slider>
          <media-time type="duration" class="tabular-nums"></media-time>
        </div>

        <div class="flex items-center gap-[0.075rem] @2xl/media-root:gap-0.5 flex-1 justify-end @2xl/media-root:flex-none group/settings">
          <media-mute-button commandfor="video-volume-popover" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 hover:no-underline focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-9 aspect-square p-0 active:scale-90 group">
            <media-icon name="volume-off" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-muted:block group-data-muted:opacity-100"></media-icon>
            <media-icon name="volume-low" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100"></media-icon>
            <media-icon name="volume-high" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100"></media-icon>
          </media-mute-button>

          <media-popover id="video-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full data-[side=top]:before:h-(--media-popover-side-offset) data-[side=bottom]:before:h-(--media-popover-side-offset) data-[side=left]:before:w-(--media-popover-side-offset) data-[side=right]:before:w-(--media-popover-side-offset) py-3 px-0 rounded-full">
            <media-volume-slider class="group/slider relative flex flex-1 items-center justify-center rounded-full outline-none cursor-pointer data-[orientation=horizontal]:min-w-20 data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-8 data-[orientation=vertical]:w-8 data-[orientation=vertical]:h-20" orientation="vertical" thumb-alignment="edge">
              <media-slider-track class="relative isolate overflow-hidden rounded-[inherit] select-none data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-1 data-[orientation=vertical]:w-1 data-[orientation=vertical]:h-full bg-white/20 ring-1 ring-black/5">
                <media-slider-fill class="absolute rounded-[inherit] pointer-events-none bg-current data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0 data-[orientation=horizontal]:w-(--media-slider-fill) data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0 data-[orientation=vertical]:h-(--media-slider-fill)"></media-slider-fill>
              </media-slider-track>
              <media-slider-thumb class="z-10 absolute -translate-x-1/2 -translate-y-1/2 bg-current rounded-full shadow-[0_0_0_1px_var(--media-current-shadow-color,oklch(0_0_0/0.1)),0_1px_3px_0_oklch(0_0_0/0.35),0_1px_2px_-1px_oklch(0_0_0/0.35)] transition-[opacity,height,width,outline-offset] duration-150 ease-out select-none outline-4 outline-transparent -outline-offset-4 hover:outline-current/15 hover:outline-offset-0 focus-visible:outline-current/15 focus-visible:outline-offset-0 data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:left-(--media-slider-fill) data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:top-[calc(100%-var(--media-slider-fill))] size-3"></media-slider-thumb>
            </media-volume-slider>
          </media-popover>

          <button commandfor="settings-menu" aria-label="Settings" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 hover:no-underline focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-9 aspect-square p-0 active:scale-90 group hidden group-has-[[data-availability=available]]/settings:grid media-button--settings">
            <media-icon name="gear" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out transition-transform duration-150 ease-in-out group-aria-expanded:rotate-90 motion-reduce:duration-0"></media-icon>
          </button>
          <media-menu id="settings-menu" side="top" align="center" class="m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full data-[side=top]:before:h-(--media-popover-side-offset) data-[side=bottom]:before:h-(--media-popover-side-offset) data-[side=left]:before:w-(--media-popover-side-offset) data-[side=right]:before:w-(--media-popover-side-offset) [--menu-transition-duration:200ms] [--menu-item-transition-duration:100ms] motion-reduce:[--menu-transition-duration:0ms] motion-reduce:[--menu-item-transition-duration:0ms] max-w-(--media-popover-available-width,none) max-h-(--media-popover-available-height,none) transition-[transform,scale,opacity,filter,width,height] duration-(--menu-transition-duration) ease-in-out box-border rounded-[1.25rem] p-1.5 overscroll-none [--menu-transition-duration:250ms] relative min-w-44 w-(--media-menu-width) h-(--media-menu-height) overflow-hidden">
            <media-menu-view class="absolute inset-0 overflow-auto overscroll-none p-1.5 outline-none translate-none data-starting-style:overflow-hidden data-ending-style:overflow-hidden transition-[translate,filter] duration-(--menu-transition-duration) ease-in-out will-change-[translate] data-[menu-view-state=inactive]:-translate-x-full data-[menu-view-state=inactive]:blur">
              <div class="flex flex-col gap-0.5">
                <media-menu-item commandfor="settings-speed-menu" type="playback-rate" data-setting="playback-rate" class="flex cursor-pointer select-none items-center rounded-full py-1.5 px-3 text-shadow-2xs text-shadow-(color:--media-current-shadow-color) outline-2 -outline-offset-2 outline-transparent transition-[background-color,color] duration-(--menu-item-transition-duration) ease-out hover:bg-current/10 data-highlighted:bg-current/10 focus-visible:outline-current focus-visible:outline-offset-2 group/menu-item justify-between gap-2 tabular-nums text-inherit data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50 media-menu__item--submenu">
                  <span>Speed</span>
                  <span class="ml-auto flex min-w-0 items-center gap-1 text-xs text-current/65">
                    <media-menu-item-value class="max-w-24 overflow-hidden text-ellipsis whitespace-nowrap"></media-menu-item-value>
                    <media-icon name="chevron" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out size-3.5 first:-ml-1 last:-mr-1"></media-icon>
                  </span>
                </media-menu-item>
                <media-menu-item commandfor="settings-captions-menu" type="captions" data-setting="captions" class="flex cursor-pointer select-none items-center rounded-full py-1.5 px-3 text-shadow-2xs text-shadow-(color:--media-current-shadow-color) outline-2 -outline-offset-2 outline-transparent transition-[background-color,color] duration-(--menu-item-transition-duration) ease-out hover:bg-current/10 data-highlighted:bg-current/10 focus-visible:outline-current focus-visible:outline-offset-2 group/menu-item justify-between gap-2 tabular-nums text-inherit data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50 media-menu__item--submenu">
                  <span>Captions</span>
                  <span class="ml-auto flex min-w-0 items-center gap-1 text-xs text-current/65">
                    <media-menu-item-value class="max-w-24 overflow-hidden text-ellipsis whitespace-nowrap"></media-menu-item-value>
                    <media-icon name="chevron" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out size-3.5 first:-ml-1 last:-mr-1"></media-icon>
                  </span>
                </media-menu-item>
              </div>
            </media-menu-view>

            <media-menu id="settings-speed-menu" class="absolute inset-0 overflow-auto overscroll-none p-1.5 outline-none translate-none data-starting-style:overflow-hidden data-ending-style:overflow-hidden transition-[translate,filter] duration-(--menu-transition-duration) ease-in-out will-change-[translate] z-10 not-data-open:not-data-ending-style:-translate-x-full not-data-open:not-data-ending-style:transition-none data-starting-style:pointer-events-none data-ending-style:pointer-events-none data-starting-style:blur data-ending-style:blur data-starting-style:data-[direction=forward]:translate-x-full data-ending-style:data-[direction=forward]:-translate-x-full data-starting-style:data-[direction=back]:-translate-x-full data-ending-style:data-[direction=back]:translate-x-full">
              <media-menu-back class="flex cursor-pointer select-none items-center rounded-full py-1.5 px-3 text-shadow-2xs text-shadow-(color:--media-current-shadow-color) outline-2 -outline-offset-2 outline-transparent transition-[background-color,color] duration-(--menu-item-transition-duration) ease-out hover:bg-current/10 data-highlighted:bg-current/10 focus-visible:outline-current focus-visible:outline-offset-2 mb-0.5 w-full gap-1.5 font-medium text-current/70 hover:text-inherit data-highlighted:text-inherit focus-visible:text-inherit">
                <media-icon name="chevron" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out size-3.5 first:-ml-1 last:-mr-1 [scale:-1_1]"></media-icon>
                Speed
              </media-menu-back>
              <media-playback-rate-radio-group class="flex flex-col gap-0.5">
                <template>
                  <media-menu-radio-item class="flex cursor-pointer select-none items-center rounded-full py-1.5 px-3 text-shadow-2xs text-shadow-(color:--media-current-shadow-color) outline-2 -outline-offset-2 outline-transparent transition-[background-color,color] duration-(--menu-item-transition-duration) ease-out hover:bg-current/10 data-highlighted:bg-current/10 focus-visible:outline-current focus-visible:outline-offset-2 group/menu-item justify-between gap-2 tabular-nums text-inherit data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50">
                    <span data-part="label"></span>
                    <media-menu-item-indicator force-mount class="-mr-1 shrink-0 opacity-0 group-aria-checked/menu-item:opacity-100 [&_.media-icon]:drop-shadow-[0_1px_0_var(--media-current-shadow-color)]">
                      <media-icon name="check" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out"></media-icon>
                    </media-menu-item-indicator>
                  </media-menu-radio-item>
                </template>
              </media-playback-rate-radio-group>
            </media-menu>

            <media-menu id="settings-captions-menu" class="absolute inset-0 overflow-auto overscroll-none p-1.5 outline-none translate-none data-starting-style:overflow-hidden data-ending-style:overflow-hidden transition-[translate,filter] duration-(--menu-transition-duration) ease-in-out will-change-[translate] z-10 not-data-open:not-data-ending-style:-translate-x-full not-data-open:not-data-ending-style:transition-none data-starting-style:pointer-events-none data-ending-style:pointer-events-none data-starting-style:blur data-ending-style:blur data-starting-style:data-[direction=forward]:translate-x-full data-ending-style:data-[direction=forward]:-translate-x-full data-starting-style:data-[direction=back]:-translate-x-full data-ending-style:data-[direction=back]:translate-x-full">
              <media-menu-back class="flex cursor-pointer select-none items-center rounded-full py-1.5 px-3 text-shadow-2xs text-shadow-(color:--media-current-shadow-color) outline-2 -outline-offset-2 outline-transparent transition-[background-color,color] duration-(--menu-item-transition-duration) ease-out hover:bg-current/10 data-highlighted:bg-current/10 focus-visible:outline-current focus-visible:outline-offset-2 mb-0.5 w-full gap-1.5 font-medium text-current/70 hover:text-inherit data-highlighted:text-inherit focus-visible:text-inherit">
                <media-icon name="chevron" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out size-3.5 first:-ml-1 last:-mr-1 [scale:-1_1]"></media-icon>
                Captions
              </media-menu-back>
              <media-captions-radio-group class="flex flex-col gap-0.5">
                <template>
                  <media-menu-radio-item class="flex cursor-pointer select-none items-center rounded-full py-1.5 px-3 text-shadow-2xs text-shadow-(color:--media-current-shadow-color) outline-2 -outline-offset-2 outline-transparent transition-[background-color,color] duration-(--menu-item-transition-duration) ease-out hover:bg-current/10 data-highlighted:bg-current/10 focus-visible:outline-current focus-visible:outline-offset-2 group/menu-item justify-between gap-2 tabular-nums text-inherit data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50">
                    <span data-part="label"></span>
                    <media-menu-item-indicator force-mount class="-mr-1 shrink-0 opacity-0 group-aria-checked/menu-item:opacity-100 [&_.media-icon]:drop-shadow-[0_1px_0_var(--media-current-shadow-color)]">
                      <media-icon name="check" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out"></media-icon>
                    </media-menu-item-indicator>
                  </media-menu-radio-item>
                </template>
              </media-captions-radio-group>
            </media-menu>
          </media-menu>

            <media-cast-button commandfor="cast-tooltip" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 hover:no-underline focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-9 aspect-square p-0 active:scale-90 group">
              <media-icon name="cast-enter" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-[cast-state=connected]:block group-not-data-[cast-state=connected]:opacity-100"></media-icon>
              <media-icon name="cast-exit" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-[cast-state=connected]:block group-data-[cast-state=connected]:opacity-100"></media-icon>
            </media-cast-button>
            <media-tooltip id="cast-tooltip" side="top" class="bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full py-1 px-2.5 rounded-full text-[0.75rem] whitespace-nowrap data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>
            <media-airplay-button commandfor="airplay-tooltip" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 hover:no-underline focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-9 aspect-square p-0 active:scale-90 group not-data-[airplay-state=connected]:[--media-icon--airplay__fill-animation:none] not-data-[airplay-state=connected]:[--media-icon--airplay__triangle-animation:none]">
              <media-icon name="airplay-enter" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-[airplay-state=connected]:block group-not-data-[airplay-state=connected]:opacity-100"></media-icon>
              <media-icon name="airplay-exit" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-[airplay-state=connected]:block group-data-[airplay-state=connected]:opacity-100"></media-icon>
            </media-airplay-button>
            <media-tooltip id="airplay-tooltip" side="top" class="bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full py-1 px-2.5 rounded-full text-[0.75rem] whitespace-nowrap data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>
            <media-pip-button commandfor="pip-tooltip" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 hover:no-underline focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-9 aspect-square p-0 active:scale-90 group">
              <media-icon name="pip-enter" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-pip:block group-not-data-pip:opacity-100"></media-icon>
              <media-icon name="pip-exit" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-pip:block group-data-pip:opacity-100"></media-icon>
            </media-pip-button>
            <media-tooltip id="pip-tooltip" side="top" class="bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full py-1 px-2.5 rounded-full text-[0.75rem] whitespace-nowrap data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>
            <media-fullscreen-button commandfor="fullscreen-tooltip" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 hover:no-underline focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-9 aspect-square p-0 active:scale-90 group">
              <media-icon name="fullscreen-enter" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100"></media-icon>
              <media-icon name="fullscreen-exit" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100"></media-icon>
            </media-fullscreen-button>
            <media-tooltip id="fullscreen-tooltip" side="top" class="bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full py-1 px-2.5 rounded-full text-[0.75rem] whitespace-nowrap data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>
        </div>
      </media-tooltip-group>
    </media-controls>

    <div class="absolute inset-0 flex flex-col items-start pointer-events-none rounded-[inherit] opacity-0 bg-linear-to-t from-black/50 via-black/30 via-25% to-transparent backdrop-blur-none backdrop-saturate-100 transition-[opacity,backdrop-filter] duration-(--media-controls-transition-duration) ease-out peer-data-visible/controls:opacity-100 peer-data-open/error:opacity-100 peer-data-open/error:duration-(--media-error-dialog-transition-duration) peer-data-open/error:delay-(--media-error-dialog-transition-delay) peer-data-open/error:backdrop-blur-lg peer-data-open/error:backdrop-saturate-150"></div>

    <!-- Hotkeys -->
    <media-hotkey keys="Space" action="togglePaused"></media-hotkey>
    <media-hotkey keys="k" action="togglePaused"></media-hotkey>
    <media-hotkey keys="m" action="toggleMuted"></media-hotkey>
    <media-hotkey keys="f" action="toggleFullscreen"></media-hotkey>
    <media-hotkey keys="c" action="toggleSubtitles"></media-hotkey>
    <media-hotkey keys="i" action="togglePictureInPicture"></media-hotkey>
    <media-hotkey keys="ArrowRight" action="seekStep" value="5"></media-hotkey>
    <media-hotkey keys="ArrowLeft" action="seekStep" value="-5"></media-hotkey>
    <media-hotkey keys="l" action="seekStep" value="10"></media-hotkey>
    <media-hotkey keys="j" action="seekStep" value="-10"></media-hotkey>
    <media-hotkey keys="ArrowUp" action="volumeStep" value="0.05"></media-hotkey>
    <media-hotkey keys="ArrowDown" action="volumeStep" value="-0.05"></media-hotkey>
    <media-hotkey keys="0-9" action="seekToPercent"></media-hotkey>
    <media-hotkey keys="Home" action="seekToPercent" value="0"></media-hotkey>
    <media-hotkey keys="End" action="seekToPercent" value="100"></media-hotkey>
    <media-hotkey keys=">" action="speedUp"></media-hotkey>
    <media-hotkey keys="<" action="speedDown"></media-hotkey>

    <!-- Gestures -->
    <media-gesture type="tap" action="togglePaused" pointer="mouse" region="center"></media-gesture>
    <media-gesture type="tap" action="toggleControls" pointer="touch"></media-gesture>
    <media-gesture type="doubletap" action="seekStep" value="-10" region="left"></media-gesture>
    <media-gesture type="doubletap" action="toggleFullscreen" region="center"></media-gesture>
    <media-gesture type="doubletap" action="seekStep" value="10" region="right"></media-gesture>

    <!-- Input Feedback -->
    <media-status-announcer></media-status-announcer>
    <div class="absolute inset-x-0 top-0 bottom-14 pointer-events-none grid grid-cols-3 items-center justify-items-center @2xl/media-root:bottom-0 [color:var(--media-color-primary,oklch(1_0_0))]">
      <media-volume-indicator
        hidden
        class="group/input-indicator [--media-surface-background-color:oklch(0_0_0/0.25)] absolute top-3 rounded-full origin-top pointer-events-none text-inherit font-medium duration-100 ease-out data-starting-style:opacity-0 data-ending-style:opacity-0 data-starting-style:duration-250 data-starting-style:ease-in data-ending-style:duration-250 data-ending-style:ease-in pointer-coarse:will-change-[scale,translate,opacity] pointer-coarse:transition-[scale,translate,opacity] pointer-fine:motion-safe:will-change-[scale,translate,filter,opacity] pointer-fine:motion-safe:transition-[scale,translate,filter,opacity] pointer-fine:motion-safe:data-starting-style:blur-sm pointer-fine:motion-safe:data-starting-style:scale-90 pointer-fine:motion-safe:data-ending-style:blur-sm pointer-fine:motion-safe:data-ending-style:scale-90 motion-safe:data-ending-style:-translate-y-1/4 [@media(prefers-reduced-transparency:reduce)]:[--media-surface-background-color:oklch(0_0_0)] contrast-more:[--media-surface-background-color:oklch(0_0_0)] bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 w-[min(80%,12rem)] *:[--media-progress-fill:var(--media-volume-fill)] *:rounded-[inherit] *:[background-image:linear-gradient(to_right,currentColor_0%,currentColor_var(--media-progress-fill),transparent_var(--media-progress-fill),transparent_100%)] *:[transition:--media-progress-fill_200ms_linear] data-open:duration-100 data-min:animate-media-shake data-max:animate-media-shake motion-reduce:data-min:animate-none motion-reduce:data-max:animate-none"
      >
        <media-volume-indicator-fill class="flex justify-between items-center gap-2 px-2.5 py-1 w-full **:mix-blend-difference">
          <media-icon name="volume-high" class="hidden shrink-0 group-data-[level=high]/input-indicator:block"></media-icon>
          <media-icon name="volume-low" class="hidden shrink-0 group-data-[level=low]/input-indicator:block"></media-icon>
          <media-icon name="volume-off" class="hidden shrink-0 group-data-[level=off]/input-indicator:block"></media-icon>
          <media-volume-indicator-value class="ml-auto"></media-volume-indicator-value>
        </media-volume-indicator-fill>
      </media-volume-indicator>

      <media-status-indicator hidden actions="toggleSubtitles toggleFullscreen togglePictureInPicture" class="group/input-indicator [--media-surface-background-color:oklch(0_0_0/0.25)] absolute top-3 rounded-full origin-top pointer-events-none text-inherit font-medium duration-100 ease-out data-starting-style:opacity-0 data-ending-style:opacity-0 data-starting-style:duration-250 data-starting-style:ease-in data-ending-style:duration-250 data-ending-style:ease-in pointer-coarse:will-change-[scale,translate,opacity] pointer-coarse:transition-[scale,translate,opacity] pointer-fine:motion-safe:will-change-[scale,translate,filter,opacity] pointer-fine:motion-safe:transition-[scale,translate,filter,opacity] pointer-fine:motion-safe:data-starting-style:blur-sm pointer-fine:motion-safe:data-starting-style:scale-90 pointer-fine:motion-safe:data-ending-style:blur-sm pointer-fine:motion-safe:data-ending-style:scale-90 motion-safe:data-ending-style:-translate-y-1/4 [@media(prefers-reduced-transparency:reduce)]:[--media-surface-background-color:oklch(0_0_0)] contrast-more:[--media-surface-background-color:oklch(0_0_0)] bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 data-open:duration-100">
        <div class="flex justify-between items-center gap-2 px-2.5 py-1 w-full **:mix-blend-difference">
          <media-icon name="captions-on" class="hidden shrink-0 group-data-[status=captions-on]/input-indicator:block"></media-icon>
          <media-icon name="captions-off" class="hidden shrink-0 group-data-[status=captions-off]/input-indicator:block"></media-icon>
          <media-icon name="fullscreen-enter" class="hidden shrink-0 group-data-[status=fullscreen]/input-indicator:block motion-safe:group-not-data-starting-style/input-indicator:group-data-[status=fullscreen]/input-indicator:animate-media-pop-in"></media-icon>
          <media-icon name="fullscreen-exit" class="hidden shrink-0 group-data-[status=exit-fullscreen]/input-indicator:block motion-safe:group-not-data-starting-style/input-indicator:group-data-[status=exit-fullscreen]/input-indicator:animate-media-pop-in"></media-icon>
          <media-icon name="pip-enter" class="hidden shrink-0 group-data-[status=pip]/input-indicator:block motion-safe:group-not-data-starting-style/input-indicator:group-data-[status=pip]/input-indicator:animate-media-pop-in"></media-icon>
          <media-icon name="pip-exit" class="hidden shrink-0 group-data-[status=exit-pip]/input-indicator:block motion-safe:group-not-data-starting-style/input-indicator:group-data-[status=exit-pip]/input-indicator:animate-media-pop-in"></media-icon>
          <media-status-indicator-value class="ml-auto"></media-status-indicator-value>
        </div>
      </media-status-indicator>

      <media-seek-indicator hidden class="group/input-indicator col-start-2 row-start-1 flex flex-col items-center justify-center p-4 transition-opacity duration-250 ease-out data-starting-style:opacity-0 data-ending-style:opacity-0 data-starting-style:duration-200 data-starting-style:ease-in data-ending-style:duration-200 data-ending-style:ease-in @2xl/media-root:p-8 not-data-direction:[transition-property:opacity,scale] not-data-direction:duration-600 not-data-direction:[transition-timing-function:ease-out,linear(0,0.12_1.5%,1.35_9.7%,2.2_13.9%,3_19.9%,2.7_21.8%,0.62_37.5%,0.96_50.9%,1)] motion-reduce:not-data-direction:transition-opacity motion-reduce:not-data-direction:duration-100 motion-reduce:not-data-direction:ease-out not-data-direction:data-starting-style:scale-80 not-data-direction:data-ending-style:scale-80 not-data-direction:data-starting-style:duration-200 not-data-direction:data-starting-style:ease-in not-data-direction:data-ending-style:duration-200 not-data-direction:data-ending-style:ease-in data-[direction=backward]:col-start-1 data-[direction=backward]:justify-self-start data-[direction=forward]:col-start-3 data-[direction=forward]:justify-self-end">
        <media-icon name="chevron" class="hidden w-9 h-9 group-data-direction/input-indicator:block group-data-[direction=backward]/input-indicator:-scale-x-100 group-not-data-starting-style/input-indicator:group-data-[direction=forward]/input-indicator:animate-media-slide-in-forward group-not-data-starting-style/input-indicator:group-data-[direction=backward]/input-indicator:animate-media-slide-in-backward motion-reduce:group-data-direction/input-indicator:animate-none"></media-icon>
        <media-seek-indicator-value class="tabular-nums"></media-seek-indicator-value>
      </media-seek-indicator>

      <media-status-indicator hidden actions="togglePaused" class="group/input-indicator col-start-2 row-start-1 flex flex-col items-center justify-center p-4 transition-opacity duration-250 ease-out data-starting-style:opacity-0 data-ending-style:opacity-0 data-starting-style:duration-200 data-starting-style:ease-in data-ending-style:duration-200 data-ending-style:ease-in @2xl/media-root:p-8 not-data-direction:[transition-property:opacity,scale] not-data-direction:duration-600 not-data-direction:[transition-timing-function:ease-out,linear(0,0.12_1.5%,1.35_9.7%,2.2_13.9%,3_19.9%,2.7_21.8%,0.62_37.5%,0.96_50.9%,1)] motion-reduce:not-data-direction:transition-opacity motion-reduce:not-data-direction:duration-100 motion-reduce:not-data-direction:ease-out not-data-direction:data-starting-style:scale-80 not-data-direction:data-ending-style:scale-80 not-data-direction:data-starting-style:duration-200 not-data-direction:data-starting-style:ease-in not-data-direction:data-ending-style:duration-200 not-data-direction:data-ending-style:ease-in data-[direction=backward]:col-start-1 data-[direction=backward]:justify-self-start data-[direction=forward]:col-start-3 data-[direction=forward]:justify-self-end">
        <media-icon name="play" class="hidden w-9 h-9 group-data-[status=play]/input-indicator:block motion-safe:group-not-data-starting-style/input-indicator:group-data-[status=play]/input-indicator:animate-media-pop-in"></media-icon>
        <media-icon name="pause" class="hidden w-9 h-9 group-data-[status=pause]/input-indicator:block motion-safe:group-not-data-starting-style/input-indicator:group-data-[status=pause]/input-indicator:animate-media-pop-in"></media-icon>
      </media-status-indicator>
    </div>
  </media-container>
</video-player>

Default Audio Skin

<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html/cdn/audio-ui.js"></script>
<link rel="stylesheet" href="./player.css">

<audio-player>
  <media-container class="media-default-skin media-default-skin--audio">
    <audio src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4"></audio>

    <media-error-dialog class="media-error">
      <div class="media-error__dialog">
        <div class="media-error__content">
          <media-alert-dialog-title class="media-error__title">Something went wrong.</media-alert-dialog-title>
          <media-alert-dialog-description class="media-error__description"></media-alert-dialog-description>
        </div>
        <div class="media-error__actions">
          <media-alert-dialog-close class="media-button media-button--subtle">OK</media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <div class="media-surface media-controls">
      <media-tooltip-group>
        <div class="media-button-group">
          <media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play">
            <media-icon name="restart" class="media-icon media-icon--restart"></media-icon>
            <media-icon name="play" class="media-icon media-icon--play"></media-icon>
            <media-icon name="pause" class="media-icon media-icon--pause"></media-icon>
          </media-play-button>
          <media-tooltip id="play-tooltip" side="top" boundary="viewport" class="media-surface media-tooltip"></media-tooltip>

          <media-seek-button commandfor="seek-backward-tooltip" seconds="-10" class="media-button media-button--subtle media-button--icon media-button--seek">
            <span class="media-icon__container">
              <media-icon name="seek" class="media-icon media-icon--seek media-icon--flipped"></media-icon>
              <span class="media-icon__label">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-backward-tooltip" side="top" boundary="viewport" class="media-surface media-tooltip"></media-tooltip>

          <media-seek-button commandfor="seek-forward-tooltip" seconds="10" class="media-button media-button--subtle media-button--icon media-button--seek">
            <span class="media-icon__container">
              <media-icon name="seek" class="media-icon media-icon--seek"></media-icon>
              <span class="media-icon__label">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-forward-tooltip" side="top" boundary="viewport" class="media-surface media-tooltip"></media-tooltip>
        </div>

        <div class="media-time-controls">
          <media-time type="current" class="media-time"></media-time>
          <media-time-slider class="media-slider">
            <media-slider-track class="media-slider__track">
              <media-slider-fill class="media-slider__fill"></media-slider-fill>
              <media-slider-buffer class="media-slider__buffer"></media-slider-buffer>
            </media-slider-track>
            <media-slider-thumb class="media-slider__thumb"></media-slider-thumb>
            <media-slider-preview class="media-slider__preview">
              <media-slider-value type="pointer" class="media-slider__value media-time"></media-slider-value>
            </media-slider-preview>
          </media-time-slider>
          <media-time type="duration" class="media-time"></media-time>
        </div>

        <div class="media-button-group">
          <media-playback-rate-button commandfor="playback-rate-menu" class="media-button media-button--subtle media-button--icon media-button--playback-rate"></media-playback-rate-button>
          <media-menu id="playback-rate-menu" side="top" align="center" boundary="viewport" class="media-surface media-popover media-menu">
            <media-playback-rate-radio-group class="media-menu__group">
              <template>
                <media-menu-radio-item class="media-menu__item">
                  <span data-part="label"></span>
                  <media-menu-item-indicator force-mount class="media-menu__indicator">
                    <media-icon name="check" class="media-icon"></media-icon>
                  </media-menu-item-indicator>
                </media-menu-radio-item>
              </template>
            </media-playback-rate-radio-group>
          </media-menu>

          <media-mute-button commandfor="audio-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute">
            <media-icon name="volume-off" class="media-icon media-icon--volume-off"></media-icon>
            <media-icon name="volume-low" class="media-icon media-icon--volume-low"></media-icon>
            <media-icon name="volume-high" class="media-icon media-icon--volume-high"></media-icon>
          </media-mute-button>

          <media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="top" boundary="viewport" class="media-surface media-popover media-popover--volume">
            <media-volume-slider class="media-slider" orientation="vertical" thumb-alignment="edge">
              <media-slider-track class="media-slider__track">
                <media-slider-fill class="media-slider__fill"></media-slider-fill>
              </media-slider-track>
              <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
            </media-volume-slider>
          </media-popover>
        </div>
      </media-tooltip-group>
    </div>

    <!-- Hotkeys -->
    <media-hotkey keys="Space" action="togglePaused"></media-hotkey>
    <media-hotkey keys="k" action="togglePaused"></media-hotkey>
    <media-hotkey keys="m" action="toggleMuted"></media-hotkey>
    <media-hotkey keys="ArrowRight" action="seekStep" value="5"></media-hotkey>
    <media-hotkey keys="ArrowLeft" action="seekStep" value="-5"></media-hotkey>
    <media-hotkey keys="l" action="seekStep" value="10"></media-hotkey>
    <media-hotkey keys="j" action="seekStep" value="-10"></media-hotkey>
    <media-hotkey keys="ArrowUp" action="volumeStep" value="0.05"></media-hotkey>
    <media-hotkey keys="ArrowDown" action="volumeStep" value="-0.05"></media-hotkey>
    <media-hotkey keys="0-9" action="seekToPercent"></media-hotkey>
    <media-hotkey keys="Home" action="seekToPercent" value="0"></media-hotkey>
    <media-hotkey keys="End" action="seekToPercent" value="100"></media-hotkey>
    <media-hotkey keys=">" action="speedUp"></media-hotkey>
    <media-hotkey keys="<" action="speedDown"></media-hotkey>
  </media-container>
</audio-player>
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html/cdn/audio-ui.js"></script>
<link rel="stylesheet" href="./player.css">

<audio-player>
  <media-container class="**:box-border [&_[hidden][hidden]]:hidden [&_button]:font-[inherit] motion-safe:[interpolate-size:allow-keywords] block relative isolate h-full w-full @container/media-root rounded-(--media-border-radius,2rem) font-[Inter_Variable,Inter,ui-sans-serif,system-ui,sans-serif] text-[0.8125rem] leading-normal subpixel-antialiased outline-2 outline-transparent -outline-offset-4 transition-[outline-offset,outline-color] duration-100 ease-out focus-visible:outline-current focus-visible:outline-offset-2 [--media-current-shadow-color:oklch(from_currentColor_0_0_0/clamp(0,calc((l-0.5)*0.5),0.15))] [--media-current-shadow-color-subtle:oklch(from_var(--media-current-shadow-color)_l_c_h/calc(alpha*0.4))] [--media-icon-size:18px] [--media-text-color:var(--media-color-primary,oklch(0_0_0))] [--media-surface-background-color:oklch(1_0_0/0.5)] [--media-surface-inner-border-color:oklch(1_0_0/0.1)] [--media-surface-outer-border-color:oklch(0_0_0/0.05)] [--media-surface-shadow-color:oklch(0_0_0/0.15)] [--media-surface-backdrop-filter:blur(16px)_saturate(1.5)] [--media-error-dialog-transition-duration:250ms] [--media-error-dialog-transition-delay:100ms] [--media-popup-transition-duration:100ms] [--media-popup-transition-timing-function:ease-out] [--media-tooltip-side-offset:0.75rem] [--media-tooltip-boundary-offset:0.75rem] [--media-popover-side-offset:0.75rem] [--media-popover-boundary-offset:0.75rem] motion-reduce:[--media-error-dialog-transition-duration:50ms] motion-reduce:[--media-error-dialog-transition-delay:0ms] motion-reduce:[--media-popup-transition-duration:0ms] dark:[--media-surface-background-color:oklch(0_0_0/0.4)] dark:[--media-text-color:var(--media-color-primary,oklch(1_0_0))] [@media(prefers-reduced-transparency:reduce)]:[--media-surface-background-color:oklch(1_0_0)] contrast-more:[--media-surface-background-color:oklch(1_0_0)] [@media(prefers-reduced-transparency:reduce)]:[--media-surface-outer-border-color:oklch(0_0_0/0.05)] contrast-more:[--media-surface-outer-border-color:oklch(0_0_0/0.05)] dark:[@media(prefers-reduced-transparency:reduce)]:[--media-surface-background-color:oklch(0_0_0)] dark:contrast-more:[--media-surface-background-color:oklch(0_0_0)] dark:[@media(prefers-reduced-transparency:reduce)]:[--media-surface-inner-border-color:oklch(1_0_0/0.2)] dark:contrast-more:[--media-surface-inner-border-color:oklch(1_0_0/0.2)] dark:[@media(prefers-reduced-transparency:reduce)]:[--media-surface-outer-border-color:transparent] dark:contrast-more:[--media-surface-outer-border-color:transparent]">
    <audio src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4"></audio>

    <media-error-dialog class="peer/error group/error hidden data-[open]:flex absolute inset-0 z-20 items-center justify-center outline-none">
      <div class="absolute inset-0 z-20 flex items-center gap-3 rounded-full px-5 pr-0.5 bg-(--media-surface-background-color) text-(--media-text-color) backdrop-blur-lg backdrop-saturate-150 transition-[opacity,filter] ease-out duration-(--media-error-dialog-transition-duration) delay-(--media-error-dialog-transition-delay) group-data-starting-style/error:opacity-0 group-data-starting-style/error:blur-xs group-data-ending-style/error:opacity-0 group-data-ending-style/error:blur-xs group-data-ending-style/error:delay-0">
        <div class="flex flex-1 items-center gap-2">
          <media-alert-dialog-title class="font-semibold leading-tight">Something went wrong.</media-alert-dialog-title>
          <media-alert-dialog-description class="opacity-70 wrap-anywhere"></media-alert-dialog-description>
        </div>
        <div class="flex gap-2 *:flex-1">
          <media-alert-dialog-close class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 hover:no-underline focus-visible:bg-current/10 aria-expanded:bg-current/10">OK</media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <div class="peer/controls @container/media-controls p-[0.375rem] flex items-center gap-x-[0.075rem] rounded-3xl text-shadow-2xs text-shadow-(color:--media-current-shadow-color) bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 text-(--media-text-color) peer-data-open/error:**:invisible">
      <media-tooltip-group>
        <div class="flex items-center gap-[0.075rem] @2xl/media-root:gap-0.5">
            <media-play-button commandfor="play-tooltip" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 hover:no-underline focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-9 aspect-square p-0 active:scale-90 group">
              <media-icon name="restart" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-ended:block group-data-ended:opacity-100"></media-icon>
              <media-icon name="play" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100 group-not-data-ended:group-not-data-started:block group-not-data-ended:group-not-data-started:opacity-100"></media-icon>
              <media-icon name="pause" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-started:group-not-data-paused:group-not-data-ended:block group-data-started:group-not-data-paused:group-not-data-ended:opacity-100"></media-icon>
            </media-play-button>
            <media-tooltip id="play-tooltip" side="top" boundary="viewport" class="bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full py-1 px-2.5 rounded-full text-[0.75rem] whitespace-nowrap data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>

          <media-seek-button commandfor="seek-backward-tooltip" seconds="-10" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 hover:no-underline focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-9 aspect-square p-0 active:scale-90">
            <span class="relative grid">
              <media-icon name="seek" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out [scale:-1_1]"></media-icon>
              <span class="text-[10px] font-medium tracking-tighter tabular-nums absolute -left-px -bottom-0.75">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-backward-tooltip" side="top" boundary="viewport" class="bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full py-1 px-2.5 rounded-full text-[0.75rem] whitespace-nowrap data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>

          <media-seek-button commandfor="seek-forward-tooltip" seconds="10" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 hover:no-underline focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-9 aspect-square p-0 active:scale-90">
            <span class="relative grid">
              <media-icon name="seek" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out"></media-icon>
              <span class="text-[10px] font-medium tracking-tighter tabular-nums absolute -right-px -bottom-0.75">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-forward-tooltip" side="top" boundary="viewport" class="bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full py-1 px-2.5 rounded-full text-[0.75rem] whitespace-nowrap data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>
        </div>

        <div class="@container/media-time flex items-center flex-1 gap-3 px-2">
          <media-time type="current" class="hidden @2xs/media-time:block tabular-nums"></media-time>
          <media-time-slider class="group/slider relative flex flex-1 items-center justify-center rounded-full outline-none cursor-pointer data-[orientation=horizontal]:min-w-20 data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-8 data-[orientation=vertical]:w-8 data-[orientation=vertical]:h-20">
            <media-slider-track class="relative isolate overflow-hidden rounded-[inherit] select-none data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-1 data-[orientation=vertical]:w-1 data-[orientation=vertical]:h-full bg-black/10 dark:bg-white/20 dark:ring-1 dark:ring-black/5">
              <media-slider-fill class="absolute rounded-[inherit] pointer-events-none bg-current data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0 data-[orientation=horizontal]:w-(--media-slider-fill) data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0 data-[orientation=vertical]:h-(--media-slider-fill)"></media-slider-fill>
              <media-slider-buffer class="absolute rounded-[inherit] pointer-events-none bg-current/20 duration-250 ease-out data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0 data-[orientation=horizontal]:transition-[width] data-[orientation=horizontal]:w-(--media-slider-buffer) data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0 data-[orientation=vertical]:transition-[height] data-[orientation=vertical]:h-(--media-slider-buffer)"></media-slider-buffer>
            </media-slider-track>
            <media-slider-thumb class="z-10 absolute -translate-x-1/2 -translate-y-1/2 bg-current rounded-full shadow-[0_0_0_1px_var(--media-current-shadow-color,oklch(0_0_0/0.1)),0_1px_3px_0_oklch(0_0_0/0.35),0_1px_2px_-1px_oklch(0_0_0/0.35)] transition-[opacity,height,width,outline-offset] duration-150 ease-out select-none outline-4 outline-transparent -outline-offset-4 hover:outline-current/15 hover:outline-offset-0 focus-visible:outline-current/15 focus-visible:outline-offset-0 data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:left-(--media-slider-fill) data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:top-[calc(100%-var(--media-slider-fill))] size-2.5 opacity-0 focus-visible:opacity-100 group-hover/slider:opacity-100 group-active/slider:size-3"></media-slider-thumb>
            <media-slider-preview class="group/preview before:block before:min-w-1 before:h-1 before:bg-current before:rounded-full before:opacity-0 before:scale-50 before:shadow-[0_0_0_1px_var(--media-current-shadow-color,oklch(0_0_0/0.15)),0_1px_2px_0_oklch(0_0_0/0.35)] before:transition-[opacity,scale] before:duration-200 before:ease-out data-pointing:not-data-dragging:before:opacity-100 data-pointing:not-data-dragging:before:scale-100 peer-has-[[role=img]:not([data-hidden])]/thumbnail:*:hidden">
              <media-slider-value type="pointer" class="absolute bottom-9 tabular-nums -translate-x-1/2 translate-y-2 scale-50 opacity-0 blur-lg text-shadow-2xs text-shadow-(color:--media-current-shadow-color) transition-[filter,opacity,scale,translate] duration-200 ease-out group-data-pointing/preview:translate-y-0 group-data-pointing/preview:scale-100 group-data-pointing/preview:opacity-100 group-data-pointing/preview:blur-none"></media-slider-value>
            </media-slider-preview>
          </media-time-slider>
          <media-time type="duration" class="tabular-nums"></media-time>
        </div>

        <div class="flex items-center gap-[0.075rem] @2xl/media-root:gap-0.5">
          <media-playback-rate-button commandfor="playback-rate-menu" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 hover:no-underline focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-9 aspect-square p-0 active:scale-90 tabular-nums after:w-[4ch] after:content-[attr(data-rate)_'×'] data-[inline-rate-label]:after:content-none"></media-playback-rate-button>
          <media-menu id="playback-rate-menu" side="top" align="center" boundary="viewport" class="bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full data-[side=top]:before:h-(--media-popover-side-offset) data-[side=bottom]:before:h-(--media-popover-side-offset) data-[side=left]:before:w-(--media-popover-side-offset) data-[side=right]:before:w-(--media-popover-side-offset) m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full data-[side=top]:before:h-(--media-popover-side-offset) data-[side=bottom]:before:h-(--media-popover-side-offset) data-[side=left]:before:w-(--media-popover-side-offset) data-[side=right]:before:w-(--media-popover-side-offset) [--menu-transition-duration:200ms] [--menu-item-transition-duration:100ms] motion-reduce:[--menu-transition-duration:0ms] motion-reduce:[--menu-item-transition-duration:0ms] max-w-(--media-popover-available-width,none) max-h-(--media-popover-available-height,none) transition-[transform,scale,opacity,filter,width,height] duration-(--menu-transition-duration) ease-in-out box-border rounded-[1.25rem] p-1.5 overscroll-none min-w-24 overflow-auto">
            <media-playback-rate-radio-group class="flex flex-col gap-0.5">
              <template>
                <media-menu-radio-item class="flex cursor-pointer select-none items-center rounded-full py-1.5 px-3 text-shadow-2xs text-shadow-(color:--media-current-shadow-color) outline-2 -outline-offset-2 outline-transparent transition-[background-color,color] duration-(--menu-item-transition-duration) ease-out hover:bg-current/10 data-highlighted:bg-current/10 focus-visible:outline-current focus-visible:outline-offset-2 group/menu-item justify-between gap-2 tabular-nums text-inherit data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50">
                  <span data-part="label"></span>
                  <media-menu-item-indicator force-mount class="-mr-1 shrink-0 opacity-0 group-aria-checked/menu-item:opacity-100 [&_.media-icon]:drop-shadow-[0_1px_0_var(--media-current-shadow-color)]">
                    <media-icon name="check" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out"></media-icon>
                  </media-menu-item-indicator>
                </media-menu-radio-item>
              </template>
            </media-playback-rate-radio-group>
          </media-menu>

          <media-mute-button commandfor="audio-volume-popover" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-full outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale focus-visible:outline-current focus-visible:outline-offset-2 data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 hover:no-underline focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-9 aspect-square p-0 active:scale-90 group">
            <media-icon name="volume-off" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-muted:block group-data-muted:opacity-100"></media-icon>
            <media-icon name="volume-low" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100"></media-icon>
            <media-icon name="volume-high" class="block [grid-area:1/1] size-(--media-icon-size) shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100"></media-icon>
          </media-mute-button>

          <media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="top" boundary="viewport" class="bg-(--media-surface-background-color) [backdrop-filter:var(--media-surface-backdrop-filter)] [box-shadow:0_0_0_1px_var(--media-surface-outer-border-color),0_1px_3px_0_var(--media-surface-shadow-color),0_1px_2px_-1px_var(--media-surface-shadow-color)] after:absolute after:inset-0 after:[box-shadow:inset_0_0_0_1px_var(--media-surface-inner-border-color)] after:rounded-[inherit] after:pointer-events-none after:z-10 m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full data-[side=top]:before:h-(--media-popover-side-offset) data-[side=bottom]:before:h-(--media-popover-side-offset) data-[side=left]:before:w-(--media-popover-side-offset) data-[side=right]:before:w-(--media-popover-side-offset) py-3 px-0 rounded-full">
            <media-volume-slider class="group/slider relative flex flex-1 items-center justify-center rounded-full outline-none cursor-pointer data-[orientation=horizontal]:min-w-20 data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-8 data-[orientation=vertical]:w-8 data-[orientation=vertical]:h-20" orientation="vertical" thumb-alignment="edge">
              <media-slider-track class="relative isolate overflow-hidden rounded-[inherit] select-none data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-1 data-[orientation=vertical]:w-1 data-[orientation=vertical]:h-full bg-black/10 dark:bg-white/20 dark:ring-1 dark:ring-black/5">
                <media-slider-fill class="absolute rounded-[inherit] pointer-events-none bg-current data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0 data-[orientation=horizontal]:w-(--media-slider-fill) data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0 data-[orientation=vertical]:h-(--media-slider-fill)"></media-slider-fill>
              </media-slider-track>
              <media-slider-thumb class="z-10 absolute -translate-x-1/2 -translate-y-1/2 bg-current rounded-full shadow-[0_0_0_1px_var(--media-current-shadow-color,oklch(0_0_0/0.1)),0_1px_3px_0_oklch(0_0_0/0.35),0_1px_2px_-1px_oklch(0_0_0/0.35)] transition-[opacity,height,width,outline-offset] duration-150 ease-out select-none outline-4 outline-transparent -outline-offset-4 hover:outline-current/15 hover:outline-offset-0 focus-visible:outline-current/15 focus-visible:outline-offset-0 data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:left-(--media-slider-fill) data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:top-[calc(100%-var(--media-slider-fill))] size-3"></media-slider-thumb>
            </media-volume-slider>
          </media-popover>
        </div>
      </media-tooltip-group>
    </div>
  </media-container>
</audio-player>

Minimal Video Skin

<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html/cdn/video-minimal-ui.js"></script>
<link rel="stylesheet" href="./player.css">

<video-player>
  <media-container class="media-minimal-skin media-minimal-skin--video">
    <video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline></video>

    <media-poster>
      <img src="https://image.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/thumbnail.webp" />
    </media-poster>

    <media-buffering-indicator class="media-buffering-indicator">
      <media-icon name="spinner" family="minimal" class="media-icon"></media-icon>
    </media-buffering-indicator>

    <media-error-dialog class="media-error">
      <div class="media-error__dialog">
        <div class="media-error__content">
          <media-alert-dialog-title class="media-error__title">Something went wrong.</media-alert-dialog-title>
          <media-alert-dialog-description class="media-error__description"></media-alert-dialog-description>
        </div>
        <div class="media-error__actions">
          <media-alert-dialog-close class="media-button media-button--primary">OK</media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <media-controls class="media-controls">
      <media-tooltip-group>
        <div class="media-button-group">
          <media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play">
            <media-icon name="restart" family="minimal" class="media-icon media-icon--restart"></media-icon>
            <media-icon name="play" family="minimal" class="media-icon media-icon--play"></media-icon>
            <media-icon name="pause" family="minimal" class="media-icon media-icon--pause"></media-icon>
          </media-play-button>
          <media-tooltip id="play-tooltip" side="top" class="media-tooltip"></media-tooltip>

          <media-seek-button commandfor="seek-backward-tooltip" seconds="-10" class="media-button media-button--subtle media-button--icon media-button--seek">
            <span class="media-icon__container">
              <media-icon name="seek" family="minimal" class="media-icon media-icon--flipped"></media-icon>
              <span class="media-icon__label">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-backward-tooltip" side="top" class="media-tooltip"></media-tooltip>

          <media-seek-button commandfor="seek-forward-tooltip" seconds="10" class="media-button media-button--subtle media-button--icon media-button--seek">
            <span class="media-icon__container">
              <media-icon name="seek" family="minimal" class="media-icon"></media-icon>
              <span class="media-icon__label">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-forward-tooltip" side="top" class="media-tooltip"></media-tooltip>
        </div>

        <div class="media-time-controls">
          <media-time-group class="media-time-group">
            <media-time type="current" class="media-time media-time--current"></media-time>
            <media-time-separator class="media-time-separator"></media-time-separator>
            <media-time type="duration" class="media-time media-time--duration"></media-time>
          </media-time-group>

          <media-time-slider class="media-slider">
            <media-slider-track class="media-slider__track">
              <media-slider-fill class="media-slider__fill"></media-slider-fill>
              <media-slider-buffer class="media-slider__buffer"></media-slider-buffer>
            </media-slider-track>
            <media-slider-thumb class="media-slider__thumb"></media-slider-thumb>

            <div class="media-thumbnail media-slider__thumbnail">
              <div class="media-thumbnail__image-wrapper">
                <media-slider-thumbnail class="media-thumbnail__image"></media-slider-thumbnail>
              </div>
              <media-slider-value type="pointer" class="media-time media-thumbnail__time"></media-slider-value>
              <media-icon name="spinner" family="minimal" class="media-thumbnail__spinner media-icon"></media-icon>
            </div>

            <media-slider-preview class="media-slider__preview">
              <media-slider-value type="pointer" class="media-slider__value media-time"></media-slider-value>
            </media-slider-preview>
          </media-time-slider>
        </div>

        <div class="media-button-group">
          <media-mute-button commandfor="video-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute">
            <media-icon name="volume-off" family="minimal" class="media-icon media-icon--volume-off"></media-icon>
            <media-icon name="volume-low" family="minimal" class="media-icon media-icon--volume-low"></media-icon>
            <media-icon name="volume-high" family="minimal" class="media-icon media-icon--volume-high"></media-icon>
          </media-mute-button>

          <media-popover id="video-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="media-popover media-popover--volume">
            <media-volume-slider class="media-slider" orientation="vertical" thumb-alignment="edge">
              <media-slider-track class="media-slider__track">
                <media-slider-fill class="media-slider__fill"></media-slider-fill>
              </media-slider-track>
              <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
            </media-volume-slider>
          </media-popover>

          <button commandfor="settings-menu" aria-label="Settings" class="media-button media-button--subtle media-button--icon media-button--settings">
            <media-icon name="gear" family="minimal" class="media-icon media-icon--settings"></media-icon>
          </button>
          <media-menu id="settings-menu" side="top" align="center" class="media-popover media-menu media-menu--settings">
            <media-menu-view class="media-menu__panel">
              <div class="media-menu__group">
                <media-menu-item commandfor="settings-speed-menu" type="playback-rate" data-setting="playback-rate" class="media-menu__item media-menu__item--submenu">
                  <span>Speed</span>
                  <span class="media-menu__hint">
                    <media-menu-item-value class="media-menu__hint-label"></media-menu-item-value>
                    <media-icon name="chevron" family="minimal" class="media-icon media-menu__chevron"></media-icon>
                  </span>
                </media-menu-item>
                <media-menu-item commandfor="settings-captions-menu" type="captions" data-setting="captions" class="media-menu__item media-menu__item--submenu">
                  <span>Captions</span>
                  <span class="media-menu__hint">
                    <media-menu-item-value class="media-menu__hint-label"></media-menu-item-value>
                    <media-icon name="chevron" family="minimal" class="media-icon media-menu__chevron"></media-icon>
                  </span>
                </media-menu-item>
              </div>
            </media-menu-view>

            <media-menu id="settings-speed-menu" class="media-menu__panel">
              <media-menu-back class="media-menu__back">
                <media-icon name="chevron" family="minimal" class="media-icon media-menu__chevron media-icon--flipped"></media-icon>
                Speed
              </media-menu-back>
              <media-playback-rate-radio-group class="media-menu__group">
                <template>
                  <media-menu-radio-item class="media-menu__item">
                    <span data-part="label"></span>
                    <media-menu-item-indicator force-mount class="media-menu__indicator">
                      <media-icon name="check" family="minimal" class="media-icon"></media-icon>
                    </media-menu-item-indicator>
                  </media-menu-radio-item>
                </template>
              </media-playback-rate-radio-group>
            </media-menu>

            <media-menu id="settings-captions-menu" class="media-menu__panel">
              <media-menu-back class="media-menu__back">
                <media-icon name="chevron" family="minimal" class="media-icon media-menu__chevron media-icon--flipped"></media-icon>
                Captions
              </media-menu-back>
              <media-captions-radio-group class="media-menu__group">
                <template>
                  <media-menu-radio-item class="media-menu__item">
                    <span data-part="label"></span>
                    <media-menu-item-indicator force-mount class="media-menu__indicator">
                      <media-icon name="check" family="minimal" class="media-icon"></media-icon>
                    </media-menu-item-indicator>
                  </media-menu-radio-item>
                </template>
              </media-captions-radio-group>
            </media-menu>
          </media-menu>

          <media-cast-button commandfor="cast-tooltip" class="media-button media-button--subtle media-button--icon media-button--cast">
            <media-icon name="cast-enter" family="minimal" class="media-icon media-icon--cast-enter"></media-icon>
            <media-icon name="cast-exit" family="minimal" class="media-icon media-icon--cast-exit"></media-icon>
          </media-cast-button>
          <media-tooltip id="cast-tooltip" side="top" class="media-tooltip"></media-tooltip>

          <media-airplay-button commandfor="airplay-tooltip" class="media-button media-button--subtle media-button--icon media-button--airplay">
            <media-icon name="airplay-enter" family="minimal" class="media-icon media-icon--airplay-enter"></media-icon>
            <media-icon name="airplay-exit" family="minimal" class="media-icon media-icon--airplay-exit"></media-icon>
          </media-airplay-button>
          <media-tooltip id="airplay-tooltip" side="top" class="media-tooltip"></media-tooltip>

          <media-pip-button commandfor="pip-tooltip" class="media-button media-button--subtle media-button--icon media-button--pip">
            <media-icon name="pip-enter" family="minimal" class="media-icon media-icon--pip-enter"></media-icon>
            <media-icon name="pip-exit" family="minimal" class="media-icon media-icon--pip-exit"></media-icon>
          </media-pip-button>
          <media-tooltip id="pip-tooltip" side="top" class="media-tooltip"></media-tooltip>

          <media-fullscreen-button commandfor="fullscreen-tooltip" class="media-button media-button--subtle media-button--icon media-button--fullscreen">
            <media-icon name="fullscreen-enter" family="minimal" class="media-icon media-icon--fullscreen-enter"></media-icon>
            <media-icon name="fullscreen-exit" family="minimal" class="media-icon media-icon--fullscreen-exit"></media-icon>
          </media-fullscreen-button>
          <media-tooltip id="fullscreen-tooltip" side="top" class="media-tooltip"></media-tooltip>
        </div>
      </media-tooltip-group>
    </media-controls>

    <div class="media-overlay"></div>

    <!-- Hotkeys -->
    <media-hotkey keys="Space" action="togglePaused"></media-hotkey>
    <media-hotkey keys="k" action="togglePaused"></media-hotkey>
    <media-hotkey keys="m" action="toggleMuted"></media-hotkey>
    <media-hotkey keys="f" action="toggleFullscreen"></media-hotkey>
    <media-hotkey keys="c" action="toggleSubtitles"></media-hotkey>
    <media-hotkey keys="i" action="togglePictureInPicture"></media-hotkey>
    <media-hotkey keys="ArrowRight" action="seekStep" value="5"></media-hotkey>
    <media-hotkey keys="ArrowLeft" action="seekStep" value="-5"></media-hotkey>
    <media-hotkey keys="l" action="seekStep" value="10"></media-hotkey>
    <media-hotkey keys="j" action="seekStep" value="-10"></media-hotkey>
    <media-hotkey keys="ArrowUp" action="volumeStep" value="0.05"></media-hotkey>
    <media-hotkey keys="ArrowDown" action="volumeStep" value="-0.05"></media-hotkey>
    <media-hotkey keys="0-9" action="seekToPercent"></media-hotkey>
    <media-hotkey keys="Home" action="seekToPercent" value="0"></media-hotkey>
    <media-hotkey keys="End" action="seekToPercent" value="100"></media-hotkey>
    <media-hotkey keys=">" action="speedUp"></media-hotkey>
    <media-hotkey keys="<" action="speedDown"></media-hotkey>

    <!-- Gestures -->
    <media-gesture type="tap" action="togglePaused" pointer="mouse" region="center"></media-gesture>
    <media-gesture type="tap" action="toggleControls" pointer="touch"></media-gesture>
    <media-gesture type="doubletap" action="seekStep" value="-10" region="left"></media-gesture>
    <media-gesture type="doubletap" action="toggleFullscreen" region="center"></media-gesture>
    <media-gesture type="doubletap" action="seekStep" value="10" region="right"></media-gesture>

    <!-- Input Feedback -->
    <media-status-announcer></media-status-announcer>
    <div class="media-input-feedback">
      <media-volume-indicator hidden class="media-input-feedback-island media-input-feedback-island--volume">
        <media-volume-indicator-fill class="media-input-feedback-island__content">
          <media-icon name="volume-high" family="minimal" class="media-icon media-icon--volume-high"></media-icon>
          <media-icon name="volume-low" family="minimal" class="media-icon media-icon--volume-low"></media-icon>
          <media-icon name="volume-off" family="minimal" class="media-icon media-icon--volume-off"></media-icon>
          <div class="media-input-feedback-island__progress" aria-hidden="true"></div>
          <media-volume-indicator-value class="media-input-feedback-island__value"></media-volume-indicator-value>
        </media-volume-indicator-fill>
      </media-volume-indicator>

      <media-status-indicator hidden actions="toggleSubtitles toggleFullscreen togglePictureInPicture" class="media-input-feedback-island media-input-feedback-island--status">
        <div class="media-input-feedback-island__content">
          <media-icon name="captions-on" family="minimal" class="media-icon media-icon--captions-on"></media-icon>
          <media-icon name="captions-off" family="minimal" class="media-icon media-icon--captions-off"></media-icon>
          <media-icon name="fullscreen-enter" family="minimal" class="media-icon media-icon--fullscreen-enter"></media-icon>
          <media-icon name="fullscreen-exit" family="minimal" class="media-icon media-icon--fullscreen-exit"></media-icon>
          <media-icon name="pip-enter" family="minimal" class="media-icon media-icon--pip-enter"></media-icon>
          <media-icon name="pip-exit" family="minimal" class="media-icon media-icon--pip-exit"></media-icon>
          <media-status-indicator-value class="media-input-feedback-island__value"></media-status-indicator-value>
        </div>
      </media-status-indicator>

      <media-seek-indicator hidden class="media-input-feedback-bubble">
        <media-icon name="chevron" family="minimal" class="media-icon media-icon--seek"></media-icon>
        <media-seek-indicator-value class="media-time"></media-seek-indicator-value>
      </media-seek-indicator>

      <media-status-indicator hidden actions="togglePaused" class="media-input-feedback-bubble">
        <media-icon name="play" family="minimal" class="media-icon media-icon--play"></media-icon>
        <media-icon name="pause" family="minimal" class="media-icon media-icon--pause"></media-icon>
      </media-status-indicator>
    </div>
  </media-container>
</video-player>
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html/cdn/video-minimal-ui.js"></script>
<link rel="stylesheet" href="./player.css">

<video-player>
  <media-container class="**:box-border [&_[hidden][hidden]]:hidden [&_button]:font-[inherit] motion-safe:[interpolate-size:allow-keywords] block relative isolate h-full w-full @container/media-root rounded-(--media-border-radius,0.75rem) font-[Inter_Variable,Inter,ui-sans-serif,system-ui,sans-serif] text-[0.8125rem] leading-normal subpixel-antialiased outline-2 outline-transparent -outline-offset-4 transition-[outline-offset,outline-color] duration-100 ease-out focus-visible:outline-current focus-visible:outline-offset-2 [--media-current-shadow-color:oklch(from_currentColor_0_0_0/clamp(0,calc((l-0.5)*0.5),0.15))] [--media-current-shadow-color-subtle:oklch(from_var(--media-current-shadow-color)_l_c_h/calc(alpha*0.4))] [--media-icon-size:18px] bg-black overflow-clip after:absolute after:pointer-events-none after:rounded-[inherit] after:z-10 after:inset-0 after:ring-1 after:ring-inset after:ring-black/15 dark:after:ring-white/15 [&_::slotted(video)]:block [&_::slotted(video)]:w-full [&_::slotted(video)]:h-full [&_::slotted(video)]:rounded-(--media-video-border-radius) [&_::slotted(video)]:[object-fit:var(--media-object-fit,cover)] [&_::slotted(video)]:[object-position:var(--media-object-position,center)] [--media-video-border-radius:var(--media-border-radius,0.75rem)] [--media-controls-background-color:transparent] [--media-controls-transition-duration:100ms] [--media-controls-transition-timing-function:ease-out] [--media-error-dialog-transition-duration:150ms] [--media-error-dialog-transition-delay:100ms] [--media-error-dialog-transition-timing-function:ease-out] [--media-popup-transition-duration:100ms] [--media-popup-transition-timing-function:ease-out] [--media-tooltip-background-color:oklch(1_0_0/0.1)] [--media-tooltip-border-color:transparent] [--media-tooltip-backdrop-filter:blur(16px)_saturate(1.5)] [--media-tooltip-text-color:currentColor] [--media-tooltip-side-offset:0.5rem] [--media-tooltip-boundary-offset:0.5rem] [--media-popover-background-color:oklch(1_0_0/0.1)] [--media-popover-border-color:transparent] [--media-popover-backdrop-filter:blur(16px)_saturate(1.5)] [--media-popover-side-offset:1.5rem] [--media-popover-boundary-offset:0.5rem] motion-reduce:[--media-error-dialog-transition-duration:50ms] motion-reduce:[--media-error-dialog-transition-delay:0ms] motion-reduce:[--media-popup-transition-duration:0ms] [@media(prefers-reduced-transparency:reduce)]:[--media-controls-background-color:oklch(0_0_0)] contrast-more:[--media-controls-background-color:oklch(0_0_0)] [@media(prefers-reduced-transparency:reduce)]:[--media-tooltip-background-color:oklch(0_0_0)] contrast-more:[--media-tooltip-background-color:oklch(0_0_0)] @2xl/media-root:*:[--media-popover-side-offset:0.5rem] pointer-fine:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:300ms] pointer-coarse:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:150ms] motion-reduce:has-[[data-controls]:not([data-visible])]:[--media-controls-transition-duration:50ms] [--media-caption-track-y:-0.5rem] [--media-caption-track-delay:25ms] [--media-caption-track-duration:var(--media-controls-transition-duration)] has-[[data-controls][data-visible]]:[--media-caption-track-y:-5rem] @2xl/media-root:has-[[data-controls][data-visible]]:*:[--media-caption-track-y:-3rem] [&:fullscreen]:[--media-border-radius:0] [&:fullscreen_::slotted(video)]:object-contain">
    <video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline></video>

    <media-poster class="absolute inset-0 w-full h-full pointer-events-none transition-opacity duration-250 not-data-visible:opacity-0 [&_::slotted(img)]:absolute [&_::slotted(img)]:inset-0 [&_::slotted(img)]:w-full [&_::slotted(img)]:h-full [&_::slotted(img)]:[object-fit:var(--media-object-fit,contain)] [&_::slotted(img)]:[object-position:var(--media-object-position,center)] [&_::slotted(img)]:rounded-(--media-video-border-radius)">
      <img src="https://image.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/thumbnail.webp" />
    </media-poster>

    <media-buffering-indicator class="absolute inset-0 hidden items-center justify-center pointer-events-none text-white not-data-visible:[--media-spinner-animation:none] data-visible:flex">
      <media-icon name="spinner" family="minimal"></media-icon>
    </media-buffering-indicator>

    <media-error-dialog class="peer/error group/error hidden data-[open]:flex absolute inset-0 z-20 items-center justify-center outline-none pointer-events-none outline-none">
      <div class="flex flex-col gap-3 max-w-64 p-4 text-white text-shadow-2xs text-shadow-black/50 transition-[opacity,scale,transform] duration-(--media-error-dialog-transition-duration) delay-(--media-error-dialog-transition-delay) ease-(--media-error-dialog-transition-timing-function) group-data-starting-style/error:opacity-0 group-data-starting-style/error:scale-50 group-data-ending-style/error:opacity-0 group-data-ending-style/error:scale-50 group-data-ending-style/error:delay-0 pointer-events-auto">
        <div class="flex flex-col gap-2 py-1.5">
          <media-alert-dialog-title class="font-semibold leading-tight text-lg">Something went wrong.</media-alert-dialog-title>
          <media-alert-dialog-description class="opacity-70 wrap-anywhere"></media-alert-dialog-description>
        </div>
        <div class="flex gap-2 *:flex-1">
          <media-alert-dialog-close class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-white text-black font-medium text-shadow-none">OK</media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <media-controls data-controls="" class="peer/controls @container/media-controls flex items-center bg-(--media-controls-background-color) [backdrop-filter:var(--media-controls-backdrop-filter)] text-shadow-2xs text-shadow-(color:--media-current-shadow-color) absolute bottom-1 inset-x-1 p-1 gap-x-2 flex-wrap rounded-xl text-white z-10 peer-data-open/error:hidden ease-(--media-controls-transition-timing-function) duration-(--media-controls-transition-duration) pointer-fine:will-change-[translate,filter,opacity] pointer-fine:transition-[translate,filter,opacity] pointer-coarse:will-change-[translate,opacity] pointer-coarse:transition-[translate,opacity] not-data-visible:opacity-0 not-data-visible:pointer-events-none motion-safe:not-data-visible:translate-y-full pointer-fine:motion-safe:not-data-visible:blur-sm @2xl/media-root:flex-nowrap @2xl/media-root:bottom-2 @2xl/media-root:inset-x-2 @2xl/media-root:*:[--media-popover-side-offset:0rem]">
      <media-tooltip-group>
        <div class="flex items-center gap-[0.075rem] @2xl/media-root:gap-0.5 flex-1 @2xl/media-root:flex-none">
            <media-play-button commandfor="play-tooltip" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-[2.375rem] aspect-square p-0 active:scale-90 group">
              <media-icon name="restart" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-ended:block group-data-ended:opacity-100"></media-icon>
              <media-icon name="play" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100 group-not-data-ended:group-not-data-started:block group-not-data-ended:group-not-data-started:opacity-100"></media-icon>
              <media-icon name="pause" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-started:group-not-data-paused:group-not-data-ended:block group-data-started:group-not-data-paused:group-not-data-ended:opacity-100"></media-icon>
            </media-play-button>
            <media-tooltip id="play-tooltip" side="top" class="m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full px-2 py-1 rounded-lg text-[0.75rem] whitespace-nowrap bg-(--media-tooltip-background-color) [backdrop-filter:var(--media-tooltip-backdrop-filter)] ring-1 ring-(color:--media-tooltip-border-color) shadow-md shadow-black/10 text-(--media-tooltip-text-color) data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>

          <media-seek-button commandfor="seek-backward-tooltip" seconds="-10" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-[2.375rem] aspect-square p-0 active:scale-90">
            <span class="relative grid">
              <media-icon name="seek" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out [scale:-1_1]"></media-icon>
              <span class="text-[10px] font-medium tracking-tighter tabular-nums absolute -left-px -bottom-0.75">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-backward-tooltip" side="top" class="m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full px-2 py-1 rounded-lg text-[0.75rem] whitespace-nowrap bg-(--media-tooltip-background-color) [backdrop-filter:var(--media-tooltip-backdrop-filter)] ring-1 ring-(color:--media-tooltip-border-color) shadow-md shadow-black/10 text-(--media-tooltip-text-color) data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>

          <media-seek-button commandfor="seek-forward-tooltip" seconds="10" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-[2.375rem] aspect-square p-0 active:scale-90">
            <span class="relative grid">
              <media-icon name="seek" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out"></media-icon>
              <span class="text-[10px] font-medium tracking-tighter tabular-nums absolute -right-px -bottom-0.75">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-forward-tooltip" side="top" class="m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full px-2 py-1 rounded-lg text-[0.75rem] whitespace-nowrap bg-(--media-tooltip-background-color) [backdrop-filter:var(--media-tooltip-backdrop-filter)] ring-1 ring-(color:--media-tooltip-border-color) shadow-md shadow-black/10 text-(--media-tooltip-text-color) data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>
        </div>

        <div class="@container flex flex-row-reverse items-center flex-1 gap-3 @2xl/media-root:flex-row grow-0 shrink-0 basis-full order-[-1] px-2.5 @2xl/media-root:grow @2xl/media-root:shrink @2xl/media-root:basis-0 @2xl/media-root:order-[unset]">
          <media-time-group class="flex items-center gap-1">
            <media-time type="current" class="hidden tabular-nums @2xl/media-root:inline"></media-time>
            <media-time-separator class="hidden @2xl/media-root:inline @2xl/media-root:text-current/60"></media-time-separator>
            <media-time type="duration" class="tabular-nums @2xl/media-root:text-current/60"></media-time>
          </media-time-group>

          <media-time-slider class="group/slider relative flex flex-1 items-center justify-center rounded-full outline-none cursor-pointer data-[orientation=horizontal]:min-w-20 data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-8 data-[orientation=vertical]:w-8 data-[orientation=vertical]:h-[4.5rem]">
            <media-slider-track class="relative isolate overflow-hidden bg-current/20 rounded-[inherit] select-none data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-0.75 data-[orientation=vertical]:w-0.75 data-[orientation=vertical]:h-full ring-1 ring-black/5">
              <media-slider-fill class="absolute rounded-[inherit] pointer-events-none bg-current data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0 data-[orientation=horizontal]:w-(--media-slider-fill,0) data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0 data-[orientation=vertical]:h-(--media-slider-fill,0)"></media-slider-fill>
              <media-slider-buffer class="absolute rounded-[inherit] pointer-events-none bg-current/20 duration-250 ease-out data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0 data-[orientation=horizontal]:transition-[width] data-[orientation=horizontal]:w-(--media-slider-buffer,0) data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0 data-[orientation=vertical]:transition-[height] data-[orientation=vertical]:h-(--media-slider-buffer)"></media-slider-buffer>
            </media-slider-track>
            <media-slider-thumb class="z-10 absolute size-3 -translate-x-1/2 -translate-y-1/2 bg-current rounded-full shadow-[0_0_0_1px_var(--media-current-shadow-color,oklch(0_0_0/0.15)),0_1px_3px_0_oklch(0_0_0/0.15),0_1px_2px_-1px_oklch(0_0_0/0.15)] transition-[opacity,scale,outline-offset] duration-150 ease-out select-none outline-2 outline-transparent -outline-offset-2 focus-visible:outline-current focus-visible:outline-offset-2 data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:left-(--media-slider-fill,0) data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:top-[calc(100%-var(--media-slider-fill,0))] opacity-0 scale-70 origin-center group-hover/slider:opacity-100 group-hover/slider:scale-100 group-focus-within/slider:opacity-100 group-focus-within/slider:scale-100"></media-slider-thumb>

            <div class="group/thumbnail peer/thumbnail pointer-events-none [--media-slider-thumbnail-max-width:11rem] [--media-slider-thumbnail-padding:-0.5rem] [--media-slider-thumbnail-inset:calc(100cqi-100%)] absolute [left:clamp(calc(var(--media-slider-thumbnail-max-width)/2+var(--media-slider-thumbnail-padding)),var(--media-slider-pointer),calc(100%-var(--media-slider-thumbnail-max-width)/2-var(--media-slider-thumbnail-padding)+var(--media-slider-thumbnail-inset)))] bottom-full -translate-x-1/2 @2xl/media-root:[left:var(--media-slider-pointer)] opacity-0 scale-80 blur-sm origin-bottom transition-[scale,opacity,filter] duration-150 has-[[role=img]:not([data-hidden])]:group-data-pointing/slider:opacity-100 has-[[role=img]:not([data-hidden])]:group-data-pointing/slider:scale-100 has-[[role=img]:not([data-hidden])]:group-data-pointing/slider:blur-none has-[[role=img][data-loading]]:max-h-24">
              <div class="relative rounded-lg bg-black/90 after:absolute after:inset-0 after:rounded-[inherit] after:ring-1 after:ring-black/5 after:shadow-sm after:shadow-black/20">
                <media-slider-thumbnail class="block rounded-[inherit] transition-opacity duration-150 ease-out data-loading:opacity-0 max-w-(--media-slider-thumbnail-max-width)"></media-slider-thumbnail>
              </div>
              <media-slider-value type="pointer" class="hidden tabular-nums @2xl/media-root:inline mt-2 block text-center tabular-nums"></media-slider-value>
              <media-icon name="spinner" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 opacity-0 transition-opacity duration-150 ease-out group-not-has-[[role=img][data-loading]]/thumbnail:[--media-spinner-animation:none] group-has-[[role=img][data-loading]]/thumbnail:opacity-100"></media-icon>
            </div>
            <media-slider-preview class="group/preview before:block before:bg-current/35 before:opacity-0 before:scale-50 before:transition-[opacity,scale] before:duration-200 before:ease-out data-pointing:not-data-dragging:before:opacity-100 data-pointing:not-data-dragging:before:scale-100 data-[orientation=horizontal]:before:min-w-px data-[orientation=horizontal]:before:h-5 data-[orientation=vertical]:before:w-5 data-[orientation=vertical]:before:min-h-px peer-has-[[role=img]:not([data-hidden])]/thumbnail:*:hidden">
              <media-slider-value type="pointer" class="absolute bottom-6 tabular-nums -translate-x-1/2 translate-y-2 scale-50 opacity-0 blur-lg text-shadow-2xs text-shadow-(color:--media-current-shadow-color) transition-[filter,opacity,scale,translate] duration-200 ease-out group-data-pointing/preview:translate-y-0 group-data-pointing/preview:scale-100 group-data-pointing/preview:opacity-100 group-data-pointing/preview:blur-none hidden tabular-nums @2xl/media-root:inline"></media-slider-value>
            </media-slider-preview>
          </media-time-slider>
        </div>

        <div class="flex items-center gap-[0.075rem] @2xl/media-root:gap-0.5 flex-1 justify-end @2xl/media-root:flex-none group/settings">
          <media-mute-button commandfor="video-volume-popover" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-[2.375rem] aspect-square p-0 active:scale-90 group">
            <media-icon name="volume-off" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-muted:block group-data-muted:opacity-100"></media-icon>
            <media-icon name="volume-low" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100"></media-icon>
            <media-icon name="volume-high" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100"></media-icon>
          </media-mute-button>

          <media-popover id="video-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full data-[side=top]:before:h-(--media-popover-side-offset) data-[side=bottom]:before:h-(--media-popover-side-offset) data-[side=left]:before:w-(--media-popover-side-offset) data-[side=right]:before:w-(--media-popover-side-offset) py-3 px-0 bg-transparent rounded-xl [@media(prefers-reduced-transparency:reduce)]:bg-(--media-controls-background-color) contrast-more:bg-(--media-controls-background-color)">
            <media-volume-slider class="group/slider relative flex flex-1 items-center justify-center rounded-full outline-none cursor-pointer data-[orientation=horizontal]:min-w-20 data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-8 data-[orientation=vertical]:w-8 data-[orientation=vertical]:h-[4.5rem]" orientation="vertical" thumb-alignment="edge">
              <media-slider-track class="relative isolate overflow-hidden bg-current/20 rounded-[inherit] select-none data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-0.75 data-[orientation=vertical]:w-0.75 data-[orientation=vertical]:h-full ring-1 ring-black/5">
                <media-slider-fill class="absolute rounded-[inherit] pointer-events-none bg-current data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0 data-[orientation=horizontal]:w-(--media-slider-fill,0) data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0 data-[orientation=vertical]:h-(--media-slider-fill,0)"></media-slider-fill>
              </media-slider-track>
              <media-slider-thumb class="z-10 absolute size-3 -translate-x-1/2 -translate-y-1/2 bg-current rounded-full shadow-[0_0_0_1px_var(--media-current-shadow-color,oklch(0_0_0/0.15)),0_1px_3px_0_oklch(0_0_0/0.15),0_1px_2px_-1px_oklch(0_0_0/0.15)] transition-[opacity,scale,outline-offset] duration-150 ease-out select-none outline-2 outline-transparent -outline-offset-2 focus-visible:outline-current focus-visible:outline-offset-2 data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:left-(--media-slider-fill,0) data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:top-[calc(100%-var(--media-slider-fill,0))]"></media-slider-thumb>
            </media-volume-slider>
          </media-popover>

          <button commandfor="settings-menu" aria-label="Settings" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-[2.375rem] aspect-square p-0 active:scale-90 group hidden group-has-[[data-availability=available]]/settings:grid media-button--settings">
            <media-icon name="gear" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out transition-transform duration-150 ease-in-out group-aria-expanded:rotate-90 motion-reduce:duration-0"></media-icon>
          </button>
          <media-menu id="settings-menu" side="top" align="center" class="m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full data-[side=top]:before:h-(--media-popover-side-offset) data-[side=bottom]:before:h-(--media-popover-side-offset) data-[side=left]:before:w-(--media-popover-side-offset) data-[side=right]:before:w-(--media-popover-side-offset) [--menu-item-height:1.875rem] [--menu-transition-duration:200ms] [--menu-item-transition-duration:100ms] motion-reduce:[--menu-transition-duration:0ms] motion-reduce:[--menu-item-transition-duration:0ms] max-w-(--media-popover-available-width,none) max-h-(--media-popover-available-height,none) bg-(--media-popover-background-color) [backdrop-filter:var(--media-popover-backdrop-filter)] shadow-[0_0_0_1px_var(--media-popover-border-color),0_4px_6px_-1px_oklch(0_0_0/0.1),0_2px_4px_-2px_oklch(0_0_0/0.1)] transition-[transform,scale,opacity,filter,width,height] duration-(--menu-transition-duration) ease-in-out box-border rounded-xl p-1 overscroll-none [--menu-transition-duration:250ms] relative min-w-44 w-(--media-menu-width) h-(--media-menu-height) overflow-hidden">
            <media-menu-view class="absolute inset-0 overflow-auto overscroll-none p-1 outline-none translate-none data-starting-style:overflow-hidden data-ending-style:overflow-hidden transition-[translate,filter] duration-(--menu-transition-duration) ease-in-out will-change-[translate] data-[menu-view-state=inactive]:-translate-x-full data-[menu-view-state=inactive]:blur">
              <div class="flex flex-col gap-0.5">
                <media-menu-item commandfor="settings-speed-menu" type="playback-rate" data-setting="playback-rate" class="flex h-(--menu-item-height) cursor-pointer select-none items-center rounded-lg text-shadow-2xs text-shadow-(color:--media-current-shadow-color) outline-2 -outline-offset-2 outline-transparent transition-[background-color,color] duration-(--menu-item-transition-duration) ease-out hover:bg-current/10 data-highlighted:bg-current/10 focus-visible:outline-current focus-visible:outline-offset-2 group/menu-item justify-between gap-2 px-2.5 tabular-nums text-inherit data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50 media-menu__item--submenu">
                  <span>Speed</span>
                  <span class="ml-auto flex min-w-0 items-center gap-1 text-xs text-current/65">
                    <media-menu-item-value class="max-w-24 overflow-hidden text-ellipsis whitespace-nowrap"></media-menu-item-value>
                    <media-icon name="chevron" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out size-3.5 first:-ml-1 last:-mr-1"></media-icon>
                  </span>
                </media-menu-item>
                <media-menu-item commandfor="settings-captions-menu" type="captions" data-setting="captions" class="flex h-(--menu-item-height) cursor-pointer select-none items-center rounded-lg text-shadow-2xs text-shadow-(color:--media-current-shadow-color) outline-2 -outline-offset-2 outline-transparent transition-[background-color,color] duration-(--menu-item-transition-duration) ease-out hover:bg-current/10 data-highlighted:bg-current/10 focus-visible:outline-current focus-visible:outline-offset-2 group/menu-item justify-between gap-2 px-2.5 tabular-nums text-inherit data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50 media-menu__item--submenu">
                  <span>Captions</span>
                  <span class="ml-auto flex min-w-0 items-center gap-1 text-xs text-current/65">
                    <media-menu-item-value class="max-w-24 overflow-hidden text-ellipsis whitespace-nowrap"></media-menu-item-value>
                    <media-icon name="chevron" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out size-3.5 first:-ml-1 last:-mr-1"></media-icon>
                  </span>
                </media-menu-item>
              </div>
            </media-menu-view>

            <media-menu id="settings-speed-menu" class="absolute inset-0 overflow-auto overscroll-none p-1 outline-none translate-none data-starting-style:overflow-hidden data-ending-style:overflow-hidden transition-[translate,filter] duration-(--menu-transition-duration) ease-in-out will-change-[translate] z-10 not-data-open:not-data-ending-style:-translate-x-full not-data-open:not-data-ending-style:transition-none data-starting-style:pointer-events-none data-ending-style:pointer-events-none data-starting-style:blur data-ending-style:blur data-starting-style:data-[direction=forward]:translate-x-full data-ending-style:data-[direction=forward]:-translate-x-full data-starting-style:data-[direction=back]:-translate-x-full data-ending-style:data-[direction=back]:translate-x-full">
              <media-menu-back class="flex h-(--menu-item-height) cursor-pointer select-none items-center rounded-lg text-shadow-2xs text-shadow-(color:--media-current-shadow-color) outline-2 -outline-offset-2 outline-transparent transition-[background-color,color] duration-(--menu-item-transition-duration) ease-out hover:bg-current/10 data-highlighted:bg-current/10 focus-visible:outline-current focus-visible:outline-offset-2 mb-0.5 w-full gap-1.5 px-2.5 font-medium text-current/70 hover:text-inherit data-highlighted:text-inherit focus-visible:text-inherit">
                <media-icon name="chevron" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out size-3.5 first:-ml-1 last:-mr-1 [scale:-1_1]"></media-icon>
                Speed
              </media-menu-back>
              <media-playback-rate-radio-group class="flex flex-col gap-0.5">
                <template>
                  <media-menu-radio-item class="flex h-(--menu-item-height) cursor-pointer select-none items-center rounded-lg text-shadow-2xs text-shadow-(color:--media-current-shadow-color) outline-2 -outline-offset-2 outline-transparent transition-[background-color,color] duration-(--menu-item-transition-duration) ease-out hover:bg-current/10 data-highlighted:bg-current/10 focus-visible:outline-current focus-visible:outline-offset-2 group/menu-item justify-between gap-2 px-2.5 tabular-nums text-inherit data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50">
                    <span data-part="label"></span>
                    <media-menu-item-indicator force-mount class="-mr-1 shrink-0 opacity-0 group-aria-checked/menu-item:opacity-100">
                      <media-icon name="check" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out"></media-icon>
                    </media-menu-item-indicator>
                  </media-menu-radio-item>
                </template>
              </media-playback-rate-radio-group>
            </media-menu>

            <media-menu id="settings-captions-menu" class="absolute inset-0 overflow-auto overscroll-none p-1 outline-none translate-none data-starting-style:overflow-hidden data-ending-style:overflow-hidden transition-[translate,filter] duration-(--menu-transition-duration) ease-in-out will-change-[translate] z-10 not-data-open:not-data-ending-style:-translate-x-full not-data-open:not-data-ending-style:transition-none data-starting-style:pointer-events-none data-ending-style:pointer-events-none data-starting-style:blur data-ending-style:blur data-starting-style:data-[direction=forward]:translate-x-full data-ending-style:data-[direction=forward]:-translate-x-full data-starting-style:data-[direction=back]:-translate-x-full data-ending-style:data-[direction=back]:translate-x-full">
              <media-menu-back class="flex h-(--menu-item-height) cursor-pointer select-none items-center rounded-lg text-shadow-2xs text-shadow-(color:--media-current-shadow-color) outline-2 -outline-offset-2 outline-transparent transition-[background-color,color] duration-(--menu-item-transition-duration) ease-out hover:bg-current/10 data-highlighted:bg-current/10 focus-visible:outline-current focus-visible:outline-offset-2 mb-0.5 w-full gap-1.5 px-2.5 font-medium text-current/70 hover:text-inherit data-highlighted:text-inherit focus-visible:text-inherit">
                <media-icon name="chevron" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out size-3.5 first:-ml-1 last:-mr-1 [scale:-1_1]"></media-icon>
                Captions
              </media-menu-back>
              <media-captions-radio-group class="flex flex-col gap-0.5">
                <template>
                  <media-menu-radio-item class="flex h-(--menu-item-height) cursor-pointer select-none items-center rounded-lg text-shadow-2xs text-shadow-(color:--media-current-shadow-color) outline-2 -outline-offset-2 outline-transparent transition-[background-color,color] duration-(--menu-item-transition-duration) ease-out hover:bg-current/10 data-highlighted:bg-current/10 focus-visible:outline-current focus-visible:outline-offset-2 group/menu-item justify-between gap-2 px-2.5 tabular-nums text-inherit data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50">
                    <span data-part="label"></span>
                    <media-menu-item-indicator force-mount class="-mr-1 shrink-0 opacity-0 group-aria-checked/menu-item:opacity-100">
                      <media-icon name="check" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out"></media-icon>
                    </media-menu-item-indicator>
                  </media-menu-radio-item>
                </template>
              </media-captions-radio-group>
            </media-menu>
          </media-menu>

            <media-cast-button commandfor="cast-tooltip" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-[2.375rem] aspect-square p-0 active:scale-90 group">
              <media-icon name="cast-enter" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-[cast-state=connected]:block group-not-data-[cast-state=connected]:opacity-100"></media-icon>
              <media-icon name="cast-exit" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-[cast-state=connected]:block group-data-[cast-state=connected]:opacity-100"></media-icon>
            </media-cast-button>
            <media-tooltip id="cast-tooltip" side="top" class="m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full px-2 py-1 rounded-lg text-[0.75rem] whitespace-nowrap bg-(--media-tooltip-background-color) [backdrop-filter:var(--media-tooltip-backdrop-filter)] ring-1 ring-(color:--media-tooltip-border-color) shadow-md shadow-black/10 text-(--media-tooltip-text-color) data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>
            <media-airplay-button commandfor="airplay-tooltip" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-[2.375rem] aspect-square p-0 active:scale-90 group not-data-[airplay-state=connected]:[--media-icon--airplay__fill-animation:none] not-data-[airplay-state=connected]:[--media-icon--airplay__triangle-animation:none]">
              <media-icon name="airplay-enter" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-[airplay-state=connected]:block group-not-data-[airplay-state=connected]:opacity-100"></media-icon>
              <media-icon name="airplay-exit" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-[airplay-state=connected]:block group-data-[airplay-state=connected]:opacity-100"></media-icon>
            </media-airplay-button>
            <media-tooltip id="airplay-tooltip" side="top" class="m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full px-2 py-1 rounded-lg text-[0.75rem] whitespace-nowrap bg-(--media-tooltip-background-color) [backdrop-filter:var(--media-tooltip-backdrop-filter)] ring-1 ring-(color:--media-tooltip-border-color) shadow-md shadow-black/10 text-(--media-tooltip-text-color) data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>
            <media-pip-button commandfor="pip-tooltip" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-[2.375rem] aspect-square p-0 active:scale-90 group">
              <media-icon name="pip-enter" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-pip:block group-not-data-pip:opacity-100"></media-icon>
              <media-icon name="pip-exit" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-pip:block group-data-pip:opacity-100"></media-icon>
            </media-pip-button>
            <media-tooltip id="pip-tooltip" side="top" class="m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full px-2 py-1 rounded-lg text-[0.75rem] whitespace-nowrap bg-(--media-tooltip-background-color) [backdrop-filter:var(--media-tooltip-backdrop-filter)] ring-1 ring-(color:--media-tooltip-border-color) shadow-md shadow-black/10 text-(--media-tooltip-text-color) data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>
            <media-fullscreen-button commandfor="fullscreen-tooltip" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-[2.375rem] aspect-square p-0 active:scale-90 group">
              <media-icon name="fullscreen-enter" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-fullscreen:block group-not-data-fullscreen:opacity-100"></media-icon>
              <media-icon name="fullscreen-exit" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-fullscreen:block group-data-fullscreen:opacity-100"></media-icon>
            </media-fullscreen-button>
            <media-tooltip id="fullscreen-tooltip" side="top" class="m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full px-2 py-1 rounded-lg text-[0.75rem] whitespace-nowrap bg-(--media-tooltip-background-color) [backdrop-filter:var(--media-tooltip-backdrop-filter)] ring-1 ring-(color:--media-tooltip-border-color) shadow-md shadow-black/10 text-(--media-tooltip-text-color) data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>
        </div>
      </media-tooltip-group>
    </media-controls>

    <div class="absolute inset-0 flex flex-col items-start pointer-events-none rounded-[inherit] opacity-0 bg-linear-to-t from-black/70 via-black/50 via-[7.5rem] to-transparent backdrop-blur-none backdrop-saturate-100 transition-[opacity,backdrop-filter] duration-(--media-controls-transition-duration) ease-out peer-data-visible/controls:opacity-100 peer-data-open/error:opacity-100 peer-data-open/error:duration-(--media-error-dialog-transition-duration) peer-data-open/error:delay-(--media-error-dialog-transition-delay) peer-data-open/error:backdrop-blur-lg peer-data-open/error:backdrop-saturate-120"></div>

    <!-- Hotkeys -->
    <media-hotkey keys="Space" action="togglePaused"></media-hotkey>
    <media-hotkey keys="k" action="togglePaused"></media-hotkey>
    <media-hotkey keys="m" action="toggleMuted"></media-hotkey>
    <media-hotkey keys="f" action="toggleFullscreen"></media-hotkey>
    <media-hotkey keys="c" action="toggleSubtitles"></media-hotkey>
    <media-hotkey keys="i" action="togglePictureInPicture"></media-hotkey>
    <media-hotkey keys="ArrowRight" action="seekStep" value="5"></media-hotkey>
    <media-hotkey keys="ArrowLeft" action="seekStep" value="-5"></media-hotkey>
    <media-hotkey keys="l" action="seekStep" value="10"></media-hotkey>
    <media-hotkey keys="j" action="seekStep" value="-10"></media-hotkey>
    <media-hotkey keys="ArrowUp" action="volumeStep" value="0.05"></media-hotkey>
    <media-hotkey keys="ArrowDown" action="volumeStep" value="-0.05"></media-hotkey>
    <media-hotkey keys="0-9" action="seekToPercent"></media-hotkey>
    <media-hotkey keys="Home" action="seekToPercent" value="0"></media-hotkey>
    <media-hotkey keys="End" action="seekToPercent" value="100"></media-hotkey>
    <media-hotkey keys=">" action="speedUp"></media-hotkey>
    <media-hotkey keys="<" action="speedDown"></media-hotkey>

    <!-- Gestures -->
    <media-gesture type="tap" action="togglePaused" pointer="mouse" region="center"></media-gesture>
    <media-gesture type="tap" action="toggleControls" pointer="touch"></media-gesture>
    <media-gesture type="doubletap" action="seekStep" value="-10" region="left"></media-gesture>
    <media-gesture type="doubletap" action="toggleFullscreen" region="center"></media-gesture>
    <media-gesture type="doubletap" action="seekStep" value="10" region="right"></media-gesture>

    <!-- Input Feedback -->
    <media-status-announcer></media-status-announcer>
    <div class="absolute inset-x-0 top-0 bottom-14 pointer-events-none grid grid-cols-3 items-center justify-items-center overflow-hidden rounded-[inherit] @2xl/media-root:bottom-0 [color:var(--media-color-primary,oklch(1_0_0))]">
      <media-volume-indicator
        hidden
        class="group/input-indicator absolute top-0 inset-x-0 pt-3 pb-32 flex justify-center text-inherit font-medium origin-top pointer-events-none duration-100 ease-out data-starting-style:opacity-0 data-ending-style:opacity-0 data-starting-style:duration-400 data-starting-style:ease-in data-ending-style:duration-400 data-ending-style:ease-in [background-image:linear-gradient(to_bottom,oklch(0_0_0/0.35),oklch(0_0_0/0.2)_3rem,oklch(0_0_0/0))] text-shadow-2xs text-shadow-(color:--media-current-shadow-color) pointer-fine:will-change-[translate,filter,opacity] pointer-fine:transition-[translate,filter,opacity] pointer-coarse:will-change-[translate,opacity] pointer-coarse:transition-[translate,opacity] pointer-fine:motion-safe:data-starting-style:blur-sm pointer-fine:motion-safe:data-ending-style:blur-sm motion-safe:data-ending-style:-translate-y-full *:data-feedback-island-content:w-[min(80%,14rem)] data-open:duration-100 data-min:*:data-feedback-island-content:animate-media-shake data-max:*:data-feedback-island-content:animate-media-shake motion-reduce:data-min:*:data-feedback-island-content:animate-none motion-reduce:data-max:*:data-feedback-island-content:animate-none"
      >
        <media-volume-indicator-fill data-feedback-island-content="" class="flex justify-between items-center gap-2 px-2.5 py-1 *:last:ml-auto [@media(prefers-reduced-transparency:reduce)]:bg-(--media-controls-background-color) [@media(prefers-reduced-transparency:reduce)]:rounded-lg contrast-more:bg-(--media-controls-background-color) contrast-more:rounded-lg">
          <media-icon name="volume-high" family="minimal" class="hidden shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] group-data-[level=high]/input-indicator:block"></media-icon>
          <media-icon name="volume-low" family="minimal" class="hidden shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] group-data-[level=low]/input-indicator:block"></media-icon>
          <media-icon name="volume-off" family="minimal" class="hidden shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] group-data-[level=off]/input-indicator:block"></media-icon>
          <div aria-hidden="true" class="[--media-progress-fill:var(--media-volume-fill)] w-full h-0.75 rounded-full [background-image:linear-gradient(to_right,currentColor_0%,currentColor_var(--media-progress-fill),oklch(from_currentColor_l_c_h/0.2)_var(--media-progress-fill),oklch(from_currentColor_l_c_h/0.2)_100%)] shadow-[0_1px_0_var(--media-current-shadow-color-subtle)]"></div>
          <media-volume-indicator-value class="ml-auto"></media-volume-indicator-value>
        </media-volume-indicator-fill>
      </media-volume-indicator>

      <media-status-indicator hidden actions="toggleSubtitles toggleFullscreen togglePictureInPicture" class="group/input-indicator absolute top-0 inset-x-0 pt-3 pb-32 flex justify-center text-inherit font-medium origin-top pointer-events-none duration-100 ease-out data-starting-style:opacity-0 data-ending-style:opacity-0 data-starting-style:duration-400 data-starting-style:ease-in data-ending-style:duration-400 data-ending-style:ease-in [background-image:linear-gradient(to_bottom,oklch(0_0_0/0.35),oklch(0_0_0/0.2)_3rem,oklch(0_0_0/0))] text-shadow-2xs text-shadow-(color:--media-current-shadow-color) pointer-fine:will-change-[translate,filter,opacity] pointer-fine:transition-[translate,filter,opacity] pointer-coarse:will-change-[translate,opacity] pointer-coarse:transition-[translate,opacity] pointer-fine:motion-safe:data-starting-style:blur-sm pointer-fine:motion-safe:data-ending-style:blur-sm motion-safe:data-ending-style:-translate-y-full data-open:duration-100">
        <div class="flex justify-between items-center gap-2 px-2.5 py-1 *:last:ml-auto [@media(prefers-reduced-transparency:reduce)]:bg-(--media-controls-background-color) [@media(prefers-reduced-transparency:reduce)]:rounded-lg contrast-more:bg-(--media-controls-background-color) contrast-more:rounded-lg">
          <media-icon name="captions-on" family="minimal" class="hidden shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] group-data-[status=captions-on]/input-indicator:block"></media-icon>
          <media-icon name="captions-off" family="minimal" class="hidden shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] group-data-[status=captions-off]/input-indicator:block"></media-icon>
          <media-icon name="fullscreen-enter" family="minimal" class="hidden shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] group-data-[status=fullscreen]/input-indicator:block motion-safe:group-not-data-starting-style/input-indicator:group-data-[status=fullscreen]/input-indicator:animate-media-pop-in"></media-icon>
          <media-icon name="fullscreen-exit" family="minimal" class="hidden shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] group-data-[status=exit-fullscreen]/input-indicator:block motion-safe:group-not-data-starting-style/input-indicator:group-data-[status=exit-fullscreen]/input-indicator:animate-media-pop-in"></media-icon>
          <media-icon name="pip-enter" family="minimal" class="hidden shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] group-data-[status=pip]/input-indicator:block motion-safe:group-not-data-starting-style/input-indicator:group-data-[status=pip]/input-indicator:animate-media-pop-in"></media-icon>
          <media-icon name="pip-exit" family="minimal" class="hidden shrink-0 drop-shadow-[0_1px_0_var(--media-current-shadow-color)] group-data-[status=exit-pip]/input-indicator:block motion-safe:group-not-data-starting-style/input-indicator:group-data-[status=exit-pip]/input-indicator:animate-media-pop-in"></media-icon>
          <media-status-indicator-value class="ml-auto"></media-status-indicator-value>
        </div>
      </media-status-indicator>

      <media-seek-indicator hidden class="group/input-indicator col-start-2 row-start-1 flex flex-col items-center justify-center p-4 transition-opacity duration-250 ease-out data-starting-style:opacity-0 data-ending-style:opacity-0 data-starting-style:duration-200 data-starting-style:ease-in data-ending-style:duration-200 data-ending-style:ease-in @2xl/media-root:p-8 not-data-direction:[transition-property:opacity,scale] not-data-direction:duration-600 not-data-direction:[transition-timing-function:ease-out,linear(0,0.12_1.5%,1.35_9.7%,2.2_13.9%,3_19.9%,2.7_21.8%,0.62_37.5%,0.96_50.9%,1)] motion-reduce:not-data-direction:transition-opacity motion-reduce:not-data-direction:duration-100 motion-reduce:not-data-direction:ease-out not-data-direction:data-starting-style:scale-80 not-data-direction:data-ending-style:scale-80 not-data-direction:data-starting-style:duration-200 not-data-direction:data-starting-style:ease-in not-data-direction:data-ending-style:duration-200 not-data-direction:data-ending-style:ease-in data-[direction=backward]:col-start-1 data-[direction=backward]:justify-self-start data-[direction=forward]:col-start-3 data-[direction=forward]:justify-self-end">
        <media-icon name="chevron" family="minimal" class="hidden w-9 h-9 group-data-direction/input-indicator:block group-data-[direction=backward]/input-indicator:-scale-x-100 group-not-data-starting-style/input-indicator:group-data-[direction=forward]/input-indicator:animate-media-slide-in-forward group-not-data-starting-style/input-indicator:group-data-[direction=backward]/input-indicator:animate-media-slide-in-backward motion-reduce:group-data-direction/input-indicator:animate-none"></media-icon>
        <media-seek-indicator-value class="tabular-nums"></media-seek-indicator-value>
      </media-seek-indicator>

      <media-status-indicator hidden actions="togglePaused" class="group/input-indicator col-start-2 row-start-1 flex flex-col items-center justify-center p-4 transition-opacity duration-250 ease-out data-starting-style:opacity-0 data-ending-style:opacity-0 data-starting-style:duration-200 data-starting-style:ease-in data-ending-style:duration-200 data-ending-style:ease-in @2xl/media-root:p-8 not-data-direction:[transition-property:opacity,scale] not-data-direction:duration-600 not-data-direction:[transition-timing-function:ease-out,linear(0,0.12_1.5%,1.35_9.7%,2.2_13.9%,3_19.9%,2.7_21.8%,0.62_37.5%,0.96_50.9%,1)] motion-reduce:not-data-direction:transition-opacity motion-reduce:not-data-direction:duration-100 motion-reduce:not-data-direction:ease-out not-data-direction:data-starting-style:scale-80 not-data-direction:data-ending-style:scale-80 not-data-direction:data-starting-style:duration-200 not-data-direction:data-starting-style:ease-in not-data-direction:data-ending-style:duration-200 not-data-direction:data-ending-style:ease-in data-[direction=backward]:col-start-1 data-[direction=backward]:justify-self-start data-[direction=forward]:col-start-3 data-[direction=forward]:justify-self-end">
        <media-icon name="play" family="minimal" class="hidden w-9 h-9 group-data-[status=play]/input-indicator:block motion-safe:group-not-data-starting-style/input-indicator:group-data-[status=play]/input-indicator:animate-media-pop-in"></media-icon>
        <media-icon name="pause" family="minimal" class="hidden w-9 h-9 group-data-[status=pause]/input-indicator:block motion-safe:group-not-data-starting-style/input-indicator:group-data-[status=pause]/input-indicator:animate-media-pop-in"></media-icon>
      </media-status-indicator>
    </div>
  </media-container>
</video-player>

Minimal Audio Skin

<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html/cdn/audio-minimal-ui.js"></script>
<link rel="stylesheet" href="./player.css">

<audio-player>
  <media-container class="media-minimal-skin media-minimal-skin--audio">
    <audio src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4"></audio>

    <media-error-dialog class="media-error">
      <div class="media-error__dialog">
        <div class="media-error__content">
          <media-alert-dialog-title class="media-error__title">Something went wrong.</media-alert-dialog-title>
          <media-alert-dialog-description class="media-error__description"></media-alert-dialog-description>
        </div>
        <div class="media-error__actions">
          <media-alert-dialog-close class="media-button media-button--subtle">OK</media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <div class="media-controls">
      <media-tooltip-group>
        <div class="media-button-group">
          <media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play">
            <media-icon name="restart" family="minimal" class="media-icon media-icon--restart"></media-icon>
            <media-icon name="play" family="minimal" class="media-icon media-icon--play"></media-icon>
            <media-icon name="pause" family="minimal" class="media-icon media-icon--pause"></media-icon>
          </media-play-button>
          <media-tooltip id="play-tooltip" side="top" boundary="viewport" class="media-tooltip"></media-tooltip>

          <media-seek-button commandfor="seek-backward-tooltip" seconds="-10" class="media-button media-button--subtle media-button--icon media-button--seek">
            <span class="media-icon__container">
              <media-icon name="seek" family="minimal" class="media-icon media-icon--seek media-icon--flipped"></media-icon>
              <span class="media-icon__label">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-backward-tooltip" side="top" boundary="viewport" class="media-tooltip"></media-tooltip>

          <media-seek-button commandfor="seek-forward-tooltip" seconds="10" class="media-button media-button--subtle media-button--icon media-button--seek">
            <span class="media-icon__container">
              <media-icon name="seek" family="minimal" class="media-icon media-icon--seek"></media-icon>
              <span class="media-icon__label">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-forward-tooltip" side="top" boundary="viewport" class="media-tooltip"></media-tooltip>
        </div>

        <div class="media-time-controls">
          <media-time-group class="media-time-group">
            <media-time type="current" class="media-time media-time--current"></media-time>
            <media-time-separator class="media-time-separator"></media-time-separator>
            <media-time type="duration" class="media-time media-time--duration"></media-time>
          </media-time-group>

          <media-time-slider class="media-slider">
            <media-slider-track class="media-slider__track">
              <media-slider-fill class="media-slider__fill"></media-slider-fill>
              <media-slider-buffer class="media-slider__buffer"></media-slider-buffer>
            </media-slider-track>
            <media-slider-thumb class="media-slider__thumb"></media-slider-thumb>
            <media-slider-preview class="media-slider__preview">
              <media-slider-value type="pointer" class="media-slider__value media-time"></media-slider-value>
            </media-slider-preview>
          </media-time-slider>
        </div>

        <div class="media-button-group">
          <media-playback-rate-button commandfor="playback-rate-menu" class="media-button media-button--subtle media-button--icon media-button--playback-rate"></media-playback-rate-button>
          <media-menu id="playback-rate-menu" side="top" align="center" boundary="viewport" class="media-popover media-menu">
            <media-playback-rate-radio-group class="media-menu__group">
              <template>
                <media-menu-radio-item class="media-menu__item">
                  <span data-part="label"></span>
                  <media-menu-item-indicator force-mount class="media-menu__indicator">
                    <media-icon name="check" family="minimal" class="media-icon"></media-icon>
                  </media-menu-item-indicator>
                </media-menu-radio-item>
              </template>
            </media-playback-rate-radio-group>
          </media-menu>

          <media-mute-button commandfor="audio-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute">
            <media-icon name="volume-off" family="minimal" class="media-icon media-icon--volume-off"></media-icon>
            <media-icon name="volume-low" family="minimal" class="media-icon media-icon--volume-low"></media-icon>
            <media-icon name="volume-high" family="minimal" class="media-icon media-icon--volume-high"></media-icon>
          </media-mute-button>

          <media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="left" boundary="viewport" class="media-popover media-popover--volume">
            <media-volume-slider class="media-slider" orientation="horizontal" thumb-alignment="edge">
              <media-slider-track class="media-slider__track">
                <media-slider-fill class="media-slider__fill"></media-slider-fill>
              </media-slider-track>
              <media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
            </media-volume-slider>
          </media-popover>
        </div>
      </media-tooltip-group>
    </div>
  </media-container>
</audio-player>
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/html/cdn/audio-minimal-ui.js"></script>
<link rel="stylesheet" href="./player.css">

<audio-player>
  <media-container class="**:box-border [&_[hidden][hidden]]:hidden [&_button]:font-[inherit] motion-safe:[interpolate-size:allow-keywords] block relative isolate h-full w-full @container/media-root rounded-(--media-border-radius,0.75rem) font-[Inter_Variable,Inter,ui-sans-serif,system-ui,sans-serif] text-[0.8125rem] leading-normal subpixel-antialiased outline-2 outline-transparent -outline-offset-4 transition-[outline-offset,outline-color] duration-100 ease-out focus-visible:outline-current focus-visible:outline-offset-2 [--media-current-shadow-color:oklch(from_currentColor_0_0_0/clamp(0,calc((l-0.5)*0.5),0.15))] [--media-current-shadow-color-subtle:oklch(from_var(--media-current-shadow-color)_l_c_h/calc(alpha*0.4))] [--media-icon-size:18px] [--media-controls-background-color:oklch(1_0_0)] [--media-controls-backdrop-filter:blur(16px)_saturate(1.5)] [--media-controls-border-color:oklch(0_0_0/0.05)] [--media-controls-text-color:var(--media-color-primary,oklch(0_0_0))] [--media-error-dialog-transition-duration:250ms] [--media-error-dialog-transition-delay:100ms] [--media-popup-transition-duration:100ms] [--media-popup-transition-timing-function:ease-out] [--media-tooltip-background-color:oklch(1_0_0/0.1)] [--media-tooltip-border-color:oklch(0_0_0/0.05)] [--media-tooltip-backdrop-filter:blur(16px)_saturate(1.5)] [--media-tooltip-text-color:currentColor] [--media-tooltip-side-offset:0.75rem] [--media-tooltip-boundary-offset:0.75rem] [--media-popover-background-color:oklch(1_0_0/0.1)] [--media-popover-border-color:oklch(0_0_0/0.05)] [--media-popover-backdrop-filter:blur(16px)_saturate(1.5)] [--media-popover-side-offset:0.75rem] [--media-popover-boundary-offset:0.75rem] motion-reduce:[--media-error-dialog-transition-duration:50ms] motion-reduce:[--media-error-dialog-transition-delay:0ms] motion-reduce:[--media-popup-transition-duration:0ms] dark:[--media-controls-background-color:oklch(0_0_0)] dark:[--media-controls-border-color:oklch(1_0_0/0.1)] dark:[--media-controls-text-color:var(--media-color-primary,oklch(1_0_0))] [@media(prefers-reduced-transparency:reduce)]:[--media-tooltip-background-color:oklch(1_0_0)] contrast-more:[--media-tooltip-background-color:oklch(1_0_0)] dark:[@media(prefers-reduced-transparency:reduce)]:[--media-tooltip-background-color:oklch(0_0_0)] dark:contrast-more:[--media-tooltip-background-color:oklch(0_0_0)]">
    <audio src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4"></audio>

    <media-error-dialog class="peer/error group/error hidden data-[open]:flex absolute inset-0 z-20 items-center justify-center outline-none">
      <div class="absolute inset-0 z-20 flex items-center gap-4 rounded-full px-5 pr-2 bg-(--media-controls-background-color) transition-[opacity,filter,scale] ease-out duration-(--media-error-dialog-transition-duration) delay-(--media-error-dialog-transition-delay) group-data-starting-style/error:opacity-0 group-data-starting-style/error:blur-xs group-data-starting-style/error:scale-95 group-data-ending-style/error:opacity-0 group-data-ending-style/error:blur-xs group-data-ending-style/error:scale-95 group-data-ending-style/error:delay-0">
        <div class="flex flex-1 items-center gap-2">
          <media-alert-dialog-title class="font-semibold leading-tight">Something went wrong.</media-alert-dialog-title>
          <media-alert-dialog-description class="opacity-70 wrap-anywhere"></media-alert-dialog-description>
        </div>
        <div class="flex gap-2 *:flex-1">
          <media-alert-dialog-close class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 focus-visible:bg-current/10 aria-expanded:bg-current/10">OK</media-alert-dialog-close>
        </div>
      </div>
    </media-error-dialog>

    <div class="peer/controls @container/media-controls flex items-center bg-(--media-controls-background-color) [backdrop-filter:var(--media-controls-backdrop-filter)] text-shadow-2xs text-shadow-(color:--media-current-shadow-color) p-1.5 gap-2 rounded-(--media-border-radius,1rem) peer-data-open/error:**:invisible text-(--media-controls-text-color) ring-1 ring-(color:--media-controls-border-color)">
      <media-tooltip-group>
        <div class="flex items-center gap-[0.075rem] @2xl/media-root:gap-0.5">
            <media-play-button commandfor="play-tooltip" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-[2.375rem] aspect-square p-0 active:scale-90 group">
              <media-icon name="restart" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-ended:block group-data-ended:opacity-100"></media-icon>
              <media-icon name="play" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-ended:group-data-paused:block group-not-data-ended:group-data-paused:opacity-100 group-not-data-ended:group-not-data-started:block group-not-data-ended:group-not-data-started:opacity-100"></media-icon>
              <media-icon name="pause" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-started:group-not-data-paused:group-not-data-ended:block group-data-started:group-not-data-paused:group-not-data-ended:opacity-100"></media-icon>
            </media-play-button>
            <media-tooltip id="play-tooltip" side="top" boundary="viewport" class="m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full px-2 py-1 rounded-lg text-[0.75rem] whitespace-nowrap bg-(--media-tooltip-background-color) [backdrop-filter:var(--media-tooltip-backdrop-filter)] ring-1 ring-(color:--media-tooltip-border-color) shadow-md shadow-black/10 text-(--media-tooltip-text-color) data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>

          <media-seek-button commandfor="seek-backward-tooltip" seconds="-10" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-[2.375rem] aspect-square p-0 active:scale-90">
            <span class="relative grid">
              <media-icon name="seek" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out [scale:-1_1]"></media-icon>
              <span class="text-[10px] font-medium tracking-tighter tabular-nums absolute -left-px -bottom-0.75">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-backward-tooltip" side="top" boundary="viewport" class="m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full px-2 py-1 rounded-lg text-[0.75rem] whitespace-nowrap bg-(--media-tooltip-background-color) [backdrop-filter:var(--media-tooltip-backdrop-filter)] ring-1 ring-(color:--media-tooltip-border-color) shadow-md shadow-black/10 text-(--media-tooltip-text-color) data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>

          <media-seek-button commandfor="seek-forward-tooltip" seconds="10" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-[2.375rem] aspect-square p-0 active:scale-90">
            <span class="relative grid">
              <media-icon name="seek" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out"></media-icon>
              <span class="text-[10px] font-medium tracking-tighter tabular-nums absolute -right-px -bottom-0.75">10</span>
            </span>
          </media-seek-button>
          <media-tooltip id="seek-forward-tooltip" side="top" boundary="viewport" class="m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full px-2 py-1 rounded-lg text-[0.75rem] whitespace-nowrap bg-(--media-tooltip-background-color) [backdrop-filter:var(--media-tooltip-backdrop-filter)] ring-1 ring-(color:--media-tooltip-border-color) shadow-md shadow-black/10 text-(--media-tooltip-text-color) data-[side=top]:before:h-(--media-tooltip-side-offset) data-[side=bottom]:before:h-(--media-tooltip-side-offset) data-[side=left]:before:w-(--media-tooltip-side-offset) data-[side=right]:before:w-(--media-tooltip-side-offset)"></media-tooltip>
        </div>

        <div class="@container flex flex-row-reverse items-center flex-1 gap-3 @2xl/media-root:flex-row">
          <media-time-group class="flex items-center gap-1">
            <media-time type="current" class="hidden tabular-nums @2xl/media-root:inline"></media-time>
            <media-time-separator class="hidden @2xl/media-root:inline @2xl/media-root:text-current/60"></media-time-separator>
            <media-time type="duration" class="tabular-nums @2xl/media-root:text-current/60"></media-time>
          </media-time-group>

          <media-time-slider class="group/slider relative flex flex-1 items-center justify-center rounded-full outline-none cursor-pointer data-[orientation=horizontal]:min-w-20 data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-8 data-[orientation=vertical]:w-8 data-[orientation=vertical]:h-[4.5rem]">
            <media-slider-track class="relative isolate overflow-hidden bg-current/20 rounded-[inherit] select-none data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-0.75 data-[orientation=vertical]:w-0.75 data-[orientation=vertical]:h-full">
              <media-slider-fill class="absolute rounded-[inherit] pointer-events-none bg-current data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0 data-[orientation=horizontal]:w-(--media-slider-fill,0) data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0 data-[orientation=vertical]:h-(--media-slider-fill,0)"></media-slider-fill>
              <media-slider-buffer class="absolute rounded-[inherit] pointer-events-none bg-current/20 duration-250 ease-out data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0 data-[orientation=horizontal]:transition-[width] data-[orientation=horizontal]:w-(--media-slider-buffer,0) data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0 data-[orientation=vertical]:transition-[height] data-[orientation=vertical]:h-(--media-slider-buffer)"></media-slider-buffer>
            </media-slider-track>
            <media-slider-thumb class="z-10 absolute size-3 -translate-x-1/2 -translate-y-1/2 bg-current rounded-full shadow-[0_0_0_1px_var(--media-current-shadow-color,oklch(0_0_0/0.15)),0_1px_3px_0_oklch(0_0_0/0.15),0_1px_2px_-1px_oklch(0_0_0/0.15)] transition-[opacity,scale,outline-offset] duration-150 ease-out select-none outline-2 outline-transparent -outline-offset-2 focus-visible:outline-current focus-visible:outline-offset-2 data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:left-(--media-slider-fill,0) data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:top-[calc(100%-var(--media-slider-fill,0))] opacity-0 scale-70 origin-center group-hover/slider:opacity-100 group-hover/slider:scale-100 group-focus-within/slider:opacity-100 group-focus-within/slider:scale-100"></media-slider-thumb>
            <media-slider-preview class="group/preview before:block before:bg-current/35 before:opacity-0 before:scale-50 before:transition-[opacity,scale] before:duration-200 before:ease-out data-pointing:not-data-dragging:before:opacity-100 data-pointing:not-data-dragging:before:scale-100 data-[orientation=horizontal]:before:min-w-px data-[orientation=horizontal]:before:h-5 data-[orientation=vertical]:before:w-5 data-[orientation=vertical]:before:min-h-px peer-has-[[role=img]:not([data-hidden])]/thumbnail:*:hidden">
              <media-slider-value type="pointer" class="absolute bottom-6 tabular-nums -translate-x-1/2 translate-y-2 scale-50 opacity-0 blur-lg text-shadow-2xs text-shadow-(color:--media-current-shadow-color) transition-[filter,opacity,scale,translate] duration-200 ease-out group-data-pointing/preview:translate-y-0 group-data-pointing/preview:scale-100 group-data-pointing/preview:opacity-100 group-data-pointing/preview:blur-none bottom-10"></media-slider-value>
            </media-slider-preview>
          </media-time-slider>
        </div>

        <div class="flex items-center gap-[0.075rem] @2xl/media-root:gap-0.5">
          <media-playback-rate-button commandfor="playback-rate-menu" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-[2.375rem] aspect-square p-0 active:scale-90 tabular-nums after:w-[4ch] after:content-[attr(data-rate)_'×'] data-[inline-rate-label]:after:content-none">
          </media-playback-rate-button>
          <media-menu id="playback-rate-menu" side="top" align="center" boundary="viewport" class="m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full data-[side=top]:before:h-(--media-popover-side-offset) data-[side=bottom]:before:h-(--media-popover-side-offset) data-[side=left]:before:w-(--media-popover-side-offset) data-[side=right]:before:w-(--media-popover-side-offset) m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full data-[side=top]:before:h-(--media-popover-side-offset) data-[side=bottom]:before:h-(--media-popover-side-offset) data-[side=left]:before:w-(--media-popover-side-offset) data-[side=right]:before:w-(--media-popover-side-offset) [--menu-item-height:1.875rem] [--menu-transition-duration:200ms] [--menu-item-transition-duration:100ms] motion-reduce:[--menu-transition-duration:0ms] motion-reduce:[--menu-item-transition-duration:0ms] max-w-(--media-popover-available-width,none) max-h-(--media-popover-available-height,none) bg-(--media-popover-background-color) [backdrop-filter:var(--media-popover-backdrop-filter)] shadow-[0_0_0_1px_var(--media-popover-border-color),0_4px_6px_-1px_oklch(0_0_0/0.1),0_2px_4px_-2px_oklch(0_0_0/0.1)] transition-[transform,scale,opacity,filter,width,height] duration-(--menu-transition-duration) ease-in-out box-border rounded-xl p-1 overscroll-none min-w-24 overflow-auto">
            <media-playback-rate-radio-group class="flex flex-col gap-0.5">
              <template>
                <media-menu-radio-item class="flex h-(--menu-item-height) cursor-pointer select-none items-center rounded-lg text-shadow-2xs text-shadow-(color:--media-current-shadow-color) outline-2 -outline-offset-2 outline-transparent transition-[background-color,color] duration-(--menu-item-transition-duration) ease-out hover:bg-current/10 data-highlighted:bg-current/10 focus-visible:outline-current focus-visible:outline-offset-2 group/menu-item justify-between gap-2 px-2.5 tabular-nums text-inherit data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50">
                  <span data-part="label"></span>
                  <media-menu-item-indicator force-mount class="-mr-1 shrink-0 opacity-0 group-aria-checked/menu-item:opacity-100">
                    <media-icon name="check" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out"></media-icon>
                  </media-menu-item-indicator>
                </media-menu-radio-item>
              </template>
            </media-playback-rate-radio-group>
          </media-menu>

          <media-mute-button commandfor="audio-volume-popover" class="flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation min-h-0 py-2 px-4 rounded-lg outline-2 outline-transparent -outline-offset-2 transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out focus-visible:outline-current focus-visible:outline-offset-2 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale supports-[corner-shape:squircle]:rounded-[1rem] supports-[corner-shape:squircle]:[corner-shape:squircle] data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden bg-transparent text-inherit text-shadow-inherit hover:bg-current/10 focus-visible:bg-current/10 aria-expanded:bg-current/10 grid w-[2.375rem] aspect-square p-0 active:scale-90 group">
            <media-icon name="volume-off" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-data-muted:block group-data-muted:opacity-100"></media-icon>
            <media-icon name="volume-low" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-muted:group-data-[volume-level=low]:block group-not-data-muted:group-data-[volume-level=low]:opacity-100"></media-icon>
            <media-icon name="volume-high" family="minimal" class="block [grid-area:1/1] size-(--media-icon-size) drop-shadow-[0_1px_0_var(--media-current-shadow-color)] transition-discrete transition-[display,opacity] duration-150 ease-out hidden opacity-0 group-not-data-muted:group-not-data-[volume-level=low]:block group-not-data-muted:group-not-data-[volume-level=low]:opacity-100"></media-icon>
          </media-mute-button>

          <media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="left" boundary="viewport" class="m-0 border-0 text-inherit overflow-visible transition-[transform,scale,opacity,filter] duration-(--media-popup-transition-duration) ease-(--media-popup-transition-timing-function) data-starting-style:opacity-0 data-starting-style:scale-50 data-starting-style:blur-sm data-ending-style:opacity-0 data-ending-style:scale-50 data-ending-style:blur-sm data-instant:duration-0 data-[side=top]:origin-bottom data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left before:absolute before:pointer-events-[inherit] data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-[side=top]:before:top-full data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:bottom-full data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:left-full data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:right-full data-[side=top]:before:h-(--media-popover-side-offset) data-[side=bottom]:before:h-(--media-popover-side-offset) data-[side=left]:before:w-(--media-popover-side-offset) data-[side=right]:before:w-(--media-popover-side-offset) p-0 pl-16 bg-transparent bg-gradient-to-l from-(--media-controls-background-color) from-80% to-transparent">
            <media-volume-slider class="group/slider relative flex flex-1 items-center justify-center rounded-full outline-none cursor-pointer data-[orientation=horizontal]:min-w-20 data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-8 data-[orientation=vertical]:w-8 data-[orientation=vertical]:h-[4.5rem]" orientation="horizontal" thumb-alignment="edge">
              <media-slider-track class="relative isolate overflow-hidden bg-current/20 rounded-[inherit] select-none data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-0.75 data-[orientation=vertical]:w-0.75 data-[orientation=vertical]:h-full">
                <media-slider-fill class="absolute rounded-[inherit] pointer-events-none bg-current data-[orientation=horizontal]:inset-y-0 data-[orientation=horizontal]:left-0 data-[orientation=horizontal]:w-(--media-slider-fill,0) data-[orientation=vertical]:inset-x-0 data-[orientation=vertical]:bottom-0 data-[orientation=vertical]:h-(--media-slider-fill,0)"></media-slider-fill>
              </media-slider-track>
              <media-slider-thumb class="z-10 absolute size-3 -translate-x-1/2 -translate-y-1/2 bg-current rounded-full shadow-[0_0_0_1px_var(--media-current-shadow-color,oklch(0_0_0/0.15)),0_1px_3px_0_oklch(0_0_0/0.15),0_1px_2px_-1px_oklch(0_0_0/0.15)] transition-[opacity,scale,outline-offset] duration-150 ease-out select-none outline-2 outline-transparent -outline-offset-2 focus-visible:outline-current focus-visible:outline-offset-2 data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:left-(--media-slider-fill,0) data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:top-[calc(100%-var(--media-slider-fill,0))]"></media-slider-thumb>
            </media-volume-slider>
          </media-popover>
        </div>
      </media-tooltip-group>
    </div>
  </media-container>
</audio-player>