body {
    background-image: url(img/bg.png);
    background-size: 102px;
    background-attachment: fixed;
    font-family: "Schoolbell", cursive;
    font-optical-sizing: auto;
    font-style: normal;
    color: #8b0f43;
    cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' style='font-size:24px'><text y='24'>🪄</text></svg>") 16 16, auto;
}

svg text {
    font-family: "Schoolbell", cursive;
}

h1,
h2,
h3 {
    font-family: "Schoolbell", cursive;
    font-weight: 400;
}

svg {
    display: block;
}

.animation-wrapper {
    position: relative;
    width: 220px;
    height: 220px;
    margin: auto;
}

.blob-bg {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.ico {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90px;
    height: 90px;
}

.ico svg {
    height: 40px;
    width: 40px;
    fill: #e46f9f
}

@keyframes musicPulse {
    0% {
        transform: scale(1);
        opacity: .6;
    }

    70% {
        transform: scale(1.6);
        opacity: 0;
    }

    100% {
        opacity: 0;
    }
}

.music-pulse {
    animation: musicPulse 2s infinite;
}

.sparkle {
    position: fixed;
    width: 10px;
    height: 10px;
    background-color: #fff;
    border-radius: 50%;
    pointer-events: none;
    animation: sparkle-fade 1s linear forwards;
    z-index: 9999;
    box-shadow: 0 0 10px #fff, 0 0 20px rgba(255, 0, 149, 0.469);
}

@keyframes sparkle-fade {
    0% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
    }

    100% {
        transform: translate(-50%, -50%) translate(calc((Math.random() - 0.5) * 50px),
                calc((Math.random() - 0.5) * 50px)) scale(0);
        opacity: 0;
    }
}