/* variables */

:root {
  /* --primary: rgb(161, 26, 139);
  --secondary: #000000;
  --tertiary: #131414; */

  --primary: rgb(145, 184, 152);
  --secondary: #1f202c;
  --tertiary: #323446;

  --text-color: rgb(228, 228, 228);

  /* --font-normal: 'Roboto Slab'; */
  --font-normal: "Montserrat";
  /* --font-normal: 'Montserrat Alternates'; */
  --font-h2: "Oswald";
}

/* resets */

body,
li,
p,
ul,
a {
  margin: 0;
  padding: 0;
  text-decoration: none;
}

li {
  list-style-type: none;
}

* {
  box-sizing: border-box;
}

/* base styles */

html {
  scroll-behavior: smooth;
}

body {
  font-size: 16px;
}

h1,
h3 {
  font-size: 1.1em;
}

h2 {
  font-size: 1.4em;
  font-family: var(--font-h2);
}

h4 {
  font-size: 1em;
  font-family: var(--font-h2);
}

a {
  font-size: 1em;
}

body {
  font-family: var(--font-normal);
}

.akzent {
  color: var(--primary);
}

/* SweetAlert */

.swal-button {
  background: var(--primary);
}

.top-nav {
  height: auto;
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  color: var(--primary);
  padding: 1rem 0.5rem;
  z-index: 1100;
}

.top-nav__items {
  display: none;
}

.top-nav__item {
  margin: 0 1rem;
}

.top-nav__item > a {
  border-bottom: 2px solid transparent;
  color: var(--primary);
}

.top-nav__item > a:hover {
  transition: 1.2s;
  border-bottom: 2px solid var(--primary);
  filter: brightness(150%);
}

.top-nav > h4 {
  display: none;
}

.top-nav > h4 > a {
  color: var(--tertiary);
  background-color: var(--primary);
  padding: 0.25rem 0.5rem;
  border-radius: 2rem;
  z-index: 1100;
  border: 2px solid transparent;
}

.top-nav > h4 > a:hover {
  background-color: var(--tertiary);
  color: var(--primary);
  border: 2px solid var(--primary);
  transition: 1s;
}

.top-nav a {
  text-transform: uppercase;
}

body {
  background: var(--tertiary);
  color: var(--primary);
}

section {
  margin: 0.4rem;
  min-height: 100vh;
  background: var(--secondary);
  padding: 2.5% 5%;
  color: var(--tertiary);
  border-radius: 0.2rem;
}

.hero {
  height: 100vh;
  width: 100%;
  margin: 0;
  padding: 0 5%;
  background: var(--tertiary);
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero > div {
  padding: 2.5% 5%;
  height: 100%;
  position: absolute;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: var(--text-color);
  z-index: 100;
  text-align: center;
}

.hero > div > h2:first-of-type {
  animation: 800ms ease-out 0ms 1 slideFromTop;
}

.hero > div > h2:nth-of-type(2) {
  animation: 2000ms ease-out 1000ms 1 appear;
  animation-fill-mode: both;
}

.hero > div > p {
  font-size: 0.8em;
  z-index: 110;
}

.hero > div > h1 {
  /* max-width: 90%; */
  z-index: 110;
  animation: 800ms ease-out 500ms 1 slideFromBottom;
  animation-fill-mode: both;
}

.hero span {
  color: var(--primary);
  text-transform: uppercase;
}

.hero > div > a {
  animation: jump 1250ms infinite;
  animation-timing-function: ease;
}

.hero > div > a:hover {
  animation-play-state: paused;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.2);
}

a {
  color: var(--primary);
}

.ruler-ver__dotted-primary {
  border-left: 8px dotted var(--primary);
  transition: 200ms ease-in-out;
  /* opacity: 0.4; */
  flex: 1 1 auto;
  margin: 2rem 0;
  min-height: 2rem;
}

