:root {
    --primary-color: #fff;
    --bg-color: #9c100eba;
    --bg-envelope-color: #f5edd1;
    --envelope-tab: #ecdeb8;
    --envelope-cover: #e6cfa7;
    --envelope-shadow: rgba(0, 0, 0, 0.2);
    --text-color: #444;
    --heart-color: #9c100eba;
}

body {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    background: var(--bg-color);
    display: flex;
    align-items: center;
    justify-content: center;
}

.container {
    height: 100vh;
    display: grid;
    place-items: center;
    padding-top: 50px;
}

.container > .envelope-wrapper {
    background: var(--bg-envelope-color);
    box-shadow: 0 0 40px var(--envelope-shadow);
    display: flex;
    align-items: center;
    justify-content: center;
}

.container > .envelope-wrapper > .envelope {
    width: 350px; 
    height: 270px; 
    position: relative;
}

.container > .envelope-wrapper > .envelope::before {
    content: "";
    position: absolute;
    top: 0;
    z-index: 2;
    border-top: 150px solid var(--envelope-tab); 
    border-right: 175px solid transparent; 
    border-left: 175px solid transparent; 
    transform-origin: top;
    transition: all 0.5s ease-in-out 0.7s;
}

.container > .envelope-wrapper > .envelope::after {
    content: "";
    position: absolute;
    z-index: 2;
    width: 0px;
    height: 0px;
    border-top: 150px solid transparent; 
    border-left: 175px solid var(--envelope-cover); 
    border-right: 175px solid var(--envelope-cover); 
    border-bottom: 120px solid var(--envelope-cover); 
}

.letter {
    position: absolute;
    right: 17%;
    bottom: 0%;
    width: 60%; 
    height: 80%;
    background: var(--primary);
    transition: all 1s ease-in-out;
    padding: 20px 10px;
    box-shadow: 0 0 10px var(--envelope-shadow);
}

.envelope > .letter {
    position: absolute;
    right: 23%;
    bottom: 0;
    width: 48%;
    height: 80%;
    background: var(--primary);
    text-align: center;
    transition: all 1s ease-in-out, opacity 0.5s ease-in-out;
    box-shadow: 0 0 5px var(--shadow-color);
    padding: 20px 10px;
    opacity: 0; /* Initially hidden */
}

.letter > .text{
    font-family: 'Times New Roman', Times, serif;
    font-size: 7px;
    color: var(--text-color);
    text-align: left;
}

.heart{
    position: absolute;
    top: 62%;
    left: 50%;
    width: 20px; 
    height: 20px; 
    background: var(--heart-color);
    z-index: 4;
    transform: translate(-50%, -50%) rotate(45deg); 
    transition: transform 0.5s ease-in-out 1s;
    box-shadow: 0 0 10px var(--envelope-shadow);
    cursor: pointer;
}

.heart::before,
.heart::after {
    content: "";
    position: absolute;
    width: 20px; 
    height: 20px; 
    background: var(--heart-color);
    border-radius: 50%;
}

.heart::before {
    top: -10px; 
}

.heart::after {
    right: 10px; 
}

.flap > .envelope::before {
    z-index: 0;
    transform: rotateX(180deg); 
}
.flap > .envelope .letter {
    bottom: 100px;
    transform: scale(1.5);
    background: var(--bg-envelope-color);
    z-index: 2;
    opacity: 1; /* Make visible when flap is active */
    transition-delay: 1s;
}

.flap > .heart {
    transform: rotate(80deg);
    transition-delay: 0.4s;
}
