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

 body {
     font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
     background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
     min-height: 100vh;
     position: relative;
     overflow-x: hidden;
 }

 /* Hearts Background Animation */
 .hearts-container {
     position: fixed;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     pointer-events: none;
     z-index: 1;
 }

 .heart {
     position: absolute;
     color: rgba(255, 255, 255, 0.08);
     font-size: 24px;
     animation: float 8s ease-in-out infinite;
 }

 @keyframes float {

     0%,
     100% {
         transform: translateY(0px) rotate(0deg);
         opacity: 0.05;
     }

     50% {
         transform: translateY(-20px) rotate(10deg);
         opacity: 0.15;
     }
 }

 .container {
     max-width: 600px;
     margin: 0 auto;
     padding: 2rem;
     position: relative;
     z-index: 10;
     min-height: 100vh;
     display: flex;
     flex-direction: column;
     justify-content: center;
 }

 .page-title {
     text-align: center;
     font-size: 2.8rem;
     color: white;
     margin-bottom: 1rem;
     text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
     animation: fadeInDown 0.8s ease-out;
 }

 .intro-text {
     text-align: center;
     font-size: 1.2rem;
     color: rgba(255, 255, 255, 0.9);
     margin-bottom: 3rem;
     line-height: 1.6;
     animation: fadeInUp 0.8s ease-out 0.2s both;
 }

 @keyframes fadeInDown {
     from {
         opacity: 0;
         transform: translateY(-30px);
     }

     to {
         opacity: 1;
         transform: translateY(0);
     }
 }

 @keyframes fadeInUp {
     from {
         opacity: 0;
         transform: translateY(30px);
     }

     to {
         opacity: 1;
         transform: translateY(0);
     }
 }

 @keyframes slideInRight {
     from {
         opacity: 0;
         transform: translateX(50px);
     }

     to {
         opacity: 1;
         transform: translateX(0);
     }
 }

 @keyframes slideOutLeft {
     from {
         opacity: 1;
         transform: translateX(0);
     }

     to {
         opacity: 0;
         transform: translateX(-50px);
     }
 }

 /* Progress Bar */
 .progress-container {
     margin-bottom: 2rem;
     animation: fadeInUp 0.8s ease-out 0.4s both;
 }

 .progress-bar {
     background: rgba(255, 255, 255, 0.2);
     height: 8px;
     border-radius: 20px;
     overflow: hidden;
     backdrop-filter: blur(10px);
 }

 .progress-fill {
     height: 100%;
     background: linear-gradient(90deg, #4facfe 0%, #00f2fe 100%);
     border-radius: 20px;
     transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
     box-shadow: 0 0 10px rgba(79, 172, 254, 0.5);
 }

 .progress-text {
     text-align: center;
     color: white;
     font-size: 0.9rem;
     margin-top: 0.5rem;
     opacity: 0.8;
 }

 /* Form Styling */
 #interestedForm {
     position: relative;
     min-height: 400px;
 }

 .question-section {
     background: rgba(255, 255, 255, 0.95);
     padding: 2.5rem;
     border-radius: 20px;
     box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
     backdrop-filter: blur(15px);
     border: 1px solid rgba(255, 255, 255, 0.2);
     position: absolute;
     top: 0;
     left: 0;
     right: 0;
     opacity: 0;
     transform: translateX(100px);
     transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
     pointer-events: none;
 }

 .question-section.active {
     opacity: 1;
     transform: translateX(0);
     pointer-events: all;
     animation: slideInRight 0.5s ease-out;
 }

 .question-section.exiting {
     animation: slideOutLeft 0.3s ease-in;
 }

 .question-section label {
     display: block;
     font-size: 1.4rem;
     color: #2d3748;
     margin-bottom: 1.5rem;
     font-weight: 600;
     text-align: center;
 }

 .form-input {
     width: 100%;
     padding: 1rem 1.5rem;
     font-size: 1.1rem;
     border: 2px solid #e2e8f0;
     border-radius: 15px;
     background: white;
     transition: all 0.3s ease;
     margin-bottom: 2rem;
     box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
 }

 .form-input:focus {
     outline: none;
     border-color: #667eea;
     box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1), 0 4px 20px rgba(0, 0, 0, 0.1);
     transform: translateY(-2px);
 }

 .form-input:valid {
     border-color: #48bb78;
 }

 .btn-next {
     width: 100%;
     padding: 1.2rem 2rem;
     font-size: 1.1rem;
     font-weight: 600;
     color: white;
     background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
     border: none;
     border-radius: 15px;
     cursor: pointer;
     transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
     box-shadow: 0 8px 25px rgba(118, 75, 162, 0.3);
     position: relative;
     overflow: hidden;
 }

 .btn-next::before {
     content: '';
     position: absolute;
     top: 0;
     left: -100%;
     width: 100%;
     height: 100%;
     background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
     transition: left 0.5s;
 }

 .btn-next:hover::before {
     left: 100%;
 }

 .btn-next:hover {
     transform: translateY(-3px);
     box-shadow: 0 12px 35px rgba(118, 75, 162, 0.4);
 }

 .btn-next:active {
     transform: translateY(-1px);
 }

 /* Special styling for textarea */
 textarea.form-input {
     resize: vertical;
     min-height: 120px;
     font-family: inherit;
     line-height: 1.5;
 }

 /* Special styling for select */
 select.form-input {
     cursor: pointer;
     background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6,9 12,15 18,9'%3e%3c/polyline%3e%3c/svg%3e");
     background-repeat: no-repeat;
     background-position: right 1rem center;
     background-size: 1.5rem;
     padding-right: 3rem;
     appearance: none;
 }

 /* Back button */
 .btn-back {
     position: absolute;
     top: -60px;
     left: 0;
     background: rgba(255, 255, 255, 0.9);
     color: #667eea;
     border: 2px solid #667eea;
     padding: 0.8rem 1.5rem;
     border-radius: 10px;
     cursor: pointer;
     transition: all 0.3s ease;
     font-weight: 600;
     backdrop-filter: blur(10px);
 }

 .btn-back:hover {
     background: #667eea;
     color: white;
     transform: translateX(-5px);
 }

 /* Question counter */
 .question-counter {
     position: absolute;
     top: -60px;
     right: 0;
     background: rgba(255, 255, 255, 0.9);
     color: #667eea;
     padding: 0.8rem 1.5rem;
     border-radius: 10px;
     font-weight: 600;
     backdrop-filter: blur(10px);
     border: 2px solid rgba(102, 126, 234, 0.2);
 }

 /* Responsive Design */
 @media (max-width: 768px) {
     .container {
         padding: 1rem;
     }

     .page-title {
         font-size: 2.2rem;
     }

     .intro-text {
         font-size: 1.1rem;
         margin-bottom: 2rem;
     }

     .question-section {
         padding: 2rem;
     }

     .question-section label {
         font-size: 1.2rem;
     }

     .btn-back,
     .question-counter {
         position: static;
         margin-bottom: 1rem;
         display: inline-block;
     }
 }

 @media (max-width: 480px) {
     .question-section {
         padding: 1.5rem;
     }

     .page-title {
         font-size: 2rem;
     }
 }

 /* Loading animation for buttons */
 .btn-loading {
     position: relative;
     color: transparent;
 }

 .btn-loading::after {
     content: '';
     position: absolute;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     width: 20px;
     height: 20px;
     border: 2px solid #ffffff;
     border-radius: 50%;
     border-top-color: transparent;
     animation: spin 1s linear infinite;
 }

 @keyframes spin {
     to {
         transform: translate(-50%, -50%) rotate(360deg);
     }
 }