@import "variables"

// common variables for this page
$-h1: rgba(45,45,45,1)
$-outline: rgba(#fff, .4)
$-shadow: rgba($yellow, .5)

$-term-color: #c3993c
$-term-height: 550px
$-term-height-mid: 400px
$-term-height-mobile: 280px
$-term-scanline-height: 5px

@import "banner-fonts"

.main
  background-color: var(--background-color)
  color: var(--foreground-color)
  padding: 10px 15px
  font-size: 0.9em

.headline
  max-width: $page-width
  height: auto
  font-size: $bigger-font-size
  text-align: center

.alt-background
  background: var(--alt-background-color)

.cards-list
  max-width: $page-width
  height: 100%
  display: flex
  flex-direction: column
  justify-content: center
  align-items: center
  text-align: center
  padding: $large-spacer $huge-spacer

.nav-spacer
  display: none  // so the banner is against the navbar

.banner-burnin
  position: absolute
  width: 100%
  height: 100%
  z-index: $back
  box-shadow: inset 0px 0px 1px 1px rgba(64, 64, 64, .1)
  background: radial-gradient(ellipse at center,darken($-term-color,30%) 0%,rgba(64,64,64,0) 50%)
  transform-origin : 50% 50%
  transform: perspective(20px) rotateX(.5deg) skewX(2deg) scale(1.03)
  animation: burnin 1s linear infinite
  opacity: .9

.banner-burnin::after
  position: relative
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.5) 0%,rgba(64,64,64,0) 100%)
  opacity: .1

.banner-terminal
  position: relative
  z-index: 90
  margin: 0 auto
  width: 100%
  height: $-term-height
  background-color: #0a1922
  overflow: hidden

.banner-terminal::before
  position: absolute
  width: 100%
  height: 100%
  top: 0
  left:  0
  content: ""
  z-index: $front
  background: linear-gradient(#777 50%, #0a1922 50%)
  background-size: 100% 4px
  background-repeat: repeat-y
  opacity: .14
  box-shadow : inset 0px 0px 1px 1px rgba(0, 0, 0, .8)
  animation: pulse 5s linear infinite

.banner-terminal::after
  position: absolute
  content: ""
  top: 0
  left: 0
  width: 100%
  height: 76%
  z-index: 99
  background: radial-gradient(ellipse at center, rgba(0,0,0,1) 0%,rgba(0,0,0,0.62) 45%,rgba(0,9,4,0.6) 47%,$-term-color 100%)
  background-color: $-term-color
  box-shadow : inset 0px 0px 4px 4px rgba(100, 100, 100, .5)
  opacity : .1

.banner-scanline
  --scanline-area: #{$-term-height}

  position: relative
  z-index: 99
  width: 100%
  height: 5px
  background: linear-gradient(to bottom, rgba(255,0,0,0) 0%,rgba(255,250,250,1) 50%,rgba(255,255,255,0.98) 51%,rgba(255,0,0,0) 100%)
  background-color: #fff
  background-size: 100% 4px
  opacity : .1
  animation: scanline 3.25s ease-in-out infinite

.banner-textarea
  position: relative
  width: 1500px
  height: 600px
  margin: 0 auto

.banner-prompt
  position: relative
  text-align: left
  padding-left: 1em
  font-family: DejaVuSansMono
  text-shadow: 0 0 8px rgba(lighten($-term-color, 50%), 0.3)
  font-size: 3.5em
  color: $-term-color

.ghost, .pop
  opacity: 0.27

.banner-msg-line
  text-shadow: 0 0 8px rgba(lighten($-term-color, 30%), 0.3)
  font-family: DejaVuSansMono
  font-smoothing: antialiased
  padding-left: 6em
  font-size: 2.6em
  white-space: pre
  color: $-term-color
  overflow: hidden

#banner-msg-animate
  text-shadow: 0 0 8px rgba(lighten($-term-color, 50%), 0.1)
  color: darken(desaturate($-term-color, 10%), 20%)
  bottom: 0

.flicker
  margin: 0
  color: $-h1
  letter-spacing: -.05rem

.flicker::before
  content: attr(data-text)
  position: absolute
  overflow: hidden
  color: $yellow
  z-index: $above
  text-shadow: none
  animation: flicker 3s linear infinite

.glitch
  margin: 0
  letter-spacing: -0.05rem
  display: inline-block
  animation: glitch 1s linear infinite

.glitch::before, .glitch::after
  content: attr(data-text)
  position: absolute
  overflow: hidden

.glitch::before
  left: 0;
  animation: glitch-top 1s linear infinite
  clip-path: polygon(0 0, 100% 0, 100% 33%, 0 33%)

.glitch::after
  left: 0
  animation: glitch-bottom 1.5s linear infinite
  clip-path: polygon(0 67%, 100% 67%, 100% 100%, 0 100%)

@keyframes burnin
  0%
    transform: scale(1, 1.002)
  50%
    transform: scale(1, 1.0001)
  100%
    transform: scale(1.001, 1)

@keyframes scanline
  to
    transform: translateY(var(--scanline-area)) translateY(-$-term-scanline-height)

@keyframes pulse
  0%
    transform: scale(1.001)
    opacity: .14
  8%
    transform: scale(1.000)
    opacity: .13
  15%
    transform: scale(1.004)
    opacity: .14
  30%
    transform: scale(1.002)
    opacity: .11
  100%
    transform: scale(1.000)
    opacity: .14

@keyframes flicker
  0%, 19.999%, 22%, 62.999%, 64%, 64.999%, 70%, 100%
    opacity: .99
    text-shadow: -1px -1px 0 $-outline, 1px -1px 0 $-outline, -1px 1px 0 $-outline, 1px 1px 0 $-outline, 0 -2px 8px, 0 0 2px, 0 0 5px #ff7e00, 0 0 15px #ff4444, 0 0 2px #ff7e00, 0 2px 3px #000

  20%, 21.999%, 63%, 63.999%, 65%, 69.999%
    opacity: 0.4
    text-shadow: none

@keyframes glitch
  2%, 64%
    transform: translate(2px,0) skew(0deg)
  4%, 60%
    transform: translate(-2px,0) skew(0deg)
  62%
    transform: translate(0,0) skew(5deg)

@keyframes glitch-top
  2%, 64%
    transform: translate(2px,-2px)
  4%, 60%
    transform: translate(-2px,2px)
  62%
    transform: translate(13px,-1px) skew(-13deg)

@keyframes glitch-bottom
  2%, 64%
    transform: translate(-2px,0)
  4%, 60%
    transform: translate(-2px,0)
  62%
    transform: translate(-22px,5px) skew(21deg)

@keyframes typing
  to
    width: 100%

@keyframes blinking
  from, to
    border-color: transparent
  50%
    border-color: orange

.motto
  text-align: left
  padding-top: $large-spacer

@media only screen and (max-width:1200px)
  .banner-terminal
    height: $-term-height-mid
  .banner-scanline
    --scanline-area: #{$-term-height-mid}
  .banner-prompt
    font-size: 3em
  .banner-msg-line
    font-size: 2em

@media only screen and (max-width:1000px)
  html, body
    overflow-x: hidden

  body
    -webkit-text-size-adjust: none

@media only screen and (max-width:800px)
  .banner-terminal
    height: $-term-height-mobile
  .banner-scanline
    --scanline-area: #{$-term-height-mobile}
  .banner-prompt
    font-size: 2em
  .banner-msg-line
    font-size: 1.5em
    padding-left: 3em
