.jpop {
     color: rgba(46, 107, 154);
}

.anime {
     color: rgba(150, 44, 132);
}

.vocaloid {
     color: rgba(133, 132, 132);
}

.touhou {
     color: rgba(146, 44, 44);
}

.variety {
     color: rgba(39, 135, 47);
}

.game {
     color: rgba(116, 42, 143);
}

.song-list {
     display: flex;
     flex-direction: column;
     margin: 0;
     left: 0;
     right: 0;
     overflow-x: hidden;
     width: 950px;
     max-width: 100vw;
     align-items: center;
}

.song-box {
     box-shadow: 2px 2px 5px rgba(227, 228, 237, .2);
     border: 2px solid rgba(255, 255, 255, .2);
     backdrop-filter: blur(10px);
     border-radius: 5px;
     box-sizing: border-box;
     background: rgba(0, 0, 0, 0.2);
     width: 900px !important;
     max-width: calc(100vw - 50px);
     height: 210px;
     margin: 12.5px;
     display: block;
     position: relative;
     transition: box-shadow 0.2s, background-color 0.1s;
     padding-left: 20px;

     &:hover {
          box-shadow: 0px 0px 10px rgba(255, 255, 255, 0.4);
          background-color: rgba(57, 57, 57, 0.2);
     }

     >* {
          padding: none;
          margin: none;
          line-height: 1em;
          text-align: left;
          white-space: nowrap;
          width: calc(900px - 50px);
          max-width: calc(100vw - 50px - 50px);
          text-overflow: ellipsis;
          overflow: hidden;
          -ms-overflow-style: none;
          scrollbar-width: none;
     }

     >a {
          z-index: 1;
          color: inherit;
          text-decoration: none;
          position: absolute;
          top: 0;
          left: 0;
          right: 0;
          bottom: 0;
     }

     >h1 {
          margin-top: 0;
          font-size: 24px;
          letter-spacing: 2px;
     }

     >h2 {
          margin-left: 5px;
          font-size: 16px;
          font-weight: normal;
     }

     >h3 {
          margin-left: 2.5px;
          margin-top: 20px;
          font-size: 14px;
          font-weight: normal;
     }

     >p {
          position: absolute;
          bottom: 25px;
          font-size: 14px;

          &.date {
               bottom: 5px;
          }
     }
}

@media screen and (max-width: 500px) {
     .song-list>div {
          margin: 12.5px 0 12.5px 0 !important;
     }

}

.title {
     margin-bottom: 5px;
     text-align: left;
     width: 925px;
     max-width: calc(100vw - 25px);
}

#song-filter {
     box-shadow: 2px 2px 5px rgba(227, 228, 237, .2);
     border: 2px solid rgba(255, 255, 255, .2);
     border-radius: 5px;
     backdrop-filter: blur(10px);
     background: rgba(0, 0, 0, 0.2);
     display: flex;
     flex-direction: row;
     flex-grow: 0;
     flex-wrap: wrap;
     margin: 12.5px auto 25px auto;
     min-width: 350px;
     max-width: 900px;
     width: 100vw;
     justify-content: left;
}

#song-filter>div {
     width: calc(50% - 30px);
     max-width: 500px;
     padding: 15px;
     margin-bottom: 10px;
     display: block;
     position: relative;

     >* {
          text-align: left;
          justify-content: left;
          display: flex;
          width: 100%;
          margin: 0;
     }

     >input,
     >select {
          font-size: 16px;
          line-height: 1.5em;
          padding: 7.5px;
          border: 1px solid #453c5c;
          color: #cecfd0;
          border-radius: 5px;
          background-color: transparent;
          border: 2px solid rgba(248, 235, 255, 0.2);
          box-shadow: 2px 2px 5px rgba(227, 228, 237, .2);
          backdrop-filter: blur(5px);
          transition: border 0.2s, box-shadow 0.2s, backdrop-filter 0.2s, background-color 0.2s;
          height: 41px;

          &:focus {
               backdrop-filter: blur(5px) brightness(125%) saturate(130%);
               box-shadow: 0px 0px 5px rgba(218, 158, 255, 0.4);
               background-color: rgba(218, 158, 255, 0.1);
               border: 2px solid rgba(218, 158, 255, 0.4);
               outline: none;
          }
     }
}

