/*Presetting*/
:root {
  --headline-color: rgb(255, 211, 117);
  --sub-headline-color: rgb(236, 202, 138);
  --text-color: rgb(255, 232, 183);
  --link-top-color: rgb(253, 178, 37);
}

@font-face {
  font-family: ComicSansMS;
  src: url(/src/font/ComicSansMS.woff2) format("truetype");
  font-style: normal;
  font-display: swap;
}

* {
  margin: 0px;
  padding: 0px;
  list-style: none;
  font-family: ComicSansMS;
  color: var(--text-color);
  font-size: 1.1em;
  font-weight: bolder;
  text-align: center;
  text-shadow: 4px 4px 2px rgba(0, 0, 0, 0.75);
}

html,
body {
  height: 100dvh;
  width: 100dvw;
  overflow: hidden;
}

/*Allgemeiner Code*/
.hidden {
  display: none;
}

.appear {
  animation: appear 2s ease-in-out;
}

.headline {
  color: var(--headline-color);
  text-decoration: underline;
  font-size: 1.5em;
}

.headline-sub {
  color: var(--sub-headline-color);
  font-size: 1.5em;
}

.link {
  color: var(--sub-headline-color);
  text-decoration: none;
  transition: color 0.7s ease-in-out;
}

.link:hover,
.link:focus {
  color: var(--link-top-color);
}

.interaction {
  cursor: pointer;
  pointer-events: all;
  transition:
    transform 0.5s ease-in-out,
    border-color 0.7s ease-in-out,
    opacity 1.5s ease-in-out;
}

.interaction:focus,
.interaction:hover {
  transform: scale(1.1);
  border-color: var(--link-top-color);
}

.button {
  min-width: 20%;
  padding: 0.5%;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(3px);
  border-radius: 10px;
  border: solid var(--sub-headline-color);
  box-shadow: 7.5px 7.5px 7.5px 7.5px rgba(0, 0, 0, 0.5);
  animation: appear 2s ease-in-out;
}

.activebutton {
  transform: scale(1.1);
  border-color: var(--link-top-color);
}

.navigation-bar {
  display: flex;
  width: 100%;
  align-self: center;
  justify-content: space-evenly;
}

/*Body-Layout*/
body {
  background-color: rgb(55, 30, 12);
  background-image: url(/src/res/background.webp);
  background-size: cover;
  user-select: none;
}

/*Content*/
.content {
  display: grid;
  position: absolute;
  height: 100%;
  width: 100%;
  align-items: center;
  overflow-y: auto;
}

header,
main,
footer {
  width: 50%;
  justify-self: center;
}

/*Head*/
header {
  display: grid;
  height: 40vh;
  grid-template-rows: 80% 20%;
  grid-template-areas:
    "logo"
    "header-navigation";
}

.logo {
  grid-area: logo;
  display: grid;
  justify-self: center;
  align-self: center;
  height: 85%;
  width: auto;
  aspect-ratio: 1 / 1;
  padding: 0.5%;
  background-color: white;
  border: black solid;
  border-radius: 360px;
  box-shadow: 7.5px 7.5px 7.5px 7.5px rgba(0, 0, 0, 0.5);
  fill: none;
  stroke: black;
  stroke-width: 0.2%;
  stroke-dasharray: 3800;
  stroke-dashoffset: 3800;
  animation:
    drawLogo 2s forwards,
    fillLogo 1.3s 2s forwards,
    bounceLogo 1.7s 2.5s ease-in-out,
    textappear 2s ease-in-out;
}

header nav {
  grid-area: header-navigation;
  display: flex;
  align-items: center;
  height: 100%;
}

header nav ul li {
  font-size: 1em;
}

/*Main*/
main {
  height: max-content;
}

