:root {
  --ink: #24121f;
  --muted: #806674;
  --pink: #f22978;
  --pink-dark: #d90f60;
  --paper: rgba(255, 255, 255, 0.88);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }

body {
  margin: 0;
  color: var(--ink);
  background: #f8e9f1;
  font-family: Arial, Helvetica, sans-serif;
}

a { color: inherit; text-decoration: none; }

.link-page {
  min-height: 100vh;
  padding: 42px 18px;
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 15% 10%, rgba(255,255,255,.96) 0 8%, transparent 30%),
    linear-gradient(145deg, #ffeaf4 0%, #f7d5e8 45%, #efbddb 100%);
}

.link-page::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  opacity: .28;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E");
}

.link-page::after {
  content: "♥";
  position: fixed;
  left: 3vw;
  top: 3vh;
  z-index: -1;
  pointer-events: none;
  color: rgba(242, 41, 120, .17);
  font-size: clamp(30px, 4vw, 52px);
  line-height: 1;
  transform: rotate(-12deg);
  text-shadow:
    21vw 15vh 0 rgba(255, 255, 255, .72),
    48vw 2vh 0 rgba(242, 41, 120, .12),
    82vw 20vh 0 rgba(255, 255, 255, .78),
    7vw 42vh 0 rgba(242, 41, 120, .12),
    64vw 48vh 0 rgba(242, 41, 120, .16),
    88vw 66vh 0 rgba(255, 255, 255, .78),
    28vw 75vh 0 rgba(255, 255, 255, .68),
    55vw 91vh 0 rgba(242, 41, 120, .12),
    93vw 101vh 0 rgba(242, 41, 120, .14);
}

.blob {
  position: fixed;
  z-index: -1;
  border-radius: 50%;
  filter: blur(2px);
  pointer-events: none;
}

.blob-one {
  width: 430px;
  height: 430px;
  left: -150px;
  bottom: -150px;
  background: rgba(242, 41, 120, .28);
}

.blob-two {
  width: 330px;
  height: 330px;
  right: -100px;
  top: -100px;
  background: rgba(255, 255, 255, .58);
}

.profile-card {
  width: min(100%, 620px);
  padding: 42px 38px 28px;
  border: 1px solid rgba(255,255,255,.82);
  border-radius: 34px;
  text-align: center;
  background: var(--paper);
  box-shadow: 0 30px 90px rgba(119, 29, 75, .16);
  backdrop-filter: blur(22px);
}

.heart-logo {
  width: 233px;
  height: 233px;
  margin: -8px auto 7px;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 14px 19px rgba(191, 8, 84, .2));
}

.handle {
  margin: 0 0 7px;
  color: var(--pink-dark);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

h1 {
  margin: 0;
  font-size: clamp(34px, 8vw, 49px);
  font-weight: 950;
  line-height: 1;
  letter-spacing: -.065em;
}

h1 span { color: var(--pink); }

.description {
  margin: 14px 0 28px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
}

.link-list { display: grid; gap: 18px; }

.link-group {
  padding: 15px;
  border: 1px solid rgba(238, 191, 214, .72);
  border-radius: 24px;
  background: rgba(255, 244, 249, .6);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
}

.link-group-heading {
  margin: 0 4px 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: left;
}

.link-group-heading h2 {
  margin: 0;
  color: #6f3d59;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.group-symbol {
  width: 30px;
  height: 30px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 10px;
  color: var(--pink-dark);
  background: #fff;
  box-shadow: 0 3px 10px rgba(125, 40, 82, .09);
  font-size: 16px;
  font-weight: 900;
}

.group-links { display: grid; gap: 10px; }

.link-button {
  min-height: 66px;
  padding: 10px 16px 10px 12px;
  display: grid;
  grid-template-columns: 46px 1fr 28px;
  gap: 13px;
  align-items: center;
  border: 1px solid #f0dce6;
  border-radius: 19px;
  text-align: left;
  background: rgba(255,255,255,.86);
  box-shadow: 0 5px 18px rgba(91, 36, 65, .04);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.link-button:hover,
.link-button:focus-visible {
  transform: translateY(-2px);
  border-color: #eaa8c7;
  box-shadow: 0 13px 28px rgba(91, 36, 65, .1);
}

.link-button.primary {
  color: #fff;
  border-color: transparent;
  background: linear-gradient(110deg, #f84c88, var(--pink-dark));
  box-shadow: 0 14px 32px rgba(217, 15, 96, .22);
}

.link-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(80, 34, 58, .08);
  overflow: hidden;
}

.link-icon img {
  width: 27px;
  height: 27px;
  display: block;
  object-fit: contain;
}

.icon-text {
  color: #6d28a5;
  font-size: 25px;
  font-weight: 900;
  line-height: 1;
}

.link-copy { min-width: 0; display: block; }
.link-copy strong { display: block; font-size: 15px; line-height: 1.2; }

.link-copy small {
  display: block;
  margin-top: 5px;
  overflow: hidden;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.primary .link-copy small { color: rgba(255,255,255,.7); }

.link-arrow {
  justify-self: end;
  color: #b798a8;
  font-size: 20px;
  transition: transform .2s ease;
}

.primary .link-arrow { color: #fff; }
.link-button:hover .link-arrow { transform: translate(2px, -2px); }

.footer-note {
  margin: 25px 0 0;
  color: #af8c9e;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .24em;
}

:focus-visible { outline: 3px solid rgba(242,41,120,.35); outline-offset: 3px; }

@media (max-width: 540px) {
  .link-page { padding: 18px 12px; place-items: start center; }
  .profile-card { padding: 30px 16px 22px; border-radius: 27px; }
  .heart-logo { width: 203px; height: 203px; margin-top: -5px; }
  .description { margin-bottom: 23px; font-size: 13px; }
  .link-list { gap: 14px; }
  .link-group { padding: 11px; border-radius: 20px; }
  .link-group-heading { margin: 1px 3px 10px; }
  .link-button { min-height: 61px; grid-template-columns: 42px 1fr 23px; gap: 11px; padding-left: 10px; border-radius: 17px; }
  .link-icon { width: 42px; height: 42px; border-radius: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition-duration: .01ms !important; }
}
