Can you switch to a TTY and log in with your username & password in text mode?
If no, can you try booting from a USB device and analyze the system logs as described here?
There should be something around the time when you try to log in.
Also, you could use dnf history list, dnf history info to identify which of the last dnf transactions was causing the problem, then use dnf history undo <number> to undo that transaction(s).