// iffs-emblems.jsx — fresh start.
// Five varied directions, each a different *kind* of mark:
//
//   1. wordmark         — pure typographic IFFS, no symbol
//   2. monogram-i       — uppercase I with the dot replaced by a salmon-pink
//                         disc; quietly references the company initial
//   3. river-curl       — abstract flowing curl (river/line) inside a soft circle
//   4. fish-arc         — minimal salmon as a single arc + tail wedge, no detail
//   5. mountain-mark    — two triangles (mountains) with a horizon line / river
//                         beneath; the most landscape-leaning option
//
// All marks are mono-stroke, single-color (currentColor) so they sit on
// any palette and read at any size. No banners, no rope rings, no
// arc-text.

// ─── 1. Wordmark only ───────────────────────────────────────────────────
function EmblemWordmark({ size = 64, color = "currentColor" }) {
  // Returns a tiny placeholder square just so the lockup spacing stays
  // consistent — visually invisible. The real "mark" is the wordmark in
  // the Logo component itself.
  return <span style={{ display: 'inline-block', width: 0, height: size }}/>;
}

// ─── 2. Monogram I ──────────────────────────────────────────────────────
function EmblemMonogramI({ size = 64, color = "currentColor" }) {
  return (
    <svg width={size} height={size} viewBox="0 0 100 100" style={{ color, display:'block' }}>
      {/* I serif glyph */}
      <g fill="currentColor">
        {/* Top serif */}
        <rect x="22" y="22" width="56" height="6"/>
        {/* Stem */}
        <rect x="44" y="28" width="12" height="44"/>
        {/* Bottom serif */}
        <rect x="22" y="72" width="56" height="6"/>
      </g>
      {/* River-bend dot — a curved stroke replacing the dot of an i */}
      <path d="M 36 12 C 44 8, 56 8, 64 12"
            fill="none" stroke="currentColor" strokeWidth="4" strokeLinecap="round"/>
    </svg>
  );
}

// ─── 3a. River bend — hairline circle, slow meander ─────────────────────
// One bold meandering stroke inside a thin engraved circle.
// No loops; reads like a heritage signet with generous negative space.
function EmblemRiverCurl({ size = 64, color = "currentColor" }) {
  return (
    <svg width={size} height={size} viewBox="0 0 100 100" style={{ color, display:'block' }}>
      <circle cx="50" cy="50" r="46" fill="none" stroke="currentColor" strokeWidth="1.2"/>
      <path d="M 22 78
               C 30 64, 22 54, 36 46
               C 50 38, 58 50, 70 38
               C 80 28, 74 22, 84 22"
            fill="none" stroke="currentColor" strokeWidth="4.5"
            strokeLinecap="round" strokeLinejoin="round"/>
      <circle cx="84" cy="22" r="3" fill="var(--copper, #c89252)"/>
    </svg>
  );
}

// ─── 3b. River bend — two-weight, with horizon line ─────────────────────
// Bold vertical meander with hairline tributaries; horizon for elegance.
function EmblemRiverHorizon({ size = 64, color = "currentColor" }) {
  return (
    <svg width={size} height={size} viewBox="0 0 100 100" style={{ color, display:'block' }}>
      <path d="M 6 50 L 94 50" stroke="currentColor" strokeWidth=".8" opacity=".55"/>
      <path d="M 50 8
               C 40 22, 62 32, 50 46
               C 38 60, 60 70, 50 92"
            fill="none" stroke="currentColor" strokeWidth="5"
            strokeLinecap="round" strokeLinejoin="round"/>
      <path d="M 50 30 C 60 32, 66 36, 70 42"
            fill="none" stroke="currentColor" strokeWidth="1" opacity=".7" strokeLinecap="round"/>
      <path d="M 50 64 C 38 66, 32 70, 28 78"
            fill="none" stroke="currentColor" strokeWidth="1" opacity=".7" strokeLinecap="round"/>
    </svg>
  );
}

// ─── 3c. River bend — engraved square, banker's mark feel ───────────────
function EmblemRiverSquare({ size = 64, color = "currentColor" }) {
  return (
    <svg width={size} height={size} viewBox="0 0 100 100" style={{ color, display:'block' }}>
      <rect x="6" y="6" width="88" height="88" fill="none" stroke="currentColor" strokeWidth="1"/>
      <rect x="10" y="10" width="80" height="80" fill="none" stroke="currentColor" strokeWidth=".5" opacity=".6"/>
      <path d="M 16 36
               C 30 36, 34 56, 50 56
               C 66 56, 70 36, 84 36"
            fill="none" stroke="currentColor" strokeWidth="4.5"
            strokeLinecap="round" strokeLinejoin="round"/>
      <rect x="82" y="34" width="4" height="4" fill="var(--copper, #c89252)"/>
    </svg>
  );
}

