:root{
    --main-background: #212121;
    --main-text-color: #FFFAFA;
    --accent-color: #00f0c0;
    --main-border-color: #414141;
    --main-link-color: lightblue;
    --main-card-background: #212121;
    --main-border-radius: 5px;
    --main-border-radius-big: 20px;
    --main-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    --main-box-shadow-big: 0 6px 8px rgba(0, 0, 0, 0.3);
    --main-transition: 0.3s;
    --main-margin-xxs: 4px;
    --main-margin-xs: 8px;
    --main-margin-s: 12px;
    --main-margin-m: 16px;
    --main-margin-l: 20px;
    --main-margin-xl: 28px;
    --main-margin-xxl: 40px;
    accent-color: var(--accent-color);
}

::selection {
    background-color: darkblue;
    color: var(--main-text-color);
}

@font-face {
    font-family: "NotoSans";
    src: url(fonts/Noto-Sans/NotoSans-Medium.ttf);
}

body{
    background-color: var(--main-background);
    color: var(--main-text-color);
    height: 100%;
    scroll-behavior: smooth;
    font-family: 'NotoSans', sans-serif;
    max-width: 100vw;
}

header{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 32px;
    box-shadow: var(--main-box-shadow-big);
}

a{
    color: var(--main-link-color);
    text-decoration: none;
    width: fit-content;
}

a:hover{
    color: var(--main-link-color);
    text-decoration: underline;
    transform: scale(1.05);
    transition: all 0.3s ease;
}

a:visited{
    color: var(--main-link-color);
}

.buttonNone:hover{
    background-color: transparent;
    transition: none;
    animation: none;
}

h1{
    font-size: 1.75em;
}

h2{
    font-size: 1.5em;
}

h3{
    font-size: 1.25em;
}

dialog{
    background-color: var(--main-background);
    border: 1px solid var(--main-border-color);
    border-radius: var(--main-border-radius);
    box-shadow: var(--main-box-shadow);
}

.dialogFoto{
    aspect-ratio: 16/9;
    height: 80vh;
}

header>nav{
    display: flex;
    gap: 20px;
}

footer{
    text-align: center;
}

.footerChange{
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: calc(100vh - 100px);
}

/* header>nav>a:hover{
    
    animation: glowing 20s linear infinite;
    transition: opacity 1s ease-out;
    background-clip: content-box;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-decoration: none;
    font-weight: 600;
} */

pre{
    background-color: black;
    color: white;
    padding: 10px;
    width: fit-content;
    border-radius: var(--main-border-radius);
    font-size: large;
    font-family: monospace;
}

.logo{
    aspect-ratio: 1/1;
    height: 50px;
    width: 50px;
}

.section1{
    display: flex;
    flex-grow: 1;
    justify-content: space-between;
    align-items: center;
    height: 87vh;
}

.intro{
    width: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 10px;
    margin-left: 5%;
}

.spin {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 300px;
    width: 50%;
    position: relative;
}

#image_me {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background-color: #ccc;
    background-image: url('images/me.webp');
    background-size: cover;
    position: absolute;
}


.orbit {
    position: absolute;
    width: 400px;
    height: 400px;
    animation: rotate 20s linear infinite;
}

.tech {
    position: absolute;
    width: 50px;
    height: 50px;
}

.icon {
    width: 100%;
    height: 100%;
    animation: counter-rotate 20s linear infinite;
}

@keyframes rotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes counter-rotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(-360deg);
    }
}

#tech1 {
    top: 0%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#tech2 {
    top: 18%;
    left: 82%;
    transform: translate(-50%, -50%);
}

#tech3 {
    top: 50%;
    left: 100%;
    transform: translate(-50%, -50%);
}

#tech4 {
    top: 82%;
    left: 82%;
    transform: translate(-50%, -50%);
}

#tech5 {
    top: 100%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#tech6 {
    top: 82%;
    left: 18%;
    transform: translate(-50%, -50%);
}

#tech7 {
    top: 50%;
    left: 0%;
    transform: translate(-50%, -50%);
}

#tech8 {
    top: 18%;
    left: 18%;
    transform: translate(-50%, -50%);
}

#tech9 {
    top: 0%;
    left: 50%;
    transform: translate(-50%, -50%);
}

textarea{
    overflow: hidden;
    resize: none;
    font-weight: lighter;
}

