.container {
  width: 100%;
  max-width: 400px;
  border-radius: 8px;
}
.header,
.footer {
  padding: 15px 0;
  background-color: black;
  text-align: center;
}
.header .button,
.footer .button {
  display: inline-block;
  width: 20px;
  height: 20px;
  margin: 0 25px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: auto 20px;
  text-indent: -9999em;
}
.header .button-play {
  background-image: url(../res/icon/play.png);
}
.header .button-pause {
  background-image: url(../res/icon/pause.png);
}
.header .button-pause {
  background-image: url(../res/icon/pause.png);
}
.header .button-about {
  background-image: url(../res/icon/info.png);
}
.header .button-setting {
  background-image: url(../res/icon/settings.png);
}
.panel {
  border-left: 1px solid #f0f0f0;
  border-right: 1px solid #f0f0f0;
}
.sound {
  padding: 22px 24px;
  border-bottom: 1px solid #f0f0f0;
}
.sound .icon {
  width: 36px;
  height: 40px;
  float: left;
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 36px auto;
  cursor: pointer;
}
.sound .icon-disabled {
  opacity: .3;
}
.sound .main {
  margin-left: 60px;
}
.sound .name {
  font-size: 1.2em;
  margin-bottom: 4px;
}
.sound .volume {
  width: 100%;
  -webkit-appearance: none;
}
.sound .volume:focus {
  outline: none;
}
.sound .volume::-webkit-slider-runnable-track {
  height: 14px;
  border: none;
  border-radius: 0;
  background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAIAAAAW4yFwAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkU1NDNCNEVGMjY1QTExRTVCRTk4RjIxMUJCMkY1QUU2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkU1NDNCNEYwMjY1QTExRTVCRTk4RjIxMUJCMkY1QUU2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RTU0M0I0RUQyNjVBMTFFNUJFOThGMjExQkIyRjVBRTYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RTU0M0I0RUUyNjVBMTFFNUJFOThGMjExQkIyRjVBRTYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4LDPUIAAAAE0lEQVR42mK4efMmEwMDA0CAAQAPUgKOiYtq2wAAAABJRU5ErkJggg==') repeat-x center;
}
.sound .volume::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 2px;
  height: 14px;
  border: none;
  border-radius: 0;
  background: black;
  margin-top: 0;
}
.footer {
  text-align: right;
  background-color: #f6f6f6;
  border-top: 1px solid #f0f0f0;
}
.footer .button {
  text-indent: 9999em;
}
.footer .button-timer {
  background-image: url(../res/icon/timer.png);
}
.fixed-banner .container {
  height: 100%;
  position: relative;
}
.fixed-banner .header,
.fixed-banner .footer {
  position: fixed;
  width: 100%;
  max-width: 400px;
}
.fixed-banner .header {
  top: 0;
}
.fixed-banner .footer {
  bottom: 0;
}
.fixed-banner .panel {
  padding: 50px 0;
}
.overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.7);
  -webkit-backdrop-filter: blur(5px);
  display: flex;
  justify-content: center;
  align-items: center;
}
.overlay .info {
  margin: 0 1em;
  padding: 1em 1.5em;
  background: white;
  border: 1px solid #f0f0f0;
  border-radius: 3px;
  box-shadow: 1px 1px 9px #ccc;
}
.overlay .info .description {
  font-size: 1.4em;
  margin: .6em 0 1.5em;
}
.overlay .info .buttons {
  display: flex;
  justify-content: space-around;
}
.overlay .info .buttons a {
  color: #1ab1ea;
  text-decoration: none;
  padding: 5px 10px;
  background: rgba(246, 246, 246, 0.7);
  border-radius: 2px;
}
