/* global React */
/* Realistic Kast card variants — pure SVG.
   Variants: k, solana, pengu, x, solana-illuma, bitcoin-black, pengu-black,
             kast-gold, bitcoin-gold, solana-gold, pengu-gold, solana-solid-gold */

const KAST_GLYPH = (
  // The signature K mark — angular, sharp, custom-drawn
  <path d="M 0 0 L 0 100 L 22 100 L 22 64 L 48 100 L 76 100 L 42 56 L 74 14 L 48 14 L 22 50 L 22 0 Z" />
);

const PENGUIN_GLYPH = ({ fill = "#3A6EE0", stroke = "#3A6EE0" }) => (
  <g fill="none" stroke={stroke} strokeWidth="1.6" strokeLinejoin="round" strokeLinecap="round">
    {/* body */}
    <ellipse cx="0" cy="2" rx="10" ry="13" fill={fill} stroke={stroke} />
    {/* belly */}
    <ellipse cx="0" cy="4" rx="6.5" ry="9" fill="#fff" stroke="none" />
    {/* head cap */}
    <path d="M -7 -6 Q 0 -14, 7 -6 Q 7 -2, 0 -2 Q -7 -2, -7 -6 Z" fill={fill} stroke="none" />
    {/* eyes */}
    <circle cx="-2.5" cy="-5" r="1" fill={stroke} stroke="none" />
    <circle cx="2.5" cy="-5" r="1" fill={stroke} stroke="none" />
    {/* beak */}
    <path d="M -1.6 -3 L 1.6 -3 L 0 -1 Z" fill="#E8A53A" stroke="none" />
    {/* feet */}
    <path d="M -4 14 L -2 16 L 0 14" fill="#E8A53A" stroke="#E8A53A" />
    <path d="M 4 14 L 2 16 L 0 14" fill="#E8A53A" stroke="#E8A53A" />
  </g>
);

// VISA wordmark (custom path-shaped — italicized geometric)
function VisaMark({ x = 260, y = 170, scale = 1, color = "#FFFFFF", tier = "Platinum" }) {
  return (
    <g transform={`translate(${x} ${y}) scale(${scale})`}>
      <text x="0" y="0" fontFamily="Geist, system-ui" fontWeight="800" fontStyle="italic"
            fontSize="22" fill={color} letterSpacing="-0.5">VISA</text>
      <text x="0.5" y="9" fontFamily="Geist, system-ui" fontWeight="400" fontStyle="italic"
            fontSize="6" fill={color} letterSpacing="0.3" opacity="0.85">{tier}</text>
    </g>
  );
}

// Reusable chip
function Chip({ x = 22, y = 72, scale = 1, tone = "gold" }) {
  const palette = tone === "gold"
    ? { a: "#E8C266", b: "#B8862E", c: "#8C6219" }
    : { a: "#C8C8CC", b: "#8B8B92", c: "#5C5C62" };
  return (
    <g transform={`translate(${x} ${y}) scale(${scale})`}>
      <defs>
        <linearGradient id={`chip-grad-${tone}`} x1="0" x2="1" y1="0" y2="1">
          <stop offset="0%" stopColor={palette.a}/>
          <stop offset="55%" stopColor={palette.b}/>
          <stop offset="100%" stopColor={palette.c}/>
        </linearGradient>
      </defs>
      <rect width="30" height="22" rx="3" fill={`url(#chip-grad-${tone})`} />
      <g stroke="rgba(0,0,0,0.4)" strokeWidth="0.4" fill="none">
        <line x1="0" y1="6" x2="11" y2="6" />
        <line x1="0" y1="11" x2="11" y2="11" />
        <line x1="0" y1="16" x2="11" y2="16" />
        <line x1="19" y1="6" x2="30" y2="6" />
        <line x1="19" y1="11" x2="30" y2="11" />
        <line x1="19" y1="16" x2="30" y2="16" />
        <rect x="11" y="2" width="8" height="18" rx="1" fill="rgba(0,0,0,0.15)"/>
      </g>
    </g>
  );
}

// Contactless / wave icon
function Wave({ x = 60, y = 78, color = "rgba(255,255,255,0.55)" }) {
  return (
    <g transform={`translate(${x} ${y})`} fill="none" stroke={color} strokeWidth="1.4" strokeLinecap="round">
      <path d="M 0 6 Q 2 4 4 6" />
      <path d="M -2 4 Q 2 0 6 4" />
      <path d="M -4 2 Q 2 -4 8 2" />
    </g>
  );
}