// ─── 3d. River bend — frameless, single confident stroke ────────────────
function EmblemRiverPure({ size = 64, color = "currentColor" }) {
  return (
    <svg width={size} height={size} viewBox="0 0 100 100" style={{ color, display:'block' }}>
      <path d="M 12 78
               C 24 78, 28 60, 40 56
               C 54 51, 60 70, 74 60
               C 86 52, 80 30, 92 22"
            fill="none" stroke="currentColor" strokeWidth="6"
            strokeLinecap="round" strokeLinejoin="round"/>
    </svg>
  );
}

// ─── PRODUCT SUB-MARKS ──────────────────────────────────────────────────
// Each product gets a variant of the master river-bend, with one small
// element added that signals what the product *does*:
//   RM (River Management) → adds *control / stewardship* vocabulary
//   AA (Angler App)       → adds *fishing / the catch* vocabulary
//
// All product-marks live inside a 100×100 square engraving frame so they
// read as a "stamp" — distinct from the company mark, which is unframed.
//
// Helpers ───────────────────────────────────────────────────────────────
function StampFrame({ children, copper = false }) {
  return (
    <>
      <rect x="6" y="6" width="88" height="88" fill="none" stroke="currentColor" strokeWidth="1"/>
      <rect x="9" y="9" width="82" height="82" fill="none" stroke="currentColor" strokeWidth=".5" opacity=".55"/>
      {children}
      {copper && (
        <circle cx="86" cy="14" r="2.5" fill="var(--copper, #c89252)"/>
      )}
    </>
  );
}

// The shared bend path used inside all product stamps. Slight S-curve,
// no loops, fills the 16–84 inner zone.
const PRODUCT_BEND = "M 16 78 C 28 76, 30 56, 44 50 C 58 44, 64 64, 78 56 C 86 51, 84 32, 92 24";
// A vertically-shorter bend, leaving headroom at top of the stamp
const PRODUCT_BEND_LOW = "M 16 80 C 28 78, 30 64, 44 60 C 58 56, 64 72, 78 66 C 86 62, 84 50, 92 44";

// ─── RM-A · Beat ticks (river-mile markers) ────────────────────────────
// The bend is annotated with little perpendicular ticks — beats numbered
// along the river. Reads as "this water is divided, scheduled, managed."
function EmblemRMBeats({ size = 64 }) {
  return (
    <svg width={size} height={size} viewBox="0 0 100 100" style={{ display: 'block', color: 'currentColor' }}>
      <StampFrame copper>
        <path d={PRODUCT_BEND_LOW} fill="none" stroke="currentColor" strokeWidth="4.5"
              strokeLinecap="round" strokeLinejoin="round"/>
        {/* Perpendicular beat ticks along the bend */}
        {/* Each tick is short, on the outside of the curve */}
        <g stroke="currentColor" strokeWidth="1.6" strokeLinecap="round">
          <line x1="22"  y1="72" x2="22"  y2="84"/>
          <line x1="36"  y1="64" x2="38"  y2="76"/>
          <line x1="50"  y1="54" x2="52"  y2="66"/>
          <line x1="64"  y1="62" x2="66"  y2="74"/>
          <line x1="78"  y1="56" x2="80"  y2="68"/>
        </g>
        {/* Tiny "I" stamp top-left to suggest a register / ledger */}
        <text x="14" y="22" fontFamily="ui-monospace, monospace" fontSize="8"
              fill="currentColor" opacity=".7" letterSpacing="1">RM</text>
      </StampFrame>
    </svg>
  );
}

