Ok, I think before to give you an answer it’s better to give you an advice.
You have to study how to organize your HTML, learn the block style: You have to design the entire website with blocks, I like to think that those blocks are transparent with border (you can use this on the css with border: 1px solid red;). So if you have a place that contains a timeline make a container for this timeline. If you have a navbar make a container for this. Do you have buttons on this navbar? Make container for this buttons! Its very nice because you will organize your code and automatically your Cascading Style Sheets (CSS), did you see that CSS is a Cascading Style? If you have a container inside a container, inside to another container, you have a Cascading HTML!! If you have tag after tag without semantic and organization you will always have a problem with CSS.
So, some links:
Float - https://www.w3schools.com/cssref/pr_class_float.asp
About float: Have you ever read a journal before? So you know that some images stay on left and the text goes around like this:
The float was made thinking about this, the image stays on one side and the text goes around it. Because of that, we don’t have float: center, it wouldn’t be nice to read.
Position: https://www.w3schools.com/cssref/pr_class_position.asp
ABout position: Here is a advice, the position isn’t for all the cases! If you understand position you will have a great power in your hands, that you have to use with responsible. But you HAVE TO understand to use, with position we cannot make a mistake.
I’ve made a fork to you see how I did the organization: https://codepen.io/pedrobslisboa/pen/YLKmvL?editors=1000
I’ve left almost everything with border red to you understand better, and it has commented on the html explain what I did and why.
If you have any doubts you can send here, it will be a pleasure to help.
PS: I only have 2 months coding, but I understood at the beginning the importance of organization, I’m not the most organized guy so I’ve been working this a lot. So, do the same, learn good practices and look for understood what you’re using and WHY! When you know why you’re using this and not is because you know about this subject
Hope you understood (I’m Brazilian, so my English is not the best one).
As always, keep coding!
EDIT:
PS2: I didnt answer you about the margin because you have to understood everything what I said, I left comments on the HTML about the margin too.