* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family: 'Quicksand', sans-serif;
}

body {
  min-height: 100vh;
  background: linear-gradient(180deg, #ffe6ef, #fff0f6);
  display: flex;
  align-items: center;
  justify-content: center;
}

.container {
  padding: 1.5rem;
  width: 100%;
  max-width: 380px;
}

.card {
  background: #ffffff;
  border-radius: 24px;
  padding: 2rem;
  text-align: center;
  box-shadow: 0 20px 40px rgba(255, 192, 203, 0.4);
}

.title {
  color: #ff6fa9;
  font-size: 1.8rem;
  margin-bottom: 0.5rem;
}

.subtitle {
  color: #777;
  font-size: 0.95rem;
  margin-bottom: 1.5rem;
}

form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

input {
  padding: 0.75rem 1rem;
  border-radius: 999px;
  border: 2px solid #ffd1e3;
  font-size: 1rem;
  outline: none;
  text-align: center;
}

input:focus {
  border-color: #ff9ec7;
}

button {
  background: #ff9ec7;
  color: white;
  border: none;
  border-radius: 999px;
  padding: 0.75rem;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease;
}

button:hover {
  background: #ff7fb3;
}

#error-message {
  color: #ff4d6d;
  font-size: 0.85rem;
  margin-top: -0.5rem;
  margin-bottom: 0.5rem;
  display: none;
  animation: fadeIn 0.3s ease;
}

.decorations {
  margin-top: 1.5rem;
  font-size: 1.4rem;
  display: flex;
  justify-content: center;
  gap: 0.75rem;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

input.shake {
  animation: shake 0.3s;
}

@keyframes shake {
  0% { transform: translateX(0); }
  25% { transform: translateX(-4px); }
  50% { transform: translateX(4px); }
  75% { transform: translateX(-4px); }
  100% { transform: translateX(0); }
}


/* --- Surprise page layout --- */
.surprise{
  min-height: 100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap: 1.2rem;
  padding: 2rem 1.25rem;
  background: linear-gradient(180deg, #ffe6ef, #fff0f6);
}

.love-text{
  color:#ff6fa9;
  font-weight:600;
  text-align:center;
}

/* --- Bouquet container --- */
.bouquet{
  position: relative;
  width: min(420px, 92vw);
  height: 520px;
  border-radius: 28px;
  background: transparent;
  box-shadow: 0 20px 40px rgba(255, 192, 203, 0.35);
  overflow: hidden;
  animation: floaty 3.2s ease-in-out infinite;
}


/* Frame wrapper */
.kawaii-frame{
  position: relative;
  width: min(340px, 92vw);
  padding: 14px 14px 16px;
  border-radius: 30px;
  background: linear-gradient(180deg, #ffffff, #fff7fb);
  box-shadow: 0 26px 55px rgba(255, 160, 200, 0.35);
  border: 2px solid rgba(255, 160, 200, 0.45);
  animation: floaty 3.6s ease-in-out infinite;
  overflow: hidden;
}

/* Subtle cute pattern */
.kawaii-frame::before{
  content:"";
  position:absolute;
  inset:-40px;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,182,213,0.35), transparent 35%),
    radial-gradient(circle at 80% 30%, rgba(255,214,233,0.45), transparent 38%),
    radial-gradient(circle at 30% 80%, rgba(255,182,213,0.30), transparent 40%),
    radial-gradient(circle at 85% 85%, rgba(255,214,233,0.35), transparent 42%);
  filter: blur(2px);
  pointer-events:none;
}

/* Top stickers row */
.kawaii-top{
  position: relative;
  z-index: 1;
  display:flex;
  justify-content:center;
  gap: 10px;
  margin-bottom: 10px;
  font-size: 1.25rem;
}
.sticker{
  background: #fff;
  border: 1px solid rgba(255, 160, 200, 0.45);
  border-radius: 999px;
  padding: 6px 10px;
  box-shadow: 0 10px 18px rgba(255, 160, 200, 0.22);
}

/* Photo shell */
.photo-shell{
  position: relative;
  z-index: 1;
  padding: 10px;
  border-radius: 24px;
  background: linear-gradient(135deg, #ffe1ee, #fff);
  border: 2px dashed rgba(255, 160, 200, 0.55);
}

.photo{
  display:block;
  width: 100%;
  border-radius: 18px;
}

/* Bottom tag */
.kawaii-bottom{
  position: relative;
  z-index: 1;
  margin-top: 12px;
  display:flex;
  justify-content:center;
}
.tag{
  color: #ff6fa9;
  font-weight: 800;
  background: rgba(255, 214, 233, 0.55);
  border: 1px solid rgba(255, 160, 200, 0.45);
  padding: 8px 14px;
  border-radius: 999px;
}

/* Corner bows */
.corner{
  position:absolute;
  font-size: 1.15rem;
  opacity: 0.95;
  filter: drop-shadow(0 8px 10px rgba(0,0,0,0.10));
}
.c1{ left: 10px; top: 10px; transform: rotate(-12deg); }
.c2{ right: 10px; top: 10px; transform: rotate(12deg); }
.c3{ left: 10px; bottom: 12px; transform: rotate(10deg); }
.c4{ right: 10px; bottom: 12px; transform: rotate(-10deg); }


@keyframes floaty{ 0%,100%{ transform: translateY(0);} 50%{ transform: translateY(-6px);} }



