/* HUD based on http://cloudfront.mediamatters.org/static/uploader/image/2016/04/22/ChrisWallaceMacCallum.jpg */
/* Depends on length of ticker text */
body {
  background: #19f radial-gradient(transparent, #02c);
  font-family: Arial;
  color: #fff;
  display: flex;
  display: -webkit-flex;
  flex-direction: column;
  -webkit-flex-direction: column;
  align-items: flex-end;
  -webkit-align-items: flex-end;
  justify-content: flex-end;
  -webkit-justify-content: flex-end;
  height: 100vh;
  margin: 0;
  text-transform: uppercase;
}

p {
  margin: 0;
}

.main {
  display: flex;
  display: -webkit-flex;
  flex-direction: row;
  -webkit-flex-direction: row;
  justify-content: flex-end;
  -webkit-justify-content: flex-end;
  width: 100%;
}

.logo-area {
  height: 110px;
  width: 15%;
}

.box-top, .box-bttm {
  display: block;
  margin-left: auto;
  margin-right: 20px;
  perspective: 1200px;
  perspective-origin: 50% 100px;
  width: 110px;
}

.box-top {
  background: radial-gradient(80px 70px, #004 60%, transparent 61%, transparent);
  font-size: 24pt;
  line-height: 0.9em;
  height: 80px;
}

.box-bttm {
  font-size: 18pt;
  font-weight: bold;
  text-align: center;
  text-transform: none;
  height: 30px;
  line-height: 1.2em;
  transform: scale(1, 0.85);
}

.cube {
  position: relative;
  margin: auto;
  width: 110px;
  transform-style: preserve-3d;
}

.cube div {
  position: absolute;
  width: 110px;
}

.box-top .cube {
  animation: spin 60s linear infinite;
}
.box-top .cube div {
  background: rgba(0, 48, 160, 0.5);
  border: 2px solid #cff;
  height: 80px;
  overflow: hidden;
}
.box-top .cube svg {
  transform: translateY(-15px);
}

.box-bttm .cube {
  animation: spin 15s cubic-bezier(0.25, 1, 0.45, 1) infinite;
  text-shadow: 0 0 4px #000;
}
.box-bttm .cube div {
  background: radial-gradient(#800, #400);
  height: 30px;
}

.back {
  transform: translateZ(-55px) rotateY(180deg);
}

.right {
  transform: rotateY(-270deg) translateX(55px);
  transform-origin: top right;
}

.left {
  transform: rotateY(270deg) translateX(-55px);
  transform-origin: center left;
}

.front {
  transform: translateZ(55px);
}

.ampm {
  font-size: 12pt;
}

.box-bttm {
  margin-left: auto;
  height: 30px;
  width: 110px;
}

.cur-event {
  background: linear-gradient(90deg, transparent, #800 5%);
  font-size: 28pt;
  font-weight: 600;
  overflow: hidden;
  position: relative;
  text-align: center;
  width: 85%;
  height: 110px;
}
.cur-event .top, .cur-event .glow, .cur-event .bttm {
  position: absolute;
  right: 0;
}
.cur-event .top {
  background: radial-gradient(#fff, transparent 60%);
  top: 0;
  height: 10px;
  width: 95%;
}
.cur-event .glow {
  background: linear-gradient(90deg, transparent 30%, #c00);
  box-shadow: 0 10px 10px #800 inset;
  bottom: 0;
  height: 30px;
  width: 90%;
}
.cur-event .bttm {
  background: linear-gradient(90deg, transparent, #fca);
  box-shadow: 0 0 2px #800 inset;
  bottom: 0;
  height: 5px;
  width: 90%;
}
.cur-event p {
  line-height: 1em;
  margin: 20px;
  text-shadow: 0 2px 4px #000;
  vertical-align: center;
  transform: scale(1, 1.3);
}

.ticker {
  background: #000;
  font-size: 16pt;
  width: 100%;
  height: 30px;
  overflow: hidden;
  position: relative;
  white-space: nowrap;
}
.ticker .ticker-txt {
  position: absolute;
  left: 0;
  line-height: 1.5em;
  letter-spacing: 1px;
  width: 4500px;
  animation: marquee 67.5s linear infinite;
}
.ticker .stock-info {
  background: linear-gradient(90deg, #000, #000 25%, #0a0 80%, #000 80%, #000);
  box-shadow: -16px 0 20px #000;
  position: absolute;
  top: 0;
  right: 0;
  width: 230px;
  height: 30px;
}
.ticker .stock-symbol {
  background: linear-gradient(#666, #000);
  -webkit-clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%);
  border: 2px solid #fff;
  float: left;
  width: 75px;
  height: 26px;
}
.ticker .stock-symbol p {
  font-weight: bold;
  line-height: 1.3em;
  transform: scale(0.8, 1.1);
}
.ticker span {
  float: right;
  line-height: 1.5em;
  margin-right: 50px;
  text-shadow: 0 2px 4px #000;
  transform: scale(1, 1.1);
}

.bottom {
  background: linear-gradient(90deg, #400, #800, #400);
  box-shadow: 0 6px 6px #400 inset;
  width: 100%;
  height: 20px;
}

@keyframes marquee {
  from {
    left: 100%;
  }
  to {
    left: -4500px;
  }
}
@keyframes spin {
  0% {
    transform: rotateY(0deg);
  }
  25% {
    transform: rotateY(90deg);
  }
  50% {
    transform: rotateY(180deg);
  }
  75% {
    transform: rotateY(270deg);
  }
  100% {
    transform: rotateY(360deg);
  }
}
/* For other viewports */
@media screen and (min-width: 768px) and (max-width: 980px) {
  .logo-area {
    width: 20%;
  }

  .cur-event {
    width: 80%;
  }
}
@media screen and (max-width: 767px) {
  .logo-area {
    width: 25%;
  }

  .cur-event {
    width: 75%;
  }
}
