  @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;600;700&display=swap');
*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}
body{
  font-family:'Poppins',sans-serif;
  background:linear-gradient(135deg,#ff9a9e 0%, #fad0c4 100%);
  height:100vh;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Opening hitungan */
.opening{
  position:fixed;
  inset:0;
  background:#111;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:10;
}
.opening h1{
  font-size:8rem;
  animation:zoom 1s ease-out forwards;
}
@keyframes zoom{
  0%{transform:scale(0);opacity:0;}
  50%{transform:scale(1.2);opacity:1;}
  100%{transform:scale(1);opacity:0;}
}

/* Kartu utama */
.card{
  background:#fff;
  border-radius:25px;
  padding:40px 30px;
  max-width:600px;
  text-align:center;
  box-shadow:0 15px 40px rgba(0,0,0,.2);
  transform:scale(.9);
  opacity:0;
  animation:showCard .8s .5s forwards;
}
@keyframes showCard{
  to{transform:scale(1);opacity:1;}
}
.photo{
  width:180px;
  height:180px;
  object-fit:cover;
  border-radius:50%;
  border:6px solid #ff6b81;
  margin-bottom:15px;
}
.date{
  color:#d63384;
  font-weight:600;
  margin-bottom:10px;
}
.title{
  color:#d63384;
  font-size:2rem;
  margin-bottom:15px;
}
.wish{
  color:#444;
  font-size:1.1rem;
  line-height:1.8;
}
#surpriseBtn{
  margin-top:25px;
  background:#ff6b81;
  color:#fff;
  border:none;
  padding:12px 30px;
  border-radius:30px;
  font-size:1rem;
  cursor:pointer;
  transition:.3s;
}
#surpriseBtn:hover{background:#e8436f;}

/* Balon hati */
.balloon{
  position:absolute;
  bottom:-100px;
  font-size:3rem;
  animation:fly 10s infinite linear;
}
.x1{left:10%;animation-duration:9s;}
.x2{left:30%;animation-duration:12s;}
.x3{left:55%;animation-duration:10s;}
.x4{left:80%;animation-duration:8s;}
@keyframes fly{
  0%{transform:translateY(0) rotate(-5deg);}
  100%{transform:translateY(-120vh) rotate(5deg);}
}

.hidden{display:none;}