// icons.jsx — minimal line icons (24px, 1.75 stroke, rounded), Lucide-style
const Ico = ({ size = 18, stroke = 1.75, children, ...rest }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none"
       stroke="currentColor" strokeWidth={stroke}
       strokeLinecap="round" strokeLinejoin="round" {...rest}>
    {children}
  </svg>
);

const ISun = (p) => <Ico {...p}><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"/></Ico>;
const IMoon = (p) => <Ico {...p}><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></Ico>;
const IArrowRight = (p) => <Ico {...p}><path d="M5 12h14M13 6l6 6-6 6"/></Ico>;
const IArrowDown  = (p) => <Ico {...p}><path d="M12 5v14M6 13l6 6 6-6"/></Ico>;
const IDownload  = (p) => <Ico {...p}><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3"/></Ico>;
const IExternal  = (p) => <Ico {...p}><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6M15 3h6v6M10 14L21 3"/></Ico>;
const IGithub    = (p) => <Ico {...p}><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"/></Ico>;
const ILinkedin  = (p) => <Ico {...p}><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-4 0v7h-4v-7a6 6 0 0 1 6-6zM2 9h4v12H2zM4 6a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></Ico>;
const ITwitter   = (p) => <Ico {...p}><path d="M18 4l-12 16M6 4l12 16"/></Ico>;
const IMail      = (p) => <Ico {...p}><rect x="3" y="5" width="18" height="14" rx="2"/><path d="M3 7l9 6 9-6"/></Ico>;
const IMapPin    = (p) => <Ico {...p}><path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z"/><circle cx="12" cy="10" r="3"/></Ico>;
const ICircleDot = (p) => <Ico {...p}><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="2.5" fill="currentColor"/></Ico>;
const IMenu      = (p) => <Ico {...p}><path d="M4 6h16M4 12h16M4 18h16"/></Ico>;
const IX         = (p) => <Ico {...p}><path d="M6 6l12 12M18 6l-12 12"/></Ico>;
const ICheck     = (p) => <Ico {...p}><path d="M5 12l5 5L20 7"/></Ico>;
const ISend      = (p) => <Ico {...p}><path d="M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z"/></Ico>;
const ICode      = (p) => <Ico {...p}><path d="M16 18l6-6-6-6M8 6l-6 6 6 6M14 4l-4 16"/></Ico>;
const IZap       = (p) => <Ico {...p}><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/></Ico>;
const ITool      = (p) => <Ico {...p}><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></Ico>;
const ILayers    = (p) => <Ico {...p}><path d="M12 2l9 5-9 5-9-5 9-5zM3 12l9 5 9-5M3 17l9 5 9-5"/></Ico>;
const ISpark     = (p) => <Ico {...p}><path d="M12 3v6M12 15v6M3 12h6M15 12h6M5.6 5.6l4.2 4.2M14.2 14.2l4.2 4.2M5.6 18.4l4.2-4.2M14.2 9.8l4.2-4.2"/></Ico>;

Object.assign(window, {
  Ico, ISun, IMoon, IArrowRight, IArrowDown, IDownload, IExternal,
  IGithub, ILinkedin, ITwitter, IMail, IMapPin, ICircleDot, IMenu, IX,
  ICheck, ISend, ICode, IZap, ITool, ILayers, ISpark,
});