.ruler-ver__solid-primary {
  border: 4px solid var(--primary);
  transition: 200ms ease-in-out;
  /* opacity: 0.4; */
  flex: 1 1 auto;
  margin: 2rem 0;
  border-radius: 4rem;
  min-height: 2rem;
}

.ruler.scrolling {
  opacity: 1;
}

/* uber mich section */

#ueber_mich {
  clip-path: polygon(0% 0%, 100% 0, 100% 95%, 50% 100%, 0 95%);
  display: flex;
  flex-direction: column;
  align-items: center;
}

#ueber_mich > h2 {
  color: var(--text-color);
  opacity: 0;
}

#ueber_mich > h2.active {
  animation: 800ms ease 0ms 1 slideFromBottom;
  animation-fill-mode: forwards;
}

#ueber_mich.show-section {
}

.ueber-mich__column {
  display: flex;
  flex-direction: column;
}

/* .ueber-mich__column:last-child {
  border-bottom: 4px solid var(--tertiary);
} */

.ueber-mich__row {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  border-top: 4px solid var(--tertiary);
  padding: 2rem 0;
  max-width: 1300px;
}

.ueber-mich__row:last-of-type {
  border-bottom: 4px solid var(--tertiary);
}

.ueber-mich__row i,
.ueber-mich__row > div > p {
  opacity: 0;
}

.ueber-mich__row i.active,
.ueber-mich__row > div > p.active {
  animation: 600ms ease 0ms 1 slideFromBottom;
  animation-fill-mode: forwards;
}

.ueber-mich__row > i {
  display: none;
  color: var(--primary);
  margin: 2rem 2rem;
}

.ueber-mich p {
  color: var(--text-color);
  font-size: 1em;
}

.ueber-mich__row span {
  color: var(--primary);
}

.ueber-mich__text {
  display: flex;
  flex-direction: column;
}

.space-top {
  margin-top: 2rem;
}

/* lebenslauf section */

.lebenslauf {
  background: var(--tertiary);
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 2rem 0;
}

.lebenslauf > div > h2 {
  color: var(--text-color);
  display: flex;
  justify-content: center;
  margin-top: 0;
}

.lebenslauf-timeline {
  display: flex;
  flex-direction: column;
}

.lebenslauf-timeline__grid {
  display: grid;
  grid-template-columns: 1fr 8fr;
  grid-template-rows: auto auto auto auto auto auto auto auto;
  column-gap: 2rem;
}

.lebenslauf-timeline__subtitle {
  margin-top: 4rem;
  color: rgba(255, 255, 255, 0.705);
  align-self: center;
  text-decoration: none;
}

