.contact-button {
  border: 0;
  font-family: var(--sans);
  cursor: pointer;
}

.modal {
  position: fixed;
  z-index: 30;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 22px;
  visibility: hidden;
  opacity: 0;
  transition: opacity .22s, visibility .22s;
}

.modal.open { visibility: visible; opacity: 1; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(10, 19, 14, .64); backdrop-filter: blur(5px); }

.modal-content {
  position: relative;
  width: min(490px, 100%);
  padding: 48px;
  background: var(--paper);
  box-shadow: 0 25px 70px rgba(0, 0, 0, .26);
  transform: translateY(14px);
  transition: transform .22s;
}

.modal.open .modal-content { transform: translateY(0); }
.modal-content .eyebrow { color: var(--orange); margin-bottom: 25px; }
.modal-content h2 { font-size: 40px; letter-spacing: -.06em; margin: 0 0 12px; }
.modal-content > p:not(.eyebrow) { color: rgba(23, 38, 31, .65); line-height: 1.8; margin-bottom: 30px; }

.modal-close {
  position: absolute;
  top: 15px;
  right: 17px;
  border: 0;
  background: none;
  color: var(--ink);
  font-size: 30px;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
}

.modal-email {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 17px 18px;
  background: var(--ink);
  color: #fff;
  font: 500 14px var(--mono);
  letter-spacing: -.03em;
}

.modal-email span { color: var(--lime); font-size: 19px; }

@media (max-width: 800px) {
  .modal-content { padding: 42px 28px; }
  .modal-content h2 { font-size: 35px; }
}
