html,
body {
    width: 100%;
    height: 100%;
}

body {
    margin: 0;
}

.canvas {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    background-color: #000000;
}

.container {
    position: relative;
}

.text {
    color: #8b0000;
    font-size: 15vw;
    font-weight: 700;
    line-height: 0.8;
}

.fire-box {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4vw;
    animation: fireBox 10s ease-in-out infinite;
}

.fire-box::after {
    content: '';
    position: absolute;
    left: 0;
    top: 100%;
    width: 100%;
    height: 15vw;
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 1) 1vw);
}

@keyframes fireBox {
    from {
        bottom: 0;
    }
    to {
        bottom: 100%;
    }
}

.fire {
    --fire-size: 5vw;

    z-index: 1;
    position: absolute;
    width: var(--fire-size);
    /* mix-blend-mode: hard-light; */
}

.particle {
    position: absolute;
    width: var(--fire-size);
    height: var(--fire-size);
    border-radius: 50%;
    background-image: radial-gradient(circle, rgba(255, 80, 0, 1) 20%, rgba(255, 80, 0, 0) 70%);
    mix-blend-mode: screen;
    animation: particle 1s ease-in-out infinite;
    opacity: 0;
    transform: translateY(0) scale(var(1));
}

@keyframes particle {
    from {
        opacity: 0;
        transform: translateY(0) scale(var(1));
    }

    20% {
        opacity: 1;
    }

    to {
        opacity: 0;
        transform: translateY(-15vw) scale(0);
    }
}
