:root{
    --swiper-theme-color: #000;
}

.swiper {
    height: 90vh;
    max-height: 860px;
    aspect-ratio: 9/16;
    box-shadow: 0 10px 10px rgb(0 0 0 / 0.5);
    border-radius: 8px;
}

.swiper-slide {
    background: #000;
    overflow: hidden;
}

.swiper-pagination {
    top: .5em;
    height: .15em;
    padding: 0 .3em;
    box-sizing: border-box;
    display: flex;
    justify-content: space-between;
}

.swiper-pagination-bullet {
    width: 100%;
    height: .15em;
    background: #fff;
    opacity: 1;
    transform: opacity 1s ease;
    border-radius: 0;
}

.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 0 .2em;
}

.swiper-pagination-bullet.swiper-pagination-bullet-active ~ .swiper-pagination-bullet {
    opacity: .3;
}

.swiperMain-button-next,
.swiperMain-button-prev {
    top: 50%;
    transform: translateY(-50%);

    width: 3em;
    height: 3em;
    border-radius: 50%;
    margin: unset;

    background: #fff;
}

.swiperMain-button-next,
.swiper-rtl .swiperMain-button-prev {
    right: -5em;
}

.swiperMain-button-prev,
.swiper-rtl .swiperMain-button-next {
    left: -5em;
}

.swiperMain-button-next::after,
.swiperMain-button-prev::after {
    font-family: swiper-icons;
    font-size: 1em;
    font-weight: 900;
    text-transform: none !important;
    letter-spacing: 0;
    text-transform: none;
    font-variant: initial;
    line-height: 1;
}

.swiperMain-button-next::after,
.swiper-rtl .swiperMain-button-prev::after {
    margin-left: .25em;
}

.swiperMain-button-prev::after,
.swiper-rtl .swiperMain-button-next::after {
    margin-right: .25em;
}

.swiperMain-button-next.swiper-button-disabled, 
.swiperMain-button-prev.swiper-button-disabled {
    opacity: 0 !important;
}

.swiperSub-button-next,
.swiperSub-button-prev {
    display: none;
}

@media (max-width: 680px) {

    body {
        overflow: hidden;
    }

    .container {
        width: 100%;
        height: 100%;
    }

    .swiper {
        width: 100%;
        height: 100%;
        max-height: unset;
        border-radius: 0;
    }

    .swiperMain-button-next,
    .swiperMain-button-prev {
        display: none;
        
        top: var(--top-tools-height);
        width: 30%;
        height: calc(100% - var(--top-tools-height));
        margin-top: 0;
        border-radius: 0;
        opacity: 0 !important;
    }

    .swiperMain-button-next,
    .swiper-rtl .swiperMain-button-prev {
        right: 0;
    }

    .swiperMain-button-prev,
    .swiper-rtl .swiperMain-button-next {
        left: 0;
    }

}

.webStoryPage {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;

    padding-top: 4em;
}

.webStoryPage .page-background {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    z-index: 0;
}

