/*!***********************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/styles/main.scss ***!
  \***********************************************************************************************************************************************************************/
@charset "UTF-8";
/* ****************************************
 * Imports
 * **************************************** */
@keyframes splide-loading {
  0% {
    transform: rotate(0);
  }
  to {
    transform: rotate(1turn);
  }
}
.splide__track--draggable {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.splide__track--fade > .splide__list > .splide__slide {
  margin: 0 !important;
  opacity: 0;
  z-index: 0;
}

.splide__track--fade > .splide__list > .splide__slide.is-active {
  opacity: 1;
  z-index: 1;
}

.splide--rtl {
  direction: rtl;
}

.splide__track--ttb > .splide__list {
  display: block;
}

.splide__container {
  box-sizing: border-box;
  position: relative;
}

.splide__list {
  backface-visibility: hidden;
  display: -ms-flexbox;
  display: flex;
  height: 100%;
  margin: 0 !important;
  padding: 0 !important;
}

.splide.is-initialized:not(.is-active) .splide__list {
  display: block;
}

.splide__pagination {
  -ms-flex-align: center;
  align-items: center;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -ms-flex-pack: center;
  justify-content: center;
  margin: 0;
  pointer-events: none;
}

.splide__pagination li {
  display: inline-block;
  line-height: 1;
  list-style-type: none;
  margin: 0;
  pointer-events: auto;
}

.splide:not(.is-overflow) .splide__pagination {
  display: none;
}

.splide__progress__bar {
  width: 0;
}

.splide {
  position: relative;
  visibility: hidden;
}

.splide.is-initialized, .splide.is-rendered {
  visibility: visible;
}

.splide__slide {
  backface-visibility: hidden;
  box-sizing: border-box;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  list-style-type: none !important;
  margin: 0;
  position: relative;
}

.splide__slide img {
  vertical-align: bottom;
}

.splide__spinner {
  animation: splide-loading 1s linear infinite;
  border: 2px solid #999;
  border-left-color: transparent;
  border-radius: 50%;
  bottom: 0;
  contain: strict;
  display: inline-block;
  height: 20px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  width: 20px;
}

.splide__sr {
  clip: rect(0 0 0 0);
  border: 0;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.splide__toggle.is-active .splide__toggle__play, .splide__toggle__pause {
  display: none;
}

.splide__toggle.is-active .splide__toggle__pause {
  display: inline;
}

.splide__track {
  overflow: hidden;
  position: relative;
  z-index: 0;
}

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type=checkbox],
[type=radio] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
}
[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

@font-face {
  font-family: "FTSystem";
  src: url(../37b38f5319a045401ea3.woff) format("woff");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: "FTSystem";
  src: url(../0ff17762f23f537f770d.woff) format("woff");
  font-weight: 400;
  font-style: italic;
}
@font-face {
  font-family: "FTSystem";
  src: url(../bb5b57bae6400432243f.woff) format("woff");
  font-weight: 600;
  font-style: normal;
}
@font-face {
  font-family: "FTSystem";
  src: url(../4dfb7535326180d4ccf7.woff) format("woff");
  font-weight: 700;
  font-style: normal;
}
@font-face {
  font-family: "FTSystem";
  src: url(../926740d899030c7d815e.woff) format("woff");
  font-weight: 700;
  font-style: italic;
}
@font-face {
  font-family: "FTSystem";
  src: url(../54d95de0487c5a187d56.woff) format("woff");
  font-weight: 900;
  font-style: normal;
}
/* ============================================
   Lightweight 12-Column Grid System
   Usage: similar to Bootstrap's grid
   ============================================ */
/* --- Container --- */
.container {
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 10px;
  padding-right: 10px;
}

.container-fluid {
  width: 100%;
  padding-left: 10px;
  padding-right: 10px;
}

@media (min-width: 740px) {
  .container,
  .container-fluid {
    padding-left: 20px;
    padding-right: 20px;
  }
}
/* --- Row --- */
.row {
  display: flex;
  flex-wrap: wrap;
  margin-left: -10px;
  margin-right: -10px;
}

/* --- Columns --- */
[class*=col] {
  padding-left: 10px;
  padding-right: 10px;
  box-sizing: border-box;
  width: 100%; /* mobile-first default */
}

/* Auto column — shares space equally */
.col {
  flex: 1 1 0;
}

/* Fixed-width columns (col-1 through col-12) */
.col-1 {
  flex: 0 0 8.3333333333%;
  max-width: 8.3333333333%;
}

.col-2 {
  flex: 0 0 16.6666666667%;
  max-width: 16.6666666667%;
}

.col-3 {
  flex: 0 0 25%;
  max-width: 25%;
}

.col-4 {
  flex: 0 0 33.3333333333%;
  max-width: 33.3333333333%;
}

.col-5 {
  flex: 0 0 41.6666666667%;
  max-width: 41.6666666667%;
}

.col-6 {
  flex: 0 0 50%;
  max-width: 50%;
}

.col-7 {
  flex: 0 0 58.3333333333%;
  max-width: 58.3333333333%;
}

.col-8 {
  flex: 0 0 66.6666666667%;
  max-width: 66.6666666667%;
}

.col-9 {
  flex: 0 0 75%;
  max-width: 75%;
}

.col-10 {
  flex: 0 0 83.3333333333%;
  max-width: 83.3333333333%;
}

.col-11 {
  flex: 0 0 91.6666666667%;
  max-width: 91.6666666667%;
}

.col-12 {
  flex: 0 0 100%;
  max-width: 100%;
}

/* --- Responsive Breakpoints --- */
/* sm: 576px+ */
@media (min-width: 576px) {
  .col-sm {
    flex: 1 1 0;
  }
  .col-sm-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }
  .col-sm-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }
  .col-sm-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .col-sm-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }
  .col-sm-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }
  .col-sm-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .col-sm-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }
  .col-sm-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }
  .col-sm-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .col-sm-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }
  .col-sm-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }
  .col-sm-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
/* md: 700px+ */
@media (min-width: 740px) {
  .col-md {
    flex: 1 1 0;
  }
  .col-md-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }
  .col-md-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }
  .col-md-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .col-md-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }
  .col-md-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }
  .col-md-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .col-md-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }
  .col-md-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }
  .col-md-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .col-md-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }
  .col-md-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }
  .col-md-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
/* lg: 1200px+ */
@media (min-width: 1200px) {
  .col-lg {
    flex: 1 1 0;
  }
  .col-lg-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }
  .col-lg-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }
  .col-lg-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .col-lg-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }
  .col-lg-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }
  .col-lg-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .col-lg-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }
  .col-lg-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }
  .col-lg-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .col-lg-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }
  .col-lg-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }
  .col-lg-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
/* xl: 1600px+ */
@media (min-width: 1600px) {
  .col-xl {
    flex: 1 1 0;
  }
  .col-xl-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }
  .col-xl-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }
  .col-xl-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .col-xl-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }
  .col-xl-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }
  .col-xl-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .col-xl-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }
  .col-xl-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }
  .col-xl-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .col-xl-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }
  .col-xl-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }
  .col-xl-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
/* --- Offset Utilities --- */
.offset-1 {
  margin-left: 8.3333333333%;
}

.offset-2 {
  margin-left: 16.6666666667%;
}

.offset-3 {
  margin-left: 25%;
}

.offset-4 {
  margin-left: 33.3333333333%;
}

.offset-5 {
  margin-left: 41.6666666667%;
}

.offset-6 {
  margin-left: 50%;
}

@media (min-width: 700px) {
  .offset-md-0 {
    margin-left: 0;
  }
  .offset-md-1 {
    margin-left: 8.3333333333%;
  }
  .offset-md-2 {
    margin-left: 16.6666666667%;
  }
  .offset-md-3 {
    margin-left: 25%;
  }
  .offset-md-4 {
    margin-left: 33.3333333333%;
  }
  .offset-md-5 {
    margin-left: 41.6666666667%;
  }
  .offset-md-6 {
    margin-left: 50%;
  }
}
/* lg: 1200px+ */
@media (min-width: 1200px) {
  .offset-lg-0 {
    margin-left: 0;
  }
  .offset-lg-1 {
    margin-left: 8.3333333333%;
  }
  .offset-lg-2 {
    margin-left: 16.6666666667%;
  }
  .offset-lg-3 {
    margin-left: 25%;
  }
  .offset-lg-4 {
    margin-left: 33.3333333333%;
  }
  .offset-lg-5 {
    margin-left: 41.6666666667%;
  }
  .offset-lg-6 {
    margin-left: 50%;
  }
  .offset-lg-7 {
    margin-left: 58.3333333333%;
  }
  .offset-lg-8 {
    margin-left: 66.6666666667%;
  }
}
/* xl: 1600px+ */
@media (min-width: 1600px) {
  .offset-xl-0 {
    margin-left: 0;
  }
  .offset-xl-1 {
    margin-left: 8.3333333333%;
  }
  .offset-xl-2 {
    margin-left: 16.6666666667%;
  }
  .offset-xl-3 {
    margin-left: 25%;
  }
  .offset-xl-4 {
    margin-left: 33.3333333333%;
  }
  .offset-xl-5 {
    margin-left: 41.6666666667%;
  }
  .offset-xl-6 {
    margin-left: 50%;
  }
  .offset-xl-7 {
    margin-left: 58.3333333333%;
  }
  .offset-xl-8 {
    margin-left: 66.6666666667%;
  }
}
/* --- Alignment Helpers (on .row) --- */
.row.align-start {
  align-items: flex-start;
}

.row.align-center {
  align-items: center;
}

.row.align-end {
  align-items: flex-end;
}

.row.justify-start {
  justify-content: flex-start;
}

.row.justify-center {
  justify-content: center;
}

.row.justify-end {
  justify-content: flex-end;
}

.row.justify-between {
  justify-content: space-between;
}

.row.justify-around {
  justify-content: space-around;
}

/* --- No-gutter modifier --- */
.row.no-gutters {
  margin-left: 0;
  margin-right: 0;
}

.row.no-gutters > [class^=col] {
  padding-left: 0;
  padding-right: 0;
}

/* --- Order Utilities --- */
.order-first {
  order: -1;
}

.order-last {
  order: 13;
}

.order-1 {
  order: 1;
}

.order-2 {
  order: 2;
}

.order-3 {
  order: 3;
}

.order-4 {
  order: 4;
}

@media (min-width: 576px) {
  .order-sm-first {
    order: -1;
  }
  .order-sm-last {
    order: 13;
  }
  .order-sm-1 {
    order: 1;
  }
  .order-sm-2 {
    order: 2;
  }
  .order-sm-3 {
    order: 3;
  }
  .order-sm-4 {
    order: 4;
  }
}
@media (min-width: 700px) {
  .order-md-first {
    order: -1;
  }
  .order-md-last {
    order: 13;
  }
  .order-md-1 {
    order: 1;
  }
  .order-md-2 {
    order: 2;
  }
  .order-md-3 {
    order: 3;
  }
  .order-md-4 {
    order: 4;
  }
}
@media (min-width: 1200px) {
  .order-lg-first {
    order: -1;
  }
  .order-lg-last {
    order: 13;
  }
  .order-lg-1 {
    order: 1;
  }
  .order-lg-2 {
    order: 2;
  }
  .order-lg-3 {
    order: 3;
  }
  .order-lg-4 {
    order: 4;
  }
}
/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Player
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
[data-media-player] {
  width: 100%;
  display: inline-flex;
  align-items: center;
  position: relative;
  contain: style;
  box-sizing: border-box;
  user-select: none;
}

[data-media-player] * {
  box-sizing: border-box;
}

:where([data-media-player][data-view-type=video]) {
  aspect-ratio: 16/9;
}

[data-media-player]:focus,
[data-media-player]:focus-visible {
  outline: none;
}

[data-media-player][data-view-type=video][data-started]:not([data-controls]) {
  pointer-events: auto;
  cursor: none;
}

