@import url('https://fonts.googleapis.com/css2?family=Amatic+SC&family=Anton&family=Bangers&family=Bebas+Neue&family=Caveat&family=Dancing+Script&family=Fira+Code&family=Fira+Sans&family=Inter&family=JetBrains+Mono&family=Lato&family=Luckiest+Guy&family=Merriweather&family=Montserrat&family=Nunito&family=Open+Sans&family=Oswald&family=Pacifico&family=Permanent+Marker&family=Playfair+Display&family=Poppins&family=Quicksand&family=Raleway&family=Roboto&family=Rubik&family=Satisfy&family=Shadows+Into+Light&family=Source+Code+Pro&family=Space+Grotesk&family=Titan+One&family=Work+Sans&display=swap'); *, *:before, *:after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; margin: 0; padding: 0; } body, html { width: 100%; height: 100%; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } :root { --hud-font: 'Montserrat', sans-serif; } body { font-family: var(--hud-font); } #ui { position: relative; width: 100%; height: 100%; overflow: hidden; } div.separator { display: block; clear: both; width: 100%; } .icon { display: block; position: relative; padding: 10px 8px; margin: 10px 5px 0 5px; width: 30px; height: 30px; border-radius: 100px; overflow: hidden; background: rgba(0, 0, 0, 0.35); } .icon i { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 18px; color: #fff; width: 100%; height: 100%; line-height: 30px; text-align: center; display: flex; align-items: center; justify-content: center; z-index: 11; } .icon img { width: 16px; margin: -3px 0 0 0; } .icon span { display: block; position: absolute; left: 50%; bottom: 0; transform: translate(-50%, 0); width: 100%; height: 100%; } .icon.text span { background: none !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); } .icon.text { display: inline-block; overflow: visible; width: auto; padding: 0; } .icon.text i { display: inline-block; float: left; transform: translate(0%, 0%); left: 0; top: 0; position: relative; padding: 10px 8px; width: 30px; height: 30px; border-radius: 100px; color: #FFF; } .icon.text i:before { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); } .icon.text span { position: relative; width: auto; height: auto; left: 0; transform: translate(0, 0); display: inline-block; font-size: 12px; padding: 7px 15px 0 10px; font-weight: 700; color: #FFF; } .icon.dying:not(.customstatus) span { animation: hudstatus-blink 500ms infinite; } .icon.pulse i { animation: hudpulse 500ms 1; } .info { position: absolute; } .info.server { top: 45px; right: 26px; width: 90px; height: 90px; } .info.server #server img { max-width: 100%; opacity: 0.75; } .info.player { top: 140px; right: 25px; text-align: right; } .info.player #job span { font-size: 24px; color: #FFF; font-weight: 900; text-transform: uppercase; text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.75); } .info.player #money i { background: var(--icon-bg-color, rgba(0, 0, 0, 0.3)); transition: background 0.3s ease; } .info.player #money div[id] { float: right; } .info.player #money { clear: both; } .info.player #status { clear: both; } .info.player #status ul { margin: 10px 0 0 0; } .info.player #status ul li { float: right; } .info.player #status ul li#health.dead { animation: hudpulse 500ms infinite; } .info.player #status ul li#health.dead span { height: 0 !important; } .info.player #status ul li#health.dead i.fas:before { content: '\f714'; } .info.vehicle { bottom: 20px; left: 50%; transform: translate(-50%, 0); z-index: 11; } .info.vehicle.active { opacity: 1; } .info.vehicle.inactive { opacity: 0; } .vehicle-speedometer-container { --speedo-accent: #00f2ff; } .info.vehicle #speedometer { position: relative; width: 280px; height: 180px; margin: auto; display: flex; justify-content: center; align-items: center; flex-direction: column; } .info.vehicle #speedometer svg { display: block; position: absolute; top: 0; left: 50%; transform: translateX(-50%) rotate(180deg); width: 180px; height: 180px; z-index: 0; opacity: 1; } .info.vehicle #speedometer svg circle { fill: none; stroke-width: 10; stroke-linecap: round; transform-origin: 50% 50%; transition: stroke-dashoffset 0.3s ease; } .info.vehicle #speedometer svg circle.mask { stroke: rgba(255, 255, 255, 0.05); } #progress-speed { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 180px; height: 180px; z-index: 0; background: none !important; box-shadow: none !important; pointer-events: none; } #progress-speed svg { background: none !important; overflow: visible; box-shadow: none !important; filter: none !important; } circle.mask { stroke: none !important; } circle.speed { stroke: url(#speed-gradient); stroke-dasharray: 283; stroke-dashoffset: 283; filter: none !important; } .info.vehicle #speedometer svg circle.speed { stroke: var(--speedo-accent); stroke-dasharray: 283; stroke-dashoffset: 283; filter: drop-shadow(0 0 5px var(--speedo-accent)); } .info.vehicle #speedometer #vehicle-speed { font-family: var(--hud-font, 'Montserrat'), sans-serif; text-align: center; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; } .info.vehicle #speedometer #vehicle-speed span { font-size: 44px; font-weight: 900; color: var(--speedo-accent); text-shadow: 0 0 10px var(--speedo-accent); letter-spacing: 1px; line-height: 1; } .info.vehicle #speedometer #vehicle-speed strong { font-size: 11px; font-weight: 700; background: rgba(0, 0, 0, 0.5); color: white; padding: 3px 6px; border-radius: 6px; margin-top: 4px; line-height: 1; } .info.vehicle #speedometer #vehicle-gear { margin-top: 6px; text-align: center; z-index: 2; } .info.vehicle #speedometer #vehicle-gear i { display: flex; align-items: center; justify-content: center; } .info.vehicle #speedometer #vehicle-gear i img { height: 16px; filter: drop-shadow(0 0 2px var(--speedo-accent)); margin-bottom: 2px; } .info.vehicle #speedometer #vehicle-gear span { font-size: 28px !important; font-weight: bold; color: var(--speedo-accent); text-shadow: 0 0 4px var(--speedo-accent); margin-top: 1px; line-height: 1; } .info.vehicle #speedometer #vehicle-status-left, .info.vehicle #speedometer #vehicle-status-right { position: absolute; bottom: 10px; display: flex; flex-direction: column; gap: 10px; z-index: 2; } .info.vehicle #speedometer #vehicle-status-left { left: 14px; } .info.vehicle #speedometer #vehicle-status-right { right: 14px; } .info.vehicle #speedometer li.icon { display: flex; flex-direction: column; align-items: center; } .info.vehicle #speedometer li.icon img, .info.vehicle #speedometer li.icon i { width: 22px; height: 22px; filter: drop-shadow(0 0 2px #000); } .info.vehicle #speedometer li.icon span { width: 18px; height: 5px; margin-top: 2px; border-radius: 4px; box-shadow: 0 0 4px rgba(0, 0, 0, 0.3); } li#seatbelt span { background: linear-gradient(90deg, #ff0000, #aa0000); } li#seatbelt.on span { background: linear-gradient(90deg, #18b70b, #128c08); } li#fuel span { background: linear-gradient(90deg, #ff9900, #cc6600); } li#lights.normal span, li#lights.high span { background: linear-gradient(90deg, #00c3ff, #008fbb); } li#signals.dying span { background: linear-gradient(90deg, #18b70b, #128c08); animation: hudstatus-blink 750ms infinite; } @keyframes hudstatus-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } } .vehicle-speedometer-container { position: absolute; top: 60%; left: 5%; z-index: 1000; cursor: move; transform-origin: top left !important; transform: scale(1); display: block; width: 280px; height: 180px; } .vehicle-speedometer-container { --speedo-color: #00ffcc; } .vehicle-speedometer-container svg circle.speed { stroke: var(--speedo-color); } #speedometer, .vehicle-speedometer-container svg { width: 100%; height: 100%; } #voice { background-image: none; background-color: transparent; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; overflow: hidden; position: relative; } #voice i { color: #ffffff; font-size: 18px; display: inline-block; transition: all 0.3s ease; will-change: transform, opacity; } #voice.speak i { color: #000000 !important; } @keyframes pulse-mic { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.2); opacity: 0.6; } } #weapon { display: flex; align-items: center; gap: 8px; background-color: rgba(255, 255, 255, 0.1); padding: 6px 12px; border-radius: 20px; color: white; font-size: 14px; } #weapon i { color: red; background-color: white; border-radius: 50%; padding: 6px; font-size: 14px; display: flex; align-items: center; justify-content: center; } #weapon_info { display: flex; flex-direction: column; line-height: 1.2; } #weapon_ammo_display { font-weight: bold; font-size: 13px; } #serverLogo img { max-width: 125px; max-height: 125px; width: auto; height: auto; pointer-events: none; } @keyframes logoPulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.1); opacity: 0.7; } } @keyframes logoRotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes logoBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } @keyframes logoWiggle { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 75% { transform: rotate(-5deg); } } @keyframes logoFlip { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(360deg); } } @keyframes logoShake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } } @keyframes logoTada { 0% { transform: scale(1); } 10%, 20% { transform: scale(0.9) rotate(-3deg); } 30%, 50%, 70%, 90% { transform: scale(1.1) rotate(3deg); } 40%, 60%, 80% { transform: scale(1.1) rotate(-3deg); } 100% { transform: scale(1) rotate(0); } } @keyframes logoZoom { 0% { transform: scale(0.3); opacity: 0; } 100% { transform: scale(1); opacity: 1; } } @keyframes logoSwing { 20% { transform: rotate(15deg); } 40% { transform: rotate(-10deg); } 60% { transform: rotate(5deg); } 80% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } } @keyframes logoRubberBand { 0% { transform: scale(1); } 30% { transform: scale(1.25, 0.75); } 40% { transform: scale(0.75, 1.25); } 50% { transform: scale(1.15, 0.85); } 65% { transform: scale(0.95, 1.05); } 75% { transform: scale(1.05, 0.95); } 100% { transform: scale(1); } } #serverLogo.animated.pulse { animation: logoPulse 2s infinite ease-in-out; } #serverLogo.animated.rotate { animation: logoRotate 3s infinite linear; } #serverLogo.animated.bounce { animation: logoBounce 1.5s infinite ease-in-out; } #serverLogo.animated.wiggle { animation: logoWiggle 0.8s infinite ease-in-out; } #serverLogo.animated.flip { animation: logoFlip 2s infinite linear; } #serverLogo.animated.shake { animation: logoShake 0.6s infinite ease-in-out; } #serverLogo.animated.tada { animation: logoTada 1.2s infinite ease-in-out; } #serverLogo.animated.zoom { animation: logoZoom 1.5s infinite ease-in-out; } #serverLogo.animated.swing { animation: logoSwing 1.2s infinite ease-in-out; } #serverLogo.animated.rubberband { animation: logoRubberBand 1.2s infinite ease-in-out; } @keyframes hudsiren { 0% { border-color: rgba(255, 0, 0, 0); box-shadow: 0 0 10px 10px rgba(255, 0, 0, 0); } 50% { border-color: rgba(255, 0, 0, 1); box-shadow: 0 0 10px 10px rgba(255, 0, 0, 0.50); } 100% { border-color: rgba(255, 0, 0, 0); box-shadow: 0 0 10px 10px rgba(255, 0, 0, 0); } } @keyframes hudsoundwave { 0% { box-shadow: 0 0 0 0px rgba(255, 255, 255, 0.75); } 100% { box-shadow: 0 0 0 25px rgba(255, 255, 255, 0); } } @keyframes hudstatus-blink { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } } @keyframes hudpulse { 0% { transform: scale(1); } 25% { transform: scale(1.5); } 100% { transform: scale(1); } } @keyframes hudspeed { 0% { stroke-dashoffset: 280; } 50% { stroke-dashoffset: 75; } 100% { stroke-dashoffset: 280; } } @keyframes hudbullets { 0% { opacity: 0; } 25% { opacity: 1; } 100% { transform: translate(30px, -60px) rotate(90deg); opacity: 0; } } @keyframes hudrainbow { 100%, 0% { background: rgba(255, 0, 0, 0.70); } 8% { background: rgba(255, 127, 0, 0.70); } 16% { background: rgba(230, 205, 23, 0.70); } 25% { background: rgba(127, 255, 0, 0.70); } 33% { background: rgba(0, 255, 0, 0.70); } 41% { background: rgba(0, 255, 127, 0.70); } 50% { background: rgba(0, 255, 255, 0.70); } 58% { background: rgba(0, 127, 255, 0.70); } 66% { background: rgba(0, 0, 255, 0.70); } 75% { background: rgba(127, 0, 255, 0.70); } 83% { background: rgba(255, 0, 255, 0.70); } 91% { background: rgba(255, 0, 127, 0.70); } } .drag-menu { display: none; position: fixed; top: 20px; left: 20px; padding: 20px; width: 320px; background: linear-gradient(120deg, #0e0e0e, #1a1a1a); border-radius: 16px; box-shadow: 0 4px 0px rgba(0, 0, 0, 0.6); border: 1px solid rgba(255, 255, 255, 0.05); color: #fff; font-family: var(--hud-font, 'Montserrat'), sans-serif; z-index: 9999; backdrop-filter: blur(6px); flex-direction: column; } .drag-menu h3 { margin: 0 0 10px; font-size: 18px; font-weight: 700; display: flex; align-items: center; gap: 6px; } .drag-menu .subtitle { font-size: 13px; margin-bottom: 16px; color: #bbb; } .drag-menu p { font-size: 13px; margin-bottom: 14px; color: #ccc; } .drag-menu .section { margin-bottom: 18px; } .drag-menu .section-label { font-weight: 600; font-size: 13px; display: block; margin-bottom: 6px; } .drag-menu fieldset { border: 1px solid rgba(255, 255, 255, 0.1); padding: 12px; border-radius: 10px; margin-bottom: 18px; } .drag-menu fieldset legend { font-size: 13px; color: #ff00ff; padding: 0 6px; font-weight: bold; } .drag-menu .color-controls label { display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: #ddd; margin-bottom: 4px; gap: 10px; } .drag-menu .toggle-row { display: flex; align-items: center; gap: 8px; font-size: 13px; margin-bottom: 16px; } .drag-menu .toggle-row.vertical { flex-direction: column; align-items: flex-start; } .drag-menu input[type="checkbox"] { accent-color: #ff00ff; transform: scale(1.2); } .drag-menu select, .drag-menu input[type="range"] { width: 100%; padding: 6px 8px; border-radius: 6px; background-color: #222; color: #fff; border: 1px solid #444; margin-top: 4px; font-size: 13px; } .drag-menu .icon-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; margin-top: 6px; } .drag-menu button { background: #007bff; border: none; color: white; font-weight: bold; padding: 10px 14px; border-radius: 8px; cursor: pointer; width: 100%; font-size: 14px; transition: background 0.3s ease; } .drag-menu button:hover { background: #0056cc; } #status .icon span { position: absolute; bottom: 0; left: 0; width: 100%; height: 100%; background-color: red; transform-origin: bottom; transform: scaleY(1); transition: transform 0.25s ease; z-index: 0; border-radius: inherit; } #status li i { color: inherit; background: none !important; padding: 0 !important; position: absolute !important; } #status li span { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; } #status li i { color: white; font-size: 20px; } #status li.icon-shape-circle { border-radius: 50%; } .money-box i.icon-shape-circle { border-radius: 50%; } #status li.icon-shape-square { border-radius: 6px; } #status li.icon-shape-diamond { clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); border-radius: 0; } #status li.icon-shape-star { clip-path: polygon(50% 2%, 62% 36%, 98% 36%, 70% 58%, 80% 92%, 50% 72%, 20% 92%, 30% 58%, 2% 36%, 38% 36%); border-radius: 0; } #status li i { font-size: 20px; color: #fff; z-index: 2; width: 100%; height: 100%; line-height: 48px; text-align: center; pointer-events: none; } #status li.icon-shape-diamond i, #status li.icon-shape-star i { font-size: 20px; line-height: 48px; padding-top: 2px; } #status li.status-empty { background-color: rgba(0, 0, 0, 0.4) !important; } #status li.status-empty i { color: #ccc !important; } #status li.icon-shape-hexagon { clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%); } #status li.icon-shape-shield { clip-path: polygon(50% 0%, 100% 25%, 85% 100%, 15% 100%, 0% 25%); } #status li.icon-shape-pentagon { clip-path: polygon(50% 0%, 100% 38%, 81% 100%, 19% 100%, 0% 38%); } #status li.icon-shape-heart { clip-path: polygon(50% 20%, 61% 7%, 75% 5%, 87% 13%, 91% 25%, 90% 38%, 83% 51%, 71% 63%, 50% 80%, 29% 63%, 17% 51%, 10% 38%, 9% 25%, 13% 13%, 25% 5%, 39% 7%); transform: scale(1.3); border-radius: 0; } #status li.icon-shape-heart i { font-size: 18px; line-height: 48px; } #status li.icon-shape-message { clip-path: polygon(5% 0%, 95% 0%, 95% 85%, 60% 85%, 50% 100%, 40% 85%, 5% 85%); } #style-submenu { display: none; position: fixed; top: 20px; left: 360px; padding: 20px; width: 320px; background: linear-gradient(145deg, #0e0e0e, #1a1a1a); border-radius: 16px; box-shadow: 0 4px 0px rgba(0, 0, 0, 0.6); border: 1px solid rgba(255, 255, 255, 0.05); color: #fff; font-family: var(--hud-font, 'Montserrat'), sans-serif; z-index: 9999; backdrop-filter: blur(6px); flex-direction: column; } #style-submenu h4 { margin: 0 0 10px; font-size: 16px; font-weight: 700; } #style-submenu .section-label { font-weight: 600; font-size: 13px; margin-bottom: 6px; } #style-submenu .section { margin-bottom: 18px; } #style-submenu fieldset { border: 1px solid rgba(255, 255, 255, 0.1); padding: 12px; border-radius: 10px; margin-bottom: 18px; } #style-submenu fieldset legend { font-size: 13px; color: #ff00ff; padding: 0 6px; font-weight: bold; } #style-submenu .color-controls label { display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: #ddd; margin-bottom: 4px; gap: 10px; } #style-submenu input[type="checkbox"] { accent-color: #ff00ff; transform: scale(1.2); } #style-submenu button { background: #007bff; border: none; color: white; font-weight: bold; padding: 10px 14px; border-radius: 8px; cursor: pointer; width: 100%; font-size: 14px; transition: background 0.3s ease; } #style-submenu button:hover { background: #0056cc; } #status-toggle-group { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 6px; } #status-toggle-group label { display: flex; align-items: center; gap: 4px; font-size: 13px; color: #fff; } #money-wrapper { cursor: move; z-index: 9999; } #status li .icon { background: none !important; padding: 0 !important; } .icon-wrapper { background-color: transparent !important; box-shadow: none !important; border: none !important; } #money .icon-wrapper { background: none !important; box-shadow: none !important; border: none !important; } #money .icon span { background: transparent; transition: background-color 0.25s ease; } #money .icon { background: none !important; } #money .icon-shape-circle i { border-radius: 50%; } #money .icon-shape-square i { border-radius: 6px; } #money .icon-shape-diamond i { clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); border-radius: 0; transform: rotate(0deg); } #money .icon-shape-star i { clip-path: polygon(50% 2%, 62% 36%, 98% 36%, 70% 58%, 80% 92%, 50% 72%, 20% 92%, 30% 58%, 2% 36%, 38% 36%); border-radius: 0; } #money .icon-shape-hexagon i { clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%); } #money .icon-shape-shield i { clip-path: polygon(50% 0%, 100% 25%, 85% 100%, 15% 100%, 0% 25%); } #money .icon-shape-pentagon i { clip-path: polygon(50% 0%, 100% 38%, 81% 100%, 19% 100%, 0% 38%); } #money .icon-shape-heart i { clip-path: polygon(50% 20%, 61% 7%, 75% 5%, 87% 13%, 91% 25%, 90% 38%, 83% 51%, 71% 63%, 50% 80%, 29% 63%, 17% 51%, 10% 38%, 9% 25%, 13% 13%, 25% 5%, 39% 7%); transform: scale(1.1); } #money .icon-shape-message i { clip-path: polygon(5% 0%, 95% 0%, 95% 85%, 60% 85%, 50% 100%, 40% 85%, 5% 85%); } .job-box { display: inline-flex; align-items: center; gap: 10px; padding: 6px 12px; background: rgba(0, 58, 117, 0.3); border: 1px solid rgba(0, 112, 255, 0.5); border-radius: 30px; font-family: var(--hud-font, 'Montserrat'), sans-serif; font-weight: 500; color: white; font-size: 13px; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.8); } .job-box i { background: #007bff; padding: 6px; border-radius: 50%; color: white; font-size: 14px; } #money { display: flex; flex-direction: column; gap: 6px; position: fixed; right: 25px; top: 220px; z-index: 9999; } .money-box { position: relative; display: inline-flex; align-items: center; gap: 10px; padding: 6px 12px; border-radius: 30px; font-family: var(--hud-font, 'Montserrat'), sans-serif; font-weight: 500; color: white; font-size: 14px; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.8); overflow: hidden; } .money-box .bar { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 0, 0, 0.3); border-radius: 30px; z-index: 0; } .money-box i, .money-box span { z-index: 1; } .money-box i { width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #3700ff; color: white; font-size: 16px; } .money-box .bar { position: absolute; bottom: 0; left: 0; width: 100%; height: 100%; z-index: 0; border-radius: 30px; background: rgba(255, 0, 13, 0.5); } #postal, #societyMoney { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 20px; background: rgba(255, 0, 200, 0.2); font-size: 14px; font-weight: 500; color: white; font-family: var(--hud-font, 'Montserrat'), sans-serif; white-space: nowrap; line-height: 1; } #postal i, #societyMoney i { display: inline-flex; justify-content: center; align-items: center; width: 28px; height: 28px; font-size: 16px; border-radius: 50%; background: rgba(255, 255, 255, 0.2); flex-shrink: 0; } #postal span, #societyMoney span { display: inline-block; line-height: 1; vertical-align: middle; font-weight: 600; margin-left: 4px; }