I disagree with perty’s view that Javascript is not required for Elm. I came to Elm also from Python background and found Javascript quite necessary for building something practical and the use cases are usually hidden until you need them. You can find some of the examples that require JS here: What are you using ports for in 0.19? . (Note that file uploads are recently made possible without Javascript)
This is a repo of some examples of Elm-JS interop: https://github.com/MattCheely/elm-port-examples . It may help if you want to see what the code would be like or need some similar functionality.
But I agree with perty that you can get rid of HTML and CSS entirely by using Elm (especially with Elm-UI package https://package.elm-lang.org/packages/mdgriffith/elm-ui/latest/).