[data-media-player] slot {
  display: contents;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Provider
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
[data-media-provider] {
  display: flex;
  position: relative;
  box-sizing: border-box;
  align-items: center;
  border-radius: inherit;
  width: 100%;
  aspect-ratio: inherit;
  overflow: hidden;
}

[data-media-player]:not([data-view-type=audio]) [data-media-provider],
[data-media-player][data-fullscreen] [data-media-provider] {
  height: 100%;
}

[data-media-player][data-view-type=audio] [data-media-provider] {
  display: contents;
  background-color: unset;
}

[data-media-provider] audio {
  width: 100%;
}

:where(video:not([width]):not([height]), iframe:not([width]):not([height])) {
  width: 100%;
  aspect-ratio: 16/9;
}

:where([data-media-provider] video),
:where([data-media-provider] iframe) {
  aspect-ratio: inherit;
  display: inline-block;
  height: auto;
  object-fit: contain;
  touch-action: manipulation;
  border-radius: inherit;
  width: 100%;
}

[data-media-provider] iframe {
  height: 100%;
}

[data-media-player][data-view-type=audio] video,
[data-media-player][data-view-type=audio] iframe {
  display: none;
}

[data-media-player][data-fullscreen] video {
  height: 100%;
}

[data-media-provider] iframe:not([src]) {
  display: none;
}

iframe.vds-youtube[data-no-controls] {
  height: 1000%;
}

.vds-blocker {
  position: absolute;
  inset: 0;
  width: 100%;
  height: auto;
  aspect-ratio: inherit;
  pointer-events: auto;
  border-radius: inherit;
  z-index: 1;
}

[data-ended] .vds-blocker {
  background-color: black;
}

.vds-icon:focus {
  outline: none;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Google Cast
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
.vds-google-cast {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  color: #dedede;
  font-family: sans-serif;
  font-weight: 500;
}

.vds-google-cast svg {
  --size: max(18%, 40px);
  width: var(--size);
  height: var(--size);
  margin-bottom: 8px;
}

.vds-google-cast-info {
  font-size: calc(var(--media-height) / 100 * 6);
}

:where(.vds-buffering-indicator) {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 1;
}

:where(.vds-buffering-indicator) :where(.vds-buffering-icon, .vds-buffering-spinner) {
  opacity: 0;
  pointer-events: none;
  transition: var(--media-buffering-transition, opacity 200ms ease);
}

:where(.vds-buffering-indicator) :where(.vds-buffering-icon, svg.vds-buffering-spinner, .vds-buffering-spinner svg) {
  width: var(--media-buffering-size, 96px);
  height: var(--media-buffering-size, 96px);
}

:where(.vds-buffering-indicator) :where(.vds-buffering-track, circle[data-part=track]) {
  color: var(--media-buffering-track-color, #f5f5f5);
  opacity: var(--media-buffering-track-opacity, 0.25);
  stroke-width: var(--media-buffering-track-width, 8);
}

:where(.vds-buffering-indicator) :where(.vds-buffering-track-fill, circle[data-part=track-fill]) {
  color: var(--media-buffering-track-fill-color, var(--media-brand));
  opacity: var(--media-buffering-track-fill-opacity, 0.75);
  stroke-width: var(--media-buffering-track-fill-width, 9);
  stroke-dasharray: 100;
  stroke-dashoffset: var(--media-buffering-track-fill-offset, 50);
}

:where([data-buffering]) :where(.vds-buffering-icon, .vds-buffering-spinner) {
  opacity: 1;
  animation: var(--media-buffering-animation, vds-buffering-spin 1s linear infinite);
}

@keyframes vds-buffering-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion) {
  :where([data-buffering]) :where(.vds-buffering-icon, .vds-buffering-spinner) {
    animation-duration: 8s;
  }
}
/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Buttons
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-button) {
  -webkit-tap-highlight-color: transparent;
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  user-select: none;
  appearance: none;
  background: none;
  outline: none;
  border: none;
  border-radius: var(--media-button-border-radius, 8px);
  width: var(--media-button-size, 40px);
  height: var(--media-button-size, 40px);
  transition: transform 0.2s ease-out;
  contain: layout style;
  cursor: pointer;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  flex-shrink: 0;
}

.vds-button {
  border: var(--media-button-border);
  color: var(--media-button-color, var(--media-controls-color, #f5f5f5));
  padding: var(--media-button-padding, 0px);
}

:where([data-fullscreen] .vds-button) {
  width: var(--media-fullscreen-button-size, 42px);
  height: var(--media-fullscreen-button-size, 42px);
}

@media screen and (max-width: 599px) {
  :where([data-fullscreen] .vds-button) {
    width: var(--media-sm-fullscreen-button-size, 42px);
    height: var(--media-sm-fullscreen-button-size, 42px);
  }
}
:where(.vds-button .vds-icon) {
  width: var(--media-button-icon-size, 80%);
  height: var(--media-button-icon-size, 80%);
  border-radius: var(--media-button-border-radius, 8px);
}

:where(.vds-menu-button .vds-icon) {
  display: flex !important;
}

:where(.vds-button[aria-hidden=true]) {
  display: none !important;
}

@media (hover: hover) and (pointer: fine) {
  .vds-button:hover {
    background-color: var(--media-button-hover-bg, rgb(255 255 255/0.2));
  }
  .vds-button:hover {
    transform: var(--media-button-hover-transform, scale(1.05));
    transition: var(--media-button-hover-transition, transform 0.2s ease-in);
  }
  .vds-button[aria-expanded=true] {
    transform: unset;
  }
}
@media (pointer: coarse) {
  .vds-button:hover {
    border-radius: var(--media-button-touch-hover-border-radius, 100%);
    background-color: var(--media-button-touch-hover-bg, rgb(255 255 255/0.2));
  }
}
:where(.vds-button:focus) {
  outline: none;
}

:where(.vds-button[data-focus], .vds-button:focus-visible) {
  box-shadow: var(--media-focus-ring);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Live Button
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-live-button) {
  min-width: auto;
  min-height: auto;
  width: var(--media-live-button-width, 40px);
  height: var(--media-live-button-height, 40px);
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  user-select: none;
  appearance: none;
  background: none;
  outline: none;
  border: none;
}

:where(.vds-live-button-text) {
  font-family: var(--media-font-family, sans-serif);
  font-size: var(--media-live-button-font-size, 12px);
  font-weight: var(--media-live-button-font-weight, 600);
  letter-spacing: var(--media-live-button-letter-spacing, 1.5px);
  transition: color 0.3s ease;
}

.vds-live-button-text {
  background-color: var(--media-live-button-bg, #8a8a8a);
  border-radius: var(--media-live-button-border-radius, 2px);
  color: var(--media-live-button-color, #161616);
  padding: var(--media-live-button-padding, 1px 4px);
}

:where(.vds-live-button[data-focus] .vds-live-button-text) {
  box-shadow: var(--media-focus-ring);
}

:where(.vds-live-button[data-edge]) {
  cursor: unset;
}

.vds-live-button[data-edge] .vds-live-button-text {
  background-color: var(--media-live-button-edge-bg, #dc2626);
  color: var(--media-live-button-edge-color, #f5f5f5);
}

@media (pointer: fine) {
  :where(.vds-live-button:hover) {
    background-color: unset;
  }
}
/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * States
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
/* Play Button */
.vds-button:not([data-paused]) .vds-play-icon,
.vds-button[data-ended] .vds-play-icon,
.vds-button[data-paused] .vds-pause-icon,
.vds-button[data-ended] .vds-pause-icon,
.vds-button:not([data-ended]) .vds-replay-icon,
.vds-button[data-active] .vds-pip-enter-icon,
.vds-button:not([data-active]) .vds-pip-exit-icon,
.vds-button[data-active] .vds-fs-enter-icon,
.vds-button:not([data-active]) .vds-fs-exit-icon,
.vds-button:not([data-active]) .vds-cc-on-icon,
.vds-button[data-active] .vds-cc-off-icon,
.vds-button:not([data-muted]) .vds-mute-icon,
.vds-button:not([data-state=low]) .vds-volume-low-icon,
.vds-button:not([data-state=high]) .vds-volume-high-icon {
  display: none;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Captions
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-captions) {
  /* Recommended settings in the WebVTT spec (https://www.w3.org/TR/webvtt1). */
  --overlay-padding: var(--media-captions-padding, 1%);
  --cue-color: var(--media-user-text-color, var(--media-cue-color, white));
  --cue-bg-color: var(--media-user-text-bg, var(--media-cue-bg, rgba(0, 0, 0, 0.7)));
  --cue-default-font-size: var(--media-cue-font-size, calc(var(--overlay-height) / 100 * 4.5));
  --cue-font-size: calc(var(--cue-default-font-size) * var(--media-user-font-size, 1));
  --cue-line-height: var(--media-cue-line-height, calc(var(--cue-font-size) * 1.2));
  --cue-padding-x: var(--media-cue-padding-x, calc(var(--cue-font-size) * 0.6));
  --cue-padding-y: var(--media-cue-padding-x, calc(var(--cue-font-size) * 0.4));
  --cue-padding: var(--cue-padding-y) var(--cue-padding-x);
  position: absolute;
  inset: 0;
  z-index: 1;
  contain: layout style;
  margin: var(--overlay-padding);
  font-size: var(--cue-font-size);
  font-family: var(--media-user-font-family, sans-serif);
  box-sizing: border-box;
  pointer-events: none;
  user-select: none;
  word-spacing: normal;
  word-break: break-word;
}

:where([data-fullscreen][data-orientation=portrait] .vds-captions) {
  --cue-default-font-size: var(--media-cue-font-size, calc(var(--overlay-width) / 100 * 4.5));
}

:where([data-view-type=audio] .vds-captions) {
  position: relative;
  margin: 0;
}

:where(.vds-captions[aria-hidden=true]) {
  opacity: 0;
  visibility: hidden;
}

.vds-captions[data-example] {
  opacity: 1 !important;
  visibility: visible !important;
}

:where([data-view-type=video] .vds-captions [data-part=cue-display][data-example]) {
  --cue-text-align: center;
  --cue-width: 100%;
  --cue-top: 90%;
  --cue-left: 0%;
}

:where([data-view-type=audio] .vds-captions [data-part=cue-display]) {
  --cue-width: 100%;
  position: relative !important;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * VTT Cues
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-captions [data-part=cue-display]) {
  position: absolute;
  direction: ltr;
  overflow: visible;
  contain: content;
  top: var(--cue-top);
  left: var(--cue-left);
  right: var(--cue-right);
  bottom: var(--cue-bottom);
  width: var(--cue-width, auto);
  height: var(--cue-height, auto);
  box-sizing: border-box;
  transform: var(--cue-transform);
  text-align: var(--cue-text-align);
  writing-mode: var(--cue-writing-mode, unset);
  white-space: pre-line;
  unicode-bidi: plaintext;
  min-width: min-content;
  min-height: min-content;
  background-color: var(--media-user-display-bg, var(--media-cue-display-bg));
  border-radius: var(--media-cue-display-border-radius);
}

.vds-captions [data-part=cue-display] {
  padding: var(--media-cue-display-padding);
}

:where(.vds-captions[data-dir=rtl] [data-part=cue-display]) {
  direction: rtl;
}

:where(.vds-captions [data-part=cue]) {
  display: inline-block;
  contain: content;
  font-variant: var(--media-user-font-variant);
  border: var(--media-cue-border, unset);
  border-radius: var(--media-cue-border-radius, 2px);
  backdrop-filter: var(--media-cue-backdrop, blur(8px));
  line-height: var(--cue-line-height);
  box-sizing: border-box;
  box-shadow: var(--media-cue-box-shadow, var(--cue-box-shadow));
  white-space: var(--cue-white-space, pre-wrap);
  outline: var(--cue-outline);
  text-shadow: var(--media-user-text-shadow, var(--cue-text-shadow));
}

.vds-captions [data-part=cue] {
  background-color: var(--cue-bg-color);
  color: var(--cue-color);
  padding: var(--cue-padding);
}

:where(.vds-captions [data-part=cue-display][data-vertical] [data-part=cue]) {
  --cue-padding: var(--cue-padding-x) var(--cue-padding-y);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * VTT Regions
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-captions [data-part=region]) {
  --anchor-x-percent: calc(var(--region-anchor-x) / 100);
  --anchor-x: calc(var(--region-width) * var(--anchor-x-percent));
  --anchor-y-percent: calc(var(--region-anchor-y) / 100);
  --anchor-y: calc(var(--region-height) * var(--anchor-y-percent));
  --vp-anchor-x: calc(var(--region-viewport-anchor-x) * 1%);
  --vp-anchor-y-percent: calc(var(--region-viewport-anchor-y) / 100);
  --vp-anchor-y: calc(var(--overlay-height) * var(--vp-anchor-y-percent));
  position: absolute;
  display: inline-flex;
  flex-flow: column;
  justify-content: flex-start;
  width: var(--region-width);
  height: var(--region-height);
  min-height: 0px;
  max-height: var(--region-height);
  writing-mode: horizontal-tb;
  top: var(--region-top, calc(var(--vp-anchor-y) - var(--anchor-y)));
  left: var(--region-left, calc(var(--vp-anchor-x) - var(--anchor-x)));
  right: var(--region-right);
  bottom: var(--region-bottom);
  overflow: hidden;
  overflow-wrap: break-word;
  box-sizing: border-box;
}

:where(.vds-captions [data-part=region][data-scroll=up]) {
  justify-content: end;
}

:where(.vds-captions [data-part=region][data-active][data-scroll=up]) {
  transition: top 0.433s;
}

:where(.vds-captions [data-part=region] > [data-part=cue-display]) {
  position: relative;
  width: auto;
  left: var(--cue-offset);
  height: var(--cue-height, auto);
  text-align: var(--cue-text-align);
  unicode-bidi: plaintext;
  margin-top: 2px;
}

:where(.vds-captions [data-part=region] [data-part=cue]) {
  position: relative;
  border-radius: 0px;
}

:where(.vds-chapter-title) {
  --color: var(--media-chapter-title-color, rgba(255 255 255 / 0.64));
  display: inline-block;
  font-family: var(--media-font-family, sans-serif);
  font-size: var(--media-chapter-title-font-size, 16px);
  font-weight: var(--media-chapter-title-font-weight, 400);
  color: var(--color);
  flex: 1 1 0%;
  padding-inline: 6px;
  overflow: hidden;
  text-align: start;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.vds-chapter-title::before {
  content: var(--media-chapter-title-separator, "•");
  display: inline-block;
  margin-right: var(--media-chapter-title-separator-gap, 6px);
  color: var(--media-chapter-title-separator-color, var(--color));
}

.vds-chapter-title:empty::before {
  content: "";
  margin: 0;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Controls
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-controls),
:where(.vds-controls-group) {
  position: relative;
  display: inline-block;
  width: 100%;
  box-sizing: border-box;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Audio Controls
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where([data-view-type=audio] .vds-controls) {
  display: inline-block;
  max-width: 100%;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Video Controls
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where([data-view-type=video] .vds-controls) {
  display: flex;
  position: absolute;
  flex-direction: column;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  padding: var(--media-controls-padding, 0px);
  transition: var(--media-controls-out-transition, opacity 0.2s ease-out);
}

:where([data-view-type=video] .vds-controls[data-visible]) {
  opacity: 1;
  visibility: visible;
  transition: var(--media-controls-in-transition, opacity 0.2s ease-in);
}

:where(.vds-controls-spacer) {
  flex: 1 1 0%;
  pointer-events: none;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Gesture
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-gestures) {
  display: contents;
}

:where(.vds-gesture) {
  position: absolute;
  display: block;
  contain: content;
  z-index: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none !important;
}

:where(.vds-icon svg) {
  display: block;
  width: 100%;
  height: 100%;
  vertical-align: middle;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Keyboard Action
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-kb-action.hidden) {
  opacity: 0;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Keyboard Text
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-kb-text-wrapper) {
  text-align: center;
  position: absolute;
  left: 0;
  right: 0;
  top: var(--media-kb-text-top, 10%);
  z-index: 20;
  pointer-events: none;
}

:where(.vds-kb-text) {
  display: inline-block;
  font-size: var(--media-kb-text-size, 150%);
  font-family: var(--media-font-family, sans-serif);
  backdrop-filter: blur(2px);
  border-radius: var(--media-kb-border-radius, 2.5px);
  pointer-events: none;
}

.vds-kb-text {
  color: var(--media-kb-text-color, var(--default-color));
  background-color: var(--media-kb-text-bg, var(--default-bg));
  padding: var(--media-kb-text-padding, 10px 20px);
}

.light .vds-kb-text {
  --default-color: #1a1a1a;
  --default-bg: rgb(240 240 240 / 0.6);
}

.dark .vds-kb-text {
  --default-color: #f5f5f5;
  --default-bg: rgb(10 10 10 / 0.6);
}

:where(.vds-kb-text:empty) {
  display: none;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Keyboard Bezel
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-kb-bezel) {
  --size: var(--media-kb-bezel-size, 52px);
  position: absolute;
  left: 50%;
  top: 45%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: var(--size);
  height: var(--size);
  margin-left: calc(-1 * var(--size) / 2);
  margin-right: calc(-1 * var(--size) / 2);
  z-index: 20;
  backdrop-filter: blur(2px);
  background-color: var(--media-kb-bezel-bg, var(--default-bg));
  animation: var(--media-kb-bezel-animation, vds-bezel-fade 0.35s linear 1 normal forwards);
  border-radius: var(--media-kb-bezel-border-radius, calc(var(--size) / 2));
  pointer-events: none;
}

.vds-kb-bezel:not(:has(svg)) {
  display: none !important;
}

.light .vds-kb-bezel {
  --default-bg: rgb(255 255 255 / 0.6);
}

.dark .vds-kb-bezel {
  --default-bg: rgb(10 10 10 / 0.6);
}

@media (prefers-reduced-motion) {
  :where(.vds-kb-bezel) {
    animation: none;
  }
}
:where(.vds-kb-bezel:has(slot:empty)) {
  opacity: 0;
}

:where(.vds-kb-action[data-action=seek-forward] .vds-kb-bezel) {
  top: 45%;
  left: unset;
  right: 10%;
}

:where(.vds-kb-action[data-action=seek-backward] .vds-kb-bezel) {
  top: 45%;
  left: 10%;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Keyboard Icon
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-kb-icon) {
  --size: var(--media-kb-icon-size, 38px);
  width: var(--size);
  height: var(--size);
}

.vds-kb-icon {
  color: var(--media-kb-icon-color, var(--default-color));
}

.light .vds-kb-icon {
  --default-color: #1a1a1a;
}

.dark .vds-kb-icon {
  --default-color: #f5f5f5;
}

@keyframes vds-bezel-fade {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: scale(2);
  }
}
/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Theme
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-menu-items) {
  --color-inverse: var(--media-menu-color-inverse, var(--default-inverse));
  --color-gray-50: var(--media-menu-color-gray-50, var(--default-gray-50));
  --color-gray-100: var(--media-menu-color-gray-100, var(--default-gray-100));
  --color-gray-200: var(--media-menu-color-gray-200, var(--default-gray-200));
  --color-gray-300: var(--media-menu-color-gray-300, var(--default-gray-300));
  --color-gray-400: var(--media-menu-color-gray-400, var(--default-gray-400));
  --text-color: var(--media-menu-text-color, var(--default-text));
  --text-secondary-color: var(--media-menu-text-secondary-color, var(--default-text-secondary));
  --root-border: var(--media-menu-border, var(--default-root-border));
}

.light .vds-menu-items {
  --default-inverse: black;
  --default-gray-50: rgb(80 80 80 / 0.15);
  --default-gray-100: rgb(80 80 80 / 0.45);
  --default-gray-200: rgb(235 235 235 / 0.6);
  --default-gray-300: rgb(238 238 238);
  --default-gray-400: rgb(250 250 250);
  --default-text: #1a1a1a;
  --default-text-secondary: #6b6b6b;
  --default-root-border: 1px solid rgb(10 10 10 / 0.1);
}

.dark .vds-menu-items {
  --default-inverse: white;
  --default-gray-50: rgb(245 245 245 / 0.1);
  --default-gray-100: rgb(245 245 245 / 0.45);
  --default-gray-200: rgb(10 10 10 / 0.6);
  --default-gray-300: rgb(27 27 27);
  --default-gray-400: rgb(10 10 10);
  --default-text: #f5f5f5;
  --default-text-secondary: #8a8a8a;
  --default-root-border: 1px solid rgb(255 255 255 / 0.1);
}

:where(.vds-menu-items) {
  --font-family: var(--media-font-family, sans-serif);
  --font-size: var(--media-menu-font-size, 14px);
  --font-weight: var(--media-menu-font-weight, 500);
  --root-bg: var(--media-menu-bg, var(--color-gray-400));
  --root-padding: var(--media-menu-padding, 12px);
  --root-border-radius: var(--media-menu-border-radius, 4px);
  --divider: var(--media-menu-divider, 1px solid var(--color-gray-50));
  --section-bg: var(--media-menu-section-bg, var(--color-gray-300));
  --section-border: var(--media-menu-section-border);
  --section-divider: var(--media-menu-section-divider, var(--divider));
  --top-bar-bg: var(--media-menu-top-bar-bg, var(--color-gray-200));
  --top-bar-divider: var(--media-menu-divider, transparent);
  --text-hint-color: var(--media-menu-hint-color, var(--text-secondary-color));
  --chapter-divider: var(--media-chapters-divider, var(--divider));
  --chapter-active-bg: var(--media-chapters-item-active-bg, var(--color-gray-50));
  --chapter-active-border-left: var(--media-chapters-item-active-border-left);
  --chapter-progress-bg: var(--media-chapters-progress-bg, var(--color-inverse));
  --chapter-time-font-size: var(--media-chapters-time-font-size, 12px);
  --chapter-time-font-weight: var(--media-chapters-time-font-weight, 500);
  --chapter-time-gap: var(--media-chapters-time-gap, 6px);
  --chapter-duration-bg: var(--media-chapters-duration-bg);
  --item-border: var(--media-menu-item-border, 0);
  --item-bg: var(--media-menu-item-bg, transparent);
  --item-hover-bg: var(--media-menu-item-hover-bg, var(--color-gray-50));
  --item-icon-size: var(--media-menu-item-icon-size, 18px);
  --item-padding: var(--media-menu-item-padding, 10px);
  --item-min-height: var(--media-menu-item-height, 40px);
  --item-border-radius: var(--media-menu-item-border-radius, 2px);
  --scrollbar-track-bg: var(--media-menu-scrollbar-track-bg, transparent);
  --scrollbar-thumb-bg: var(--media-menu-scrollbar-thumb-bg, var(--color-gray-50));
  --webkit-scrollbar-bg: var(--color-gray-400);
  --webkit-scrollbar-track-bg: var(--media-menu-scrollbar-track-bg, var(--color-gray-50));
  --checkbox-bg: var(--media-menu-checkbox-bg, var(--color-gray-100));
  --checkbox-active-bg: var(--media-menu-checkbox-bg-active, #1ba13f);
  --checkbox-handle-bg: var(--media-menu-checkbox-handle-bg, #f5f5f5);
  --checkbox-handle-border: var(--media-menu-checkbox-handle-border);
  --radio-icon-color: var(--media-menu-radio-icon-color, var(--text-color));
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Menu
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-menu[data-root] media-menu[data-root]) {
  display: contents;
}

:where(.vds-menu) {
  font-family: var(--font-family);
  font-size: var(--font-size);
  font-weight: var(--font-weight);
}

:where(.vds-menu[data-disabled][data-root]) {
  display: none;
}

:where(.vds-menu[data-submenu]) {
  display: inline-block;
}

:where(.vds-menu-items:focus) {
  outline: none;
}

:where(.vds-menu-item:focus, .vds-radio:focus) {
  outline: none;
}

:where(.vds-menu-item:focus-visible,
.vds-menu-item[data-focus],
.vds-radio:focus-visible,
.vds-radio[data-focus]) {
  outline: none;
  box-shadow: var(--media-focus-ring);
}

:where(.vds-menu[data-open] .vds-tooltip-content) {
  display: none !important;
}

.vds-menu-items [data-hidden] {
  display: none !important;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Scroll
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
@media (prefers-reduced-motion: no-preference) {
  :where(.vds-menu-items) {
    scroll-behavior: smooth;
  }
}
:where(.vds-menu-items) {
  box-sizing: border-box;
  min-width: var(--media-menu-min-width, 280px);
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb-bg) var(--scrollbar-track-bg);
  transform: translate3d(0, 0, 0);
}

:where(.vds-menu-items)::-webkit-scrollbar {
  background-color: var(--webkit-scrollbar-bg);
  border-radius: var(--root-border-radius);
  height: 6px;
  width: 5px;
}

:where(.vds-menu-items)::-webkit-scrollbar-track {
  background-color: var(--webkit-scrollbar-track-bg);
  border-radius: 4px;
}

:where(.vds-menu-items)::-webkit-scrollbar-thumb {
  background-color: var(--scrollbar-thumb-bg);
  border-radius: 4px;
}

:where(.vds-menu-items)::-webkit-scrollbar-corner {
  background-color: var(--scrollbar-thumb-bg);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Menu Button
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-menu-button) {
  outline: none;
  box-sizing: border-box;
}

:where(.vds-menu-button .vds-rotate-icon) {
  transition: transform 0.2s ease-out;
}

:where(.vds-menu-button[aria-expanded=true] .vds-rotate-icon) {
  transform: rotate(var(--media-menu-icon-rotate-deg, 90deg));
  transition: transform 0.2s ease-in;
}

:where(.vds-menu-button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

@media (prefers-reduced-motion) {
  :where(.vds-menu-button .vds-rotate-icon) {
    transition: unset;
  }
}
/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Menu Items
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-menu-items) {
  display: flex;
  align-items: center;
  flex-direction: column;
  font-family: var(--font-family);
  font-size: var(--font-size);
  font-weight: var(--font-weight);
  transition: height 0.35s ease;
}

@media (prefers-reduced-motion) {
  :where(.vds-menu-items) {
    transition: unset;
  }
}
:where(.vds-menu-items[data-root]) {
  background-color: var(--root-bg);
  border-radius: var(--root-border-radius);
  box-shadow: var(--media-menu-box-shadow);
  backdrop-filter: blur(4px);
  height: var(--menu-height, auto);
  will-change: width, height;
  overflow-y: auto;
  overscroll-behavior: contain;
  opacity: 0;
  z-index: 9999999;
  box-sizing: border-box;
  max-height: var(--media-menu-max-height, 250px);
  filter: var(--media-menu-filter, drop-shadow(0 4px 3px rgb(0 0 0/0.07)) drop-shadow(0 2px 2px rgb(0 0 0/0.06)));
}

.vds-menu-items[data-root] {
  border: var(--root-border);
  padding: var(--root-padding);
}

:where([data-view-type=video]) :where(.vds-menu-items[data-root]) {
  max-height: var(--media-menu-video-max-height, calc(var(--player-height) * 0.7));
}

:where(.vds-menu-items[data-transition=height]) {
  --scrollbar-thumb-bg: rgba(0, 0, 0, 0);
  pointer-events: none;
  overflow: hidden;
}

.vds-menu-button[aria-disabled=true],
.vds-menu-item[aria-disabled=true],
.vds-menu-item[data-disabled] {
  display: none;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Menu Items Animation
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-menu-items[data-root]) {
  --enter-transform: translateY(0px);
  --exit-transform: translateY(12px);
}

/* Mobile Popup */
:where(.vds-menu-items[data-root]:not([data-placement])) {
  --enter-transform: translateY(-24px);
}

:where(.vds-menu-items[data-root][aria-hidden=true]) {
  animation: var(--media-menu-exit-animation, vds-menu-exit 0.2s ease-out);
}

:where(.vds-menu-items[data-root][aria-hidden=false]) {
  animation: var(--media-menu-enter-animation, vds-menu-enter 0.3s ease-out);
  animation-fill-mode: forwards;
}

/* Bottom */
:where(.vds-menu-items[data-placement~=bottom]) {
  --enter-transform: translateY(0);
  --exit-transform: translateY(-12px);
}

@keyframes vds-menu-enter {
  from {
    opacity: 0;
    transform: var(--exit-transform);
  }
  to {
    opacity: 1;
    transform: var(--enter-transform);
  }
}
@keyframes vds-menu-exit {
  from {
    opacity: 1;
    transform: var(--enter-transform);
  }
  to {
    opacity: 0;
    transform: var(--exit-transform);
  }
}
@media (prefers-reduced-motion) {
  :where(.vds-menu-items) {
    animation: none;
    opacity: 1;
  }
}
/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Menu Portal
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(media-menu-portal) {
  display: contents;
}

:where(.vds-menu-items[data-root]:not([data-placement])) {
  position: fixed;
  left: 16px;
  right: 16px;
  top: unset;
  bottom: 0;
  max-height: var(--media-sm-menu-portrait-max-height, 40vh);
  max-height: var(--media-sm-menu-portrait-max-height, 40dvh);
}

:where(.vds-menu-items[data-root]:not([data-placement])) {
  max-width: 480px;
  margin: 0 auto;
}

@media (orientation: landscape) and (pointer: coarse) {
  :where(.vds-menu-items[data-root]:not([data-placement])) {
    max-height: var(--media-sm-menu-landscape-max-height, min(70vh, 400px));
    max-height: var(--media-sm-menu-landscape-max-height, min(70dvh, 400px));
  }
}
/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Submenu
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-menu[data-submenu] .vds-menu-button) {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

:where(.vds-menu-items[data-submenu]) {
  width: 100%;
}

:where(.vds-menu[aria-hidden=true]),
:where(.vds-menu-items[data-submenu][aria-hidden=true]) {
  display: none;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Menu Item
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-menu-item, .vds-radio) {
  position: relative;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  display: flex;
  align-items: center;
  justify-content: left;
  width: 100%;
  appearance: none;
  border: 0;
  border-radius: var(--item-border-radius);
  box-sizing: border-box;
  min-height: var(--item-min-height);
  font-size: var(--font-size);
  outline: none;
}

.vds-menu-item,
.vds-radio {
  color: var(--text-color);
  background-color: var(--item-bg);
  padding: var(--item-padding);
}

.vds-menu-item:focus-visible,
.vds-menu-item[data-focus],
.vds-radio:focus-visible,
.vds-radio[data-focus] {
  cursor: pointer;
  background-color: var(--item-hover-bg);
}

@media (hover: hover) and (pointer: fine) {
  .vds-menu-item[role]:hover,
  .vds-radio:hover {
    cursor: pointer;
    background-color: var(--item-hover-bg);
  }
}
:where(.vds-menu-items[data-submenu]) {
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
}

:where(.vds-menu-item[aria-expanded=true]) {
  font-weight: bold;
  border-radius: 0;
  border-top-left-radius: var(--item-border-radius);
  border-top-right-radius: var(--item-border-radius);
}

.vds-menu-item[aria-expanded=true] {
  border-bottom: var(--top-bar-divider);
}

:where(.vds-menu-item[aria-expanded=true]) {
  position: sticky;
  top: calc(-1 * var(--root-padding));
  left: 0;
  width: 100%;
  z-index: 10;
  backdrop-filter: blur(4px);
  margin-bottom: 4px;
}

.vds-menu-item[aria-expanded=true] {
  background-color: var(--top-bar-bg);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Menu Item Parts
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-menu-item-label) {
  flex: 1 0 0%;
  text-align: start;
}

:where(.vds-menu-item .vds-icon, .vds-radio .vds-icon) {
  --size: var(--item-icon-size);
  width: var(--size);
  height: var(--size);
  margin-right: var(--media-menu-item-icon-spacing, 6px);
}

:where(.vds-menu-open-icon, .vds-menu-close-icon) {
  --size: var(--media-menu-arrow-icon-size, 18px);
  width: var(--size);
  height: var(--size);
}

:where(.vds-menu-item-hint, .vds-menu-open-icon, .vds-radio-hint) {
  color: var(--text-hint-color);
  font-size: var(--media-menu-hint-font-size, 13px);
  font-weight: var(--media-menu-hint-font-weight, 400);
}

:where(.vds-menu-items .vds-menu-open-icon) {
  margin-right: 0;
}

:where(.vds-menu-items) :where(.vds-menu-item-hint, .vds-menu-open-icon) {
  margin-left: auto;
}

:where(.vds-menu-items) :where(.vds-menu-item-hint + .vds-menu-open-icon),
:where(.vds-menu-item-hint + media-icon .vds-menu-open-icon),
:where(.vds-menu-item-hint + slot > .vds-menu-open-icon) {
  margin-left: 2px;
}

:where(.vds-menu-item[aria-hidden=true]),
:where(.vds-menu-item[aria-expanded=true] .vds-menu-open-icon) {
  display: none !important;
}

:where(.vds-menu-items) :where(.vds-menu-item[aria-disabled=true], .vds-menu-item[data-disabled]) :where(.vds-menu-open-icon) {
  opacity: 0;
}

:where(.vds-menu-close-icon),
:where(.vds-menu-item[aria-expanded=true] > .vds-icon) {
  display: none !important;
}

:where(.vds-menu-item[aria-expanded=true] .vds-menu-close-icon) {
  display: inline !important;
  margin-left: calc(-1 * var(--item-padding) / 2);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Checkbox
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-menu-checkbox) {
  --checkbox-width: var(--media-menu-checkbox-width, 40px);
  --checkbox-height: var(--media-menu-checkbox-height, 18px);
  --checkbox-top: calc((var(--checkbox-height) - var(--checkbox-diameter)) / 2);
  --checkbox-diameter: var(
    --media-menu-checkbox-handle-diameter,
    calc(var(--checkbox-height) - 2px)
  );
  --checkbox-gap: var(--media-menu-checkbox-gap, 2.5px);
  position: relative;
  display: inline-block;
  width: var(--checkbox-width);
  height: var(--checkbox-height);
  border-radius: calc(var(--checkbox-height) / 2);
  transition: 0.3s all ease-in-out;
  box-sizing: border-box;
  cursor: pointer;
  pointer-events: auto;
}

.vds-menu-checkbox {
  background-color: var(--checkbox-bg);
}

:where(.vds-menu-checkbox:focus-visible) {
  outline: none;
  box-shadow: var(--media-focus-ring);
}

.vds-menu-checkbox[aria-checked=true] {
  background-color: var(--checkbox-active-bg);
}

:where(.vds-menu-checkbox)::after {
  content: "";
  display: inline-block;
  width: var(--checkbox-diameter);
  height: var(--checkbox-diameter);
  border-radius: calc(var(--checkbox-diameter) / 2);
  position: absolute;
  top: var(--checkbox-top);
  transform: translateX(var(--checkbox-gap));
  transition: 0.3s all ease-in-out;
  border: var(--checkbox-handle-border);
  box-sizing: border-box;
}

.vds-menu-checkbox::after {
  background-color: var(--checkbox-handle-bg);
}

:where(.vds-menu-checkbox[aria-checked=true])::after {
  transform: translateX(calc(var(--checkbox-width) - var(--checkbox-diameter) - var(--checkbox-gap)));
}

@media (prefers-reduced-motion: no-preference) {
  :where(.vds-menu-checkbox[data-active])::after {
    width: calc(var(--checkbox-width) - var(--checkbox-gap) * 2);
  }
}
:where(.vds-menu-checkbox[aria-checked=true][data-active])::after {
  transform: translateX(var(--checkbox-gap));
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Slider
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-menu-items .vds-slider) {
  --media-slider-track-bg: var(--media-menu-slider-track-bg, var(--color-gray-50));
  --media-slider-track-fill-bg: var(--media-menu-slider-track-fill-bg, var(--color-inverse));
  --media-slider-height: var(--media-menu-slider-height, 32px);
  --track-focus-height: var(--track-height) !important;
}

:where(.vds-menu-items .vds-slider-thumb) {
  opacity: 1 !important;
}

:where(.vds-menu-slider-item.group) {
  flex-direction: column;
}

:where(.vds-menu-slider-title) {
  margin-top: 4px;
}

:where(.vds-menu-slider-body) {
  width: 100%;
  display: flex;
  align-items: center;
  margin-top: 6px;
}

:where(.vds-menu-slider-item .vds-icon) {
  margin: 0;
  color: var(--text-hint-color);
}

:where(.vds-menu-slider-item[data-min] .vds-icon.down,
.vds-menu-slider-item[data-max] .vds-icon.up) {
  color: var(--text-color);
  animation: 0.6s ease-in-out vds-slider-icon;
  transition: all 1.2s ease;
}

@keyframes vds-slider-icon {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.25);
  }
  100% {
    transform: scale(1);
  }
}
:where(.vds-menu-items .vds-slider-track-fill) {
  transition: opacity 0.3s ease;
}

:where(.vds-menu-items .vds-slider[data-active] .vds-slider-track-fill) {
  opacity: 0;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Radio
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-radio-group) {
  box-sizing: border-box;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.vds-radio {
  cursor: pointer;
  contain: content;
  padding-left: calc(var(--item-icon-size) + var(--item-padding));
}

.vds-radio[aria-checked=true] {
  padding-left: 0;
}

.vds-radio .vds-icon {
  display: none;
  color: var(--radio-icon-color);
}

.vds-radio[aria-checked=true] .vds-icon {
  display: inline-block;
  margin-left: 6px;
}

:where(.vds-radio-hint) {
  margin-left: auto;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Color Picker
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
.vds-color-picker {
  width: 32px;
  height: 32px;
  border: 0;
  background-color: transparent;
  outline: none;
}

.vds-color-picker::-webkit-color-swatch {
  border-radius: 2px;
}

.vds-color-picker::-moz-color-swatch {
  border-radius: 2px;
}

.vds-color-picker:focus-visible::-webkit-color-swatch {
  box-shadow: var(--media-focus-ring);
}

.vds-color-picker:focus-visible::-moz-color-swatch {
  box-shadow: var(--media-focus-ring);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Menu Section
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-menu-section) {
  width: 100%;
}

:where(.vds-menu-item + .vds-menu-section) {
  margin-top: 8px;
}

:where(.vds-menu-section + .vds-menu-section) {
  margin-top: 24px;
}

:where(.vds-menu-section:first-child) {
  margin-top: 8px;
}

:where(.vds-menu-section:last-child) {
  margin-bottom: 8px;
}

:where(.vds-menu-section-title),
:where(.vds-menu-slider-title) {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--text-secondary-color);
  font-size: var(--media-menu-section-header-font-size, 12px);
  font-weight: var(--media-menu-section-header-font-weight, 500);
  padding-inline: 2px;
}

:where(.vds-menu-section-body) {
  width: 100%;
}

:where(.vds-menu-section-title + .vds-menu-section-body) {
  margin-top: var(--media-menu-section-gap, 8px);
}

.vds-menu-section-body {
  background-color: var(--section-bg);
  border: var(--section-border);
  border-radius: var(--media-menu-section-border-radius, 2px);
}

:where(.vds-menu-section:not([data-open]) .vds-menu-item:not(:last-child)) {
  border-bottom: var(--section-divider);
}

:where(.vds-menu-section-body .vds-menu:last-child > .vds-menu-item) {
  border-bottom: unset;
}

.vds-menu-section[data-open],
.vds-menu-section[data-open] > .vds-menu-section-body {
  display: contents !important;
  background-color: transparent !important;
}

.vds-menu-section[data-open] > .vds-menu-section-title,
.vds-menu-section[data-open] > .vds-menu-section-body > :not([data-open]) {
  display: none;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Chapters Menu
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-chapters-menu-items) {
  min-width: var(--media-chapters-min-width, var(--media-menu-min-width, 220px));
}

.vds-chapters-menu-items {
  padding: var(--media-chapters-padding, 0);
}

:where(.vds-menu-items:has(.vds-chapters-radio-group[data-thumbnails])) {
  min-width: var(--media-chapters-with-thumbnails-min-width, 300px);
}

:where(.vds-chapter-radio) {
  border-radius: 0;
}

.vds-chapter-radio {
  border-bottom: var(--chapter-divider);
  padding: var(--item-padding);
}

.vds-chapter-radio[aria-checked=true] {
  padding-left: var(--item-padding);
}

:where(.vds-chapter-radio:last-child) {
  border-bottom: 0;
}

.vds-chapter-radio[aria-checked=true] {
  background-color: var(--chapter-active-bg);
  border-left: var(--chapter-active-border-left);
}

:where(.vds-chapter-radio[aria-checked=true]):after {
  content: " ";
  width: var(--progress);
  height: var(--media-chapters-progress-height, 4px);
  position: absolute;
  bottom: 0;
  left: 0;
}

.vds-chapter-radio[aria-checked=true]:after {
  border-radius: var(--media-chapters-progress-border-radius, 0);
  background-color: var(--chapter-progress-bg);
}

.vds-chapters-radio-group :where(.vds-thumbnail) {
  margin-right: var(--media-chapters-thumbnail-gap, 12px);
  flex-shrink: 0;
  min-width: var(--media-chapters-thumbnail-min-width, 100px);
  min-height: var(--media-chapters-thumbnail-min-height, 56px);
  max-width: var(--media-chapters-thumbnail-max-width, 120px);
  max-height: var(--media-chapters-thumbnail-max-height, 68px);
}

.vds-chapters-radio-group .vds-thumbnail {
  border: var(--media-chapters-thumbnail-border, 0);
}

:where(.vds-chapters-radio-group .vds-chapter-radio-label) {
  color: var(--text-secondary-color);
  font-size: var(--font-size);
  font-weight: var(--font-weight);
  white-space: nowrap;
}

:where(.vds-chapter-radio[aria-checked=true] .vds-chapter-radio-label) {
  color: var(--text-color);
}

:where(.vds-chapters-radio-group .vds-chapter-radio-start-time) {
  display: inline-block;
  letter-spacing: var(--media-chapters-start-time-letter-spacing, 0.4px);
  border-radius: var(--media-chapters-start-time-border-radius, 2px);
  font-size: var(--chapter-time-font-size);
  font-weight: var(--chapter-time-font-weight);
  margin-top: var(--chapter-time-gap);
}

.vds-chapters-radio-group .vds-chapter-radio-start-time {
  color: var(--text-secondary-color);
  background-color: var(--section-bg);
  padding: var(--media-chapters-start-time-padding, 1px 4px);
}

:where(.vds-chapters-radio-group .vds-chapter-radio-duration) {
  color: var(--text-hint-color);
  font-size: var(--chapter-time-font-size);
  font-weight: var(--chapter-time-font-weight);
  margin-top: var(--chapter-time-gap);
}

.vds-chapters-radio-group .vds-chapter-radio-duration {
  background-color: var(--chapter-duration-bg);
  border-radius: var(--media-chapters-duration-border-radius, 2px);
}

.vds-chapters-radio-group:not([data-thumbnails]) :where(.vds-thumbnail, media-thumbnail) {
  display: none;
}

:where(.vds-chapter-radio-content) {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
}

:where(.vds-chapters-radio-group:not([data-thumbnails]) .vds-chapter-radio-content) {
  width: 100%;
  flex-direction: row;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

:where(.vds-chapters-radio-group:not([data-thumbnails]) .vds-chapter-radio-start-time) {
  margin-top: 0;
  margin-left: auto;
}

:where(.vds-chapters-radio-group:not([data-thumbnails]) .vds-chapter-radio-duration) {
  margin-top: 4px;
  flex-basis: 100%;
}

.vds-menu-items[data-keyboard] .vds-chapters-radio-group:focus-within {
  padding: var(--media-chapters-focus-padding, 4px);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Poster
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-poster) {
  display: block;
  contain: content;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  opacity: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  border: 0;
  pointer-events: none;
  box-sizing: border-box;
  transition: opacity 0.2s ease-out;
  background-color: var(--media-poster-bg, black);
}

:where(.vds-poster img) {
  object-fit: inherit;
  object-position: inherit;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
  box-sizing: border-box;
}

.vds-poster :where(img) {
  border: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

:where(.vds-poster[data-hidden]) {
  display: none;
}

:where(.vds-poster[data-visible]) {
  opacity: 1;
}

.vds-poster:not(:defined),
.vds-poster img:not([src]) {
  display: none;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Sliders
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-slider) {
  --width: var(--media-slider-width, 100%);
  --height: var(--media-slider-height, 48px);
  --thumb-size: var(--media-slider-thumb-size, 15px);
  --thumb-focus-size: var(--media-slider-focused-thumb-size, calc(var(--thumb-size) * 1.1));
  --track-width: var(--media-slider-track-width, 100%);
  --track-height: var(--media-slider-track-height, 5px);
  --track-focus-width: var(--media-slider-focused-track-width, var(--track-width));
  --track-focus-height: var(--media-slider-focused-track-height, calc(var(--track-height) * 1.25));
  display: inline-flex;
  align-items: center;
  width: var(--width);
  height: var(--height);
  /** Prevent thumb flowing out of slider. */
  margin: 0 calc(var(--thumb-size) / 2);
  position: relative;
  contain: layout style;
  outline: none;
  pointer-events: auto;
  cursor: pointer;
  user-select: none;
  touch-action: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
}

:where(.vds-slider[aria-hidden=true]) {
  display: none !important;
}

:where(.vds-slider[aria-disabled=true]) {
  cursor: unset;
}

:where(.vds-slider:focus) {
  outline: none;
}

:where(.vds-slider:not([data-chapters])[data-focus], .vds-slider:not([data-chapters]):focus-visible) :where(.vds-slider-track) {
  box-shadow: var(--media-focus-ring);
}

:where(.vds-slider .vds-slider-track) {
  z-index: 0;
  position: absolute;
  width: var(--track-width);
  height: var(--track-height);
  top: 50%;
  left: 0;
  border-radius: var(--media-slider-track-border-radius, 2px);
  transform: translateY(-50%) translateZ(0);
  background-color: var(--media-slider-track-bg, rgb(255 255 255/0.3));
  contain: strict;
}

:where(.vds-slider[data-focus], .vds-slider:focus-visible) :where(.vds-slider-track) {
  outline-offset: var(--thumb-size);
}

:where(.vds-slider:not([data-chapters])[data-active] .vds-slider-track) {
  width: var(--track-focus-width);
  height: var(--track-focus-height);
}

:where(.vds-slider .vds-slider-track-fill) {
  z-index: 2; /** above track and track progress. */
  background-color: var(--media-slider-track-fill-bg, var(--media-brand));
  width: var(--slider-fill, 0%);
  will-change: width;
}

:where(.vds-slider .vds-slider-thumb) {
  position: absolute;
  top: 50%;
  left: var(--slider-fill);
  opacity: 0;
  contain: layout size style;
  width: var(--thumb-size);
  height: var(--thumb-size);
  border: var(--media-slider-thumb-border, 1px solid #cacaca);
  border-radius: var(--media-slider-thumb-border-radius, 9999px);
  background-color: var(--media-slider-thumb-bg, #fff);
  transform: translate(-50%, -50%) translateZ(0);
  transition: opacity 0.15s ease-in;
  pointer-events: none;
  will-change: left;
  z-index: 2; /** above track fill. */
}

:where(.vds-slider[data-dragging], .vds-slider[data-focus], .vds-slider:focus-visible) :where(.vds-slider-thumb) {
  box-shadow: var(--media-slider-focused-thumb-shadow, 0 0 0 4px hsla(0, 0%, 100%, 0.4));
}

:where(.vds-slider[data-active] .vds-slider-thumb) {
  opacity: 1;
  transition: var(--media-slider-thumb-transition, opacity 0.2s ease-in, box-shadow 0.2s ease);
}

:where(.vds-slider[data-dragging] .vds-slider-thumb) {
  width: var(--thumb-focus-size);
  height: var(--thumb-focus-size);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Slider Value
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-slider-value) {
  display: inline-block;
  contain: content;
  font-size: 14px;
  font-family: var(--media-font-family, sans-serif);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Slider Thumbnail
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-slider-thumbnail) {
  display: block;
  contain: content;
  box-sizing: border-box;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Slider Video
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-slider-video) {
  background-color: black;
  box-sizing: border-box;
  contain: content;
  display: inline-block;
  border: var(--media-thumbnail-border, 1px solid white);
}

:where(.vds-slider-video video) {
  display: block;
  height: auto;
  width: 156px;
}

/* Temporarily hide video while loading. */
:where(.vds-slider-video[data-loading]) {
  opacity: 0;
}

/* Hide video if it fails to load. */
:where(.vds-slider-video[data-hidden], .vds-slider-video[data-hidden] video) {
  display: none;
  width: 0px;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Previews
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-slider .vds-slider-preview) {
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: 0;
  background-color: var(--media-slider-preview-bg);
  border-radius: var(--media-slider-preview-border-radius, 2px);
  pointer-events: none;
  transition: opacity 0.2s ease-out;
  will-change: left, opacity;
  contain: layout paint style;
}

:where(.vds-slider-preview[data-visible]) {
  opacity: 1;
  transition: opacity 0.2s ease-in;
}

.vds-slider-value {
  background-color: var(--media-slider-value-bg, black);
  border-radius: var(--media-slider-value-border-radius, 2px);
  border: var(--media-slider-value-border);
  color: var(--media-slider-value-color, white);
  padding: var(--media-slider-value-padding, 1px 10px);
}

:where(.vds-slider-video:not([data-hidden]) + .vds-slider-chapter-title,
.vds-slider-thumbnail:not([data-hidden]) + .vds-slider-chapter-title) {
  margin-top: var(--media-slider-chapter-title-gap, 6px);
}

:where(.vds-slider-video:not([data-hidden]) + .vds-slider-value,
.vds-slider-thumbnail:not([data-hidden]) + .vds-slider-value,
.vds-slider-chapter-title + .vds-slider-value) {
  margin-top: var(--media-slider-value-gap, 2px);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Vertical Sliders
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-slider[aria-orientation=vertical]) {
  --width: var(--media-slider-width, 48px);
  --height: var(--media-slider-height, 100%);
  --track-width: var(--media-slider-track-width, 4px);
  --track-height: var(--media-slider-track-height, 100%);
  --track-focus-width: var(--media-slider-focused-track-width, calc(var(--track-width) * 1.25));
  --track-focus-height: var(--media-slider-focused-track-height, var(--track-height));
  /** Prevent thumb flowing out of slider. */
  margin: calc(var(--thumb-size) / 2) 0;
}

:where(.vds-slider[aria-orientation=vertical] .vds-slider-track) {
  top: unset;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) translateZ(0);
}

:where(.vds-slider[aria-orientation=vertical] .vds-slider-track-fill) {
  width: var(--track-width);
  height: var(--slider-fill);
  will-change: height;
  transform: translateX(-50%) translateZ(0);
}

:where(.vds-slider[aria-orientation=vertical] .vds-slider-progress) {
  top: unset;
  bottom: 0;
  width: var(--track-width);
  height: var(--slider-progress, 0%);
  will-change: height;
}

:where(.vds-slider[aria-orientation=vertical] .vds-slider-thumb) {
  top: unset;
  bottom: var(--slider-fill);
  left: 50%;
  will-change: bottom;
  transform: translate(-50%, 50%) translateZ(0);
}

:where(.vds-slider[aria-orientation=vertical] .vds-slider-preview) {
  will-change: bottom, opacity;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Time Slider
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where([data-live] .vds-time-slider .vds-slider-track-fill) {
  background-color: var(--media-slider-track-fill-live-bg, #dc2626);
}

:where(.vds-time-slider .vds-slider-progress) {
  z-index: 1; /** above track. */
  left: 0;
  width: var(--slider-progress, 0%);
  will-change: width;
  background-color: var(--media-slider-track-progress-bg, rgb(255 255 255/0.5));
}

:where([data-media-player]:not([data-can-play]) .vds-time-slider .vds-slider-value) {
  display: none;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Slider Steps
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-slider-steps) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

:where(.vds-slider-step) {
  width: var(--media-slider-step-width, 2.5px);
  height: calc(var(--track-height) + 1px);
  background-color: var(--media-slider-step-color, rgb(124, 124, 124));
  opacity: 0;
  transition: opacity 0.3s ease;
}

:where(.vds-slider[data-active] .vds-slider-step) {
  opacity: 1;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Slider Chapters
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-time-slider .vds-slider-chapters) {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  contain: layout style;
  border-radius: var(--media-slider-track-border-radius, 1px);
}

:where(.vds-slider[data-focus], .vds-slider:focus-visible) :where(.vds-slider-chapters) {
  box-shadow: var(--media-focus-ring);
  height: var(--track-height);
}

:where(.vds-time-slider .vds-slider-chapter) {
  margin-right: 2px;
}

:where(.vds-time-slider .vds-slider-chapter:last-child) {
  margin-right: 0;
}

:where(.vds-time-slider .vds-slider-chapter) {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  will-change: height, transform;
  contain: layout style;
  border-radius: var(--media-slider-track-border-radius, 1px);
}

:where(.vds-time-slider .vds-slider-chapter .vds-slider-track-fill) {
  width: var(--chapter-fill, 0%);
  will-change: width;
}

:where(.vds-time-slider .vds-slider-chapter .vds-slider-progress) {
  width: var(--chapter-progress, 0%);
  will-change: width;
}

@media (hover: hover) and (pointer: fine) {
  :where(.vds-time-slider:hover .vds-slider-chapters) {
    contain: strict;
  }
  :where(.vds-time-slider .vds-slider-chapter:hover:not(:only-of-type)) {
    transform: var(--media-slider-chapter-hover-transform, scaleY(2));
    transition: var(--media-slider-chapter-hover-transition, transform 0.1s cubic-bezier(0.4, 0, 1, 1));
  }
}
:where(.vds-time-slider .vds-slider-chapter-title) {
  font-family: var(--media-font-family, sans-serif);
  font-size: var(--media-slider-chapter-title-font-size, 14px);
  color: var(--media-slider-chapter-title-color, #f5f5f5);
  background-color: var(--media-slider-chapter-title-bg);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Thumbnail
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-thumbnail) {
  --min-width: var(--media-thumbnail-min-width, 140px);
  --max-width: var(--media-thumbnail-max-width, 180px);
  --aspect-ratio: var(--media-thumbnail-aspect-ratio, var(--thumbnail-aspect-ratio));
  display: block;
  width: var(--thumbnail-width);
  height: var(--thumbnail-height);
  background-color: var(--media-thumbnail-bg, black);
  contain: strict;
  overflow: hidden;
  box-sizing: border-box;
  min-width: var(--min-width);
  min-height: var(--media-thumbnail-min-height, calc(var(--min-width) / var(--aspect-ratio)));
  max-width: var(--max-width);
  max-height: var(--media-thumbnail-max-height, calc(var(--max-width) / var(--aspect-ratio)));
}

.vds-thumbnail {
  border: var(--media-thumbnail-border, 1px solid white);
}

:where(.vds-thumbnail img) {
  min-width: unset !important;
  max-width: unset !important;
  will-change: width, height, transform;
}

:where(.vds-thumbnail[data-loading] img) {
  opacity: 0;
}

:where(.vds-thumbnail[aria-hidden=true]) {
  display: none !important;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Time
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-time-group) {
  display: flex;
  align-items: center;
}

.vds-time-divider {
  margin: 0 var(--media-time-divider-gap, 2.5px);
  color: var(--media-time-divider-color, #e0e0e0);
}

:where(.vds-time) {
  display: inline-block;
  contain: content;
  font-size: var(--media-time-font-size, 15px);
  font-weight: var(--media-time-font-weight, 400);
  font-family: var(--media-font-family, sans-serif);
  border-radius: var(--media-time-border-radius, 2px);
  letter-spacing: var(--media-time-letter-spacing, 0.025em);
}

.vds-time {
  outline: 0;
  color: var(--media-time-color, var(--default-color));
  background-color: var(--media-time-bg);
  border: var(--media-time-border);
  padding: var(--media-time-padding, 2px);
}

:where(.vds-time:focus-visible) {
  box-shadow: var(--media-focus-ring);
}

.light .vds-time {
  --default-color: rgb(10 10 10);
}

.dark .vds-time {
  --default-color: #f5f5f5;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Tooltips
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-tooltip, media-tooltip) {
  display: contents;
}

:where(.vds-tooltip-content) {
  display: inline-block;
  box-sizing: border-box;
  font-family: var(--media-font-family, sans-serif);
  font-size: var(--media-tooltip-font-size, 13px);
  font-weight: var(--media-tooltip-font-weight, 500);
  opacity: 0;
  pointer-events: none;
  white-space: nowrap;
  z-index: 10;
  will-change: transform, opacity;
}

.vds-tooltip-content {
  border-radius: var(--media-tooltip-border-radius, 2px);
  background-color: var(--media-tooltip-bg-color, var(--default-bg));
  border: var(--media-tooltip-border, var(--default-border));
  color: var(--media-tooltip-color, var(--default-color));
  padding: var(--media-tooltip-padding, 2px 8px);
}

.light .vds-tooltip-content {
  --default-color: #1a1a1a;
  --default-bg: white;
  --default-border: 1px solid rgb(0 0 0 / 0.2);
}

.dark .vds-tooltip-content {
  --default-color: #f5f5f5;
  --default-bg: black;
  --default-border: 1px solid rgb(255 255 255 / 0.1);
}

:where(.vds-menu .vds-menu-button[role=button][data-pressed] .vds-tooltip-content) {
  opacity: 0;
  display: none;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Tooltip Animation
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-tooltip-content) {
  --enter-transform: translateY(0px) scale(1);
  --exit-transform: translateY(12px) scale(0.8);
}

:where(.vds-tooltip-content:not([data-visible])) {
  animation: var(--media-tooltip-exit-animation, vds-tooltip-exit 0.2s ease-out);
}

:where(.vds-tooltip-content[data-visible]) {
  animation: var(--media-tooltip-enter-animation, vds-tooltip-enter 0.2s ease-in);
  animation-fill-mode: forwards;
}

/* Bottom */
:where(.vds-tooltip-content[data-placement~=bottom]) {
  --enter-transform: translateY(0) scale(1);
  --exit-transform: translateY(-12px) scale(0.8);
}

/* Left */
:where(.vds-tooltip-content[data-placement~=left]) {
  --enter-transform: translateX(0) scale(1);
  --exit-transform: translateX(12px) scale(0.8);
}

/* Right */
:where(.vds-tooltip-content[data-placement~=right]) {
  --enter-transform: translateX(0) scale(1);
  --exit-transform: translateX(-12px) scale(0.8);
}

@keyframes vds-tooltip-enter {
  from {
    opacity: 0;
    transform: var(--exit-transform);
  }
  to {
    opacity: 1;
    transform: var(--enter-transform);
  }
}
@keyframes vds-tooltip-exit {
  from {
    opacity: 1;
    transform: var(--enter-transform);
  }
  to {
    opacity: 0;
    transform: var(--exit-transform);
  }
}
@media (prefers-reduced-motion) {
  :where(.vds-tooltip-content) {
    animation: none;
  }
  :where(.vds-tooltip-content[data-visible]) {
    opacity: 1;
  }
}
/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * States
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
/* Play Button */
[data-media-player]:not([data-paused]) .vds-play-tooltip-text,
[data-media-player][data-paused] .vds-pause-tooltip-text,
[data-media-player][data-pip] .vds-pip-enter-tooltip-text,
[data-media-player]:not([data-pip]) .vds-pip-exit-tooltip-text,
[data-media-player][data-fullscreen] .vds-fs-enter-tooltip-text,
[data-media-player]:not([data-fullscreen]) .vds-fs-exit-tooltip-text,
[data-media-player]:not([data-captions]) .vds-cc-on-tooltip-text,
[data-media-player][data-captions] .vds-cc-off-tooltip-text,
[data-media-player]:not([data-muted]) .vds-mute-tooltip-text,
[data-media-player][data-muted] .vds-unmute-tooltip-text {
  display: none;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Video Layout
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
[data-media-player] .vds-video-layout:not([data-match]) {
  display: none !important;
}

[data-media-player][data-layout=video] {
  background-color: var(--video-bg, black);
}

[data-media-player][data-layout=video]:not([data-fullscreen]) {
  border-radius: var(--video-border-radius, 6px);
  border: var(--video-border, 1px solid rgb(255 255 255/0.1));
}

:where(.vds-video-layout) {
  --media-brand: var(--video-brand, #f5f5f5);
  --media-font-family: var(--video-font-family, sans-serif);
  --media-controls-color: var(--video-controls-color, #f5f5f5);
  --media-tooltip-y-offset: 6px;
  --media-menu-y-offset: 6px;
  --media-focus-ring-color: var(--video-focus-ring-color, rgb(78 156 246));
  --media-focus-ring: var(--video-focus-ring, 0 0 0 3px var(--media-focus-ring-color));
  color: var(--video-controls-color, #f5f5f5);
  display: contents;
}

:where([data-media-player][data-focus]:not([data-playing]) .vds-video-layout .vds-controls) {
  border-radius: var(--video-border-radius, 6px);
  box-shadow: var(--media-focus-ring);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Controls
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-video-layout .vds-controls[data-visible]) {
  border-radius: var(--video-border-radius, 6px);
  background-image: linear-gradient(to top, rgb(0 0 0/0.6), 10%, transparent, 95%, rgb(0 0 0/0.3));
}

.vds-video-layout .vds-controls-group {
  align-items: center;
  display: flex;
  pointer-events: auto;
  z-index: 0;
  padding: 4px 6px;
}

.vds-video-layout .vds-controls-group:first-child {
  z-index: 50;
}

/* second last group */
.vds-video-layout .vds-controls-group:nth-last-child(2) {
  padding: 0 12px;
  z-index: 11;
  margin-bottom: -16px;
}

.vds-video-layout:not([data-sm]) .vds-controls-group:last-child {
  --media-menu-y-offset: 26px;
  --media-tooltip-y-offset: 26px;
  --media-slider-preview-offset: 26px;
  z-index: 10;
}

:where(.vds-video-layout .vds-button) {
  margin-right: 2.5px;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Title
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-video-layout[data-sm] .vds-chapter-title) {
  font-size: var(--video-sm-chapter-title-font-size, 15px);
}

:where([data-fullscreen] .vds-video-layout .vds-chapter-title) {
  font-size: var(--video-fullscreen-chapter-title-font-size, 16px);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Buttons
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-video-layout:not([data-sm]) .vds-mute-button) {
  margin-left: -2.5px;
  margin-right: -5px;
}

:where(.vds-video-layout[data-sm]) {
  --media-button-size: var(--video-sm-button-size, 36px);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Sliders
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-video-layout .vds-time-slider) {
  --media-slider-height: 45px;
  flex-grow: 0;
}

:where(.vds-video-layout .vds-slider-thumbnail) {
  --media-thumbnail-border: var(--video-slider-thumbnail-border, 1px solid #f5f5f5);
  border-radius: var(--video-slider-thumbnail-border-radius, 2px);
}

.vds-video-layout .vds-time-slider .vds-slider-value {
  background-color: var(--video-time-bg, unset);
  text-shadow: -1px -1px 0 #333333, 1px -1px 0 #333333, -1px 1px 0 #333333, 1px 1px 0 #333333;
}

:where(.vds-video-layout[data-sm] .vds-time) {
  text-shadow: unset;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Large Layout Volume Slider
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-video-layout[data-lg] .vds-volume) {
  --gap: var(--video-volume-gap, 10px);
  display: contents;
}

:where(.vds-video-layout[data-lg] .vds-volume-popup) {
  display: contents;
}

:where(.vds-video-layout[data-lg] .vds-volume-slider) {
  margin: 0;
  max-width: 0;
  transition: all 0.15s ease;
}

:where(.vds-video-layout[data-lg] .vds-volume[data-active] .vds-volume-slider),
:where(.vds-video-layout[data-lg] .vds-volume:has([data-active]) .vds-volume-slider) {
  margin-left: var(--gap);
  opacity: 1;
  visibility: visible;
  max-width: var(--video-volume-slider-max-width, 72px);
}

/* safe area. */
.vds-video-layout[data-lg] .vds-volume-slider::after {
  content: "";
  position: fixed;
  top: 0;
  left: calc(-1 * var(--gap));
  width: var(--gap);
  height: 100%;
  z-index: 1;
  pointer-events: auto;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Small Layout Volume Slider
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-video-layout[data-sm] .vds-volume) {
  --media-slider-height: var(--video-volume-height, 96px);
  --media-slider-preview-offset: calc(-200% - 6px);
  --gap: var(--video-volume-gap, 10px);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

:where(.vds-video-layout[data-sm] .vds-volume-popup) {
  display: block;
  position: absolute;
  top: calc(100% + var(--gap));
  left: 50%;
  opacity: 0;
  transform: translateX(-50%);
  transition: opacity 150ms ease-out, visibility 150ms ease-out;
  border-radius: var(--video-volume-border-radius, 8px);
  filter: var(--media-volume-filter, drop-shadow(0 1px 1px rgb(0 0 0/0.05)));
  visibility: hidden;
}

/* safe area. */
.vds-video-layout[data-sm] .vds-mute-button::after {
  content: "";
  position: fixed;
  bottom: calc(-1 * var(--gap));
  right: 0;
  width: 100%;
  height: var(--gap);
  z-index: 1;
  pointer-events: auto;
}

.vds-video-layout .vds-volume-popup {
  background-color: var(--video-volume-bg, var(--media-menu-bg, var(--default-bg)));
  border: var(--video-volume-border, var(--default-border));
}

.light .vds-video-layout .vds-volume-popup,
.vds-video-layout.light .vds-volume-popup {
  --default-bg: rgb(250 250 250);
  --default-border: 1px solid rgb(10 10 10 / 0.1);
}

.dark .vds-video-layout .vds-volume-popup,
.vds-video-layout.dark .vds-volume-popup {
  --default-bg: rgb(10 10 10);
  --default-border: 1px solid rgb(255 255 255 / 0.1);
}

:where(.vds-video-layout[data-sm] .vds-volume[data-active] .vds-volume-popup),
:where(.vds-video-layout[data-sm] .vds-volume:has([data-active]) .vds-volume-popup) {
  transition: opacity 150ms ease-in, visibility 150ms ease-in;
  opacity: 1;
  visibility: visible;
}

:where(.vds-video-layout[data-sm] .vds-volume[data-active] .vds-tooltip-content) {
  display: none !important;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Time
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-video-layout .vds-time[data-type=current]) {
  margin-right: 2px;
}

:where(.vds-video-layout .vds-time[data-type=current][remainder]) {
  margin-left: 2px;
}

.vds-video-layout .vds-time {
  --default-color: #f5f5f5 !important;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Captions
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where([data-preview] .vds-video-layout .vds-captions) {
  opacity: 0;
}

:where(.vds-video-layout .vds-captions) {
  z-index: 10;
  transition: var(--video-captions-transition, bottom 0.3s ease-in-out);
}

@media (min-width: 980px) {
  :where([data-fullscreen] .vds-video-layout .vds-captions) {
    bottom: var(--video-lg-fullscreen-captions-offset, 54px);
  }
}
:where([data-media-player][data-controls] .vds-video-layout .vds-captions) {
  bottom: var(--video-captions-offset, 78px);
}

:where([data-media-player][data-controls] .vds-video-layout[data-sm] .vds-captions) {
  bottom: var(--video-sm-captions-offset, 48px);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Chapters
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-video-layout .vds-time-slider .vds-slider-chapter-title) {
  width: 100%;
  text-align: center;
  text-shadow: -1px -1px 0 #212121, 1px -1px 0 #212121, -1px 1px 0 #212121, 1px 1px 0 #212121;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Gestures
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-video-layout .vds-gesture) {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

:where(.vds-video-layout .vds-gesture[action="seek:-10"]) {
  width: var(--video-gesture-seek-width, 20%);
  z-index: 1;
}

:where(.vds-video-layout .vds-gesture[action="seek:10"]) {
  left: unset;
  right: 0;
  width: var(--video-gesture-seek-width, 20%);
  z-index: 1;
}

@media (pointer: coarse) {
  :where(.vds-video-layout .vds-gesture[action="toggle:paused"]) {
    display: none;
  }
}
@media not (pointer: coarse) {
  :where([data-media-player] .vds-video-layout .vds-gesture[action="toggle:controls"]) {
    display: none;
  }
}
/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Live Button
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-video-layout .vds-live-button) {
  margin-left: 12px;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Time Group
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-video-layout:not([data-sm]) .vds-time-group) {
  margin-left: 10px;
}

:where(.vds-video-layout[data-sm] .vds-time) {
  font-size: var(--video-sm-time-font-size, 14px);
}

:where([data-fullscreen] .vds-video-layout .vds-time) {
  font-size: var(--video-fullscreen-time-font-size, 16px);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Load Container
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-video-layout .vds-load-container) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: none;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 99;
}

:where([data-media-player][data-load=play]:not([data-started]) .vds-video-layout[data-match] .vds-load-container) {
  display: flex;
}

:where(.vds-video-layout .vds-load-container .vds-play-button) {
  --size: var(--video-load-button-size, 56px);
  --color: var(--video-load-button-color, rgb(0 0 0 / 0.8));
  --bg-color: var(--video-load-button-bg, var(--media-brand));
  --media-button-hover-transform: 0;
  --media-button-border: var(--video-load-button-border, var(--color));
  --media-button-hover-bg: var(--video-load-button-bg, var(--media-brand));
  width: var(--size);
  height: var(--size);
  pointer-events: auto;
  margin-bottom: 2px;
  overflow: hidden;
}

.vds-video-layout .vds-load-container .vds-play-button {
  border-radius: var(--video-load-button-border-radius, 100%);
  color: var(--color);
}

.vds-video-layout .vds-load-container .vds-play-button {
  background-color: var(--bg-color);
}

:where(.vds-video-layout[data-sm] .vds-load-container .vds-play-button) {
  --size: var(--video-sm-load-button-size, 48px);
  --media-button-hover-transform: translateY(0%);
  width: var(--size);
  height: var(--size);
  transform: translateY(0%);
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Small Layout
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where(.vds-video-layout[data-sm] .vds-controls-group:nth-last-child(2)) {
  pointer-events: none;
}

:where(.vds-video-layout[data-sm] .vds-controls-group:last-child) {
  z-index: 2;
  margin-top: -2.5px;
  margin-bottom: -6px;
}

:where([data-fullscreen] .vds-video-layout[data-sm] .vds-controls-group:last-child) {
  margin-bottom: 0;
}

.vds-video-layout[data-sm] .vds-controls-group {
  padding: 2px;
}

:where(.vds-video-layout[data-sm]) :where(.vds-button,
.vds-slider:not(.vds-time-slider),
.vds-time,
.vds-time-divider,
.vds-chapter-title) {
  transition: opacity 0.15s ease;
}

:where([data-media-player]:not([data-started]) .vds-video-layout[data-sm]) :where(.vds-button .vds-slider, .vds-time-group) {
  opacity: 0;
  visibility: hidden;
}

:where(.vds-video-layout[data-sm] .vds-time-slider) {
  transition: transform 0.1s linear;
}

@media (pointer: coarse) {
  :where([data-preview] .vds-video-layout:not([data-no-scrub-gesture])) :where(.vds-button,
  .vds-slider:not(.vds-time-slider),
  .vds-time,
  .vds-chapter-title,
  .vds-time-divider,
  .vds-captions,
  .vds-live-button) {
    opacity: 0;
  }
  :where([data-preview] .vds-video-layout:not([data-no-scrub-gesture]) .vds-time-slider) {
    --track-height: var(--video-sm-slider-focus-track-height, 12px);
    transform: translateY(-6px);
    transition: transform 0.1s linear;
  }
}
:where(.vds-video-layout[data-sm] .vds-controls .vds-play-button) {
  --size: var(--video-sm-play-button-size, 45px);
  --media-button-hover-transform: translateY(25%);
  width: var(--size);
  height: var(--size);
  transform: translateY(25%);
  border-radius: 100%;
  pointer-events: auto;
  margin-bottom: 2px;
  overflow: hidden;
}

.vds-video-layout[data-sm] .vds-controls .vds-play-button {
  background-color: var(--video-sm-play-button-bg, rgba(0 0 0/0.6));
}

:where([data-media-player]:not([data-started]) .vds-video-layout[data-sm] .vds-controls-group:not(:nth-child(3))) {
  opacity: 0;
  visibility: hidden;
}

/* center big play button inside buffering indicator. */
:where(.vds-video-layout[data-sm] .vds-buffering-indicator) {
  --media-buffering-size: 64px;
  transform: translate(-2px, -4px);
}

:where(.vds-video-layout .vds-start-duration .vds-time) {
  position: absolute;
  right: 8px;
  bottom: 8px;
  margin-right: 8px;
  margin-bottom: 8px;
  z-index: 10;
}

.vds-video-layout .vds-start-duration .vds-time {
  padding: var(--video-sm-start-duration-padding, 3px 6px);
  color: var(--video-sm-start-duration-color, var(--video-controls-color));
  background-color: var(--video-sm-start-duration-bg, rgba(0 0 0/0.64));
}

:where([data-started] .vds-video-layout .vds-start-duration .vds-time) {
  display: none;
}

:where([data-media-player]:not([data-can-play]) .vds-video-layout .vds-start-duration .vds-time) {
  opacity: 0;
}

:where(.vds-video-layout[data-sm] .vds-time[data-type=current]) {
  margin-left: 8px;
}

/*
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Fullscreen
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
:where([data-fullscreen] .vds-video-layout .vds-controls-group:nth-last-child(2)) {
  margin-bottom: -16px;
}

@media (orientation: portrait) {
  :where([data-fullscreen] .vds-video-layout .vds-captions) {
    bottom: 30lvh;
    bottom: 10dvh;
  }
}
@media (orientation: landscape) {
  :where([data-fullscreen] .vds-video-layout .vds-controls-group:nth-last-child(2)) {
    margin-bottom: -12px;
  }
}
/* ****************************************
 * Variables
 * **************************************** */
.temp-block {
  height: 200px;
  width: 100%;
  background: #676767;
  border: 1px solid #ddd;
}

.box {
  width: calc(100vw - 40px);
  height: 200px;
  margin-left: 20px;
  margin-bottom: 20px;
  background: #FF4800;
}

::selection {
  background-color: black;
  color: white;
}

.loading-screen__loader {
  color: #fff;
  font-size: 16px;
  font-weight: 400;
  text-transform: uppercase;
}

[data-animate] {
  will-change: opacity, transform;
}

[data-animate=fade],
[data-animate=fadeUp],
[data-animate=fadeDown],
[data-animate=fadeLeft],
[data-animate=fadeRight],
[data-animate=scaleUp],
[data-animate=flipX],
[data-animate=special3] {
  opacity: 0;
}

[data-animate=fadeUp] {
  transform: translateY(24px);
}

[data-animate=fadeDown] {
  transform: translateY(-24px);
}

[data-animate=fadeLeft] {
  transform: translateX(32px);
}

[data-animate=fadeRight] {
  transform: translateX(-32px);
}

[data-animate=scaleUp] {
  transform: scale(0.85);
}

[data-animate=flipX] {
  transform: rotateX(90deg);
}

[data-animate=special] {
  transform: scale(0.62) translateX(-40px) translateY(80px);
  opacity: 0;
}

[data-animate=special2] {
  transform: scale(0.62) translateX(-140px) translateY(40px);
  opacity: 0;
}

[data-animate=special3] {
  transform: scale(0.62) translateX(-140px) translateY(40px);
  opacity: 0;
}

/* Add a matching rule whenever you add a new preset */
[data-animate=blur] {
  opacity: 0;
  filter: blur(8px);
}

/* ****************************************
 * Wordpress: Admin Bar
 * **************************************** */
html {
  margin-top: 0 !important;
  background-color: #fff;
  transition: background-color 450ms cubic-bezier(0.358, 0.002, 0, 1);
}
html.bg-white {
  background-color: #fff;
}
html.bg-green {
  background-color: #51DA4C;
}
html.bg-orange {
  background-color: #FF4800;
}
html.bg-blue {
  background-color: #1500FF;
}
html.bg-black {
  background-color: #000;
}

#wpadminbar {
  display: none;
  background: transparent;
}
#wpadminbar #wp-admin-bar-root-default > li {
  display: none;
}
#wpadminbar #wp-admin-bar-root-default > li#wp-admin-bar-my-account, #wpadminbar #wp-admin-bar-root-default > li#wp-admin-bar-wp-logo, #wpadminbar #wp-admin-bar-root-default > li#wp-admin-bar-edit {
  display: inline-block;
  background: #2c3338 !important;
}
#wpadminbar li#wp-admin-bar-my-account {
  background: #2c3338 !important;
}
#wpadminbar li#wp-admin-bar-search {
  display: none;
}

/* ****************************************
 * Sitewide: Universal
 * **************************************** */
* {
  box-sizing: border-box;
}
*::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  width: 100%;
  height: 100%;
  margin: 0;
  overflow-x: hidden !important;
  font-family: "FTSystem", serif;
  font-size: 16px;
  line-height: 130%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body.fixed {
  overflow: hidden;
}

img {
  max-width: 100%;
}

/* ****************************************
 * Typography
 * **************************************** */
h1, h2, h3, h4, h5, h6 {
  font-family: "FTSystem", serif;
  font-weight: 700;
}

p a,
li a {
  position: relative;
  color: #000;
  text-decoration: none;
  text-transform: uppercase;
}
p a::before,
li a::before {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 1px;
  background: #000;
  transition: all 250ms ease;
  content: "";
}
p a:hover::before,
li a:hover::before {
  width: 100%;
}

.loading-screen {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 11000;
  width: 100%;
  height: 100%;
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-transform: uppercase;
  user-select: none;
  background: #000;
}
.loading-screen__loader .dots span {
  opacity: 0;
  animation: show-hide 1.2s infinite;
  animation-fill-mode: backwards;
}
.loading-screen__loader .dots span:nth-child(1) {
  animation-delay: 0s;
}
.loading-screen__loader .dots span:nth-child(2) {
  animation-delay: 0.2s;
}
.loading-screen__loader .dots span:nth-child(3) {
  animation-delay: 0.4s;
}
@keyframes show-hide {
  0% {
    opacity: 0;
  }
  15% {
    opacity: 1;
  }
  60% {
    opacity: 1;
  }
  70% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@media (hover: none) {
  .loading-screen span {
    display: block;
  }
  .loading-screen span span {
    display: inline-block;
    transform: translateY(-2px);
  }
}
.side-padding {
  padding-left: 12px;
  padding-right: 12px;
}
@media (min-width: 46.25em) {
  .side-padding {
    padding-left: 20px;
    padding-right: 20px;
  }
}

/* ****************************************
 * Header
 * **************************************** */
/* ----------------------------------------
 * Mobile Nav
 * ---------------------------------------- */
.mobile-nav-toggle {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: fixed;
  top: 23px;
  right: 20px;
  z-index: 9600;
  width: 25px;
  height: 15px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.mobile-nav-toggle span {
  display: block;
  width: 100%;
  height: 3px;
  background: #000;
  transition: transform 350ms cubic-bezier(0.358, 0.002, 0, 1), opacity 350ms cubic-bezier(0.358, 0.002, 0, 1);
  transform-origin: center;
}
.mobile-nav-toggle.is-open span {
  background: #fff;
}
.mobile-nav-toggle.is-open span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}
.mobile-nav-toggle.is-open span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
.mobile-nav-toggle.is-open span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}
@media (min-width: 46.25em) {
  .mobile-nav-toggle {
    display: none;
  }
}

.mobile-nav {
  position: fixed;
  inset: 0;
  z-index: 9500;
  background: #000;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  padding: 20px 12px;
  padding-top: 90px;
  transform: translateX(100%);
  transition: transform 400ms cubic-bezier(0.358, 0.002, 0, 1);
}
.mobile-nav.is-open {
  transform: translateX(0);
}
@media (min-width: 46.25em) {
  .mobile-nav {
    display: none;
  }
}
.mobile-nav h1 {
  margin: 0;
  font-size: 30px;
  line-height: 100%;
  letter-spacing: -3%;
}
.mobile-nav a {
  color: #fff;
}
.mobile-nav__bottom {
  width: 100%;
}
.mobile-nav__links {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.mobile-nav__links a {
  margin-bottom: 8px;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 60px;
  line-height: 90%;
  letter-spacing: -3%;
  opacity: 0;
}
.mobile-nav__copyright {
  margin: 30px 0 0 0;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  text-transform: uppercase;
  width: 100%;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.js-mobile-nav-ani {
  opacity: 0;
}

/* ---------------------------------------- */
.site-logo {
  position: fixed;
  top: 20px;
  left: 12px;
  z-index: 10000;
  display: block;
  will-change: transform; /* promotes it to its own composite layer */
  transform: translateZ(0);
  width: 200px;
}
@media (min-width: 46.25em) {
  .site-logo {
    width: 255px;
    left: 20px;
  }
}
@media (min-width: 75em) {
  .site-logo {
    width: 390px;
  }
}
.site-logo__svg {
  display: block;
  width: 100%;
  max-width: 390px;
  height: auto;
}
.site-logo__svg path {
  fill: #000;
}
.site-logo__svg.is-white path {
  fill: #fff !important;
}
.site-logo path {
  transition: fill 450ms cubic-bezier(0.358, 0.002, 0, 1);
}

.site-nav {
  position: fixed;
  top: 20px;
  left: 0;
  width: 100%;
  z-index: 8000;
  display: none;
}
@media (min-width: 46.25em) {
  .site-nav {
    display: block;
  }
}
.site-nav a,
.site-nav p {
  font-weight: 900;
  font-size: 24px;
  text-transform: none;
  color: #000;
  line-height: 22px;
  margin: 0;
  margin-left: 0 !important;
  mix-blend-mode: difference;
  transition: color 450ms cubic-bezier(0.358, 0.002, 0, 1);
}
@media (min-width: 75em) {
  .site-nav a,
  .site-nav p {
    font-size: 32px;
    line-height: 31px;
  }
}
@media (min-width: 100em) {
  .site-nav__nav {
    transform: translateX(-5px);
  }
}
.site-nav a {
  display: inline-block;
  position: relative;
  color: #000;
  text-decoration: none;
  height: initial;
  padding: 0;
}
@media (min-width: 46.25em) {
  .site-nav a.js-copy-email {
    transform: translateY(-2px);
  }
}
.site-nav:has(.is-active) a:not(.is-active), .site-nav:has(.is-active) p:not(.is-active) {
  color: #C0C5BE;
}
.site-nav p {
  margin: 0 0 0 20px;
}
@media (min-width: 46.25em) {
  .site-nav p {
    margin-left: 60px;
  }
}
@media (min-width: 75em) {
  .site-nav p {
    margin-left: 140px;
  }
}

.js-animated-header {
  opacity: 1;
}

html.first-load .js-animated-header {
  opacity: 0;
}
html.first-load .js-animated-about {
  opacity: 0;
}
html.first-load .js-animated-gallery {
  opacity: 0;
}

.js-animated-about {
  opacity: 0;
}

.js-animated-gallery {
  opacity: 0;
}

.copyright-badge {
  display: none;
}
@media (min-width: 46.25em) {
  .copyright-badge {
    display: block;
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 8000;
    color: #C0C5BE;
    font-size: 12px;
    font-weight: 700;
  }
}

/* ****************************************
 * Site Wrapper
 * **************************************** */
.site-main {
  width: 100%;
  min-height: 100svh;
  display: grid;
  padding: 0;
}
.site-main__inner {
  transition: background-color 250ms cubic-bezier(0.358, 0.002, 0, 1);
}

.site-loader {
  position: fixed;
  top: -400px;
  left: 0;
  z-index: 7000;
  width: 100%;
  height: calc(100% + 800px);
  background: #fff;
  opacity: 0;
  display: none;
  will-change: opacity;
}
.site-loader.bg-white {
  background: #fff;
}
.site-loader.bg-green {
  background: #51DA4C;
}
.site-loader.bg-blue {
  background: #1500FF;
}
.site-loader.bg-orange {
  background: #FF4800;
}

/* ****************************************
 * Homepage
 * **************************************** */
.home-page {
  display: flex;
  padding: 0;
  padding-top: 80px;
  height: 100%;
}
@media (min-width: 46.25em) {
  .home-page {
    padding-top: 110px;
  }
}

.gallery {
  position: fixed;
  top: 80px;
  inset: 0;
  padding: 0 10px;
  background: white;
  transform-origin: bottom right;
}

.cards {
  padding: 0;
  margin-top: 0;
  position: relative;
  width: 100%;
  aspect-ratio: 1.7777777778;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.cards a::before {
  display: none;
}
@media (min-width: 46.25em) {
  .cards {
    width: 75%;
    margin-left: auto;
    transform: translate(-50%, -50%);
  }
}
@media (min-width: 75em) {
  .cards {
    width: 50%;
    margin-left: auto;
    transform: translate(-98%, -50%);
  }
}

.cards li {
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
  /* aspect-ratio: 16/9;*/
  aspect-ratio: 1.7777777778;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  transform-origin: bottom center;
}
.cards li .hp-scroll-item {
  display: block;
  width: 100%;
  height: 100%;
}

.cards li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.hp-header {
  display: block;
  position: fixed;
  top: -60px;
  left: 0;
  z-index: 6000;
  width: 100%;
  height: 140px;
  background: #fff;
}
@media (min-width: 75em) {
  .hp-header {
    height: 170px;
  }
}

/* ****************************************
 * About
 * **************************************** */
.about-page {
  flex: 1;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 20px;
}

.about-text {
  font-weight: 700;
  font-size: 30px;
  line-height: 102%;
  letter-spacing: -2%;
  margin-top: -4px;
  max-width: 795px;
}
.about-text span {
  display: inline-block;
  width: 200px;
  visibility: hidden;
}
@media (min-width: 46.25em) {
  .about-text span {
    width: 255px;
  }
}

.about-footer {
  font-size: 16px;
  font-weight: 700;
}
@media (min-width: 46.25em) {
  .about-footer {
    display: flex;
    gap: 20px;
    justify-content: space-between;
  }
}
.about-footer p {
  margin: 0;
  text-transform: uppercase;
}
.about-footer p a {
  color: #000;
  text-decoration: none;
}
.about-footer__contact {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media (min-width: 46.25em) {
  .about-footer__contact {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 80px;
  }
}
.about-footer__contact div {
  opacity: 0;
}
.about-footer__image {
  display: none;
  opacity: 0;
  position: relative;
}
@media (min-width: 46.25em) {
  .about-footer__image {
    display: block;
  }
}
.about-footer__image--mask {
  background: #fff;
}

/* ****************************************
 * Work Archive
 * **************************************** */
body.tax-colorist,
body.single-collection {
  padding-left: 0;
  padding-right: 0;
}
body.tax-colorist .work-grid-header,
body.single-collection .work-grid-header {
  display: none;
}

.work-page {
  padding-top: 150px;
  padding-bottom: 20px;
}
.work-page.split {
  padding-top: 110px;
}
@media (min-width: 46.25em) {
  .work-page {
    padding-top: 180px;
    padding-bottom: 20px;
  }
}
@media (min-width: 75em) {
  .work-page {
    padding-top: 230px;
    padding-bottom: 20px;
  }
  .work-page.split {
    padding-top: 230px;
  }
}
.work-page__inner {
  min-height: calc(100svh - 180px);
  position: relative;
}

.work-page-title {
  margin: 0;
  margin-bottom: 20px;
  margin-left: -4px;
  font-size: 60px;
  line-height: 90%;
  font-weight: 900;
  word-spacing: 100vw;
}
@media (min-width: 46.25em) {
  .work-page-title {
    word-spacing: initial;
  }
}
@media (min-width: 75em) {
  .work-page-title {
    margin: 0;
    font-size: 115px;
    line-height: 90%;
    font-weight: 900;
    position: fixed;
    bottom: 20px;
    left: 20px;
    word-spacing: 100vw;
  }
}

.work-grid-header {
  position: fixed;
  top: 80px;
  left: 12px;
  z-index: 400;
  gap: 20px;
}
@media (min-width: 46.25em) {
  .work-grid-header {
    top: 110px;
    left: 20px;
  }
}
@media (min-width: 75em) {
  .work-grid-header {
    top: 160px;
  }
}
.work-grid-header form {
  position: relative;
  display: inline-block;
  width: 100%;
  max-width: 220px;
  border-bottom: 1px solid #000;
}
.work-grid-header form input {
  display: block;
  width: 100%;
  border: none;
  padding-right: 10px;
  padding-left: 0 !important;
  background: transparent;
}
.work-grid-header form input::placeholder {
  font-weight: 700;
  text-transform: uppercase;
  font-size: 12px;
}
.work-grid-header form input:focus {
  outline: none;
}
.work-grid-header form button {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  appearance: none;
  border: none;
  background: transparent;
  padding: 0;
  margin: 0;
  cursor: pointer;
}

.work-nav {
  margin-top: 5px;
  font-size: 12px;
  transition: opacity 250ms cubic-bezier(0.358, 0.002, 0, 1);
}
.work-nav a {
  color: #C0C5BE;
  font-weight: 700;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 250ms cubic-bezier(0.358, 0.002, 0, 1);
  cursor: pointer;
}
.work-nav a.active {
  color: #000;
}

.work-grid {
  position: relative;
  z-index: 6000;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  row-gap: 20px;
}
.work-grid.white {
  background: #fff;
}
@media (min-width: 31.25em) {
  .work-grid {
    grid-template-columns: 1fr 1fr 1fr;
  }
}
@media (min-width: 46.25em) {
  .work-grid.split {
    grid-template-columns: 1fr 1fr 1fr;
    max-width: 1200px;
    margin-left: auto;
  }
}
@media (min-width: 56.25em) {
  .work-grid {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 20px;
    row-gap: 60px;
  }
}
@media (min-width: 75em) {
  .work-grid.split {
    grid-template-columns: 1fr 1fr;
    max-width: 1200px;
    margin-left: auto;
  }
}
@media (min-width: 100em) {
  .work-grid {
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }
}

/* Test new Item */
.work-grid-item {
  margin: calc(10px / 2 * -1);
  padding: calc(10px / 2);
  color: #000;
  text-decoration: none;
  opacity: 0;
  transform: translateY(80px) scale(0.62);
  transform-origin: bottom center;
}
.work-grid-item[data-color=bg-orange] .work-grid-item__image {
  background: #FF4800;
}
.work-grid-item[data-color=bg-green] .work-grid-item__image {
  background: #51DA4C;
}
.work-grid-item[data-color=bg-blue] .work-grid-item__image {
  background: #1500FF;
}
.work-grid-item[data-color=bg-white] .work-grid-item__image {
  background: #F5F2EC;
}
.work-grid-item__image {
  display: flex;
  position: relative;
  aspect-ratio: 178/115;
  margin-bottom: 6px;
  overflow: hidden;
}
.work-grid-item__image--inner,
.work-grid-item__image video {
  display: block;
  width: 100%;
  height: 100%;
  flex: 1;
  transform-origin: center center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(1.002);
  max-width: 100%;
  transition: all 0.45s cubic-bezier(0.358, 0.002, 0, 1);
  overflow: hidden;
}
.work-grid-item__image--inner img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.work-grid-item__image video {
  display: none;
  opacity: 0;
  transform: translate(-50%, -50%) scale(1.22);
}
@media (hover: hover) {
  .work-grid-item video {
    display: block;
  }
  .work-grid-item:hover .work-grid-item__image--inner {
    transform: translate(-50%, -50%) scale(0.75);
  }
  .work-grid-item:hover .work-grid-item__image--inner video {
    opacity: 1;
  }
}
.work-grid-item h3 {
  margin: 0;
  font-weight: 700;
  font-style: Bold;
  font-size: 15px;
  line-height: 100%;
  letter-spacing: 0%;
  text-transform: uppercase;
}
.work-grid-item h3 span {
  display: block;
}

/* ****************************************
 * Client List
 * **************************************** */
.client-wrapper {
  display: flex;
  align-content: flex-end;
}

.client-list-canvas {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 20px;
  z-index: 200;
  width: calc(100% - 20px);
  height: calc(100svh - 150px);
  padding: 20px;
}
@media (min-width: 46.25em) {
  .client-list-canvas {
    width: 50%;
  }
}
@media (min-width: 75em) {
  .client-list-canvas {
    width: 65%;
  }
}

.client-list {
  position: relative;
  z-index: 300;
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (min-width: 46.25em) {
  .client-list {
    margin-left: auto;
  }
}
@media (min-width: 75em) {
  .client-list {
    max-width: 700px;
  }
}
@media (hover: hover) {
  .client-list .has-children > ul {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.69s cubic-bezier(0.49, 0.07, 0.38, 0.93);
  }
  .client-list .has-children:hover > ul,
  .client-list .has-children.is-open > ul {
    max-height: 500px;
  }
}
.client-list li {
  font-size: 48px;
  line-height: 48px;
  font-weight: 700;
  text-transform: none;
  cursor: e-resize;
}
.client-list li a {
  position: relative;
  z-index: 1;
  font-size: 48px;
  line-height: 48px;
  font-weight: 900;
  letter-spacing: -2%;
  text-transform: none;
}
.client-list li a:hover {
  z-index: 2;
}
.client-list li a::before {
  display: none;
}
@media (min-width: 75em) {
  .client-list li {
    font-size: 68px;
    line-height: 68px;
    letter-spacing: -2%;
  }
  .client-list li a {
    font-size: 68px;
    line-height: 68px;
  }
}
.client-list li {
  margin-bottom: 0;
  opacity: 0;
  transform: translateY(80px) scale(0.62);
  transform-origin: bottom left;
}
.client-list li.has-children {
  cursor: s-resize;
}
.client-list li.has-children span {
  position: relative;
  display: inline-block;
  padding-right: 60px;
}
.client-list li.has-children span::before {
  position: absolute;
  bottom: 3px;
  right: 0;
  font-size: 14px;
  line-height: 14px;
  font-weight: 900;
  text-transform: uppercase;
  content: "[More]";
}
.client-list li span {
  /*
  font-size: 14px;
  font-weight: 900;
  text-transform: uppercase;
  // margin-top: -5px;
  // transform: translate(2px, -3px);
  display: none;
  */
}
.client-list ul {
  list-style: none;
  margin: 0;
  padding-left: 20px;
}
.client-list ul li {
  margin-bottom: 0;
  opacity: 1;
  transform: translateY(0) scale(1);
  transform-origin: bottom left;
}
.client-list ul a {
  color: #C0C5BE;
}

.client-preview-image,
.client-preview-video {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  max-width: 600px;
  opacity: 0;
}
.client-preview-image.is-visible,
.client-preview-video.is-visible {
  opacity: 1;
}
.client-preview-image.pos-center,
.client-preview-video.pos-center {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.client-preview-image.pos-bottom-left,
.client-preview-video.pos-bottom-left {
  top: 90%;
  left: 0;
  transform: translate(0, -100%);
}
.client-preview-image.pos-top-right,
.client-preview-video.pos-top-right {
  top: 0;
  left: 100%;
  transform: translate(-100%, 0);
}
.client-preview-image.pos-top-left,
.client-preview-video.pos-top-left {
  top: 20%;
  left: 10%;
  transform: translate(0, 0);
}
.client-preview-image.pos-bottom-right,
.client-preview-video.pos-bottom-right {
  top: 90%;
  left: 100%;
  transform: translate(-100%, -100%);
}

/* ****************************************
 * Single Project
 * **************************************** */
/*
html {
  .site-main__inner {
    background: red !important;
  }

  .frame-strip {
    background: green;
  }
}
*/
.js-mobile-stagger {
  opacity: 0;
}
@media (min-width: 46.25em) {
  .js-mobile-stagger {
    opacity: 1;
  }
}

html.bg-green body.home .mobile-nav-toggle span,
html.bg-green body.archive .mobile-nav-toggle span,
html.bg-green body.single-project .mobile-nav-toggle span,
html.bg-green body.page-template-tp-work .mobile-nav-toggle span {
  background: #000;
}
html.bg-green body.home .site-logo path,
html.bg-green body.archive .site-logo path,
html.bg-green body.single-project .site-logo path,
html.bg-green body.page-template-tp-work .site-logo path {
  fill: #000;
}
html.bg-green body.home .site-nav p,
html.bg-green body.archive .site-nav p,
html.bg-green body.single-project .site-nav p,
html.bg-green body.page-template-tp-work .site-nav p {
  color: #000;
}
html.bg-green body.home .copyright-badge,
html.bg-green body.archive .copyright-badge,
html.bg-green body.single-project .copyright-badge,
html.bg-green body.page-template-tp-work .copyright-badge {
  color: #000;
}
html.bg-green body.home .project-info a,
html.bg-green body.archive .project-info a,
html.bg-green body.single-project .project-info a,
html.bg-green body.page-template-tp-work .project-info a {
  color: #000;
}
html.bg-green body.home .site-footer p,
html.bg-green body.home .site-footer a,
html.bg-green body.archive .site-footer p,
html.bg-green body.archive .site-footer a,
html.bg-green body.single-project .site-footer p,
html.bg-green body.single-project .site-footer a,
html.bg-green body.page-template-tp-work .site-footer p,
html.bg-green body.page-template-tp-work .site-footer a {
  color: #000;
}

html.bg-orange body.home .mobile-nav-toggle span,
html.bg-orange body.archive .mobile-nav-toggle span,
html.bg-orange body.single-project .mobile-nav-toggle span,
html.bg-orange body.page-template-tp-work .mobile-nav-toggle span {
  background: #E8E6FF;
}
html.bg-orange body.home .site-logo path,
html.bg-orange body.archive .site-logo path,
html.bg-orange body.single-project .site-logo path,
html.bg-orange body.page-template-tp-work .site-logo path {
  fill: #E8E6FF;
}
html.bg-orange body.home .copyright-badge,
html.bg-orange body.archive .copyright-badge,
html.bg-orange body.single-project .copyright-badge,
html.bg-orange body.page-template-tp-work .copyright-badge {
  color: #E8E6FF;
}
html.bg-orange body.home .project-description p, html.bg-orange body.home .project-description li, html.bg-orange body.home .project-description a, html.bg-orange body.home .project-description h1,
html.bg-orange body.archive .project-description p,
html.bg-orange body.archive .project-description li,
html.bg-orange body.archive .project-description a,
html.bg-orange body.archive .project-description h1,
html.bg-orange body.single-project .project-description p,
html.bg-orange body.single-project .project-description li,
html.bg-orange body.single-project .project-description a,
html.bg-orange body.single-project .project-description h1,
html.bg-orange body.page-template-tp-work .project-description p,
html.bg-orange body.page-template-tp-work .project-description li,
html.bg-orange body.page-template-tp-work .project-description a,
html.bg-orange body.page-template-tp-work .project-description h1 {
  color: #E8E6FF;
}
html.bg-orange body.home .project-label,
html.bg-orange body.archive .project-label,
html.bg-orange body.single-project .project-label,
html.bg-orange body.page-template-tp-work .project-label {
  color: #E8E6FF;
}
html.bg-orange body.home .project-related,
html.bg-orange body.archive .project-related,
html.bg-orange body.single-project .project-related,
html.bg-orange body.page-template-tp-work .project-related {
  color: #E8E6FF;
}
html.bg-orange body.home .project-related a,
html.bg-orange body.archive .project-related a,
html.bg-orange body.single-project .project-related a,
html.bg-orange body.page-template-tp-work .project-related a {
  color: #E8E6FF;
}
html.bg-orange body.home .project-content-wrapper p,
html.bg-orange body.archive .project-content-wrapper p,
html.bg-orange body.single-project .project-content-wrapper p,
html.bg-orange body.page-template-tp-work .project-content-wrapper p {
  color: #E8E6FF;
}
html.bg-orange body.home a::before,
html.bg-orange body.archive a::before,
html.bg-orange body.single-project a::before,
html.bg-orange body.page-template-tp-work a::before {
  background: #E8E6FF;
}
html.bg-orange body.home .site-nav p,
html.bg-orange body.archive .site-nav p,
html.bg-orange body.single-project .site-nav p,
html.bg-orange body.page-template-tp-work .site-nav p {
  color: #E8E6FF;
}
html.bg-orange body.home .site-nav a,
html.bg-orange body.archive .site-nav a,
html.bg-orange body.single-project .site-nav a,
html.bg-orange body.page-template-tp-work .site-nav a {
  color: #E8E6FF;
}
html.bg-orange body.home .site-nav a::before,
html.bg-orange body.archive .site-nav a::before,
html.bg-orange body.single-project .site-nav a::before,
html.bg-orange body.page-template-tp-work .site-nav a::before {
  background: #E8E6FF;
}
html.bg-orange body.home .site-footer p,
html.bg-orange body.home .site-footer a,
html.bg-orange body.archive .site-footer p,
html.bg-orange body.archive .site-footer a,
html.bg-orange body.single-project .site-footer p,
html.bg-orange body.single-project .site-footer a,
html.bg-orange body.page-template-tp-work .site-footer p,
html.bg-orange body.page-template-tp-work .site-footer a {
  color: #E8E6FF;
}

html.bg-blue body.home .mobile-nav-toggle span,
html.bg-blue body.archive .mobile-nav-toggle span,
html.bg-blue body.single-project .mobile-nav-toggle span,
html.bg-blue body.page-template-tp-work .mobile-nav-toggle span {
  background: #E8E6FF;
}
html.bg-blue body.home .site-logo path,
html.bg-blue body.archive .site-logo path,
html.bg-blue body.single-project .site-logo path,
html.bg-blue body.page-template-tp-work .site-logo path {
  fill: #E8E6FF;
}
html.bg-blue body.home .copyright-badge,
html.bg-blue body.archive .copyright-badge,
html.bg-blue body.single-project .copyright-badge,
html.bg-blue body.page-template-tp-work .copyright-badge {
  color: #E8E6FF;
}
html.bg-blue body.home .site-nav p,
html.bg-blue body.archive .site-nav p,
html.bg-blue body.single-project .site-nav p,
html.bg-blue body.page-template-tp-work .site-nav p {
  color: #E8E6FF;
}
html.bg-blue body.home .site-nav a,
html.bg-blue body.archive .site-nav a,
html.bg-blue body.single-project .site-nav a,
html.bg-blue body.page-template-tp-work .site-nav a {
  color: #E8E6FF;
}
html.bg-blue body.home .site-nav a::before,
html.bg-blue body.archive .site-nav a::before,
html.bg-blue body.single-project .site-nav a::before,
html.bg-blue body.page-template-tp-work .site-nav a::before {
  background: #E8E6FF;
}
html.bg-blue body.home a::before,
html.bg-blue body.archive a::before,
html.bg-blue body.single-project a::before,
html.bg-blue body.page-template-tp-work a::before {
  background: #E8E6FF;
}
html.bg-blue body.home .project-description p, html.bg-blue body.home .project-description li, html.bg-blue body.home .project-description a, html.bg-blue body.home .project-description h1,
html.bg-blue body.archive .project-description p,
html.bg-blue body.archive .project-description li,
html.bg-blue body.archive .project-description a,
html.bg-blue body.archive .project-description h1,
html.bg-blue body.single-project .project-description p,
html.bg-blue body.single-project .project-description li,
html.bg-blue body.single-project .project-description a,
html.bg-blue body.single-project .project-description h1,
html.bg-blue body.page-template-tp-work .project-description p,
html.bg-blue body.page-template-tp-work .project-description li,
html.bg-blue body.page-template-tp-work .project-description a,
html.bg-blue body.page-template-tp-work .project-description h1 {
  color: #E8E6FF;
}
html.bg-blue body.home .project-label,
html.bg-blue body.archive .project-label,
html.bg-blue body.single-project .project-label,
html.bg-blue body.page-template-tp-work .project-label {
  color: #E8E6FF;
}
html.bg-blue body.home .project-related,
html.bg-blue body.archive .project-related,
html.bg-blue body.single-project .project-related,
html.bg-blue body.page-template-tp-work .project-related {
  color: #E8E6FF;
}
html.bg-blue body.home .project-related a,
html.bg-blue body.archive .project-related a,
html.bg-blue body.single-project .project-related a,
html.bg-blue body.page-template-tp-work .project-related a {
  color: #E8E6FF;
}
html.bg-blue body.home .project-content-wrapper p,
html.bg-blue body.archive .project-content-wrapper p,
html.bg-blue body.single-project .project-content-wrapper p,
html.bg-blue body.page-template-tp-work .project-content-wrapper p {
  color: #E8E6FF;
}
html.bg-blue body.home .site-footer p,
html.bg-blue body.home .site-footer a,
html.bg-blue body.archive .site-footer p,
html.bg-blue body.archive .site-footer a,
html.bg-blue body.single-project .site-footer p,
html.bg-blue body.single-project .site-footer a,
html.bg-blue body.page-template-tp-work .site-footer p,
html.bg-blue body.page-template-tp-work .site-footer a {
  color: #E8E6FF;
}

html.bg-black body.single-collection .mobile-nav-toggle span {
  background: #fff;
}
html.bg-black body.single-collection .work-grid-item h3 {
  color: #fff;
}
html.bg-black body.single-collection .work-page-title {
  color: #fff;
}
html.bg-black body.single-collection .site-logo path {
  fill: #fff;
}
html.bg-black body.single-collection .copyright-badge {
  color: #fff;
}
html.bg-black body.single-collection .site-nav p {
  color: #fff;
}
html.bg-black body.single-collection .site-nav a {
  color: #fff;
}
html.bg-black body.single-collection .site-nav a::before {
  background: #fff;
}
html.bg-black body.single-collection a::before {
  background: #fff;
}
html.bg-black body.single-collection .site-footer p,
html.bg-black body.single-collection .site-footer a {
  color: #fff;
}

.single-project-page {
  position: relative;
  width: 100vw;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  padding-top: 80px;
}
@media (min-width: 46.25em) {
  .single-project-page {
    padding-top: 110px;
  }
}
@media (min-width: 75em) {
  .single-project-page {
    padding-top: 150px;
  }
}

.project-video {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 100%;
}
@media (min-width: 37.5em) {
  .project-video {
    display: block;
    position: static;
    transform: translate(0);
    opacity: 0;
  }
}

.project-header {
  position: relative;
  aspect-ratio: 39/37;
  background: #000;
  transform: translateX(-10px);
  width: calc(100% + 20px);
  will-change: transform opacity;
  transform-origin: bottom center;
}
@media (min-width: 37.5em) {
  .project-header {
    aspect-ratio: 16/9;
    transform: translateX(0);
    width: 100%;
  }
}
.project-header__mobile-play {
  position: relative;
  z-index: 500;
  display: block;
  width: 100%;
  height: 100%;
  background: #000;
}
.project-header__mobile-play--inner {
  position: relative;
  height: 100%;
  opacity: 0;
}
@media (min-width: 37.5em) {
  .project-header__mobile-play {
    display: none;
  }
}
.project-header__mobile-play.is-loaded span.watch {
  opacity: 1;
}
.project-header__mobile-play.is-loaded span.loading {
  opacity: 0;
}
.project-header__mobile-play span {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 10;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 14px;
  font-weight: 400;
  text-transform: uppercase;
  opacity: 0;
}
.project-header__mobile-play span.loading {
  opacity: 1;
}
.project-header__mobile-play {
  /*&::before {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    c
    content: 'WATCH';
  }

  &.is-loading {
    &::before {
      content: 'LOADING...';
    }
  }*/
}
.project-header__mobile-play img {
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.project-description {
  padding: 10px 0 20px 0;
}
@media (min-width: 37.5em) {
  .project-description {
    padding: 20px 0;
  }
}
.project-description {
  /*
    display: flex;

    padding: 20px $paddingSideSm;

    @include mq($from: mdBreak) {
      padding: 20px $paddingSideMd;
      justify-content: space-between;
    }
  */
}
@media (min-width: 75em) {
  .project-description__label span {
    display: none;
  }
}
.project-description__info {
  padding-right: 20px;
}
@media (min-width: 46.25em) {
  .project-description__info .col-lg-6 {
    opacity: 0;
  }
}
.project-description__info ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.project-description__info h1,
.project-description__info li {
  margin: 0;
  font-weight: 700;
  font-size: 24px;
  line-height: 100%;
  letter-spacing: -3%;
  text-transform: uppercase;
}
.project-description__info h1 span,
.project-description__info li span {
  display: inline-block;
}
@media (min-width: 46.25em) {
  .project-description__info h1 span.block-md,
  .project-description__info li span.block-md {
    display: block;
  }
}

.project-label {
  font-weight: 700;
  font-size: 11px;
  line-height: 100%;
  letter-spacing: 0%;
  text-transform: uppercase;
}
@media (min-width: 75em) {
  .project-label {
    font-size: 16px;
  }
}

.project-content-wrapper {
  padding-top: 40px;
}
@media (min-width: 75em) {
  .project-content-wrapper {
    padding-top: 200px;
  }
}

.project-content-row {
  padding: 5px 0;
}
@media (min-width: 46.25em) {
  .project-content-row {
    padding: 10px 0;
  }
}
.project-content-row .project-gallery-image {
  padding-top: 5px;
  padding-bottom: 5px;
  aspect-ratio: 16/9;
}
@media (min-width: 46.25em) {
  .project-content-row .project-gallery-image {
    padding-top: 0;
    padding-bottom: 0;
  }
}
.project-content-row .project-gallery-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.project-content-text {
  transform-origin: bottom center;
}
.project-content-text p {
  margin: 10px 0;
  font-weight: 700;
  font-size: 24px;
  line-height: 110%;
  letter-spacing: -2%;
}
@media (min-width: 46.25em) {
  .project-content-text p {
    margin: 0;
  }
}
@media (min-width: 100em) {
  .project-content-text p {
    font-size: 30px;
    line-height: 110%;
  }
}

.project-content-image img {
  display: block;
  width: 100%;
  height: auto;
}
@media (min-width: 46.25em) {
  .project-content-image.single {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
  }
  .project-content-image.single img {
    grid-column: span 2;
  }
}
@media (min-width: 46.25em) {
  .project-content-image.right img {
    grid-column: 2/span 2;
  }
}

.project-gallery {
  display: grid;
  gap: 10px;
}
@media (min-width: 46.25em) {
  .project-gallery {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
  }
}

.project-related {
  padding-top: 130px;
  padding-bottom: 20px;
}
@media (min-width: 75em) {
  .project-related {
    padding-top: 150px;
    padding-bottom: 25px;
  }
}
.project-related h3 {
  margin: 0;
  font-weight: 900;
  font-size: 48px;
  line-height: 92%;
  letter-spacing: -0.03em;
}
@media (min-width: 46.25em) {
  .project-related h3 {
    font-size: 60px;
  }
}
@media (min-width: 75em) {
  .project-related h3 {
    font-size: 78px;
  }
}
.project-related h3 a {
  display: inline-block;
  color: #000;
  text-decoration: none;
  transform: scale(1);
  transition: transform 250ms ease;
  transform-origin: top left;
}
@media (min-width: 46.25em) {
  .project-related h3 a:hover {
    transform: scale(1.02);
  }
}
.project-related__card {
  opacity: 0;
}

.video-controls {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 500;
  padding: 15px 20px 15px 20px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 300ms ease;
}
@media (min-width: 37.5em) {
  .video-controls {
    display: block;
  }
}
.video-controls__buttons {
  margin-top: 15px;
  display: flex;
  justify-content: space-between;
}
.video-controls button {
  appearance: none;
  background-color: transparent;
  border: none;
  margin: 0;
  width: 50px;
  height: 20px;
}
.video-controls button.mute-video {
  background-image: url(../images/icon-mute.svg);
  background-position: center left;
  background-size: contain;
  background-repeat: no-repeat;
}
.video-controls button.mute-video.muted {
  background-image: url(../images/icon-sound.svg);
}
.video-controls button.play-video {
  background-image: url(../images/icon-pause.svg);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
}
.video-controls button.play-video.paused {
  background-image: url(../images/icon-play.svg);
}
.video-controls button.fullscreen-video {
  background-image: url(../images/icon-fullscreen.svg);
  background-position: center right;
  background-size: contain;
  background-repeat: no-repeat;
}

#scrubBar {
  position: relative;
  width: 100%;
  height: 4px;
  background: rgba(255, 255, 255, 0.2);
  cursor: pointer;
  border-radius: 100px;
}

#scrubFill {
  height: 100%;
  width: 0%;
  background: white;
  pointer-events: none;
  border-radius: 100px;
}

.project-meta {
  display: flex;
  gap: 20px;
  padding: 0 20px 20px 20px;
}
.project-meta__left, .project-meta__right {
  width: 50%;
}
@media (min-width: 46.25em) {
  .project-meta {
    padding: 20px;
    justify-content: space-between;
  }
  .project-meta__left {
    width: inherit;
  }
  .project-meta__right {
    width: inherit;
  }
}
@media (min-width: 75em) {
  .project-meta {
    padding: 20px;
  }
  .project-meta__left {
    width: 80%;
    display: flex;
    gap: 20px;
  }
  .project-meta__left > div {
    width: 50%;
  }
}
.project-meta h1,
.project-meta h2,
.project-meta li {
  margin: 0;
  font-size: 14px;
  line-height: 22px;
  font-weight: 400;
  text-transform: uppercase;
}
@media (min-width: 46.25em) {
  .project-meta h1,
  .project-meta h2,
  .project-meta li {
    font-size: 16px;
    line-height: 22px;
  }
}
.project-meta h1 {
  margin-bottom: 10px;
}
.project-meta ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.project-meta-info {
  opacity: 0;
  transform-origin: bottom center;
}

.embed-container {
  position: relative;
  padding-bottom: 56.25%;
  overflow: hidden;
  width: 100%;
  max-width: 100%;
  height: auto;
  background: #000;
  opacity: 0;
}
@media (min-width: 37.5em) {
  .embed-container {
    opacity: 1;
  }
}
.embed-container iframe,
.embed-container object,
.embed-container embed, .embed-container__image, .embed-container__play-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.embed-container__image {
  z-index: 200;
  transition: opacity 250ms ease;
}
.embed-container__play-overlay {
  z-index: 400;
}

.project-content {
  margin-top: 40px;
  margin-bottom: 10px;
}
@media (min-width: 46.25em) {
  .project-content {
    margin-top: 80px;
  }
}
@media (min-width: 75em) {
  .project-content {
    margin-top: 120px;
    margin-bottom: 10px;
  }
}

.project-section {
  padding: 10px 0 10px 0;
}
@media (min-width: 46.25em) {
  .project-section {
    padding: 10px 0;
  }
}
.project-section:first-child p {
  margin-top: 0 !important;
}
.project-section img {
  max-width: 100%;
  display: block;
}
.project-section p {
  margin-top: 0;
  font-weight: 900;
  font-size: 24px;
  line-height: 90%;
  letter-spacing: -2%;
}
@media (min-width: 46.25em) {
  .project-section p {
    margin-top: 20px;
  }
}
@media (min-width: 75em) {
  .project-section p {
    font-size: 30px;
    line-height: 95%;
  }
}
.project-section.split.flipped {
  display: flex;
  flex-direction: column-reverse;
}
.project-section.split.flipped .image-wrapper {
  margin-bottom: 20px;
}
@media (min-width: 46.25em) {
  .project-section.split {
    display: flex;
    gap: 40px;
    flex-direction: row-reverse;
  }
  .project-section.split.flipped {
    flex-direction: row;
  }
  .project-section.split .image-wrapper {
    width: 50%;
  }
  .project-section.split .image-wrapper img {
    display: block;
    width: 100%;
    height: auto;
  }
  .project-section.split .content-wrapper {
    width: 50%;
  }
}
@media (min-width: 75em) {
  .project-section.split .content-wrapper {
    margin-left: 10%;
  }
  .project-section.split .content-wrapper p {
    max-width: 530px;
  }
  .project-section.split.flipped {
    flex-direction: row;
  }
  .project-section.split.flipped .content-wrapper {
    margin-left: 0 !important;
    margin-right: 20px !important;
  }
}
.project-section.full img {
  display: block;
  width: 100%;
  height: auto;
}
@media (min-width: 46.25em) {
  .project-section.full .two-third-left {
    display: grid;
    gap: 20px;
    grid-template-columns: 1fr 1fr 1fr;
  }
  .project-section.full .two-third-left img {
    grid-column: span 2;
  }
}
@media (min-width: 46.25em) {
  .project-section.full .two-third-right {
    display: grid;
    gap: 20px;
    grid-template-columns: 1fr 1fr 1fr;
  }
  .project-section.full .two-third-right img {
    grid-column: 2/span 2;
  }
}
.project-section.gallery .image-wrapper {
  display: grid;
  gap: 20px;
}
@media (min-width: 46.25em) {
  .project-section.gallery .image-wrapper {
    display: grid;
    gap: 20px;
    grid-template-columns: 1fr 1fr 1fr;
  }
  .project-section.gallery .image-wrapper.double img {
    grid-column: span 2;
  }
}
.project-section.spacer {
  min-height: 160px;
  mix-blend-mode: multiply;
}
.project-section.spacer img {
  display: block;
  max-height: 160px;
  margin-left: auto;
}
@media (min-width: 46.25em) {
  .project-section.spacer {
    min-height: 100px;
    max-height: 120px;
  }
  .project-section.spacer img {
    display: block;
    margin: 0 auto;
    transform: translateY(-50px);
  }
}
@media (min-width: 75em) {
  .project-section.spacer {
    min-height: 230px;
    max-height: 230px;
  }
  .project-section.spacer img {
    display: block;
    max-height: 230px;
  }
}

.site-footer {
  position: relative;
  z-index: 1000;
  display: flex;
  justify-content: space-between;
  margin-top: 30px;
  font-weight: 700;
  font-size: 14px;
  line-height: 100%;
  text-transform: uppercase;
  color: #C0C5BE;
}
.site-footer p {
  margin: 0;
  font-size: 11px;
}
@media (min-width: 75em) {
  .site-footer p {
    font-size: 16px;
  }
}
.site-footer a {
  color: #C0C5BE;
  transition: all 250ms ease;
}
.site-footer a::before {
  display: none;
  background: #C0C5BE;
}
.site-footer a:hover {
  color: #000;
}
@media (min-width: 75em) {
  .site-footer {
    margin-top: 40px;
  }
}

/* ****************************************
 * Archive Page
 * **************************************** */
body.page-template-tp-archive .site-logo,
body.page-template-tp-archive .mobile-nav-toggle {
  display: none;
}
body.page-template-tp-archive .site-nav {
  display: none;
}
body.page-template-tp-archive .site-main__inner {
  background: #fff;
}
body.page-template-tp-archive li, body.page-template-tp-archive p {
  font-family: "EB Garamond", serif;
  font-size: 18px;
  line-height: 120%;
}
body.page-template-tp-archive a {
  color: #000;
  text-transform: none;
  text-decoration: underline;
}
body.page-template-tp-archive a:hover {
  color: #1500FF;
}
body.page-template-tp-archive a::before {
  display: none;
}

.archive-page {
  padding: 0 10px;
  margin: 0 auto;
}

.archive-header {
  padding: 30px 0 20px 0;
}
@media (min-width: 46.25em) {
  .archive-header {
    padding: 60px 0 80px 0;
  }
}
.archive-header {
  width: 100%;
  max-width: 500px;
  margin: 0 auto;
  text-align: center;
}
.archive-header img {
  display: block;
  width: 100%;
  max-width: 250px;
  margin: 0 auto;
}
.archive-header span {
  display: inline-block;
  font-family: "FTSystem", serif;
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  transform: translateY(-5px);
}

.archive-team {
  margin: 0;
  font-size: 14px !important;
  line-height: 110%;
}

.archive-rating {
  margin: 25px 0;
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: 400px;
}
.archive-rating__star {
  flex: 1;
}
.archive-rating__star svg {
  max-width: 100%;
}
.archive-rating span {
  display: inline-block;
  width: 135px;
  color: #1500FF;
  font-size: 12px;
  line-height: 12px;
  font-weight: 700;
  font-style: italic;
}

.archive-featured-image {
  position: relative;
  margin: 40px 0;
  width: 150px;
  height: 150px;
  cursor: pointer;
}
.archive-featured-image svg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.archive-list {
  margin: 0;
  padding: 0;
}
.archive-list li {
  display: inline-block;
  text-transform: uppercase;
}
.archive-list li a {
  text-transform: uppercase;
  text-decoration: underline;
}

.archive-content p {
  margin-top: 0;
}

p.archive-client-list {
  margin-top: 40px;
  font-size: 14px !important;
  line-height: 110% !important;
}

.archive-footer {
  margin: 40px 0;
}
.archive-footer.sm-margin {
  margin: 20px 0 30px 0;
}
.archive-footer p {
  margin: 0 0 5px 0;
  font-size: 14px !important;
  line-height: 110% !important;
}

/* People Template */
.popup-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  height: 100svh;
  z-index: 9500;
  background: rgba(0, 0, 0, 0.8);
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.popup-overlay--archive {
  background: transparent;
}
.popup-overlay--archive .popup-content {
  background: transparent;
}
.popup-overlay--archive .popup-content .video-clamp {
  background: #000;
  max-width: 1240px;
}
.popup-overlay.visible {
  display: flex !important;
}

.popup-content {
  position: relative;
  width: 100%;
  position: relative;
  width: 100vw;
  height: 100vh;
  height: 100svh;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  background: #000;
  padding: 12px;
}
@media (min-width: 46.25em) {
  .popup-content {
    padding: 10px 60px;
  }
}
@media (min-width: 75em) {
  .popup-content {
    padding: 30px 100px;
  }
}
@media (min-width: 100em) {
  .popup-content {
    padding: 40px 30px;
  }
}

.video-clamp {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
}

.video-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
}

.video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.close-popup {
  appearance: none;
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 1000;
  display: block;
  width: 25px;
  height: 25px;
  border-radius: 100px;
  border: none;
  transition: all 250ms ease;
  background: #000;
}
.close-popup::before, .close-popup::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 60%;
  height: 2px;
  background: #fff;
  content: "";
  transition: all 250ms ease;
}
.close-popup::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.close-popup::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.close-popup:hover {
  background: #fff;
}
.close-popup:hover::before, .close-popup:hover::after {
  background: #000;
}
.close-popup--text {
  right: initial;
  top: initial;
  position: relative;
  color: #000 !important;
  font-weight: 700;
  font-size: 12px;
  transform: translateY(-22px);
  text-transform: uppercase !important;
  text-decoration: none !important;
  background: transparent;
}
.close-popup--text::before, .close-popup--text::after {
  display: none;
}
.close-popup--text:hover {
  background: transparent;
}

/* ****************************************
 * Homepage
 * **************************************** */
/*
body.home {
  position: relative;
  overflow: hidden;

  .site-main {
    padding: 0;
    height: 100svh;
    min-height: unset;
    overflow: hidden;

    &__inner {
      background: $black;
    }
  }
}

*/
/*

body.page-template-tp-homepage-v2 {
  .site-logo {
    svg {
      path {
        fill: $black;
      }
    }
    @include mq($from: mdBreak) {
      // display: none;
    }
  }

  .frame-strip {
    display: none;
  }
}
  */
.homepage-v2 {
  display: flex;
  padding: 0;
  padding-top: 80px;
  height: 100%;
}
@media (min-width: 46.25em) {
  .homepage-v2 {
    padding-top: 110px;
  }
}

.hp-scroll-item {
  display: block;
  position: relative;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  transform-origin: top center;
  will-change: transform;
}
@media (min-width: 46.25em) {
  .hp-scroll-item {
    width: 45%;
    margin-right: 0;
  }
}
.hp-scroll-item {
  /*
  &[data-color="bg-orange"] {
    .hp-scroll-item__inner {
      background: $orange;
    }
  }

  &[data-color="bg-blue"] {
    .hp-scroll-item__inner {
    background: $blue;
    }
  }

  &[data-color="bg-green"] {
    .hp-scroll-item__inner {
    background: $green;
    }
  }

  &[data-color="bg-white"] {
    .hp-scroll-item__inner {
    background: $off_white;
    }
  }
    */
}
.hp-scroll-item__inner {
  position: relative;
  aspect-ratio: 1.7777777778;
  overflow: hidden;
}
.hp-scroll-item__inner--image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform-origin: center center;
  transform: scale(1);
  transition: transform 250ms ease;
}
.hp-scroll-item__inner img,
.hp-scroll-item__inner video {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hp-scroll-item__inner video {
  opacity: 0;
  transition: opacity 300ms ease;
}
.hp-scroll-item__inner video.is-playing {
  opacity: 1;
}
.hp-scroll-item__text {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  transform: translateY(-50%);
  text-align: center;
  padding: 0 20px;
}
.hp-scroll-item__text span {
  margin: 0;
  font-size: 16px;
  display: block;
  text-transform: uppercase;
  color: #fff;
  font-weight: 700;
}
.hp-scroll-item__text h3 {
  margin: 2px 0 8px 0;
  color: #fff;
  font-size: 32px;
  line-height: 34px;
}
@media (min-width: 46.25em) {
  .hp-scroll-item__text h3 {
    font-size: 49px;
    line-height: 51px;
  }
}
@media (hover: hover) and (min-width: 46.25em) {
  .hp-scroll-item:hover .hp-scroll-item__inner--image {
    transform: scale(0.9);
  }
}

.archive-cta {
  position: relative;
  z-index: 400;
  margin: 0;
  padding: 15px 10px;
  font-weight: 700;
  background: #51DA4C;
}
.archive-cta a {
  text-transform: none;
  text-decoration: underline;
}

.hp-scroll-card {
  position: relative;
  z-index: 400;
  padding: 20px;
  padding-bottom: 0;
  background: #E8E6FF;
}
.hp-scroll-card h3 {
  margin: 0;
  font-size: 30px;
  font-weight: 700;
  line-height: 100%;
  letter-spacing: -3%;
}
.hp-scroll-card a {
  position: absolute;
  bottom: 20px;
  left: 20px;
  font-weight: 700;
  font-size: 18.61px;
  line-height: 100%;
  letter-spacing: 0%;
  text-transform: uppercase;
  color: #000;
  text-decoration: none;
}
.hp-scroll-card img {
  transform: translateY(-20px);
  display: block;
  width: 60%;
  margin-left: auto;
  mix-blend-mode: multiply;
}

.hp-logo {
  position: fixed;
  top: 55%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: calc(100% - 40px);
  height: auto;
}
.hp-logo path {
  fill: #000;
}

.hp-about {
  position: fixed;
  bottom: 20px;
  left: 20px;
  z-index: 6000;
  display: none;
}
@media (min-width: 46.25em) {
  .hp-about {
    display: block;
    width: 40%;
    max-width: 600px;
  }
}
.hp-about h1 {
  font-size: 28px;
  line-height: 97%;
  letter-spacing: -3.5%;
}
.hp-about:hover {
  z-index: 9000;
}
.hp-about::before {
  position: relative;
  left: -20px;
  display: block;
  width: 188px;
  height: 140px;
  background-image: url(../images/color-block.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  content: "";
}

.hp-scroll-indicator {
  position: fixed;
  top: 50%;
  left: 24%;
  z-index: 1000;
  transform: translate(-50%, -50%);
  width: 100px;
  height: 125px;
  mix-blend-mode: multiply;
  background-image: url(../images/scroll-icon.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  display: none;
}
@media (min-width: 46.25em) {
  .hp-scroll-indicator {
    display: block;
  }
}
@media (min-width: 75em) {
  .hp-scroll-indicator {
    display: block;
    top: 50%;
    left: 44%;
    width: 131px;
    height: 145px;
  }
}

/*# sourceMappingURL=main.css.map*/