// ─── RM-B · Boundary frame (managed water) ─────────────────────────────
// The bend sits inside an inner *property/license* boundary — a second
// thin square, slightly cropped corners. Reads as "this is bounded,
// permitted, stewarded land."
function EmblemRMBoundary({ size = 64 }) {
  return (
    <svg width={size} height={size} viewBox="0 0 100 100" style={{ display: 'block', color: 'currentColor' }}>
      <StampFrame copper>
        {/* Property boundary — inner notched square */}
        <path d="M 22 22 L 78 22 L 78 78 L 22 78 Z" fill="none"
              stroke="currentColor" strokeWidth="1.2" opacity=".75"/>
        {/* Corner ticks (survey marks) */}
        <g stroke="currentColor" strokeWidth="1.4" strokeLinecap="round">
          <line x1="20" y1="22" x2="24" y2="22"/><line x1="22" y1="20" x2="22" y2="24"/>
          <line x1="76" y1="22" x2="80" y2="22"/><line x1="78" y1="20" x2="78" y2="24"/>
          <line x1="20" y1="78" x2="24" y2="78"/><line x1="22" y1="76" x2="22" y2="80"/>
          <line x1="76" y1="78" x2="80" y2="78"/><line x1="78" y1="76" x2="78" y2="80"/>
        </g>
        {/* Bend inside the boundary */}
        <path d="M 26 64 C 34 62, 36 50, 46 48 C 56 46, 60 60, 70 56 C 76 53, 74 42, 78 38"
              fill="none" stroke="currentColor" strokeWidth="3.5"
              strokeLinecap="round" strokeLinejoin="round"/>
        {/* RM register text */}
        <text x="14" y="22" fontFamily="ui-monospace, monospace" fontSize="8"
              fill="currentColor" opacity=".7" letterSpacing="1">RM</text>
      </StampFrame>
    </svg>
  );
}

// ─── AA-A · Tied fly above the bend ────────────────────────────────────
// Bend in the lower half; a tiny tied fly hangs above it (hook + hackle
// + thread band). Most traditional / heritage angling signal.
function EmblemAAFly({ size = 64 }) {
  return (
    <svg width={size} height={size} viewBox="0 0 100 100" style={{ display: 'block', color: 'currentColor' }}>
      <StampFrame copper>
        {/* River bend, lower half */}
        <path d={PRODUCT_BEND_LOW} fill="none" stroke="currentColor" strokeWidth="4.5"
              strokeLinecap="round" strokeLinejoin="round" opacity=".95"/>
        {/* Tied fly, upper-center */}
        {/* Hook eye + shank */}
        <g stroke="currentColor" strokeWidth="1.4" strokeLinecap="round" fill="none">
          <circle cx="38" cy="28" r="2"/>
          <line x1="40" y1="28" x2="62" y2="28"/>
          {/* Hook bend + point */}
          <path d="M 62 28 C 68 28, 70 32, 68 36 C 67 38, 64 38, 62 36"/>
          {/* Hackle (radiating fibers around shank) */}
          <line x1="46" y1="28" x2="44" y2="22"/>
          <line x1="50" y1="28" x2="50" y2="21"/>
          <line x1="54" y1="28" x2="56" y2="22"/>
          <line x1="46" y1="28" x2="44" y2="34"/>
          <line x1="50" y1="28" x2="50" y2="35"/>
          <line x1="54" y1="28" x2="56" y2="34"/>
          {/* Tail wisp */}
          <line x1="40" y1="28" x2="32" y2="26"/>
          <line x1="40" y1="28" x2="32" y2="30"/>
        </g>
        {/* Thread wrap on shank (small accent) */}
        <rect x="48" y="26.6" width="6" height="2.8" fill="var(--copper, #c89252)"/>
        <text x="14" y="22" fontFamily="ui-monospace, monospace" fontSize="8"
              fill="currentColor" opacity=".7" letterSpacing="1">AA</text>
      </StampFrame>
    </svg>
  );
}

