Angular: *ngIf vs [hidden] — What Really Happens in the DOM?

Understanding the real difference between conditional rendering and visibility control in Angular