/*

  ULTRA RARE (FULL ART TRAINER)
  Adapted from simeydotme/pokemon-cards-css for HypePull.

  Original file only contained the trainer-specific OVERRIDES, inheriting the
  base shine layers from v-full-art (same `data-rarity="rare ultra"` matched
  both via differing `data-subtypes`). HypePull uses data-rarity to distinguish
  effects, so we use `data-rarity="rare ultra trainer"` and inline the full
  shine stack, plus the no-mask foil overrides (trainerbg.png at 20%).

*/

.card-body.card[data-rarity="rare ultra trainer"] .card__shine,
.card-body.card[data-rarity="rare ultra trainer"] .card__shine:after {

  --foil: url("/twitch/img/trainerbg.png");
  --imgsize: 20%;

  background-image:
    var(--foil),
    repeating-linear-gradient( 0deg,
      var(--sunpillar-clr-1) calc(var(--space)*1),
      var(--sunpillar-clr-2) calc(var(--space)*2),
      var(--sunpillar-clr-3) calc(var(--space)*3),
      var(--sunpillar-clr-4) calc(var(--space)*4),
      var(--sunpillar-clr-5) calc(var(--space)*5),
      var(--sunpillar-clr-6) calc(var(--space)*6),
      var(--sunpillar-clr-1) calc(var(--space)*7)
    ),
    repeating-linear-gradient(
      var(--angle),
      #0e152e 0%,
      hsl(180, 10%, 60%) 3.8%,
      hsl(180, 29%, 66%) 4.5%,
      hsl(180, 10%, 60%) 5.2%,
      #0e152e 10%,
      #0e152e 12%
      ),
    radial-gradient(
      farthest-corner circle
      at var(--pointer-x) var(--pointer-y),
      hsla(0, 0%, 0%, 0.1) 12%,
      hsla(0, 0%, 0%, 0.15) 20%,
      hsla(0, 0%, 0%, 0.25) 120%
    );

  background-position:
    center center,
    0% var(--background-y),
    calc( var(--background-x) + (var(--background-y)*0.2) ) var(--background-y),
    var(--background-x) var(--background-y);

  background-blend-mode: color-burn, hue, hard-light;
  background-size: var(--imgsize), 200% 700%, 300% 100%, 200% 100%;

  filter: brightness(calc((var(--pointer-from-center)*0.05) + .6)) contrast(1.75) saturate(1.2);

}

.card-body.card[data-rarity="rare ultra trainer"] .card__shine:after {

  background-position:
    center center,
    0% var(--background-y),
    calc( (var(--background-x) + (var(--background-y)*0.2)) * -1) calc( var(--background-y) * -1),
    var(--background-x) var(--background-y);

  background-size: var(--imgsize), 200% 400%, 195% 100%, 200% 100%;

  filter: brightness(calc((var(--pointer-from-center)*.4) + .85)) contrast(2) saturate(.5);
  mix-blend-mode: exclusion;

}

.card-body.card[data-rarity="rare ultra trainer"] .card__shine:before {

  background-image:
    radial-gradient( farthest-corner circle at var(--pointer-x) var(--pointer-y),
      hsl(0, 0%, 100%) 0%,
      hsla(0, 0%, 0%, 0) 80%
    );
  background-position: center;
  background-size: cover;
  mix-blend-mode: screen;

  opacity: 0.5;
  z-index: 1;

}

/*

  GLARE LAYERS

*/

.card-body.card[data-rarity="rare ultra trainer"] .card__glare {

  background-image:
    radial-gradient(
      farthest-corner circle at var(--glare-x) var(--glare-y),
      hsl(0, 0%, 75%) 5%,
      hsl(200, 5%, 35%) 60%,
      hsl(320, 40%, 10%) 150%
    );

  background-size: 170% 170%;
  background-position: center center;

  mix-blend-mode: multiply;
  filter: brightness(1.5) contrast(1.4) saturate(1);

  opacity: calc(var(--card-opacity) * .75);

}
