:root {
    --pink: #ff4d8d;
    --dark: #1a1a1a;
    --bg1: #ffe6f0;
    --bg2: #ffd6eb;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    height: 100vh;
    overflow: hidden;
    font-family: Poppins, system-ui, Arial;
    background: linear-gradient(135deg, var(--bg1), var(--bg2));
    display: flex;
    align-items: center;
    justify-content: center;
}

.card {
    position: relative;
    width: min(92vw, 520px);
    text-align: center;
    padding: 40px 20px 50px;
    border-radius: 24px;
    background: white;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .18);
    animation: float 4s ease-in-out infinite;
}

@keyframes float {

    0%,
    100% {
        transform: translateY(0)
    }

    50% {
        transform: translateY(-10px)
    }
}

h1 {
    font-family: Pacifico, cursive;
    color: var(--pink);
    font-size: 38px;
    margin: 10px 0 8px;
}

p {
    color: #444;
    margin-bottom: 30px;
}

.buttons {
    position: relative;
    height: 140px;
}

button {
    border: none;
    padding: 14px 26px;
    font-size: 18px;
    border-radius: 40px;
    cursor: pointer;
    position: absolute;
    transition: transform .25s ease, box-shadow .25s ease, background .25s;
}

#yesBtn {
    left: 18%;
    background: var(--pink);
    color: white;
    box-shadow: 0 10px 25px rgba(255, 77, 141, .5);
}

#yesBtn:hover {
    transform: scale(1.15);
}

#noBtn {
    right: 18%;
    background: #eee;
    color: #333;
    transform-origin: center;
}

#noBtn.shake {
    animation: shake .4s ease;
}

@keyframes shake {
    0% {
        transform: translateX(0)
    }

    25% {
        transform: translateX(-8px)
    }

    50% {
        transform: translateX(8px)
    }

    75% {
        transform: translateX(-6px)
    }

    100% {
        transform: translateX(0)
    }
}

/* Success Screen */
.success {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #fff0f6, #ffe0ef);
    border-radius: 24px;
    opacity: 0;
    pointer-events: none;
    transition: opacity .6s ease;
}

.success.show {
    opacity: 1;
    pointer-events: auto;
}

canvas {
    position: fixed;
    inset: 0;
    pointer-events: none;
}

.heart {
    position: fixed;
    font-size: 20px;
    animation: rise 4s linear forwards;
    pointer-events: none;
}

@keyframes rise {
    0% {
        transform: translateY(0) scale(.7);
        opacity: 1
    }

    100% {
        transform: translateY(-120vh) scale(1.6);
        opacity: 0
    }
}