Components
Cards & results
Cards are only for genuinely repeated items. No cards-in-cards. MVP has no media, so the no-image fallback is a first-class state — a deliberate paper/orange panel, never a broken box. Both user and press scores show, never merged.
.cc-card__media--photo / .cc-litho-layer — Bildsprache “Variante C” rest = colour photo; hover/focus/tap = translucent orange-litho tint over the grayscale/contrast photo (still visible as texture — issue #94 review round 2 finding #1) plus a centred, opaque orange title chip fitted to width (issue #93). The chip's own opaque background is what guarantees the title's ink-on-orange contrast, independent of the photo underneath (round 2 finding #2) — see the dedicated worst-case contrast probe below. Touch has no :hover: a first tap reveals instead of navigating (chrome.ts initLithoTouch) — a second tap navigates. The title is never hover-exclusive: it's always in the accessible tree via the always-visible .cc-card__title below each image. Mobile edge-to-edge (fine-tuning point 3) uses the shipped, reusable .cc-cards--edge-bleed opt-in (components.css §13) — this demo overrides --cc-cards-bleed to cancel its own doc-site-only .ds-spec__stage padding, a real consumer overrides it to match its own container's gutter instead.