/* Import Google Font - Inter */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap'); * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Inter', sans-serif; background: transparent; /* Ensures no black background from the body itself */ color: #e0e0e0; overflow: hidden; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .hidden { display: none !important; /* Still useful for full removal */ } /* HUD Styles - Smaller and Sleeker */ .hud-container { position: fixed; top: 20px; left: 50%; transform: translateX(-50%); z-index: 40; /* Default z-index for HUD */ opacity: 1; /* Default opacity */ pointer-events: auto; /* Default to allow interaction if needed, though usually not */ transition: opacity 0.3s ease-out, z-index 0s linear 0.3s; /* Transition opacity, z-index changes instantly after opacity */ display: flex; /* Always flex, visibility via opacity/hidden class */ animation: fadeInUp 0.5s ease-out forwards; } .hud-container.lower-layer { z-index: 10; /* Lower z-index when voting is active */ opacity: 0.3; /* Make it semi-transparent */ pointer-events: none; /* Block interaction when lowered */ transition: opacity 0.3s ease-out, z-index 0s linear 0s; /* Z-index changes instantly when lowering */ } /* When the HUD is completely hidden (e.g., player leaves zone) */ .hud-container.completely-hidden { display: none; /* Fully remove from layout */ } .hud-content { background: rgba(25, 25, 25, 0.7); backdrop-filter: blur(8px); border: 1px solid rgba(100, 100, 100, 0.1); border-radius: 12px; padding: 10px 25px; display: flex; align-items: center; gap: 25px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.03); } .hud-section { display: flex; align-items: center; gap: 8px; } .time-section { padding: 0 15px; border-left: 1px solid rgba(100, 100, 100, 0.1); border-right: 1px solid rgba(100, 100, 100, 0.1); } .hud-icon { width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, 0.05); box-shadow: inset 0 0 4px rgba(0, 0, 0, 0.2); } .hud-icon svg { width: 16px; height: 16px; color: #ffffff; } .kills-icon { background: rgba(255, 99, 71, 0.3); color: #ff6347; } .kd-icon { background: rgba(60, 179, 113, 0.3); color: #3cb371; } .hud-data { text-align: center; } .hud-value { font-size: 18px; font-weight: 600; color: #ffffff; line-height: 1; text-shadow: none; } .hud-time { font-size: 24px; font-weight: 700; color: #ffffff; font-family: 'Inter', sans-serif; letter-spacing: 0.5px; line-height: 1; text-shadow: none; } .hud-label { font-size: 10px; color: #a0a0a0; text-transform: uppercase; letter-spacing: 1px; margin-top: 2px; } /* Gun Voting Styles */ .voting-container { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.85); backdrop-filter: blur(10px); z-index: 60; /* Always higher than HUD */ display: flex; /* Always flex, visibility via opacity/hidden class */ align-items: center; justify-content: center; opacity: 0; /* Start hidden for fade-in */ pointer-events: none; /* Block interaction when hidden */ transition: opacity 0.3s ease-out; /* Fade transition */ } .voting-container.show { opacity: 1; pointer-events: auto; /* Allow interaction when shown */ } /* No .hide class needed, just remove .show for fade-out */ .voting-content { width: 100%; max-width: 1300px; margin: 0 auto; padding: 50px; background: rgba(25, 25, 25, 0.85); border-radius: 25px; box-shadow: 0 40px 80px rgba(0, 0, 0, 0.7); border: 1px solid rgba(120, 120, 120, 0.2); } .voting-header { text-align: center; margin-bottom: 50px; } .voting-title { font-size: 56px; font-weight: 800; color: #ffffff; margin-bottom: 20px; letter-spacing: 4px; text-shadow: 0 0 20px rgba(255, 255, 255, 0.15); } .voting-timer { font-size: 32px; color: #d0d0d0; font-weight: 600; } #voting-time { color: #ff6347; font-family: 'Inter', sans-serif; font-weight: 800; letter-spacing: 1.5px; } .gun-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 35px; margin-bottom: 50px; } .gun-card { position: relative; background: rgba(45, 45, 45, 0.8); border: 1px solid rgba(120, 120, 120, 0.3); border-radius: 20px; cursor: pointer; transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); overflow: hidden; box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3); } .gun-card:hover { background: rgba(65, 65, 65, 0.9); border-color: #a0a0a0; transform: translateY(-12px) scale(1.04); box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5); } .gun-card.selected { border-color: #3cb371; background: rgba(60, 179, 113, 0.3); box-shadow: 0 0 30px rgba(60, 179, 113, 0.4), inset 0 0 15px rgba(60, 179, 113, 0.6); } .gun-image { aspect-ratio: 16/9; overflow: hidden; border-radius: 20px 20px 0 0; background: rgba(0, 0, 0, 0.3); } .gun-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease-in-out; } .gun-card:hover .gun-image img { transform: scale(1.06); } .gun-info { padding: 32px; } .gun-name { font-size: 24px; font-weight: 700; color: #ffffff; margin-bottom: 12px; } .vote-stats { margin-bottom: 18px; } .vote-stats-header { display: flex; justify-content: space-between; font-size: 16px; color: #c0c0c0; margin-bottom: 8px; font-weight: 500; } .vote-progress-bar { width: 100%; background: #505050; border-radius: 9999px; height: 12px; overflow: hidden; box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4); } .vote-progress-fill { height: 100%; background: linear-gradient(to right, #3cb371, #66bb6a); transition: width 0.5s ease-in-out; border-radius: 9999px; } .vote-status { color: #3cb371; font-size: 16px; font-weight: 700; display: flex; align-items: center; gap: 12px; text-transform: uppercase; letter-spacing: 0.8px; } .voting-instructions { text-align: center; color: #d0d0d0; font-size: 22px; font-weight: 600; } .voting-instructions.voted { color: #3cb371; font-weight: 700; } /* Responsive Design */ @media (min-width: 1200px) { .gun-grid { grid-template-columns: repeat(3, 1fr); } } @media (max-width: 1024px) { .gun-grid { grid-template-columns: repeat(2, 1fr); } .voting-title { font-size: 46px; } } @media (max-width: 768px) { .hud-content { gap: 15px; padding: 8px 20px; border-radius: 10px; } .hud-value, .hud-time { font-size: 16px; } .hud-label { font-size: 9px; } .hud-icon { width: 24px; height: 24px; } .hud-icon svg { width: 14px; height: 14px; } .time-section { padding: 0 10px; } .gun-grid { grid-template-columns: 1fr; gap: 25px; } .voting-content { padding: 30px; border-radius: 20px; } .voting-title { font-size: 40px; } .voting-timer { font-size: 26px; } .gun-info { padding: 25px; } } @media (max-width: 480px) { .hud-content { flex-direction: column; gap: 10px; padding: 8px 15px; } .time-section { border-left: none; border-right: none; padding: 0; } .hud-value, .hud-time { font-size: 14px; } .hud-label { font-size: 8px; } .hud-icon { width: 20px; height: 20px; } .hud-icon svg { width: 12px; height: 12px; } .voting-title { font-size: 30px; } .voting-instructions { font-size: 16px; } } /* Animations */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px) translateX(-50%); } to { opacity: 1; transform: translateY(0) translateX(-50%); } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes pulseGlow { 0%, 100% { box-shadow: 0 0 20px rgba(60, 179, 113, 0.3); } 50% { box-shadow: 0 0 30px rgba(60, 179, 113, 0.6); } } .pulse-glow { animation: pulseGlow 2s ease-in-out infinite; }