.PlayerHUD { position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 1; pointer-events: none; } .Compass { position: absolute; top: 10px; right: 10px; width: 64px; height: 64px; flex-shrink: 0; } .CompassRing { position: absolute; top: 0; left: 0; width: 100%; height: 100%; image-rendering: auto; } .CompassNSEW { position: absolute; top: 0; left: 0; width: 100%; height: 100%; image-rendering: pixelated; } .CompassClock { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 10px; font-weight: 600; color: rgba(200, 240, 230, 0.9); text-shadow: 0 0 4px rgba(0, 0, 0, 0.8); pointer-events: none; white-space: nowrap; } .Bars { position: absolute; top: 20px; right: 82px; width: 120px; max-width: 20%; display: flex; flex-direction: column; align-items: flex-end; gap: 3px; } .BarTrack { width: 100%; height: 10px; background: rgba(0, 0, 0, 0.5); border: 1px solid rgba(255, 255, 255, 0.15); overflow: hidden; } .BarFillHealth { height: 100%; background: #2ecc40; transition: width 0.15s ease-out; } .BarFillEnergy { height: 100%; background: #0af; transition: width 0.15s ease-out; } /* ── Weapon HUD (right side vertical list) ── */ .WeaponHUD { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 2px; } .WeaponHUD .PackInvItem[data-active="false"] { opacity: 0.6; } @media (max-height: 699px) { .WeaponHUD .PackInvItem[data-active="false"] { display: none; } } .WeaponSeparator { height: 6px; } /* ── Team Scores (bottom-left) ── */ .TeamScores { position: absolute; bottom: 6px; left: 6px; font-size: 12px; border: 1px solid rgba(128, 255, 200, 0.15); border-collapse: collapse; } @media (max-width: 499px), (pointer: coarse) { .TeamScores { display: none; } } .ObserverCount { position: absolute; bottom: calc(100%); display: block; padding: 4px 6px; font-size: 10px; color: rgb(193, 228, 216); text-shadow: 0 0 2px rgba(0, 0, 0, 0.6); } .TeamRow { flex: 1 0 auto; background: rgba(0, 50, 60, 0.65); } .TeamRow + .TeamRow { border-top: 1px solid rgba(128, 255, 200, 0.15); } .TeamName { min-width: 6em; font-size: 12px; font-weight: 500; padding: 5px 6px; } .TeamNameFriendly { composes: TeamName; color: #2de46a; } .TeamNameEnemy { composes: TeamName; color: rgb(121, 203, 212); } .TeamScore { color: #fff; font-weight: 500; text-align: center; padding: 0 10px; border-left: 1px solid rgba(128, 255, 200, 0.15); } .TeamCount { color: rgb(125, 155, 150); font-size: 11px; text-align: center; padding: 0 6px; } /* ── Pack + Inventory HUD (bottom-right) ── */ .PackInventoryHUD { position: absolute; bottom: 6px; right: 6px; display: flex; align-items: center; gap: 4px; } @media (max-width: 499px), (pointer: coarse) { .PackInventoryHUD { display: none; } } .PackInvItem { display: flex; flex-direction: column; align-items: center; justify-content: center; background: rgba(0, 50, 60, 0.65); border: 1px solid rgba(128, 255, 200, 0.15); padding: 4px; gap: 1px; } .PackInvItem[data-active="true"] { border-color: rgba(128, 255, 200, 0.6); box-shadow: 0 0 8px rgba(128, 255, 200, 0.4); } .PackInvIcon { display: block; image-rendering: pixelated; } .PackInvCount { font-size: 11px; color: #bfe; min-width: 12px; text-align: center; } .PackInvInfinity { display: block; image-rendering: pixelated; opacity: 0.8; } /* ── Reticle (center) ── */ .Reticle { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .ReticleImage { width: 64px; height: 64px; opacity: 0.85; image-rendering: pixelated; } .ReticleDot { width: 4px; height: 4px; border-radius: 50%; background: rgba(46, 204, 64, 0.7); box-shadow: 0 0 4px rgba(46, 204, 64, 0.5); }