*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Poppins', sans-serif;
}


body{
    background:linear-gradient(
        135deg,
        #ffe4ec,
        #ffd6e7,
        #ffc2dd
    );
    color:#4a3b47;
    overflow-x:hidden;
}


/* Background Kerlap-Kerlip */
.background{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:100%;
    overflow:hidden;
    z-index:-1;

    background:
    radial-gradient(circle at top left,#ff9fc755,transparent 35%),
    radial-gradient(circle at bottom right,#ff69b455,transparent 35%);
}


/* Glitter / Bintang */
.background::before{

    content:"";

    position:absolute;
    width:100%;
    height:100%;

    background-image:
    radial-gradient(circle,#ffffff 2px,transparent 3px),
    radial-gradient(circle,#ff69b4 2px,transparent 3px),
    radial-gradient(circle,#fff 1px,transparent 2px);

    background-size:
    80px 80px,
    120px 120px,
    50px 50px;


    animation:sparkle 5s infinite linear;

    opacity:.8;
}



@keyframes sparkle{

    0%{
        background-position:
        0 0,
        20px 20px,
        40px 40px;

        opacity:.4;
    }

    50%{
        opacity:1;
    }

    100%{
        background-position:
        80px 80px,
        140px 140px,
        100px 100px;

        opacity:.4;
    }
}



/* Hero */
.hero{

    min-height:100vh;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    text-align:center;
}



/* Foto Bergelombang */
.profile{

    width:220px;
    height:220px;

    object-fit:cover;


    border-radius:
    45% 55% 50% 50% /
    55% 45% 55% 45%;


    border:5px solid white;


    box-shadow:
    0 0 30px #ff69b4;


    animation:
    float 3s ease-in-out infinite,
    wave 4s ease-in-out infinite;
}



@keyframes float{

    0%,100%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-20px);
    }

}



@keyframes wave{

    0%,100%{

        border-radius:
        45% 55% 50% 50% /
        55% 45% 55% 45%;

    }


    50%{

        border-radius:
        55% 45% 60% 40% /
        45% 60% 40% 55%;

    }

}





/* Card */

.card{

    width:85%;
    max-width:1000px;

    margin:40px auto;

    padding:30px;


    background:rgba(255,255,255,.55);

    backdrop-filter:blur(12px);

    border-radius:20px;


    border:
    1px solid rgba(255,182,193,.5);

    transition:.5s;

}



.card:hover{

    transform:translateY(-10px);

    box-shadow:
    0 0 25px #ff69b4;
}



.card h2{

    margin-bottom:20px;

    color:#e75480;

}



/* Skill */

.skills{

    display:flex;

    flex-wrap:wrap;

    gap:15px;

}



.skills span{

    background:#ff8fb1;

    color:white;

    padding:10px 20px;

    border-radius:30px;

    transition:.4s;

}



.skills span:hover{

    transform:scale(1.1);

    background:#ff4f8b;

}



/* Gallery */

.gallery{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));

    gap:20px;

}



.gallery img{

    width:100%;

    border-radius:15px;

    transition:.4s;

}


.gallery img:hover{

    transform:scale(1.05);

}




/* Kontak */

.contact{

    display:flex;

    gap:15px;

}



.contact a{

    background:#ff8fb1;

    color:white;

    padding:12px 20px;

    border-radius:30px;

    text-decoration:none;

}



footer{

    text-align:center;

    padding:30px;

    color:#7a4b63;

}