@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes backgroundIn {
    from { background-size: 100% 0%; }
    to { background-size: 100% 100%; }
}
@keyframes dropIn {
    from { transform: translateY(-20px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}
@keyframes riseIn {
    from { transform: translateY(20px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

h1, h2 {
    align-self: center;
}
.introduction h1 {
    transform: translateY(-20px);
    opacity: 0;
    filter: drop-shadow(5px 5px 0px black) drop-shadow(0 0 10px black);
}
.introduction h1.visible {
    animation: 0.5s dropIn .25s ease forwards;
}
.languages {
    align-self: center;
}

.home-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    filter: blur(5px);
    z-index: -1;
}
.home-icon {
    width: 250px;
    align-self: center;
    border-radius: 10%;
    filter: drop-shadow(5px 5px 0px black) drop-shadow(0 0 30px var(--primary-color));
}
.home-icon.visible {
    animation: dropIn .5s ease forwards;
}

.introduction {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding: 16px;

    overflow-y: hidden;

    background: linear-gradient(to bottom, rgba(100,0,0,0.5), rgba(255,0,0,0));
    background-repeat: no-repeat;
    border-bottom: 1px dashed lightgray;
}
.introduction.visible {
    animation: backgroundIn 1s ease forwards;
}

.description {
    font-size: 18px;
    align-content: center;
    text-align: center;
    z-index: 1;
}

.socials {
    display: flex;
    gap: 16px;
    padding: 8px;
    border-left: 2px dashed var(--primary-color);
    border-right: 2px dashed var(--primary-color);
}
.socials.visible {
    animation: .5s fadeIn 0s ease backwards;
}
.socials img {
    width: 50px;
    margin: 0px;
    transition: transform 200ms ease, filter 200ms ease, margin 200ms ease;

    filter: drop-shadow(5px 5px 0px black) drop-shadow(0 0 15px black);
}
.socials img.visible {
    animation: .25s riseIn 0.5s ease backwards;
}

.socials img:hover {
    transform: scale(1.25) rotate(10deg);
    filter: drop-shadow(2px 2px 0px black) drop-shadow(0 0 20px var(--primary-color));
    margin: 0px 8px 0px 8px;
}