button, .button{
    width: 220px;
    height: 50px;
    border: none;
    outline: none;
    color: #fff;
    background: rgb(17, 17, 17);
    cursor: pointer;
    position: relative;
    z-index: 0;
    border-radius: 10px;
    font-weight: 600;
    font-size: larger;
}

.button{
    width: 100%;
    padding: 10px;
}

.button:hover{
    color: var(--main-text-color) !important;
}

button:before, .button:before{
    content: '';
    background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000);
    position: absolute;
    top: -2px;
    left: -2px;
    background-size: 400%;
    z-index: -1;
    filter: blur(5px);
    width: calc(100% + 4px);
    height: calc(100% + 4px);
    animation: glowing 20s linear infinite;
    opacity: 0;
    transition: opacity .3s ease-in-out;
    border-radius: 10px;
}

button:active, .button:active{
    color: #000
}

button:active:after, .button:active:after{
    background: transparent;
}

button:hover:before, .button:hover:before{
    opacity: 1;
}

button:after, .button:after{
    z-index: -1;
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: #111;
    left: 0;
    top: 0;
    border-radius: 10px;
}

@keyframes glowing{
    0%{
        background-position: 0 0;
    }
    50%{
        background-position: 400% 0;
    }
    100%{
        background-position: 0 0;
    }
}

.card {
    width: fit-content;
    height: fit-content;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 25px 25px;
    gap: 20px;
    /* box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.055); */
}

.contact>h2{
    margin: var(--main-margin-l);
}

.socialContainer {
    width: 80px;
    height: 100px;
    background-color: rgb(44, 44, 44);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    transition-duration: 1.2s;
    border-radius: 15px 0 15px 0px;
}

.containerOne:hover {
    background-color: #d62976;
    transition-duration: 1.2s;
}

.containerTwo:hover {
    background-color: #3DC24F;
    transition-duration: 1.2s;
}

.containerThree:hover {
    background-color: #1EC494;
    transition-duration: 1.2s;
}

.containerFour:hover {
    background-color: #f90101;
    transition-duration: 1.2s;
}

.socialContainer:active {
    transform: scale(0.9);
    transition-duration: 1.2s;
}

.socialSvg {
    width: 34px;
}

.socialSvg path {
    fill: rgb(255, 255, 255);
}

.socialContainer:hover .socialSvg {
    animation: slide-in-top 1.2s both;
}

