/*

  SHINY V (ULTRA RARE)
  Adapted from simeydotme/pokemon-cards-css for HypePull.
  Foil texture pre-sized to 33% to match the no-mask aesthetic (HypePull cards
  have no per-card masks). Dropped clip-path / data-subtypes / `:not(.masked)`.

*/

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

  --imgsize: 33%;

  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: soft-light, hue, hard-light;
  background-size: var(--imgsize), 200% 700%, 300% 100%, 200% 100%;

  filter: brightness(calc((var(--pointer-from-center)*0.4) + .4)) contrast(1.4) saturate(2.25);

}

.card-body.card[data-rarity="rare shiny v"] .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) + .8)) contrast(1.5) saturate(1.25);
  mix-blend-mode: exclusion;

}

.card-body.card[data-rarity="rare shiny v"] .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) 40%
    );
  background-position: center;
  background-size: cover;
  mix-blend-mode: overlay;

  opacity: 0.75;
  z-index: 1;

}

/*

  GLARE LAYERS

*/

.card-body.card[data-rarity="rare shiny v"] .card__glare {

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

  background-size: 120% 140%;
  background-position: center center;

  mix-blend-mode: darken;
  filter: brightness(.88) contrast(2.25) saturate(.7);

  opacity: calc( var(--card-opacity) * var(--pointer-from-center) * 0.75 );

}
