how do HTML, CSS, javascript elements depend on one another?
in what circumstances is one needed over another? i.e. what do these individual types of coding languages generally do for a website?
in what ways do they overlap and in what ways do they diverge?
HTML is the bones of the site, CSS is the paint (all be it very advanced cyborg paint) and JavaScript is like the utilities being piped around the site (you can have a house with very basic utilities like a tap in the yard, or a house that has crazy advanced utilities like moving walls and TVs in mirrors).
In practicality, when you load a web page you are actually downloading a HTML file, that HTML file can contain links to CSS files and JS files (same as it has links to images and audio etc) - As the browser downloads the HTML file, it will read it top to bottom, and also download any additional files you have linked in it (like CSS and image files).
Once it has downloaded everything it will try to render it all for you! So for example, if you downloaded a CSS file, it will read the CSS file and attempt to "paint" your HTML based on what the CSS file tells it.
From this point on the explanation is a little complex, but in short, behind the scenes your browser converts the HTML from the text you write, into a set of programable virtual "objects" or the more correct term "elements", collectively known as the DOM. E.g. The <body> is an element, an <img> is an element etc. Each element has properties that can be added or modified (such as the source url of an image element, its width, its background color etc).
Elements can have three kinds of names (img, #id, .class) and you use those names to identify an element and modify its properties.
Both CSS and JavaScript use these names to modify the properties of HTML elements - they just have different focuses. CSS is focused on being fast, hard to break, and mainly for visual styling. While JavaScript is slower, very easy to break, but it allows you to do much more advanced things.
So what you see is a bunch of text files, with different syntaxes and styles - but what the browser actually sees is a big complex pile of virtual objects, each with their own properties and features. The connection between HTML, CSS and JavaScript is that they are all different methods of modifying that invisible pile of virtual objects.
what are some examples/exceptions where one type of code can temporarily override another? an example i'm thinking of is specifying text color for a single line of text in HTML when the default color set in CSS? (...is that how HTML and CSS are supposed to work btw? that's what i picked up by myself.)
HTML files are read top to bottom, left to right. What comes after will usually overwrite what came before. So if you have a <style> tag at the top of a page saying make the body text green, and a CSS file at the bottom saying make the body text blue - it will be blue.
After that CSS styles follow whats called the order of "specificity" e.g. how specific is your instruction. "Make images 100px wide" is less specific than "Make the image with id #bob 200px wide" - In this case every image would be 100px wide, except for the image with #id bob, even if you put the 100px rule after the 200px rule, because its more specific. When it comes to inline styling on html elements, those are usually the most specific of all and will overwrite your CSS rules. There is a certain art to knowing how to balance specificity when writing CSS!
So in CSS selector rules, the more specific you are, the more precedence that rule will have "#main > .top ul li" would win out over "#main ul li" ~ every CSS rule will effect the entire page, the only thing that limits it is specificity.
HTML/CSS/Javascript, also how to optimize my website's code so its less of a hassle to update
In general, you want to avoid ever repeating code, because it becomes a big hassle. JavaScript can be used to solve this, but it's not a solution I agree with because JavaScript is fragile and if it breaks it crashes completely. HTML iFrames are a more stable option for neocities sites.
how do people typically organize files?
There's a whole big thread about this one and I think a wiki article too? You can
poke around for it!
are there any free programs with interactive code building where you can see your website updated in real time
This is something everyone seems to think they need

Yes you can use
VSCode with the LiveEdit plugin - in my own experience I gave up on live render programs years ago because they are more hassle than they are worth, your much better off just using a tiny
local webserver, editing your page and reloading it manually with cmd/ctrl-r !
Good luck
Also HELLO, welcome to the forum