
:root {
    --color1: #083344;
    --color2: #155e75;
    --color3: #0ea5e9;
    --accent: #67e8f9;
    --text-color: #FFF;
    --text-color2: #DDD;
}

* {
    margin: 0;
    padding: 0;
    color: var(--text-color);
    font-family: Roboto, Sans-serif;  
}

a {
    text-decoration: none;
    &:hover {
        color: var(--accent);
    }
}

p, ul:not(.nav-bar *) {
    background-color: var(--color2);
    padding: 20px;
    margin: 10px;
    box-shadow: 1px 1px 10px 5px var(--color2);
    border-radius: 20px;
    animation-name: blur-scale;
    animation-timeline: view();
    animation-range: 0% 25%;
}

body {
    margin: auto;
    max-width: 1200px;
    background-color: var(--color1);
}

.header {
    text-align: center;
}

#logo {
    position: relative;
    height: 110px;
    padding: 25px;
    text-align: center;
    animation: logo_transition 3s;
}

.nav-bar {
    display: flex;
    position: sticky;
    border-radius: 0 0 25px 25px;
    top: 0;
    z-index: 5;
    animation: enhance-nav;
    animation-timeline: scroll();
    animation-range: 100px;
}

.nav-bar ul {
    padding: 20px;
    flex: 1;
    text-align: center;
}

.code-bg-container {
    background-color: #000;
    display: flex;
    margin-bottom: 20px;
    justify-content: center;
    align-items: center;
}

#code-bg {
    width: 100%;
    animation: code_bg 10s;
    opacity: 25%;
}

#tech-logos {
    position: absolute;
    margin-top: 100px;
    width: 75%;
    max-width: 720px;
    z-index: 2;
    animation: h1-and-logos 10s;
}

h1 {
    position: absolute;
    top: 250px;
    z-index: 3;
    animation: h1-and-logos 10s;
}

#bio-first {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

#bio p:first-child {
    flex: auto;
    max-width: 60%;
    padding: 10px;
    box-sizing: border-box;
}

.zet-img {
    max-width: 30%;
    max-height: 200px;
    margin: auto;
    margin-bottom: 20px;
    margin-top: 20px;
    border-radius: 10px;
    vertical-align: center;
    box-shadow: 1px 1px 10px 0px var(--color1);
    animation-name: blur-scale;
    animation-timeline: view();
    animation-range: 0% 25%;
}

#bio {
    color: #eee;
    background-color: var(--color3);
    padding: 10px;
    margin: 10px;
    margin-bottom: 50px;
    box-shadow: 1px 1px 10px 0px var(--color2);
    border-radius: 25px
}

#bio h2 {
    font-size: 30px;
    width: 200px;
    padding: 20px;
    border-left: 5px solid var(--accent);
    border-radius: 20px 0 0 20px;
    background: linear-gradient(to right, var(--color2) 0%, var(--color3) 100%);
    animation-name: h2-translation;
    animation-timeline: view();
    animation-range: 0% 50%;
}

#tech-badges {
    text-align: center;
    padding: 20px;
}

#tech-badges h3 {
    font-size: 30px;
    text-align: left;
    margin: 20px;
    padding: 10px;
    border-left: 5px solid var(--color3);
    animation: border-flash 0.5s infinite both alternate ease-in-out;
}

.tech-badges {
    margin: 5px;
    box-shadow: 0 0 25px 1px var(--color1);
    animation-name: opa-scale;
    animation-timeline: view();
    animation-range: 0% 25%;
}

#projects {
    padding: 10px;
    background-color: var(--color2);
    box-shadow: 1px 1px 10px 5px var(--color1);
    border-radius: 25px;
}

#projects h2 {
    font-size: 40px;
    margin-left: 10px;
    padding: 20px;
    justify-items: left;
    border-left: 5px solid var(--color2);
    animation: border-flash 0.5s infinite both alternate ease-in-out;
}

.project-card {
    background-color: var(--color3);
    border-radius: 25px;
    box-shadow: 1px 1px 10px 5px var(--color2);
    padding: 10px;
    margin-bottom: 30px;
    display: flex;
    text-align: center;
    flex-direction: column;
    animation-name: card-transition;
    animation-timeline: view();
    animation-range: 0% 25%;
}

.project-card h3 {
    font-size: 36px;
    padding: 30px;
    background: linear-gradient(to left, var(--color3) 0%, var(--color2) 50%, var(--color3) 100%);
}

.project-img {
    position: relative;
    margin: 10px;
    height: 200px;
    border-radius: 5px;
    box-shadow: 1px 1px 10px 5px var(--color2);
    animation-name: opa-scale;
    animation-timeline: view();
    animation-range: 0% 25%;
}

#projects h3 {
    padding-left: 5px;
    border-radius: 5px 5px;
}

#projects p {
    margin: 20px;
    text-align: left;
    color: var(--text-color2);
    padding: 20px;
}

#contact {
    border: 5px solid var(--accent);;
    border-radius: 250px;
    margin: 100px auto 100px auto;
    width: 50%;
    padding: 50px;
    background: linear-gradient(to bottom, var(--color3) 75%, var(--color2) 100%);
    animation: contact-shadow 1s infinite alternate;
}

#contact ul {
    display: flex;
    justify-content: center;
    margin-bottom: 25px;
}

#contact li {
    font-size: 20px;
    padding: 10px;
    margin: auto;
}

#contact h2 {
    padding: 20px;
    margin: auto;
    font-size: 36px;
    text-align: center;
    background: radial-gradient(var(--color1) 0%, var(--color3) 70%);
}

#social {
    display: flex;
    margin: auto;
    justify-content: space-around;
}

.contact-icons {
    margin: auto;
    height: 50px;
    padding: 10px;
    animation: icons-scale 3s infinite alternate ease-in-out;
}

footer {
    padding: 50px;
    text-align: center;
    background: linear-gradient(to bottom, var(--color1) 0%, var(--color3) 50%, var(--color1) 100%);
}

footer p {
    font-size: 12px;
    animation: none;
}


@keyframes h2-translation {
    from {
        transform: translateX(100px);
        opacity: 0;
    }
    to {
        opacity: 1;
        transform: translateX(0)
    }
}

@keyframes opa-scale {
    from {
        opacity:0;
        scale: 0;    
    }
    to {
        opacity: 1;
        scale: 1;
    }
}

@keyframes blur-scale {
    from {
        filter: blur(100px);
        scale: 0;    
    }
    to {
        filter: blur(0);
        scale: 1;
    }
}


@keyframes card-transition {
    from {
        scale: 0;
        opacity: 0;
    }
    to {
        scale: 1;
        opacity: 1
    }
}

@keyframes icons-scale {
    to {
        scale: 1.25;
    }
}

@keyframes border-flash {
    to {
        border-color: var(--accent);
    }
}

@keyframes contact-shadow {
    to {
        box-shadow: 0 10px 100px 0px var(--accent);
    }
}

@keyframes logo_transition {
    from {
        opacity: 0;
    }
    to {
        opacity: 100%;
    }
}

@keyframes enhance-nav{
    to {
        background-color: var(--color1);
        backdrop-filter: blur(50px);
    }
}

@keyframes code_bg{
    from {
        opacity: 1;
    }
    to {
        opacity: 25%;
    }
}

@keyframes h1-and-logos{
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@media (max-width: 810px) {
    #bio p:first-child {
        max-width: 100%;
    }
}

@media (max-width: 810px) {
    .zet-img{
        max-width: 75%;
        max-height: fit-content;
    }
}