@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800&display=swap');

body {
    position: relative;
    width: 100vw;
    overflow: no-display;
    margin: 0;
    font-family: "JetBrains Mono", monospace;
    caret-color: rgba(0, 0, 0, 0);
    background: #282828;
}

::-webkit-scrollbar {
    display: none;
}


.z-front {
    z-index: 110;
}

.z-mid {
    z-index: 105;
}

.z-back {
    z-index: 101;
}

.screen-container {
    width: 100%;
    position: relative;
}

.one-screen {
    height: 100vh;
}

.empty-bottom {
    padding-bottom: 20vh;
}

.introduction-screen {
    display: grid;

    grid-auto-flow: row;
    grid-template-columns: 1fr 1fr 1fr;
    width: 30%;
}

.contact-screen {
    display: grid;
    grid-auto-flow: row;
    grid-template-columns: 1fr 1fr 1fr;
    width: 60%;
}

.content-container {
    width: 50%;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
}

.double-column {
    grid-template-columns: 1fr 2fr;
}

.triple-column {
    padding: 2em 0;
    grid-template-columns: 1fr;
}

.skill-columns {
    grid-template-columns: 1fr 1fr 1fr;
}

.content-center {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}


.content-center-right {
    display: flex;
    flex-direction: column;
}

.no-overflow {
    overflow: hidden;
}

.square-container {
    position: relative;
    width: 100%;
    height: 100%;
}

.circle {
    position: relative;
    border-radius: 50%;
    transition: 0.05s ease-in-out;
}

.contact-pointer {
    cursor: pointer;
}

.contact {
    transition: 0.2s ease-in-out;
}


.contact > a {
    width: 100%;
    height: 100%;
    color: unset;
    text-decoration: none;
}


.service {
    position: relative;
    cursor: pointer;
}

.impressum-link {
    color:white;
    display: flex;
    justify-content: center;
    padding-bottom: 10px;
    text-decoration: none;
}

.impressum-link:visited {
    color:white;
    text-decoration: none;
}

/*

Impressum



.Impressum {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: white;
    mix-blend-mode: difference;
    font-size: 12px;
}

.impressum-container{
    display: flex;
    grid-template-columns: 1fr 2fr;

}
/*

legend style

*/


.legend-container {
    max-width: 100vw;
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    left: 20%;
    width: 20%;
    background: yellow;
    z-index: 1;
    transition: 0.5s ease-in-out;
}

.legend {
    padding-left: 0%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    width: 100%;
    height: 100%;
}


.cross-line {
    position: absolute;
    width: 0%;
    height: 8%;
    top: 15%;
    left: 0%;
    z-index: +1;
    border: yellow;
    transition: 0.3s ease-in-out;
}


/*

font style

*/

.font-center {
    text-align: center;
}


.font-left {
    text-align: start;
}


.font-right {
    text-align: start;
}


h1 {
    margin: 0;
}

h2 {
    margin: 0;
}

.ft-80 {
    font-size: 80px;
}

.ft-60 {
    max-font-size: 60px;
}

.ft-legend {
    font-size: 30px;
}

.ft-15 {
    font-size: 24px;
}

.ft-contact {
    font-size: 15px;
}

.ft-center-left {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    text-align: justify;
    width: 94%;
    height: 94%;
    margin: 3%;
}

.ft-center-right {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-end;
    text-align: justify;
    width: 94%;
    height: 94%;
    margin: 3%;
}


.typewriter{
    letter-spacing: .60em;
}

.contact-title {
    padding: 5%;
}

.contact-text {
    position: absolute;
    bottom: 10%;
    left: 50%;
    opacity: 0;
    transform: translateX(-50%) translateY(-50%);
    transition: 0.1s ease-in-out;
}

/*

color palette

 */

.blank-bg {
    background: none;
}

.yellow-bg {
    background: yellow;
}

.mint-bg {
    background: #52bf88;
}

.dark-bg {
    background: #221817;
}

.blank-color-bg {
    background: #282828;
}

.white-ft {
    color: #ffffff;
}

