# Artwork & Sound Credits

## Standard English-Pattern Playing Cards

Artwork by Byron Knoll, from the Vector Playing Cards project.

- Primary author and public-domain release: https://byronknoll.blogspot.com/2011/03/vector-playing-cards.html
- Source repository: https://github.com/notpeter/Vector-Playing-Cards
- Pinned revision: `72cb5b288ed61251ef344e369446687cd51281a4`
- Source directory: `cards-svg/`
- Upstream license statement: https://github.com/notpeter/Vector-Playing-Cards/blob/72cb5b288ed61251ef344e369446687cd51281a4/README.md#license

The 51 SVG faces other than `AS.svg` are copied byte-for-byte from that revision.
The upstream README releases the images into the public domain, or optionally
under the WTFPL where the public domain is not recognized. It credits Byron
Knoll's original public-domain release. A verbatim copy of that README is included
as [UPSTREAM-README.md](UPSTREAM-README.md). No jokers are included.

## Ace of Spades Exception

The upstream ornamental ace of spades was based on artwork by Suzanne Tyson, as
described in Byron Knoll's release post. Separate permission for that underlying
ornament was not established. The upstream `AS.svg` is deliberately NOT included,
traced, or used by this client.

This folder's `AS.svg` is an original plain-spade ace created for LONICERA, using
only a generic spade silhouette, mirrored Arial corner indices, a white rounded
rectangle, and the deck's matching `167.0869141 x 242.6669922` viewBox. It contains
none of the Suzanne Tyson ornament. This original replacement is made available
under the same public-domain/WTFPL terms as the other card faces.

The red crosshatch back is an original CSS pattern in `public/css/classic.css`,
not a commercial card-brand design. No Bicycle or PokerStars logos are used.
The client applies a CSS stock finish. All faces are served locally without
remote image or font requests from the SVGs.

## Derived WebP Faces

The 52 matching `.webp` files are locally generated derivatives of the retained
SVG sources, including the original plain-spade `AS.svg` replacement above.
They carry the same public-domain/WTFPL terms; no additional artwork is included.
All 52 SVG sources and the upstream README remain unchanged.

Regenerate with `node scripts/build-card-bitmaps.cjs` from the repository root,
using the existing Playwright dependency and Chromium at `/usr/bin/chromium`.
The script renders the SVG vectors at an explicit 500 x 726 pixel viewport,
preserving their viewBox aspect ratio, white stock, and transparent rounded
corners. Canvas `saturate(0.78)` bakes in the former CSS ink desaturation before
WebP export at quality `0.98`; do not apply that CSS filter again to the bitmaps.
The generator rejects unsafe or blank artwork, verifies all 52 decoded images,
and reports source/output byte totals and RGB error against filtered SVGs at
mobile, desktop, and desktop 4x-DPR playing resolutions.

The Chromium 149 build totals 8,191,214 source SVG bytes versus 2,134,108 served
WebP bytes, saving 6,057,106 bytes (73.95%) across the 52 faces. This is a delivery
size comparison; the source SVGs remain alongside the derived bitmaps.
An optional second argument to the generator writes a side-by-side playing-size
comparison PNG, for example `test-results/card-bitmap-comparison.png`.

## Sound Effects

See [sound sources and licenses](../poker-audio/NOTICE.md).