.lebenslauf-timeline__divider {
  grid-row: 1 / 16;
  grid-column: 1 / 2;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.lebenslauf-timeline__divider > .ruler-ver__solid-primary {
  margin-bottom: 0;
}

.lebenslauf-timeline__left {
  color: var(--primary);
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin-top: 2rem;
  /* opacity: 0; */
}

.lebenslauf-timeline__right {
  color: rgba(255, 255, 255, 0.705);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  opacity: 0;
}

/* .lebenslauf-timeline__left.active {
  animation: 600ms ease 0ms 1 slideFromLeft;
  animation-fill-mode: forwards;
} */

.lebenslauf-timeline__right.active {
  animation: 600ms ease 0ms 1 slideFromRight;
  animation-fill-mode: forwards;
}

.lebenslauf-timeline__right > span {
  font-weight: bold;
}

/* skills section */

.skills {
  color: var(--text-color);
  display: flex;
  flex-direction: column;
  align-items: center;
}

.skills-container {
  display: flex;
  flex-wrap: wrap;
  max-width: 1300px;
}

.skill-container {
  max-width: 500px;
}

.skills > h2 {
  opacity: 0;
}

.skills > h2.active {
  animation: 600ms ease 0ms 1 slideFromLeft;
  animation-fill-mode: forwards;
}

.skill-container {
  background: var(--tertiary);
  border-radius: 0.4rem;
  flex-grow: 1;
  padding: 0.5em;
  margin: 0.25em;
  opacity: 0;
}

.skill-container.active {
  animation: 600ms ease 0ms 1 appear;
  animation-fill-mode: forwards;
}

.skill-container h3 {
  margin-top: 0;
  margin-bottom: 0.25em;
  color: var(--primary);
}

.skill-container p {
  margin-left: 1rem;
  font-size: 0.9em;
}

.skills .ruler {
  border-color: var(--tertiary);
}

/* projekte section */

.projects {
  background: var(--tertiary);
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.projects .ruler {
  align-self: center;
  height: 2em;
}

.projects > h2 {
  color: var(--text-color);
  opacity: 0;
}

.projects > h2.active {
  animation: 1200ms ease 0ms 1 appear;
  animation-fill-mode: forwards;
}

.project-container {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.project-container > .project-header {
  max-width: 300px;
  color: var(--text-color);
  padding: 0.5em;
  opacity: 0;
}

.project-container > .project-header.active {
  animation: 1200ms ease 0ms 1 appear;
  animation-fill-mode: forwards;
}

.project-container > .project-header > h3 {
  margin: 0;
  margin-bottom: 0.5em;
}

.project-container > .project-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--text-color);
}

.project-container > .project-content > p {
  margin-top: 1em;
}

.project-image__desk-container {
  z-index: 1;
  display: flex;
  flex-direction: column;
  margin: 1em 0;
  position: relative;
  opacity: 0;
}

.project-image__desk-container.active {
  animation: 600ms ease 0ms 1 slideFromLeft;
  animation-fill-mode: forwards;
}

.project-image__mobile-container.active {
  animation: 600ms ease 0ms 1 appear;
  animation-fill-mode: forwards;
}

.project-image__desk-container > .desk-top,
.project-image__desk-container > .desk-bottom,
.project-image__desk-container > .desk-stand,
.project-image__desk-container > .desk-stand__bottom {
  background: var(--secondary);
}

.project-image__desk-container > .desk-top,
.project-image__desk-container > .desk-bottom {
  height: 1.5em;
}

.project-image__desk-container > .desk-top {
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
}

.project-image__desk-container > .desk-img {
  border: 4px solid var(--secondary);
  max-width: 280px;
}

.project-image__desk-container > .desk-bottom {
  border-bottom-left-radius: 1rem;
  border-bottom-right-radius: 1rem;
}

.project-image__desk-container > .desk-stand {
  height: 2em;
  width: 2em;
  align-self: center;
}

.project-image__desk-container > .desk-stand__bottom {
  height: 0.5em;
  width: 4em;
  align-self: center;
}

.project-image__mobile-container {
  border: 4px solid var(--secondary);
  border-radius: 0.2em;
  margin: 1em 0;
  margin-right: -70%;
  margin-top: -40%;
  z-index: 2;
  opacity: 0;
}

.project-image__mobile-container > .mobile-img {
  max-width: 50px;
  border-radius: 0.2em;
}

.project-tools {
  margin-top: 0.5em;
  display: flex;
  flex-direction: column;
}

.project-tools > h3 {
  align-self: center;
  margin: 0.5em;
  opacity: 0;
}

.project-tools > h3.active {
  animation: 1200ms ease 0ms 1 appear;
  animation-fill-mode: forwards;
}

.project-tools > div {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  font-size: 2.5em;
}

.project-tools > div > span {
  opacity: 0;
}

.project-tools > div > span.active {
  animation: 1000ms ease 0ms 1 slideFromRight;
  animation-fill-mode: forwards;
}

.project-tools > div > span {
  color: var(--primary);
  margin: 0 0.2em;
}

.project-image__desk-container > .link-to-project {
  position: absolute;
  background: var(--primary);
  color: var(--secondary);
  padding: 0.4em;
  border-radius: 2em;
  top: 20px;
  right: -10px;
  border: 2px solid transparent;
}

.project-image__desk-container > .link-to-project:hover {
  transform: translateY(-0.5em);
  color: var(--primary);
  background: var(--tertiary);
  transition: 600ms;
  box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.5);
  border-color: var(--primary);
}

