/* Import cute, playful fonts */
@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Quicksand:wght@400;500;600;700&display=swap');

:root {
    --pink-bg: #ffb3d9;
    --pink-light: #ffd4e8;
    --pink-dark: #ff85c0;
    --pink-accent: #ff1493;
    --white: #ffffff;
    --text-dark: #8b3a62;
    --shadow: rgba(139, 58, 98, 0.2);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Quicksand', sans-serif;
    background: linear-gradient(135deg, var(--pink-bg) 0%, var(--pink-light) 100%);
    min-height: 100vh;
    overflow-x: hidden;
    position: relative;
}

/* Screens */
.screen {
    display: none;
    min-height: 100vh;
    position: relative;
    padding: 2rem;
}

.screen.active {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* Floating Hearts Background */
.floating-hearts {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 1;
}

.floating-hearts::before,
.floating-hearts::after {
    content: '💗';
    position: absolute;
    font-size: 2rem;
    opacity: 0.3;
    animation: float 6s infinite ease-in-out;
}

.floating-hearts::before {
    top: 20%;
    left: 10%;
    animation-delay: 0s;
}

.floating-hearts::after {
    top: 60%;
    right: 15%;
    animation-delay: 2s;
}

@keyframes float {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-30px) rotate(10deg); }
}

/* Character Images */
.character-images {
    position: relative;
    width: 100%;
    max-width: 600px;
    height: 250px;
    margin-bottom: 2rem;
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: center;
}

.character {
    width: 200px;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 4px 8px var(--shadow));
    animation: bounceCenter 2s infinite ease-in-out;
}

.char-center {
    animation: bounceCenter 2s infinite ease-in-out;
}

@keyframes bounceCenter {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-15px); }
}

/* Question Container */
.question-container {
    background: var(--white);
    border-radius: 30px;
    padding: 3rem 2.5rem;
    box-shadow: 0 10px 40px var(--shadow);
    max-width: 500px;
    width: 100%;
    text-align: center;
    z-index: 2;
    position: relative;
    border: 5px solid var(--pink-light);
}

.valentine-question {
    font-family: 'Fredoka', sans-serif;
    font-size: 2.5rem;
    color: var(--text-dark);
    margin-bottom: 2.5rem;
    font-weight: 700;
    line-height: 1.2;
    text-shadow: 2px 2px 0 var(--pink-light);
}

/* Buttons */
.button-container {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}

.response-btn {
    font-family: 'Fredoka', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    padding: 1rem 2.5rem;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    box-shadow: 0 5px 15px var(--shadow);
    position: relative;
}

.yes-btn {
    background: linear-gradient(135deg, var(--pink-accent), var(--pink-dark));
    color: var(--white);
    transform: scale(1);
}

.yes-btn:hover {
    transform: scale(1.05);
    box-shadow: 0 8px 25px rgba(255, 20, 147, 0.4);
}

.yes-btn:active {
    transform: scale(0.95);
}

.no-btn {
    background: var(--white);
    color: var(--text-dark);
    border: 3px solid var(--pink-light);
    transform: scale(1);
}

.no-btn:hover {
    background: var(--pink-light);
}

.no-btn:active {
    transform: scale(0.95);
}

/* Confirmation Screen */
.confirmation-container {
    width: 100%;
    max-width: 700px;
    z-index: 2;
}

.scroll-frame {
    background: var(--white);
    border-radius: 40px;
    padding: 3rem;
    box-shadow: 0 15px 50px var(--shadow);
    border: 8px solid var(--pink-light);
    position: relative;
    animation: slideIn 0.6s ease-out;
}

@keyframes slideIn {
    from {
        opacity: 0;
        transform: translateY(30px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.scroll-frame::before,
.scroll-frame::after {
    content: '💝';
    position: absolute;
    font-size: 3rem;
    animation: rotate 4s infinite ease-in-out;
}

.scroll-frame::before {
    top: -20px;
    left: -20px;
}

.scroll-frame::after {
    bottom: -20px;
    right: -20px;
    animation-delay: 2s;
}

@keyframes rotate {
    0%, 100% { transform: rotate(0deg); }
    50% { transform: rotate(20deg); }
}

.couple-photo-container {
    width: 100%;
    margin-bottom: 2rem;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 5px 20px var(--shadow);
}

.couple-photo {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

.message-container {
    text-align: center;
}

.confirmation-title {
    font-family: 'Fredoka', sans-serif;
    font-size: 3rem;
    color: var(--pink-accent);
    margin-bottom: 1.5rem;
    font-weight: 700;
    text-shadow: 2px 2px 0 var(--pink-light);
}

.sweet-message {
    font-family: 'Quicksand', sans-serif;
    font-size: 1.4rem;
    color: var(--text-dark);
    line-height: 1.8;
    font-weight: 500;
    padding: 0 1rem;
}

/* Decorative hearts scattered around */
body::before,
body::after {
    content: '❤️';
    position: fixed;
    font-size: 1.5rem;
    opacity: 0.2;
    pointer-events: none;
    z-index: 1;
}

body::before {
    top: 10%;
    right: 5%;
    animation: pulse 3s infinite;
}

body::after {
    bottom: 15%;
    left: 8%;
    animation: pulse 3s infinite;
    animation-delay: 1.5s;
}

@keyframes pulse {
    0%, 100% { transform: scale(1); opacity: 0.2; }
    50% { transform: scale(1.2); opacity: 0.4; }
}

/* Responsive Design */
@media (max-width: 768px) {
    .valentine-question {
        font-size: 2rem;
    }
    
    .character {
        width: 150px;
    }
    
    .character-images {
        height: 180px;
    }
    
    .response-btn {
        font-size: 1.2rem;
        padding: 0.8rem 2rem;
    }
    
    .question-container {
        padding: 2rem 1.5rem;
    }
    
    .scroll-frame {
        padding: 2rem 1.5rem;
    }
    
    .confirmation-title {
        font-size: 2.2rem;
    }
    
    .sweet-message {
        font-size: 1.2rem;
    }
}

@media (max-width: 480px) {
    .valentine-question {
        font-size: 1.6rem;
    }
    
    .button-container {
        flex-direction: column;
        gap: 1rem;
    }
    
    .response-btn {
        width: 100%;
    }
    
    .character {
        width: 120px;
    }
}