// ─── AA-B · Leaping salmon over the bend ───────────────────────────────
// A small salmon arcs over the river — the moment of the take. More
// dynamic and direct than the fly.
function EmblemAALeap({ size = 64 }) {
  return (
    <svg width={size} height={size} viewBox="0 0 100 100" style={{ display: 'block', color: 'currentColor' }}>
      <StampFrame copper>
        {/* River bend, lower half */}
        <path d={PRODUCT_BEND_LOW} fill="none" stroke="currentColor" strokeWidth="4.5"
              strokeLinecap="round" strokeLinejoin="round" opacity=".95"/>
        {/* Splash dots where the fish breaks water */}
        <g fill="currentColor">
          <circle cx="38" cy="62" r="1.2"/>
          <circle cx="34" cy="58" r=".9"/>
          <circle cx="42" cy="58" r=".7"/>
          <circle cx="68" cy="58" r="1.2"/>
          <circle cx="72" cy="54" r=".9"/>
          <circle cx="64" cy="55" r=".7"/>
        </g>
        {/* Leaping salmon: arched body + tail wedge */}
        <g>
          {/* Body (filled arc) */}
          <path d="M 38 56 Q 52 22, 70 56 Q 52 38, 38 56 Z" fill="currentColor"/>
          {/* Tail wedge at left */}
          <path d="M 38 56 L 30 50 L 32 60 Z" fill="currentColor"/>
          {/* Eye */}
          <circle cx="62" cy="40" r="1.2" fill="var(--paper, #ead9b8)"/>
          {/* Gill line */}
          <path d="M 58 36 Q 60 40, 58 44" fill="none" stroke="var(--paper, #ead9b8)" strokeWidth=".6" opacity=".6"/>
        </g>
        <text x="14" y="22" fontFamily="ui-monospace, monospace" fontSize="8"
              fill="currentColor" opacity=".7" letterSpacing="1">AA</text>
      </StampFrame>
    </svg>
  );
}

// Product-mark router
function ProductMark({ product, variant, size = 64 }) {
  if (product === 'rm') {
    return variant === 'boundary'
      ? <EmblemRMBoundary size={size}/>
      : <EmblemRMBeats size={size}/>;
  }
  if (product === 'aa') {
    return variant === 'leap'
      ? <EmblemAALeap size={size}/>
      : <EmblemAAFly size={size}/>;
  }
  return null;
}

// ─── 4. Fish arc ────────────────────────────────────────────────────────
// Salmon reduced to its essence: one arc for the body, a wedge for the tail.
function EmblemFishArc({ size = 64, color = "currentColor" }) {
  return (
    <svg width={size} height={size} viewBox="0 0 100 100" style={{ color, display:'block' }}>
      {/* Body — arched stroke */}
      <path d="M 16 60 Q 50 28, 84 56"
            fill="none" stroke="currentColor" strokeWidth="7" strokeLinecap="round"/>
      {/* Tail wedge */}
      <path d="M 84 56 L 96 46 L 96 70 Z" fill="currentColor"/>
      {/* Eye */}
      <circle cx="76" cy="48" r="2.4" fill="var(--ink, #0b1517)"/>
    </svg>
  );
}

// ─── 5. Mountain mark ───────────────────────────────────────────────────
// Two triangles (peaks) with a single line of river beneath.
function EmblemMountain({ size = 64, color = "currentColor" }) {
  return (
    <svg width={size} height={size} viewBox="0 0 100 100" style={{ color, display:'block' }}>
      {/* Back mountain (filled) */}
      <path d="M 8 70 L 38 22 L 64 60 L 56 70 Z" fill="currentColor" opacity=".45"/>
      {/* Front mountain (filled, deeper) */}
      <path d="M 30 70 L 62 26 L 92 70 Z" fill="currentColor"/>
      {/* Snowcap notch on front mountain */}
      <path d="M 56 36 L 62 26 L 68 36 L 64 40 L 60 38 Z" fill="var(--ink, #0b1517)" opacity=".5"/>
      {/* River line beneath */}
      <path d="M 8 84 C 24 80, 36 88, 50 84 C 64 80, 76 88, 92 84"
            fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round"/>
    </svg>
  );
}

