@font-face { font-family: Slopes; src: url('fonts/IndieFlower.ttf'); } 

/* customizable heart styling */
.heart {
  color: #cf223f;
  font-size: 2em;
  font-family: Arial, sans-serif;
  text-shadow: 0 0 2px #fff;
}

.heart, .heart .inner {
  animation-iteration-count: infinite;
  animation-play-state: running;
}

@keyframes hearts-fall {
  0% { transform: translateY(0); }
  100% { transform: translateY(110vh); }
}

@keyframes hearts-shake {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(80px); }
}

.heart {
  position: fixed;
  top: -10%;
  z-index: 9999;
  -webkit-user-select: none;
  user-select: none;
  cursor: default;
  animation-name: hearts-shake;
  animation-duration: 3s;
  animation-timing-function: ease-in-out;
}

.heart .inner {
  animation-duration: 10s;
  animation-name: hearts-fall;
  animation-timing-function: linear;
}

/* Position and delay settings for each heart */
.heart:nth-of-type(1) { left: 1%; animation-delay: 0s; }
.heart:nth-of-type(1) .inner { animation-delay: 0s; }
.heart:nth-of-type(2) { left: 10%; animation-delay: 1s; }
.heart:nth-of-type(2) .inner, .heart:nth-of-type(9) .inner { animation-delay: 1s; }
.heart:nth-of-type(3) { left: 20%; animation-delay: 0.5s; }
.heart:nth-of-type(3) .inner, .heart:nth-of-type(7) .inner { animation-delay: 6s; }
.heart:nth-of-type(4) { left: 30%; animation-delay: 2s; }
.heart:nth-of-type(12) .inner, .heart:nth-of-type(4) .inner { animation-delay: 4s; }
.heart:nth-of-type(5) { left: 40%; animation-delay: 2s; }
.heart:nth-of-type(11) .inner, .heart:nth-of-type(5) .inner { animation-delay: 2s; }
.heart:nth-of-type(6) { left: 50%; animation-delay: 3s; }
.heart:nth-of-type(6) .inner { animation-delay: 8s; }
.heart:nth-of-type(7) { left: 60%; animation-delay: 2s; }
.heart:nth-of-type(8) { left: 70%; animation-delay: 1s; }
.heart:nth-of-type(8) .inner { animation-delay: 2.5s; }
.heart:nth-of-type(9) { left: 80%; animation-delay: 0s; }
.heart:nth-of-type(10) { left: 90%; animation-delay: 1.5s; }
.heart:nth-of-type(10) .inner { animation-delay: 3s; }
.heart:nth-of-type(11) { left: 25%; animation-delay: 0s; }
.heart:nth-of-type(12) { left: 65%; animation-delay: 2.5s; }

body {
  margin: 0;
  padding: 50;
  border: 0;
  background: radial-gradient(circle at 10% 20%, #b7141b 0%, #cc2d4f 90%);
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
  box-sizing: border-box;
  display: flex;
  opacity: 0;
  transition: opacity 4s;
  -webkit-transition: opacity 4s; /* Safari */
  align-items: center;
  justify-content: center;
  flex-direction: column;
  height: 100vh;
  width: 100vw;

}


div.textContainer {
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 20px;
  z-index: 10000; /* Higher than hearts */
}

.chatUpLine {
  font-size: 10vw;
  text-align: center;
  font-family: Slopes, monospace;
  color: #f9cf63;
  text-shadow: 2px 2px 3px rgba(0,0, 0, 0.2);
}

.floating-credit {
  position: fixed;
  bottom: 15px;
  right: 15px;
  background: rgba(0, 0, 0, 0.7); /* Slight transparency */
  color: white;
  font-size: 3.5vw;
  font-family: Arial, sans-serif;
  padding: 6px 10px;
  border-radius: 20px;
  text-decoration: none;
  transition: background 0.3s, opacity 0.3s;
  opacity: 0.4; /* Starts subtle */
  z-index: 10000;
}

.floating-credit:hover {
  background: rgba(0, 0, 0, 0.9);
  opacity: 0.6;
}