/* Companion stylesheet for the 'anm' jspart.
 *
 * anm.js can only set an element's starting state once it runs, which is on
 * document ready. The browser has painted long before that, so an element
 * that is about to fade in is visible first, then vanishes, then animates -
 * most obviously on a back-navigation, where everything is cached and the
 * first paint is immediate.
 *
 * These rules hide the elements up front so there is nothing to flash.
 *
 * The selectors are deliberately narrow. anm.js only ever animates elements
 * carrying data-anm-trigger, or the descendants of a data-anm-timeline that
 * carries one - a data-anm-* attribute on its own does nothing at all. So
 * hiding on data-anm-* alone would leave anything outside that arrangement
 * invisible for good.
 *
 * Note the rules stop applying by themselves: anm.js removes
 * data-anm-trigger once the animation has been handed to GSAP, which by
 * then has its own inline opacity on the element anyway.
 *
 * Everything is under '.js', which tcupcore's page header puts on the root
 * element from a script in the head. If the javascript never arrives there
 * is nothing to reveal these again, so in that case they must not be
 * hidden in the first place.
 */

.js [data-anm-timeline][data-anm-trigger] [data-anm-xs],
.js [data-anm-timeline][data-anm-trigger] [data-anm-sm],
.js [data-anm-timeline][data-anm-trigger] [data-anm-md],
.js [data-anm-timeline][data-anm-trigger] [data-anm-lg],
.js [data-anm-timeline][data-anm-trigger] [data-anm-xl],
.js [data-anm-trigger]:not([data-anm-timeline]) {
  opacity: 0;
}
