.progressBar {
  counter-reset: step;
  width: 100%;
  align-self: center;
}

.progressBar li {
  font-size: 1.5rem;
  list-style: none;
  display: inline-block;
  width: 30.33%;
  position: relative;
  text-align: center;
  cursor: pointer;
}

.progressBar li:before {
  content: counter(step);
  counter-increment: step;
  width: 40px;
  height: 40px;
  line-height: 40px;
  border: 1px solid #ddd;
  border-radius: 100%;
  display: block;
  text-align: center;
  margin: 0 auto 10px auto;
  background-color: #fff;
}

.progressBar li:first-child:after {
  content: none;
}

.progressBar li.active {
  color: #e84e33;
}

.progressBar li.active:before {
  border-color: #e84e33;
}

.progressBar li.active + li:after {
  background-color: #e84e33;
}

.packageContainer {
  /* This container is needed to position the front and back side */
  /* Do an horizontal flip when you move the mouse over the flip box container */
  /* Position the front and back side */
  /* Style the back side */
}
.packageContainer .card {
  background-color: transparent;
  perspective: 1000px;
  position: relative;
  width: 100%;
  height: 100%;
  text-align: center;
  transition: all 0.8s;
  transform-style: preserve-3d;
  cursor: pointer;
  word-wrap: break-word;
  font-size: 1rem;
}
.packageContainer .card.flip {
  transform: rotateY(180deg);
}
.packageContainer .cardBack,
.packageContainer .cardFront {
  position: absolute;
  width: 80%;
  top: 15%;
  right: 10%;
  backface-visibility: hidden;
}
.packageContainer .cardBack {
  top: 5%;
}
.packageContainer .cardBack {
  color: white;
  transform: rotateY(180deg);
}

