* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}


/*** colors ***/
:root {
    --grey1: #758269;
    --grey2: #8E8D90;
    --grey3: #e6dcc7;
    --offblack: #101010;
    --red: #e19a6f;
    --darkred: #ffa169;
    --green: #8ea28d;
    --darkgreen: #784c84;
}


/*** fonts ***/
@font-face {
    font-family: 'manrope';
    src: url('fonts/Manrope-Regular.woff2') format('woff2'),
         url('fonts/Manrope-Regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'manrope';
    src: url('fonts/Manrope-Bold.woff2') format('woff2'),
         url('fonts/Manrope-Bold.woff') format('woff');
    font-weight: 700;
    font-style: bold;
}

@font-face {
    font-family: 'roc-grotesk';
    src: url('fonts/Roc Grotesk Medium.woff2') format('woff2'),
         url('fonts/Roc Grotesk Medium.woff') format('woff');
    font-weight: 500;
    font-style: medium;
}

@font-face {
    font-family: 'scotch-display';
    src: url('fonts/Scotch Display Medium Italic.woff2') format('woff2'),
         url('fonts/Scotch Display Medium Italic.woff') format('woff');
    font-weight: 500;
    font-style: medium italic;
}


p {
    font-family: 'manrope', sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 1.05vw;
    line-height: 1.7em;
    color: var(--offblack);
}

h1 {
    font-family: 'roc-grotesk', sans-serif;
    font-weight: 500;
    font-style: medium;
    font-size: 4.28vw;
    line-height: 1em;
    color: var(--offblack);
}

/* H1 Animation*/
h1 span {
    display: inline-block;
    opacity: 0;
    transition: 0.8s ease;
}

h1 span:hover {
    color: var(--red);
}

h1 span:nth-child(1) {
  animation: fade-in 0.8s 0.05s forwards cubic-bezier(0.11, 0, 0.5, 0);
}
  
h1 span:nth-child(2) {
  animation: fade-in 0.8s 0.1s forwards cubic-bezier(0.11, 0, 0.5, 0);
}

h1 span:nth-child(3) {
  animation: fade-in 0.8s 0.15s forwards cubic-bezier(0.11, 0, 0.5, 0);
}

h1 span:nth-child(4) {
  animation: fade-in 0.8s 0.2s forwards cubic-bezier(0.11, 0, 0.5, 0);
}

h1 span:nth-child(5) {
  animation: fade-in 0.8s 0.25s forwards cubic-bezier(0.11, 0, 0.5, 0);
}

h1 span:nth-child(6) {
  animation: fade-in 0.8s 0.3s forwards cubic-bezier(0.11, 0, 0.5, 0);
}

h1 span:nth-child(7) {
  animation: fade-in 0.8s 0.35s forwards cubic-bezier(0.11, 0, 0.5, 0);
}

h1 span:nth-child(8) {
  animation: fade-in 0.8s 0.4s forwards cubic-bezier(0.11, 0, 0.5, 0);
}

h1 span:nth-child(9) {
  animation: fade-in 0.8s 0.45s forwards cubic-bezier(0.11, 0, 0.5, 0);
}

h1 span:nth-child(10) {
  animation: fade-in 0.8s 0.5s forwards cubic-bezier(0.11, 0, 0.5, 0);
}

h1 span:nth-child(11) {
  animation: fade-in 0.8s 0.55s forwards cubic-bezier(0.11, 0, 0.5, 0);
}
  
@keyframes fade-in {
  100% {
    opacity: 1;
  }
}


h2 {
    font-family: 'scotch-display', sans-serif;
    font-weight: 500;
    font-size: 4.8vw;;
    line-height: 1em;
    color: var(--offblack);
}


h2::before {
    content: '';
    width: 90px;
    height: 90px;
    border-radius: 50px;
    margin-top: 2vh;
    margin-left: -38px;
    position: absolute;
    background: var(--green);
    z-index: -1;
}

h3 {
    font-family: 'roc-grotesk', sans-serif;
    font-weight: 500;
    font-size: 20px;
    line-height: 38px;
    margin-bottom: 10px;
    color: var(--offblack);
}

.auszeichnung {
    font-family: 'scotch-display', sans-serif;
    font-size: 4.7vw;
}

.emphasis {
    font-family: 'roc-grotesk', sans-serif;
    font-size: 20px;
    line-height: 23px;
    font-weight: 500;
    font-style: medium;
    color: var(--offblack);
}

p.date,
.place p {
    color: var(--grey2);
    font-weight: 600;
    margin-bottom: 10px;
}

p.small {
    font-size: 12px;
}

li {
    font-family: 'manrope', sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 18px;
    line-height: 30px;
    color: var(--grey3);
    list-style-position: inside;
    padding: 5px 0px;
    list-style-type: square;
}

.highlight,
.contact-grid p {
    font-family: 'roc-grotesk', sans-serif;
    font-size: 36px;
    line-height: 58px;
    font-weight: 500;
    font-style: medium;
    color: var(--offblack);
}


/*** Zentrierung ***/
.center {
    text-align: center;
}

.right {
    text-align: right;
}

.center {
    text-align: center;
}



/*** buttons & Links ***/

/* basic */
a {
    font-family: 'manrope', sans-serif;
    text-decoration: none;
    color: var(--red);
    text-decoration: underline;
    font-size: 16px;
    line-height: 28px;
    cursor: pointer;
}

a:hover {
    color: var(--darkred);
}

/* button */
a.btn {
    font-weight: 700;
    font-style: bold;
    display: flex;
    width: min-content;
    gap: 8px;
    margin-top: 100px;
    text-decoration: none;
}

a.btn:hover {
    color: var(--darkred);
}

a.btn svg{
    width: 18px;
}

a.btn .arrow {
    fill: var(--red);
}

a.btn:hover .arrow {
    fill: var(--darkred);
}

/* header */
header a {
    font-family: 'roc-grotesk', sans-serif;
    font-size: 32px;
    line-height: 22px;
    font-weight: 500;
    font-style: medium;
    color: var(--offblack);
    text-decoration: none;
}

header a:hover {
    color: var(--offblack);
}

/* footer */
footer a {
    font-family: 'manrope', sans-serif;
    font-weight: 700;
    font-size: 16px;
    line-height: 28px;
    text-decoration: none;
}

footer a:hover,
footer a:active {
    color: var(--red);
}

/* special */
.social a,
a.email {
    text-decoration: none;
}

a.email {
    font-family: 'roc-grotesk', sans-serif;
    font-size: 36px;
    line-height: 58px;
}




/*** basis layout ***/
html {
    width: 100%;
    height: 100%;
}

body {
    background: var(--grey1);
    display: flex;
    flex-wrap: wrap;
    overflow-x: hidden;
    width: 100%;
    min-height: 100%;
}

section {
    margin: 20vh 10vw;
}

img {
    max-width: 100%;
}


/*** Header ***/
header {
    width: 100%;
    display: flex;
    position: fixed;
    flex-wrap: wrap;
    z-index: 1;
}

header a {
    color: var(--offblack);
}

header .social img {
  width: 80%;
}

header > div {
  display: flex;
  position: absolute;
}

header > div:not(:nth-child(2)) {
  /*project: z-index: 2;*/
  z-index: 0;
}

header > div:nth-child(even) {
  justify-content: flex-end;
}

header > div:nth-child(n+3) {
  align-items: flex-end;
}

header p {
    font-family: 'roc-grotesk', sans-serif;
    font-size: 32px;
    line-height: 22px;
    font-weight: 500;
    font-style: medium;
    color: var(--offblack);
}

header p,
header a {
    height: fit-content;
}

header .circle::after {
    content: '';
    width: 420px;
    height: 220px;
    margin: -125px 0px 0px -320px;
    border-radius: 50%;
    position: absolute;
    background: var(--red);
    z-index: -1;
    opacity: 0;
    transition: 0.4s ease;
}

header .nav .circle::after {
   margin: -125px 0px 0px -200px;
}

header .circle:hover::after,
header .circle:focus::after {
    opacity: 1;
}

header input:hover + .circle::after {
    opacity: 1;
}

/* Projekte */
.project {
    position: fixed;
    padding: 15px 0px 0px 15px;
  }

/* navi */
.nav {
  position: fixed;
  top: 0;
  right: 0;
}

p.circle {
  padding: 15px 15px 60px 70px;
}

#menuToggle {
    width: 100%;
    height: 100%;
    display: none;
    flex-direction: column;
    align-items: flex-end;
    position: fixed;
    overflow: scroll;

    z-index: 1;

    -webkit-user-select: none;
    user-select: none;
    right: 0px;
}

