Как происходит поиск/покупка сервера(для того чтобы сайт заработал)?

Вот написал я что-то, имею html и css файлы(+ может что-то дополнительное), а что нужно делать дальше то, чтобы сайт создать?

Ну на валидность проверь, видео в youtube посмотри по созданию сайта.

Для простого сайта тебе нужен хостинг и домен.
Хостинг можно для начала взять бесплатный например на hostingrer там же дадут технический домен для того чтобы открыть сайт в браузере.
Вариантов загрузки файлов несколько:

  1. Через онлайн файловый менеджер в панели хостера
  2. Через ftp
  3. ssh/sftp - на бесплатных тарифах хостеры обычно не предоставляют.

В панели управления находишь раздел ftp, создаёшь там пользователя если его нет, тебе понадобится логин пароль и хост(адрес). Что-то типа такого:
"host": "ftp.alexstep.com", "user": "u633278291.asdx", "password": "mypass", "port": "21",
Подключиться к ftp-серверу и загрузить на него файлы можно с помощью программы filezilla или настроить подключение в ide/редакторе кода в котором ты работаешь.

Далее нужен будет домен, я их покупаю на 2domains есть ещё из популярных reg.ru nic.ru да и сами хостеры продают домены. У домена должны быть прописаны NS сервера хостера чтобы он вёл на твой сайт.
Тут сложно дать конкретную инструкцию, т.к. у разных хостеров в разных панелях всё по-разному, обычно у них есть FAQ/Базы знаний где описано как конкретно на их сервисе настроить dns почту доступ и др. штуки которые могут понадобиться для полноценной работы сайта.

Что касается сервера - вот именно сервер тебе скорее всего не нужен.
Хостинг - это услуга предоставления места на чьём-то сервере, там обычно есть ряд пока некритичных для тебя ограничей. Вот когда эти ограничения, типа невозможности правки конфига nginx для проксирования чего-то в контейнер docker станут критичными, можно брать виртуальный сервер(как virtualbox только другая технология виртуализации). Т.е. как бы твой компьютер в интернете с полным доступом к его операционной системе(ubuntuserver/centos и пр. linux’ы).