по части js:
Самое важное что Вам стоит сделать - вынести поиск элементов за пределы функций. Незачем обращаться в DOM на каждое выполнение функции. Оставить только те, где это необходимо, если такие есть.
Ну и менее важное - большая часть ваших let на самом деле const, так как Вы никогда не меняете их значение.
Ну и обработчики клика в атрибутах элементов давно уже не назначают из-за принципа разделения HTML отдельно, JS отдельно (а добавляют с помощью addEventListener в js).