.single-video,
.video {
  iframe {
    max-width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    display: block;
  }
}

.single-video {
  .video-container {
    padding-block: 160px;
    display: flex;
    flex-direction: column;
    gap: 48px;
  }
}

.video {

  .video-button {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;

    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    font: inherit;
    color: inherit;
  }

  dialog.video-dialog {
    overscroll-behavior: contain;

    /* Exit Stage To */
    transform-origin: bottom;
    transform: perspective(100px) rotateX(5deg) scale(.95);

    &,
    &::backdrop {
      transition:
        display 1s allow-discrete,
        overlay 1s allow-discrete,
        opacity 1s ease,
        transform 1s ease;

      /* Exit Stage To */
      opacity: 0;
    }

    button.close-video {
      position: absolute;
      top: -20px;
      right: -20px;
      width: 40px;
      height: 40px;
      border-radius: 50%;
      border: none;
      font-size: 30px;
      font-family: sans-serif;
      padding: 0;
    }

    /* On Stage */
    &[open] {
      opacity: 1;
      transform: translateY(0px);
      position: fixed;
      overflow: visible;
      margin: auto;
      padding: 0;
      border: none;
      background: none;
      max-width: calc(100vw - 30px);
      max-height: calc(100vh - 30px);

      &::backdrop {
        opacity: 0.8;
      }
    }

    html:has(&[open]) {
      overflow: hidden;
      scrollbar-gutter: stable;
    }

    /* Enter Stage From */
    @starting-style {

      &[open],
      &[open]::backdrop {
        opacity: 0;
      }

      &[open] {
        transform: translateY(10px);
      }
    }

    &::backdrop {
      background-color: black;

      /* prevent scrolling page */
      overflow: hidden;
      overscroll-behavior: contain;
    }
  }
}