// Full-card cartoon royal portraits in the "Fun Rummy" reference style.
// - Single orientation (NOT mirrored top/bottom)
// - One full-bleed illustration, chunky shapes, bold colors
// - Vertical rank/suit banner down the LEFT side (so it reads when fanned)
// - No inner "card-in-card" frame
// - Characters have expressive cartoon faces with subtle humor

(() => {
  // Palette tuned per suit
  function palette(suit) {
    // gown/tunic primary, hat, accents, skin — keep recognizable to suit color
    const red    = { bg1: '#fff4e6', bg2: '#ffe3c2', gown: '#d13a4c', hat: '#2a1a3a', gold: '#f5c451', skin: '#f8d3b0', ink: '#2a1525', stripe: '#b22a3c', cheek: '#ef9a9a' };
    const black  = { bg1: '#eef1f8', bg2: '#d7dde8', gown: '#2a2d3d', hat: '#8a2430', gold: '#e7b43b', skin: '#f8d3b0', ink: '#141422', stripe: '#4a4f66', cheek: '#e8a69a' };
    return (suit === '♥' || suit === '♦') ? red : black;
  }

  // Side banner that runs down the left edge with the rank + suit
  function SideBanner({ rank, suit, color }) {
    return (
      <g>
        <rect x="0" y="0" width="22" height="160" fill={color.gold}/>
        <rect x="0" y="0" width="22" height="160" fill="url(#bannerDots)" opacity=".35"/>
        <rect x="19" y="0" width="3" height="160" fill={color.ink} opacity=".25"/>
        <text x="11" y="28" textAnchor="middle" fontSize="18" fontFamily="'Fredoka','Baloo 2',Georgia,serif" fontWeight="800" fill={color.ink}>{rank}</text>
        <text x="11" y="46" textAnchor="middle" fontSize="14" fill={color.gown} fontWeight="700">{suit}</text>
        <text x="11" y="132" textAnchor="middle" fontSize="14" fill={color.gown} fontWeight="700" transform="rotate(180 11 132)">{suit}</text>
        <text x="11" y="152" textAnchor="middle" fontSize="18" fontFamily="'Fredoka','Baloo 2',Georgia,serif" fontWeight="800" fill={color.ink} transform="rotate(180 11 148)">{rank}</text>
      </g>
    );
  }

  // Shared defs (halftone dots)
  function Defs() {
    return (
      <defs>
        <pattern id="bannerDots" x="0" y="0" width="6" height="6" patternUnits="userSpaceOnUse">
          <circle cx="3" cy="3" r=".9" fill="#fff" opacity=".7"/>
        </pattern>
        <pattern id="halftone" x="0" y="0" width="8" height="8" patternUnits="userSpaceOnUse">
          <circle cx="4" cy="4" r="1.2" fill="#fff" opacity=".35"/>
        </pattern>
      </defs>
    );
  }

  // ---------- JACK ----------
  // Young knave: smirk, pageboy cap with feather, holding a playing card
  function JackFace({ suit }) {
    const c = palette(suit);
    return (
      <svg viewBox="0 0 100 160" xmlns="http://www.w3.org/2000/svg" className="char-face char-jack" preserveAspectRatio="xMidYMid meet">
        <Defs/>
        {/* Background (warm cream gradient) */}
        <rect x="0" y="0" width="100" height="160" fill={c.bg1}/>
        <rect x="0" y="0" width="100" height="160" fill="url(#halftone)" opacity=".25"/>
        <circle cx="70" cy="58" r="34" fill={c.bg2} opacity=".7"/>
        {/* Shoulders/tunic */}
        <path d="M 20 150 Q 28 110 42 104 L 60 104 Q 76 110 84 150 Z" fill={c.gown}/>
        <path d="M 42 104 L 50 120 L 58 104" fill={c.bg1}/>
        {/* Tunic buttons */}
        <circle cx="50" cy="128" r="2.5" fill={c.gold}/>
        <circle cx="50" cy="138" r="2.5" fill={c.gold}/>
        {/* Ruffle collar */}
        <path d="M 34 104 Q 50 112 66 104 L 64 108 Q 50 114 36 108 Z" fill="#fff" stroke={c.ink} strokeWidth=".6"/>
        {/* Neck */}
        <rect x="46" y="96" width="8" height="10" fill={c.skin}/>
        {/* Head */}
        <ellipse cx="52" cy="74" rx="22" ry="24" fill={c.skin}/>
        {/* Hair peeking below cap */}
        <path d="M 32 70 Q 30 80 34 90 L 40 86 Q 36 78 38 70 Z" fill={c.hat}/>
        <path d="M 72 70 Q 74 80 70 88 L 66 84 Q 68 76 68 70 Z" fill={c.hat}/>
        {/* Cap (pageboy with feather) */}
        <path d="M 30 60 Q 36 42 56 42 Q 74 42 78 58 L 76 64 Q 72 60 52 58 Q 36 60 32 64 Z" fill={c.hat}/>
        <ellipse cx="54" cy="50" rx="18" ry="6" fill={c.ink} opacity=".3"/>
        <rect x="30" y="62" width="48" height="4" fill={c.gold}/>
        <circle cx="40" cy="64" r="1.5" fill={c.gown}/>
        <circle cx="54" cy="64" r="1.5" fill={c.gown}/>
        <circle cx="68" cy="64" r="1.5" fill={c.gown}/>
        {/* Feather */}
        <path d="M 78 50 Q 88 36 82 26 Q 72 34 74 48 Z" fill={c.gown}/>
        <path d="M 78 50 Q 82 42 80 32" stroke={c.gold} strokeWidth="1" fill="none"/>
        {/* Eyebrows (asymmetric for smirk) */}
        <path d="M 40 72 Q 44 70 48 72" stroke={c.ink} strokeWidth="1.8" fill="none" strokeLinecap="round"/>
        <path d="M 58 70 Q 62 68 66 72" stroke={c.ink} strokeWidth="1.8" fill="none" strokeLinecap="round"/>
        {/* Eyes */}
        <ellipse cx="44" cy="76" rx="2.6" ry="3" fill="#fff"/>
        <ellipse cx="62" cy="76" rx="2.6" ry="3" fill="#fff"/>
        <circle cx="45" cy="76.5" r="1.6" fill={c.ink}/>
        <circle cx="63" cy="76.5" r="1.6" fill={c.ink}/>
        <circle cx="45.6" cy="76" r=".5" fill="#fff"/>
        <circle cx="63.6" cy="76" r=".5" fill="#fff"/>
        {/* Nose */}
        <path d="M 52 80 Q 50 84 52 87 Q 54 87 54 84 Z" fill={c.cheek} opacity=".7"/>
        {/* Mouth — smirk */}
        <path d="M 44 92 Q 52 96 60 91" stroke={c.ink} strokeWidth="1.8" fill="none" strokeLinecap="round"/>
        <path d="M 58 91.5 L 62 89" stroke={c.ink} strokeWidth="1.2" strokeLinecap="round"/>
        {/* Cheek blush */}
        <ellipse cx="36" cy="84" rx="3" ry="2" fill={c.cheek} opacity=".5"/>
        <ellipse cx="68" cy="84" rx="3" ry="2" fill={c.cheek} opacity=".5"/>
        {/* Holding a mini card */}
        <g transform="translate(72 120) rotate(12)">
          <rect x="0" y="0" width="14" height="20" rx="2" fill="#fff" stroke={c.ink} strokeWidth=".7"/>
          <text x="3" y="8" fontSize="6" fontWeight="700" fill={c.gown}>A</text>
          <text x="3" y="14" fontSize="5" fill={c.gown}>{suit}</text>
        </g>
        <SideBanner rank="J" suit={suit} color={c}/>
      </svg>
    );
  }

  // ---------- QUEEN ----------
  // Regal smile, crown with jewel, long hair, holding a rose
  function QueenFace({ suit }) {
    const c = palette(suit);
    return (
      <svg viewBox="0 0 100 160" xmlns="http://www.w3.org/2000/svg" className="char-face char-queen" preserveAspectRatio="xMidYMid meet">
        <Defs/>
        <rect x="0" y="0" width="100" height="160" fill={c.bg1}/>
        <rect x="0" y="0" width="100" height="160" fill="url(#halftone)" opacity=".25"/>
        <circle cx="56" cy="60" r="36" fill={c.bg2} opacity=".7"/>
        {/* Gown */}
        <path d="M 18 150 Q 24 106 42 102 L 62 102 Q 82 106 86 150 Z" fill={c.gown}/>
        {/* Gown decorative trim */}
        <path d="M 28 148 Q 52 138 76 148" stroke={c.gold} strokeWidth="2" fill="none"/>
        <path d="M 26 140 L 32 146 L 38 140 L 44 146 L 50 140 L 56 146 L 62 140 L 68 146 L 74 140 L 80 146" stroke={c.gold} strokeWidth="1.2" fill="none"/>
        {/* Neckline pendant */}
        <path d="M 44 104 Q 52 112 60 104" fill="none" stroke="#fff" strokeWidth="1"/>
        <circle cx="52" cy="112" r="3" fill={c.gold}/>
        <circle cx="52" cy="112" r="1.5" fill={c.gown}/>
        {/* Neck */}
        <rect x="48" y="96" width="8" height="8" fill={c.skin}/>
        {/* Long hair behind head */}
        <path d="M 28 70 Q 22 100 30 120 L 40 116 Q 34 96 38 72 Z" fill={c.hat}/>
        <path d="M 76 70 Q 82 100 74 120 L 64 116 Q 70 96 66 72 Z" fill={c.hat}/>
        {/* Head */}
        <ellipse cx="52" cy="72" rx="22" ry="24" fill={c.skin}/>
        {/* Hair bangs */}
        <path d="M 32 60 Q 52 50 72 60 L 70 66 Q 52 58 34 66 Z" fill={c.hat}/>
        {/* Crown */}
        <path d="M 30 54 L 36 40 L 44 50 L 52 36 L 60 50 L 68 40 L 74 54 L 72 60 L 32 60 Z"
              fill={c.gold} stroke={c.ink} strokeWidth=".8"/>
        <circle cx="52" cy="42" r="2.5" fill={c.gown} stroke={c.ink} strokeWidth=".4"/>
        <circle cx="40" cy="50" r="1.4" fill={c.gown}/>
        <circle cx="64" cy="50" r="1.4" fill={c.gown}/>
        <rect x="32" y="58" width="40" height="2" fill={c.ink} opacity=".6"/>
        {/* Eyelashes / eyes */}
        <path d="M 38 70 Q 44 67 48 70" stroke={c.ink} strokeWidth="1.6" fill="none" strokeLinecap="round"/>
        <path d="M 56 70 Q 60 67 66 70" stroke={c.ink} strokeWidth="1.6" fill="none" strokeLinecap="round"/>
        <ellipse cx="43" cy="74" rx="2.6" ry="3" fill="#fff"/>
        <ellipse cx="61" cy="74" rx="2.6" ry="3" fill="#fff"/>
        <circle cx="43.5" cy="74.5" r="1.6" fill={c.ink}/>
        <circle cx="61.5" cy="74.5" r="1.6" fill={c.ink}/>
        <circle cx="44" cy="74" r=".5" fill="#fff"/>
        <circle cx="62" cy="74" r=".5" fill="#fff"/>
        {/* Long lashes */}
        <path d="M 39 72 L 37 74 M 47 72 L 49 74" stroke={c.ink} strokeWidth="1" strokeLinecap="round"/>
        <path d="M 57 72 L 55 74 M 65 72 L 67 74" stroke={c.ink} strokeWidth="1" strokeLinecap="round"/>
        {/* Blush */}
        <ellipse cx="36" cy="82" rx="3.5" ry="2" fill={c.cheek} opacity=".55"/>
        <ellipse cx="68" cy="82" rx="3.5" ry="2" fill={c.cheek} opacity=".55"/>
        {/* Nose */}
        <path d="M 52 80 Q 50 84 52 86 Q 54 86 54 84 Z" fill={c.cheek} opacity=".6"/>
        {/* Soft smile */}
        <path d="M 45 90 Q 52 94 59 90" stroke={c.ink} strokeWidth="1.6" fill="none" strokeLinecap="round"/>
        <path d="M 45 91 Q 52 94 59 91 Q 55 93 52 93 Q 49 93 45 91 Z" fill={c.gown} opacity=".7"/>
        {/* Rose (held) */}
        <g transform="translate(78 118)">
          <circle cx="0" cy="0" r="5" fill={c.gown}/>
          <circle cx="0" cy="0" r="2.5" fill={c.gold}/>
          <path d="M -2 5 Q -4 12 2 14" stroke="#2a5a2a" strokeWidth="1.4" fill="none"/>
          <path d="M -3 9 Q -6 10 -5 13" stroke="#2a5a2a" strokeWidth="1.2" fill="none"/>
        </g>
        <SideBanner rank="Q" suit={suit} color={c}/>
      </svg>
    );
  }

  // ---------- KING ----------
  // Big beard, ornate crown, stern but kindly, holding a scepter
  function KingFace({ suit }) {
    const c = palette(suit);
    return (
      <svg viewBox="0 0 100 160" xmlns="http://www.w3.org/2000/svg" className="char-face char-king" preserveAspectRatio="xMidYMid meet">
        <Defs/>
        <rect x="0" y="0" width="100" height="160" fill={c.bg1}/>
        <rect x="0" y="0" width="100" height="160" fill="url(#halftone)" opacity=".25"/>
        <circle cx="56" cy="64" r="38" fill={c.bg2} opacity=".7"/>
        {/* Robe */}
        <path d="M 16 150 Q 22 108 42 104 L 62 104 Q 82 108 88 150 Z" fill={c.gown}/>
        {/* Ermine trim (white with black spots) */}
        <path d="M 22 150 Q 24 130 34 126 L 42 126 L 42 150 Z" fill="#fff"/>
        <path d="M 58 150 L 58 126 L 66 126 Q 76 130 78 150 Z" fill="#fff"/>
        <circle cx="28" cy="134" r="1.3" fill={c.ink}/>
        <circle cx="34" cy="142" r="1.3" fill={c.ink}/>
        <circle cx="66" cy="138" r="1.3" fill={c.ink}/>
        <circle cx="72" cy="146" r="1.3" fill={c.ink}/>
        {/* Medallion */}
        <circle cx="52" cy="120" r="6" fill={c.gold} stroke={c.ink} strokeWidth=".8"/>
        <path d="M 49 120 L 52 123 L 55 120 L 52 117 Z" fill={c.gown}/>
        {/* Neck (mostly hidden by beard) */}
        <rect x="48" y="98" width="8" height="8" fill={c.skin}/>
        {/* Sideburns + back hair */}
        <path d="M 28 72 Q 24 96 34 108 L 42 106 Q 36 94 36 76 Z" fill={c.hat}/>
        <path d="M 76 72 Q 80 96 70 108 L 62 106 Q 68 94 68 76 Z" fill={c.hat}/>
        {/* Head */}
        <ellipse cx="52" cy="72" rx="22" ry="22" fill={c.skin}/>
        {/* Crown — tall and regal */}
        <path d="M 28 54 L 32 34 L 40 48 L 46 30 L 52 44 L 58 30 L 64 48 L 72 34 L 76 54 L 74 62 L 30 62 Z"
              fill={c.gold} stroke={c.ink} strokeWidth=".8"/>
        <path d="M 30 60 L 74 60 L 74 64 L 30 64 Z" fill={c.gown}/>
        <circle cx="52" cy="38" r="2.8" fill={c.gown} stroke={c.ink} strokeWidth=".5"/>
        <circle cx="40" cy="46" r="1.6" fill={c.gown}/>
        <circle cx="64" cy="46" r="1.6" fill={c.gown}/>
        <path d="M 34 62 L 70 62" stroke={c.ink} strokeWidth=".6"/>
        <circle cx="40" cy="63" r="1" fill="#fff"/>
        <circle cx="52" cy="63" r="1" fill="#fff"/>
        <circle cx="64" cy="63" r="1" fill="#fff"/>
        {/* Bushy brows */}
        <path d="M 38 70 Q 44 66 50 70" stroke={c.hat} strokeWidth="3" fill="none" strokeLinecap="round"/>
        <path d="M 54 70 Q 60 66 66 70" stroke={c.hat} strokeWidth="3" fill="none" strokeLinecap="round"/>
        {/* Eyes */}
        <ellipse cx="44" cy="76" rx="2.4" ry="2.8" fill="#fff"/>
        <ellipse cx="60" cy="76" rx="2.4" ry="2.8" fill="#fff"/>
        <circle cx="44.5" cy="76.5" r="1.5" fill={c.ink}/>
        <circle cx="60.5" cy="76.5" r="1.5" fill={c.ink}/>
        <circle cx="45" cy="76" r=".5" fill="#fff"/>
        <circle cx="61" cy="76" r=".5" fill="#fff"/>
        {/* Nose (prominent) */}
        <path d="M 52 80 Q 48 86 52 90 Q 56 88 54 84 Z" fill={c.cheek} opacity=".7"/>
        {/* Mustache — big curled */}
        <path d="M 36 88 Q 40 86 46 90 Q 52 93 58 90 Q 64 86 68 88 Q 64 94 58 94 Q 52 96 46 94 Q 40 94 36 88 Z"
              fill={c.hat}/>
        <path d="M 36 88 Q 34 91 36 94" stroke={c.hat} strokeWidth="1.5" fill="none"/>
        <path d="M 68 88 Q 70 91 68 94" stroke={c.hat} strokeWidth="1.5" fill="none"/>
        {/* Beard — large, reaches collar */}
        <path d="M 32 92 Q 30 108 40 114 Q 52 118 64 114 Q 74 108 72 92 Q 70 106 64 112 Q 52 116 40 112 Q 34 106 32 92 Z"
              fill={c.hat}/>
        <path d="M 42 110 Q 52 112 62 110 L 58 116 Q 52 117 46 116 Z" fill={c.hat}/>
        {/* Mouth inside beard */}
        <path d="M 46 98 Q 52 100 58 98" stroke="#3a0000" strokeWidth="1.2" fill="none" strokeLinecap="round"/>
        {/* Cheek blush */}
        <ellipse cx="38" cy="84" rx="2.8" ry="1.6" fill={c.cheek} opacity=".5"/>
        <ellipse cx="66" cy="84" rx="2.8" ry="1.6" fill={c.cheek} opacity=".5"/>
        {/* Scepter */}
        <g transform="translate(80 110) rotate(8)">
          <rect x="-1" y="-4" width="2" height="34" fill={c.gold}/>
          <circle cx="0" cy="-6" r="4" fill={c.gown} stroke={c.ink} strokeWidth=".6"/>
          <path d="M -2 -8 L 0 -12 L 2 -8" fill={c.gold}/>
        </g>
        <SideBanner rank="K" suit={suit} color={c}/>
      </svg>
    );
  }

  // ---------- JOKER ----------
  // Classic jester, vertical full-card — cap & bells, big grin, multi-color body
  function JokerFace() {
    const c = {
      bg1: '#fff7e6', bg2: '#ffe3b0',
      red: '#d13a4c', blue: '#2a4a9a', gold: '#f5c451',
      black: '#1a1420', skin: '#f8d3b0', cheek: '#ef9a9a'
    };
    return (
      <svg viewBox="0 0 100 160" xmlns="http://www.w3.org/2000/svg" className="char-face char-joker" preserveAspectRatio="xMidYMid meet">
        <defs>
          <pattern id="jokerDots" x="0" y="0" width="8" height="8" patternUnits="userSpaceOnUse">
            <circle cx="4" cy="4" r="1.6" fill="#fff" opacity=".35"/>
          </pattern>
        </defs>
        {/* Warm yellow background with dots */}
        <rect x="0" y="0" width="100" height="160" fill={c.bg1}/>
        <rect x="0" y="0" width="100" height="160" fill={c.gold} opacity=".25"/>
        <rect x="0" y="0" width="100" height="160" fill="url(#jokerDots)"/>
        {/* Body — harlequin diamond pattern */}
        <path d="M 22 150 Q 28 108 42 100 L 62 100 Q 76 108 82 150 Z" fill={c.red}/>
        <path d="M 22 150 Q 28 108 42 100 L 52 100 L 52 150 Z" fill={c.blue}/>
        {/* Diamond accents */}
        <path d="M 34 120 L 38 126 L 34 132 L 30 126 Z" fill={c.gold} opacity=".85"/>
        <path d="M 66 130 L 70 136 L 66 142 L 62 136 Z" fill={c.gold} opacity=".85"/>
        <path d="M 50 130 L 54 136 L 50 142 L 46 136 Z" fill={c.gold} opacity=".7"/>
        {/* Big ruffle collar */}
        <path d="M 22 100 Q 32 114 52 108 Q 72 114 82 100 L 78 116 Q 68 122 52 118 Q 36 122 26 116 Z"
              fill="#fff" stroke={c.black} strokeWidth=".8"/>
        <path d="M 30 112 L 34 108 M 42 116 L 46 110 M 52 118 L 52 110 M 58 116 L 62 110 M 70 112 L 74 108"
              stroke={c.black} strokeWidth=".7" fill="none"/>
        {/* Neck */}
        <rect x="48" y="94" width="8" height="8" fill={c.skin}/>
        {/* Head */}
        <ellipse cx="52" cy="70" rx="22" ry="22" fill={c.skin}/>
        {/* Jester cap — 3-pointed */}
        <path d="M 28 56 Q 30 40 52 40 Q 74 40 76 56 L 74 62 L 30 62 Z" fill={c.red}/>
        <path d="M 28 56 Q 36 44 52 46 L 52 62 L 30 62 Z" fill={c.blue}/>
        <path d="M 28 56 L 18 30 L 34 46 Z" fill={c.blue}/>
        <path d="M 52 40 L 50 22 L 60 42 Z" fill={c.red}/>
        <path d="M 76 56 L 86 32 L 72 46 Z" fill={c.red}/>
        {/* Cap rim */}
        <rect x="28" y="60" width="48" height="5" fill={c.gold}/>
        <circle cx="34" cy="62.5" r="1.2" fill={c.black}/>
        <circle cx="52" cy="62.5" r="1.2" fill={c.black}/>
        <circle cx="70" cy="62.5" r="1.2" fill={c.black}/>
        {/* Bells on cap points */}
        <circle cx="18" cy="30" r="3.5" fill={c.gold} stroke={c.black} strokeWidth=".6"/>
        <circle cx="17" cy="29" r=".8" fill={c.black}/>
        <circle cx="50" cy="22" r="3.5" fill={c.gold} stroke={c.black} strokeWidth=".6"/>
        <circle cx="49" cy="21" r=".8" fill={c.black}/>
        <circle cx="86" cy="32" r="3.5" fill={c.gold} stroke={c.black} strokeWidth=".6"/>
        <circle cx="85" cy="31" r=".8" fill={c.black}/>
        {/* Eyebrows — raised, playful */}
        <path d="M 38 66 Q 44 62 48 66" stroke={c.black} strokeWidth="2" fill="none" strokeLinecap="round"/>
        <path d="M 56 66 Q 60 62 66 66" stroke={c.black} strokeWidth="2" fill="none" strokeLinecap="round"/>
        {/* Eyes — big and round */}
        <ellipse cx="43" cy="72" rx="3.2" ry="3.6" fill="#fff"/>
        <ellipse cx="61" cy="72" rx="3.2" ry="3.6" fill="#fff"/>
        <circle cx="44" cy="73" r="2" fill={c.black}/>
        <circle cx="62" cy="73" r="2" fill={c.black}/>
        <circle cx="44.8" cy="72.2" r=".7" fill="#fff"/>
        <circle cx="62.8" cy="72.2" r=".7" fill="#fff"/>
        {/* Bulbous red nose */}
        <circle cx="52" cy="81" r="3.6" fill={c.red} stroke={c.black} strokeWidth=".5"/>
        <circle cx="51" cy="80" r="1" fill="#fff" opacity=".6"/>
        {/* Big grinning mouth */}
        <path d="M 38 88 Q 52 102 66 88 Q 60 94 52 95 Q 44 94 38 88 Z" fill={c.black}/>
        <path d="M 40 90 Q 52 100 64 90" fill={c.red}/>
        {/* Teeth */}
        <rect x="46" y="89" width="3" height="4" fill="#fff"/>
        <rect x="50" y="89" width="3" height="5" fill="#fff"/>
        <rect x="54" y="89" width="3" height="4" fill="#fff"/>
        {/* Cheek blush */}
        <ellipse cx="34" cy="82" rx="3.5" ry="2.2" fill={c.cheek} opacity=".7"/>
        <ellipse cx="70" cy="82" rx="3.5" ry="2.2" fill={c.cheek} opacity=".7"/>
        {/* Side banner (JOKER text vertical) */}
        <rect x="0" y="0" width="22" height="160" fill={c.red}/>
        <rect x="19" y="0" width="3" height="160" fill={c.black} opacity=".25"/>
        <text x="11" y="48" textAnchor="middle" fontSize="13" fontFamily="'Fredoka','Baloo 2',Georgia,serif" fontWeight="800" fill={c.gold} transform="rotate(-90 11 48)" letterSpacing="2">JOKER</text>
        <text x="11" y="156" textAnchor="middle" fontSize="13" fontFamily="'Fredoka','Baloo 2',Georgia,serif" fontWeight="800" fill={c.gold} transform="rotate(90 11 110)" letterSpacing="2">JOKER</text>
        {/* Little star on banner */}
        <path d="M 11 80 L 13 85 L 18 85 L 14 88 L 15 93 L 11 90 L 7 93 L 8 88 L 4 85 L 9 85 Z" fill={c.gold}/>
      </svg>
    );
  }

  window.CharacterFaces = {
    J: JackFace,
    Q: QueenFace,
    K: KingFace,
    JOKER: JokerFace
  };
})();
