* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --bg: #f3f1ff;
  --fg: #221f3a;
  --muted: #6f6a8d;
  --accent: #6c5ce7;
  --accent2: #00b894;
  --accent3: #fdcb6e;
}

body {
  font-family: ui-rounded, "SF Pro Rounded", "Hiragino Maru Gothic ProN", Quicksand, Comfortaa, Manjari, "Arial Rounded MT", "Arial Rounded MT Bold", Calibri, source-sans-pro, sans-serif;
  background: var(--bg);
  color: var(--fg);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 24px;
  overflow: hidden;
}

/* soft blobs in the background */
.blob {
  position: fixed;
  border-radius: 50%;
  filter: blur(70px);
  opacity: 0.45;
  z-index: 0;
}

.blob-1 {
  width: 340px;
  height: 340px;
  background: var(--accent2);
  top: -90px;
  left: -90px;
}

.blob-2 {
  width: 300px;
  height: 300px;
  background: var(--accent3);
  bottom: -80px;
  right: -60px;
}

.blob-3 {
  width: 220px;
  height: 220px;
  background: var(--accent);
  bottom: 10%;
  left: 8%;
  opacity: 0.3;
}

.card {
  position: relative;
  z-index: 1;
  /* offset the icon's height so the wordmark sits at the optical center */
  margin-bottom: clamp(80px, 16vw, 124px);
}

.mail {
  width: clamp(110px, 22vw, 170px);
  height: auto;
  display: inline-block;
}

.mail .envelope {
  animation: float 3.4s ease-in-out infinite;
  transform-origin: center;
}

.mail .ping {
  animation: ping 2.2s ease-in-out infinite;
  transform-origin: 80px 14px;
}

@keyframes float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}

@keyframes ping {
  0%, 100% { transform: scale(0.7); opacity: 0.55; }
  50%      { transform: scale(1); opacity: 1; }
}

h1 {
  margin-top: 14px;
  font-size: clamp(3rem, 10vw, 5.5rem);
  font-weight: 800;
  letter-spacing: -0.04em;
}

h1 .mx {
  color: var(--accent);
  display: inline-block;
  transition: transform 0.25s ease;
}

h1:hover .mx {
  transform: translateY(-6px) scale(1.12);
}

p {
  margin-top: 14px;
  font-size: clamp(1.1rem, 3vw, 1.5rem);
  color: var(--muted);
}

p em {
  font-style: normal;
  color: var(--accent2);
  font-weight: 700;
}
