* { margin: 0; padding: 0; box-sizing: border-box; }
body {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #0c3b2e 0%, #1a7a4a 50%, #25a265 100%);
  font-family: 'Georgia', serif;
  overflow: hidden;
}
.hearts-bg { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; }
.heart-float {
  position: absolute;
  top: -50px;
  animation: floatUp linear infinite;
  opacity: 0.5;
}
@keyframes floatUp {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.6; }
  100% { transform: translateY(110vh) rotate(360deg); opacity: 0; }
}
.card {
  position: relative;
  z-index: 1;
  background: rgba(255,255,255,0.97);
  border-radius: 24px;
  padding: 48px 56px;
  max-width: 540px;
  width: 90%;
  text-align: center;
  box-shadow: 0 20px 60px rgba(0,0,0,0.3), 0 0 0 4px #25a265;
  animation: popIn 0.7s cubic-bezier(0.175,0.885,0.32,1.275);
}
@keyframes popIn {
  from { transform: scale(0.5); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}
.senders { font-size: 1rem; color: #1a7a4a; font-weight: bold; letter-spacing: 1px; margin-bottom: 16px; }
.heart { font-size: 64px; animation: beat 1.2s ease-in-out infinite; margin-bottom: 8px; }
@keyframes beat {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.25); }
}
h1 { font-size: 2.8rem; color: #0c3b2e; margin-bottom: 8px; }
.recipients { font-size: 1.2rem; color: #25a265; font-style: italic; margin-bottom: 20px; }
.divider { color: #25a265; font-size: 1.2rem; margin: 16px 0; letter-spacing: 8px; }
.message { font-size: 1rem; color: #333; line-height: 1.9; margin-bottom: 16px; }
.pulse { display: inline-block; animation: beat 1s ease-in-out infinite; }
.footer { font-size: 1rem; color: #1a7a4a; font-weight: bold; margin-top: 8px; }