In the classic circle packing problem, one asks whether a given set of circles can be packed into a given container. Packing problems like this have been shown to be NP-hard. In this paper, we present new sufficient conditions for packing circles into square and triangular containers, using only the sum of the circles' areas: For square containers, it is possible to pack any set of circles with a combined area of up to ≈ 53.90% of the square's area. And when the container is a right or obtuse triangle, any set of circles whose combined area does not exceed the triangle's incircle can be packed. These area conditions are tight, in the sense that for any larger areas, there are sets of circles which cannot be packed. Similar results have long been known for squares, but to the best of our knowledge, we give the first results of this type for circular objects. Our proofs are constructive: We describe a versatile, divide-and-conquerbased algorithm for packing circles into various container shapes with optimal worst-case density. It employs an elegant subdivision scheme that recursively splits the circles into two groups and then packs these into subcontainers. We call this algorithm Split Packing. It can be used as a constant-factor approximation algorithm when looking for the smallest container in which a given set of circles can be packed, due to its polynomial runtime. A browser-based, interactive visualization of the Split Packing approach and other related material can be found at https://morr.cc/split-packing/.Extended abstracts presenting parts of this paper appeared in the 27th ACM-SIAM Symposium on Discrete Algorithms (SODA 2017) [15] and the 15th Algorithms and Data Structures Symposium (WADS 2017) [6].