.hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 32% 20%, rgba(255, 226, 206, 0.18), transparent 58%),
    radial-gradient(circle at 76% 24%, rgba(150, 40, 68, 0.25), transparent 60%),
    linear-gradient(180deg, rgba(43, 6, 20, 0.62), rgba(17, 0, 6, 0));
  pointer-events: none;
}

.hero::before {
  content: '';
  position: absolute;
  inset: -80px -120px -60px;
  background:
    radial-gradient(circle at 18% 18%, rgba(255, 222, 208, 0.18), transparent 65%),
    radial-gradient(circle at 88% 32%, rgba(153, 44, 72, 0.28), transparent 64%),
    conic-gradient(from 260deg at 58% 58%, rgba(255, 229, 214, 0.12), transparent 56%);
  z-index: -2;
  filter: blur(0.5px);
}

.card::before {
  content: '';
  position: absolute;
  inset: 10px;
  border-radius: calc(var(--radius-large) - 12px);
  border: 1px solid rgba(112, 36, 52, 0.12);
  background: linear-gradient(160deg, rgba(255, 239, 230, 0.55), rgba(248, 214, 199, 0.35));
  pointer-events: none;
  z-index: 0;
}

.card::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 24% 28%, rgba(255, 255, 255, 0.22) 0, transparent 42%),
    radial-gradient(circle at 70% 68%, rgba(214, 142, 156, 0.16) 0, transparent 48%);
  opacity: 0.7;
  pointer-events: none;
  z-index: 0;
}

.card--festive {
  background: linear-gradient(150deg, rgba(255, 238, 227, 0.95), rgba(248, 215, 200, 0.88)),
    linear-gradient(160deg, rgba(210, 102, 128, 0.18), rgba(255, 225, 206, 0.22));
}

.recipient__name .icon {
  width: 32px;
  height: 32px;
  filter: drop-shadow(0 8px 14px rgba(82, 18, 34, 0.28));
}

.hero__meta .icon,
.meta-pill .icon,
.form__icon {
  filter: drop-shadow(0 6px 12px rgba(52, 8, 18, 0.3));
}

.site-footer::before {
  content: '';
  position: absolute;
  top: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 140px;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(255, 222, 208, 0.9), rgba(178, 66, 93, 0.9));
}

.site-footer::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% -40%, rgba(255, 225, 210, 0.12), transparent 70%);
  pointer-events: none;
}
