// =============================================================================
// CARD ART · SAWBLADE GAMES — 10 archetypes + 1 mythic
// =============================================================================
const SAWBLADE_ART = {
// ── WANTED DEAD OR WILD — wanted poster + revolvers ──────────────────
gun: (c) =>
{/* Wanted poster frame */}
{/* "WANTED" text */}
WANTED
{/* Face silhouette */}
{/* Cowboy hat */}
{/* Bandit mask */}
{/* "DEAD OR ALIVE" */}
DEAD OR WILD
{/* Reward stars */}
{/* Crossed revolvers below */}
,
// ── THE BANDIT — masked thief + money bag ────────────────────────────
bandit: (c) =>
{/* Spotlight */}
{/* Cap/beret */}
{/* Striped shirt */}
{/* Face */}
{/* Domino mask */}
{/* Smirk */}
{/* Money bag */}
$
,
// ── STACK UP — tower of chips ────────────────────────────────────────
stack: (c) =>
{/* Floor line */}
{/* Chip stack — biggest first */}
{[
{x: 22, y: 76, w: 56, h: 8, alpha: 0.3},
{x: 26, y: 68, w: 48, h: 8, alpha: 0.25},
{x: 30, y: 60, w: 40, h: 8, alpha: 0.22},
{x: 28, y: 52, w: 44, h: 8, alpha: 0.2},
{x: 32, y: 44, w: 36, h: 8, alpha: 0.18},
{x: 30, y: 36, w: 40, h: 8, alpha: 0.16},
{x: 36, y: 28, w: 28, h: 8, alpha: 0.14},
{x: 38, y: 20, w: 24, h: 8, alpha: 0.12},
].map((r, i) => (
))}
{/* Chip $ on side stack */}
$$$
x100
{/* Light reflection */}
{/* Coins around base */}
,
// ── HOP & POP — bunny jumping + carrots ──────────────────────────────
bunny: (c) =>
{/* Ground */}
{/* Bouncing arc trail */}
{/* Bunny body */}
{/* Ears (tall) */}
{/* Face */}
{/* Feet (in motion) */}
{/* Carrot */}
{/* Speed lines */}
,
// ── CASH FRENZY — money rain + briefcase ─────────────────────────────
cash: (c) =>
{/* Falling cash bills */}
{[
{x: 14, y: 14, r: -15},
{x: 30, y: 22, r: 10},
{x: 76, y: 18, r: -8},
{x: 60, y: 28, r: 20},
{x: 86, y: 36, r: -25},
].map((b, i) => (
))}
{/* Briefcase */}
{/* Handle */}
{/* Lock */}
{/* Lines */}
{/* Hinges */}
{/* Cash stacks visible */}
$$
$$
$$
,
// ── RIPS CITY — cyberpunk skyline ────────────────────────────────────
cyber: (c) =>
{/* Sky grid (futuristic horizon) */}
{[0, 1, 2, 3].map(i => (
))}
{/* Horizon */}
{/* Buildings */}
{/* Antenna on tallest */}
{/* Windows */}
{[{b:8,c:14}, {b:24,c:10}, {b:36,c:12}, {b:50,c:16}, {b:68,c:10}, {b:80,c:12}].map((b, i) => (
{[1,2,3,4,5,6,7].map(r =>
[0,1,2].map(col => (
0.5 ? 0.6 : 0.2}/>
))
)}
))}
{/* Neon sign */}
RIPS
,
// ── CHAOS GANG — graffiti + spray can ────────────────────────────────
chaos: (c) =>
{/* Brick wall */}
{/* Brick lines */}
{[20, 32, 44, 56, 68, 80].map((y, i) => (
{i % 2 === 0
? <>
>
: <>
>
}
))}
{/* Graffiti splatter */}
{/* Tag text */}
CHAOS
{/* Spray can */}
{/* Spray cloud */}
,
// ── BEAM TEAM — astronaut + laser beam ───────────────────────────────
beam: (c) =>
{/* Stars */}
{/* Planet behind */}
{/* Astronaut suit */}
{/* Helmet visor */}
{/* Body */}
{/* Backpack */}
{/* Antenna */}
{/* Laser blaster */}
{/* Laser beam */}
{/* Boots */}
,
// ── ITERA — 4-phase nested circles ───────────────────────────────────
itero: (c) =>
{/* Outer ring with notches */}
{[0, 45, 90, 135, 180, 225, 270, 315].map(a => {
const x1 = 50 + 38 * Math.cos(a * Math.PI/180);
const y1 = 50 + 38 * Math.sin(a * Math.PI/180);
const x2 = 50 + 46 * Math.cos(a * Math.PI/180);
const y2 = 50 + 46 * Math.sin(a * Math.PI/180);
return ;
})}
{/* 4 quadrants colored */}
{/* Cross dividers */}
{/* Inner rings */}
{/* Center */}
{/* Quadrant labels */}
x2
x5
x10
x25
,
// ── AZTEC NUDGE — pyramid + sun god ──────────────────────────────────
aztec: (c) =>
{/* Sun behind */}
{[0, 30, 60, 90, 120, 150, 180].map(a => {
const x1 = 50 + 11 * Math.cos((a-180) * Math.PI/180);
const y1 = 22 + 11 * Math.sin((a-180) * Math.PI/180);
const x2 = 50 + 15 * Math.cos((a-180) * Math.PI/180);
const y2 = 22 + 15 * Math.sin((a-180) * Math.PI/180);
return ;
})}
{/* Step pyramid */}
{/* Steps detail */}
{/* Doorway */}
{/* Sun mask in doorway */}
{/* Glyphs on side */}
{/* Ground */}
,
// ── MYTHIC: NOON DUEL — sun + dueling pistols ────────────────────────
'gun-mythic': (c) =>
{/* Sun rays — many */}
{[0, 22.5, 45, 67.5, 90, 112.5, 135, 157.5, 180, 202.5, 225, 247.5, 270, 292.5, 315, 337.5].map(a => {
const x = 50 + 38 * Math.cos(a * Math.PI/180);
const y = 50 + 38 * Math.sin(a * Math.PI/180);
return ;
})}
{/* Center sun disk */}
{/* Crossed pistols on top */}
{/* Bullet hole */}
,
};
window.SAWBLADE_ART = SAWBLADE_ART;