.packages {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
}
.packages button {
  cursor: pointer;
  border: none;
  background-color: #e84e33;
  color: white;
  padding: 1rem;
  margin: 1rem;
  transition: all 0.5s ease-in-out;
  border-radius: 0.2rem;
}
.packages .centerContainer {
  width: 80%;
  flex-direction: column;
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
}
.packages .centerContainer h2 {
  align-self: center;
}
.packages .centerContainer h2,
.packages .centerContainer p {
  margin-bottom: 1rem;
}
.packages .centerContainer .packageContainer {
  margin-top: 1.5rem;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.packages .centerContainer .packageContainer ul {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
}
.packages .centerContainer .packageContainer li {
  font-size: 0.9rem;
  margin: 1rem;
  padding: 1rem;
  background-color: #aaaaaa;
  color: white;
  width: 16rem;
  height: 10rem;
}
.packages .centerContainer .packageContainer li.active {
  background-color: #1f43e4;
}

@media only screen and (max-width: 1000px) {
  .progressBar li {
    font-size: 1rem;
  }
  .packages .centerContainer .packageContainer ul {
    justify-content: center;
  }
  .packages .centerContainer .packageContainer li {
    margin: 0.4rem;
    height: 8rem;
    width: 8rem;
    font-size: 0.9rem;
  }
}
.portfolio {
  margin-top: 12rem;
}
.portfolio h1,
.portfolio p {
  text-align: center;
}
.portfolio h1 a,
.portfolio p a {
  color: blue;
}
.portfolio .introText {
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-wrap: wrap;
  margin-top: 2rem;
}
.portfolio .centerContainer {
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-wrap: wrap;
  margin-top: 2rem;
}
.portfolio .centerContainer .project {
  margin: 2rem;
  border-radius: 1rem;
  background-size: cover;
  width: 18rem;
  height: 18rem;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  box-shadow: rgba(0, 0, 0, 0.4) 5px 5px 11px;
}
.portfolio .centerContainer .project1 {
  background-image: url("./../portfolio/images/AncestorChart.webp");
}
.portfolio .centerContainer .project2 {
  background-image: url("./../portfolio/WetterKI_images/processed/image3.webp");
}
.portfolio .centerContainer .glassCard {
  width: 70%;
  height: 70%;
  -webkit-backdrop-filter: blur(7px) saturate(130%);
          backdrop-filter: blur(7px) saturate(130%);
  background-color: rgba(255, 255, 255, 0.3);
  border-radius: 1rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  transition: all 0.4s ease-in-out;
}
.portfolio .centerContainer .glassCard .card-title {
  color: black;
}
.portfolio .centerContainer .glassCard .card-text {
  text-align: center;
}
.portfolio .centerContainer .glassCard:hover {
  transform: scale(1.06);
}

@media only screen and (max-width: 1000px) {
  .caseStudiesSection .project {
    margin: 1rem;
    width: 14rem;
    height: 14rem;
  }
}
.contact {
  margin-top: 12rem;
  opacity: 1;
  padding: 0rem 1rem;
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden;
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  flex-direction: column;
  flex-wrap: wrap;
}
.contact p {
  text-align: center;
}
.contact .contactButton {
  background: none;
  border: none;
  font-size: 4rem;
  border: 1px solid white;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.5s ease-in-out;
}
.contact .contactButton:hover {
  color: #1f43e4;
  font-size: 7rem;
}

.snackbar {
  visibility: hidden;
  width: 30vw;
  margin-left: -15vw;
  color: #fff;
  text-align: center;
  border-radius: 3px;
  padding: 1.2rem;
  position: fixed;
  z-index: 2;
  left: 50%;
  top: 60px;
  box-shadow: rgba(0, 0, 0, 0.5) 4px 3px 13px;
  -webkit-backdrop-filter: blur(2px);
          backdrop-filter: blur(2px);
}

.snackbarSuccess {
  background-color: rgba(0, 128, 0, 0.65);
}

.snackbarError {
  background-color: rgba(255, 0, 0, 0.65);
}

.snackbar.show {
  visibility: visible; /* Show the snackbar */
  animation: fadein 0.5s, fadeout 0.5s 3.6s;
}

@keyframes fadein {
  from {
    top: 0;
    opacity: 0;
  }
  to {
    top: 60px;
    opacity: 1;
  }
}
@keyframes fadeout {
  from {
    top: 60px;
    opacity: 1;
  }
  to {
    top: 0;
    opacity: 0;
  }
}
.websiteFeatures ul {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  width: 100%;
}
.websiteFeatures ul .card {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #aaaaaa;
  color: white;
  width: 12rem;
  height: 4rem;
  margin: 0.4rem;
  padding: 0.2rem;
  text-align: center;
  transition: all 0.8s;
  transform-style: preserve-3d;
  cursor: pointer;
  word-wrap: break-word;
  font-size: 1rem;
  overflow-wrap: anywhere;
}
.websiteFeatures ul .card.active {
  background-color: #1f43e4;
}

.packages {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
}
.packages button {
  cursor: pointer;
  border: none;
  background-color: #e84e33;
  color: white;
  padding: 1rem;
  margin: 1rem;
  transition: all 0.5s ease-in-out;
  border-radius: 0.2rem;
}
.packages .centerContainer {
  width: 80%;
  flex-direction: column;
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
}
.packages .centerContainer h2 {
  align-self: center;
}
.packages .centerContainer h2,
.packages .centerContainer p {
  margin-bottom: 1rem;
}
.packages .centerContainer .packageContainer {
  margin-top: 1.5rem;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.packages .centerContainer .packageContainer ul {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
}
.packages .centerContainer .packageContainer li {
  font-size: 0.9rem;
  margin: 1rem;
  padding: 1rem;
  background-color: #aaaaaa;
  color: white;
  width: 16rem;
  height: 10rem;
}
.packages .centerContainer .packageContainer li.active {
  background-color: #1f43e4;
}

@media only screen and (max-width: 1000px) {
  .websiteFeatures ul {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    width: 100%;
  }
  .websiteFeatures ul .card {
    text-align: center;
    transition: all 0.8s;
    transform-style: preserve-3d;
    cursor: pointer;
    word-wrap: break-word;
    font-size: 1rem;
    overflow-wrap: anywhere;
  }
}
*,
*:before,
*:after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  max-width: 100vw;
  overflow-x: hidden;
  font-family: "Montserrat", sans-serif;
}
body h1 {
  font-size: 3.6rem;
  margin-bottom: 0.8rem;
}
body h2 {
  font-size: 3rem;
  margin-bottom: 0.8rem;
}
body h3 {
  font-size: 2rem;
}
body h4 {
  font-size: 1.5rem;
}
body p,
body a,
body li,
body label,
body button {
  font-size: 1rem;
  font-family: "Montserrat", sans-serif;
}
body a {
  text-decoration: none;
  cursor: pointer;
  color: rgb(0, 0, 0);
}
body a:hover {
  color: #3a3a3a;
}
body ul {
  list-style-type: none;
}
body p {
  margin-bottom: 1.5rem;
  line-height: 1.7;
}

body.hide {
  overflow: hidden;
}

form {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  flex-direction: column;
  flex-wrap: wrap;
}
form input,
form textarea {
  padding: 0.5rem;
  width: 80%;
  font-size: 1rem;
}
form button {
  cursor: pointer;
  border: none;
  background-color: #1f43e4;
  color: white;
  padding: 1rem;
  margin: 1rem;
  transition: all 0.5s ease-in-out;
  border-radius: 0.2rem;
}
form button:hover {
  background-color: #4d69e9;
}

header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-direction: row;
  flex-wrap: wrap;
  flex-wrap: nowrap;
  top: 0;
  height: 20vh;
  width: 100%;
  position: fixed;
  z-index: 2;
  background-color: white;
}
header .disabled {
  color: gray;
  cursor: default;
}
header #logo {
  font-size: 7rem;
  padding: 2rem 3rem;
}
header .navigation {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  flex-direction: row;
  flex-wrap: wrap;
  flex-wrap: nowrap;
  padding: 1rem 1rem;
}
header .navigation li {
  margin: 0rem 3rem;
}

