Some checks failed
Publish Docker image / Push Docker image to Docker Hub (push) Failing after 6m59s
244 lines
5.6 KiB
Sass
244 lines
5.6 KiB
Sass
// Battle Result Screen styles
|
|
|
|
.battle-result-screen
|
|
display: flex
|
|
flex-direction: column
|
|
min-height: 100%
|
|
padding: 1.5rem
|
|
position: relative
|
|
overflow: hidden
|
|
|
|
header
|
|
display: flex
|
|
justify-content: center
|
|
align-items: center
|
|
flex-direction: column
|
|
margin-bottom: 2rem
|
|
|
|
h1
|
|
margin: 0
|
|
color: $accent
|
|
display: flex
|
|
align-items: center
|
|
gap: 0.75rem
|
|
font-size: 2.2rem
|
|
font-family: 'Press Start 2P', monospace
|
|
text-transform: uppercase
|
|
animation: winner-pulse 2s infinite alternate
|
|
|
|
svg
|
|
color: $accent
|
|
filter: drop-shadow(2px 2px 0 #000)
|
|
|
|
.countdown
|
|
margin-top: 1rem
|
|
font-family: 'Press Start 2P', monospace
|
|
font-size: 0.9rem
|
|
color: $text-muted
|
|
padding: 0.8rem 1.2rem
|
|
background-color: rgba(0, 0, 0, 0.3)
|
|
border-radius: 1rem
|
|
animation: pulse 1s infinite alternate
|
|
display: flex
|
|
align-items: center
|
|
gap: 0.5rem
|
|
|
|
svg
|
|
color: $accent
|
|
margin-right: 0.5rem
|
|
|
|
.winner-announcement
|
|
display: flex
|
|
flex-direction: column
|
|
align-items: center
|
|
margin-bottom: 2rem
|
|
|
|
.song-cards
|
|
display: flex
|
|
flex-direction: column
|
|
width: 100%
|
|
max-width: 700px
|
|
gap: 2rem
|
|
|
|
@media (min-width: 768px)
|
|
flex-direction: row
|
|
align-items: flex-start
|
|
|
|
.song-card
|
|
position: relative
|
|
background-color: rgba(0, 0, 0, 0.3)
|
|
padding: 1.5rem
|
|
border-radius: 1rem
|
|
|
|
&.winner
|
|
flex: 3
|
|
border: 6px solid $accent
|
|
box-shadow: 0 0 20px rgba($accent, 0.3)
|
|
transform: scale(1.05)
|
|
z-index: 1
|
|
|
|
.victory-badge
|
|
position: absolute
|
|
top: -12px
|
|
right: 10px
|
|
background-color: $accent
|
|
color: white
|
|
font-family: 'Press Start 2P', monospace
|
|
font-size: 0.7rem
|
|
padding: 0.5rem 1rem
|
|
border-radius: 0.5rem
|
|
display: flex
|
|
align-items: center
|
|
gap: 0.5rem
|
|
box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.3)
|
|
|
|
svg
|
|
font-size: 0.8rem
|
|
|
|
&.loser
|
|
flex: 2
|
|
opacity: 0.7
|
|
filter: saturate(0.7)
|
|
|
|
.versus
|
|
position: absolute
|
|
top: 50%
|
|
left: -30px
|
|
font-family: 'Bangers', cursive
|
|
font-size: 2.5rem
|
|
color: $accent
|
|
transform: translateY(-50%)
|
|
text-shadow: 0 0 5px rgba($accent, 0.5)
|
|
|
|
@media (max-width: 767px)
|
|
top: -25px
|
|
left: 50%
|
|
transform: translateX(-50%)
|
|
|
|
.song-info
|
|
margin-bottom: 1.5rem
|
|
|
|
h2, h3
|
|
margin: 0 0 0.5rem 0
|
|
font-family: 'Press Start 2P', monospace
|
|
|
|
h2
|
|
font-size: 1.4rem
|
|
color: $text
|
|
margin-right: 70px
|
|
|
|
h3
|
|
font-size: 1.2rem
|
|
color: $text
|
|
|
|
.artist
|
|
color: $text-muted
|
|
font-size: 1.1rem
|
|
margin-bottom: 1rem
|
|
|
|
.submitter
|
|
font-size: 0.9rem
|
|
color: $text-muted
|
|
font-style: italic
|
|
margin-bottom: 0.5rem
|
|
|
|
.vote-count
|
|
display: inline-block
|
|
padding: 0.5rem 1rem
|
|
background-color: rgba(0, 0, 0, 0.3)
|
|
border-radius: 1rem
|
|
font-family: 'Press Start 2P', monospace
|
|
font-size: 0.8rem
|
|
|
|
.votes
|
|
color: $text
|
|
|
|
.winner-video
|
|
width: 100%
|
|
aspect-ratio: 16 / 9
|
|
border-radius: 0.5rem
|
|
overflow: hidden
|
|
|
|
.no-video
|
|
width: 100%
|
|
aspect-ratio: 16 / 9
|
|
display: flex
|
|
flex-direction: column
|
|
align-items: center
|
|
justify-content: center
|
|
background-color: rgba(0, 0, 0, 0.3)
|
|
border-radius: 0.5rem
|
|
color: $text-muted
|
|
|
|
.pulse-icon
|
|
font-size: 2rem
|
|
margin-bottom: 1rem
|
|
animation: pulse 2s infinite
|
|
|
|
.battle-actions
|
|
display: flex
|
|
justify-content: center
|
|
margin-top: auto
|
|
padding-top: 1.5rem
|
|
|
|
.btn
|
|
padding: 1rem 2rem
|
|
font-size: 1.1rem
|
|
display: flex
|
|
align-items: center
|
|
gap: 0.5rem
|
|
|
|
&.pixelated
|
|
position: relative
|
|
|
|
.pixel-corner
|
|
position: absolute
|
|
width: 8px
|
|
height: 8px
|
|
background-color: $primary
|
|
|
|
&.tl
|
|
top: -4px
|
|
left: -4px
|
|
|
|
&.tr
|
|
top: -4px
|
|
right: -4px
|
|
|
|
&.bl
|
|
bottom: -4px
|
|
left: -4px
|
|
|
|
&.br
|
|
bottom: -4px
|
|
right: -4px
|
|
|
|
// Confetti animation
|
|
.confetti
|
|
position: absolute
|
|
width: 10px
|
|
height: 20px
|
|
transform-origin: center bottom
|
|
animation: confetti-fall 3s linear forwards
|
|
z-index: -1
|
|
|
|
@keyframes confetti-fall
|
|
0%
|
|
transform: translateY(-100vh) rotate(0deg)
|
|
100%
|
|
transform: translateY(100vh) rotate(360deg)
|
|
|
|
@keyframes winner-pulse
|
|
0%
|
|
transform: scale(1)
|
|
text-shadow: 2px 2px 0 #000, -2px -2px 0 #000, 2px -2px 0 #000, -2px 2px 0 #000
|
|
100%
|
|
transform: scale(1.05)
|
|
text-shadow: 3px 3px 0 #000, -3px -3px 0 #000, 3px -3px 0 #000, -3px 3px 0 #000
|
|
|
|
@keyframes pulse
|
|
0%
|
|
opacity: 0.7
|
|
100%
|
|
opacity: 1
|