I was thinking about a way to limit the card making without removing it to make the game more balanced.
Remove the upgrade gems, and the effects of intelligence (you should just replace the stats for a relic system) and give the player card cores and runes. Each character starts with a different relic and an affinity for a monster type (Wizard -> Elementals) and so on
The card core comes with the card type (spell or monster), the type, attack, defense and a few rune slots.
The runes contain the card effects, you can get a rune of [Draw 1] to make the draw 1 card effects, or the rune of [Pierce] that can be applied to a monster and make it deal damage through a blocker for example.
Replace the luck events for Rune shops that sell the cores and runes for crafting.
Make the hero level limit the maximum power level of his deck, each card core and rune will have a power cost just to slot in the deck, also let the player see the power level of enemy decks in the map, this way you can increase the power level of both player and enemies slowly to keep the game more balanced. If the card type is one which your hero has affinity for the power cost of the card is reduced by 20% (A Wizard can host stronger elementals)
Give each creature type a built in feature found in all card cores of that type, like Elementals all can trigger a rune at the end of your turn and Milling runes have lower power cost on them, while Accursed can trigger a rune by having you pay 1 HP or by going to the graveyard. With this you can give an identity to each creature type.