// ─── K CARD (Standard silver) ────────────────────────────────────────────
function KCardSilver() {
  return (
    <svg viewBox="0 0 320 200" className="kc">
      <defs>
        <linearGradient id="silver" x1="0" x2="1" y1="0" y2="1">
          <stop offset="0%" stopColor="#E4E4E8"/>
          <stop offset="30%" stopColor="#C7C7CD"/>
          <stop offset="55%" stopColor="#9C9CA4"/>
          <stop offset="80%" stopColor="#B8B8BE"/>
          <stop offset="100%" stopColor="#75757B"/>
        </linearGradient>
        <linearGradient id="silver-sheen" x1="0" x2="1" y1="0" y2="1">
          <stop offset="0%" stopColor="rgba(255,255,255,0.5)"/>
          <stop offset="40%" stopColor="rgba(255,255,255,0.1)"/>
          <stop offset="100%" stopColor="rgba(0,0,0,0.2)"/>
        </linearGradient>
        <pattern id="k-tile" x="0" y="0" width="44" height="44" patternUnits="userSpaceOnUse" patternTransform="rotate(0)">
          <g transform="translate(2 2) scale(0.32)" fill="rgba(255,255,255,0.45)" stroke="rgba(0,0,0,0.18)" strokeWidth="1">
            {KAST_GLYPH}
          </g>
        </pattern>
      </defs>
      <rect width="320" height="200" rx="14" fill="url(#silver)"/>
      <rect width="320" height="200" rx="14" fill="url(#k-tile)" opacity="0.55"/>
      <rect width="320" height="200" rx="14" fill="url(#silver-sheen)" opacity="0.35"/>
      {/* KAST wordmark top-left */}
      <g transform="translate(18 22)">
        <g transform="scale(0.13)" fill="#1A1A1F">{KAST_GLYPH}</g>
        <text x="14" y="11" fontFamily="Funnel Display, Geist" fontWeight="700" fontSize="11"
              fill="#1A1A1F" letterSpacing="0.04em">KAST</text>
      </g>
      <Chip tone="silver"/>
      <Wave color="rgba(20,20,28,0.55)"/>
      {/* Big embossed K outline center-right */}
      <g transform="translate(190 50) scale(1.0)" fill="none" stroke="rgba(255,255,255,0.65)" strokeWidth="1.4">
        <g transform="scale(0.95)">{KAST_GLYPH}</g>
      </g>
      <VisaMark x="252" y="172" color="#1A1A1F" tier="Platinum"/>
    </svg>
  );
}

// ─── X CARD (Premium black metal) ────────────────────────────────────────
function XCard() {
  return (
    <svg viewBox="0 0 320 200" className="kc">
      <defs>
        <radialGradient id="x-bg" cx="50%" cy="50%" r="80%">
          <stop offset="0%" stopColor="#2A2A30"/>
          <stop offset="60%" stopColor="#15151A"/>
          <stop offset="100%" stopColor="#06060A"/>
        </radialGradient>
        <linearGradient id="x-brush" x1="0" x2="1" y1="0.5" y2="0.5">
          <stop offset="0%" stopColor="rgba(255,255,255,0.04)"/>
          <stop offset="50%" stopColor="rgba(255,255,255,0.12)"/>
          <stop offset="100%" stopColor="rgba(255,255,255,0.02)"/>
        </linearGradient>
      </defs>
      <rect width="320" height="200" rx="14" fill="url(#x-bg)"/>
      {/* concentric K outlines forming the X Card signature pattern */}
      <g transform="translate(160 100)" fill="none" stroke="rgba(220,220,230,0.18)" strokeWidth="0.6">
        {[0.5, 0.65, 0.8, 0.95, 1.1, 1.25, 1.4, 1.55].map((s, i) => (
          <g key={i} transform={`translate(${-38*s} ${-50*s}) scale(${0.76*s})`}>
            {KAST_GLYPH}
          </g>
        ))}
      </g>
      {/* Brushed sheen overlay */}
      <rect width="320" height="200" rx="14" fill="url(#x-brush)"/>
      {/* Subtle brushed lines */}
      <g stroke="rgba(255,255,255,0.05)" strokeWidth="0.4">
        {Array.from({length: 50}).map((_,i) => (
          <line key={i} x1="0" y1={i*4} x2="320" y2={i*4 + 2}/>
        ))}
      </g>
      <Chip tone="silver"/>
      <Wave color="rgba(255,255,255,0.45)"/>
      <g transform="translate(18 22)">
        <g transform="scale(0.13)" fill="rgba(255,255,255,0.95)">{KAST_GLYPH}</g>
        <text x="14" y="11" fontFamily="Funnel Display, Geist" fontWeight="700" fontSize="11"
              fill="rgba(255,255,255,0.95)" letterSpacing="0.04em">KAST</text>
      </g>
      <VisaMark x="252" y="172" color="#fff" tier="Infinite"/>
    </svg>
  );
}

