header {
  max-width: 500px;
  margin: auto;
  height: 80px;
  background-color: #000;
  width: 100%;
  padding-top: 0px;
  display: flex;
  justify-content: space-between; }
  @media (max-width: 300px) {
    header {
      height: 60px; } }

.header .logo {
  flex: 0 1;
  flex-basis: 200px;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: center; }
  .header .logo.soundbreaking img {
    max-height: 50px; }
  .header .logo img {
    max-width: 80%;
    max-height: 50px; }

.header .widget-title {
  background: #000;
  flex: 1;
  position: relative;
  padding-top: 25px;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  flex-basis: 200px;
  max-width: 300px;
  border-left: 1px dotted #505050;
  border-right: 1px dotted #505050;
  cursor: pointer; }
  .header .widget-title:hover {
    background-color: #222; }
  .header .widget-title h1 {
    height: 25px;
    padding: 6px 0;
    width: 100%;
    position: absolute;
    top: 0;
    margin: 0;
    background-color: #000;
    border-bottom: 1px dotted #505050; }
    .header .widget-title h1 img {
      height: 100%;
      display: block;
      margin: 0 auto; }
  .header .widget-title h2 {
    font-family: 'Oswald', sans-serif;
    text-transform: uppercase;
    text-align: center;
    display: block;
    font-size: 13px;
    letter-spacing: 1px;
    word-spacing: 800px;
    margin: 0;
    color: #fff;
    line-height: 14.5px; }
    @media (max-width: 300px) {
      .header .widget-title h2 {
        font-size: 10px;
        line-height: 11px; } }

.header .widget-menu {
  position: absolute;
  z-index: 200;
  background: black;
  top: 78px;
  left: calc(50% - 252px);
  border: 2px solid white;
  padding: 0px;
  width: 504px; }
  @media (max-width: 500px) {
    .header .widget-menu {
      left: 0px;
      width: 100%; } }
  .header .widget-menu ul {
    list-style: none; }
  .header .widget-menu li {
    margin-left: 0px;
    border-bottom: 1px solid darkgray;
    height: 48px; }
  .header .widget-menu li.active > a {
    background-color: #03aded !important;
    background-image: none !important; }
  .header .widget-menu img {
    width: 48px;
    background: #03aded;
    margin-right: 10px;
    height: 48px;
    border-bottom: 1px solid white;
    border-right: 1px solid white; }
  .header .widget-menu a {
    color: white;
    padding: 0px; }

.footer {
  max-width: 500px;
  margin: auto;
  height: 50px;
  background-color: #000;
  align-content: center;
  position: relative;
  bottom: 0;
  width: 100%;
  padding: 10px;
  align-content: center;
  display: flex;
  justify-content: center;
  align-items: center; }

.footerimg {
  position: relative;
  min-width: 200px;
  align-content: center;
  align-items: center;
  display: flex;
  justify-content: center;
  padding: 15px; }

#widget {
  margin-bottom: 50px;
  width: 100%;
  max-width: 500px;
  margin: 0 auto; }

@media (max-width: 300px) {
  main.container#widget {
    padding: 0px; }
  main.container {
    padding: 0px; } }

.instructions-container .instructions {
  background-color: #03b6f3;
  margin: auto;
  padding: 15px;
  font-size: 1.0em;
  text-align: center; }

@media (max-width: 500px) {
  .instructions-container .instructions-container, .instructions-container .instructions {
    font-size: 1.0em; } }

@media (max-width: 300px) {
  .instructions-container .instructions-container, .instructions-container .instructions {
    font-size: 0.8em; } }

.screen {
  height: 333.33334px;
  background-color: #ffffff;
  padding: 15px; }
  .screen canvas, .screen video {
    width: 100%;
    height: 100%; }
  .screen video {
    display: none; }

.title {
  background-color: #f5f5f5;
  border-bottom: 1px dotted lightgray;
  border-top: 1px dotted lightgray;
  margin: 0px auto;
  color: #000;
  font-size: 14px;
  text-align: center;
  padding: 5px; }
  .title > * {
    padding: 5px; }

@media (max-height: 750px) {
  .screen {
    height: 250px; } }

