Главная мысль
Да — через позиционирование, отрицательные margin, Grid/ overlap areas, transform.
.badge {
position: absolute;
top: -8px;
right: -8px;
z-index: 1;
}
.hero { position: relative; }
Порядок по оси Z: stacking context + z-index (для positioned / flex-children и т.д.). Отрицательный margin тоже даёт overlap без absolute.
Итог
Перекрытие — обычный приём UI. Важно осознанно выбрать способ и понимать stacking context, иначе z-index: 9999 не спасёт.