html {
    height: 100%;
}

body {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    margin: 0;
    background: #f8d1d1;
}

.heart {
    --c: red;
    height: auto;
    max-height: 80vh;
    aspect-ratio: 1;
    border-image: radial-gradient(var(--c) 69%,#0000 70%) 84.5%/50%;
    clip-path: polygon(-42% 0,50% 91%, 142% 0);
}

.heart.heart__animated {
    animation: beat .5s infinite alternate;
    transform-origin: center;
}

@keyframes beat {
	to { transform: scale(1.05); }
}

.heart .heart_container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100%;
}

.heart .heart_container h1.initials {
    font-family: "Brush Script MT", cursive;
    margin: 0;
}

.heart .heart_container h3.message {
    text-align: center;
    font-family: Garamond, serif;
    padding-bottom: 2rem;
    margin-top: 0;
    margin-bottom: 0;
}

@media (max-width: 575px) {
    .heart {
        width: 90vw;
    }

    .heart .heart_container h1.initials {
        font-size: 5rem;
    }

    .heart .heart_container h3.message {
        font-size: 2rem;
    }
}

@media (min-width: 576px) {
    .heart {
        width: 85vw;
    }

    .heart .heart_container h1.initials {
        font-size: 6rem;
    }

    .heart .heart_container h3.message {
        font-size: 2.25rem;
    }
}

@media (min-width: 768px) {
    .heart {
        width: 75vw;
    }

    .heart .heart_container h1.initials {
        font-size: 6.5rem;
    }

    .heart .heart_container h3.message {
        font-size: 2.5rem;
    }
}

@media (min-width: 992px) {
    .heart {
        width: 65vw;
    }

    .heart .heart_container h1.initials {
        font-size: 7.25rem;
    }

    .heart .heart_container h3.message {
        font-size: 2.75rem;
    }
}

@media (min-width: 1200px) {
    .heart {
        width: 50vw;
    }

    .heart .heart_container h1.initials {
        font-size: 8rem;
    }

    .heart .heart_container h3.message {
        font-size: 3rem;
    }
}