// Shared chrome: theme tokens, base styles, nav, footer const TWEAK_DEFAULTS_SHARED = /*EDITMODE-BEGIN*/{ "theme": "dark", "accent": "bordeaux" }/*EDITMODE-END*/; var ACCENTS_SITE = { bordeaux: { c: "#7A1F2B", c2: "#a93341", deep: "#4d1119", name: "Bordeaux" }, ink: { c: "#1E3A8A", c2: "#3d62b5", deep: "#0f1d44", name: "Tinte" }, graphite: { c: "#3a4554", c2: "#5b6878", deep: "#1f2937", name: "Graphit" }, sage: { c: "#3F6B3A", c2: "#5e8d57", deep: "#1f3520", name: "Salbei" }, amber: { c: "#B8602B", c2: "#d18244", deep: "#5c3015", name: "Bernstein" }, }; var VERVE_DOWNLOAD_URL = "https://vervewriter.de/downloads/Verve-latest.dmg"; var VERVE_DOWNLOAD_EVENT_URL = ""; function applyTheme(tweaks) { document.documentElement.setAttribute("data-theme", tweaks.theme); const a = ACCENTS_SITE[tweaks.accent] || ACCENTS_SITE.bordeaux; document.documentElement.style.setProperty("--accent", a.c); document.documentElement.style.setProperty("--accent-2", a.c2); document.documentElement.style.setProperty("--accent-deep", a.deep); } function trackVerveDownload(source) { if (typeof window.plausible === "function") { window.plausible("Download", { props: { item: "Verve-latest.dmg", source } }); } if (window.umami && typeof window.umami.track === "function") { window.umami.track("Download", { item: "Verve-latest.dmg", source }); } if (!VERVE_DOWNLOAD_EVENT_URL) return; const payload = JSON.stringify({ event: "download", item: "Verve-latest.dmg", source, path: window.location.pathname, at: new Date().toISOString(), }); if (navigator.sendBeacon) { navigator.sendBeacon(VERVE_DOWNLOAD_EVENT_URL, new Blob([payload], { type: "application/json" })); return; } fetch(VERVE_DOWNLOAD_EVENT_URL, { method: "POST", headers: { "Content-Type": "application/json" }, body: payload, keepalive: true, }).catch(() => {}); } function SiteNav({ active }) { const links = [ { href: "warum-verve.html", label: "Warum Verve" }, { href: "features.html", label: "Funktionen" }, { href: "ki.html", label: "KI" }, { href: "datenschutz.html", label: "Datenschutz" }, ]; return ( ); } function SiteFooter() { return ( ); } // Apple-style hero card: big screenshot + text under it function FeatureCard({ eyebrow, title, sub, route, focusMode = false, hideInspector = true, dark = true, accent = "bordeaux", children, tall = false }) { const wrapRef = React.useRef(null); const [scale, setScale] = React.useState(1); React.useEffect(() => { function update() { const el = wrapRef.current; if (!el) return; setScale(Math.max(0.18, Math.min(1, (el.clientWidth - 32) / 1280))); } update(); window.addEventListener("resize", update); return () => window.removeEventListener("resize", update); }, []); return (
{eyebrow}

{title}

{sub}

{children &&
{children}
}
); } Object.assign(window, { TWEAK_DEFAULTS_SHARED, ACCENTS_SITE, VERVE_DOWNLOAD_URL, VERVE_DOWNLOAD_EVENT_URL, applyTheme, trackVerveDownload, SiteNav, SiteFooter, FeatureCard });