/*Contact*/
.contact-container {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.contact-container input,
.contact-container textarea {
  width: 95%;
  max-height: 50vh;
  padding: 1vh;
  margin-bottom: 1vh;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(3px);
  border: solid var(--headline-color);
  border-radius: 9px;
  box-shadow: 7.5px 7.5px 7.5px 7.5px rgba(0, 0, 0, 0.5);
  outline: none;
  text-align: left;
  font-size: 0.9em;
  transition: border-color 0.7s ease-in-out;
  animation: appear 2s ease-in-out;
}

.contact-container input:hover,
.contact-container input:focus,
.contact-container textarea:hover,
.contact-container textarea:focus {
  border-color: var(--link-top-color);
}

.contact-container textarea {
  font-size: 1em;
  min-height: 17vh;
}

.contact-container p {
  text-align: left;
  width: 97%;
  animation: appear 2s ease-in-out;
}

.contact-container a {
  margin-top: 2vh;
  border: solid var(--headline-color);
}

/*Galerie*/
.galerie-container {
  font-size: 1em;
  column-count: 4;
  column-gap: 0.3%;
}

.galerie-container img {
  width: 93%;
  height: 93%;
  border-radius: 10px;
  border: solid var(--sub-headline-color);
}

/*Footer*/
footer {
  height: 8vh;
}

footer nav {
  display: flex;
  align-items: center;
  height: 100%;
}

footer nav ul li {
  font-size: 0.8em;
}

/*Preview-Img*/
.preview-img-container {
  display: grid;
  position: absolute;
  pointer-events: none;
  height: 100%;
  width: 100%;
  grid-template-columns: 25% 50% 25%;
  grid-template-rows: 10% 35% 10% 35% 10%;
  grid-template-areas:
    ". . ."
    "previewimg-1 . previewimg-3"
    ". . ."
    "previewimg-2 . previewimg-4"
    ". . .";
}

.preview-img {
  display: grid;
  justify-self: center;
  align-self: center;
  max-width: 80%;
  max-height: 100%;
  opacity: 0;
  box-shadow: 7.5px 7.5px 7.5px 7.5px rgba(0, 0, 0, 0.5);
  border-radius: 10px;
  border: solid var(--sub-headline-color);
  transform:
    0.5s ease-in-out,
    border-color 0.7s ease-in-out,
    opacity 1.5s ease-in-out;
}

#preview-img-1 {
  grid-area: previewimg-1;
}

#preview-img-2 {
  grid-area: previewimg-2;
}

#preview-img-3 {
  grid-area: previewimg-3;
}

#preview-img-4 {
  grid-area: previewimg-4;
}

/*Zoom*/
.zoom-container {
  display: none;
  position: absolute;
  font-size: 1.7em;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(7px);
  width: 100%;
  height: 100%;
  grid-template-rows: 10% 35% 10% 35% 10%;
  grid-template-columns: 25% 50% 25%;
  grid-template-areas:
    ". . esc"
    ". img ."
    "befor img next"
    ". img ."
    ". . .";
  animation: appear 2s ease-in-out;
}

.zoomesc,
.zoombefor,
.zoomnext {
  display: flex;
  width: 100%;
  height: 100%;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}

.zoomesc:hover,
.zoomesc:focus,
.zoombefor:hover,
.zoombefor:focus,
.zoomnext:hover,
.zoomnext:focus {
  color: var(--link-top-color);
}

.zoomesc {
  grid-area: esc;
}

.zoombefor {
  grid-area: befor;
}

.zoomnext {
  grid-area: next;
}

.zoomimg {
  grid-area: img;
  display: flex;
  justify-self: center;
  align-self: center;
  max-width: 100%;
  max-height: 100%;
  border: solid var(--sub-headline-color);
  border-radius: 10px;
  box-shadow: 7.5px 7.5px 7.5px 7.5px rgba(0, 0, 0, 0.5);
}

/*Holzwurm*/
.holzwurm {
  position: absolute;
  width: 100px;
  height: 100px;
  background-image: url(/src/res/holzwurm.webp);
  background-size: cover;
  opacity: 0;
  transition: opacity 3.5s ease-in-out;
}

/*Animation*/
@keyframes appear {
  0% {
    transform: scale(0.7);
    opacity: 0;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes drawLogo {
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes fillLogo {
  0% {
    fill: rgb(0, 0, 0);
  }
  50% {
    fill: rgb(24, 22, 22);
    stroke-width: 0%;
  }
  100% {
    fill: rgb(0, 0, 0);
    stroke-width: 0%;
  }
}

@keyframes bounceLogo {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}

/*Media*/
@media screen and (orientation: portrait) {
  * {
    font-size: 1.05em;
  }

  header,
  main,
  footer {
    width: 95%;
  }

  .headline,
  .headline-sub {
    font-size: 1.3em;
  }

  .preview-img-container {
    display: none;
  }

  .galerie-container {
    column-count: 3;
    column-gap: 1.3%;
  }

  .zoom-container {
    grid-template-columns: 15% 70% 15%;
  }
}

@media screen and (orientation: landscape) and (max-width: 1000px) and (max-height: 600px) {
  * {
    font-size: 1.03em;
  }

  .headline,
  .headline-sub {
    font-size: 1.3em;
  }

  header {
    height: 50vh;
  }

  .galerie-container {
    column-count: 3;
    column-gap: 1.3%;
  }
}