// ─── Solana Card (Standard — teal→purple chevrons) ───────────────────────
function SolanaCard() {
  return (
    <svg viewBox="0 0 320 200" className="kc">
      <defs>
        <linearGradient id="sol-bg" x1="0" x2="1" y1="0" y2="0">
          <stop offset="0%" stopColor="#0B0B12"/>
          <stop offset="40%" stopColor="#0F0F16"/>
          <stop offset="100%" stopColor="#16161D"/>
        </linearGradient>
        <linearGradient id="sol-chev" x1="0" x2="1" y1="1" y2="0">
          <stop offset="0%" stopColor="#19FB9B"/>
          <stop offset="55%" stopColor="#5C7CFF"/>
          <stop offset="100%" stopColor="#9945FF"/>
        </linearGradient>
      </defs>
      <rect width="320" height="200" rx="14" fill="url(#sol-bg)"/>
      {/* Layered chevron peaks fading to right */}
      <g transform="translate(120 0)">
        {[0,1,2,3,4,5,6,7].map(i => (
          <path key={i}
                d={`M ${20 + i*22} 200 L ${100 + i*16} 30 L ${180 + i*16} 200 Z`}
                fill="url(#sol-chev)"
                opacity={0.06 + i*0.07}/>
        ))}
      </g>
      {/* Solana wordmark top-left */}
      <g transform="translate(18 22)">
        <g transform="translate(0 1)" fill="url(#sol-chev)">
          <path d="M0 6 L7 0 L13 0 L6 6 Z"/>
          <path d="M0 11 L7 5 L13 5 L6 11 Z"/>
          <path d="M0 16 L7 10 L13 10 L6 16 Z"/>
        </g>
        <text x="17" y="7" fontFamily="Geist Mono" fontWeight="700" fontSize="6"
              fill="#E8E8EE" letterSpacing="0.12em">SOLANA</text>
        <text x="17" y="14" fontFamily="Geist Mono" fontWeight="700" fontSize="6"
              fill="#E8E8EE" letterSpacing="0.12em">CHAIN</text>
      </g>
      <Chip tone="silver"/>
      <Wave/>
      <VisaMark x="252" y="172" color="#fff" tier="Platinum"/>
    </svg>
  );
}

// ─── Solana Illuma Card (Premium black with illuminated S) ───────────────
function SolanaIllumaCard() {
  return (
    <svg viewBox="0 0 320 200" className="kc">
      <defs>
        <radialGradient id="ill-bg" cx="50%" cy="50%" r="60%">
          <stop offset="0%" stopColor="#22222A"/>
          <stop offset="100%" stopColor="#08080C"/>
        </radialGradient>
        <radialGradient id="ill-glow" cx="50%" cy="50%" r="50%">
          <stop offset="0%" stopColor="rgba(255,255,255,0.7)"/>
          <stop offset="50%" stopColor="rgba(120,180,255,0.18)"/>
          <stop offset="100%" stopColor="transparent"/>
        </radialGradient>
        <linearGradient id="ill-s" x1="0" x2="1" y1="0" y2="1">
          <stop offset="0%" stopColor="#FFFFFF"/>
          <stop offset="100%" stopColor="#D2D2DA"/>
        </linearGradient>
      </defs>
      <rect width="320" height="200" rx="14" fill="url(#ill-bg)"/>
      {/* radial halo */}
      <ellipse cx="160" cy="100" rx="120" ry="80" fill="url(#ill-glow)"/>
      {/* Big S logo centered */}
      <g transform="translate(160 100)" fill="url(#ill-s)">
        <path d="M -28 -24 L 24 -24 L 16 -16 L -36 -16 Z" filter="url(#ill-blur)"/>
        <path d="M -36 -4 L 16 -4 L 24 4 L -24 4 Z"/>
        <path d="M -24 16 L 28 16 L 20 24 L -32 24 Z"/>
        <path d="M -28 -24 L 24 -24 L 16 -16 L -36 -16 Z"/>
      </g>
      {/* sheen */}
      <rect width="320" height="200" rx="14" fill="url(#ill-glow)" opacity="0.3"/>
      <Chip tone="silver"/>
      <Wave/>
      <g transform="translate(18 22)">
        <g transform="scale(0.13)" fill="rgba(255,255,255,0.95)">{KAST_GLYPH}</g>
        <text x="14" y="11" fontFamily="Funnel Display" fontWeight="700" fontSize="11"
              fill="rgba(255,255,255,0.95)" letterSpacing="0.04em">KAST</text>
      </g>
      <VisaMark x="252" y="172" color="#fff" tier="Infinite"/>
    </svg>
  );
}