// ─── 6. Angler · Rod · River (chosen mark) ──────────────────────────────
// The brand mark — heritage silhouette derived from a source photograph:
// a standing angler on a riverbank, rod lifted in fish-on tension, line
// dropping to a splash on the water below. Single-color, currentColor
// throughout — paste it on any palette and it inherits the surrounding
// hue. Stroke weights are absolute (1.1 / 1.5 / 0.7 etc.) so the mark
// reads consistently from favicon (24px) to hero (140px); we rely on the
// 120×120 viewBox + width/height on the SVG element rather than scaling
// stroke-width. See design_handoff_iffs_logo/README.md for the full
// anatomy + sizing spec.
function EmblemAnglerRodRiver({ size = 120, color = "currentColor" }) {
  return (
    <svg
      width={size}
      height={size}
      viewBox="0 0 120 120"
      style={{ display: 'block', color }}
      aria-label="IFFS"
      role="img"
    >
      {/* River — two parallel meandering hairlines */}
      <path
        d="M 6 100 C 26 96, 44 104, 64 100 C 84 96, 102 104, 116 100"
        fill="none" stroke="currentColor" strokeWidth="1.1"
        opacity="0.55" strokeLinecap="round"
      />
      <path
        d="M 8 106 C 28 102, 46 110, 66 106 C 86 102, 102 110, 114 106"
        fill="none" stroke="currentColor" strokeWidth="1.1"
        opacity="0.3" strokeLinecap="round"
      />

      {/* Rod — thinner stroke, lifted up and forward; tip bent under fish-on load */}
      <path
        d="M 80 56 C 64 36, 42 18, 22 12 C 18 11, 14 12, 12 14"
        fill="none" stroke="currentColor" strokeWidth="1.5"
        strokeLinecap="round"
      />

      {/* Fishing line — drops from rod tip in a slight catenary to splash on water */}
      <path
        d="M 12 14 C 16 30, 20 54, 28 76 C 32 86, 38 94, 46 100"
        fill="none" stroke="currentColor" strokeWidth="0.7"
        opacity="0.75" strokeLinecap="round"
      />

      {/* Splash dots */}
      <circle cx="46" cy="100" r="1.3" fill="currentColor" opacity="0.75" />
      <circle cx="42" cy="98"  r="0.7" fill="currentColor" opacity="0.5" />
      <circle cx="50" cy="100" r="0.7" fill="currentColor" opacity="0.5" />

      {/* Angler — solid filled silhouette */}
      <g fill="currentColor">
        {/* Head with brimmed hat */}
        <path d="M 80 36
                 C 80 32, 84 30, 88 30
                 C 92 30, 95 32, 95 36
                 L 95 38
                 L 100 39
                 L 100 41
                 L 75 41
                 L 75 39
                 L 80 38 Z" />
        {/* Body / coat */}
        <path d="M 80 41
                 L 95 41
                 L 97 60
                 C 97 62, 96 63, 94 63
                 L 81 63
                 C 79 63, 78 62, 78 60 Z" />
        {/* Forearm/grip — meets rod base */}
        <path d="M 76 53 L 82 51 L 84 60 L 78 62 Z" />
        {/* Legs */}
        <rect x="82" y="63" width="4" height="28" rx="1" />
        <rect x="89" y="63" width="4" height="28" rx="1" />
      </g>

      {/* Grass tuft on the riverbank */}
      <g stroke="currentColor" strokeWidth="0.9" strokeLinecap="round" opacity="0.5">
        <line x1="78" y1="91" x2="76" y2="94" />
        <line x1="82" y1="91" x2="82" y2="94" />
        <line x1="86" y1="91" x2="86" y2="94" />
        <line x1="90" y1="91" x2="92" y2="94" />
        <line x1="94" y1="91" x2="96" y2="94" />
      </g>
    </svg>
  );
}

// ─── Router + lockup ────────────────────────────────────────────────────
function Emblem({ variant, size = 56, color }) {
  switch (variant) {
    case 'wordmark':    return <EmblemWordmark    size={size} color={color}/>;
    case 'monogram-i':  return <EmblemMonogramI   size={size} color={color}/>;
    case 'river-curl':     return <EmblemRiverCurl     size={size} color={color}/>;
    case 'river-horizon':  return <EmblemRiverHorizon  size={size} color={color}/>;
    case 'river-square':   return <EmblemRiverSquare   size={size} color={color}/>;
    case 'river-pure':     return <EmblemRiverPure     size={size} color={color}/>;
    case 'fish-arc':    return <EmblemFishArc     size={size} color={color}/>;
    case 'mountain':    return <EmblemMountain    size={size} color={color}/>;
    case 'angler':         return <EmblemAnglerRodRiver size={size} color={color}/>;
    // Default = the chosen brand mark. (Was 'monogram-i' during exploration.)
    default:            return <EmblemAnglerRodRiver size={size} color={color}/>;
  }
}