.webStoryPage .page-background img {
    display: block;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.webStoryPage.frame-contain .page-background img {
    object-fit: contain;
}

.webStoryPage .page-background video,
.webStoryPage .page-background iframe {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 50%; 
    left: 50%; 
    transform: translateX(-50%) translateY(-50%); 
}

.webStoryPage .page-background video{
    object-fit: cover;
}
.webStoryPage.frame-contain .page-background video{
  object-fit: contain;
}

.webStoryPage .page-background .audio-warning{
  display: inline-block;
  position: absolute;
  bottom: 10px; left: 50%;

  transform: translate(-50%, 100%);
  opacity: 0;

  display: none;
}
.swiper-slide-active > .webStoryPage .page-background .audio-warning{
  animation-name: audio-warning;
  animation-duration: 3s;
  animation-timing-function: ease-out;
  animation-delay: 0s;
  animation-iteration-count: 1;
  animation-direction: normal;
  animation-fill-mode: forwards;
}

@keyframes audio-warning {
  16% {
    transform: translate(-50%, 0);
    opacity: 1;
  }
  66% {
    transform: translate(-50%, 0);
    opacity: 1;
  }
  100% {
    transform: translate(-50%, 100%);
    opacity: 0;
  }
}


.webStoryPage .page-controls {
  box-sizing: border-box;
  position: absolute;
  top: var(--top-tools-height);
  left: 0;
  right: 0; 
  bottom: 60px;

  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: stretch;

  pointer-events: none;

  z-index: 1;
}

.page-controls button {
  appearance: none;

  padding: 0;
  border: 0;
  outline: 0;
  
  background-color: transparent;
  background-position: center;
  background-repeat: no-repeat;

  cursor: pointer;
}

.page-controls > [root-action] {
  --size: 30%;
  flex: 0 0 var(--size);
  max-width: var(--size);
  cursor: pointer;
}
.swiper-slide-active .page-controls > * {
  pointer-events: all;
}

.page-video-controls{
  --s: 36px;
  --size: var(--s);
  --gap: 20px;
}

.page-controls > .page-video-controls {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  
  display: inline-flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  gap: var(--gap);

  transition: 
    opacity .15s ease-out,
    pointer-events 0s linear;

  opacity: 1;
}

.swiper-slide-active.slide-video-playing .page-video-controls {
  transition: 
    opacity 1s ease-out, 
    pointer-events 0s linear 1s;

  opacity: 0;
  pointer-events: none;
}

.page-video-controls > button,
.page-video-controls > * {
  width:  var(--size);
  height: var(--size);
  border-radius: 50%;

  background-color: white;
  background-size: 50%;

  overflow: hidden;

  transition: all .15s ease-out;
}

.page-video-controls > .bwd { background-image: url(../images/bwd.svg); }
.page-video-controls > .bwd:active { transform: rotate(-15deg); }

.page-video-controls > .fwd { background-image: url(../images/fwd.svg); }
.page-video-controls > .fwd:active { transform: rotate(+15deg); }


.page-video-controls > .play-pause:active { transform: scale(1.05); }
.page-video-controls > .play-pause {
  --size: calc( var(--s) * 2);
  --p: 0;
  --p-color: black;
  position: relative;
}

.page-video-controls > .play-pause:before,
.page-video-controls > .play-pause:after{
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  display: block;
}

.page-video-controls > .play-pause:before {
  width: 100%; height: 100%;
  background: conic-gradient(var(--p-color) var(--p), transparent 0);
}

.page-video-controls > .play-pause:after {
  width: 90%; height: 90%;
  border-radius: 9999px;
  
  background-size: 50%;
  background-color: inherit;
  background-repeat: no-repeat;
  background-position: 60% center;
  background-image: url(../images/play.svg);
}
.slide-video-playing .page-video-controls > .play-pause:after {
  background-position: 50% center;
  background-image: url(../images/pause.svg);
}

.page-video-controls > .sub-toggle {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: var(--gap);
}
.slide-video-has-subtitle .page-video-controls > .sub-toggle {
  display: block;
}

.page-video-controls > .sub-toggle {
  background-image: url(../images/sub-on.svg);
}
.slide-video-subtitle-showing .page-video-controls > .sub-toggle {
  background-image: url(../images/sub-off.svg);
}

/* .node foreignObject div .progress-pie {
  --progress-icon-size: 1.6em;
  box-sizing: border-box;
  position: relative;
  display: block;
  width: var(--progress-icon-size);
  height: var(--progress-icon-size);
  border-radius: 50%;
  
  box-shadow: inset 0 0 0 2px green
} */

@media (min-width: 680px) {
  .webStoryPage .page-controls > [root-action]{
    visibility: hidden;
    pointer-events: none !important;
  }
}

.webStoryPage .page-content {  
  box-sizing: border-box;
  position: absolute;

  width: 100%;
  padding: 3em 2.5em 2.5em 2.5em;
  
  pointer-events: none;
  z-index: 2;
}

.webStoryPage.align-left .page-content {
  align-items: flex-start;
}
.webStoryPage.align-center .page-content {
  align-items: center;
}
.webStoryPage.align-right .page-content {
  align-items: flex-end;
}

.webStoryPage .page-content > * {
    margin: 0;
}

.swiper-slide-active .webStoryPage .page-content > * {
    pointer-events: auto;
}

.webStoryPage.align-left .page-text,
.webStoryPage .page-text {
  text-align: left;
}
.webStoryPage.align-center .page-text {
  text-align: center;
}

.webStoryPage.align-right .page-text {
  text-align: right;
}

.webStoryPage .page-description {
    right: 20px;
    bottom: 20px;
}
.webStoryPage.align-left .page-description {
  right: unset;
  left: 20px;
}
.webStoryPage .page-description-content {
    font-size: .8em;
}

#webstory > .swiper-pagination,
.controllers {
  filter: drop-shadow(0px 0px 2px black);
}