84e0f9ddfd
Replaced the plain 4-line HTML confirmation email with a fully styled, table-based HTML email that matches Joachim Hummel's portfolio branding. Changes: - artifacts/api-server/src/routes/contact.ts - Added buildConfirmationEmail(name: string): string helper function - Replaced inline htmlContent template literal with a call to the new helper - Extended textContent plain-text fallback with email/separator footer line Email design details: - Full DOCTYPE + <html lang="de"> structure for broad client compatibility - All styles are inline (no <style> blocks) — compatible with Gmail, Outlook, Apple Mail - Table-based layout throughout (no CSS grid/flexbox, no <div> dividers) for Outlook - Divider uses a zero-height table cell with border-bottom instead of a <div> - Brand blue header (#3f4ff4 ≈ hsl(234 89% 60%)) with frosted "JH" monogram badge - White card body on slate-100 page background matching portfolio palette - Personalised greeting using the sender's name (XSS-safe via escapeHtml) - Blue accent sub-heading "Ihre Anfrage ist eingegangen." - 1–2 Werktage response-time promise in bold - CTA button "Portfolio ansehen →" linking to joachim-hummel.de - Footer with name, role tagline, email + website links, and social links (Blog at blog.unixweb.de and n8n Creators profile — both present in portfolio) - Legal disclaimer note at the bottom No new dependencies introduced. Pre-existing typecheck errors in the file (missing express-rate-limit types, missing api-zod export) are unrelated to this change and pre-date this task. Replit-Task-Id: fd961a0e-5bc4-4d29-a6c3-e90227307fe0