// ─── Bitcoin Black Card (Premium) ────────────────────────────────────────
function BitcoinBlackCard() {
  return (
    <svg viewBox="0 0 320 200" className="kc">
      <defs>
        <linearGradient id="btc-bg" x1="0" x2="1" y1="0" y2="1">
          <stop offset="0%" stopColor="#1B1B22"/>
          <stop offset="100%" stopColor="#07070B"/>
        </linearGradient>
        <linearGradient id="btc-b" x1="0" x2="1" y1="0" y2="1">
          <stop offset="0%" stopColor="#E6E6EC"/>
          <stop offset="100%" stopColor="#8E8E96"/>
        </linearGradient>
      </defs>
      <rect width="320" height="200" rx="14" fill="url(#btc-bg)"/>
      {/* concentric circles (radio rings) */}
      <g transform="translate(220 100)" fill="none" stroke="rgba(255,255,255,0.06)" strokeWidth="0.5">
        {[40,60,80,100,120,140].map(r => <circle key={r} r={r}/>)}
      </g>
      {/* Brushed lines */}
      <g stroke="rgba(255,255,255,0.04)" strokeWidth="0.3">
        {Array.from({length: 60}).map((_,i) => (
          <line key={i} x1="0" y1={i*3.4} x2="320" y2={i*3.4 + 1}/>
        ))}
      </g>
      {/* Big B logo */}
      <g transform="translate(220 100)" fill="url(#btc-b)">
        <path d="M -22 -36 L 12 -36 Q 28 -36 28 -22 Q 28 -10 18 -6 Q 32 -2 32 12 Q 32 36 8 36 L -22 36 Z
                 M -10 -24 L -10 -10 L 10 -10 Q 16 -10 16 -17 Q 16 -24 10 -24 Z
                 M -10 2 L -10 24 L 8 24 Q 18 24 18 13 Q 18 2 8 2 Z" />
        {/* vertical bar through B */}
        <rect x="-2" y="-44" width="4" height="12" rx="1"/>
        <rect x="-2" y="32" width="4" height="12" rx="1"/>
      </g>
      <Chip tone="silver"/>
      <Wave/>
      <g transform="translate(18 22)">
        <g transform="scale(0.13)" fill="rgba(255,255,255,0.95)">{KAST_GLYPH}</g>
        <text x="14" y="11" fontFamily="Funnel Display" fontWeight="700" fontSize="11"
              fill="rgba(255,255,255,0.95)" letterSpacing="0.04em">KAST</text>
      </g>
      <VisaMark x="252" y="172" color="#fff" tier="Infinite"/>
    </svg>
  );
}

// ─── Pengu Card (Standard — white with penguin pattern) ──────────────────
function PenguCard() {
  return (
    <svg viewBox="0 0 320 200" className="kc">
      <defs>
        <linearGradient id="pengu-bg" x1="0" x2="1" y1="0" y2="1">
          <stop offset="0%" stopColor="#EFF0F6"/>
          <stop offset="100%" stopColor="#D8DAE6"/>
        </linearGradient>
        <pattern id="pengu-tile" x="0" y="0" width="34" height="38" patternUnits="userSpaceOnUse">
          <g transform="translate(17 19) scale(0.62)" opacity="0.7">
            <PenguinGlyph fill="#FFFFFF" stroke="#3A6EE0"/>
          </g>
        </pattern>
      </defs>
      <rect width="320" height="200" rx="14" fill="url(#pengu-bg)"/>
      <rect width="320" height="200" rx="14" fill="url(#pengu-tile)" opacity="0.85"/>
      {/* Big pengu center-right */}
      <g transform="translate(220 110) scale(2.4)">
        <PenguinGlyph fill="#5A9BFF" stroke="#1E47B5"/>
      </g>
      <Chip tone="silver"/>
      <Wave color="rgba(20,30,80,0.55)"/>
      <g transform="translate(18 22)">
        <g transform="scale(0.13)" fill="#1E47B5">{KAST_GLYPH}</g>
        <text x="14" y="11" fontFamily="Funnel Display" fontWeight="700" fontSize="11"
              fill="#1E47B5" letterSpacing="0.04em">KAST</text>
      </g>
      <VisaMark x="252" y="172" color="#1E47B5" tier="Platinum"/>
    </svg>
  );
}

