/* Shared chess artwork for all six piece types and both colors. */
:root {
  /* White piece art per set — full six-piece coverage (king/rook/queen
     plus bishop/knight/pawn, added for the "1 Hamlede Mat" practice, which
     is the first one to need real-game material). "classic" is the
     default set; the others apply via a
     body[data-piece-set="..."] override below. */
  --char-king: url("pieces/char/king.svg");
  --char-rook: url("pieces/char/rook.svg");
  --char-queen: url("pieces/char/queen.svg");
  --char-bishop: url("pieces/char/bishop.svg");
  --char-knight: url("pieces/char/knight.svg");
  --char-pawn: url("pieces/char/pawn.svg");
  --classic-king: url("pieces/classic/king.svg");
  --classic-rook: url("pieces/classic/rook.svg");
  --classic-queen: url("pieces/classic/queen.svg");
  --classic-bishop: url("pieces/classic/bishop.svg");
  --classic-knight: url("pieces/classic/knight.svg");
  --classic-pawn: url("pieces/classic/pawn.svg");
  --royal-king: url("pieces/royal/king.png");
  --royal-rook: url("pieces/royal/rook.png");
  --royal-queen: url("pieces/royal/queen.png");
  --royal-bishop: url("pieces/royal/bishop.png");
  --royal-knight: url("pieces/royal/knight.png");
  --royal-pawn: url("pieces/royal/pawn.png");
  --shadow-king: url("pieces/shadow/king.png");
  --shadow-rook: url("pieces/shadow/rook.png");
  --shadow-queen: url("pieces/shadow/queen.png");
  --shadow-bishop: url("pieces/shadow/bishop.png");
  --shadow-knight: url("pieces/shadow/knight.png");
  --shadow-pawn: url("pieces/shadow/pawn.png");
  --frost-king: url("pieces/frost/king.png");
  --frost-rook: url("pieces/frost/rook.png");
  --frost-queen: url("pieces/frost/queen.png");
  --frost-bishop: url("pieces/frost/bishop.png");
  --frost-knight: url("pieces/frost/knight.png");
  --frost-pawn: url("pieces/frost/pawn.png");
  --active-king: var(--classic-king);
  --active-rook: var(--classic-rook);
  --active-queen: var(--classic-queen);
  --active-bishop: var(--classic-bishop);
  --active-knight: var(--classic-knight);
  --active-pawn: var(--classic-pawn);

  /* Each set has dedicated black artwork, preserving bright facial details. */
  --black-king: url("pieces/classic/black/king.svg");
  --black-bishop: url("pieces/classic/black/bishop.svg");
  --black-knight: url("pieces/classic/black/knight.svg");
  --black-pawn: url("pieces/classic/black/pawn.svg");
  --black-queen: url("pieces/classic/black/queen.svg");
  --black-rook: url("pieces/classic/black/rook.svg");

}

g-chess-board::part(piece-wk) {
  background-image: var(--active-king);
}
g-chess-board::part(piece-wr) {
  background-image: var(--active-rook);
}
g-chess-board::part(piece-wq) {
  background-image: var(--active-queen);
}
g-chess-board::part(piece-wb) {
  background-image: var(--active-bishop);
}
g-chess-board::part(piece-wn) {
  background-image: var(--active-knight);
}
g-chess-board::part(piece-wp) {
  background-image: var(--active-pawn);
}
g-chess-board::part(piece-wk),
g-chess-board::part(piece-wr),
g-chess-board::part(piece-wq),
g-chess-board::part(piece-wb),
g-chess-board::part(piece-wn),
g-chess-board::part(piece-wp) {
  filter: var(--piece-filter);
  transition: filter 0.4s ease;
}
g-chess-board::part(piece-bk) {
  background-image: var(--black-king);
}
g-chess-board::part(piece-bq) {
  background-image: var(--black-queen);
}
g-chess-board::part(piece-br) {
  background-image: var(--black-rook);
}
g-chess-board::part(piece-bb) {
  background-image: var(--black-bishop);
}
g-chess-board::part(piece-bn) {
  background-image: var(--black-knight);
}
g-chess-board::part(piece-bp) {
  background-image: var(--black-pawn);
}
g-chess-board::part(piece-bk),
g-chess-board::part(piece-bq),
g-chess-board::part(piece-br),
g-chess-board::part(piece-bb),
g-chess-board::part(piece-bn),
g-chess-board::part(piece-bp) {
  filter: var(--enemy-filter);
  transition: filter 0.4s ease;
}

body[data-piece-set="char"] {
  --black-king: url("pieces/char/black/king.svg");
  --black-rook: url("pieces/char/black/rook.svg");
  --black-queen: url("pieces/char/black/queen.svg");
  --black-bishop: url("pieces/char/black/bishop.svg");
  --black-knight: url("pieces/char/black/knight.svg");
  --black-pawn: url("pieces/char/black/pawn.svg");
  --active-king: var(--char-king);
  --active-rook: var(--char-rook);
  --active-queen: var(--char-queen);
  --active-bishop: var(--char-bishop);
  --active-knight: var(--char-knight);
  --active-pawn: var(--char-pawn);
}
body[data-piece-set="royal"] {
  --black-king: url("pieces/royal/black/king.png");
  --black-rook: url("pieces/royal/black/rook.png");
  --black-queen: url("pieces/royal/black/queen.png");
  --black-bishop: url("pieces/royal/black/bishop.png");
  --black-knight: url("pieces/royal/black/knight.png");
  --black-pawn: url("pieces/royal/black/pawn.png");
  --active-king: var(--royal-king);
  --active-rook: var(--royal-rook);
  --active-queen: var(--royal-queen);
  --active-bishop: var(--royal-bishop);
  --active-knight: var(--royal-knight);
  --active-pawn: var(--royal-pawn);
}
body[data-piece-set="shadow"] {
  --black-king: url("pieces/shadow/black/king.png");
  --black-rook: url("pieces/shadow/black/rook.png");
  --black-queen: url("pieces/shadow/black/queen.png");
  --black-bishop: url("pieces/shadow/black/bishop.png");
  --black-knight: url("pieces/shadow/black/knight.png");
  --black-pawn: url("pieces/shadow/black/pawn.png");
  --active-king: var(--shadow-king);
  --active-rook: var(--shadow-rook);
  --active-queen: var(--shadow-queen);
  --active-bishop: var(--shadow-bishop);
  --active-knight: var(--shadow-knight);
  --active-pawn: var(--shadow-pawn);
}
body[data-piece-set="frost"] {
  --black-king: url("pieces/frost/black/king.png");
  --black-rook: url("pieces/frost/black/rook.png");
  --black-queen: url("pieces/frost/black/queen.png");
  --black-bishop: url("pieces/frost/black/bishop.png");
  --black-knight: url("pieces/frost/black/knight.png");
  --black-pawn: url("pieces/frost/black/pawn.png");
  --active-king: var(--frost-king);
  --active-rook: var(--frost-rook);
  --active-queen: var(--frost-queen);
  --active-bishop: var(--frost-bishop);
  --active-knight: var(--frost-knight);
  --active-pawn: var(--frost-pawn);
}
