.js-modal-source {
  display: none!important;
}

.modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  opacity: 0;
  transition: opacity .25s ease, display .25s allow-discrete;
}
.modal.is-open {
  display: block;
  opacity: 1;
  @starting-style {
    opacity: 0;
  }
}

.modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.35);
}

.modal__dialog {
  position: relative;
  top:50%;
  left:50%;
  z-index: 1;
  width: min(80vw, 460px);
  max-height: 85vh;
  overflow: auto;
  padding: clamp(2rem,4vw,46px);
  background-color: var(--wp--preset--color--base);
  transform: translate(-50%, -50%) translateY(8px) scale(.1);
  transition: transform .25s ease;
}

.modal.is-open .modal__dialog {
  transform: translate(-50%, -50%) translateY(0) scale(1);
}

.modal__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background-color:transparent;
  cursor:pointer;
  width:24px;
  height:24px;
  font-size:20px;
  line-height:1;
  border:none;
  border-radius:100em;
}