@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap");

:root {
  --col-text: rgb(242, 239, 245);
  --col-text-dark: rgb(142, 138, 145);

  --col-background: rgb(17, 13, 20);
  --col-primary: rgb(191, 176, 206);
  --col-secondary: rgb(101, 62, 65);
  --col-accent: rgb(175, 148, 126);

  --col-base-background: rgb(26, 21, 29);
  --col-base-primary: rgb(52, 45, 57);
  --col-base-secondary: rgb(34, 22, 29);
  --col-base-accent: rgb(71, 60, 58); /*rgb(25, 18, 25);*/

  --col-shadow: rgba(0, 0, 0, 0.2);

  --font-general: dm sans, sans-serif;
  --font-header: dm sans, sans-serif;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  height: 100vh;
  background-color: var(--col-background);
  font-family: var(--font-general);
  color: var(--col-text);

  ::selection {
    color: var(--col-text);
    background-color: var(--col-accent);
  }
}

ul > li {
  list-style: none;
}

.nav-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  width: auto;
  height: 4rem;
  margin: 0 4rem;

  border-bottom: 1px solid var(--col-base-background);

  .logo {
    display: flex;
    gap: 1rem;
    align-items: center;
    color: var(--col-text);
    text-decoration: none;

    svg {
      width: 3rem;
      height: auto;
      fill: var(--col-text);
      transition: fill 0.2s;
    }

    h1 {
      font-size: 2rem;
      font-weight: bold;
      transition: color 0.2s;
    }

    &:hover {
      svg {
        fill: var(--col-primary);
        transform: rotate(360deg);
        transition: fill 0.2s;
        transition: transform 0.5s;
      }

      h1 {
        color: var(--col-primary);
        transition: color 0.2s;
      }
    }
  }

  .nav-items {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4rem;
    width: 100%;
    height: 100%;
    font-size: 1.2rem;

    .nav-item {
      color: var(--col-text);
      transition: color 0.2s;

      a {
        color: var(--col-text);
        text-decoration: none;
        transition: color 0.2s;
      }

      &:hover {
        color: var(--col-primary);
        transition: color 0.2s;

        a {
          color: var(--col-primary);
          transition: color 0.2s;
        }
      }

      .nav-select {
        width: 100%;
        padding: 1rem;
        font-size: 1.2rem;
        color: var(--col-text);
        background: none;
        border: none;
        outline: none;
        cursor: pointer;
        transition: color 0.2s;

        &:hover {
          color: var(--col-primary);
          transition: color 0.2s;
        }

        .nav-option {
          background: var(--col-base-background);
          border: none;
          outline: none;
        }
      }
    }
  }
}

main {
  height: calc(100vh - 12rem);
}

