It looks good. I can tell that you have an idea of what a good webpage should look like.
I went over your code, and one thing I suggest, is attempting to give every element a class. Instead of styling your css with a bunch of different selectors, use classes instead. You’ll notice that you can create one class that contains a specific set of styles that can be used multiple times instead of rewriting the same code. Right now, you are using IDs, which are ok; however, you can have only one ID whereas you can have multiple classes.
Consider:
<div class="section-wrapper section-1">
<h1 class="section-title">Section 1</h1>
// content
</div>
<div class="section-wrapper section-1">
<h1 class="section-title">Section 2</h1>
// content
</div>
// CSS
// section styling
.section-wrapper {
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}
.section-title {
text-align: center;
// other
}
// section 1 specific styling
.section-1 {
background: blue;
}
// section 2 specific styling
.section-2 {
background: red;
}
As you can see from this basic example, this leads to cleaner, less redundant code. What you have so far is good, but adopting best practice now will take you far!
Another thing: don’t be afraid to be descriptive with your names. It’ll be more semantic for yourself, and others who will read your code. For example, you have several two letter IDs which might make sense to you, but probably won’t to other people.
Take an in-depth look at Flexbox and Grid. Learn one first, then the other. You can combine them both to make powerful, responsive layouts. CSS-Tricks has an amazing write-up on flex and grid that I reference often. I usually use grid for my entire page-layout and flex for formatting rows and columns.
Get familiar with the box methodology. Once you realize everything you see on a webpage is just a box you need to move around and resize, things will start to click. Often times, I’ll use a bit of the following bit of js in the console to outline every element so I can see what’s going on if I’m having trouble with something.
javascript:(function(){var all=document.getElementsByTagName("*");for(var i=0,max=all.length;i<max;i++){all[i].style.outline="1px solid #"+((1<<24)*Math.random()|0).toString(16)};})();
Ok, one last thing for real: your layout breaks on mobile. I’m sure it has to do with all those different margins you have set.

If you need any more help or feedback, hit me up. Hope I helped some!