:root {
  --highlight: #277;
  --highlight-background: #122;
  --highlight-hover: #388;  
}

html, body {
  width:100%;
  height:100%;
  padding:0;
  margin:0;
  overflow:hidden;
  font-family:'Montserrat',sans-serif;
}

body {
  background:#0f1418 no-repeat center;
  background-size:cover;
  box-sizing: border-box;
  padding:20px;
  color:#ccc;
}

body.frame {
  background-color:transparent;
}

body.frame:before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url(//push.live/skin/logo.svg) no-repeat center center;
  background-size: 50% 50%;
  opacity: .1;
  content: "";
}

h1 {
  margin:0;
  padding:0;
  font-size: 18px;;
}

::selection {
  background-color:var(--highlight-hover);
}

.background {
  position: absolute;
  background:#0f1418;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity:1;
  transition: opacity 1s linear .25s;
}

.background.loaded {
  opacity:.25;
}

.player {
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%, -50%);
  width:1280px;
  height:720px;
  transition: opacity .5s, width .5s, height .5s;
  opacity:1;
  overflow:hidden;
}

.player.close {
  opacity:0;
  width:640px;
  height:540px;
}

.player iframe {
  position:relative;
  top:0;
  left:0;
  border:0;
  width:100%;
  height:100%;
}
.player .poster {
  background:no-repeat center;
  background-size:contain;
}

body.fullscreen .player {
  top:0;
  left:0;
  transform:none;
  padding:0;
  width:100%;
  height:100%;
}

.player .video {
  background:#000;
}

.player.pending > .video {
  display:none;
}

.layers {
  position:absolute;
  top:0;
  left:0;
  pointer-events:none;
}

.layer {
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  transition:opacity 1s;
  pointer-events:none;
}

.layer > a {
  position:absolute;
  border:2px solid rgba(255,255,255,0.1);
  border-radius:5px;
  box-sizing:border-box;
  transition:border-color .5s;
  pointer-events:auto;
}

.layer > a:hover {
  border-color:#fec626
}

#login {
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%, -50%);
  padding:50px;
  border-radius:2px;
  box-shadow:1px 1px 5px rgba(0,0,0,.5);
  background:#151A1FDD;
  color:#fff;
  font-size:18px;
  transition: opacity .5s;
  opacity: 1;
}

#login.close {
  opacity: 0;
  pointer-events: none;
}

#login > div {
  text-align:center;
  margin:0 0 40px 0;
}

#login td:first-child {
  width:160px;
  padding-right:10px;
}

#login table {
  padding: 0;
  border-spacing: 0;
}

[contenteditable="true"], input[type=text], input[type=password]  {
  padding:10px;
  border:2px solid #444;
  font-size:13px;
  border-radius:5px;
  color:#ccc;
  outline:none;
  font-family:'Montserrat',sans-serif;
  background:#222 !important;
}

#login input {
  width:250px;
  margin:2px 0;
}

input:-webkit-autofill {
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0), inset 0 0 0 100px #222;
  -webkit-text-fill-color:#ccc;
}

.chat a, #login a {
  margin:10px 0;
  border-radius:5px;
  background:var(--highlight);
  padding:10px 20px;
  cursor:pointer;
  float:right;
  color:#111;
  font-weight: bold;
  font-size:13px;
  box-shadow: 1px 1px 1px #000;
}

.chat a:hover, #login a:hover {
  background-color:var(--highlight-hover);
  border-color:var(--highlight-hover) !important;
  box-shadow: 0 0 5px rgba(255,255,255,.25), 1px 1px 1px #000;
}

#login a.loading {
  cursor:wait;
}

#login span {
  display:block;
  float:left;
  margin-top:20px;
  color:red
}

.chat [contenteditable="true"]:focus, input[type="text"]:focus, input[type="password"]:focus {
  border:2px solid var(--highlight-hover);
}

/*****************************  MEDIA QUERIES  *********************************/

@media 
only screen and (-webkit-min-device-pixel-ratio: 2) and (min-width: 1200px) and (max-width:1680px),
only screen and (min--moz-device-pixel-ratio: 2) and (min-width: 1200px) and (max-width:1680px),
only screen and (-o-min-device-pixel-ratio: 2/1) and (min-width: 1200px) and (max-width:1680px),
only screen and (min-device-pixel-ratio: 2) and (min-width: 1200px) and (max-width:1680px) {
  .player                {zoom:0.75;}
}

@media 
only screen and (max-height:940px),
only screen and (max-width:1300px) {
  .player.context {
    top:0;
    left:0;
    transform:none;
    padding:0;
    width:100% !important;
    height:100% !important;
  }
}

@media 
only screen and (max-height:740px),
only screen and (max-width:1300px) {
  .player {
    top:0;
    left:0;
    transform:none;
    padding:0;
    width:100% !important;
    height:100% !important;
  }
}

@media screen and (max-width:1680px) {
  .player.sidebar {
    top:0;
    left:0;
    transform:none;
    padding:0;
    width:100% !important;
    height:100%;
  }
}

@media screen and (max-width:1200px) {
  .player       {zoom:1 !important;}
  .player       {top:0;left:0;width:100% !important;height:100%;padding:0;transform:none;}
  .player > .poster,
  .player > .video   {position:absolute;top:0;left:0;width:100%;height:100%;}
  .player > .context {display:none;}
}

@media (max-aspect-ratio: 13/9) {
  .player {
    top:0;
    left:0;
    width:100% !important;
    height:100%;
    padding:0 !important;
    transform:none;
  }
  
  .player.sidebar > .poster,
  .player.sidebar > .video {
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:0;
    padding:56.25% 0 0 0;
  }
  .player.sidebar .side {
    top:56.25vw;
    right:0;
    bottom:0;
    width:100%;
    height:auto;
    display:block;
    padding:0
  }
  .player .context {
    display:none;
  }
  #login {
    font-size:14px;
  }
  #login input {
    font-size:13px;
  }
}

@media (max-aspect-ratio: 13/9) and (max-width: 400px) {
  #login {
    font-size:12px;
  }
  #login input {
    width:180px
  }
}

/*************** DIALOG ********************/
.dialog-back {
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background:rgba(0,0,0,.25);
  transition:opacity .5s;
  opacity:0;
}
.dialog-back > div {
  position:absolute;
  width:0;
  height:0;
}
.dialog-back > div > * {
  position:absolute;
}
.dialog-back.on {
  opacity:1;
}

/*************** SCROLL ********************/

.scroll .bar {
  position:absolute;
  top:0;
  right:0;
  width:10px;
  opacity:0;
  transition:opacity .5s,background-color .5s;
  min-height:25px;
  right:2px !important;
}
.scroll .bar:after {
  position:absolute;
  top:2px;
  bottom:2px;
  left:2px;
  right:2px;
  background:#fff;
  border-radius:10px;
  content:""
}
.scroll:hover > .bar {
  opacity:.2
}
.scroll > .bar:hover {
  opacity:.5;
}
.scroll > .bar.moving {
  opacity:1 !important;
}
.scroll > .bar.moving:after {
  background-color:var(--highlight);
}