/*
 * Holo family bw-secret: Black & White secret rares (32 faces). v3, 2026-10-02 (v2 remake + review #2).
 *
 * Scope: every `bw-secret` print: the gold secrets and gold Items of bw7-bw10, the yellow-bordered secrets (bw1-115,
 * bw3-102, the shiny reprints and Pokémon Catcher of bw4-bw6) and Legendary Treasures' all-gold Reshiram and Zekrom.
 * Cards: the faces js/fam/bw-secret.js claims; it adds `fam-bw-secret` plus a finish class (bws-gold [bws-trainer],
 * bws-goldfull, bws-yellow, bws-grain) and the maps (--bws-metal, --bws-hatch, --bws-tex, --bws-eng, --bws-ink,
 * --bws-glint, --bws-fm, --bws-grain-a/-b), and every rule below is scoped to it.
 * Specificity: body.fx-holo.fx-holo.fx-holo .tcg.era-bw.(x5).fam-bw-secret.(x4) beats the era sheets
 * (this sheet loads after them); keep the era's :not(.lit):not(.settling) when overriding a rest-state rule.
 * Noah, 2026-10-02: "most have really shitty texture and i dont like the overuse of the rainbow glare as most cards
 * dont really have that rainbow glare". So: colour only where the real card shows it. The brushed gold of a frame
 * is metal (ochre to white-gold), never rainbow; the rainbow lives in the art window (a narrow column and the
 * stipple) and on the Pokémon of the yellow secrets; text boxes stay matte. The texture is TCG Live's own etch,
 * split by zone in make_bw_secret_v2.py so each layer paints only its own zone.
 * Part of the older-era holo remaster (2026-10-01): the research, photos and review for this family are in
 * /mnt/project-files/holo-remaster/bw-secret/; the recipe is in .claude/skills/card-textures/reference/fam-bw-secret.md.
 */

