280 lines
6.0 KiB
Sass
280 lines
6.0 KiB
Sass
|
@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
|
||
|
|
||
|
.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: Inconsolata, Courier, unicase
|
||
|
text-shadow: 0 0 8px rgba(lighten($-term-color, 50%), 0.3)
|
||
|
font-size: 4em
|
||
|
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: Inconsolata, Courier, monospace
|
||
|
font-smoothing: antialiased
|
||
|
padding-left: 6em
|
||
|
font-size: 3em
|
||
|
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(letter)
|
||
|
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(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
|