238 lines
5.1 KiB
CSS
238 lines
5.1 KiB
CSS
@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&display=swap');
|
|
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html, body {
|
|
width: 100%;
|
|
height: 100%;
|
|
overflow: hidden;
|
|
background: #1a0a2e;
|
|
font-family: 'Orbitron', monospace;
|
|
touch-action: none;
|
|
}
|
|
|
|
#gameCanvas {
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
#ui {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
pointer-events: none;
|
|
z-index: 100;
|
|
}
|
|
|
|
#score {
|
|
position: absolute;
|
|
top: 20px;
|
|
left: 30px;
|
|
color: #00ffff;
|
|
font-size: 32px;
|
|
font-weight: 700;
|
|
text-shadow: 0 0 10px #00ffff, 0 0 20px #00ffff, 0 0 40px #00ffff;
|
|
letter-spacing: 2px;
|
|
animation: glow-pulse 2s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes glow-pulse {
|
|
0%, 100% { text-shadow: 0 0 10px #00ffff, 0 0 20px #00ffff, 0 0 40px #00ffff; }
|
|
50% { text-shadow: 0 0 15px #00ffff, 0 0 30px #00ffff, 0 0 60px #00ffff, 0 0 80px #00ffff; }
|
|
}
|
|
|
|
#highScore {
|
|
position: absolute;
|
|
top: 25px;
|
|
right: 30px;
|
|
color: #ff00ff;
|
|
font-size: 18px;
|
|
font-weight: 400;
|
|
text-shadow: 0 0 8px #ff00ff, 0 0 16px #ff00ff;
|
|
letter-spacing: 1px;
|
|
}
|
|
|
|
.overlay {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: rgba(26, 10, 46, 0.92);
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
align-items: center;
|
|
pointer-events: auto;
|
|
transition: opacity 0.4s ease;
|
|
}
|
|
|
|
.overlay.hidden {
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
}
|
|
|
|
#startScreen h1 {
|
|
font-size: clamp(36px, 10vw, 72px);
|
|
font-weight: 900;
|
|
color: #00ffff;
|
|
text-shadow: 0 0 20px #00ffff, 0 0 40px #00ffff, 0 0 80px #00ffff;
|
|
margin-bottom: 15px;
|
|
letter-spacing: 4px;
|
|
animation: title-glow 2s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes title-glow {
|
|
0%, 100% {
|
|
transform: scale(1);
|
|
text-shadow: 0 0 20px #00ffff, 0 0 40px #00ffff, 0 0 80px #00ffff;
|
|
}
|
|
50% {
|
|
transform: scale(1.03);
|
|
text-shadow: 0 0 30px #00ffff, 0 0 60px #00ffff, 0 0 100px #00ffff, 0 0 120px #00ffff;
|
|
}
|
|
}
|
|
|
|
#startScreen p {
|
|
font-size: clamp(14px, 3vw, 20px);
|
|
color: #ff00ff;
|
|
text-shadow: 0 0 10px #ff00ff;
|
|
margin-bottom: 35px;
|
|
letter-spacing: 3px;
|
|
}
|
|
|
|
.start-btn {
|
|
padding: 18px 50px;
|
|
font-size: clamp(18px, 4vw, 26px);
|
|
font-family: 'Orbitron', monospace;
|
|
font-weight: 700;
|
|
color: #1a0a2e;
|
|
background: linear-gradient(135deg, #00ffff, #ff00ff);
|
|
border: none;
|
|
cursor: pointer;
|
|
letter-spacing: 3px;
|
|
transition: all 0.3s ease;
|
|
box-shadow: 0 0 20px #00ffff, 0 0 40px #ff00ff;
|
|
border-radius: 4px;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.start-btn::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: -50%;
|
|
left: -50%;
|
|
width: 200%;
|
|
height: 200%;
|
|
background: linear-gradient(
|
|
45deg,
|
|
transparent,
|
|
rgba(255, 255, 255, 0.3),
|
|
transparent
|
|
);
|
|
transform: rotate(45deg) translateX(-100%);
|
|
transition: transform 0.6s ease;
|
|
}
|
|
|
|
.start-btn:hover {
|
|
transform: scale(1.08);
|
|
box-shadow: 0 0 30px #00ffff, 0 0 60px #ff00ff;
|
|
}
|
|
|
|
.start-btn:hover::before {
|
|
transform: rotate(45deg) translateX(100%);
|
|
}
|
|
|
|
.start-btn:active {
|
|
transform: scale(0.98);
|
|
}
|
|
|
|
#gameOverScreen h2 {
|
|
font-size: clamp(32px, 8vw, 56px);
|
|
font-weight: 900;
|
|
color: #ff3333;
|
|
text-shadow: 0 0 20px #ff3333, 0 0 40px #ff3333;
|
|
margin-bottom: 25px;
|
|
letter-spacing: 4px;
|
|
animation: shake 0.5s ease-in-out;
|
|
}
|
|
|
|
@keyframes shake {
|
|
0%, 100% { transform: translateX(0); }
|
|
20% { transform: translateX(-10px); }
|
|
40% { transform: translateX(10px); }
|
|
60% { transform: translateX(-10px); }
|
|
80% { transform: translateX(10px); }
|
|
}
|
|
|
|
#gameOverScreen .final-score {
|
|
font-size: clamp(24px, 6vw, 40px);
|
|
color: #00ffff;
|
|
text-shadow: 0 0 15px #00ffff;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
#gameOverScreen .final-high {
|
|
font-size: clamp(16px, 3vw, 24px);
|
|
color: #ffd700;
|
|
text-shadow: 0 0 10px #ffd700;
|
|
margin-bottom: 35px;
|
|
}
|
|
|
|
.controls-hint {
|
|
position: absolute;
|
|
bottom: 30px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
color: #888;
|
|
font-size: 14px;
|
|
letter-spacing: 1px;
|
|
text-align: center;
|
|
}
|
|
|
|
/* Mobile optimizations */
|
|
@media (max-width: 600px) {
|
|
#score {
|
|
top: 15px;
|
|
left: 20px;
|
|
font-size: 24px;
|
|
}
|
|
|
|
#highScore {
|
|
top: 18px;
|
|
right: 20px;
|
|
font-size: 14px;
|
|
}
|
|
|
|
.controls-hint {
|
|
font-size: 12px;
|
|
padding: 0 20px;
|
|
}
|
|
}
|
|
|
|
/* Scanline effect overlay */
|
|
#ui::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: repeating-linear-gradient(
|
|
0deg,
|
|
transparent,
|
|
transparent 2px,
|
|
rgba(0, 0, 0, 0.03) 2px,
|
|
rgba(0, 0, 0, 0.03) 4px
|
|
);
|
|
pointer-events: none;
|
|
}
|