/* ======================================================================== */
/* Every layer this family paints starts from the same clean slate          */
/* ======================================================================== */
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret {
  --bws-boost: var(--foil-strength, 1);
  /* Brushed champagne gold (the frame of the gold secrets, photos: gold_crops*, the PSA Charizard 8SgN7hCVvC8): pale
     champagne where the lamp is, olive in the shade. Hard-light cannot desaturate a yellow print with warm tones (it only
     multiplies red and green down and lifts blue with a PALE top colour), so the tops are bluish: they pull red and green
     down and lift blue. Over the print yellow the stops land on (193,178,86) olive, (238,222,110), (255,228,150) champagne.
     One cycle is 300% of the card, so a full sweep moves the pattern about a third of it. */
  --bws-field: repeating-linear-gradient(118deg,
    hsl(236, 36%, 52%) 0%, hsl(230, 40%, 60%) 8%, hsl(236, 52%, 70%) 14%, hsl(226, 30%, 74%) 18%, hsl(232, 44%, 64%) 23%,
    hsl(228, 24%, 50%) 31%, hsl(234, 38%, 58%) 39%, hsl(236, 50%, 70%) 44%, hsl(236, 36%, 52%) 50%);
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret .foil,
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret .foil::before,
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret .foil::after,
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret .cure,
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret .cure::before,
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret .cure::after,
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret .glare,
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret .glare::after {
  background-image: none;
  background-color: transparent;
  background-blend-mode: normal;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-position: center;
  filter: none;
  mix-blend-mode: normal;
  opacity: 1;
  -webkit-clip-path: none;
  clip-path: none;
  border-radius: 0;
  transform: none;
  animation: none;
  -webkit-mask-image: none;
  mask-image: none;
  -webkit-mask-composite: source-over;
  mask-composite: add;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  mask-mode: alpha;
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret .cure::before,
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret .cure::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

/* ======================================================================== */
/* Gold secrets and gold Items (bws-gold): Boundaries Crossed to Plasma Blast */
/* ======================================================================== */
/* Photos (Altaria 152 x2, Charizard 136 x4, Blastoise 137, Rare Candy 105): the frame is brushed gold, fine hatch lines
   (horizontal on the bars, vertical on the sides, diagonal on the name band), ochre in room light and pale gold-white
   where the lamp is; at most a faint green-gold at a grazing edge, never pink. The art window is the holo: a sparkly
   stipple on the Pokémon, etched swirls behind it, one narrow vertical rainbow column and a white hot spot. The text
   box is matte; the type symbol is an embossed ring pattern, a pale sheen with no colour of its own.
   .foil           (rest and lit) hard-light gold metal over the frame only (--bws-metal), intersected with the scan's own
                   luminance so the frame's dark line-work and lettering keep their colour (review 3: the champagne field's
                   bluish tops turned them navy)
   .foil::before   (rest and lit) the brushed hatch of the frame (--bws-hatch, Live's etch inside the frame), pale gold
   .cure           (lit) the window only (clip-path box): a hot spot and one narrow rainbow column, screen
   .cure::before   (lit) the window's stipple and swirls in rainbow glints (--bws-tex), screen
   .glare          (rest and lit) the same stipple, swirls and the symbol's rings (--bws-tex) as pale silver glints */
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-gold {
  --bws-wt: 10.8%; --bws-wr: 9.1%; --bws-wb: 50.6%; --bws-wl: 8.9%;
  --bws-column: repeating-linear-gradient(96deg,
    hsl(0, 0%, 0%) 0%, hsl(0, 0%, 0%) 47.4%,
    hsl(335, 88%, 54%) 48.3%, hsl(28, 100%, 56%) 49%, hsl(56, 100%, 56%) 49.7%, hsl(130, 85%, 50%) 50.4%,
    hsl(186, 100%, 54%) 51.1%, hsl(232, 95%, 64%) 51.8%, hsl(285, 85%, 60%) 52.4%,
    hsl(0, 0%, 0%) 53.4%, hsl(0, 0%, 0%) 100%);
  --bws-spark: repeating-linear-gradient(62deg,
    hsl(330, 90%, 62%) 0%, hsl(45, 100%, 60%) 8%, hsl(120, 85%, 54%) 16%, hsl(195, 100%, 60%) 24%,
    hsl(265, 90%, 68%) 32%, hsl(330, 90%, 62%) 40%);
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-gold.bws-trainer {
  --bws-wt: 16.2%; --bws-wr: 10.4%; --bws-wb: 48.9%; --bws-wl: 10.2%;
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-gold .foil {
  background-image:
    radial-gradient(farthest-corner circle at var(--pointer-x) var(--pointer-y),
      hsla(52, 100%, 96%, 0.9) 0%, hsla(48, 100%, 84%, 0.5) 12%, hsla(46, 90%, 70%, 0) 38%),
    var(--bws-field);
  background-size: 100% 100%, 300% 300%;
  background-position: center, calc(100% - var(--background-x)) calc(100% - var(--background-y));
  background-repeat: no-repeat, repeat;
  mix-blend-mode: hard-light;
  opacity: calc((0.8 + var(--card-opacity) * 0.2) * var(--foil-strength, 1));
  -webkit-mask-image: var(--bws-metal), var(--art);
  mask-image: var(--bws-metal), var(--art);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
  mask-mode: alpha, luminance;
  -webkit-mask-size: 100% 100%, 100% 100%;
  mask-size: 100% 100%, 100% 100%;
  -webkit-mask-repeat: no-repeat, no-repeat;
  mask-repeat: no-repeat, no-repeat;
  -webkit-mask-position: center, center;
  mask-position: center, center;
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-gold:not(.lit):not(.settling) .foil {
  background-image: var(--bws-field);
  background-size: 300% 300%;
  background-position: 50% 50%;
  background-repeat: repeat;
  filter: none;
  opacity: calc(1 * var(--foil-strength, 1));
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-gold .foil::before {
  display: block;
  background-image: radial-gradient(farthest-corner circle at var(--pointer-x) var(--pointer-y),
    hsla(53, 100%, 98%, 1) 0%, hsla(49, 100%, 90%, 0.8) 20%, hsla(46, 92%, 76%, 0.58) 55%, hsla(43, 80%, 62%, 0.5) 100%);
  opacity: calc(0.62 + var(--card-opacity) * 0.38);
  -webkit-mask-image: var(--bws-hatch);
  mask-image: var(--bws-hatch);
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-gold .cure {
  -webkit-clip-path: inset(var(--bws-wt) var(--bws-wr) var(--bws-wb) var(--bws-wl));
  clip-path: inset(var(--bws-wt) var(--bws-wr) var(--bws-wb) var(--bws-wl));
  background-image:
    radial-gradient(farthest-corner circle at var(--pointer-x) var(--pointer-y),
      hsla(50, 100%, 98%, 0.95) 0%, hsla(48, 100%, 88%, 0.5) 8%, hsla(46, 100%, 80%, 0) 28%),
    var(--bws-column);
  background-size: 100% 100%, 200% 100%;
  background-position: center, calc(100% - var(--background-x)) 50%;
  background-repeat: no-repeat, repeat;
  mix-blend-mode: screen;
  opacity: calc(var(--card-opacity) * var(--bws-boost));
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-gold .cure::before {
  background-image:
    radial-gradient(farthest-corner circle at var(--pointer-x) var(--pointer-y), hsl(0, 0%, 100%) 0%, hsl(0, 0%, 52%) 14%, hsl(0, 0%, 12%) 34%, hsl(0, 0%, 0%) 55%),
    var(--bws-spark);
  background-blend-mode: multiply, normal;
  background-size: 100% 100%, 260% 260%;
  background-position: center, var(--background-x) var(--background-y);
  background-repeat: no-repeat, repeat;
  opacity: calc(0.5 + var(--pointer-from-center) * 0.25);
  -webkit-mask-image: var(--bws-tex);
  mask-image: var(--bws-tex);
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-gold .glare {
  display: block;
  background-image: radial-gradient(farthest-corner circle at var(--pointer-x) var(--pointer-y),
    hsla(0, 0%, 100%, 1) 0%, hsla(50, 60%, 94%, 0.7) 9%, hsla(48, 40%, 86%, 0.22) 24%, hsla(46, 30%, 78%, 0.07) 50%, hsla(46, 30%, 78%, 0.04) 100%);
  mix-blend-mode: screen;
  opacity: calc((0.45 + var(--card-opacity) * 0.55) * min(1, var(--foil-strength, 1)));
  -webkit-mask-image: var(--bws-tex);
  mask-image: var(--bws-tex);
}

/* ======================================================================== */
/* Legendary Treasures' gold Reshiram and Zekrom (bws-goldfull)              */
/* ======================================================================== */
/* Photos (Reshiram 114 in three poses, Altaria and Charizard gold): the whole face is mirror gold, a pale yellow-gold
   where it reflects the room and blown out to white-gold where the lamp is, with a faint green-gold cast at the far
   side; no rainbow. The dragon is engraved into it (TCG Live's etch: dense line work across the Pokémon) and the
   engraving is pale gold-white lines that brighten as it tilts. The text is ink on the mirror: it stays black.
   .foil           (rest and lit) hard-light: bands of ochre and white-gold, so the face is never one flat yellow
   .foil::before   (rest and lit) the engraving (--bws-eng, Live's etch with the ink knocked out), pale gold-white
   .cure           (lit) screen: the lamp's hot spot and a sweeping mirror band, masked by the scan's luminance so
                   the ink (luminance near zero) is left out of the wash
   .glare          (lit) soft-light lamp on the varnish */
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-goldfull {
  /* deeper than --bws-field: the mirror gold is ochre-yellow where it reflects the room, white-gold only at the lamp */
  --bws-gfield: repeating-linear-gradient(118deg,
    hsl(40, 86%, 34%) 0%, hsl(43, 92%, 48%) 9%, hsl(49, 96%, 68%) 15%, hsl(53, 90%, 88%) 18%, hsl(47, 90%, 56%) 24%,
    hsl(40, 84%, 33%) 33%, hsl(44, 92%, 48%) 42%, hsl(50, 96%, 70%) 47%, hsl(41, 84%, 36%) 50%);
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-goldfull .foil {
  background-image: var(--bws-gfield);
  background-size: 240% 240%;
  background-position: calc(100% - var(--background-x)) calc(100% - var(--background-y));
  background-repeat: repeat;
  mix-blend-mode: hard-light;
  opacity: calc((0.78 + var(--card-opacity) * 0.14) * min(1, var(--foil-strength, 1)));
  /* --bws-ink (make_bw_secret_v3.py): alpha 1 on the gold of the scan, 0 on the ink, the symbols and two pixels around them.
     One plain alpha map (no luminance mode, no mask-composite fold: a fold of four layers draws no foil in WebKit). */
  -webkit-mask-image: var(--bws-ink);
  mask-image: var(--bws-ink);
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-goldfull:not(.lit):not(.settling) .foil {
  background-position: 50% 50%;
  filter: none;
  opacity: calc(0.78 * min(1, var(--foil-strength, 1)));
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-goldfull .foil::before {
  display: block;
  background-image: radial-gradient(farthest-corner circle at var(--pointer-x) var(--pointer-y),
    hsla(53, 100%, 99%, 1) 0%, hsla(50, 100%, 92%, 0.85) 24%, hsla(47, 95%, 80%, 0.62) 60%, hsla(44, 85%, 68%, 0.5) 100%);
  opacity: calc(0.5 + var(--card-opacity) * 0.45);
  -webkit-mask-image: var(--bws-eng);
  mask-image: var(--bws-eng);
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-goldfull .foil::after {
  /* the same engraving as dark ochre lines away from the lamp: pale where the light catches it, dark between */
  display: block;
  background-image: radial-gradient(farthest-corner circle at var(--pointer-x) var(--pointer-y),
    hsla(36, 88%, 24%, 0) 0%, hsla(36, 88%, 24%, 0.22) 22%, hsla(36, 88%, 24%, 0.62) 60%, hsla(36, 88%, 24%, 0.7) 100%);
  opacity: 0.85;
  -webkit-mask-image: var(--bws-eng);
  mask-image: var(--bws-eng);
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-goldfull .cure {
  background-image:
    radial-gradient(farthest-corner circle at var(--pointer-x) var(--pointer-y),
      hsla(50, 100%, 99%, 1) 0%, hsla(50, 100%, 98%, 1) 8%, hsla(48, 100%, 94%, 0.86) 17%, hsla(46, 100%, 84%, 0.46) 29%,
      hsla(45, 100%, 76%, 0.14) 43%, hsla(45, 100%, 74%, 0) 60%),
    linear-gradient(104deg, transparent 38%, hsla(46, 100%, 82%, 0.3) 45%, hsla(50, 100%, 94%, 0.55) 50%,
      hsla(46, 100%, 82%, 0.3) 55%, transparent 62%);
  background-size: 100% 100%, 300% 100%;
  background-position: center, calc(75% - var(--pointer-from-left) * 50%) 50%;
  background-repeat: no-repeat;
  mix-blend-mode: screen;
  opacity: calc(var(--card-opacity) * 0.95 * var(--bws-boost));
  -webkit-mask-image: var(--bws-ink);
  mask-image: var(--bws-ink);
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-goldfull .glare {
  background-image: radial-gradient(farthest-corner circle at var(--pointer-x) var(--pointer-y),
    hsla(0, 0%, 100%, 0.8) 0%, hsla(0, 0%, 100%, 0.3) 24%, hsla(0, 0%, 0%, 0.18) 80%);
  mix-blend-mode: soft-light;
  opacity: calc(var(--card-opacity) * 0.8 * min(1, var(--foil-strength, 1)));
  -webkit-mask-image: var(--bws-ink);
  mask-image: var(--bws-ink);
}

/* ======================================================================== */
/* Yellow-bordered secrets (bws-yellow): the Pokémon (or the Item) is the foil */
/* ======================================================================== */
/* Photos (Pikachu 115 in a slab, Meowth 102, shiny Krookodile 127, Reuniclus, Serperior): the yellow frame, the
   scenery and the text are matte print. Only the Pokémon (and the type symbol in the text box) is foil: a glitter of
   fine points across the body, and as it tilts one band of cyan, green and rust sweeping over it. TCG Live's foil
   map is that shape (the Pokémon white, everything else dark); --bws-fm is that map with the pupils, nostrils and
   cheeks knocked out (hard-light lifts any dark pixel the band crosses, so an eye went cyan and a cheek violet), and
   the glitter is the full-card speck map --bws-glint (Live's etch is the window background, not the Pokémon).
   .foil          (rest and lit) hard-light: one narrow rainbow band over the Pokémon only, soft at rest
   .foil::before  (rest and lit) the etched glitter, pale, over the same shape
   .glare         (lit) the lamp on the Pokémon, soft-light, over the same shape */
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-yellow {
  --bws-textbox: linear-gradient(to bottom, #000 0%, #000 56%, rgba(0, 0, 0, 0.3) 58%, rgba(0, 0, 0, 0.3) 100%);
  --bws-sweep:
    linear-gradient(112deg, transparent 47.6%, hsla(190, 100%, 58%, 0.85) 48.5%, hsla(142, 90%, 52%, 0.9) 49.4%,
      hsla(78, 95%, 54%, 0.7) 50.2%, hsla(24, 100%, 56%, 0.7) 51%, transparent 51.9%);
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-yellow .foil {
  background-image: var(--bws-sweep);
  background-size: 300% 300%;
  background-position: var(--background-x) var(--background-y);
  background-repeat: no-repeat;
  mix-blend-mode: hard-light;
  opacity: calc((0.3 + var(--card-opacity) * 0.48) * var(--foil-strength, 1));
  -webkit-mask-image: var(--bws-fm), var(--bws-fm), var(--bws-textbox);
  mask-image: var(--bws-fm), var(--bws-fm), var(--bws-textbox);
  -webkit-mask-composite: source-in, source-in;
  mask-composite: intersect, intersect;
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-yellow:not(.lit):not(.settling) .foil {
  /* at rest the band waits off the card: the Pokémon shows only its glitter until the card is tilted */
  background-position: 0% 0%;
  opacity: calc(0.9 * var(--foil-strength, 1));
  filter: none;
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-yellow .foil::before {
  display: block;
  background-image: radial-gradient(farthest-corner circle at var(--pointer-x) var(--pointer-y),
    hsla(0, 0%, 100%, 1) 0%, hsla(0, 0%, 100%, 0.75) 20%, hsla(0, 0%, 100%, 0.45) 55%, hsla(0, 0%, 100%, 0.32) 100%);
  opacity: calc(0.75 + var(--card-opacity) * 0.25);
  -webkit-mask-image: var(--bws-glint);
  mask-image: var(--bws-glint);
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-yellow:not(.lit):not(.settling) .foil::before {
  opacity: 0.8;
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-yellow .glare {
  background-image: radial-gradient(farthest-corner circle at var(--pointer-x) var(--pointer-y),
    hsla(0, 0%, 100%, 0.9) 0%, hsla(0, 0%, 100%, 0.35) 25%, hsla(0, 0%, 100%, 0) 70%);
  mix-blend-mode: soft-light;
  opacity: calc(var(--card-opacity) * 0.9 * min(1, var(--foil-strength, 1)));
  -webkit-mask-image: var(--foil-map);
  mask-image: var(--foil-map);
}

/* ======================================================================== */
/* Pikachu 115 and Meowth 102 (bws-grain): the scenery is pebbled varnish     */
/* ======================================================================== */
/* Photos: the art window around the foil Pokémon is covered in small raised bumps that throw a point of light each
   (a frosted look). The bump field is drawn from the card id (--bws-grain-a lit from the upper left, -b from the
   lower right, v2: about twelve percent of the scenery); which of the two glints follows the tilt.
   .foil          (rest and lit) also draws the two bump fields: its mask is the Pokémon shape plus the bumps
   .cure::before  (lit) the highlights lit from the upper left, strongest when the lamp is at the left
   .cure::after   (lit) the same bumps lit from the lower right, strongest when the lamp is at the right */
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-grain .foil {
  background-image: var(--bws-grain-a), var(--bws-grain-b), var(--bws-sweep);
  background-size: 100% 100%, 100% 100%, 300% 300%;
  background-position: center, center, var(--background-x) var(--background-y);
  background-repeat: no-repeat;
  -webkit-mask-image: var(--bws-grain-a), var(--bws-grain-b), var(--bws-fm), var(--bws-fm), var(--bws-textbox);
  mask-image: var(--bws-grain-a), var(--bws-grain-b), var(--bws-fm), var(--bws-fm), var(--bws-textbox);
  -webkit-mask-composite: source-over, source-over, source-in, source-in;
  mask-composite: add, add, intersect, intersect;
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-grain:not(.lit):not(.settling) .foil {
  background-position: center, center, 0% 0%;
  opacity: calc(0.75 * var(--foil-strength, 1));
  filter: none;
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-grain .cure {
  mix-blend-mode: screen;
  opacity: calc(var(--card-opacity) * var(--bws-boost));
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-grain .cure::before {
  background-image: radial-gradient(farthest-corner circle at var(--pointer-x) var(--pointer-y),
    hsla(0, 0%, 100%, 1) 0%, hsla(200, 100%, 92%, 0.9) 35%, hsla(50, 100%, 92%, 0.7) 100%);
  opacity: calc(1.15 - var(--pointer-from-left));
  -webkit-mask-image: var(--bws-grain-a);
  mask-image: var(--bws-grain-a);
}
body.fx-holo.fx-holo.fx-holo .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.bws-grain .cure::after {
  background-image: radial-gradient(farthest-corner circle at var(--pointer-x) var(--pointer-y),
    hsla(0, 0%, 100%, 1) 0%, hsla(50, 100%, 92%, 0.9) 35%, hsla(200, 100%, 92%, 0.7) 100%);
  opacity: calc(0.15 + var(--pointer-from-left));
  -webkit-mask-image: var(--bws-grain-b);
  mask-image: var(--bws-grain-b);
}

/* ======================================================================== */
/* The shine setting: layers this sheet shows at rest go with it             */
/* ======================================================================== */
body.fx-holo.fx-holo.fx-holo.no-shine .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret .glare,
body.fx-holo.fx-holo.fx-holo.no-shine .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret .foil::before,
body.fx-holo.fx-holo.fx-holo.no-shine .tcg.era-bw.era-bw.era-bw.era-bw.era-bw.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret.fam-bw-secret .foil::after {
  display: none;
}
