.modal {
  align-items: center;
  display: none;
  height: 100%;
  left: 0;
  overflow: auto;
  padding: var(--space-medium);
  position: fixed;
  top: 0;
  width: 100%;
}

.modal[open] {
  display: grid;
}

.modal:modal {
  max-height: none;
  max-width: none;
}

.modal::backdrop {
  background: none;
}

.modal__backdrop {
  backdrop-filter: blur(1em);
  -webkit-backdrop-filter: blur(1em);
  background: rgba(var(--rgb-white), 0.8);
  cursor: zoom-out;
  inset: 0;
  position: fixed;
  user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
}

.modal__container {
  display: grid;
  position: relative;
}

.modal__close {
  background: url('/assets/images/general/icon-close.svg') center center/0.425em auto no-repeat var(--color-black);
  border-radius: 100%;
  cursor: pointer;
  height: 1.2em;
  position: absolute;
  right: -0.6em;
  top: -0.6em;
  width: 1.2em;
}

.modal__image,
.modal__video {
  background: var(--color-white);
  border-radius: 0.2em;
  box-shadow:
    0 0 0 1px rgba(var(--rgb-black), 0.1),
    0 0 0.1em 0.02em rgba(var(--rgb-black), 0.05)
  ;
  display: grid;
  overflow: hidden;
  user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
}

.modal__image {
  cursor: zoom-out;
}

.modal__video {
  position: relative;
}

.modal__video button {
  cursor: pointer;
  display: grid;
  inset: 0;
  place-items: center;
  position: absolute;
}

.modal__video button:before,
.modal__video button:after {
  content: '';
  pointer-events: none;
  position: absolute;
}

.modal__video button:before {
  background: linear-gradient(180deg, rgba(var(--rgb-black), 0.6) 0, rgba(var(--rgb-black), 0.15) 80%);
  inset: 0;
  transition: opacity var(--transition-slow);
}

.modal__video button:after {
  background: url('/assets/images/general/icon-video.svg') center center/0.8em auto no-repeat var(--color-white);
  border-radius: 100%;
  box-shadow:
    0 0.2em 0.8em -0.4em rgba(var(--rgb-black), 0.05),
    0 0.3em 0.9em -0.5em rgba(var(--rgb-black), 0.15),
    0 0.4em 1em -0.6em rgba(var(--rgb-black), 0.25),
    0 0.5em 1.1em -0.7em rgba(var(--rgb-black), 0.35),
    0 0.6em 1.2em -0.8em rgba(var(--rgb-black), 0.45)
  ;
  height: 2.2em;
  width: 2.2em;
}



.modal__video--playing button {
  display: none;
}



@media(hover: hover) {

  .modal__close {
    transition: transform var(--transition);
    will-change: transform;
  }

  .modal__close:hover {
    transform: scale(1.06);
  }

  .modal__video button:before {
    transition: opacity var(--transition);
  }

  .modal__video button:after {
    transition: transform var(--transition);
    will-change: transform;
  }

  .modal__video button:hover:before {
    opacity: 0.9;
  }

  .modal__video button:hover:after {
    transform: scale(1.03);
  }

}



@media(min-width: 64em) {

  .modal {
    padding: var(--space-neutral);
  }

}