@keyframes slide-in-top {
    0% {
        transform: translateY(-50px);
        opacity: 0;
    }  
    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

.karten {
    display: flex;
    flex-wrap: wrap;
    /* gap: 5%; */
    justify-content: flex-start;
    margin: 0 var(--main-margin-s);
}

.projectcard{
    display: flex;
    border-radius: var(--main-border-radius);
    background-color: var(--main-card-background);
    box-shadow: var(--main-box-shadow);
    border: var(--main-border-color);
    flex-direction: column;
    width: fit-content;
    max-width: 28%;
    padding: var(--main-margin-xs);
    margin: var(--main-margin-l) var(--main-margin-m);
}

.projectcard>a{
    margin: var(--main-margin-xs) 0;
}

.projectcard>h4{
    font-size: 1.4em;
}

.tags{
    width: 100%;
    display: flex;
    flex-grow: 1;
    flex-wrap: wrap;
    text-align: center;
    justify-content: center;
    align-items: center;
    flex-direction: row;
    gap: var(--main-margin-s);
}

.techtag{
    min-width: 100px;
    width: fit-content;
    height: fit-content;
    display: flex;
    flex-grow: 1;
    text-align: center;
    justify-content: center;
    align-items: center;
    margin-bottom: var(--main-margin-xs);
    border-radius: var(--main-border-radius-big);
    border: 1px solid var(--main-border-color);
}

.legende{
    margin-left: var(--main-margin-l);
    display: flex;
    flex-direction: row;
    gap: var(--main-margin-s);
    justify-content: center;
    align-items: center;
}

.legende>span{
    display: flex;
    justify-content: center;
    align-items: center;
}

.legende1{
    background-color: red;
    border-radius: 50%;
    height: 15px;
    width: 15px;
}

.legende2{
    background-color: yellow;
    border-radius: 50%;
    height: 15px;
    width: 15px;
}

.legende3{
    background-color: green;
    border-radius: 50%;
    height: 15px;
    width: 15px;
}

.pause{
    border: 1px solid red;
}

.pause:hover{
    transform: scale(1.05);
    transition: all 1s ease;
    border: 2px solid red;
    box-shadow: 0 6px 8px rgba(0, 0, 0, 0.3);
}

.inarbeit{
    border: 1px solid yellow;
}

.inarbeit:hover{
    transform: scale(1.05);
    transition: all 1s ease;
    border: 2px solid yellow;
    box-shadow: 0 6px 8px rgba(0, 0, 0, 0.3);
}

.fertig{
    border: 1px solid green;
}

.fertig:hover{
    transform: scale(1.05);
    transition: all 1s ease;
    border: 2px solid green;
    box-shadow: 0 6px 8px rgba(0, 0, 0, 0.3);
}

.title{
    display: flex;
    justify-content: center;
    align-items: center;
}


.socials{
    margin: var(--main-margin-m) 0;
}

.imgsocials>img{
    height: 5%;
    width: 15%;
    aspect-ratio: 16/9;
}

.about_me_container{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;    
}

.about_me{
    margin-bottom: 60px;
    max-width: 900px;
    display: flex;
    flex-direction: column;
}

.highlight{
    color: var(--accent-color);
    font-weight: bold;
}

.principles>li{
    margin-bottom: var(--main-margin-s);
}

.textcontact{
    text-decoration: underline;
    color: var(--main-link-color);
    cursor: pointer;
}

.deactivate{
    cursor: not-allowed;
    background-color: gray;
}

.deactivate:hover{
    background-color: gray;
    transition: none;
    animation: none;
}

.deactivate:hover .socialSvg{
    background-color: gray;
    transition: none;
    animation: none;
}

.contact{
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: var(--main-margin-m);
    flex: 1;
    flex-wrap: wrap;
}

/* .contact>section{
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    width: fit-content;
    height: fit-content;
}

.contact>section>a{
    width: fit-content !important;
}

.contact-container{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--main-margin-m);
    margin: 0 var(--main-margin-l);
} */

.contactcard{
    max-width: none;
}

.email{
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    width: fit-content;
    gap: var(--main-margin-s);
    flex-wrap: wrap;
}

.email>a, .contact>section>a{
    width: fit-content;
    text-align: center;
    align-items: center;
    display: flex;
}

.secondary {
    background: transparent;
    border: 1px solid var(--main-border-color);
    color: var(--main-link-color);
}

.secondary:hover {
    border-color: var(--main-link-color);
}

.secondary:before {
    display: none;
}

.secondary:after {
    background: transparent;
}

.none{
    text-decoration: none !important;
    color: inherit;
}

.none:visited{
    text-decoration: none !important;
    color: inherit;
}


/*Large Desktop, TV, etc.*/
@media screen and (min-width: 1200px){ 

}

/*Tablet landscape, laptop, Desktop*/
@media screen and (min-width: 992px) and (max-width: 1199px){
 
}

/*Tablet portrait*/
@media screen and (min-width: 767px) and (max-width: 991px) {
    .intro{
        width: 30%;
    }
    .section1{
        justify-content: flex-start;
    } 
    .contactcard{
        width: 100%;
        max-width: 500px;
    }
}

/*mobile landscape*/
@media screen and (min-width: 480px) and (max-width: 766px){
    .intro{
        width: 100%;
        justify-content: center;
        align-items: center;
    }
    .section1{
        flex-direction: column;
        justify-content: space-around;
    }
    .spin{
        height: 200px;
    }
    .orbit{
        width: 250px;
        height: 250px;
    }
    #image_me{
        width: 100px;
        height: 100px;
    }
    .socialContainer {
        width: 60px;
        height: 80px;   
    }
    .projectcard{
        width: 50%;
        min-width: 250px;
    }
}

/*mobile portrait*/
@media screen and (max-width: 479px){
    .intro{
        width: 100%;
        justify-content: center;
        align-items: center;
    }
    .section1{
        flex-direction: column;
        justify-content: space-around;
    }
    .spin{
        height: 200px;
    }
    .orbit{
        width: 250px;
        height: 250px;
    }
    #image_me{
        width: 100px;
        height: 100px;
    }
    .socialContainer {
        width: 60px;
        height: 80px;   
    }
    .projectcard{
        width: 100% !important;
        max-width: none;
    }
    header{
        padding: 10px;
    }
}

@media screen and (max-width: 300px) {
    header>nav{
        flex-direction: column;
        align-items: center;
        gap: 10px;
    }
}
