export default function Emblem({ type, color, size = 56 }: { type?: string; color: string; size?: number }) {
  const style = { width: size, height: size };

  switch (type) {
    case "shield":
      return (
        <svg viewBox="0 0 48 48" style={style} fill="none">
          <path d="M24 4L6 12v12c0 11.1 7.7 21.5 18 24 10.3-2.5 18-12.9 18-24V12L24 4z"
            stroke={color} strokeWidth="1.5" fill={`${color}15`} />
          <path d="M24 9l-14 6.5v10c0 9 6 17.5 14 19.5 8-2 14-10.5 14-19.5v-10L24 9z"
            stroke={color} strokeWidth="0.75" opacity="0.4" fill="none" />
          <path d="M24 17v14M17 24h14" stroke={color} strokeWidth="2" strokeLinecap="round" />
        </svg>
      );
    case "crossed-swords":
      return (
        <svg viewBox="0 0 48 48" style={style} fill="none">
          <path d="M14 6l18 18M34 6L16 24" stroke={color} strokeWidth="1.5" strokeLinecap="round" />
          <path d="M12 22l3 3-3 3M36 22l-3 3 3 3" stroke={color} strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
          <circle cx="24" cy="31" r="7" stroke={color} strokeWidth="1.5" fill={`${color}10`} />
          <path d="M24 38v6M21 42h6" stroke={color} strokeWidth="1.5" strokeLinecap="round" />
        </svg>
      );
    case "leaf":
      return (
        <svg viewBox="0 0 48 48" style={style} fill="none">
          <path d="M24 5c-9 5-17 15-17 26 0 0 8-2 17-11 9 9 17 11 17 11 0-11-8-21-17-26z"
            stroke={color} strokeWidth="1.5" fill={`${color}12`} />
          <path d="M24 15v24" stroke={color} strokeWidth="1.5" strokeLinecap="round" />
          <path d="M17 21c3.5 2.5 7 5 7 7M31 21c-3.5 2.5-7 5-7 7" stroke={color} strokeWidth="1" opacity="0.6" strokeLinecap="round" />
        </svg>
      );
    case "anchor":
      return (
        <svg viewBox="0 0 48 48" style={style} fill="none">
          <circle cx="24" cy="11" r="5" stroke={color} strokeWidth="1.5" fill={`${color}12`} />
          <path d="M24 16v24" stroke={color} strokeWidth="2" strokeLinecap="round" />
          <path d="M12 40c0-9 5.5-16 12-16s12 7 12 16" stroke={color} strokeWidth="1.5" fill="none" strokeLinecap="round" />
          <path d="M15 30h-5M33 30h5" stroke={color} strokeWidth="2" strokeLinecap="round" />
        </svg>
      );
    case "wing":
      return (
        <svg viewBox="0 0 48 48" style={style} fill="none">
          <path d="M24 40V20" stroke={color} strokeWidth="1.5" strokeLinecap="round" />
          <path d="M24 20c-4-8-14-14-20-14 4 6 8 16 8 22 0 4 4 8 12 12" stroke={color} strokeWidth="1.5" fill={`${color}12`} />
          <path d="M24 20c4-8 14-14 20-14-4 6-8 16-8 22 0 4-4 8-12 12" stroke={color} strokeWidth="1.5" fill={`${color}12`} />
          <path d="M12 14c3 2 7 6 9 10M36 14c-3 2-7 6-9 10" stroke={color} strokeWidth="0.75" opacity="0.5" strokeLinecap="round" />
          <circle cx="24" cy="18" r="2.5" stroke={color} strokeWidth="1.5" fill={`${color}20`} />
        </svg>
      );
    case "flame":
      return (
        <svg viewBox="0 0 48 48" style={style} fill="none">
          <path d="M24 4c-3 8-12 14-12 24 0 8 5.5 14 12 16 6.5-2 12-8 12-16 0-10-9-16-12-24z"
            stroke={color} strokeWidth="1.5" fill={`${color}12`} />
          <path d="M24 18c-2 4-6 7-6 13 0 4 2.5 7 6 8 3.5-1 6-4 6-8 0-6-4-9-6-13z"
            stroke={color} strokeWidth="1" fill={`${color}20`} />
          <path d="M24 28c-1 2-3 3.5-3 6.5 0 2 1.2 3.5 3 4 1.8-.5 3-2 3-4 0-3-2-4.5-3-6.5z"
            fill={color} opacity="0.4" />
        </svg>
      );
    case "crystal":
      return (
        <svg viewBox="0 0 48 48" style={style} fill="none">
          <path d="M24 4L14 18l10 26 10-26L24 4z" stroke={color} strokeWidth="1.5" fill={`${color}12`} />
          <path d="M14 18h20" stroke={color} strokeWidth="1" opacity="0.5" />
          <path d="M24 4L14 18M24 4l10 14" stroke={color} strokeWidth="1.5" />
          <path d="M24 44L14 18M24 44l10-26" stroke={color} strokeWidth="1.5" />
          <path d="M19 11l5 7 5-7M17 22l7 14 7-14" stroke={color} strokeWidth="0.75" opacity="0.3" />
          <circle cx="24" cy="20" r="3" stroke={color} strokeWidth="1" fill={`${color}20`} />
        </svg>
      );
    case "meteor":
      return (
        <svg viewBox="0 0 48 48" style={style} fill="none">
          <circle cx="24" cy="26" r="14" stroke={color} strokeWidth="1.5" fill={`${color}10`} />
          <circle cx="24" cy="26" r="8" stroke={color} strokeWidth="1" fill={`${color}15`} />
          <path d="M24 6l-2 8h4l-2-8z" fill={color} opacity="0.7" />
          <path d="M34 10l-5 7 3 1 2-8z" fill={color} opacity="0.5" />
          <path d="M14 10l5 7-3 1-2-8z" fill={color} opacity="0.5" />
          <path d="M38 18l-7 5 2 2 5-7z" fill={color} opacity="0.3" />
          <path d="M10 18l7 5-2 2-5-7z" fill={color} opacity="0.3" />
          <circle cx="24" cy="26" r="3" stroke={color} strokeWidth="1.5" fill={`${color}25`} />
        </svg>
      );
    case "skull":
      return (
        <svg viewBox="0 0 48 48" style={style} fill="none">
          <path d="M24 4C16 4 10 11 10 20c0 5 2 9 5 12v8h18v-8c3-3 5-7 5-12 0-9-6-16-14-16z"
            stroke={color} strokeWidth="1.5" fill={`${color}12`} />
          <circle cx="18" cy="20" r="4" stroke={color} strokeWidth="1.5" fill={`${color}20`} />
          <circle cx="30" cy="20" r="4" stroke={color} strokeWidth="1.5" fill={`${color}20`} />
          <path d="M21 28h6l-3 5-3-5z" fill={color} opacity="0.5" />
          <path d="M19 36v4M24 36v4M29 36v4" stroke={color} strokeWidth="1.5" strokeLinecap="round" />
        </svg>
      );
    case "dragon":
      return (
        <svg viewBox="0 0 48 48" style={style} fill="none">
          <path d="M24 4c-2 4-8 8-10 16-2 8 2 16 10 20 8-4 12-12 10-20C32 12 26 8 24 4z"
            stroke={color} strokeWidth="1.5" fill={`${color}12`} />
          <path d="M14 20c-4-2-8-1-10 2 3 1 6 3 8 5" stroke={color} strokeWidth="1" fill={`${color}15`} />
          <path d="M34 20c4-2 8-1 10 2-3 1-6 3-8 5" stroke={color} strokeWidth="1" fill={`${color}15`} />
          <circle cx="20" cy="18" r="2" stroke={color} strokeWidth="1.5" fill={`${color}25`} />
          <circle cx="28" cy="18" r="2" stroke={color} strokeWidth="1.5" fill={`${color}25`} />
          <path d="M20 26c2 1 4 2 4 4 0-2 2-3 4-4" stroke={color} strokeWidth="1" opacity="0.6" strokeLinecap="round" />
          <path d="M24 34v8M20 38l4 4 4-4" stroke={color} strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
        </svg>
      );
    case "star":
      return (
        <svg viewBox="0 0 48 48" style={style} fill="none">
          <path d="M24 4l5 14h15l-12 9 5 15-13-9-13 9 5-15L4 18h15z"
            stroke={color} strokeWidth="1.5" fill={`${color}12`} />
          <path d="M24 12l3 8h8l-6.5 5 2.5 8L24 28l-7 5 2.5-8L13 20h8z"
            stroke={color} strokeWidth="0.75" opacity="0.4" fill={`${color}20`} />
          <circle cx="24" cy="22" r="4" stroke={color} strokeWidth="1" fill={`${color}25`} />
        </svg>
      );
    case "crown":
      return (
        <svg viewBox="0 0 48 48" style={style} fill="none">
          <path d="M8 32l4-16 8 8 4-12 4 12 8-8 4 16z"
            stroke={color} strokeWidth="1.5" fill={`${color}12`} />
          <path d="M8 32h32v6H8z" stroke={color} strokeWidth="1.5" fill={`${color}20`} />
          <circle cx="12" cy="16" r="2" fill={color} opacity="0.5" />
          <circle cx="24" cy="12" r="2.5" fill={color} opacity="0.6" />
          <circle cx="36" cy="16" r="2" fill={color} opacity="0.5" />
          <circle cx="16" cy="35" r="1.5" fill={color} opacity="0.4" />
          <circle cx="24" cy="35" r="1.5" fill={color} opacity="0.4" />
          <circle cx="32" cy="35" r="1.5" fill={color} opacity="0.4" />
        </svg>
      );
    default:
      return null;
  }
}