// Aliased component for use inside pattern (avoid recursion w/ JSX)
function PenguinGlyph(props) { return <PENGUIN_GLYPH_C {...props}/>; }
function PENGUIN_GLYPH_C({ fill = "#3A6EE0", stroke = "#3A6EE0" }) {
  return (
    <g fill="none" stroke={stroke} strokeWidth="1.6" strokeLinejoin="round" strokeLinecap="round">
      <ellipse cx="0" cy="2" rx="10" ry="13" fill={fill} stroke={stroke} />
      <ellipse cx="0" cy="4" rx="6.5" ry="9" fill="#fff" stroke="none" />
      <path d="M -7 -6 Q 0 -14, 7 -6 Q 7 -2, 0 -2 Q -7 -2, -7 -6 Z" fill={fill} stroke="none" />
      <circle cx="-2.5" cy="-5" r="1" fill={stroke} stroke="none" />
      <circle cx="2.5" cy="-5" r="1" fill={stroke} stroke="none" />
      <path d="M -1.6 -3 L 1.6 -3 L 0 -1 Z" fill="#E8A53A" stroke="none" />
      <path d="M -4 14 L -2 16 L 0 14" fill="#E8A53A" stroke="#E8A53A" />
      <path d="M 4 14 L 2 16 L 0 14" fill="#E8A53A" stroke="#E8A53A" />
    </g>
  );
}

// ─── Pengu Black Card (Premium) ──────────────────────────────────────────
function PenguBlackCard() {
  return (
    <svg viewBox="0 0 320 200" className="kc">
      <defs>
        <linearGradient id="pb-bg" x1="0" x2="1" y1="0" y2="1">
          <stop offset="0%" stopColor="#1A1A22"/>
          <stop offset="100%" stopColor="#07070B"/>
        </linearGradient>
        <pattern id="pb-tile" x="0" y="0" width="34" height="38" patternUnits="userSpaceOnUse">
          <g transform="translate(17 19) scale(0.62)" opacity="0.55">
            <PENGUIN_GLYPH_C fill="#2C2C36" stroke="#5C5C68"/>
          </g>
        </pattern>
      </defs>
      <rect width="320" height="200" rx="14" fill="url(#pb-bg)"/>
      <rect width="320" height="200" rx="14" fill="url(#pb-tile)"/>
      <g transform="translate(220 110) scale(2.4)">
        <PENGUIN_GLYPH_C fill="#3B3B45" stroke="#9C9CA8"/>
      </g>
      <Chip tone="silver"/>
      <Wave/>
      <g transform="translate(18 22)">
        <g transform="scale(0.13)" fill="rgba(255,255,255,0.95)">{KAST_GLYPH}</g>
        <text x="14" y="11" fontFamily="Funnel Display" fontWeight="700" fontSize="11"
              fill="rgba(255,255,255,0.95)" letterSpacing="0.04em">KAST</text>
      </g>
      <VisaMark x="252" y="172" color="#fff" tier="Infinite"/>
    </svg>
  );
}

