optimization: render cards within the view port