// Logo lockup. Renders the chosen brand mark + Fraunces wordmark + mono
// descriptor side by side (inline variant — used in the nav). The mark
// inherits color from the parent, so on a dark ground (default) it
// renders in paper; on a light ground caller passes onDark={false} and
// it inverts to ink. When variant === 'wordmark' we drop the mark column
// and render type only — handy for places where the mark would be
// redundant (e.g. tightly-packed footers).
function Logo({ variant = 'angler', size = 'md', onDark = true }) {
  const markPx = size === 'sm' ? 28 : size === 'lg' ? 56 : 40;
  const c = onDark ? 'var(--paper)' : 'var(--ink)';
  const descColor = onDark ? 'rgba(244,239,228,.55)' : 'var(--ink-4)';
  const isWordmarkOnly = variant === 'wordmark';

  return (
    <div
      className="nav-logo"
      style={{ display: 'inline-flex', alignItems: 'center', gap: 12, color: c }}
    >
      {!isWordmarkOnly && (
        <span aria-hidden="true" style={{ display: 'inline-flex', flex: '0 0 auto' }}>
          <Emblem variant={variant} size={markPx} />
        </span>
      )}
      <div>
        <div className="wm" style={{ color: c }}>IFFS</div>
        <span className="desc" style={{ color: descColor }}>
          Icelandic Fly Fishing Solutions
        </span>
      </div>
    </div>
  );
}

// ─── Generic icons (unchanged) ─────────────────────────────────────────
function Icon({ name, size = 28, color = "currentColor" }) {
  const props = { width: size, height: size, viewBox: "0 0 32 32", fill: "none", stroke: color, strokeWidth: 1.4, strokeLinecap: "round", strokeLinejoin: "round" };
  switch (name) {
    case 'cal':    return <svg {...props}><rect x="5" y="7" width="22" height="20" rx="1"/><path d="M5 13h22M11 4v6M21 4v6"/><circle cx="11" cy="19" r="1.5" fill={color} stroke="none"/></svg>;
    case 'fish':   return <svg {...props}><path d="M5 16c3-4 9-5 14-3 2 .8 4 2 5 3l3-2-1 4 1 4-3-2c-1 1-3 2.2-5 3-5 2-11 1-14-3z"/><circle cx="9" cy="15.5" r=".7" fill={color} stroke="none"/></svg>;
    case 'doc':    return <svg {...props}><path d="M8 4h11l5 5v19H8z"/><path d="M19 4v5h5M12 14h8M12 18h8M12 22h5"/></svg>;
    case 'pin':    return <svg {...props}><rect x="6" y="6" width="20" height="20" rx="2"/><path d="M11 13h10M11 17h10M11 21h6"/></svg>;
    case 'bell':   return <svg {...props}><path d="M8 21h16M10 21V14a6 6 0 0 1 12 0v7M14 25a2 2 0 0 0 4 0"/></svg>;
    case 'people': return <svg {...props}><circle cx="16" cy="12" r="4"/><path d="M8 26c0-4 4-7 8-7s8 3 8 7"/></svg>;
    case 'map':    return <svg {...props}><path d="M4 8l8-3 8 3 8-3v19l-8 3-8-3-8 3z"/><path d="M12 5v19M20 8v19"/></svg>;
    case 'sketch': return <svg {...props}><path d="M4 24c4-2 6-8 10-8s6 4 10 4 4-4 4-4"/><path d="M4 18c4-2 6-6 10-6s6 4 10 4"/></svg>;
    case 'fly':    return <svg {...props}><path d="M14 12 L 22 12 M 14 18 L 22 18"/><path d="M22 15 C 22 19, 20 21, 16 21"/><circle cx="22" cy="15" r="1"/><path d="M14 15 L 8 11 M 14 15 L 6 15 M 14 15 L 8 19"/></svg>;
    case 'wifi':   return <svg {...props}><path d="M4 13a18 18 0 0 1 24 0M8 17a12 12 0 0 1 16 0M12 21a6 6 0 0 1 8 0"/><circle cx="16" cy="25" r="1.5" fill={color} stroke="none"/></svg>;
    case 'crm':    return <svg {...props}><circle cx="16" cy="11" r="4"/><path d="M9 25c0-3.5 3-6 7-6s7 2.5 7 6"/><path d="M22 7l3 3M22 13l3-3"/></svg>;
    case 'plus':   return <svg {...props}><path d="M16 8v16M8 16h16"/></svg>;
    case 'arrow':  return <svg {...props}><path d="M6 16h20M20 10l6 6-6 6"/></svg>;
    default:       return <svg {...props}><circle cx="16" cy="16" r="10"/></svg>;
  }
}

Object.assign(window, {
  Emblem, EmblemWordmark, EmblemMonogramI,
  EmblemRiverCurl, EmblemRiverHorizon, EmblemRiverSquare, EmblemRiverPure,
  EmblemFishArc, EmblemMountain,
  EmblemAnglerRodRiver,
  EmblemRMBeats, EmblemRMBoundary, EmblemAAFly, EmblemAALeap, ProductMark,
  Logo, Icon,
});