@media (max-height: 650px) {
  .screen {
    height: 225px; } }

.play-pause {
  width: 100px;
  height: 100px;
  margin: auto;
  background: url("../shared/img/icon-play-128.png") no-repeat;
  background-color: #8cefbf;
  border-radius: 50%;
  background-size: 60%;
  background-position: center;
  cursor: pointer; }

.play-pause.playing {
  background: url("../shared/img/icon-pause-128.png") no-repeat;
  background-size: 60%;
  background-position: center;
  background-color: #ff2979; }

nav.controls {
  width: 100%;
  margin: 0px 0;
  padding: 20px;
  position: relative;
  background-color: white; }
  nav.controls .controls--label {
    width: 100%;
    text-align: center;
    text-transform: uppercase; }

li {
  position: relative; }

li .circle {
  border-radius: 50%;
  background-color: #ddd;
  width: 80px;
  height: 80px;
  margin: auto;
  position: relative;
  cursor: pointer; }

li .circle.selected {
  background-color: #03b6f3; }

li .circle * {
  cursor: pointer; }

.controls ul li div {
  background-size: 50% 50%;
  background-repeat: no-repeat;
  background-position: 50% 50%; }

.circle__label {
  text-align: center;
  width: 100%;
  height: 30px;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto; }

@media (max-width: 500px) {
  li .circle {
    width: 100px;
    height: 100px; } }

@media (max-width: 300px) {
  li .circle {
    width: 75px;
    height: 75px; } }

@media (max-height: 850px) {
  li .circle {
    width: 70px;
    height: 70px; }
  .play-pause {
    width: 90px;
    height: 90px; } }

@media (max-height: 750px) {
  li .circle {
    width: 65px;
    height: 65px; }
  .play-pause {
    width: 80px;
    height: 80px; } }

@media (max-height: 650px) {
  li .circle {
    width: 50px;
    height: 50px; }
  .play-pause {
    width: 65px;
    height: 65px; } }

.knob {
  display: flex;
  width: 100%; }
  .knob__range, .knob input[type=range] {
    display: none; }
  .knob__image {
    background-image: url("../shared/img/knob-1.png");
    flex: 2;
    flex-basis: 120px;
    padding: 20px;
    min-height: 120px;
    background-size: 75%;
    background-repeat: no-repeat;
    background-position: center;
    cursor: row-resize;
    margin: auto; }

.loading {
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transition: visibility 0s linear 300ms, opacity 300ms;
  -webkit-transition: visibility 0s linear 300ms, opacity 300ms;
  display: block;
  z-index: 1000;
  position: absolute;
  width: 100%;
  left: 0px;
  height: 100%;
  background-color: rgba(68, 68, 68, 0.8);
  background-image: url("../shared/img/ripple.gif");
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-position: center; }
  .loading--active {
    visibility: visible;
    opacity: 1; }
  .loading h1 {
    width: 100%;
    text-align: center;
    height: 100%;
    box-siding: border-box;
    padding: 5% 0px;
    color: #dbf0fc; }

@media (max-width: 500px) {
  #loader {
    width: 480px; } }

@media (max-width: 300px) {
  #loader {
    width: 320px; } }

html {
  width: 1px;
  min-width: 100%; }

html, body {
  height: 100%; }

body.body {
  background-color: #ecf4f7;
  overflow-x: hidden;
  font-size: 14px; }
  @media (max-height: 649px) {
    body.body {
      overflow-x: scroll; } }

* {
  user-select: none; }

.table-of-contents {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  padding: 0;
  padding-top: 20px;
  justify-content: center;
  background-color: #ffffff;
  margin-bottom: 0;
  padding-bottom: 20px; }
  .table-of-contents li {
    list-style: none; }
  .table-of-contents a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #03aded;
    width: 150px;
    height: 150px;
    margin: 1px;
    padding: 0 30px;
    text-align: center;
    color: #fff;
    font-family: 'Oswald', sans-serif;
    font-size: 13px;
    letter-spacing: 1px;
    text-transform: uppercase;
    line-height: 1.1; }
    .table-of-contents a:hover {
      text-decoration: none; }
  .table-of-contents img {
    width: 100%; }