.container {
  display: grid;
  grid-template-areas: "dislikes btn-dislike card btn-like likes";
  grid-template-columns: 1fr auto auto auto 1fr;
  align-content: center;
  justify-content: center;
  align-items: center;
  justify-items: center;
  gap: 2rem;
  width: 100%;
  height: 100%;
  padding: 0 4rem;
  overflow: hidden;

  .container-item:nth-child(1) {
    grid-area: card;
  }
  .container-item:nth-child(2) {
    grid-area: btn-dislike;
  }
  .container-item:nth-child(3) {
    grid-area: btn-like;
  }
  .container-item:nth-child(4) {
    grid-area: dislikes;
  }
  .container-item:nth-child(5) {
    grid-area: likes;
  }

  .card {
    position: relative;
    display: grid;
    grid-template-rows: 0.5fr 0.25fr 1fr 0.25fr 1fr 0.5fr;
    width: 30rem;
    height: 40rem;
    padding: 2rem 4rem;
    background: var(--col-base-background);
    border-radius: 1rem;

    h2 {
      position: relative;
      display: inline-block;
      width: min-content;
      margin-bottom: 2rem;
      font-size: 3rem;
      z-index: 0;

      &::before {
        content: "";
        position: absolute;
        width: 100%;
        height: 1rem;

        bottom: 0;
        left: 0;
        z-index: -1;

        background: var(--col-secondary);
        transform-origin: bottom left;
        transition: transform 0.2s;
      }

      &:hover::before {
        z-index: -1;
        transform: scaleY(200%);
        transition: transform 0.2s;
      }
    }

    h3 {
      font-size: 1.3rem;
      color: var(--col-primary);

      &:hover {
        text-decoration: underline;
      }
    }

    p {
      margin-bottom: 1rem;
      font-size: 1.2rem;
    }

    .search-container {
      display: flex;
      justify-content: space-around;
      align-self: flex-end;
      position: absolute;
      bottom: 0;
      width: 100%;
      padding: 3rem 3rem;

      button {
        padding: 1rem;
        color: var(--col-text);
        background: var(--col-secondary);
        border: 0 solid red;
        border-radius: 0.5rem;
        font-size: 1.2rem;
        cursor: pointer;
        transition: all 0.2s ease-in-out;

        &:hover {
          transform: translateY(-0.25rem);
          transition: all 0.2s ease-in-out;
        }
      }
    }
  }

  .btn-vote {
    width: 5rem;
    height: 8rem;
    background: var(--col-accent);
    border: none;
    border-radius: 1rem;
    cursor: pointer;
    transition: all 0.2s ease-in-out;

    .icon {
      width: 2.5rem;
      height: auto;
      fill: var(--col-base-background);
      transition: all 0.2s ease-in-out;
    }

    &:hover {
      .icon {
        fill: var(--col-base-background);
        transition: fill 0.2s;
        transition: transform 0.5s;
      }

      transform: translateY(-0.5rem);
      filter: drop-shadow(var(--col-accent) 0 0 40px);
      transition: all 0.2s ease-in-out;
      transition: transform 0.2s ease-in-out;
      transition: background 0.1s ease-in-out;
    }

    &:active {
      background: var(--col-accent);
      transform: translateY(+0.1rem);
      transition: all 0.2s ease-in-out;
      transition: background 0.05s ease-in-out;
    }

    &#btn-dislike {
      justify-self: right;
    }
    &#btn-like {
      justify-self: left;
    }
  }

  .card-names {
    width: 20rem;
    height: calc(100vh - 20rem);
    padding: 2rem 2rem;
    background: var(--col-base-background);
    border-radius: 1rem;
    font-size: 1.2rem;

    &#name-dislikes {
      justify-self: left;
    }
    &#name-likes {
      justify-self: right;
    }

    h3 {
      margin: 0 0;
      text-align: center;
      color: var(--col-primary);
      margin-bottom: 1rem;
      font-size: 1.3rem;

      &:hover {
        text-decoration: underline;
      }
    }

    ul {
      text-align: center;

      li {
        margin: 0.25rem;
      }
    }

    overflow-y: scroll;
    &::-webkit-scrollbar {
      width: 12px;
    }
    &::-webkit-scrollbar-track {
      border-radius: 10px;
      backdrop-filter: blur(15px);
    }
    &::-webkit-scrollbar-thumb {
      background: var(--col-accent);
      border-radius: 1rem;
    }
    &::-webkit-scrollbar-thumb:hover {
      background: var(--col-accent);
    }
  }
}

.data-container {
  display: flex;
  flex-flow: row-reverse;
  gap: 2rem;
  width: 100%;
  height: 100%;
  padding: 0 4rem 4rem;

  .btn-data {
    display: inline-block;
    padding: 1rem 2rem;
    color: var(--col-text);
    background: var(--col-base-primary);
    border: 0 solid red;
    border-radius: 0.5rem;
    font-size: 1.2rem;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    transition: background 0.1s ease-in-out;

    &:hover {
      transform: translateY(-0.25rem);
      transition: transform 0.2s ease-in-out;
      transition: background 0.1s ease-in-out;
    }

    &:active {
      background: var(--col-base-background);
      transform: translateY(+0.1rem);
      transition: background 0.05s ease-in-out;
    }

    input {
      display: none;
    }
  }
}
