body {
  background-color: #1a2f3c;
}

:root {
  --text-color-gold: #d1a33b;
  --text-color-ligt-blue: #4fd4ca;
  --text-color-white: #ffffff;
  --text-font-size-s: 1.2rem;
  --text-font-size-m: 2rem;

  --main-font-family: "Inknut Antiqua", serif;
  --note-font-family: "Eczar", serif;
}

.grid-container {
  display: grid;
  grid-template-columns: 50% 50%;
  grid-template-rows: repeat(4, minmax(0, 1fr));
  grid-row-gap: calc(3vh);
  padding: 30px 0px 30px 70px;
}

.bgcontainer {
  z-index: -5;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60%;
}
/* drop-shadow(offset-x offset-y blur-radius color) */

#bg-img {
  width: 100%;
  object-fit: scale-down;
  filter: drop-shadow(0px 0px 12px var(--text-color-ligt-blue));
  animation: breathe 7s ease-in-out infinite;
  animation-fill-mode: forwards;
}

/* --------------------- font -------------------- */
.spell-title {
  color: var(--text-color-gold);
  font-size: var(--text-font-size-s);
  font-family: var(--main-font-family);
  font-weight: 600;
  margin: 1.4rem 0 0 0;
  flex-shrink: 0;
}

.spell-content {
  color: var(--text-color-ligt-blue);
  font-size: var(--text-font-size-s);
  font-family: var(--note-font-family);
  font-weight: 500;
  font-style: italic;
  background-color: #0e1a21;
  padding: 1.25rem;
  margin: 0;
  width: calc(35vw);
  border-radius: 5px;
  letter-spacing: 2px;
  flex-shrink: 0;
}

.loading-text {
  color: #2c7c75;
  font-size: var(--text-font-size-s);
  font-family: var(--note-font-family);
  font-weight: 500;
  font-style: italic;
  background-color: #0e1a21;
  padding: 1.25rem;
  margin: 0;
  width: calc(35vw);
  border-radius: 5px;
  letter-spacing: 2px;
  flex-shrink: 0;
}

.greeting,
.full-date {
  color: var(--text-color-white);
  font-size: var(--text-font-size-m);
  font-family: var(--main-font-family);
  font-weight: 600;
  margin: 0;
}

.greeting {
  padding-left: 8px;
}

.time {
  color: var(--text-color-gold);
  font-family: var(--main-font-family);
  font-size: 11.5rem;
  font-weight: 600;
  margin: -2.5rem 0 2rem 0;
  line-height: 13rem;
}

.footer-text {
  text-align: center;
  color: #b1b1b1;
  font-family: var(--main-font-family);
  font-weight: 100;
  font-size: 0.8rem;
  margin: 0;
  line-height: 1.5rem;
}

.placeholder {
  visibility: hidden;
}
/* -------------------------------------------------- */

.greeting-full {
  display: flex;
  align-items: center;
}

.search-container {
  grid-area: 1/1/2/2;
  width: 75%;
  padding-top: 0.625rem;
}

.spell-upper {
  grid-area: 1/2/2/3;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  align-self: center;
}

.spell-lower {
  grid-area: 2/2/3/3;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  align-self: center;
}

.calendar-container {
  grid-area: 3/1/5/2;
  margin-top: 0;
  display: grid;
  align-self: center;
  padding: 1rem;
}

.greeting-icon {
  width: 30px;
}

footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 10rem 0 0 0;
}

.line {
  margin: 4rem 0 0.6rem 0;
  height: 1px;
  background-image: radial-gradient(#b1b1b1, #b1b1b100);
  width: 10%;
}

/*   //* ------------------------- Responsive ------------------ */

@media only screen and (max-width: 900px) {
  .grid-container {
    grid-template-columns: minmax(0, 1fr);
    padding: 1.875rem;
    grid-row-gap: calc(1vh);
  }
  .spell-upper {
    grid-area: 1/1/2/3;
    align-items: flex-start;
    text-align: start;
    align-self: end;
    padding-top: calc(5vh);
  }

  .spell-lower {
    grid-area: 2/1/3/3;
    align-items: flex-start;
    text-align: start;
    align-self: start;
  }

  .spell-title {
    padding-left: 21px;
  }

  .spell-content {
    width: calc(50vw);
  }

  .bgcontainer {
    width: 80%;
  }

  .calendar-container {
    margin-top: 1.5rem;
  }

  .search-container {
    width: calc(55vw);
  }
}

@media only screen and (max-width: 650px) {
  .grid-container {
    padding: 1.5rem;
    grid-row-gap: 0;
  }

  .calendar-container {
    margin-top: 0;
  }

  .time {
    margin-top: 0;
    font-size: calc(28vw);
    line-height: calc(12vh);
  }

  .spell-title {
    padding-left: 1rem;
  }

  .spell-content {
    width: calc(74vw);
    padding: 1rem;
    line-height: 2rem;
  }

  .search-container {
    width: calc(78vw);
  }

  .greeting,
  .full-date {
    font-size: calc(5vw);
  }
}

/* //* ------------------------- Animation -------------------- */
@keyframes breathe {
  0% {
    opacity: 3%;
  }
  15% {
    opacity: 20%;
  }

  30% {
    opacity: 40%;
  }

  50% {
    opacity: 60%;
  }
  70% {
    opacity: 40%;
  }
  85% {
    opacity: 20%;
  }
  100% {
    opacity: 3%;
  }
}
