* {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    body {
      min-height: 100vh;
      background: linear-gradient(135deg, #ffb6c1, #ffd6e8, #fff0f5);
      background-size: 400% 400%;
      animation: backgroundShift 15s ease infinite;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      font-family: 'Poppins', sans-serif;
      position: relative;
    }

    @keyframes backgroundShift {
      0% { background-position: 0% 50%; }
      50% { background-position: 100% 50%; }
      100% { background-position: 0% 50%; }
    }

    .hearts-container {
      position: absolute;
      width: 100%;
      height: 100%;
      overflow: hidden;
      z-index: 0;
    }

    .heart {
      position: absolute;
      width: 15px;
      height: 15px;
      background-color: rgba(255, 255, 255, 0.7);
      transform: rotate(45deg);
      animation: float-up linear infinite;
    }

    .heart:before,
    .heart:after {
      content: "";
      position: absolute;
      width: 15px;
      height: 15px;
      background-color: rgba(255, 255, 255, 0.7);
      border-radius: 50%;
    }

    .heart:before {
      top: -7.5px;
      left: 0;
    }

    .heart:after {
      left: -7.5px;
      top: 0;
    }

    .heart::after {
      content: '✨';
      position: absolute;
      top: -10px;
      left: -10px;
      font-size: 10px;
      opacity: 0.7;
      animation: sparkle 2s infinite ease-in-out;
    }

    @keyframes sparkle {
      0%, 100% { transform: scale(1); opacity: 0.7; }
      50% { transform: scale(1.3); opacity: 1; }
    }

    @keyframes float-up {
      0% {
        transform: translateY(100vh) rotate(45deg);
        opacity: 0;
      }
      10% {
        opacity: 0.8;
      }
      90% {
        opacity: 0.8;
      }
      100% {
        transform: translateY(-100vh) rotate(45deg);
        opacity: 0;
      }
    }

    .container {
      position: relative;
      z-index: 2;
      width: 90%;
      max-width: 600px;
      background-color: rgba(255, 255, 255, 0.85);
      border-radius: 20px;
      box-shadow: 0 15px 35px rgba(255, 105, 180, 0.3);
      padding: 40px;
      backdrop-filter: blur(10px);
      overflow: hidden;
    }

    .she-says {
      text-align: center;
      margin-bottom: 30px;
      position: relative;
    }

    .she-says h2 {
      font-family: 'Great Vibes', cursive;
      font-size: 38px;
      color: #c2185b;
      white-space: nowrap;
      overflow: hidden;
      border-right: 3px solid #c2185b;
      width: 0;
      animation: typing 2s steps(14) forwards, blink 0.5s step-end infinite alternate;
    }

    @keyframes typing {
      from { width: 0; }
      to { width: 170px; }
    }

    @keyframes blink {
      50% { border-color: transparent; }
    }

    .she-says .quote {
      font-family: 'Quicksand', sans-serif;
      font-size: 24px;
      color: #ad1457;
      font-weight: 500;
      opacity: 0;
      animation: fadeIn 1s ease 2s forwards;
    }

    .reply {
      margin-top: 30px;
    }

    .reply-item {
      display: flex;
      align-items: center;
      margin-bottom: 15px;
      opacity: 0;
      transform: translateX(-20px);
      transition: all 0.5s ease;
    }

    .reply-item.visible {
      opacity: 1;
      transform: translateX(0);
      animation: bounceIn 0.8s ease forwards;
    }

    @keyframes bounceIn {
      0% { transform: scale(0.95); opacity: 0; }
      50% { transform: scale(1.05); opacity: 0.7; }
      100% { transform: scale(1); opacity: 1; }
    }

    .reply-item .emoji {
      font-size: 24px;
      margin-right: 15px;
      width: 30px;
      text-align: center;
      transition: 0.3s ease;
    }

    .reply-item .emoji:hover {
      transform: scale(1.3) rotate(5deg);
      text-shadow: 0 0 8px #ff99c8;
    }

    .reply-item .text {
      font-size: 20px;
      color: #880e4f;
      line-height: 1.5;
    }

    .reply-item .highlight {
      font-weight: 600;
      color: #d6336c;
    }

    .love-note {
      margin-top: 30px;
      padding: 20px;
      background-color: rgba(255, 182, 193, 0.2);
      border-radius: 15px;
      font-style: italic;
      font-size: 18px;
      text-align: center;
      color: #880e4f;
      opacity: 0;
      animation: fadeIn 1s ease 5s forwards;
      border-left: 4px solid #f48fb1;
    }

    .footer {
      text-align: center;
      font-family: 'Great Vibes', cursive;
      font-size: 30px;
      margin-top: 25px;
      color: #c2185b;
      opacity: 0;
      animation: fadeIn 1s ease 6s forwards, pulse 2s infinite;
    }

    @keyframes fadeIn {
      from {
        opacity: 0;
        transform: translateY(10px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    @keyframes pulse {
      0%, 100% { transform: scale(1); }
      50% { transform: scale(1.1); }
    }


 @media (max-width: 600px) {
      body {
        align-items: flex-start;
        justify-content: flex-start;
        padding: 0;
      }
      .container {
        width: 100vw;
        max-width: 100vw;
        min-height: 100vh;
        border-radius: 0;
        box-shadow: none;
        padding: 20px 8px 40px 8px;
      }
      .footer {
        font-size: 22px;
        margin-top: 18px;
      }
    }
