* { box-sizing: border-box; }

html, body { margin: 0; padding: 0; }

body {
  font-family: ui-rounded, "SF Pro Rounded", "Avenir Next", Nunito, system-ui, sans-serif;
  background: #ffd9e8;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.card {
  background: #fff;
  border-radius: 24px;
  max-width: 420px;
  width: 100%;
  text-align: center;
  padding: 40px 32px;
  box-shadow: 0 20px 50px rgba(217, 80, 133, 0.25);
}

h1 {
  margin: 0 0 8px;
  font-size: 1.8rem;
  color: #ff4d8d;
}

.subtitle {
  margin: 0 0 24px;
  color: #c1708f;
  font-weight: 600;
}

#city {
  font-family: inherit;
  font-size: 1rem;
  font-weight: 600;
  color: #5a2440;
  background: #fff;
  border: 2px solid #ffd3e0;
  border-radius: 999px;
  padding: 12px 18px;
  outline: none;
  width: 100%;
  text-align: center;
}

#city:focus { border-color: #ff4d8d; }

#city::placeholder { color: #c1708f; font-weight: 500; }

.buttons {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

#giveBtn,
#aiBtn {
  font-family: inherit;
  font-size: 1.15rem;
  font-weight: 700;
  border-radius: 999px;
  padding: 15px 40px;
  cursor: pointer;
  transition: transform 0.12s ease;
}

#giveBtn {
  color: #fff;
  background: #ff4d8d;
  border: none;
  box-shadow: 0 8px 20px rgba(255, 77, 141, 0.4);
}

#giveBtn:hover { background: #ff2f7e; }

#aiBtn {
  color: #ff4d8d;
  background: #ffffff;
  border: 2px solid #ffb3c6;
}

#aiBtn:hover { border-color: #ff4d8d; }

#giveBtn:active, #aiBtn:active { transform: translateY(2px); }

#aiBtn:disabled { opacity: 0.6; cursor: wait; }

#idea {
  min-height: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 24px 0 0;
  padding: 16px 14px;
  border-radius: 16px;
  background: #ffe3ee;
  color: #5a2440;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.4;
}

#idea.pop { animation: pop 0.35s ease; }

@keyframes pop {
  from { opacity: 0; transform: scale(0.96); }
  to { opacity: 1; transform: scale(1); }
}