/* La jauge d'ultime du HUD (src/ui/hud.js, src/sim/ultimate.js) : une barre fine sous la carte du combattant. */
.px .phc .ug { position: absolute; left: 46px; top: 46px; width: 82px; height: 7px; background: var(--ink); clip-path: polygon(3px 0, 100% 0, calc(100% - 3px) 100%, 0 100%); }
.px .phc .ug i { position: absolute; inset: 1.5px; background: #1b0f28; clip-path: polygon(2px 0, 100% 0, calc(100% - 2px) 100%, 0 100%); }
.px .phc .ug i::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: calc(var(--u, 0) * 100%); background: linear-gradient(90deg, #6fd8ff, #ff6fd8 55%, #fff1a8); transition: width .12s linear; }
.px .phc .ug b { position: absolute; left: 50%; top: -1px; transform: translateX(-50%); font: 800 5px/7px var(--px-small, 'Barlow Condensed', sans-serif); letter-spacing: 1.2px; color: #fff; text-shadow: 0 0 2px var(--ink), 0 0 2px var(--ink); opacity: 0; transition: opacity .15s; }
.px .phc .ug.full b { opacity: 1; }
.px .phc .ug.full i::before { background: linear-gradient(90deg, #ff4a4a, #ffd23a, #6dff6d, #4ad8ff, #a05aff, #ff4af0, #ff4a4a); background-size: 200% 100%; animation: ug-rainbow .9s linear infinite; }
.px .phc .ug.full { filter: drop-shadow(0 0 4px #fff); animation: ug-glow .5s ease-in-out infinite alternate; }
.px .phc .ug.pop { animation: ug-pop .45s cubic-bezier(.2, 2, .4, 1); }
@keyframes ug-rainbow { to { background-position: -200% 0; } }
@keyframes ug-glow { from { filter: drop-shadow(0 0 2px #fff); } to { filter: drop-shadow(0 0 6px #fff) brightness(1.3); } }
@keyframes ug-pop { 0% { transform: scale(1.8, 2.4); filter: brightness(4); } 100% { transform: none; filter: none; } }
