/* Abstract, compliance-safe vertical artwork — no client logos, no brand marks.
Each case gets a generated data-motif built from its own operating signature. */
/* Tints mirror components/core/Tag.jsx's vertical map, so tag dot and artwork always agree. */
const CA_TINT = { igaming:'#7C7CFF', forex:'#2FD5DA', fintech:'#3B6BFF', ecommerce:'#B45CF7', nutra:'#8BB4FF', ngo:'#7C5CFF' };
function CAigaming(c) {
const bars = [18,26,22,34,30,44,40,58,52,72,66,88];
return (<>
{[0,1,2,3].map(i => (
))}
{bars.map((h, i) => (
))}
>);
}
function CAforex(c) {
const candles = [[0,54,84,60,78],[1,44,76,50,70],[2,50,88,58,66],[3,38,70,44,62],[4,46,80,52,56],
[5,34,66,40,52],[6,40,74,46,44],[7,28,60,34,40],[8,34,68,40,34],[9,22,54,28,30],[10,28,62,34,24],[11,16,48,22,18]];
return (<>
{candles.map(([i, lo, hi, o, cl]) => {
const x = 44 + i * 29, top = 190 - hi, bot = 190 - lo;
const yo = 190 - Math.max(o, cl), hgt = Math.abs(o - cl) + 4;
return (
);
})}
>);
}
function CAcrypto(c) {
const nodes = [[64,70],[126,132],[112,44],[196,92],[184,170],[262,52],[276,138],[340,96],[348,178],[228,28]];
const links = [[0,1],[0,2],[1,3],[2,3],[1,4],[3,5],[3,6],[4,6],[5,7],[6,7],[6,8],[5,9],[2,9],[7,8]];
return (<>
{links.map(([a, b], i) => (
))}
{nodes.map(([x, y], i) => (
))}
>);
}
function CAecommerce(c) {
const cells = [];
for (let r = 0; r < 4; r++) for (let k = 0; k < 9; k++) cells.push([r, k]);
return (<>
{cells.map(([r, k]) => {
const on = (k * 3 + r * 5) % 7 < 3;
return ;
})}
>);
}
const CA_ART = { igaming:CAigaming, forex:CAforex, crypto:CAcrypto, ecommerce:CAecommerce };
function CaseArt({ id, v, label, height = 200 }) {
const c = CA_TINT[v] || CA_TINT[id] || '#7C5CFF';
const art = (CA_ART[id] || CAcrypto)(c);
return (
);
}
Object.assign(window, { CaseArt });