- theme.properties: keep loading the keycloak.v2 parent stylesheet (previously
shadowed by our same-named css/styles.css, so the base card grid/layout
never loaded); our overrides now live in resources/css/custom.css.
- custom.css: rewritten against the real rendered markup/PatternFly tokens
(#keycloak-bg, .pf-v5-c-login__main, #kc-login) instead of guessed
selectors, with a frosted-glass card, dark-mode variant, and rounded
inputs/buttons.
- bg-picker.js: picks the background photo deterministically by epoch-day
from an IMAGES list (add filenames as new photos are uploaded), and
derives the card's accent color (top border + primary button) from the
chosen photo via saturation-weighted dominant-hue extraction.
- dev/: local static preview (real login markup snapshot + vendored
Font Awesome glyph) to iterate on the theme without redeploying.