/* PROFILE */

.profile-card{
    background:white;
    border-radius:36px;
    padding:45px 35px;
    text-align:center;
    box-shadow:
    0 20px 60px rgba(0,0,0,.06);
    max-width:520px;
    margin:25px auto;
    animation:fadeUp .5s ease;
}

.profile-avatar{
    width:82px;
    height:82px;
    margin:auto;
    border-radius:28px;
    background:
    linear-gradient(
        135deg,
        #2563eb,
        #4f8dfd
    );
    color:white;
    display:flex;
    justify-content:center;
    align-items:center;
    font-size:34px;
    font-weight:700;
    box-shadow:
    0 15px 35px rgba(37,99,235,.28);
    margin-bottom:22px;
    transition:.3s;
}

.profile-avatar:hover{
    transform:
    translateY(-4px)
    rotate(-4deg);
}

.profile-card h2{
    font-size:32px;
    margin-bottom:5px;
}

.profile-card p{
    color:#64748b;
    margin-bottom:8px;
}

.profile-email{
    display:block;
    color:#94a3b8;
    margin-bottom:28px;
}

.profile-actions{
    display:flex;
    justify-content:center;
    gap:14px;
    flex-wrap:wrap;
}

.edit-btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:15px 26px;
    border-radius:22px;
    background:#eff6ff;
    color:#2563eb;
    text-decoration:none;
    font-weight:600;
    transition:.25s;
}

.edit-btn:hover{
    transform:translateY(-3px);
    background:#dbeafe;
}

.logout-btn{
    border:none;
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:15px 28px;
    border-radius:22px;
    background:#ef4444;
    color:white;
    cursor:pointer;
    font-size:15px;
    font-weight:600;
    transition:.25s;
    box-shadow:
    0 10px 25px rgba(239,68,68,.22);
}

.logout-btn:hover{
    transform:translateY(-3px);
    background:#dc2626;
}

@media(max-width:768px){

    .profile-card{

        margin:20px 0 95px;
        border-radius:32px;
        min-height:auto;

        padding:
        35px
        24px;

    }

    .profile-actions{

        flex-direction:column;
        align-items:center;

    }

    .edit-btn,
    .logout-btn{

        width:100%;
        justify-content:center;

    }

}

.profile-login-required{

    max-width:450px;

    margin:60px auto;

    background:#fff;

    border-radius:24px;

    padding:40px;

    text-align:center;

    box-shadow:
    0 10px 30px rgba(0,0,0,.08);

    display:flex;
    flex-direction:column;
    align-items:center;
}

.profile-login-required .login-image{

    width:220px;

    margin-bottom:20px;
}

.profile-login-required h3{

    font-size:28px;

    font-weight:700;

    margin-bottom:10px;
}

.profile-login-required p{

    color:#64748b;

    line-height:1.7;

    margin-bottom:25px;
}

.profile-login-required .login-btn{

    display:flex;

    align-items:center;

    justify-content:center;

    min-width:180px;

    height:50px;

    background:#2563eb;

    color:#fff;

    border-radius:14px;

    text-decoration:none;

    font-weight:700;
}


.profile-login-required{
    max-width:450px;
    margin:60px auto;
    background:#fff;
    border-radius:28px;
    padding:40px;
    text-align:center;

    display:flex;
    flex-direction:column;
    align-items:center;

    position:relative;
    overflow:hidden;

    box-shadow:
    0 15px 40px rgba(0,0,0,.08);
}

/* Glow background */
.profile-login-required::before{
    content:'';
    position:absolute;

    width:280px;
    height:280px;

    top:20px;
    left:50%;

    transform:translateX(-50%);

    background:
    radial-gradient(
        circle,
        rgba(37,99,235,.18),
        transparent 70%
    );

    animation:glowMove 5s ease-in-out infinite;

    z-index:1;
}

/* Partikel */
.profile-login-required::after{
    content:'';
    position:absolute;
    inset:0;

    background-image:
    radial-gradient(circle,#2563eb 2px,transparent 2px),
    radial-gradient(circle,#60a5fa 2px,transparent 2px);

    background-size:
    120px 120px,
    180px 180px;

    opacity:.12;

    animation:
    particleMove 12s linear infinite;

    pointer-events:none;
}

/* Gambar */
.profile-login-required .login-image{
    width:220px;
    height:auto;

    position:relative;
    z-index:2;

    margin-bottom:20px;

    animation:
    floatImage 4s ease-in-out infinite,
    glowPulse 3s ease-in-out infinite;

    filter:
    drop-shadow(0 0 15px rgba(37,99,235,.25))
    drop-shadow(0 0 35px rgba(37,99,235,.2));
}

.profile-login-required h3,
.profile-login-required p,
.profile-login-required .login-btn{
    position:relative;
    z-index:2;
}

.profile-login-required h3{
    font-size:24px;
    font-weight:800;
    margin-bottom:10px;
}

.profile-login-required p{
    max-width:320px;
    color:#64748b;
    line-height:1.7;
    margin-bottom:25px;
}

.profile-login-required .login-btn{
    min-width:190px;
    height:52px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:linear-gradient(
        135deg,
        #2563eb,
        #4f86ff
    );

    color:#fff;
    text-decoration:none;
    font-weight:700;
    border-radius:14px;

    transition:.3s;
}

.profile-login-required .login-btn:hover{
    transform:translateY(-3px);
    box-shadow:
    0 10px 25px rgba(37,99,235,.35);
}

/* Animasi */

@keyframes floatImage{

    0%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-12px);
    }

    100%{
        transform:translateY(0);
    }
}

@keyframes glowPulse{

    0%{
        filter:
        drop-shadow(0 0 10px rgba(37,99,235,.2))
        drop-shadow(0 0 20px rgba(37,99,235,.1));
    }

    50%{
        filter:
        drop-shadow(0 0 30px rgba(37,99,235,.5))
        drop-shadow(0 0 60px rgba(37,99,235,.25));
    }

    100%{
        filter:
        drop-shadow(0 0 10px rgba(37,99,235,.2))
        drop-shadow(0 0 20px rgba(37,99,235,.1));
    }
}

@keyframes glowMove{

    0%{
        transform:
        translateX(-50%)
        scale(1);
    }

    50%{
        transform:
        translateX(-50%)
        scale(1.15);
    }

    100%{
        transform:
        translateX(-50%)
        scale(1);
    }
}

@keyframes particleMove{

    from{
        background-position:
        0 0,
        0 0;
    }

    to{
        background-position:
        120px 120px,
        -180px 180px;
    }
}