/* General Styles */

:root{

    /* Colors */
    --first-color: hsl(199, 100%, 36%);
    --first-color-light: hsl(199, 64%, 48%);
    --black-color: hsl(199, 100%, 7%);
    --text-color: hsl(29, 8%, 65%);
    --body-color: hsl(198, 22%, 9%);
    --white: #fff;

    /* Font */
    --dmSans: 'DM Sans', sans-serif; 
    --title-size: 1.125rem;
    --subtitle-size: .75rem;
}

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body{
    font-family: var(--dmSans);
    background-color: var(--body-color);
}

a{
    text-decoration: none;
}

ul{
    list-style: none;
}

img{
    max-width: 100%;
    height: auto;
}

/* Card */

.container{
    height: 100vh;
    margin-inline: 1.5rem;
    display: grid;
    place-items: center;
}

.card{
    position: relative;
    background-color: var(--black-color);
    width: 16rem;
    padding: 1.25rem 2rem 3rem;
    border-radius: 1.5rem;
    text-align: center;
    box-shadow: 0 .25rem 1rem hsla(25, 75%, 8%, .2);
}

.card__img{
    width: 100px;
    border-radius: 50%;
}

.card__border{
    width: 6.875rem;
    height: 6.875rem;
    border: .125rem solid var(--first-color);
    border-radius: 50%;
    display: grid;
    place-items: center;
    margin: 0 auto .75rem;
}

.card__name{
    color: var(--first-color);
    font-size: var(--title-size);
    font-weight: 500;
}

.card__profession{
    color: var(--text-color);
    font-size: var(--subtitle-size);
    font-weight: 500;
}

.card__social{
    width: 12.5rem;
    background-color: var(--first-color);
    padding: .75rem;
    border-radius: 3rem;
    text-align: initial;
    box-shadow: 0 8px 24px hsla(25, 75%, 8%, .3);
    position: absolute;
    left: 0;
    right: 0;
    bottom: -28px;
    margin: 0 auto;
    overflow: hidden;
    transform-origin: 1.125rem 1.0625rem;
}

.card__social-control{
    position: relative;
    transform-origin: 1.125rem 1.125rem;
    transition: transform .45s ease;
    transform: rotate(0);
}

.card__social-toggle{
    display: inline-flex;
    background-color: var(--black-color);
    color: var(--first-color);
    font-size: 20px;
    padding: 8px;
    border-radius: 50%;
    cursor: pointer;
    position: relative;
    z-index: 1;
}

.card__social-text{
    display: block;
    color: var(--black-color);
    font-size: var(--subtitle-size);
    font-weight: 500;
}

.card__social-list{
    display: inline-flex;
    column-gap: 12px;
    transform: rotate(135deg);
    transform-origin: 18px 17px;
}

.card__social-link{
    display: inline-flex;
    background-color: var(--first-color-light);
    color: var(--black-color);
    font-size: 20px;
    padding: 6px;
    border-radius: 50%;
}

.card__social-text, .card__social-list{
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    padding-left: 49.6px;
}

.card__social-text{
    top: 8px;
}

/* Rotate social */

.animation .card__social-control{
    transform: rotate(-135deg);
}

/* Up animation */

.card__social.animation{
    animation: up-animation 1s ease-in-out forwards;
}

@keyframes up-animation{
    0%, 100%{
        transform: rotate(0);
    }    
    50%, 60%{
        transform: rotate(-3deg);
    }   
    88%{
        transform: rotate(1deg);
    }
}

/* Down animation */

.card__social.down-animation{
    animation: down-animation 1s ease-in-out forwards;
}

@keyframes down-animation {
    0%, 100%{
        transform: rotate(0);
    }    
    50%, 60%{
        transform: rotate(6deg);
    }   
    88%{
        transform: rotate(-1deg);
    }
}