html,
main,
body {
  font-family: sans-serif;
  margin: 0;
  overflow: hidden;
  height: 100%;
  color:#CBF7ED;
}
main{
  width: 100%;
}

h1, h2, h3 {
  font-family:'Fjalla One', sans-serif;
  margin:0;
}

header {
  position:absolute;
  z-index: 3;
  width:100%;
  background-color: rgba(22,25,37,.5);
  overflow-y:hidden;
  height: 4.5em;
  padding-bottom: .5em;
}

.float-container {
  clear: both;
  overflow: hidden;
}

.title-wrapper {
  float:left;
  padding-left: 2em;
  position: relative;
  top: 100%;
  -webkit-transform: translateY(-100%);
  -moz-transform: translateY(-100%);
  -o-transform: translateY(-100%);
  transform: translateY(-100%);
}

.title-wrapper * {
  margin-top: 0px;
  margin-bottom: 0px;
}

.subtitle {
  text-align: right;
  font-style: italic;
}
.navbar {
    list-style-type: none;
    margin: 0;
    overflow: hidden;
    position: relative;
    top: 100%;
    clear: right;
    -webkit-transform: translateY(-100%);
    -moz-transform: translateY(-100%);
    -o-transform: translateY(-100%);
    transform: translateY(-100%);
}
.navbar li{
  float: right;
}

.navbar a {
  cursor: pointer;
  font-family:'Fjalla One', sans-serif;
  font-size: 1.25em;
  text-decoration: none;
  color:#CBF7ED;
  font-weight: bolder;
  display: block;
  padding: 1px;
  padding-right:2em;
}

.navbar a:hover {
  text-decoration: underline;
}

.navbar a.active {
  text-decoration: underline;
}

.navbar a.active:hover {
  text-decoration: line-through;
}

canvas{
  position: absolute;
  background-color: #23395B;
  z-index: 0;
}
canvas[resize] {
  width: 100%;
  height: 100%;
}

.center {
  text-align: center;
}


[role="button"],
input[type="submit"],
input[type="reset"],
input[type="button"],
button {
    -webkit-box-sizing: content-box;
       -moz-box-sizing: content-box;
            box-sizing: content-box;
}

/* Reset `button` and button-style `input` default styles */
input[type="submit"],
input[type="reset"],
input[type="button"],
button {
    background: none;
    border: 0;
    color: inherit;
    /* cursor: default; */
    font: inherit;
    line-height: normal;
    overflow: visible;
    padding: 0;
    -webkit-appearance: button; /* for input */
    -webkit-user-select: none; /* for button */
       -moz-user-select: none;
        -ms-user-select: none;
}
input::-moz-focus-inner,
button::-moz-focus-inner {
    border: 0;
    padding: 0;
}

/* Make `a` like a button */
[role="button"] {
    color: inherit;
    cursor: default;
    display: inline-block;
    text-align: center;
    text-decoration: none;
    white-space: pre;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
}


#load-screen {
  background-color: rgba(22,25,37,.5);
  position: fixed;
  z-index: 4;
  width: 100%;
  height: 100%;
}

#load-screen * {
  display: block;
  margin-left: auto;
  margin-right: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  text-align: center;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

#load-screen p {
  margin: 0;
  color: black;
  font-size: 2em;
  padding: 5px 5px;
  border-radius: 10px;
  top: 60%;
  background-color: rgba(255,255,255,.75);
}


#q-menu-popup {
  z-index:3;
  position: fixed;
  top: 100%;
  left: 100%;
  -webkit-transform: translate(-150%,-150%);
  -moz-transform: translate(-150%,-150%);
  -o-transform: translate(-150%,-150%);
  transform: translate(-150%,-150%);
}

#vis-menu {
  position: absolute;
  padding: 1em;
  bottom: 0;
  right: 0;
  width: 25%;
  height: calc(100% - 5em);
  box-sizing: border-box;
  z-index: 1;
  background-color: rgba(22,25,37,.25);
  -webkit-transition: width 2s, height 2s; /* Safari */
  transition: width 2s, height 2s;
}

.submenu {
  padding: 1em 0em;
  min-height: 20%;
}

#song-add {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 30%;
  font-size: 2em;
  padding: 1em 1em;
  background-color: rgba(22,25,37,.8);
  overflow: hidden;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

#song-add .close-wrap {
  margin-top: -1em;
}

#song-add .close-btn {
  top: 0;
  left: 100%;
  -webkit-transform: translate(-50%);
  -moz-transform: translate(-50%);
  -o-transform: translate(-50%);
  transform: translate(-50%);
}

.controls-wrap {
  position: relative;
}

.controls {
  position: relative;
  overflow: hidden;
  display: inline-block;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%);
  -moz-transform: translate(-50%);
  -o-transform: translate(-50%);
  transform: translate(-50%);
}

.controls h3 {
  margin-top: 0px;
}

.btn {
  display: inline-block;
  background-color: #406E8E;
  position: relative;
  min-height: 20px;
  min-width: 25px;
}

.btn:hover{
  background-color: #23395B;
}