// ─── Gold cards (Private tier) ───────────────────────────────────────────
function GoldCard({ logo = "k", solid = false }) {
  const bg = solid ? "#F0C24A" : null;
  return (
    <svg viewBox="0 0 320 200" className="kc">
      <defs>
        <linearGradient id={`gold-bg-${logo}-${solid}`} x1="0" x2="1" y1="0" y2="1">
          <stop offset="0%" stopColor="#FAE187"/>
          <stop offset="35%" stopColor="#E6BE5C"/>
          <stop offset="65%" stopColor="#B98823"/>
          <stop offset="100%" stopColor="#6B4815"/>
        </linearGradient>
        <linearGradient id={`gold-sheen-${logo}-${solid}`} x1="0" x2="1" y1="0" y2="1">
          <stop offset="0%" stopColor="rgba(255,255,255,0.55)"/>
          <stop offset="50%" stopColor="rgba(255,255,255,0.0)"/>
          <stop offset="100%" stopColor="rgba(0,0,0,0.25)"/>
        </linearGradient>
        <pattern id={`gold-tile-${logo}-${solid}`} x="0" y="0" width="40" height="40" patternUnits="userSpaceOnUse">
          <g transform="translate(2 2) scale(0.32)" fill="rgba(0,0,0,0.10)">
            {KAST_GLYPH}
          </g>
        </pattern>
      </defs>
      <rect width="320" height="200" rx="14" fill={bg || `url(#gold-bg-${logo}-${solid})`}/>
      {!solid && <rect width="320" height="200" rx="14" fill={`url(#gold-tile-${logo}-${solid})`} opacity="0.7"/>}
      <rect width="320" height="200" rx="14" fill={`url(#gold-sheen-${logo}-${solid})`} opacity="0.5"/>
      {/* center glyph */}
      <g transform="translate(160 100)" fill="rgba(0,0,0,0.65)">
        {logo === "k" && <g transform="translate(-38 -50) scale(0.95)">{KAST_GLYPH}</g>}
        {logo === "b" && (
          <g transform="translate(0 0)">
            <path d="M -22 -36 L 12 -36 Q 28 -36 28 -22 Q 28 -10 18 -6 Q 32 -2 32 12 Q 32 36 8 36 L -22 36 Z
                     M -10 -24 L -10 -10 L 10 -10 Q 16 -10 16 -17 Q 16 -24 10 -24 Z
                     M -10 2 L -10 24 L 8 24 Q 18 24 18 13 Q 18 2 8 2 Z" />
            <rect x="-2" y="-44" width="4" height="12" rx="1"/>
            <rect x="-2" y="32" width="4" height="12" rx="1"/>
          </g>
        )}
        {logo === "s" && (
          <g>
            <path d="M -28 -24 L 24 -24 L 16 -16 L -36 -16 Z"/>
            <path d="M -36 -4 L 16 -4 L 24 4 L -24 4 Z"/>
            <path d="M -24 16 L 28 16 L 20 24 L -32 24 Z"/>
          </g>
        )}
        {logo === "p" && (
          <g transform="scale(2.5)"><PENGUIN_GLYPH_C fill="rgba(0,0,0,0.55)" stroke="rgba(0,0,0,0.7)"/></g>
        )}
      </g>
      <Chip tone="gold"/>
      <Wave color="rgba(0,0,0,0.5)"/>
      <g transform="translate(18 22)">
        <g transform="scale(0.13)" fill="rgba(0,0,0,0.85)">{KAST_GLYPH}</g>
        <text x="14" y="11" fontFamily="Funnel Display" fontWeight="700" fontSize="11"
              fill="rgba(0,0,0,0.85)" letterSpacing="0.04em">KAST</text>
      </g>
      {solid && (
        <text x="160" y="186" textAnchor="middle" fontFamily="Geist Mono" fontWeight="700"
              fontSize="8" fill="rgba(0,0,0,0.6)" letterSpacing="0.3em">SOLID GOLD · INVITE ONLY</text>
      )}
      <VisaMark x="252" y="172" color="rgba(0,0,0,0.85)" tier="Infinite"/>
    </svg>
  );
}

// ─── Dispatcher ──────────────────────────────────────────────────────────
function KastCard({ variant }) {
  switch (variant) {
    case "k":               return <KCardSilver/>;
    case "x":               return <XCard/>;
    case "solana":          return <SolanaCard/>;
    case "solana-illuma":   return <SolanaIllumaCard/>;
    case "bitcoin-standard":return <BitcoinBlackCard/>; // standard variant reuses dark style
    case "bitcoin-black":   return <BitcoinBlackCard/>;
    case "pengu":           return <PenguCard/>;
    case "pengu-black":     return <PenguBlackCard/>;
    case "kast-gold":       return <GoldCard logo="k"/>;
    case "bitcoin-gold":    return <GoldCard logo="b"/>;
    case "solana-gold":     return <GoldCard logo="s"/>;
    case "pengu-gold":      return <GoldCard logo="p"/>;
    case "solana-solid-gold":return <GoldCard logo="s" solid/>;
    default:                return <KCardSilver/>;
  }
}

Object.assign(window, { KastCard });
