:root {
  --color-red: #FF6B6B;
  --color-yellow: #FFD93D;
  --color-green: #6BCB77;
  --color-blue: #4D96FF;
  --color-purple: #9B59B6;
  --color-orange: #FF8C42;
  --color-pink: #E84393;
  --color-white: #fff;
  --color-white-translucent: rgba(255,255,255,0.92);
  --color-white-subtitle: rgba(255,255,255,0.9);
  --shadow-text: rgba(0,0,0,0.15);
  --shadow-btn: rgba(0,0,0,0.15);
  --shadow-wave: rgba(0,0,0,0.12);
}

@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;700;800&family=Quicksand:wght@400;600&display=swap');

* { margin: 0; padding: 0; box-sizing: border-box; }

html, body {
  height: 100%;
  overflow: hidden;
}

.hw-wrap {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem 1.5rem;
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, var(--color-red) 0%, var(--color-yellow) 25%, var(--color-green) 50%, var(--color-blue) 75%, var(--color-purple) 100%);
  background-size: 300% 300%;
  animation: gradientShift 8s ease infinite;
}

@keyframes gradientShift {
  0%, 100% { background-position: 0% 50%; }
  25% { background-position: 100% 0%; }
  50% { background-position: 100% 100%; }
  75% { background-position: 0% 100%; }
}

.hw-title {
  font-family: 'Baloo 2', cursive;
  font-size: clamp(40px, 10vw, 72px);
  font-weight: 800;
  color: var(--color-white);
  text-shadow: 0 4px 20px var(--shadow-text);
  letter-spacing: -1px;
  display: flex;
  gap: 2px;
  flex-wrap: wrap;
  justify-content: center;
}

.hw-title span {
  display: inline-block;
  animation: bounce 0.6s ease both;
  cursor: default;
  transition: transform 0.2s;
}

.hw-title span:hover {
  transform: scale(1.25) rotate(-8deg);
}

@keyframes bounce {
  0% { transform: translateY(60px) scale(0.4); opacity: 0; }
  50% { transform: translateY(-12px) scale(1.08); }
  70% { transform: translateY(4px) scale(0.96); }
  100% { transform: translateY(0) scale(1); opacity: 1; }
}

.hw-subtitle {
  font-family: 'Quicksand', sans-serif;
  font-size: clamp(14px, 3vw, 20px);
  font-weight: 600;
  color: var(--color-white-subtitle);
  margin-top: 16px;
  animation: fadeUp 0.8s ease 1s both;
  text-align: center;
}

@keyframes fadeUp {
  from { transform: translateY(20px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

.hw-orb {
  position: absolute;
  border-radius: 50%;
  opacity: 0.25;
  animation: float 6s ease-in-out infinite;
  pointer-events: none;
}

@keyframes float {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-30px) scale(1.1); }
}

.hw-orb:nth-child(1) { width: 120px; height: 120px; background: var(--color-yellow); top: 10%; left: 8%; animation-delay: 0s; }
.hw-orb:nth-child(2) { width: 80px; height: 80px; background: var(--color-red); top: 60%; right: 10%; animation-delay: 1.5s; }
.hw-orb:nth-child(3) { width: 160px; height: 160px; background: var(--color-green); bottom: 5%; left: 30%; animation-delay: 3s; }
.hw-orb:nth-child(4) { width: 60px; height: 60px; background: var(--color-blue); top: 20%; right: 25%; animation-delay: 0.8s; }
.hw-orb:nth-child(5) { width: 100px; height: 100px; background: var(--color-purple); bottom: 20%; right: 5%; animation-delay: 2.2s; }

.hw-confetti {
  position: absolute;
  width: 8px;
  height: 8px;
  border-radius: 2px;
  opacity: 0;
  animation: confettiFall 4s ease-in-out infinite;
  pointer-events: none;
}

@keyframes confettiFall {
  0% { transform: translateY(-40px) rotate(0deg); opacity: 0; }
  10% { opacity: 0.8; }
  100% { transform: translateY(110vh) rotate(720deg); opacity: 0; }
}

.hw-wave {
  font-size: clamp(36px, 8vw, 56px);
  display: inline-block;
  animation: wave 1.8s ease-in-out infinite;
  animation-delay: 1.2s;
  margin-bottom: 8px;
  filter: drop-shadow(0 2px 8px var(--shadow-wave));
}

@keyframes wave {
  0%, 100% { transform: rotate(0deg); }
  20% { transform: rotate(20deg); }
  40% { transform: rotate(-10deg); }
  60% { transform: rotate(15deg); }
  80% { transform: rotate(-5deg); }
}

.hw-btn {
  margin-top: 24px;
  font-family: 'Quicksand', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-blue);
  background: var(--color-white-translucent);
  border: none;
  padding: 12px 32px;
  border-radius: 50px;
  cursor: pointer;
  animation: fadeUp 0.8s ease 1.4s both;
  transition: transform 0.2s, box-shadow 0.2s;
}

.hw-btn:hover {
  transform: scale(1.06);
  box-shadow: 0 6px 24px var(--shadow-btn);
}

.hw-btn:active {
  transform: scale(0.97);
}