This has been explained many times to you and in quite some depth (even very recently by 2 or three members).
They are called descendant selectors (or combinators) and are lesson 1 in learning CSS. This is the first thing that you would learn before you can harness CSS properly.
The descendant combinator — typically represented by a single space ( ) character — combines two selectors such that elements matched by the second selector are selected if they have an ancestor element matching the first selector. Selectors that utilize a descendant combinator are called descendant selectors.
There are a set of style rules for . wrapa
There are a set of style rules for .play
When an object with class .play is located inside an object with class .wrapa, then these extra rules given under
.wrapa .play {} now apply.
eg <div class="wrapa">some text perhaps and <img class="play" ...>.....other stuff </div>
An example might be to give particular images inside a particular div rounded corners and a shadow, leaving different rules everywhere else. So .header .imgmain {} could have different rules than .sidebar .imgmain {}, and all other images would be left alone.
When it says .wrapa .play, .wrapa .pause {} these rules apply to both a .play and a .pause inside .wrapa
So for example .header .imgmain , .sidebar .imgmain {} would both get the same styles. but .imgmain elsewhere could have different styles
Style rules for the internal object in its own .imgmain{} still apply unless they are quoted with some difference in the .header .imgmain {} set of styles.
So you could have different rounding of the corners in one set of rules to the other, but same shadows.