You can use QGIS expressions with Geometry Generator or Geometry by Expression to create the polygon and then measure its area. For each side (edge) of the polygon, you can define the distance to shift the line.
Orange = initial polygon, blue = version modified with the expression: 
The expression (see below) works like this:
- Get the boundary of the polygon
- Get each segment as a separate line in an array
- Loop through this array and offset each of these lines with an individual, pre-defined distance (see next screenshot, first image on the left for the result so far)
- Connect the shited lines with the initial lines (screenshot: image 2, in the middle)
- Convert these lines to polygons and merge these polygons into a single one (screenshot: image 3 on the right)
- Get the difference of the initial polygon with the polygon created in step 5.

Use the following expression. In line 3 you find the values valid for each side of the initial polygon: how much should this side be moved inwards (if you put negative values: outwards). In my case, using the same shape as yours, the right side is the first one, it remains in place, thus: 0.
Then it turns clockwise, shifting the sides for 3,5,5 and another 5 meters:
with_variable( 'no', array(0,3,5,5,5), -- replace with your values with_variable( 'sides', geometries_to_array( segments_to_lines (@geometry) ), difference( @geometry, buffer( collect_geometries( array_foreach( generate_series( 0, array_length(@sides)-1 ), make_polygon( make_line( start_point(@sides[@element]), end_point(@sides[@element]), end_point ( offset_curve( @sides[@element], -@no[@element] ) ), start_point ( offset_curve( @sides[@element], -@no[@element] ) ) ) ) ) ), 0 ) )))