Using a fixed position for the footer may not be the best solution, as you might want it to only appear when scrolling down the page.
The correct approach is to use absolute positioning, but make sure to define the parent element with relative positioning and its proper dimensions. In your case, the main container has a height of 100%, which doesn't translate to an actual size. By inspecting the main element using browser dev tools, you'll notice that its height is 0.
Take a look at the CSS modifications I've made to ensure the footer stays at the bottom:
body {
font-size: 62.5%;
margin: 0;
}
#main {
height: 100em;
position: relative;
}
/* Link corrections */
.nav, .nav:visited {
text-decoration: none;
color: #f5f3f5;
}
.aga, .aga:visited {
text-decoration: none;
color: #000913;
}
/* End Link Corrections */
.half {
background-color: #2ac15d;
position: absolute;
margin: 0;
width: 100%;
top: 0;
left: 0;
height: 45em;
}
... (CSS code continues)
<!DOCTYPE html>
<html>
<head>
<title>draft</title>
<link href="style.css" type="text/css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css?family=Rubik:300,400,700" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div id="main">
<div class="half">
<div id="headHeader">
<img id="logo" src="http://.net/disclogo.png" onclick="window.location.href = 'index.html';"/>
<ul id="menu">
... (HTML code continues)
</ul>
</div>
<div id="head">
... (more HTML code)
</div>
</div>
<div class="bottomHalf">
</div>
<div class="footer">
<p class="footerText">© 2018 All rights reserved.</p>
<p class="footerText" id="ag1"><a href="https://tos..net" class="aga" target="_blank">Terms of Service</a></p>
<p class="footerText" id="ag2"><a href="https://tos..net/privacy/" class="aga" target="_blank">Privacy Policy</a></p>
</div>
</div>
</body>
</html>