| @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&family=Rajdhani:wght@400;600;700&display=swap'); |
|
|
| * { |
| margin: 0; |
| padding: 0; |
| box-sizing: border-box; |
| } |
|
|
| body { |
| background: radial-gradient(ellipse at 50% 30%, #0f0c29, #0a0a1a 60%, #000); |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| min-height: 100vh; |
| font-family: 'Rajdhani', 'Segoe UI', sans-serif; |
| overflow: hidden; |
| } |
|
|
| |
| body::before { |
| content: ''; |
| position: fixed; |
| top: 0; left: 0; right: 0; bottom: 0; |
| background-image: |
| radial-gradient(1px 1px at 10% 20%, rgba(255,255,255,0.6), transparent), |
| radial-gradient(1px 1px at 30% 50%, rgba(255,255,255,0.4), transparent), |
| radial-gradient(1px 1px at 55% 15%, rgba(255,255,255,0.5), transparent), |
| radial-gradient(1px 1px at 70% 80%, rgba(255,255,255,0.3), transparent), |
| radial-gradient(1px 1px at 85% 40%, rgba(255,255,255,0.5), transparent), |
| radial-gradient(1px 1px at 15% 90%, rgba(255,255,255,0.4), transparent), |
| radial-gradient(1px 1px at 45% 65%, rgba(255,255,255,0.3), transparent), |
| radial-gradient(1px 1px at 90% 10%, rgba(255,255,255,0.6), transparent), |
| radial-gradient(1px 1px at 25% 75%, rgba(255,255,255,0.4), transparent), |
| radial-gradient(1px 1px at 60% 35%, rgba(255,255,255,0.5), transparent); |
| animation: bgDrift 60s linear infinite; |
| pointer-events: none; |
| z-index: 0; |
| } |
|
|
| @keyframes bgDrift { |
| 0% { transform: translateY(0); } |
| 100% { transform: translateY(-100px); } |
| } |
|
|
| #game-container { |
| position: relative; |
| border: 1px solid rgba(100, 140, 255, 0.25); |
| border-radius: 10px; |
| box-shadow: |
| 0 0 30px rgba(80, 120, 255, 0.15), |
| 0 0 60px rgba(80, 120, 255, 0.08), |
| 0 0 120px rgba(80, 120, 255, 0.04), |
| inset 0 0 30px rgba(80, 120, 255, 0.03); |
| animation: containerPulse 4s ease-in-out infinite; |
| } |
|
|
| @keyframes containerPulse { |
| 0%, 100% { |
| box-shadow: |
| 0 0 30px rgba(80, 120, 255, 0.15), |
| 0 0 60px rgba(80, 120, 255, 0.08), |
| 0 0 120px rgba(80, 120, 255, 0.04), |
| inset 0 0 30px rgba(80, 120, 255, 0.03); |
| } |
| 50% { |
| box-shadow: |
| 0 0 40px rgba(100, 140, 255, 0.2), |
| 0 0 80px rgba(100, 140, 255, 0.1), |
| 0 0 140px rgba(100, 140, 255, 0.05), |
| inset 0 0 40px rgba(100, 140, 255, 0.04); |
| } |
| } |
|
|
| canvas { |
| display: block; |
| border-radius: 9px; |
| } |
|
|
| #overlay { |
| position: absolute; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| pointer-events: none; |
| } |
|
|
| #start-screen, |
| #game-over-screen, |
| #pause-screen { |
| position: absolute; |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| justify-content: center; |
| width: 100%; |
| height: 100%; |
| background: rgba(3, 3, 18, 0.88); |
| backdrop-filter: blur(6px); |
| -webkit-backdrop-filter: blur(6px); |
| border-radius: 9px; |
| color: #fff; |
| pointer-events: auto; |
| animation: fadeIn 0.4s ease-out; |
| } |
|
|
| @keyframes fadeIn { |
| from { opacity: 0; transform: scale(0.97); } |
| to { opacity: 1; transform: scale(1); } |
| } |
|
|
| #start-screen h1, |
| #game-over-screen h1, |
| #pause-screen h1 { |
| font-family: 'Orbitron', monospace; |
| font-weight: 900; |
| font-size: 2.4rem; |
| margin-bottom: 0.6rem; |
| letter-spacing: 3px; |
| text-shadow: |
| 0 0 10px rgba(100, 160, 255, 0.8), |
| 0 0 30px rgba(100, 160, 255, 0.4), |
| 0 0 60px rgba(100, 160, 255, 0.2); |
| animation: titleGlow 3s ease-in-out infinite; |
| } |
|
|
| @keyframes titleGlow { |
| 0%, 100% { |
| text-shadow: |
| 0 0 10px rgba(100, 160, 255, 0.8), |
| 0 0 30px rgba(100, 160, 255, 0.4), |
| 0 0 60px rgba(100, 160, 255, 0.2); |
| } |
| 50% { |
| text-shadow: |
| 0 0 15px rgba(140, 190, 255, 1), |
| 0 0 40px rgba(140, 190, 255, 0.6), |
| 0 0 80px rgba(140, 190, 255, 0.3); |
| } |
| } |
|
|
| #game-over-screen h1 { |
| text-shadow: |
| 0 0 10px rgba(255, 80, 80, 0.8), |
| 0 0 30px rgba(255, 80, 80, 0.4), |
| 0 0 60px rgba(255, 80, 80, 0.2); |
| animation: gameOverGlow 2s ease-in-out infinite; |
| } |
|
|
| @keyframes gameOverGlow { |
| 0%, 100% { |
| text-shadow: |
| 0 0 10px rgba(255, 80, 80, 0.8), |
| 0 0 30px rgba(255, 80, 80, 0.4), |
| 0 0 60px rgba(255, 80, 80, 0.2); |
| } |
| 50% { |
| text-shadow: |
| 0 0 15px rgba(255, 100, 100, 1), |
| 0 0 40px rgba(255, 100, 100, 0.6), |
| 0 0 80px rgba(255, 100, 100, 0.3); |
| } |
| } |
|
|
| #start-screen p, |
| #game-over-screen p, |
| #pause-screen p { |
| font-size: 1.15rem; |
| color: #8899bb; |
| margin-bottom: 0.5rem; |
| font-weight: 600; |
| } |
|
|
| #final-score, |
| #final-level { |
| font-family: 'Orbitron', monospace; |
| font-size: 1.3rem !important; |
| color: #ffdd55 !important; |
| font-weight: 700; |
| text-shadow: 0 0 8px rgba(255, 220, 80, 0.4); |
| } |
|
|
| .controls { |
| display: flex; |
| gap: 1rem; |
| margin: 1.2rem 0 1.8rem; |
| font-size: 0.9rem; |
| font-weight: 600; |
| color: #99aacc; |
| letter-spacing: 0.5px; |
| } |
|
|
| .controls span { |
| background: rgba(100, 140, 255, 0.08); |
| padding: 0.35rem 0.9rem; |
| border-radius: 5px; |
| border: 1px solid rgba(100, 140, 255, 0.18); |
| transition: background 0.2s; |
| } |
|
|
| .controls span:hover { |
| background: rgba(100, 140, 255, 0.15); |
| } |
|
|
| button { |
| margin-top: 1.2rem; |
| padding: 0.85rem 3rem; |
| font-family: 'Orbitron', monospace; |
| font-size: 1.15rem; |
| font-weight: 700; |
| color: #fff; |
| background: linear-gradient(135deg, #4a6cf7, #7b3cf7); |
| border: none; |
| border-radius: 8px; |
| cursor: pointer; |
| transition: transform 0.15s, box-shadow 0.2s; |
| letter-spacing: 2px; |
| box-shadow: |
| 0 4px 20px rgba(100, 80, 255, 0.4), |
| 0 0 40px rgba(100, 80, 255, 0.15); |
| position: relative; |
| overflow: hidden; |
| } |
|
|
| button::before { |
| content: ''; |
| position: absolute; |
| top: -50%; |
| left: -60%; |
| width: 40%; |
| height: 200%; |
| background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.12) 50%, transparent 60%); |
| transition: left 0.6s ease; |
| } |
|
|
| button:hover::before { |
| left: 110%; |
| } |
|
|
| button:hover { |
| transform: translateY(-2px); |
| box-shadow: |
| 0 6px 25px rgba(100, 80, 255, 0.6), |
| 0 0 50px rgba(100, 80, 255, 0.2); |
| } |
|
|
| button:active { |
| transform: translateY(0) scale(0.98); |
| } |
|
|
| #restart-btn { |
| background: linear-gradient(135deg, #e74c6f, #f77b3c); |
| box-shadow: |
| 0 4px 20px rgba(231, 76, 111, 0.35), |
| 0 0 40px rgba(231, 76, 111, 0.12); |
| } |
|
|
| #restart-btn:hover { |
| box-shadow: |
| 0 6px 25px rgba(231, 76, 111, 0.55), |
| 0 0 50px rgba(231, 76, 111, 0.18); |
| } |
|
|