Does a website have to have HTML and CSS?
Yes, and no. HTML is a markup language needed to build websites - it gives structure and content to a webpage. Browsers like Chrome, Firefox, Safari, IE, etc read/interpret HTML documents to render webpages. The browser can also render image files and other file formats.
When you access a URL, https://www.codecademy.com/learn for example, your computer is sends a request to the server hosting the site, the server processes the request, and will respond to your browser - usually with an HTML document for the browser to read and render.
CSS is a language that describes the presentation, or styling, of an HTML page. Usually HTML documents will reference a CSS file that the browser will read and interpret to give styling to the HTML page, but is not required to make a website.