.btn.selected {
  background-color: #23395B;
}

.btn:not(.btn-file) i {
  position: absolute;
  top: 50%;
  left: 50%;
  display: inline-block;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

.btn.circle {
    border-radius: 50%;
    width: 25px;
    height: 25px;
}

.btn-file {
  padding: 0.5em 0.5em;
}

.close-wrap {

}

.close-btn {
  cursor: pointer;
  display: block;
  text-align: center;
  background-color: transparent;
  margin: 0;
  font-size: 1em;
  width: 1em;
  padding: 5px 5px;
}
.close-btn:hover {
  text-decoration: underline;
  background-color: transparent;
}

.file-input {
  width: 0px;
  height: 0px;
  overflow: hidden;
}

.sound-link-wrap {
  text-align: left;
  margin-left: auto;
  margin-right: auto;
  display: inline-block;
}

.link-box-wrap {
  float: left;
  margin-right: 5px;
}

#link-input {
  font-size: 1em;
  width: 100%;
  box-sizing: border-box;
  height: 1.4em;
  display: block;
}

.link-box-wrap + .btn {
  float: right;
  box-sizing: border-box;
  font-size: 1em;
  width: 1.4em;
  height: 1.4em;
  display: block;
}

.btn.circle.play-pause {
  height: 50px;
  width: 50px;
  font-size: 1.5em;
}

.controls .btn:not(.play-pause) {
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
}

.playlist-wrapper{
  height: 400px;
  margin: .5em 0;
  width: 100%;
  background-color: rgba(255,255,255, .1);
  overflow-x: hidden;
  overflow-y: auto;
}

.playlist {
  padding: 0;
  width:100%;
  border-collapse: collapse;
}

.playlist-header {
  text-align: left;
  background-color: rgba(0,0,0,.5);
}

.song {
  cursor: pointer;
}

.playlist .song,
.playlist .sond td {
  max-height: 50px;
}

.playlist .song .playing {
  text-align: center;
}

.playlist .song .playing i {
  visibility: hidden;
}

.playlist .song .playing[data-playing='true'] i {
  visibility: visible;
}

.playlist .song:nth-child(odd) {
  background-color: rgba(0,0,0,.4);
}

.time-bar-wrap {
  display: flex;
  align-items: center;
}

.time {
  flex: 1;
  text-align: center;
  max-width: 4em;
}
.time-left::before {
  content: '-';
}

.progress-bar-wrap {
  background-color: rgba(56, 68, 65, .5);
  overflow: hidden;
  border-radius: 3px;
  box-sizing: border-box;
  flex: 3;
  max-width: none;
  height: 10px
}

.progress-bar {
  box-sizing: border-box;
  height: 100%;
  border-radius: 3px;
  width : 0px;
  background-color: #CBF7ED;
}

.current-song-wrap {
  overflow: hidden;
  position: relative;
}

.current-song::before {
  content: 'Now Playing: '
}

.current-song-text {
  position: relative;
  top:50%;
  display: inline-block;
  white-space: nowrap;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
}
.current-song-text.overflowing {
  /*animation-name: scroll-text;
  animation-duration: 30s;
  animation-timing-function: ease-in;*/
  -webkit-animation: scroll-text 30s ease-in 0s infinite;
  -moz-animation: scroll-text 30s ease-in 0s infinite;
  -o-animation: scroll-text 30s ease-in 0s infinite;
  animation: scroll-text 30s ease-in 0s infinite;
}
@keyframes scroll-text {
  0%   {
    -webkit-transform:translate(0, -50%);
    -moz-transform:translate(0, -50%);
    -o-transform:translate(0, -50%);
    transform:translate(0, -50%);
  }
  100%   {
    -webkit-transform: translate(-100%, -50%);
    -moz-transform: translate(-100%, -50%);
    -o-transform: translate(-100%, -50%);
    transform: translate(-100%, -50%);
  }
}

.current-song {
  margin-right: 1em;
}

.current-song.overflow-help {
  position: absolute;
  float: left;
  display: none;
}

.current-song.overflow-help.active {
  display: inline;
}

.song-controls > div {
  margin-bottom: 1.5em;
  min-height: 30px;
}

.song-controls .current-song-wrap {
  height: 40px;
}

.bottom-bar .current-song-wrap {
  box-sizing: border-box;
}

.current-song-window {
  height: 100%;
  width: 100%;
  position: relative;
  overflow: hidden;
  white-space: nowrap;
}

.bottom-bar-wrap {
  position: absolute;
  width: 100%;
  height:10vh;
  left: 0;
  top: 100%;
  -webkit-transform: translateY(-100%);
  -moz-transform: translateY(-100%);
  -o-transform: translateY(-100%);
  transform: translateY(-100%);
}

.bottom-bar {
  display: flex;
  width: 100%;
  height: 100%;
  background-color: rgba(22,25,37,.25);
  box-sizing: border-box;
  padding-left: 2em;
}

.bottom-bar .controls {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

.bottom-bar > div {
  flex: 1;
}

.bottom-bar > .time-bar-wrap {
  flex: 3;
}