/* kontakt section */

.contact {
  display: flex;
  flex-flow: column;
  align-items: center;
  border-radius: 1em;
}

.contact-title {
  color: var(--text-color);
  display: flex;
  justify-content: flex-start;
  opacity: 0;
  margin-bottom: 2em;
}

.contact-title.active {
  animation: 800ms ease 0ms 1 appear;
  animation-fill-mode: forwards;
}

.contact-card {
  display: flex;
  flex-direction: column;
  min-width: 300px;
  max-width: 1100px;
  margin-bottom: 2em;
}

.contact-card__left {
  background-color: var(--tertiary);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: start;
  min-height: 40vh;
  border-radius: 1em;
  padding: 2em;
  color: white;
  font-size: 1em;
  opacity: 0;
}

.contact-card__left span {
  font-weight: bold;
}

.contact-card__left.active {
  animation: 800ms ease 0ms 1 slideFromLeft;
  animation-fill-mode: forwards;
}

.contact-card__left > div {
  margin-bottom: 1em;
}

.contact-card__left > div > p {
  margin-bottom: 1em;
}

.contact-card__left .text-hint {
  display: flex;
  flex-direction: column;
}

.contact-card__left-textgroup {
  width: 100%;
}

/* .contact-card__left-textgroup > p:last-of-type { */
/*   margin-left: 0.25em; */
/* } */

.contact-card__left-textgroup:first-of-type {
  margin-bottom: 1em;
}

.contact-card__right {
  opacity: 0;
  background-color: var(--primary);
  min-height: 40vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 1em;
  margin-top: -1.5em;
  border-radius: 1em;
}

.contact-card__right.active {
  animation: 800ms ease 0ms 1 slideFromRight;
  animation-fill-mode: forwards;
}

.contact-card__right input,
.contact-card__right textarea,
.contact-card__right button {
  width: 100%;
  font-size: 1em;
  font-family: var(--font-normal);
  margin-bottom: 1em;
  border-radius: 0.4em;
  border: 2px solid transparent;
  padding: 0.5em 1em;
  background: var(--tertiary);
  color: var(--primary);
}

.contact-card__right input,
.contact-card__right button {
  font-size: 1.1em;
  border-radius: 4em;
}

.contact-card__right button {
  background: var(--primary);
  color: var(--tertiary);
  border: 2px solid var(--tertiary);
  cursor: pointer;
}

.contact-card__right button:hover {
  background-color: var(--tertiary);
  color: var(--primary);
  border: 2px solid var(--primary);
  transition: 1s;
}

.anim-cycle {
  animation: cycle 1.5s linear infinite;
}

/* menu */

.menu-toggler {
  color: var(--text-color);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 11000;
  cursor: pointer;
  transform: scale(1.5) translateX(0);
  position: fixed;
  top: 0;
  right: 0;
  margin: 1rem;
  padding: 0 0.15rem;
  background-color: rgba(0, 0, 0, 0.2);
  border-radius: 0.2rem;
  transition: 300ms;
}

.menu-overlay {
  transition: 300ms;
  opacity: 0.95;
  position: fixed;
  z-index: 10000;
  min-height: 100vh;
  width: 100vw;
  background-color: var(--primary);
  transform: translateX(100%);
}

.menu-overlay.active {
  transform: translateX(25%);
}

