html,
body {
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    max-width: 100vw;
}

body {
    position: relative;
}

#particles-js {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -10;
    pointer-events: none;
}

#cursor-blob {
    pointer-events: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 200px;
    height: 200px;
    background: rgba(59, 130, 246, 0.15);
    border-radius: 50%;
    z-index: -5;
    transform: translate(-50%, -50%);
    backdrop-filter: blur(40px);
    opacity: 0;
}

body:hover #cursor-blob {
    opacity: 1;
}

.animated-blob {
    position: fixed !important;
    width: 300px;
    height: 300px;
    z-index: -20;
    border-radius: 50%;
    filter: blur(60px);
    opacity: 0.6;
    animation: morph 20s ease-in-out infinite alternate;
}

@keyframes morph {
    0% {
        border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
        transform: rotate(0deg) scale(1);
    }

    50% {
        border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%;
        transform: rotate(90deg) scale(1.05);
    }

    100% {
        border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
        transform: rotate(180deg) scale(1);
    }
}

.dark-toggle {
    cursor: pointer;
    font-size: 1.25rem;
}