/* # CSS reset */

/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
  font-family: Arial;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* Prevent text highlighting */
* {
  -webkit-touch-callout: none; /* iOS Safari */
  -webkit-user-select: none; /* Safari */
   -khtml-user-select: none; /* Konqueror HTML */
     -moz-user-select: none; /* Old versions of Firefox */
      -ms-user-select: none; /* Internet Explorer/Edge */
          user-select: none; /* Non-prefixed version, currently
                                supported by Chrome, Edge, Opera and Firefox */
}

.disabled {
  opacity: .6;
}

.disabled:hover {
  cursor: default !important;
}

.hidden {
  display: none !important;
  visibility: hidden !important;
}

.icon {
  fill: #fff;
}

.error-icon {
  fill: red;
}

.interactive:hover {
  cursor: pointer;
}

.layer.top {
  z-index: 999;
}

.layer.middle {
  z-index: 555;
}

.layer.bottom {
  z-index: 000;
}

.loader {
  position: relative;
  margin: 0px auto;
  width: 150px;
  height:150px;
}

@media only screen and (max-width: 600px) {
  .loader {
    position: relative;
    margin: 0px auto;
    width: 110px;
    height:110px;
  }
}

.loader:before {
  content: '';
  display: block;
  padding-top: 100%;
}

.circular-loader {
  -webkit-animation: rotate 2s linear infinite;
          animation: rotate 2s linear infinite;
  height: 100%;
  -webkit-transform-origin: center center;
      -ms-transform-origin: center center;
          transform-origin: center center;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  margin: auto;
}

.loader-path {
  stroke-dasharray: 150,200;
  stroke-dashoffset: -10;
  -webkit-animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
          animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
  stroke-linecap: round;
}

@-webkit-keyframes rotate {
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@keyframes rotate {
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@-webkit-keyframes dash {
  0% {
    stroke-dasharray: 1,200;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 89,200;
    stroke-dashoffset: -35;
  }
  100% {
    stroke-dasharray: 89,200;
    stroke-dashoffset: -124;
  }
}

@keyframes dash {
  0% {
    stroke-dasharray: 1,200;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 89,200;
    stroke-dashoffset: -35;
  }
  100% {
    stroke-dasharray: 89,200;
    stroke-dashoffset: -124;
  }
}

@-webkit-keyframes color {
  0% {
    stroke: #fff;
  }
  40% {
    stroke: #fff;
  }
  66% {
    stroke: #fff;
  }
  80%, 90% {
    stroke: #fff;
  }
  }
  @keyframes color {
  0% {
    stroke: #fff;
  }
  40% {
    stroke: #fff;
  }
  66% {
    stroke: #fff;
  }
  80%, 90% {
    stroke: #fff;
  }
}

.row {
  position: relative;
  width: 100%;
  height: 33.3%;
}

.table {
  position: absolute;
  top: 0;
  left: 0;
  display: table;
  width: 100%;
  height: 100%;
}

.table-cell {
  position: relative;
  display: table-cell;
  vertical-align: middle;
  width: 100%;
  height: 100%;
}

.text {
  font-family: Arial, Helvetica, sans-serif;
  color: white;
}

.text.large {
  font-size: 1.75rem;
}

.text.medium {
  font-size: 1.5rem;
}

.text.small {
  font-size: 1.25rem;
}

@media only screen and (max-width: 600px) {
  .text.large {
    font-size: 1.45rem !important;
  }
  
  .text.medium {
    font-size: 1.15rem !important;
  }
  
  .text.small {
    font-size: 1.05rem !important;
  }
}

#album {
  position: relative;
  width: 540px;
  height: 540px;
  margin: 0 auto;
  overflow: hidden;
}

@media only screen and (max-width: 600px) {
  #album {
    position: relative;
    width: 360px;
    height: 360px;
  }
}

#album-artwork {
  position: absolute;
  top: 0;
  left: 0;
  width: 540px;
  height: 540px;
}

@media only screen and (max-width: 600px) {
  #album-artwork {
    width: 360px;
    height: 360px;
  }
}

#album-artwork-asset {
  position: relative;
  width: 100%;
  height: 100%;
}

#album-artwork-loading-screen {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #b0b0b0;
}

#album-artwork-loading-error-icon {
  margin: 0 auto;
  width: 100px;
  height: 100px;
}

@media only screen and (max-width: 600px) {
  #album-artwork-loading-error-icon {
    width: 75px;
    height: 75px;
  }
}