.menu-scrollable {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.menu-items {
  padding-top: 6rem;
  display: flex;
  align-items: center;
  flex-direction: column;
  height: 100%;
  width: 75%;
}

.menu-item > h2 {
  margin: 0.8rem 1rem;
}

.menu-item i {
  color: var(--tertiary);
}

.menu-item a {
  color: var(--tertiary);
  transition: 600ms;
  border-bottom: 4px solid transparent;
}

.menu-items hr {
  border: 2px solid var(--tertiary);
  width: 90%;
}

.menu-social {
  display: flex;
}

.menu-social a {
  color: var(--tertiary);
  margin: 0.5em;
}

/* animation */

@keyframes cycle {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes jump {
  0%,
  100% {
    transform: translateY(0.4rem) scale(1.8);
  }
  50% {
    transform: translateY(0rem) scale(1.8);
  }
}

@keyframes slideFromBottom {
  0% {
    transform: translateY(4rem);
    opacity: 0;
  }
  50% {
    opacity: 0.4;
    transform: translateY(-0.2rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideFromTop {
  0% {
    transform: translateY(-4rem);
    opacity: 0;
  }
  50% {
    opacity: 0.4;
    transform: translateY(0.2rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideFromLeft {
  0% {
    transform: translateX(-4rem);
    opacity: 0;
  }
  50% {
    opacity: 0.4;
    transform: translateX(0.2rem);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideFromRight {
  0% {
    transform: translateX(4rem);
    opacity: 0;
  }
  50% {
    opacity: 0.4;
    transform: translateX(-0.2rem);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes appear {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 100;
  }
}

/* media querys */

@media screen and (min-width: 620px) {
  body {
    font-size: 16px;
  }
  .ruler-ver__dotted-primary {
    min-height: 4rem;
  }

  .ruler-ver__solid-primary {
    min-height: 4rem;
  }
  .ueber-mich__column {
  }

  .skill-container {
    min-width: 300px;
    padding: 1rem;
    margin: 0.5rem;
  }

  .contact-card {
    flex-direction: row;
  }
  .contact-card__left > div {
    margin-right: 1.5em;
  }

  .contact-card__right {
    margin-top: 0;
    margin-left: -1.5em;
  }
}

@media screen and (min-width: 960px) {
  body {
    font-size: 18px;
  }
  .ueber-mich i {
    display: inline-block;
  }
  .ueber-mich__column {
  }

  .lebenslauf-timeline__grid {
    grid-template-columns: 8fr 1fr 8fr;
  }

  .lebenslauf-timeline__left,
  .lebenslauf-timeline__right {
    flex-direction: column;
    justify-content: center;
    padding: 4rem 0;
    margin: 0;
    max-width: 400px;
  }

  .lebenslauf-timeline__divider {
    grid-row: 1 / 10;
    grid-column: 2 / 3;
  }

  .lebenslauf-timeline__left {
    align-items: flex-end;
  }

  .lebenslauf-timeline__right {
    align-items: flex-start;
  }

  .project-image__desk-container > .desk-img {
    max-width: 500px;
  }

  .project-image__mobile-container > .mobile-img {
    max-width: 100px;
  }

  .project-container > .project-header {
    max-width: 500px;
  }

  .menu-toggler {
    transform: translateX(1000px);
  }

  .menu-toggler.active {
    transform: scale(1.5) translateX(0);
  }

  .menu-overlay.active {
    transform: translateX(75%);
  }

  .menu-items {
    width: 25%;
  }
}

@media screen and (min-width: 1200px) {
  body {
    font-size: 20px;
  }
  .hero .ruler-ver__solid-primary {
    border-color: transparent;
  }
  .top-nav {
    justify-content: space-between;
    justify-self: center;
  }
  .top-nav > h4 {
    display: flex;
    margin: 0;
    z-index: 1100;
  }
  .top-nav__items {
    display: flex;
    z-index: 1000;
  }

  .menu-item a:hover {
    border-color: var(--tertiary);
    filter: brightness(40%);
  }

  .ueber-mich__text {
    /* max-width: 50%; */
  }
  /* 
  .ueber-mich i {
    display: inline-block;
  } */

  .ueber-mich__column {
  }

  .lebenslauf > div {
  }

  .contact-card__right {
    padding: 2em;
  }
}
