/* Contact page: the address on a sheet of paper, then the three ways to get in
   touch as index cards taped to the desk. */
.email-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: 30px; padding-top: 22px; border-top: 1.5px solid var(--rule); }
.email-big { margin-right: auto; overflow-wrap: anywhere; color: var(--ink); font: 700 clamp(28px, 4.2vw, 46px)/1.1 var(--display); letter-spacing: -0.01em; text-decoration: none; }
.email-big:hover { text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 3px; text-underline-offset: 6px; }
.copy-status { font-size: 14px; color: var(--ink-soft); }

.contact-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; margin-top: 56px; }
.contact-cards .index-card { display: flex; flex-direction: column; gap: 12px; scroll-margin-top: 24px; }
.contact-cards .index-card:target { outline: 3px solid var(--gold); outline-offset: 6px; }
.contact-cards h2 { margin-bottom: 2px; font: 700 24px/1.15 var(--display); letter-spacing: -0.01em; }
.contact-cards p, .contact-cards li { font-size: 15px; }
.contact-cards ul { display: grid; gap: 4px; margin: 0; padding-left: 20px; }
.contact-cards .btn { align-self: flex-start; margin-top: auto; }
.card-foot { padding-top: 12px; border-top: 1.5px solid var(--rule); font-size: 13px !important; color: var(--ink-soft); }
.card-foot a, .card-foot strong { color: var(--ink); }

@media (max-width: 900px) {
  .contact-cards { grid-template-columns: 1fr; gap: 40px; }
}

/* The address, on a hand-addressed envelope */
.email-row { display: none; }
.follow { margin-top: 22px; font-size: 17px; }
.follow a { font-weight: 700; }
.envelope { position: relative; margin-top: 32px; padding: 44px 40px 30px; background: #f1e7d0; box-shadow: 0 10px 24px rgba(30, 15, 4, 0.22); overflow: hidden; }
.envelope::before { content: ""; position: absolute; inset: 0 0 auto; height: 46%; background: #e8dcc0; clip-path: polygon(0 0, 100% 0, 50% 100%); opacity: 0.8; }
.envelope > * { position: relative; }
.postage { position: absolute; top: 18px; right: 20px; display: grid; justify-items: center; gap: 2px; width: 74px; padding: 10px 6px 6px; background: #fdfaf2; color: var(--gold-ink); border: 2px dashed rgba(122, 90, 18, 0.45); transform: rotate(4deg); }
.postage svg { width: 34px; height: 34px; }
.postage b { font: 700 12px/1 var(--display); letter-spacing: 0.04em; }
.envelope .to { margin-top: 10px; font: 700 18px/1 "Kalam", "Bradley Hand", cursive; color: var(--ink-soft); }
.envelope .email-big { display: inline-block; margin-top: 4px; font: 700 clamp(30px, 4.4vw, 50px)/1.15 "Kalam", "Bradley Hand", cursive; letter-spacing: 0; color: #1f2b45; }
.envelope-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 18px; }
.copied { position: absolute; right: 120px; bottom: 26px; padding: 6px 14px 4px; border: 3.5px solid #c8372d; border-radius: 6px; color: #c8372d; font: 800 26px/1 var(--display); letter-spacing: 0.12em; text-transform: uppercase; opacity: 0; transform: rotate(-12deg) scale(1.5); pointer-events: none; }
.envelope.is-copied .copied { animation: stamp 2.5s cubic-bezier(0.23, 1, 0.32, 1) both; }
@keyframes stamp { 0% { opacity: 0; transform: rotate(-12deg) scale(1.5); } 12% { opacity: 0.9; transform: rotate(-12deg) scale(1); } 80% { opacity: 0.9; } 100% { opacity: 0; transform: rotate(-12deg) scale(1); } }
@media (prefers-reduced-motion: reduce) { .envelope.is-copied .copied { animation: none; opacity: 0.9; transform: rotate(-12deg); } }
@media (max-width: 760px) {
  .envelope { padding: 92px 20px 22px; }
  .copied { right: 16px; bottom: 70px; font-size: 20px; }
}