#album-artwork-tint {
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: black;
  opacity: .5;
  top: 0;
  left: 0;
}

#ui {
  position: relative;
  margin: 0 auto;
  width: 500px;
  height: 500px;
  overflow: hidden;
}

@media only screen and (max-width: 600px) {
  #ui {
    width: 332.5px;
    height: 332.5px;
  }
}

#ui #back,
#ui #front {
  width: 100%;
  height: 100%;
}

#ui #back #tracklist {
  width: 100%;
  height: 100%;
  overflow: hidden;
  overflow-y: scroll;
  padding-right: 20px;
}

#ui #back #tracklist-close {
  position: absolute;
  top: 0;
  right: 0;
  height: 55.5px;
  width: 55.5px;
}

@media only screen and (max-width: 600px) {
  #ui #back #tracklist-close {
    height: 35px;
    width: 35px;
  }
}

#ui #back #tracklist-close-icon {
  float: right;
  height: 35px;
  width: 35px;
}

@media only screen and (max-width: 600px) {
  #ui #back #tracklist-close-icon {
    height: 25px;
    width: 25px;
  }
}

#ui #back .tracklist-track {
  position: relative;
  width: 85%;
  padding: 12.5px 0;
  height: auto;
}

#ui #back .tracklist-track .table {
  position: relative;
}

#ui #back .tracklist-track .track-number {
  display: inline-block;
  width: 15%;
  text-align: center;
  vertical-align: top;
}

#ui #back .tracklist-track .track-title {
  display: inline-block;
  width: 80%;
  text-align: left;
}

#ui #front {
  position: relative;
  width: 100%;
  height: 100%;
}

#ui #front-header #current-track {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: auto;
  color: white;
}

#ui #front-header #current-track-number {
  display: inline-block;
  text-align: left;
  vertical-align: top;
}

#ui #front-header #current-track-name {
  display: inline-block;
  width: 80%;
}

#ui #front-header #current-track-text {
  width: 450px;
  vertical-align: middle;
}

@media only screen and (max-width: 600px) {
  #ui #front-header #current-track-text {
    width: 285px;
  }
}

#ui #front-header #tracklist-open {
  position: absolute;
  top: 0px;
  right: 0px;
  width: 55.5px;
  height: 55.5px;
}

@media only screen and (max-width: 600px) {
  #ui #front-header #tracklist-open {
    width: 36.8px;
    height: 36.8px;
  }
}

#ui #front-header #tracklist-open-icon {
  float: right;
  position: relative;
  width: 35px;
  height: 35px;
}

@media only screen and (max-width: 600px) {
  #ui #front-header #tracklist-open-icon {
    width: 25px;
    height: 25px;
  }
}

#ui #front-body .button-container {
  float: left;
  position: relative;
  left: 0;
  top: 0;
  width: 33.3%;
  height: 100%;
}

#ui #front-body .button-icon {
  margin: 0 auto;
  width: 65px;
  height: 65px;
}

@media only screen and (max-width: 600px) {
  #ui #front-body .button-icon {
    width: 45px;
    height: 45px;
  } 
}

#ui #front-body #loading-error-icon {
  width: 100px;
  height: 100px;
  margin: 0 auto;
}

@media only screen and (max-width: 600px) {
  #ui #front-body #loading-error-icon {
    width: 75px;
    height: 75px;
  }
}

#ui #front-body #pause-button .button-icon {
  width: 50px;
  height: 90px;
}

@media only screen and (max-width: 600px) {
  #ui #front-body #pause-button .button-icon {
    width: 35px;
    height: 65px;
  } 
}

#ui #front-body #play-button .button-icon {
  width: 75px;
  height: 85px;
}

@media only screen and (max-width: 600px) {
  #ui #front-body #play-button .button-icon {
    width: 50px;
    height: 60px;
  }  
}

#ui #front-footer #progress-bar {
  position: relative;
  height: 100%;
  border: solid 4px white;
  box-sizing: border-box;
}

@media only screen and (max-width: 600px) {
  #ui #front-footer #progress-bar {
    border-width: 3px;
  } 
}

#ui #front-footer #progress-bar-fill {
  position: absolute;
  left: -1px;
  top: 0;
  height: 100%;
  background-color: white;
  padding-left: 1px;
}

#ui #front-footer #track-progress-time {
  text-align: center;
}