.yellow-ft {
    color: #ffff00;
}

.mint-ft {
    color: #52bf88;
}

.black-ft {
    color: #000000;
}

.image-bg {
    background-size: cover;
}

.color-diff {
    mix-blend-mode: difference;
}

/*

pictures

*/

#profile-picture {
    position: absolute;
    width: 100%;
    bottom: -1%;
    left: -30%;
    z-index: 1;
    opacity: 0;
    transition: 1s ease-in-out;
}

#profile-picture > img {
    width: 150%;
}

.pic-bg {
    position: relative;
}

.logo-img {
    width: 100%;
}

.skill-img {
    width: 100%;
}

.hobby-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.contact-image {
    width: 50%;
    transition: 0.2s ease-in-out;
}

.abs-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    transition: 0.3s ease-in-out;
    opacity: 0;
    cursor: auto;
}

.abs-center:hover {
    opacity: 1;
    cursor: pointer;
}

#envelope {
    position: absolute;
    z-index: 151;
    top: 60%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    transition: 0.3s ease-in-out;
}

#letter {
    position: absolute;
    z-index: 150;
    top: 54%;
    left: 49.8%;
    transform: translateX(-50%) translateY(-50%);
    transition: 0.3s ease-in-out;
}

#outlook {
    position: absolute;
    z-index: 152;
    top: 50%;
    left: 45.2%;
    transform: translateX(-50%) translateY(-50%);
    transition: 0.3s ease-in-out;
}


@keyframes bounce {
    0% {
        transform: translateX(-50%) translateY(-50%);
    }
    100% {
        transform: translateX(-50%) translateY(-65%);
    }
}

@keyframes rotate {
    0% {
        transform: translateX(-50%) translateY(-50%) rotateY(0);
    }
    70% {
        transform: translateX(-50%) translateY(-50%) rotateY(90deg);
    }
    100% {
        transform: translateX(-50%) translateY(-50%) rotateY(90deg);

    }
}


@media only screen and (max-width: 600px) {
    .introduction-screen {
        width: 100%;
    }

    .contact-screen {
        width: 98%;
    }
    .legend-container{
        height: 35vh;
    }

    .legend{
        opacity: 0;
    }
    .content-container {
        width: 100%;
        height: 100%;
        grid-template-columns: 1fr;
    }

    .double-column {
        grid-template-columns: 1fr;
    }

    .triple-column {
        grid-template-columns: 1fr;
    }

    .logo-img {
        width: 50%;
    }

    .empty-bottom{
        padding-bottom: 40vh;
    }

    .hobby-img {
        height: 20vh;
        object-fit: cover;
        object-position: center;
    }

    .skill-columns {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .content-center-right {
        align-items: flex-end;
        padding-right: 10%;
    }

    #profile-picture {
        position: absolute;
        bottom: 100%;
        left: -20%;
        z-index: 1;
    }

    #profile-picture > img {
        width: 50%;
    }

    .ft-60 {
        font-size: 23px;
    }

    .ft-contact {
        font-size: 0px;
    }

    .ft-30 {
        font-size: 15px;
    }

    .ft-15 {
        font-size: 12px;
    }
}

@media only screen and (min-width: 600px) {
    .introduction-screen {
        width: 100%;
    }

    .contact-screen {
        width: 95%;
    }


    .legend {
        opacity: 0;
    }

    .content-container {
        width: 100%;
        height: 100%;
        grid-template-columns: 1fr;
    }

    .double-column {
        grid-template-columns: 1fr;
    }

    .triple-column {
        grid-template-columns: 1fr;
    }

    .logo-img {
        width: 50%;
    }

    .hobby-img {
        height: 15vh;
        object-fit: cover;
        object-position: center;
    }


    .skill-columns {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .content-center-right {
        align-items: flex-end;
        padding-right: 10%;
    }

    #profile-picture {
        position: absolute;
        bottom: 100%;
        left: -25%;
        z-index: 1;
    }

    #profile-picture > img {
        width: 55%;
    }

    .ft-60 {
        font-size: 33px;
    }

    .ft-contact {
        font-size: 0;
    }

    .ft-30 {
        font-size: 18px;
    }
}

