.modal {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  display: none;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  padding: var(--gutter-mobile);
}

.modal.is-open {
  display: flex;
}

.modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(26, 28, 28, 0.8);
}

@supports (backdrop-filter: blur(1px)) {
  .modal__backdrop {
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }
}

.modal__box {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 28rem;
  background: var(--color-surface);
  padding: var(--space-8);
  border: var(--border-thin);
}

.modal__close {
  position: absolute;
  top: var(--space-4);
  right: var(--space-4);
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-on-surface-variant);
  transition: color var(--t-base);
}

.modal__close:hover {
  color: var(--color-brass);
}

.modal__title {
  margin-bottom: var(--space-8);
  padding-right: var(--space-8);
}

@media (max-width: 767px) {
  .modal {
    align-items: flex-end;
    padding: 0;
  }

  .modal__box {
    max-height: min(92svh, 100%);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: var(--space-8) var(--gutter-mobile) calc(var(--space-8) + var(--safe-bottom));
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
  }

  .modal__close {
    top: calc(var(--safe-top) + var(--space-3));
    right: var(--gutter-mobile);
  }
}