main {
  margin-top: 20vh;
}

section {
  min-height: 80vh;
  margin-top: 20vh;
}

.intro {
  min-height: 80vh;
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  flex-direction: row;
  flex-wrap: wrap;
  overflow: hidden;
  width: 100vw;
  position: relative;
}
.intro .title {
  padding: 2rem;
  flex: 1;
  font-family: "Source Code Pro", monospace;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  flex-wrap: wrap;
}
.intro .title .forename {
  color: #1f43e4;
}
.intro .description {
  flex: 2 0;
  padding: 2rem;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  flex-wrap: wrap;
}
.intro .description .developerText {
  color: #1f43e4;
}
.intro .description #exaliLogo {
  position: absolute;
  bottom: 2rem;
  right: 2rem;
}

.timeline {
  height: 80vh;
  overflow: hidden;
}
.timeline .timelineCanvas {
  width: 100vw;
  height: 100%;
}
.timeline .timelineCanvas .svgH1 {
  font-size: 3.6rem;
}
.timeline .timelineCanvas .svgH2 {
  font-size: 3rem;
}
.timeline .timelineCanvas .svgH3 {
  font-size: 2rem;
}
.timeline .timelineCanvas .svgH4 {
  font-size: 1.5rem;
}
.timeline .timelineCanvas .svgText {
  font-size: 1rem;
}
.timeline .timelineCanvas .eventText {
  opacity: 0;
}
.timeline .event {
  opacity: 0;
}
.timeline .revealTimeline {
  width: 50vw;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: white;
  z-index: 1;
}

