:root{
  --bg1:#ff4d6d;
  --bg2:#ff8fab;
  --card:#ffffffee;
  --text:#1f1f1f;
  --yes:#2ecc71;
  --no:#ff3b30;
  --shadow: 0 18px 60px rgba(0,0,0,.18);
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  display:grid;
  place-items:center;
  overflow:hidden;
  background: radial-gradient(circle at 20% 20%, #fff 0%, transparent 40%),
              linear-gradient(135deg, var(--bg1), var(--bg2));
}

/* “Hearts background” layer created by hearts.js */
.heart{
  position:fixed;
  left:0;
  top:0;
  pointer-events:none;
  opacity:.9;
  will-change: transform, opacity;
  filter: drop-shadow(0 6px 10px rgba(0,0,0,.15));
}

.card{
  width:min(560px, 92vw);
  background:var(--card);
  padding:28px 24px;
  border-radius:22px;
  box-shadow:var(--shadow);
  text-align:center;
  backdrop-filter: blur(8px);
}

h1{
  margin:0 0 14px;
  font-size: clamp(28px, 5vw, 42px);
}

.sub{
  margin:0 0 18px;
  font-size: 16px;
  opacity:.85;
}

.btnRow{
  display:flex;
  gap:12px;
  justify-content:center;
  flex-wrap:wrap;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  border:none;
  cursor:pointer;
  padding:12px 18px;
  border-radius:14px;
  font-weight:700;
  min-width:140px;
  transition: transform .12s ease, filter .12s ease;
}

.btn:active{ transform: scale(.98); }
.btn:hover{ filter: brightness(.98); }

.btnYes{ background: var(--yes); color:#fff; }
.btnNo{ background: var(--no); color:#fff; }

.form{
  display:grid;
  gap:10px;
  margin-top:10px;
}

.label{
  text-align:left;
  font-weight:600;
  font-size:14px;
  opacity:.85;
}

.input{
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.12);
  font-size:16px;
  outline:none;
}
.input:focus{
  border-color: rgba(0,0,0,.28);
}

.status{
  margin:6px 0 0;
  min-height: 1.25em;
  font-size: 14px;
  opacity: .9;
}
