.birthday-welcome {
  width:100%;
  max-width:none;
  height:100%;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  background:#fff;
  color:var(--navy);
}

.birthday-welcome::backdrop {
  background:#fff;
}

html:has(.birthday-welcome[open]) {
  overflow:hidden;
}

.birthday-content {
  min-height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:24px;
  padding:32px 24px;
  text-align:center;
}

.birthday-art {
  width:min(100%,480px);
  height:auto;
  max-height:48svh;
  object-fit:contain;
}

.birthday-welcome[open] .birthday-art {
  animation:birthday-arrive .8s ease-out both,birthday-float 6s ease-in-out .8s infinite;
}

#birthday-heading {
  margin:0;
  font-size:clamp(1.6rem,4.5vw,2.8rem);
  line-height:1.2;
  letter-spacing:-.035em;
}

.birthday-welcome[open] #birthday-heading {
  animation:birthday-arrive .7s ease-out .15s both;
}

.birthday-heart {
  display:inline-block;
  color:#dc3545;
  white-space:nowrap;
}

.birthday-welcome[open] .birthday-heart {
  animation:birthday-heartbeat 2.4s ease-in-out 1s infinite;
}

.birthday-countdown {
  display:grid;
  gap:6px;
  color:var(--muted);
  font-size:.8rem;
}

#birthday-time {
  color:var(--navy);
  font-size:1.75rem;
  font-weight:650;
  font-variant-numeric:tabular-nums;
  letter-spacing:.06em;
}

#birthday-discover {
  min-width:160px;
}

.birthday-welcome[open] #birthday-discover {
  animation:birthday-arrive .6s ease-out .3s both;
}

@keyframes birthday-arrive {
  from {opacity:0;transform:translateY(14px);}
  to {opacity:1;transform:translateY(0);}
}

@keyframes birthday-float {
  0%,100% {transform:translateY(0);}
  50% {transform:translateY(-5px);}
}

@keyframes birthday-heartbeat {
  0%,40%,100% {transform:scale(1);}
  15%,28% {transform:scale(1.13);}
}

.birthday-confetti {
  position:fixed;
  inset:0;
  z-index:1000;
  overflow:hidden;
  pointer-events:none;
}

.birthday-confetti span {
  position:absolute;
  top:0;
  width:8px;
  height:13px;
  border-radius:2px;
}

@media(prefers-reduced-motion:reduce) {
  .birthday-welcome[open] .birthday-art,
  .birthday-welcome[open] #birthday-heading,
  .birthday-welcome[open] .birthday-heart,
  .birthday-welcome[open] #birthday-discover {
    animation:none;
  }
  .birthday-confetti {
    display:none;
  }
}