#menuToggle a {
    display: block;
    padding: 25px 0px;
    font-family: roc-grotesk, sans-serif;
    font-size: 70px;
    line-height: 70px;
    font-weight: 500;
    text-decoration: none;
    color: var(--offblack);
    position: relative;
    z-index: 1;
    width: fit-content;

    transition: color 0.3s ease;
}

#menuToggle a::before{
    content: '';
    width: 60px;
    height: 60px;
    border-radius: 50px;
    margin-top: 15px;
    margin-left: -30px;
    position: absolute;
    background: var(--green);
    z-index: -1;
    transition: 0.3s ease;
    opacity: 0;
}

#menuToggle a:hover::before,
#menuToggle a:active::before {
    opacity: 1;
}

#menu {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: absolute;
    width: 100%;
    min-height: 100%;
    padding: 50px 35px 50px 35px;
    gap: 0.5rem;
    transition: 1s ease;

    background-color: var(--grey1);
    list-style-type: none;
}

#menu div {
    width: 50%;
}

.close {
    display: none;
    z-index: 2;
    position: absolute;
    padding: 15px 15px 20px 30px;
    font-family: 'scotch-display', sans-serif;
    font-size: 70px;
    line-height: 50px;
    right: 0;
    transition: 0.3s ease;
    color: var(--offblack);
}