@media only screen and (min-width: 768px) {
    .introduction-screen {
        width: 100%;
    }

    .contact-screen {
        width: 80%;
    }


    .legend {
        opacity: 0;
    }

    .content-container {
        width: 100%;
        height: 100%;
        grid-template-columns: 1fr;
    }

    .double-column {
        grid-template-columns: 1fr;
    }

    .triple-column {
        grid-template-columns: 1fr;
    }

    .logo-img {
        width: 40%;
        height: 100%;
    }

    .hobby-img {
        height: 20vh;
    }

    .skill-columns {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .content-center-right {
        align-items: flex-end;
        padding-right: 10%;
    }

    #profile-picture {
        position: absolute;
        bottom: 100%;
        left: -25%;
    }

    #profile-picture > img {
        width: 50%;
    }

    .ft-60 {
        font-size: 40px;
    }

    .ft-contact {
        font-size: 0;
    }
}

@media only screen and (min-width: 992px) {
    .introduction-screen {
        width: 70%;
    }

    .contact-screen {
        width: 60%;
    }

    .legend {
        opacity: 0;
    }

    .content-container {
        width: 94%;
        grid-template-columns: 1fr;
    }

    .double-column {
        grid-template-columns: 1fr;
    }

    .logo-img {
        width: 35%;
    }

    .skill-columns {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .hobby-img {
        height: 20vh;
        object-fit: cover;
        object-position: center;
    }

    .triple-column {
        grid-template-columns: 1fr;
    }

    .content-center-right {
        align-items: flex-end;
        padding: 0;
    }

    #profile-picture {
        position: absolute;
        bottom: 100%;
        left: -15%;
    }

    #profile-picture > img {
        width: 50%;
    }

    .ft-60 {
        font-size: 45px;
    }

    .ft-contact {
        font-size: 10px;
    }
}

@media only screen and (min-width: 1200px) {
    .introduction-screen {
        width: 55%;
    }

    .contact-screen {
        width: 70%;
    }

    .content-container {
        width: 75%;
        min-height: 100%;
        grid-template-columns: 1fr 1fr 1fr;
    }

    .double-column {
        grid-template-columns: 1fr 2fr;
    }

    .triple-column {
        grid-template-columns: 1fr;
    }


    .legend {
        padding-left: 5%;
        opacity: 1;
    }

    .hobby-img {
        height: 100%;
        object-fit: cover;
        object-position: center;;
    }

    .logo-img {
        width: 80%;
    }

    .skill-columns {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .content-center-right {
        align-items: center;
        padding: 0;
    }

    #profile-picture {
        position: absolute;
        bottom: -1.5%;
        left: -30%;
    }

    #profile-picture > img {
        width: 123%;
    }

    .ft-60 {
        font-size: 60px;
    }

    .ft-contact {
        font-size: 12px;
    }

    .ft-legend{
        font-size: 18px;
    }
}

@media only screen and (min-width: 1400px) {
    .introduction-screen {
        width: 45%;
        max-width: 1000px;
    }

    .contact-screen {
        width: 55%;
        max-width: 1000px;
    }

    .content-container {
        width: 55%;
        max-width: 1000px;
        grid-template-columns: 1fr 1fr 1fr;
    }

    .double-column {
        grid-template-columns: 1fr 2fr;
    }

    .triple-column {
        grid-template-columns: 1fr;
    }

    .introduction-screen {
        width: 40%;
        max-width: 1200px;
    }

    .legend{
        padding-left: 5%;
        opacity: 1;
    }
    .hobby-img {
        height: 100%;
        object-fit: cover;
        object-position: center;;
    }

    .skill-columns {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .content-center-right {
        align-items: center;
        padding: 0;

    }

    #profile-picture {
        position: absolute;
        bottom: -1.5%;
        left: -50%;
    }

    #profile-picture > img {
        width: 145%;
    }

    .ft-contact {
        font-size: 13px;
    }
    .ft-legend{
        font-size: 24px;
    }
}