#song-filter>div#hr {
     width: 100vw;
     max-width: 100vw;
     margin: 0;
     padding: 0 15px 0 15px;

     >hr {
          border: 1px solid rgba(242, 225, 255, 0.4);
          border-radius: 10px;
     }
}

#song-filter>div#search {
     width: 100vw;
     max-width: 100vw;
     margin: 0;
     padding: 15px;
     text-align: center;

     >button {
          width: 100%;
          text-align: center;
          font-size: 16px;
          line-height: 1.5em;
          padding: 7.5px;
          color: #cecfd0;
          border-radius: 5px;
          display: inline-block;
          box-shadow: 0px 0px 5px rgba(218, 158, 255, 0.2);
          background-color: rgba(218, 158, 255, 0.2);
          border: 2px solid rgba(218, 158, 255, 0.2);
          backdrop-filter: blur(5px);
          transition: border 0.2s, box-shadow 0.2s, backdrop-filter 0.2s, background-color 0.2s;
          cursor: pointer;

          &:hover {
               backdrop-filter: blur(5px) brightness(125%) saturate(130%);
               box-shadow: 0px 0px 10px rgba(218, 158, 255, 0.4);
               background-color: rgba(156, 77, 205, 0.4);
               border: 2px solid rgba(218, 158, 255, 0.3);
          }
     }
}

@media screen and (max-width: 949px) {
     #song-filter {
          max-width: calc(100% - 50px);
          flex-direction: column;
     }

     #song-filter>div {
          width: 100vw;
          max-width: calc(100% - 30px);
     }

     #song-filter>div#search {
          max-width: calc(100% - 30px);

          >button {
               max-width: calc(100% - 30px);
          }
     }

     #song-filter>div#hr {
          max-width: calc(100% - 30px);
     }
}

#navigation {
     >input[type="number"] {
          backface-visibility: hidden;
          -webkit-backface-visibility: hidden;
          -ms-backface-visibility: hidden;
          -moz-backface-visibility: hidden;
          -o-backface-visibility: hidden;
          box-shadow: 2px 2px 5px rgba(227, 228, 237, .2);
          border: 2px solid rgba(255, 255, 255, .2);
          backdrop-filter: blur(10px);
          border-radius: 5px;
          box-sizing: border-box;
          background: transparent;
          color: var(--font-color);
          cursor: pointer;
          display: inline-block;
          font-size: 16px;
          line-height: 38px;
          margin: .5em;
          width: 100px;
          letter-spacing: 2px;
          text-align: center;
          text-decoration: none;
          transition: .1s box-shadow ease, .1s background-color ease, .1s border ease;

          &:hover,
          &:focus {
               outline: none;
               box-shadow: 2px 2px 7.5px rgba(227, 228, 237, .5);
               background-color: rgba(255, 255, 255, .1);
               border: 2px solid rgba(255, 255, 255, .3);
          }
     }
}

#video {
     height: calc(75vw * 9 / 16);
     width: 75vw;
     box-shadow: 2px 2px 10px rgba(227, 228, 237, .2);
     border: 2px solid rgba(255, 255, 255, .2);
     border-radius: 10px;
     margin-top: 30px;
}

#charts {
     overflow-y: scroll;
     width: 925px;
     max-width: calc(100vw - 75px);
}

#chart-list {
     display: flex;
     justify-content: center;
     width: max-content;
}

#chart-list>div {
     width: 200px;
     box-shadow: 2px 2px 10px rgba(227, 228, 237, .2);
     border: 2px solid rgba(255, 255, 255, .2);
     border-radius: 10px;
     margin: 0 15px 25px 15px;
     padding: 15px;
     backdrop-filter: blur(10px);

     >img {
          width: 180px;
          height: auto;
     }

     >h3 {
          font-size: 24px;
     }

     >p {
          font-size: 20px;
          width: 200px;
     }
}