#096: Gravel

Here’s a more substantial Gravel that showcases a bunch of important deductions in the genre.

Rules: Shade some cells and divide the remaining cells into squares. Each unshaded square must touch at least one other square or the edge of the grid on each of its lower sides. Squares of the same side-length cannot touch. Cells with black or white circle clues must be shaded or unshaded, respectively. Number clues inside shaded regions indicate the total area of the region. Number clues inside unshaded squares indicate the side-length of the square.