.close:hover {
    color: var(--red);
}

#menuon,
#menuoff {
    cursor: pointer;
}

#menu li {
    display: inline;
    position: relative;
    z-index: 2;
}

/* Social Media */
.social {
    display: flex;
    position: fixed;
    gap: 15px;
    bottom: 0;
    left: 0;
    padding: 0px 0px 15px 15px;
    z-index: 2;
}

#linkedin {
    width: auto;
    height: 40px;
}

.linkedin {
    fill: var(--offblack);
    transition: 0.3s ease;
}

#linkedin:hover .linkedin {
    fill: var(--red);
}

#xing {
    width: auto;
    height: 40px;
}

.xing {
    fill: var(--offblack);
    transition: 0.3s ease;
}

#xing:hover .xing {
    fill: var(--red);
}

/* Kontakt */
.contact {
    position: fixed;
    padding: 0px 15px 15px 0px;
    bottom: 0;
    right: 0;
  }
  .contact a {
    padding: 60px 0px 0px 70px;
  }
  
  header .circle::after {
    transition: 0.4s ease;
  }
  
  .contact p::after {
    content: '';
    width: 420px;
    height: 220px;
    margin: -80px 0px 0px -210px;
    border-radius: 50%;
    position: absolute;
    background: var(--red);
    z-index: -1;
    transition: 0.4s ease;
  }
  
  .contact p:hover::after {
    background: var(--darkred);
  }


/*** Footer ***/
footer {
    width: 100%;
    height: fit-content;
    display: flex;
    justify-content: center;
    gap: 40px;
    padding: 16px 60px;
    margin-top: auto;
}


/*** media queries **/
@media only screen and (max-width: 1600px) {
    p {
        font-size: 20px;
    }
}

@media only screen and (max-width: 1100px) {
    section {
        margin: 20vh 5vw;
    }

    p {
        font-size: 20px;
    }
    
    .skillset, .exp-detail {
        margin-top: 32px;
    }

    h1 {
        font-size: 56px;
        line-height: 56px;
    }

    h2 {
        font-size: 60px;
        line-height: 100px;
    }
    
    
    h2::before {
        width: 70px;
        height: 70px;
        margin-top: 30px;
        margin-left: -32px;
    }

    .auszeichnung {
        font-size: 60px;
    }

    #menu div.list {
        width: 70%;
    }

    .contact-grid p, a.email {
        font-size: 24px;
        line-height: 24px;
    }
}

@media only screen and (max-width: 850px) {
    section {
        margin: 10vh 5vw;
    }

    
    #menuToggle a {
        font-size: 50px;
        line-height: 50px;
    }

    .highlight {
        font-size: 32px;
        line-height: 48px;
    }

    .exp-detail p:first-of-type {
        margin-bottom: 30px;
    }
}

@media only screen and (max-width: 750px) {
    h1 {
        font-size: 6vw;
        line-height: 1.2em;
    }
    
    header a,
    header p {
        font-size: 20px;
        line-height: 22px;
    }

    .contact p::after {
        width: 280px;
        height: 160px;
        margin: -40px 0px 0px -130px;
    }

    header .circle::after {
        width: 280px;
        height: 160px;
        margin: -100px 0px 0px -225px;
    }

    header .nav .circle::after {
        margin: -110px 0px 0px -115px;
    }

    .contact-grid p, a.email {
        font-size: 18px;
        line-height: 18px;
    }
}

@media only screen and (max-width: 600px) {
    #menuToggle a {
        font-size: 32px;
        line-height: 32px;
    }

    .close {
        font-size: 40px;
        line-height: 30px;
    }

    .email a {font-size: 18px;
        line-height: 18px;
    }

    section {
        margin: 64px 50px;
    }

    section#hero {
        margin: 120px 30px 100px 30px;
    }

    h1 {
        font-size: 7vw;
    }

    .auszeichnung {
        font-size: 8vw;
    }

    .emphasis {
        font-size: 4vw;
    }

    .center.field::after {
        width: 50vw;
        height: 12px;
    }
}

@media only screen and (max-width: 400px) {
    section {
        margin: 64px 20px;
    }

    h2 {
        font-size: 40px;
        margin: 0px 20px;
    }

    h2::before {
        width: 50px;
        height: 50px;
        margin-top: 36px;
        margin-left: -24px;
    }

    p.date,
    .place p {
        font-size: 12px;
    }
    
    .highlight {
        font-size: 24px;
        line-height: 36px;
    }

    section#hero {
        margin: 120px 20px 100px 20px;
    }
}