.services {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  flex-direction: column;
  flex-wrap: wrap;
  transform-style: preserve-3d;
  transform: perspective(1000px);
}
.services .imgContainer {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  flex-direction: row;
  flex-wrap: no-wrap;
  position: relative;
  height: 20vh;
  width: 100vw;
  transform: translateZ(80px);
  overflow: hidden;
}
.services .imgContainer .serviceIcon {
  opacity: 0;
  left: 50%;
  top: 50%;
  height: 80%;
  position: absolute;
  transform: translateX(200%) translateY(-50%);
}
.services .descriptionContainer {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  flex-direction: row;
  flex-wrap: no-wrap;
  width: 100%;
  height: 30vh;
  position: relative;
  transform: translateZ(20px);
  overflow: hidden;
}
.services .descriptionContainer .serviceDescription {
  position: absolute;
  width: 60vw;
  transform: translateX(-300%);
  opacity: 0;
}
.services .descriptionContainer .serviceDescription h3,
.services .descriptionContainer .serviceDescription p {
  text-align: center;
}

.ctaContainer {
  min-height: 80vh;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  flex-wrap: wrap;
  overflow: hidden;
  width: 100vw;
  position: relative;
  text-align: center;
}
.ctaContainer button {
  background-color: #e84e33;
  color: white;
  padding: 1rem;
  margin: 3rem;
  border: none;
  cursor: pointer;
}

.impressum {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
.impressum .impressumText {
  width: 80%;
  line-height: 1.8;
}
.impressum .impressumText h1 {
  font-size: 2.5rem;
}
.impressum .impressumText h2 {
  font-size: 2rem;
}
.impressum .impressumText h3 {
  font-size: 1.4rem;
}
.impressum .impressumText p,
.impressum .impressumText a,
.impressum .impressumText span,
.impressum .impressumText li {
  font-size: 1rem;
}
.impressum .impressumText ul {
  list-style: disc;
}

footer {
  background-color: #e2e2e2;
  margin-top: 1rem;
  padding: 0.7rem;
  width: 100vw;
  text-align: center;
}
footer a,
footer p,
footer div {
  font-size: 1rem;
  text-align: center;
  margin: 0rem 1rem;
}

@media only screen and (max-width: 1000px) {
  body h1 {
    font-size: 2.5rem;
  }
  body h2 {
    font-size: 1.7rem;
  }
  body h3 {
    font-size: 1.2rem;
  }
  body h4 {
    font-size: 1rem;
  }
  body p,
  body a,
  body li,
  body label,
  body button {
    font-size: 0.9rem;
  }
  header {
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
    height: 20vh;
  }
  header #logo {
    font-size: 5rem;
    padding: 1rem 2rem;
  }
  header .navigation {
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    flex-direction: column;
    flex-wrap: wrap;
    padding: 0rem 1rem;
  }
  header .navigation li {
    margin: 0.8rem 0rem;
  }
  .intro {
    height: 80vh;
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    flex-direction: column;
    flex-wrap: wrap;
  }
  .intro .title {
    padding: 0rem 1rem;
  }
  .intro .description {
    text-align: center;
  }
  .intro .description h2 {
    padding: 0.2rem 0rem;
  }
  .intro .description #exaliLogo {
    position: absolute;
    bottom: 1rem;
    right: 1rem;
  }
  .timeline .timelineCanvas .svgH1 {
    font-size: 2.5rem;
  }
  .timeline .timelineCanvas .svgH2 {
    font-size: 1.7rem;
  }
  .timeline .timelineCanvas .svgH3 {
    font-size: 1.2rem;
  }
  .timeline .timelineCanvas .svgText {
    font-size: 0.9rem;
  }
  .services .imgContainer svg {
    transform: scale(0.25);
  }
  .services p {
    margin: 1rem 0rem;
    font-size: 0.9rem;
  }
  .contactPage .closeContactButton {
    padding: 1rem 1rem;
    flex: 1;
    height: 10vh;
  }
}/*# sourceMappingURL=style.css.map */